/* Fuentes: se cargan async desde el <head> (antes iban por @import aquí =
   cadena en serie main.css -> css2 -> woff2). Los @font-face fallback con
   metricas ajustadas evitan el salto de layout (CLS) durante el swap. */
@font-face {
  font-family: 'Fraunces-fb';
  src: local('Georgia');
  size-adjust: 106%;
  ascent-override: 96%;
  descent-override: 24%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'Inter-fb';
  src: local('Arial');
  size-adjust: 107%;
  ascent-override: 90%;
  descent-override: 22%;
  line-gap-override: 0%;
}

/* ---------- Reset / base ---------- */
* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { overflow-x: clip; background: var(--bg); color: var(--ink); font-family: 'Inter', 'Inter-fb', system-ui, sans-serif; font-size: 15px; line-height: 1.55; -webkit-font-smoothing: antialiased; }
img { display: block; max-width: 100%; }
button { font: inherit; color: inherit; background: none; border: none; cursor: pointer; }
a { color: inherit; text-decoration: none; }
input, select { font: inherit; color: inherit; background: none; border: none; outline: none; }

.app {
  background: var(--bg);
  color: var(--ink);
  min-height: 100vh;
}

/* ---------- Type ---------- */
.display {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(52px, 7.5vw, 108px);
  line-height: 0.98;
  letter-spacing: -0.02em;
  color: var(--ink);
}
.display em {
  font-style: italic;
  font-weight: 300;
  color: var(--accent);
}

.section-title {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(36px, 4.5vw, 64px);
  line-height: 1.02;
  letter-spacing: -0.015em;
}
.section-title--light { color: var(--bg); }
.section-sub {
  font-family: var(--serif);
  font-style: italic;
  font-size: 19px;
  color: var(--mute);
  max-width: 44ch;
  margin-top: 14px;
}
.eyebrow {
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--mute);
  display: inline-block;
  margin-bottom: 24px;
}
.eyebrow--light { color: rgba(255,255,255,0.7); }
.lede {
  font-family: var(--serif);
  font-weight: 300;
  font-size: clamp(18px, 1.6vw, 22px);
  line-height: 1.5;
  color: var(--mute);
  max-width: 44ch;
  margin-top: 32px;
}

/* ---------- Ticker ---------- */
.ticker {
  background: var(--dark);
  color: var(--bg);
  overflow: hidden;
  border-bottom: 1px solid var(--dark);
  height: 34px;
  display: flex;
  align-items: center;
}
.ticker-track {
  display: flex;
  gap: 32px;
  white-space: nowrap;
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  animation: ticker 48s linear infinite;
  padding-left: 32px;
}
@keyframes ticker {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}

/* ---------- TopBar ---------- */
.topbar {
  position: sticky;
  top: 0;
  z-index: 40;
  background: color-mix(in oklab, var(--bg) 92%, transparent);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
.topbar-inner {
  display: grid;
  grid-template-columns: 180px 1fr auto;
  align-items: center;
  gap: 32px;
  padding: 20px 48px;
}
.brand img { height: 42px; width: auto; display: block; }
[data-palette="noche"] .brand img { filter: invert(1) brightness(1.15); }
[data-palette="noche"] .signature-inner img { filter: invert(1) brightness(1.15); }
.nav {
  display: flex;
  gap: 28px;
  justify-content: center;
  flex-wrap: wrap;
}
.nav a {
  font-size: 13px;
  letter-spacing: 0.03em;
  color: var(--ink);
  position: relative;
  padding: 6px 0;
  transition: color 0.2s;
}
.nav a::after {
  content: '';
  position: absolute;
  left: 0; bottom: 0;
  height: 1px; width: 0;
  background: var(--accent);
  transition: width 0.25s ease;
}
.nav a:hover::after, .nav a.is-active::after { width: 100%; }
.nav a.is-active { color: var(--accent); }
.topbar-end { display: flex; align-items: center; gap: 20px; }
.lang {
  display: flex;
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 3px;
}
.lang button {
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 10px;
  letter-spacing: 0.08em;
  padding: 5px 9px;
  border-radius: 999px;
  color: var(--mute);
}
.lang button.is-on { background: var(--ink); color: var(--bg); }
.cta-ghost {
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 12px;
  letter-spacing: 0.08em;
  color: var(--ink);
  border: 1px solid var(--ink);
  padding: 10px 16px;
  border-radius: 999px;
  transition: all 0.2s;
}
.cta-ghost:hover { background: var(--ink); color: var(--bg); }

/* ---------- Buttons ---------- */
.btn-primary {
  background: var(--ink);
  color: var(--bg);
  padding: 16px 24px;
  font-size: 13px;
  letter-spacing: 0.04em;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  transition: all 0.25s;
}
.btn-primary:hover { background: var(--accent); transform: translateY(-1px); }
.btn-primary--light {
  background: var(--bg);
  color: var(--ink);
}
.btn-primary--light:hover { background: var(--accent); color: var(--bg); }
.btn-ghost {
  padding: 16px 0;
  font-size: 13px;
  letter-spacing: 0.04em;
  color: var(--ink);
  border-bottom: 1px solid var(--ink);
  border-radius: 0;
  margin-left: 16px;
  transition: color 0.2s;
}
.btn-ghost:hover { color: var(--accent); border-color: var(--accent); }
.btn-inline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  letter-spacing: 0.04em;
  border-bottom: 1px solid currentColor;
  padding-bottom: 2px;
  margin-top: 20px;
  color: var(--ink);
}
.btn-inline:hover { color: var(--accent); }
.btn-inline-light {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  letter-spacing: 0.04em;
  border-bottom: 1px solid currentColor;
  padding-bottom: 2px;
  margin-top: 20px;
  color: var(--bg);
}

/* ---------- Hero ---------- */
.hero {
  padding: 40px 48px 32px;
  min-height: calc(100vh - 34px - 81px);
  position: relative;
  overflow: hidden;
}
.hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 20% 90%, color-mix(in oklab, var(--accent) 8%, transparent), transparent 50%),
    radial-gradient(circle at 80% 10%, color-mix(in oklab, var(--accent) 5%, transparent), transparent 60%);
  pointer-events: none;
  z-index: 0;
}
.hero-grid {
  display: grid;
  grid-template-columns: 0.75fr 1.35fr;
  grid-template-rows: 1fr auto;
  gap: 20px;
  height: 100%;
  min-height: 680px;
  align-items: stretch;
  position: relative;
  z-index: 1;
}
.hero-left {
  grid-column: 1;
  grid-row: 1;
  align-self: end;
  padding-bottom: 40px;
}
.hero-right {
  grid-column: 2;
  grid-row: 1 / 3;
  align-self: stretch;
  position: relative;
  --px: 0px;
  --py: 0px;
}
.hero-image-wrap {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 600px;
  overflow: hidden;
  background: var(--surface);
}
.hero-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transform: translate3d(var(--px), var(--py), 0) scale(1.08);
  transition: transform 0.4s cubic-bezier(.2,.7,.2,1);
  animation: kenburns 18s ease-in-out infinite alternate;
  will-change: transform;
}
@keyframes kenburns {
  from { transform: translate3d(var(--px, 0), var(--py, 0), 0) scale(1.08); }
  to   { transform: translate3d(calc(var(--px, 0) - 12px), calc(var(--py, 0) + 8px), 0) scale(1.14); }
}
.hero-grain {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.22;
  mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.8 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
}
.hero-vignette {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: radial-gradient(ellipse at center, transparent 55%, rgba(0,0,0,0.25) 100%);
}

.hero-bottom {
  grid-column: 1;
  grid-row: 2;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 32px;
  border-top: 1px solid var(--line);
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--mute);
}
.hero-bottom-meta { display: flex; gap: 16px; flex-wrap: wrap; }
.hero-bottom-sep { color: var(--line); }
.hero-bottom-scroll { display: flex; align-items: center; gap: 12px; }
.hero-ctas { margin-top: 44px; display: flex; align-items: center; }

.hero-image-caption {
  position: absolute;
  left: 20px; right: 20px; bottom: 20px;
  background: color-mix(in oklab, var(--bg) 92%, transparent);
  backdrop-filter: blur(8px);
  padding: 16px 20px;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  border: 1px solid var(--line);
  z-index: 3;
}
.hero-ref {
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 10px;
  letter-spacing: 0.12em;
  color: var(--mute);
}
.hero-price {
  font-family: var(--serif);
  font-size: 22px;
  color: var(--ink);
}
.hero-image-tag {
  position: absolute;
  top: 20px;
  left: 20px;
  background: var(--bg);
  border: 1px solid var(--ink);
  padding: 9px 16px;
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  gap: 8px;
  z-index: 3;
}
.hero-image-tag-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--accent);
  animation: pulse 2.4s infinite;
}
.hero-image-stamp {
  position: absolute;
  top: -28px;
  right: -28px;
  width: 120px;
  height: 120px;
  color: var(--ink);
  background: var(--bg);
  border-radius: 50%;
  border: 1px solid var(--line);
  display: grid;
  place-items: center;
  animation: spin 22s linear infinite;
  z-index: 4;
}
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.3); }
}

/* ---------- Stats ---------- */
.stats {
  background: var(--dark);
  color: var(--bg);
  padding: 56px 48px;
}
.stats-inner {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 48px;
  max-width: 1400px;
  margin: 0 auto;
}
.stat {
  display: flex;
  flex-direction: column;
  gap: 8px;
  border-left: 1px solid rgba(255,255,255,0.14);
  padding-left: 24px;
}
.stat:first-child { border-left: none; padding-left: 0; }
.stat-n {
  font-family: var(--serif);
  font-size: clamp(40px, 4vw, 56px);
  line-height: 1;
  letter-spacing: -0.02em;
}
.stat-l {
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.6);
}

/* ---------- SearchBar ---------- */
.searchbar {
  padding: 48px;
  background: var(--surface);
  border-bottom: 1px solid var(--line);
}
.searchbar-inner {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 32px;
  align-items: end;
}
.searchbar-tabs {
  display: flex;
  gap: 4px;
  border: 1px solid var(--line);
  padding: 4px;
  border-radius: 999px;
  background: var(--bg);
}
.searchbar-tabs button {
  padding: 10px 18px;
  font-size: 12px;
  letter-spacing: 0.06em;
  border-radius: 999px;
  color: var(--mute);
  transition: all 0.2s;
}
.searchbar-tabs button.is-on { background: var(--ink); color: var(--bg); }
.searchbar-fields {
  display: grid;
  grid-template-columns: 1.3fr 1fr 1fr 1.5fr;
  gap: 24px;
}
.searchbar-fields label {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.searchbar-fields label > span {
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--mute);
}
.searchbar-fields select,
.searchbar-fields input[type="text"] {
  border-bottom: 1px solid var(--ink);
  padding: 8px 0;
  font-size: 15px;
  color: var(--ink);
  appearance: none;
  background-image:
    linear-gradient(45deg, transparent 50%, var(--ink) 50%),
    linear-gradient(-45deg, transparent 50%, var(--ink) 50%);
  background-position:
    calc(100% - 12px) 16px,
    calc(100% - 6px) 16px;
  background-size: 6px 6px;
  background-repeat: no-repeat;
  padding-right: 22px;
}
.price-label input[type="range"] {
  width: 100%;
  accent-color: var(--accent);
  margin-top: 10px;
}
/* ---------- Dual-handle price range ---------- */
.price-range .dual-range {
  position: relative;
  height: 28px;
  margin-top: 12px;
}
.price-range .dual-range::before {
  content: '';
  position: absolute;
  left: 0; right: 0; top: 50%;
  height: 3px;
  transform: translateY(-50%);
  background: var(--line);
  border-radius: 2px;
}
.price-range .dual-range .dual-range-fill {
  position: absolute;
  top: 50%;
  height: 3px;
  transform: translateY(-50%);
  background: var(--accent);
  border-radius: 2px;
  pointer-events: none;
}
.price-range .dual-range input[type="range"] {
  position: absolute;
  left: 0; top: 0;
  width: 100%;
  height: 28px;
  margin: 0;
  background: none;
  pointer-events: none;
  -webkit-appearance: none;
  appearance: none;
}
.price-range .dual-range input[type="range"]::-webkit-slider-runnable-track {
  background: none;
  height: 28px;
  border: none;
}
.price-range .dual-range input[type="range"]::-moz-range-track {
  background: none;
  height: 28px;
  border: none;
}
.price-range .dual-range input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  pointer-events: auto;
  width: 18px; height: 18px;
  margin-top: 5px;
  border-radius: 50%;
  background: var(--accent);
  border: 2px solid #fff;
  box-shadow: 0 1px 4px rgba(0,0,0,0.25);
  cursor: pointer;
}
.price-range .dual-range input[type="range"]::-moz-range-thumb {
  pointer-events: auto;
  width: 18px; height: 18px;
  border-radius: 50%;
  background: var(--accent);
  border: 2px solid #fff;
  box-shadow: 0 1px 4px rgba(0,0,0,0.25);
  cursor: pointer;
}
/* min handle sits above so it stays grabbable at the top of the range */
.price-range .dual-range .dual-range-min { z-index: 3; }
.price-range .dual-range .dual-range-max { z-index: 2; }
.searchbar-actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
}
.searchbar-count {
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--mute);
}

/* ---------- Featured / grid ---------- */
.featured {
  padding: var(--density-pad) 48px;
}
.section-head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  margin-bottom: 56px;
  gap: 24px;
  flex-wrap: wrap;
}
.section-head-meta {
  display: flex;
  gap: 12px;
  align-items: center;
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--mute);
}
.section-head-meta .dot {
  width: 4px; height: 4px; border-radius: 50%; background: var(--accent);
}

.featured-hero {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 24px;
  margin-bottom: 24px;
  align-items: stretch;
}
.featured-hero-side {
  display: grid;
  grid-template-rows: 1fr 1fr;
  gap: 24px;
}
.featured-hero-side .property {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  align-items: stretch;
}
.featured-hero-side .property .property-media {
  aspect-ratio: auto;
  height: 100%;
  min-height: 0;
}
.featured-hero-side .property .property-body {
  padding: 20px;
  gap: 8px;
}
.featured-hero-side .property .property-title { font-size: 20px; }
.featured-hero-side .property .property-specs { display: none; }
.featured-hero-side .property .property-loc { font-size: 13px; }
.featured-hero-side .property .property-price { font-size: 19px; }
.featured-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 24px;
}

/* ---------- Property card ---------- */
.property {
  background: var(--surface);
  border: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  transition: all 0.3s ease;
  position: relative;
}
.property:hover { transform: translateY(-3px); border-color: var(--accent); }
.property-media {
  position: relative;
  aspect-ratio: 4/3;
  overflow: hidden;
}
.property--large { grid-row: span 1; }
.property--large .property-media { aspect-ratio: 16/11; }
.featured-hero-side .property .property-media { aspect-ratio: auto; height: 100%; min-height: 0; }
.property-tag {
  position: absolute;
  top: 16px;
  left: 16px;
  background: var(--ink);
  color: var(--bg);
  padding: 6px 10px;
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}
.property-tag--reserved {
  background: #c82626;
  color: #fff;
}
.property-save {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 36px; height: 36px;
  background: var(--bg);
  border: 1px solid var(--line);
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: var(--ink);
  transition: all 0.2s;
}
.property-save:hover { background: var(--ink); color: var(--bg); }
.property-save.is-saved { background: var(--accent); color: var(--bg); border-color: var(--accent); }
.property-body {
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  flex: 1;
}
.property-top {
  display: flex;
  justify-content: space-between;
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--mute);
}
.property-title {
  font-family: var(--serif);
  font-weight: 400;
  font-size: 24px;
  line-height: 1.15;
  letter-spacing: -0.01em;
}
.property--large .property-title { font-size: 32px; }
.property-loc {
  font-family: var(--serif);
  font-style: italic;
  font-size: 14px;
  color: var(--mute);
  margin-bottom: 6px;
}
.property-specs {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  font-size: 13px;
  color: var(--mute);
  padding: 12px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.property-specs strong { color: var(--ink); font-weight: 500; }
.property-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: auto;
  padding-top: 12px;
}
.property-price {
  font-family: var(--serif);
  font-size: 22px;
  color: var(--ink);
}
.property--large .property-price { font-size: 28px; }
.property-more {
  font-size: 12px;
  letter-spacing: 0.04em;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--ink);
  border-bottom: 1px solid currentColor;
  padding-bottom: 2px;
}
.property-more:hover { color: var(--accent); }

.empty {
  padding: 80px;
  text-align: center;
  font-family: var(--serif);
  font-style: italic;
  font-size: 20px;
  color: var(--mute);
  border: 1px dashed var(--line);
}

/* ---------- Services ---------- */
.services {
  padding: var(--density-pad, 128px) 48px;
}
.about-block {
  max-width: 1200px;
  margin: 0 auto var(--density-pad, 128px);
  padding: 0 12px;
  display: grid;
  grid-template-columns: minmax(0, 360px) 1fr;
  gap: 64px;
  align-items: start;
}
.about-block .about-head { position: sticky; top: 100px; }
.about-block .eyebrow {
  display: block;
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 18px;
}
.about-block h2 {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(40px, 5vw, 64px);
  line-height: 1.02;
  letter-spacing: -0.02em;
  margin: 0;
}
.about-block h2 em {
  font-style: italic;
  color: var(--accent);
}
.about-block .about-body p {
  font-family: var(--serif);
  font-size: 19px;
  line-height: 1.65;
  color: var(--ink);
  margin: 0 0 18px;
}
.about-block .about-body p:last-of-type {
  margin-bottom: 0;
}
.about-block .about-tagline {
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px solid var(--line);
  font-family: var(--serif);
  font-style: italic;
  font-size: 22px;
  color: var(--accent);
}
@media (max-width: 900px) {
  .about-block {
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 0 24px;
  }
  .about-block .about-head { position: static; }
  .about-block h2 { font-size: 36px; }
  .about-block .about-body p { font-size: 17px; }
}
.about-block .btn-inline {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 28px;
  padding: 14px 26px;
  background: var(--accent);
  color: var(--bg);
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 14px;
  letter-spacing: 0.04em;
  text-decoration: none;
  border-radius: 999px;
  transition: transform .2s ease, box-shadow .2s ease, opacity .2s ease;
}
.about-block .btn-inline:hover { transform: translateY(-2px); box-shadow: 0 8px 24px rgba(0,0,0,0.12); opacity: 0.95; }
/* ── About page (standalone /sobre-nosotros/) ──────────────────────────── */
.about-page { background: var(--surface, #f7f4ee); color: var(--ink, #1d2120); }
.about-hero {
  padding: 140px 48px 80px;
  background: var(--dark, #0f1413);
  color: var(--bg, #f7f4ee);
}
.about-hero-inner { max-width: 980px; margin: 0 auto; }
.about-hero .eyebrow {
  display: block;
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 22px;
}
.about-hero h1 {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(48px, 7vw, 88px);
  line-height: 1.02;
  letter-spacing: -0.02em;
  margin: 0 0 24px;
}
.about-hero h1 em { font-style: italic; color: var(--accent); }
.about-hero-lede {
  font-family: var(--serif);
  font-size: clamp(19px, 2vw, 22px);
  line-height: 1.55;
  max-width: 720px;
  opacity: 0.85;
}
.about-story { padding: 100px 48px; }
.about-story-inner {
  max-width: 1200px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 80px;
  align-items: start;
}
.about-story-text p {
  font-family: var(--serif);
  font-size: 19px;
  line-height: 1.65;
  margin: 0 0 18px;
}
.about-story-text .about-tagline {
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px solid var(--line);
  font-family: var(--serif);
  font-style: italic;
  font-size: 24px;
  color: var(--accent);
}
.about-office { margin: 0; position: sticky; top: 100px; }
.about-office img {
  width: 100%;
  height: auto;
  border-radius: 8px;
  box-shadow: 0 18px 40px rgba(0,0,0,0.12);
  display: block;
}
.about-office figcaption {
  margin-top: 14px;
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 13px;
  letter-spacing: 0.04em;
  color: rgba(0,0,0,0.55);
}
.about-office-map {
  margin-top: 18px;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 12px 28px rgba(0,0,0,0.08);
}
.about-office-map iframe { display: block; }
.about-office-directions {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 16px;
  padding: 12px 22px;
  background: var(--ink, #1d2120);
  color: var(--bg, #f7f4ee);
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 13px;
  letter-spacing: 0.06em;
  text-decoration: none;
  border-radius: 999px;
  transition: transform .2s ease, box-shadow .2s ease;
}
.about-office-directions:hover { transform: translateY(-2px); box-shadow: 0 8px 22px rgba(0,0,0,0.18); }
.about-values {
  padding: 80px 48px;
  background: var(--bg, #f0ece4);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.about-values-inner { max-width: 1200px; margin: 0 auto; }
.about-values .eyebrow {
  display: block;
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 14px;
}
.about-values h2 {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(38px, 4.5vw, 56px);
  line-height: 1.04;
  letter-spacing: -0.018em;
  margin: 0 0 50px;
}
.about-values-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.about-values-grid article {
  padding: 36px 32px;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 4px;
}
.about-value-num {
  display: block;
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 12px;
  letter-spacing: 0.18em;
  color: var(--accent);
  margin-bottom: 22px;
}
.about-values-grid h3 {
  font-family: var(--serif);
  font-weight: 400;
  font-size: 26px;
  line-height: 1.2;
  margin: 0 0 14px;
}
.about-values-grid p {
  font-family: var(--serif);
  font-size: 16px;
  line-height: 1.6;
  margin: 0;
  opacity: 0.85;
}
.about-team-cards { padding: 100px 48px; }
.about-team-inner { max-width: 1200px; margin: 0 auto; }
.about-team-cards .eyebrow {
  display: block;
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 14px;
}
.about-team-cards h2 {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(38px, 4.5vw, 56px);
  line-height: 1.04;
  letter-spacing: -0.018em;
  margin: 0 0 16px;
}
.about-team-lede {
  font-family: var(--serif);
  font-size: 19px;
  line-height: 1.5;
  max-width: 700px;
  margin: 0 0 50px;
}
.about-team-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 40px; }
.about-team-card {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 28px;
  align-items: start;
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 4px;
  padding: 30px;
}
.about-team-photo {
  width: 200px;
  height: 240px;
  overflow: hidden;
  border-radius: 4px;
  background: var(--bg);
}
.about-team-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.about-team-photo-fallback {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--serif);
  font-size: 80px;
  color: var(--accent);
  background: var(--bg);
}
.about-team-num {
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--accent);
  margin-bottom: 10px;
}
.about-team-meta h3 {
  font-family: var(--serif);
  font-weight: 400;
  font-size: 28px;
  line-height: 1.1;
  margin: 0 0 4px;
}
.about-team-role {
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 13px;
  letter-spacing: 0.04em;
  color: rgba(0,0,0,0.6);
  margin-bottom: 4px;
}
.about-team-langs {
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--accent);
  margin-bottom: 16px;
}
.about-team-meta blockquote {
  font-family: var(--serif);
  font-style: italic;
  font-size: 16px;
  line-height: 1.5;
  margin: 0 0 18px;
  color: rgba(0,0,0,0.85);
}
.about-team-actions { display: flex; gap: 16px; }
.about-team-actions a {
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 13px;
  letter-spacing: 0.06em;
  text-decoration: underline;
  text-underline-offset: 4px;
  color: var(--ink);
}
.about-team-actions a:hover { color: var(--accent); }
.about-cta {
  padding: 100px 48px;
  background: var(--dark);
  color: var(--bg);
  text-align: center;
}
.about-cta-inner { max-width: 720px; margin: 0 auto; }
.about-cta h2 {
  font-family: var(--serif);
  font-weight: 400;
  font-size: clamp(38px, 4.8vw, 60px);
  line-height: 1.04;
  letter-spacing: -0.018em;
  margin: 0 0 16px;
}
.about-cta p {
  font-family: var(--serif);
  font-size: 19px;
  line-height: 1.5;
  opacity: 0.85;
  margin: 0 0 32px;
}
.about-cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  padding: 16px 32px;
  background: var(--accent);
  color: var(--bg);
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 14px;
  letter-spacing: 0.06em;
  text-decoration: none;
  border-radius: 999px;
  transition: transform .2s ease, box-shadow .2s ease;
}
.about-cta-btn:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(0,0,0,0.25); }
@media (max-width: 900px) {
  .about-hero { padding: 110px 24px 60px; }
  .about-story { padding: 60px 24px; }
  .about-story-inner { grid-template-columns: 1fr; gap: 40px; }
  .about-office { position: static; }
  .about-values { padding: 60px 24px; }
  .about-values-grid { grid-template-columns: 1fr; gap: 16px; }
  .about-team-cards { padding: 60px 24px; }
  .about-team-grid { grid-template-columns: 1fr; gap: 24px; }
  .about-team-card { grid-template-columns: 1fr; padding: 24px; }
  .about-team-photo { width: 100%; height: 280px; }
  .about-cta { padding: 70px 24px; }
}
.services-inner {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border: 1px solid var(--line);
}
.service-tile {
  padding: 56px 40px;
  border-right: 1px solid var(--line);
  background: var(--surface);
  display: flex;
  flex-direction: column;
  min-height: 360px;
}
.service-tile:last-child { border-right: none; }
.service-tile--dark {
  background: var(--dark);
  color: var(--bg);
  border-right-color: var(--dark);
}
.service-tile--accent {
  background: var(--accent);
  color: var(--bg);
}
.service-num {
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 11px;
  letter-spacing: 0.14em;
  opacity: 0.7;
  margin-bottom: 40px;
}
.service-tile h3 {
  font-family: var(--serif);
  font-weight: 400;
  font-size: 38px;
  line-height: 1.05;
  letter-spacing: -0.015em;
  margin-bottom: 20px;
}
.service-tile p {
  font-family: var(--serif);
  font-style: italic;
  font-size: 16px;
  line-height: 1.5;
  opacity: 0.85;
  max-width: 34ch;
}

/* ---------- Team ---------- */
.team {
  background: var(--surface);
  padding: var(--density-pad) 48px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.team-head { margin-bottom: 64px; max-width: 560px; }
.team-grid {
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: 64px;
  align-items: start;
}
.team-list {
  list-style: none;
  border-top: 1px solid var(--line);
}
.team-list li { border-bottom: 1px solid var(--line); }
.team-list button {
  width: 100%;
  display: grid;
  grid-template-columns: 48px 1fr auto;
  align-items: baseline;
  gap: 16px;
  width: 100%;
  padding: 24px 0;
  text-align: left;
  transition: padding 0.25s ease, color 0.25s ease;
}
.team-list button.is-on { padding-left: 20px; color: var(--accent); }
.team-list-idx {
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 10px;
  letter-spacing: 0.12em;
  color: var(--mute);
}
.team-list-name {
  font-family: var(--serif);
  font-size: clamp(24px, 2.4vw, 34px);
  letter-spacing: -0.015em;
}
.team-list-role {
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--mute);
}
.team-list button.is-on .team-list-role { color: var(--accent); }
.team-list-langs {
  grid-column: 2 / -1;
  margin-top: 6px;
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 10px;
  letter-spacing: 0.14em;
  color: var(--mute);
}
.team-grid { align-items: stretch; }
.team-list { display: flex; flex-direction: column; }
.team-list li { flex: 1; display: flex; }
.team-list li button { height: 100%; align-content: center; }

.team-detail {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: stretch;
}
.team-detail > .placeholder { 
  height: 100%; 
  min-height: 520px;
  align-self: stretch;
}
.team-detail-meta {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding: 8px 0;
}
.team-detail blockquote {
  font-family: var(--serif);
  font-style: italic;
  font-size: 26px;
  line-height: 1.3;
  color: var(--ink);
  position: relative;
  padding-left: 44px;
}
.team-detail blockquote .qmark {
  position: absolute;
  left: 0; top: -10px;
  font-size: 80px;
  line-height: 1;
  color: var(--accent);
  font-family: var(--serif);
}
.team-detail dl {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 20px;
  padding-top: 32px;
  border-top: 1px solid var(--line);
  margin-top: 32px;
}
.team-detail dt {
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--mute);
  margin-bottom: 6px;
}
.team-contact {
  margin-top: 28px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-top: 24px;
  border-top: 1px solid var(--line);
}
.team-contact-row {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 14px;
  color: var(--ink);
  text-decoration: none;
  transition: color 0.2s ease, transform 0.2s ease;
}
.team-contact-row:hover { color: var(--accent); transform: translateX(2px); }
.team-contact-row svg { flex-shrink: 0; }
.team-cta {
  margin-top: 24px;
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 22px;
  background: var(--ink);
  color: var(--surface);
  border: none;
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.2s ease;
}
.team-cta:hover { background: var(--accent); }
.team-modal {
  position: fixed; inset: 0;
  background: rgba(20, 18, 14, 0.6);
  backdrop-filter: blur(6px);
  display: flex; align-items: center; justify-content: center;
  z-index: 1000;
  padding: 24px;
}
.team-modal-card {
  background: var(--surface);
  width: 100%; max-width: 560px;
  padding: 40px;
  position: relative;
  max-height: 90vh; overflow-y: auto;
  border: 1px solid var(--line);
}
.team-modal-close {
  position: absolute; top: 16px; right: 20px;
  background: none; border: none;
  font-size: 28px; color: var(--mute);
  cursor: pointer; line-height: 1;
}
.team-modal-card header {
  display: flex; align-items: center; gap: 18px;
  padding-bottom: 24px; margin-bottom: 24px;
  border-bottom: 1px solid var(--line);
}
.team-modal-card header img {
  width: 64px; height: 64px;
  object-fit: cover; object-position: top;
  border-radius: 50%;
}
.team-modal-card header span {
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 10px; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--mute);
  display: block;
}
.team-modal-card header strong {
  font-family: var(--serif);
  font-size: 24px;
  display: block;
  margin: 4px 0;
}
.team-modal-card header em {
  font-style: normal;
  font-size: 12px;
  color: var(--mute);
}
.team-modal-card form { display: flex; flex-direction: column; gap: 14px; }
.team-modal-card label { display: flex; flex-direction: column; gap: 6px; }
.team-modal-card label > span {
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 10px; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--mute);
}
.team-modal-card input,
.team-modal-card textarea {
  background: var(--bg);
  border: 1px solid var(--line);
  padding: 12px 14px;
  font-family: inherit; font-size: 14px;
  color: var(--ink);
  resize: vertical;
}
.team-modal-card input:focus,
.team-modal-card textarea:focus { outline: none; border-color: var(--accent); }
.tm-row { display: flex; gap: 14px; }
.tm-row--2 > label { flex: 1; }
.tm-gdpr { flex-direction: row; align-items: flex-start; gap: 10px; }
.tm-gdpr input { width: auto; }
.tm-gdpr span { font-size: 12px; color: var(--mute); letter-spacing: normal; text-transform: none; font-family: inherit; }
.team-modal-card .btn-primary {
  margin-top: 8px;
  background: var(--ink); color: var(--surface);
  border: none; padding: 14px 22px;
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 11px; letter-spacing: 0.16em;
  text-transform: uppercase; cursor: pointer;
}
.team-modal-card .btn-primary:disabled { opacity: 0.4; cursor: not-allowed; }
.team-modal-sent { text-align: center; padding: 20px 0; }
.team-modal-sent h3 { font-family: var(--serif); font-size: 28px; margin-bottom: 12px; }
.team-modal-sent p { color: var(--mute); margin-bottom: 24px; }
.team-modal-sent .btn-ghost {
  background: transparent; border: 1px solid var(--line);
  padding: 12px 22px; cursor: pointer;
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase;
}

.team-detail dd {
  font-family: var(--serif);
  font-size: 20px;
  color: var(--ink);
}

/* ---------- Testimonials ---------- */
.testimonials {
  padding: var(--density-pad) 48px;
  background: var(--bg);
}
.testimonials-inner {
  max-width: 1000px;
  margin: 0 auto;
  text-align: center;
}
.testimonial-quote {
  font-family: var(--serif);
  font-weight: 300;
  font-size: clamp(28px, 3.4vw, 46px);
  line-height: 1.25;
  letter-spacing: -0.015em;
  color: var(--ink);
  margin: 32px auto 56px;
  text-wrap: pretty;
  animation: fadeIn 0.6s ease;
}
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}
.testimonial-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid var(--line);
  padding-top: 28px;
}
.testimonial-author {
  font-family: var(--serif);
  font-size: 18px;
  color: var(--ink);
}
.testimonial-city {
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--mute);
  margin-top: 4px;
}
.testimonial-nav { display: flex; gap: 10px; }
.testimonial-nav button {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--line);
  transition: all 0.25s;
}
.testimonial-nav button.is-on { background: var(--accent); width: 28px; border-radius: 4px; }

/* ---------- Valuation ---------- */
.valuation {
  background: var(--dark);
  color: var(--bg);
  padding: var(--density-pad) 48px;
}
.valuation-inner {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 96px;
  align-items: center;
}
.valuation-copy p {
  font-family: var(--serif);
  font-style: italic;
  font-size: 19px;
  opacity: 0.8;
  margin-top: 24px;
  max-width: 36ch;
}
.valuation-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
}
.valuation-form label {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.valuation-form label > span {
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.6);
}
.valuation-form input,
.valuation-form select,
.valuation-form textarea {
  border: 0;
  border-bottom: 1px solid rgba(255,255,255,0.3);
  background: transparent;
  padding: 10px 0;
  font-size: 16px;
  font-family: inherit;
  color: var(--bg);
  width: 100%;
  resize: vertical;
  min-height: 0;
}
.valuation-form textarea {
  border: 1px solid rgba(255,255,255,0.3);
  padding: 10px 12px;
  border-radius: 6px;
  line-height: 1.4;
  min-height: 80px;
}
.valuation-form input::placeholder,
.valuation-form textarea::placeholder { color: rgba(255,255,255,0.35); }
.valuation-form select {
  appearance: none;
  background-image:
    linear-gradient(45deg, transparent 50%, white 50%),
    linear-gradient(-45deg, transparent 50%, white 50%);
  background-position:
    calc(100% - 12px) 18px,
    calc(100% - 6px) 18px;
  background-size: 6px 6px;
  background-repeat: no-repeat;
}
.valuation-form button[type="submit"] { grid-column: 1 / -1; justify-self: start; }
.valuation-sent {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 16px;
  padding: 24px 0;
}
.valuation-sent p {
  font-family: var(--serif);
  font-style: italic;
  font-size: 20px;
  max-width: 36ch;
}

/* ---------- Journal ---------- */
.journal {
  padding: var(--density-pad) 48px;
}
.journal-head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  margin-bottom: 56px;
  gap: 24px;
}
.link-more {
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 12px;
  letter-spacing: 0.08em;
  color: var(--ink);
  border-bottom: 1px solid var(--ink);
  padding-bottom: 2px;
}
.link-more:hover { color: var(--accent); border-color: var(--accent); }
.journal-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
}
.journal-card h3 {
  font-family: var(--serif);
  font-weight: 400;
  font-size: 24px;
  line-height: 1.2;
  margin: 12px 0 16px;
  letter-spacing: -0.01em;
}
.journal-meta {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-top: 20px;
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--mute);
}
.journal-meta .dot {
  width: 3px; height: 3px; border-radius: 50%; background: var(--accent);
}
.journal-card a {
  font-size: 13px;
  border-bottom: 1px solid currentColor;
  padding-bottom: 2px;
  letter-spacing: 0.04em;
  color: var(--ink);
}
.journal-card a:hover { color: var(--accent); }

/* ---------- Zones ---------- */
.zones {
  padding: var(--density-pad) 48px;
  background: var(--surface);
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.zones-head {
  max-width: 640px;
  margin: 0 auto 56px;
  text-align: center;
}
.zones-head .eyebrow { display: block; }
.zones-head .section-sub { margin-left: auto; margin-right: auto; }
.zones-list {
  list-style: none;
  max-width: 1100px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  border-top: 1px solid var(--line);
}
.zones-list li { border-bottom: 1px solid var(--line); }
.zones-list li:nth-child(odd) { border-right: 1px solid var(--line); }
.zones-list a {
  display: grid;
  grid-template-columns: 48px 1fr auto 24px;
  gap: 20px;
  align-items: baseline;
  padding: 24px 28px;
  transition: padding 0.25s, background 0.25s;
}
.zones-list a:hover {
  padding-left: 36px;
  background: var(--bg);
  color: var(--accent);
}
.zones-idx {
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 10px;
  letter-spacing: 0.12em;
  color: var(--mute);
}
.zones-name {
  font-family: var(--serif);
  font-size: clamp(22px, 2vw, 30px);
  letter-spacing: -0.01em;
}
.zones-count {
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 11px;
  letter-spacing: 0.08em;
  color: var(--mute);
}
@media (max-width: 900px) {
  .zones-list { grid-template-columns: 1fr; }
  .zones-list li:nth-child(odd) { border-right: none; }
}
.signature-section {
  padding: 96px 48px;
  background: var(--surface);
  border-top: 1px solid var(--line);
  text-align: center;
}
.signature-inner {
  max-width: 640px;
  margin: 0 auto;
}
.signature-inner img {
  margin: 32px auto 24px;
  max-width: 300px;
  display: block;
}
.signature-inner p {
  font-family: var(--serif);
  font-style: italic;
  font-size: 19px;
  color: var(--mute);
}

/* ---------- Footer ---------- */
.footer {
  background: var(--dark);
  color: var(--bg);
  padding: 80px 48px 32px;
}
.footer-top {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 56px;
  padding-bottom: 56px;
  border-bottom: 1px solid rgba(255,255,255,0.12);
  max-width: 1400px;
  margin: 0 auto;
}
.footer-logo {
  max-width: 220px;
  margin-bottom: 24px;
}
.footer-tag {
  font-family: var(--serif);
  font-style: italic;
  font-size: 17px;
  opacity: 0.75;
  line-height: 1.5;
}
.footer-col h4 {
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(255,255,255,0.5);
  margin-bottom: 20px;
  font-weight: 400;
}
.footer-col p {
  font-size: 14px;
  line-height: 1.7;
  opacity: 0.85;
  margin-bottom: 12px;
}
.footer-col a:hover { color: var(--accent); }
.footer-news {
  display: flex;
  border-bottom: 1px solid rgba(255,255,255,0.3);
  margin-top: 8px;
}
.footer-news input {
  flex: 1;
  padding: 10px 0;
  font-size: 14px;
  color: var(--bg);
}
.footer-news input::placeholder { color: rgba(255,255,255,0.4); }
.footer-news button {
  color: var(--bg);
  padding: 10px 4px;
  font-size: 18px;
}
.footer-news button:hover { color: var(--accent); }
.footer-bottom {
  max-width: 1400px;
  margin: 32px auto 0;
  display: flex;
  justify-content: space-between;
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  opacity: 0.55;
  flex-wrap: wrap;
  gap: 16px;
}
.footer-links { display: flex; gap: 24px; }

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
  .topbar-inner { grid-template-columns: auto 1fr; padding: 16px 24px; }
  .nav { display: none; }
  .hero, .stats, .searchbar, .featured, .services, .team, .testimonials, .valuation, .journal, .footer, .signature-section { padding-left: 24px; padding-right: 24px; }
  .hero-grid { grid-template-columns: 1fr; gap: 40px; }
  .hero-right { max-width: 100%; justify-self: stretch; grid-column: 1; grid-row: 2; }
  .hero-bottom { grid-row: 3; }
  .stats-inner { grid-template-columns: repeat(2, 1fr); }
  .stat { border-left: none; padding-left: 0; }
  .searchbar-inner { grid-template-columns: 1fr; }
  .searchbar-fields { grid-template-columns: repeat(2, 1fr); }
  .featured-hero { grid-template-columns: 1fr; }
  .services-inner { grid-template-columns: 1fr; }
  .service-tile { border-right: none; border-bottom: 1px solid var(--line); }
  .team-grid { grid-template-columns: 1fr; }
  .team-detail { grid-template-columns: 1fr; }
  .valuation-inner { grid-template-columns: 1fr; gap: 40px; }
  .valuation-form { grid-template-columns: 1fr; }
  .journal-grid { grid-template-columns: 1fr; }
  .footer-top { grid-template-columns: 1fr 1fr; }
}

/* ---------- Property detail (interior) ---------- */
.detail { padding: 24px 48px 0; background: var(--bg); }
.detail-breadcrumb {
  display: flex; align-items: center; gap: 20px;
  padding: 12px 0 24px;
  border-bottom: 1px solid var(--line);
  font-size: 11.5px; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--mute);
}
.detail-breadcrumb strong { color: var(--ink); font-weight: 500; letter-spacing: 0.12em; }
.detail-back {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 14px; border: 1px solid var(--line); border-radius: 999px;
  color: var(--ink); font-weight: 500; transition: all .2s;
}
.detail-back:hover { background: var(--ink); color: var(--bg); border-color: var(--ink); }

.detail-gallery { padding: 32px 0; display: grid; gap: 12px; }
.detail-main {
  position: relative; aspect-ratio: 16/9; overflow: hidden;
  background: var(--mute);
}
.detail-main img { width: 100%; height: 100%; object-fit: cover; }
.detail-main-overlay {
  position: absolute; inset: 0; display: flex; justify-content: space-between; align-items: flex-end;
  padding: 24px; pointer-events: none;
  background: linear-gradient(to bottom, transparent 60%, rgba(0,0,0,.5));
}
/* 2026-08-21: el contador es ahora un BOTÓN que abre el mosaico — el botón
   "Ver las N fotos" de la esquina tuvo 0 clics en 4 semanas de replays y la
   mirada va al contador. Chip oscuro tocable, mismo sitio de siempre. */
.detail-img-label {
  color: #fff; font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase;
  font-family: var(--serif); font-style: italic; font-weight: 400;
  pointer-events: auto; cursor: pointer; border: none;
  display: inline-flex; align-items: center; gap: 7px;
  background: rgba(10, 16, 16, 0.45); border-radius: 6px; padding: 8px 12px;
  -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px);
}
.detail-img-label:hover { background: rgba(10, 16, 16, 0.62); }
.detail-img-label svg { flex: 0 0 auto; opacity: 0.9; }

/* Bloque de propiedades de la zona al pie de los posts del blog (2026-08-21) */
.noe-post-props { margin-top: 64px; }
.noe-post-props > h2 { margin-bottom: 22px; }
.noe-post-props-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
@media (max-width: 900px) { .noe-post-props-grid { grid-template-columns: 1fr; } }
.noe-post-props .property-save { display: none; }
.noe-post-props-cta { display: inline-flex; align-items: center; gap: 8px; margin-top: 24px; font-weight: 600; }
.detail-main-nav { display: flex; gap: 8px; pointer-events: auto; }
.detail-main-nav button {
  width: 44px; height: 44px; border-radius: 50%;
  background: rgba(255,255,255,.95); color: var(--ink);
  display: grid; place-items: center; transition: transform .15s;
}
.detail-main-nav button:hover { transform: scale(1.08); }

.detail-thumbs { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; }
.detail-thumbs button {
  aspect-ratio: 4/3; overflow: hidden; border: 2px solid transparent;
  padding: 0; transition: border-color .2s; opacity: .75;
}
.detail-thumbs button.is-on { border-color: var(--accent); opacity: 1; }
.detail-thumbs button:hover { opacity: 1; }
.detail-thumbs img { width: 100%; height: 100%; object-fit: cover; }

.detail-head {
  display: grid; grid-template-columns: 1fr 400px; gap: 60px;
  padding: 48px 0; border-bottom: 1px solid var(--line);
  align-items: start;
}
.detail-head-main .eyebrow { margin-bottom: 20px; display: block; }
.detail-head-main .display { margin-bottom: 40px; }
.detail-specs {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px 40px;
  padding-top: 32px; border-top: 1px solid var(--line);
}
.detail-specs > div { display: flex; flex-direction: column; gap: 6px; }
.detail-specs .k {
  font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--mute);
}
.detail-specs .v {
  font-family: var(--serif); font-size: 32px; font-weight: 400;
}

.detail-price-card {
  background: var(--dark); color: #f6f2ea; padding: 32px;
  position: sticky; top: 90px;
}
.detail-price-label {
  font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase;
  color: rgba(246,242,234,.55); display: block; margin-bottom: 8px;
}
.detail-price-n {
  font-family: var(--serif); font-size: 44px; font-weight: 400;
  display: block; line-height: 1; margin-bottom: 4px;
}
.detail-price-m { font-size: 13px; color: rgba(246,242,234,.6); display: block; margin-bottom: 28px; }
.detail-price-actions { display: flex; flex-direction: column; gap: 10px; margin-bottom: 28px; }
.detail-price-card .btn-primary {
  width: 100%; background: var(--accent); color: var(--dark);
  padding: 16px; border: none; font-weight: 600;
  font-size: 11.5px; letter-spacing: 0.14em; text-transform: uppercase;
  transition: transform .15s;
}
.detail-price-card .btn-primary:hover { transform: translateY(-2px); }
.detail-save {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 14px; border: 1px solid rgba(246,242,234,.2);
  color: #f6f2ea; font-size: 11.5px; letter-spacing: 0.14em; text-transform: uppercase;
  transition: all .2s;
}
.detail-save:hover { border-color: rgba(246,242,234,.5); }
.detail-save.is-saved { color: var(--accent); border-color: var(--accent); }

.detail-agent {
  display: flex; gap: 14px; align-items: center;
  padding-top: 24px; border-top: 1px solid rgba(246,242,234,.15);
}
.detail-agent img { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; }
.detail-agent > div { display: flex; flex-direction: column; gap: 2px; font-size: 13px; }
.detail-agent span { color: rgba(246,242,234,.55); font-size: 10.5px; letter-spacing: 0.12em; text-transform: uppercase; }
.detail-agent strong { font-family: var(--serif); font-size: 17px; font-weight: 400; }
.detail-agent a { color: var(--accent); text-decoration: none; font-size: 12.5px; }

.detail-body { padding: 56px 0; }
.detail-tabs {
  display: flex; gap: 8px; border-bottom: 1px solid var(--line);
  margin-bottom: 40px;
}
.detail-tabs button {
  padding: 14px 20px; font-size: 11.5px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--mute); border-bottom: 2px solid transparent; margin-bottom: -1px;
  transition: all .2s;
}
.detail-tabs button.is-on { color: var(--ink); border-color: var(--ink); }
.detail-tabs button:hover { color: var(--ink); }

.detail-desc { max-width: 760px; font-size: 16px; line-height: 1.7; }
.detail-desc .lead {
  font-family: var(--serif); font-size: 22px; line-height: 1.5;
  margin-bottom: 24px; color: var(--ink);
}
.detail-desc p { margin-bottom: 18px; color: rgba(30,28,25,.8); }

.detail-features {
  list-style: none; display: grid; grid-template-columns: repeat(2, 1fr); gap: 0;
  max-width: 720px;
}
.detail-features li {
  display: flex; justify-content: space-between;
  padding: 18px 0; border-bottom: 1px solid var(--line);
  font-size: 14px;
}
.detail-features span { color: var(--mute); }
.detail-features strong { font-family: var(--serif); font-weight: 400; font-size: 17px; }

.detail-plano .caption { font-size: 12px; color: var(--mute); margin-top: 12px; font-style: italic; }

.detail-location { display: grid; grid-template-columns: 1.4fr 1fr; gap: 40px; align-items: start; }
.detail-poi { list-style: none; }
.detail-poi li {
  display: flex; justify-content: space-between; align-items: baseline;
  padding: 16px 0; border-bottom: 1px solid var(--line); font-size: 13.5px;
}
.detail-poi span { color: var(--mute); }
.detail-poi strong { font-family: var(--serif); font-weight: 400; font-size: 15.5px; }

.detail-cta {
  display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: center;
  background: var(--cream, #efe8da); padding: 48px;
  margin: 0 0 48px;
}
.detail-cta h3 { font-family: var(--serif); font-size: 32px; font-weight: 400; margin-bottom: 8px; }
.detail-cta p { color: var(--mute); font-size: 15px; }
.detail-cta-actions { display: flex; gap: 12px; }
.detail-cta .btn-primary, .detail-cta .btn-ghost {
  padding: 16px 28px; font-size: 11.5px; letter-spacing: 0.14em; text-transform: uppercase;
  font-weight: 600; border: none; transition: all .15s;
}
.detail-cta .btn-primary { background: var(--ink); color: var(--bg); }
.detail-cta .btn-ghost { background: transparent; color: var(--ink); border: 1px solid var(--ink); }
.detail-cta .btn-primary:hover, .detail-cta .btn-ghost:hover { transform: translateY(-2px); }

.display--small { font-size: clamp(40px, 5vw, 68px); line-height: 1; }

@media (max-width: 900px) {
  .detail { padding: 20px 20px 0; }
  .detail-head { grid-template-columns: 1fr; gap: 32px; }
  .detail-price-card { position: static; }
  .detail-specs { grid-template-columns: repeat(2, 1fr); gap: 24px; }
  .detail-thumbs { grid-template-columns: repeat(4, 1fr); }
  .detail-location { grid-template-columns: 1fr; }
  .detail-cta { grid-template-columns: 1fr; padding: 32px; }
  .detail-features { grid-template-columns: 1fr; }
}

/* ---------- Google My Business reviews ---------- */
.gmb { padding: 128px 48px; background: var(--bg); border-top: 1px solid var(--line); }
.gmb-inner { max-width: 1440px; margin: 0 auto; }
.gmb-head {
  display: grid; grid-template-columns: 380px 1fr; gap: 80px;
  align-items: start; margin-bottom: 64px;
}
.gmb-badge {
  background: #fff; border: 1px solid var(--line);
  padding: 32px; display: flex; flex-direction: column; gap: 20px;
  box-shadow: 0 1px 0 rgba(0,0,0,.02), 0 12px 40px -24px rgba(0,0,0,.18);
}
.gmb-logo { flex-shrink: 0; }
.gmb-score { display: flex; flex-direction: column; gap: 8px; }
.gmb-num {
  font-family: var(--serif); font-size: 72px; font-weight: 400; line-height: 1;
  color: var(--ink); letter-spacing: -0.03em;
}
.gmb-stars { display: flex; gap: 3px; }
.gmb-count { font-size: 13px; color: var(--mute); }
.gmb-count strong { color: var(--ink); font-weight: 500; }

.gmb-meta { display: flex; flex-direction: column; gap: 24px; padding-top: 12px; }
.gmb-meta .eyebrow { margin: 0; }
.gmb-meta .section-title { font-size: clamp(32px, 3.6vw, 52px); }
.gmb-link {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase;
  font-weight: 500; color: var(--ink); align-self: flex-start;
  padding-bottom: 4px; border-bottom: 1px solid var(--ink);
  transition: gap .2s;
}
.gmb-link:hover { gap: 14px; }

.gmb-grid {
  display: grid; grid-template-columns: repeat(5, 1fr); gap: 16px;
}
.gmb-card {
  background: #fff; border: 1px solid var(--line);
  padding: 24px; display: flex; flex-direction: column; gap: 14px;
  transition: transform .2s, box-shadow .2s;
}
.gmb-card:hover { transform: translateY(-4px); box-shadow: 0 20px 40px -24px rgba(0,0,0,.2); }
.gmb-card header { display: flex; align-items: center; gap: 12px; }
.gmb-av {
  width: 40px; height: 40px; border-radius: 50%; flex-shrink: 0;
  display: grid; place-items: center;
  color: #fff; font-family: var(--serif); font-size: 18px; font-weight: 500;
}
.gmb-name { font-family: var(--serif); font-size: 16px; font-weight: 500; }
.gmb-when { font-size: 11px; color: var(--mute); }
.gmb-card header > div:nth-child(2) { flex: 1; }
.gmb-card-logo { flex-shrink: 0; opacity: .85; }
.gmb-stars-row { display: flex; gap: 2px; }
.gmb-card p {
  font-size: 13px; line-height: 1.65; color: rgba(30,28,25,.78);
  display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden;
}

@media (max-width: 1100px) {
  .gmb-head { grid-template-columns: 1fr; gap: 40px; }
  .gmb-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .gmb { padding: 80px 24px; }
  .gmb-grid { grid-template-columns: 1fr; }
}

/* ---------- WhatsApp link style ---------- */
.cta-wa { display: inline-flex; align-items: center; gap: 8px; }
.cta-wa .wa-icon { color: #25D366; transition: transform .15s; }
.cta-wa:hover .wa-icon { transform: scale(1.12); }
.wa-link { display: inline-flex; align-items: center; gap: 6px; color: inherit; }
.wa-link .wa-icon { color: #25D366; flex-shrink: 0; }

/* ---------- Detail inline form ---------- */
.detail-form {
  display: grid; grid-template-columns: 1fr 1fr; gap: 60px;
  padding: 80px 0 96px; border-top: 1px solid var(--line);
  align-items: start;
}
.detail-form-side { padding-right: 40px; }
.detail-form-side .eyebrow { margin-bottom: 20px; display: block; }
.detail-form-side .section-title { font-size: clamp(36px, 4vw, 56px); margin-bottom: 24px; }
.detail-form-lead { font-size: 16.5px; line-height: 1.65; color: rgba(30,28,25,.78); margin-bottom: 36px; max-width: 52ch; }
.detail-form-benefits { list-style: none; margin-bottom: 36px; }
.detail-form-benefits li {
  display: grid; grid-template-columns: 40px 1fr; gap: 16px;
  padding: 16px 0; border-bottom: 1px solid var(--line); font-size: 14px;
  color: rgba(30,28,25,.7);
}
.detail-form-benefits span {
  font-family: var(--serif); font-style: italic; font-weight: 300;
  font-size: 18px; color: var(--accent); letter-spacing: -0.02em;
}
.detail-form-benefits strong { color: var(--ink); font-weight: 500; margin-right: 4px; }
.detail-form-contact { display: flex; flex-direction: column; gap: 10px; font-size: 14px; }
.detail-form-contact a { color: var(--ink); }
.detail-form-contact a:hover { color: var(--accent); }

.detail-form-card {
  background: #fff; border: 1px solid var(--line);
  padding: 36px; display: flex; flex-direction: column; gap: 18px;
  box-shadow: 0 2px 0 rgba(0,0,0,.02), 0 30px 60px -40px rgba(0,0,0,.25);
}
.detail-form-ref {
  padding: 14px 16px; background: var(--bg); border: 1px solid var(--line);
  display: flex; flex-direction: column; gap: 2px;
}
.detail-form-ref span {
  font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--mute);
}
.detail-form-ref strong { font-family: var(--serif); font-size: 15px; font-weight: 500; }
.detail-form-row { display: flex; flex-direction: column; gap: 8px; }
.detail-form-row--2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.detail-form-card label { display: flex; flex-direction: column; gap: 6px; }
.detail-form-card label > span {
  font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--mute); font-weight: 500;
}
.detail-form-card input,
.detail-form-card select,
.detail-form-card textarea {
  padding: 14px 16px; background: var(--bg); border: 1px solid var(--line);
  font-size: 14px; color: var(--ink); font-family: inherit;
  transition: border-color .15s, background .15s;
  border-radius: 0;
}
.detail-form-card input:focus,
.detail-form-card select:focus,
.detail-form-card textarea:focus {
  border-color: var(--ink); background: #fff;
}
.detail-form-card textarea { resize: vertical; min-height: 100px; line-height: 1.55; }

.detail-form-gdpr {
  display: flex !important; flex-direction: row !important; gap: 12px;
  align-items: flex-start; font-size: 12.5px; line-height: 1.55;
  color: var(--mute); padding: 4px 0;
}
.detail-form-gdpr input { width: 16px; height: 16px; margin-top: 2px; accent-color: var(--accent); }
.detail-form-gdpr a { color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }

.detail-form-submit {
  display: inline-flex !important; align-items: center; justify-content: center; gap: 10px;
  padding: 18px; background: var(--ink); color: var(--bg); border: none;
  font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 600;
  transition: all .2s;
}
.detail-form-submit:not(:disabled):hover {
  background: var(--accent); transform: translateY(-1px);
}
.detail-form-submit:disabled { opacity: .4; cursor: not-allowed; }
.detail-form-fine {
  font-size: 11.5px; color: var(--mute); text-align: center;
  letter-spacing: 0.02em; margin-top: -4px;
}

.detail-form-sent {
  align-items: center; text-align: center; padding: 56px 36px; gap: 20px;
}
.detail-form-tick { color: var(--accent); }
.detail-form-sent h4 { font-family: var(--serif); font-size: 28px; font-weight: 400; }
.detail-form-sent p { color: rgba(30,28,25,.72); font-size: 14.5px; line-height: 1.6; max-width: 44ch; }
.detail-form-sent .btn-ghost {
  margin-top: 16px; padding: 14px 26px; background: transparent;
  border: 1px solid var(--ink); color: var(--ink);
  font-size: 11.5px; letter-spacing: 0.14em; text-transform: uppercase; font-weight: 600;
}

@media (max-width: 900px) {
  .detail-form { grid-template-columns: 1fr; gap: 40px; padding: 56px 0; }
  .detail-form-side { padding-right: 0; }
  .detail-form-row--2 { grid-template-columns: 1fr; }
}


/* ======================================================
   Property card — buy/rent operation badge
====================================================== */
.property-op {
  position: absolute;
  top: 16px; left: 16px;
  z-index: 2;
  padding: 6px 12px;
  background: var(--ink);
  color: var(--surface);
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 600;
}
.property-op--alquiler { background: var(--accent); color: #fff; }
.property-op--obra-nueva { background: var(--surface); color: var(--ink); border: 1px solid var(--ink); }
.property-tag { left: auto; right: 16px; top: 56px; }
.property-price small {
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 12px;
  font-weight: 400;
  color: var(--mute);
  letter-spacing: 0.04em;
  margin-left: 4px;
}

/* ======================================================
   Zones — buy/rent counts
====================================================== */
.zones-list a { 
  display: grid;
  grid-template-columns: 56px 1fr auto auto;
  align-items: center;
  gap: 24px;
}
.zones-counts {
  display: flex;
  gap: 18px;
}
.zones-count {
  display: flex; flex-direction: column; align-items: flex-end;
  min-width: 60px;
}
.zones-count em {
  font-style: normal;
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 9px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--mute);
  margin-bottom: 2px;
}
.zones-count strong {
  font-family: var(--serif);
  font-size: 22px;
  letter-spacing: -0.01em;
  color: var(--ink);
}
.zones-count--alquiler em { color: var(--accent); }
.zones-count--alquiler strong { color: var(--accent); }

@media (max-width: 700px) {
  .zones-list a { grid-template-columns: 40px 1fr; gap: 12px; }
  .zones-counts { grid-column: 1 / -1; justify-content: flex-start; padding-top: 6px; }
}

/* ======================================================
   Valuation — perks list
====================================================== */
.valuation-perks {
  list-style: none;
  margin: 32px 0 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.valuation-perks li {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-left: 28px;
  position: relative;
  color: rgba(244, 238, 226, 0.92);
}
.valuation-perks li::before {
  content: '';
  position: absolute;
  left: 0; top: 8px;
  width: 14px; height: 8px;
  border-left: 1.5px solid var(--accent);
  border-bottom: 1.5px solid var(--accent);
  transform: rotate(-45deg);
}
.valuation-perks strong {
  font-family: var(--serif);
  font-size: 19px;
  font-weight: 500;
  letter-spacing: -0.01em;
  color: #f4eee2;
}
.valuation-perks span {
  font-size: 13.5px;
  color: rgba(244, 238, 226, 0.65);
}
.valuation-record {
  margin-top: 36px;
  padding: 24px 28px;
  border-left: 2px solid var(--accent);
  background: rgba(255, 255, 255, 0.04);
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 22px;
  align-items: center;
}
.valuation-record-num {
  font-family: var(--serif);
  font-size: 56px;
  letter-spacing: -0.04em;
  color: var(--accent);
  line-height: 0.9;
}
.valuation-record-txt {
  font-size: 13.5px;
  color: rgba(244, 238, 226, 0.78);
  line-height: 1.45;
}
.valuation-copy .btn-inline-light { margin-top: 28px; }
.valuation-form-title {
  font-family: var(--serif);
  font-size: 24px;
  letter-spacing: -0.01em;
  margin-bottom: 8px;
  color: #f4eee2;
}
.valuation-form select option {
  color: var(--ink);
  background: var(--surface);
}
.valuation-fineprint {
  display: block;
  margin-top: 14px;
  font-size: 11.5px;
  color: var(--mute);
  line-height: 1.5;
}

/* ======================================================
   Home Staging — page
====================================================== */
.hs-page { padding-top: 24px; }

/* Hero */
.hs-hero {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  padding: 80px var(--density-pad, 128px) 100px;
  border-bottom: 1px solid var(--line);
}
.hs-hero-title {
  font-family: var(--serif);
  font-size: clamp(56px, 7vw, 104px);
  font-weight: 400;
  line-height: 0.95;
  letter-spacing: -0.03em;
  margin: 24px 0 32px;
}
.hs-hero-title em {
  font-style: italic;
  color: var(--accent);
}
.hs-hero-lede {
  font-size: 17px;
  line-height: 1.6;
  color: var(--mute);
  max-width: 480px;
  margin-bottom: 48px;
}
.hs-hero-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  padding-top: 32px;
  border-top: 1px solid var(--line);
}
.hs-hero-stats div { display: flex; flex-direction: column; gap: 4px; }
.hs-hero-stats strong {
  font-family: var(--serif);
  font-size: 38px;
  font-weight: 400;
  letter-spacing: -0.03em;
  color: var(--accent);
}
.hs-hero-stats span {
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--mute);
  line-height: 1.4;
}
.hs-hero-media {
  position: relative;
  aspect-ratio: 4 / 5;
  overflow: hidden;
}
.hs-hero-media img { width: 100%; height: 100%; object-fit: cover; }
.hs-hero-badge {
  position: absolute;
  bottom: 24px; left: 24px;
  padding: 10px 16px;
  background: var(--surface);
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 600;
}

/* Compare */
.hs-compare {
  padding: 100px var(--density-pad, 128px);
  border-bottom: 1px solid var(--line);
}
.hs-compare-head { max-width: 720px; margin-bottom: 56px; }
.hs-cases {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  margin-bottom: 32px;
}
.hs-case-tab {
  text-align: left;
  padding: 22px 24px;
  border-right: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  gap: 4px;
  background: transparent;
  transition: background 0.2s ease;
  cursor: pointer;
}
.hs-case-tab:last-child { border-right: none; }
.hs-case-tab:hover { background: var(--surface); }
.hs-case-tab.is-on { background: var(--ink); color: var(--surface); }
.hs-case-tab.is-on .hs-case-ref,
.hs-case-tab.is-on .hs-case-city { color: rgba(255, 255, 255, 0.6); }
.hs-case-ref {
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--mute);
}
.hs-case-name {
  font-family: var(--serif);
  font-size: 22px;
  letter-spacing: -0.01em;
}
.hs-case-city {
  font-size: 12px;
  color: var(--mute);
  letter-spacing: 0.02em;
}

.hs-compare-frame {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #000;
  user-select: none;
}
.hs-compare-img {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
}
.hs-compare-img--before { z-index: 2; }
.hs-compare-label {
  position: absolute;
  top: 24px;
  padding: 8px 14px;
  background: var(--surface);
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--ink);
  z-index: 4;
}
.hs-compare-label--before { left: 24px; }
.hs-compare-label--after { right: 24px; background: var(--accent); color: #fff; }
.hs-compare-divider {
  position: absolute;
  top: 0; bottom: 0;
  width: 2px;
  background: var(--surface);
  transform: translateX(-50%);
  z-index: 5;
  pointer-events: none;
}
.hs-compare-handle {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 44px; height: 44px;
  background: var(--surface);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: var(--ink);
  box-shadow: 0 4px 16px rgba(0,0,0,0.3);
}
.hs-compare-range {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  opacity: 0;
  cursor: ew-resize;
  z-index: 6;
  margin: 0;
}

.hs-case-meta {
  margin-top: 32px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.hs-case-meta > div {
  padding: 22px 24px;
  border-right: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.hs-case-meta > div:last-child { border-right: none; }
.hs-case-meta dt {
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--mute);
}
.hs-case-meta dd {
  font-family: var(--serif);
  font-size: 26px;
  letter-spacing: -0.02em;
}
.hs-case-meta .hs-free { color: var(--accent); }
.hs-case-note {
  margin-top: 28px;
  font-family: var(--serif);
  font-style: italic;
  font-size: 19px;
  color: var(--mute);
  max-width: 720px;
  line-height: 1.5;
}

/* Process */
.hs-process {
  padding: 100px var(--density-pad, 128px);
  border-bottom: 1px solid var(--line);
}
.hs-process-head { max-width: 640px; margin-bottom: 64px; }
.hs-process-grid {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border-top: 1px solid var(--line);
}
.hs-process-grid li {
  padding: 36px 32px 40px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  gap: 12px;
  position: relative;
}
.hs-process-grid li:last-child { border-right: none; }
.hs-step-num {
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--accent);
  margin-bottom: 8px;
}
.hs-process-grid h3 {
  font-family: var(--serif);
  font-size: 24px;
  font-weight: 500;
  letter-spacing: -0.01em;
  line-height: 1.2;
}
.hs-process-grid p {
  font-size: 14px;
  color: var(--mute);
  line-height: 1.6;
  flex: 1;
}
.hs-step-time {
  margin-top: 12px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink);
}

/* Includes */
.hs-includes {
  padding: 100px var(--density-pad, 128px);
  background: var(--surface);
  border-bottom: 1px solid var(--line);
}
.hs-includes-head { max-width: 640px; margin-bottom: 56px; }
.hs-includes-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.hs-include {
  padding: 28px 24px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.hs-include-num {
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 10px;
  letter-spacing: 0.18em;
  color: var(--mute);
}
.hs-include h4 {
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 500;
  letter-spacing: -0.01em;
}
.hs-include p {
  font-size: 13px;
  color: var(--mute);
  line-height: 1.55;
}

/* Quote */
.hs-quote {
  padding: 100px var(--density-pad, 128px);
  text-align: center;
  border-bottom: 1px solid var(--line);
}
.hs-quote blockquote {
  font-family: var(--serif);
  font-size: clamp(28px, 3vw, 40px);
  font-weight: 400;
  line-height: 1.3;
  letter-spacing: -0.02em;
  max-width: 880px;
  margin: 0 auto;
  position: relative;
  padding: 0 60px;
}
.hs-quote blockquote .qmark {
  font-size: 80px;
  position: absolute;
  left: 0; top: -30px;
  color: var(--accent);
  font-family: var(--serif);
  line-height: 1;
}
.hs-quote blockquote strong {
  background: linear-gradient(transparent 60%, color-mix(in oklch, var(--accent) 30%, transparent) 60%);
  font-weight: 500;
  font-style: normal;
}
.hs-quote cite {
  display: block;
  margin-top: 32px;
  font-style: normal;
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--mute);
}

/* CTA */
.hs-cta {
  background: var(--dark);
  color: #f4eee2;
  padding: 110px var(--density-pad, 128px);
}
.hs-cta-inner { max-width: 720px; }
.hs-cta-inner .section-title { margin-bottom: 24px; }
.hs-cta-inner p {
  font-size: 17px;
  line-height: 1.6;
  color: rgba(244, 238, 226, 0.7);
  margin-bottom: 40px;
  max-width: 560px;
}
.hs-cta-actions {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}
.btn-ghost-light {
  display: inline-flex;
  align-items: center;
  padding: 16px 28px;
  border: 1px solid rgba(244, 238, 226, 0.3);
  color: #f4eee2;
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-weight: 600;
  transition: border-color 0.2s ease, background 0.2s ease;
}
.btn-ghost-light:hover {
  border-color: var(--accent);
  background: rgba(255, 255, 255, 0.05);
}

@media (max-width: 1100px) {
  .hs-hero { grid-template-columns: 1fr; gap: 48px; padding: 64px 40px; }
  .hs-hero-stats { grid-template-columns: repeat(3, 1fr); gap: 16px; }
  .hs-hero-stats strong { font-size: 28px; }
  .hs-cases { grid-template-columns: 1fr; }
  .hs-case-tab { border-right: none; border-bottom: 1px solid var(--line); }
  .hs-case-tab:last-child { border-bottom: none; }
  .hs-case-meta { grid-template-columns: repeat(2, 1fr); }
  .hs-case-meta > div { border-right: 1px solid var(--line); }
  .hs-case-meta > div:nth-child(2n) { border-right: none; }
  .hs-case-meta dd { font-size: 22px; }
  .hs-process-grid { grid-template-columns: repeat(2, 1fr); }
  .hs-includes-grid { grid-template-columns: repeat(2, 1fr); }
  .hs-compare,
  .hs-process,
  .hs-includes,
  .hs-quote,
  .hs-cta { padding-left: 40px; padding-right: 40px; }
}
@media (max-width: 640px) {
  .hs-process-grid { grid-template-columns: 1fr; }
  .hs-includes-grid { grid-template-columns: 1fr; }
  .hs-case-meta { grid-template-columns: 1fr; }
  .hs-case-meta > div { border-right: none; border-bottom: 1px solid var(--line); }
  .hs-quote blockquote { padding: 0; }
  .hs-quote blockquote .qmark { position: static; display: block; }
}


/* ======================================================
   Valuation — staging side + antes/después comparator
====================================================== */
.valuation-form .vf-full { grid-column: 1 / -1; }
.valuation-copy .valuation-form { margin-top: 36px; }

.valuation-staging {
  display: flex;
  flex-direction: column;
  gap: 22px;
  padding: 36px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
}
.vs-title {
  font-family: var(--serif);
  font-weight: 400;
  font-size: 44px;
  line-height: 1.05;
  letter-spacing: -0.02em;
  color: var(--surface);
  margin: 0;
}
.vs-title em {
  font-style: italic;
  color: var(--accent);
}
.vs-lede {
  font-family: var(--serif);
  font-style: italic;
  font-size: 17px;
  line-height: 1.55;
  opacity: 0.85;
  max-width: 44ch;
  margin: 0;
}
.vs-perks {
  list-style: none;
  margin: 6px 0 4px;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px 24px;
}
.vs-perks li {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding-left: 14px;
  border-left: 1px solid rgba(255,255,255,0.18);
}
.vs-perks strong {
  font-weight: 500;
  font-size: 14px;
  color: var(--surface);
  letter-spacing: -0.005em;
}
.vs-perks span {
  font-size: 12.5px;
  opacity: 0.65;
  line-height: 1.4;
}

.valuation-compare {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #000;
  user-select: none;
  margin-top: 6px;
}
.vc-img {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
}
.vc-img--before {
  z-index: 2;
  /* Same image, processed to look outdated/unstaged */
  filter: grayscale(0.55) sepia(0.25) brightness(0.75) contrast(0.9);
}
.vc-img--before::after {
  /* Subtle dingy haze + vignette to suggest neglect */
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 50% 50%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.45) 100%),
    linear-gradient(180deg, rgba(120,90,55,0.15), rgba(60,45,30,0.18));
  mix-blend-mode: multiply;
}
.vc-label {
  position: absolute;
  top: 16px;
  padding: 6px 11px;
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 9.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 600;
  z-index: 4;
}
.vc-label--before {
  left: 16px;
  background: rgba(255,255,255,0.92);
  color: #2b1f12;
}
.vc-label--after {
  right: 16px;
  background: var(--accent);
  color: #fff;
}
.vc-divider {
  position: absolute;
  top: 0; bottom: 0;
  width: 2px;
  background: var(--surface);
  transform: translateX(-50%);
  z-index: 5;
  pointer-events: none;
}
.vc-handle {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 38px; height: 38px;
  background: var(--surface);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: var(--ink);
  box-shadow: 0 4px 16px rgba(0,0,0,0.4);
}
.vc-range {
  position: absolute;
  inset: 0;
  width: 100%; height: 100%;
  opacity: 0;
  cursor: ew-resize;
  z-index: 6;
  margin: 0;
}

.vs-caption {
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 11px;
  letter-spacing: 0.04em;
  opacity: 0.6;
  margin: 4px 0 0;
}
.valuation-staging .valuation-record { margin-top: 10px; }
.valuation-staging .btn-inline-light { margin-top: 4px; align-self: flex-start; }

@media (max-width: 1100px) {
  .vs-perks { grid-template-columns: 1fr; }
  .valuation-staging { padding: 28px; }
  .vs-title { font-size: 36px; }
}


/* ---------- Valuation single-column layout (form moved to its own panel) ---------- */
.valuation-inner--single {
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start;
}
.valuation-points {
  list-style: none;
  margin: 32px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.valuation-points li {
  display: grid;
  grid-template-columns: 32px 1fr;
  gap: 14px;
  align-items: baseline;
  font-family: var(--serif);
  font-size: 17px;
  line-height: 1.5;
  color: rgba(255,255,255,0.82);
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.valuation-points li:last-child { border-bottom: none; }
.valuation-points li > span {
  font-family: 'Inter', 'Inter-fb', sans-serif;
  font-size: 11px;
  letter-spacing: 0.16em;
  color: var(--accent);
  font-style: normal;
}

@media (max-width: 1100px) {
  .valuation-inner--single { grid-template-columns: 1fr; gap: 40px; }
}

/* ---------- Home Staging teaser (own section, light bg) ---------- */
.hs-teaser {
  background: var(--bg);
  color: var(--ink);
  padding: var(--density-pad) 48px;
  border-top: 1px solid var(--line);
}
.hs-teaser-inner {
  max-width: 1400px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1.05fr;
  gap: 96px;
  align-items: center;
}
.hs-teaser .valuation-staging {
  background: transparent;
  border: none;
  padding: 0;
  gap: 24px;
}
.hs-teaser .vs-title { color: var(--ink); }
.hs-teaser .vs-lede { color: var(--mute); opacity: 1; }
.hs-teaser .vs-perks li strong { color: var(--ink); }
.hs-teaser .vs-perks li span { color: var(--mute); }
.hs-teaser .eyebrow { color: var(--mute); }
.hs-teaser .valuation-record {
  border-top: 1px solid var(--line);
  padding-top: 20px;
}
.hs-teaser .valuation-record-num { color: var(--ink); }
.hs-teaser .valuation-record-txt { color: var(--mute); }
.hs-teaser .vs-caption { color: var(--mute); opacity: 1; }
.hs-teaser-visual {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.hs-teaser-visual .valuation-compare {
  aspect-ratio: 4/3;
  width: 100%;
  border-radius: 0;
  overflow: hidden;
  position: relative;
  isolation: isolate;
}

@media (max-width: 1100px) {
  .hs-teaser-inner { grid-template-columns: 1fr; gap: 48px; }
}


/* ---------- MOBILE OVERRIDES (override) ---------- */
@media (max-width: 1024px) {
  html, body { overflow-x: hidden; max-width: 100vw; }
  .ticker { overflow: hidden; max-width: 100vw; }
  .footer-top { grid-template-columns: 1fr 1fr !important; gap: 32px !important; padding: 0 24px 40px !important; }
  .footer { padding: 60px 0 32px !important; }
  .footer-bottom { padding: 24px !important; max-width: 100% !important; flex-wrap: wrap; }
}

/* Hamburger button */
.hburger-btn {
  display: none;
  background: transparent;
  border: 1px solid var(--line);
  width: 40px; height: 40px;
  align-items: center; justify-content: center;
  cursor: pointer;
  padding: 0;
}
.hburger-btn span,
.hburger-btn span::before,
.hburger-btn span::after {
  display: block;
  width: 18px; height: 1.5px;
  background: var(--ink);
  position: relative;
  transition: transform .2s ease, opacity .2s ease;
}
.hburger-btn span::before { content: ''; position: absolute; top: -6px; left: 0; }
.hburger-btn span::after  { content: ''; position: absolute; top:  6px; left: 0; }
.hburger-btn[aria-expanded="true"] span { background: transparent; }
.hburger-btn[aria-expanded="true"] span::before { transform: translateY(6px) rotate(45deg); }
.hburger-btn[aria-expanded="true"] span::after  { transform: translateY(-6px) rotate(-45deg); }

/* Close button (X) inside drawer */
.hburger-close {
  display: none;
  position: absolute;
  top: 14px;
  right: 16px;
  width: 36px; height: 36px;
  background: transparent;
  border: 1px solid var(--line);
  cursor: pointer;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  line-height: 1;
  color: var(--ink);
  padding: 0;
}

/* Mobile drawer */
@media (max-width: 900px) {
  .topbar-inner {
    grid-template-columns: 1fr auto !important;
    gap: 12px !important;
    padding: 12px 16px !important;
    align-items: center !important;
    justify-items: stretch !important;
    position: relative !important;
  }
  .topbar-inner .brand { justify-self: start; }
  .hburger-btn { display: inline-flex; justify-self: end; }

  .topbar .nav,
  .topbar .topbar-end {
    grid-column: 1 / -1;
    display: none !important;
  }
  .topbar.is-open .hburger-btn { display: none !important; }
  .topbar.is-open .hburger-close { display: inline-flex !important; }

  .topbar.is-open .topbar-end {
    order: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100%;
    gap: 12px !important;
    padding: 16px 0 12px !important;
    border-top: 1px solid var(--line);
    margin-top: 8px;
  }
  .topbar.is-open .nav {
    order: 2 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    width: 100%;
    gap: 0 !important;
    padding: 4px 0 12px !important;
    grid-template-columns: none !important;
  }
  .topbar.is-open .nav a {
    padding: 10px 4px !important;
    font-size: 14px !important;
    border-bottom: 1px solid var(--line);
  }
  .topbar.is-open .nav a:last-child { border-bottom: 0; }
  .topbar.is-open .topbar-end .cta-wa {
    align-self: center !important;
    white-space: nowrap !important;
    order: 1;
  }
  .topbar.is-open .topbar-end .lang {
    justify-content: center !important;
    order: 2;
  }
}

@media (max-width: 768px) {
  .cta-wa, .cta-ghost {
    white-space: nowrap !important;
    word-break: keep-all !important;
    overflow-wrap: normal !important;
  }
  .cta-wa *, .cta-ghost * { white-space: nowrap !important; }
  .footer-top { grid-template-columns: 1fr !important; gap: 32px !important; padding: 0 20px 40px !important; }
  .footer-col, .footer-col * { max-width: 100% !important; }
  .footer-news, .footer-news input, .footer-news form { max-width: 100% !important; box-sizing: border-box !important; }
  .hero-image-stamp { width: 84px !important; height: 84px !important; top: -8px !important; right: -8px !important; }
  .hero { padding-left: 20px !important; padding-right: 20px !important; }
  img, picture, video { max-width: 100% !important; height: auto; }
  .placeholder, .placeholder--image,
  [class*="placeholder"], [class*="placeholder--image"] {
    max-width: 100% !important; width: 100% !important; box-sizing: border-box !important;
  }
  .hero-grid, .hero-image, .hero-image-wrap { max-width: 100% !important; box-sizing: border-box !important; }
}

@media (max-width: 480px) {
  .hero-image-stamp { display: none !important; }
}



/* === Runtime overrides (extracted from JS injector) === */

    .detail-thumbs {
      display: flex !important;
      flex-wrap: nowrap !important;
      overflow-x: auto !important;
      overflow-y: hidden !important;
      gap: 8px !important;
      padding: 14px 0 4px !important;
      margin: 0 !important;
      scroll-behavior: smooth;
      scrollbar-width: thin;
      scrollbar-color: rgba(0,0,0,0.25) transparent;
    }
    .detail-thumbs::-webkit-scrollbar { height: 6px; }
    .detail-thumbs::-webkit-scrollbar-thumb { background: rgba(0,0,0,0.25); border-radius: 3px; }
    .detail-thumbs button {
      flex: 0 0 auto !important;
      width: 96px !important;
      height: 64px !important;
      padding: 0 !important;
      border: 2px solid transparent !important;
      border-radius: 4px !important;
      overflow: hidden !important;
      background: #f0ece0 !important;
      cursor: pointer;
      transition: opacity .2s, border-color .2s;
      opacity: .65;
    }
    .detail-thumbs button:hover { opacity: 1; }
    .detail-thumbs button.is-on { opacity: 1; border-color: var(--accent, #3aa8a0) !important; }
    .detail-thumbs button img {
      width: 100% !important;
      height: 100% !important;
      object-fit: cover !important;
      display: block !important;
    }

    /* Detail-form: 2 columns with balanced proportion (form gets ~45-50%) */
    @media (min-width: 900px) {
      .detail-form {
        display: grid !important;
        grid-template-columns: minmax(0, 1.1fr) minmax(420px, 1fr) !important;
        gap: 56px !important;
        align-items: start !important;
      }
      .detail-form-side { min-width: 0; }
      .detail-form-card { margin: 0 !important; max-width: 100% !important; }
    }
    @media (min-width: 900px) and (max-width: 1280px) {
      .detail-form { gap: 40px !important; grid-template-columns: minmax(0, 1fr) minmax(380px, 1fr) !important; }
      .detail-form-side h3.section-title { font-size: 28px !important; }
    }

    /* Fix benefits list: number on left absolute, title + body inline-flow */
    .detail-form-benefits {
      list-style: none !important;
      padding: 0 !important;
      margin: 24px 0 0 !important;
    }
    .detail-form-benefits li {
      display: block !important;
      position: relative !important;
      padding: 14px 0 14px 56px !important;
      margin: 0 !important;
      border-top: 1px solid var(--line, #cad4d1) !important;
      font-size: 14px !important;
      line-height: 1.55 !important;
      min-height: auto !important;
      width: auto !important;
    }
    .detail-form-benefits li:last-child {
      border-bottom: 1px solid var(--line, #cad4d1) !important;
    }
    .detail-form-benefits li > span {
      position: absolute !important;
      left: 0 !important;
      top: 14px !important;
      font-family: 'Fraunces', 'Fraunces-fb', Georgia, serif !important;
      font-style: italic !important;
      font-size: 18px !important;
      color: var(--accent, #3aa8a0) !important;
      width: 40px !important;
      display: inline !important;
    }
    .detail-form-benefits li > strong {
      display: inline !important;
      font-weight: 600 !important;
      color: var(--ink, #0e2a2c) !important;
      margin: 0 !important;
    }
    .detail-form-benefits li > strong + * { margin-left: 0 !important; }

    /* Team detail responsive: stack photo + contact info earlier (laptops <1280px),
       avoids the two columns overlapping on standard laptop viewports. */
    @media (max-width: 1280px) {
      .team-detail { grid-template-columns: 1fr !important; gap: 28px !important; }
      .team-detail > .placeholder { min-height: 360px !important; aspect-ratio: 4/5; max-width: 480px; }
      .team-detail-meta { padding-left: 0 !important; }
    }

    /* Property description: smaller font + visible paragraph spacing */
    .detail-desc { font-size: 15px !important; line-height: 1.65 !important; }
    .detail-desc .lead {
      font-size: 17px !important; line-height: 1.55 !important;
      margin-bottom: 18px !important;
    }
    .detail-desc p { margin-bottom: 14px !important; }

    /* Stack contact links vertically with breathing room */
    .detail-form-contact {
      display: flex !important;
      flex-direction: column !important;
      gap: 10px !important;
      margin-top: 24px !important;
    }
    .detail-form-contact a { display: inline-flex !important; align-items: center !important; gap: 8px !important; }

    /* Blog list page — editorial layout */
    .noe-blog-hero {
      display: grid;
      grid-template-columns: 1fr;
      gap: 40px;
      padding: 28px 0 48px;
      border-bottom: 1px solid var(--line, #cad4d1);
      margin-bottom: 48px;
    }
    @media (min-width: 900px) {
      .noe-blog-hero { grid-template-columns: 1.4fr 1fr; gap: 56px; align-items: center; }
    }
    .noe-blog-hero-img {
      aspect-ratio: 4/3; overflow: hidden; border-radius: 14px; background-color: #cddbdf;
    }
    .noe-blog-hero-img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s; }
    .noe-blog-hero-img:hover img { transform: scale(1.03); }
    .noe-blog-hero h2 {
      font-family: 'Fraunces', 'Fraunces-fb', Georgia, serif !important;
      font-weight: 400 !important;
      font-size: clamp(28px, 3vw, 42px) !important;
      line-height: 1.15 !important;
      margin: 12px 0 14px !important;
      color: var(--ink, #0e2a2c) !important;
    }
    .noe-blog-hero h2 a { color: inherit; text-decoration: none; }
    .noe-blog-hero h2 a:hover { color: var(--accent, #3aa8a0); }
    .noe-blog-hero-meta {
      font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--mute, #557073);
      display: flex; gap: 12px; align-items: center; margin-bottom: 8px;
    }
    .noe-blog-hero-meta .badge {
      background: var(--accent, #3aa8a0); color: #fff;
      padding: 4px 10px; border-radius: 999px; letter-spacing: 1px;
    }
    .noe-blog-hero p { font-size: 16px; line-height: 1.65; color: var(--mute, #557073); margin: 0 0 22px; max-width: 540px; }
    .noe-blog-hero a.cta {
      display: inline-block; padding: 13px 22px; border: 1px solid var(--ink, #0e2a2c); border-radius: 999px;
      font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase; font-weight: 500;
      color: var(--ink, #0e2a2c) !important; text-decoration: none; transition: all .2s;
    }
    .noe-blog-hero a.cta:hover { background: var(--ink, #0e2a2c); color: #fff !important; }

    /* Listed cards refined */
    .noe-blog-list-grid {
      display: grid !important;
      grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)) !important;
      gap: 36px 28px !important;
    }
    .noe-blog-list-grid article {
      background: transparent;
      display: flex; flex-direction: column;
    }
    .noe-blog-list-grid .img-wrap {
      aspect-ratio: 4/3; overflow: hidden; border-radius: 12px; background: #cddbdf; margin-bottom: 16px;
    }
    .noe-blog-list-grid .img-wrap img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s, filter .5s; filter: grayscale(8%); }
    .noe-blog-list-grid article:hover .img-wrap img { transform: scale(1.04); filter: grayscale(0%); }
    .noe-blog-list-grid .card-meta {
      font-size: 11px; letter-spacing: 1.5px; text-transform: uppercase; color: var(--mute, #557073);
      display: flex; gap: 10px; margin-bottom: 8px;
    }
    .noe-blog-list-grid .card-meta .kicker { color: var(--accent, #3aa8a0); font-weight: 600; }
    .noe-blog-list-grid h3 {
      font-family: 'Fraunces', 'Fraunces-fb', Georgia, serif !important;
      font-weight: 500 !important;
      font-size: 22px !important;
      line-height: 1.25 !important;
      margin: 0 0 10px !important;
      color: var(--ink, #0e2a2c) !important;
    }
    .noe-blog-list-grid h3 a { color: inherit; text-decoration: none; }
    .noe-blog-list-grid h3 a:hover { color: var(--accent, #3aa8a0); }
    .noe-blog-list-grid p { font-size: 14px; line-height: 1.55; color: #4a5a5c; margin: 0 0 14px; flex: 1; }
    .noe-blog-list-grid a.read {
      align-self: flex-start; font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase;
      color: var(--accent, #3aa8a0); text-decoration: none; font-weight: 500;
    }
    .noe-blog-list-grid a.read:hover { text-decoration: underline; }

    /* Single blog post — editorial reading */
    .noe-post-hero {
      aspect-ratio: 21/9 !important;
      overflow: hidden; border-radius: 14px; margin: 0 0 36px;
      background-color: #cddbdf;
    }
    .noe-post-hero img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .noe-post-kicker {
      display: inline-block;
      font-size: 11px; letter-spacing: 2.5px; text-transform: uppercase;
      color: var(--accent, #3aa8a0); font-weight: 600; margin-bottom: 12px;
    }
    .noe-post-title {
      font-family: 'Fraunces', 'Fraunces-fb', Georgia, serif !important;
      font-weight: 400 !important;
      font-size: clamp(32px, 4.4vw, 52px) !important;
      line-height: 1.1 !important;
      letter-spacing: -0.5px !important;
      margin: 0 0 20px !important;
      color: var(--ink, #0e2a2c) !important;
    }
    .noe-post-meta {
      display: flex; gap: 14px; align-items: center;
      font-size: 13px; letter-spacing: 1.2px; text-transform: uppercase; color: var(--mute, #557073);
      padding-bottom: 24px; margin-bottom: 40px;
      border-bottom: 1px solid var(--line, #cad4d1);
    }
    .noe-post-body {
      font-family: 'Inter', 'Inter-fb', -apple-system, sans-serif;
      font-size: 18px !important;
      line-height: 1.78 !important;
      color: #2a3838 !important;
    }
    .noe-post-body > p { margin: 0 0 26px; }
    .noe-post-body h2 {
      font-family: 'Fraunces', 'Fraunces-fb', Georgia, serif !important;
      font-weight: 500 !important;
      font-size: 28px !important;
      line-height: 1.25 !important;
      color: var(--ink, #0e2a2c) !important;
      margin: 48px 0 18px !important;
    }
    .noe-post-body h3 {
      font-family: 'Fraunces', 'Fraunces-fb', Georgia, serif !important;
      font-weight: 500 !important;
      font-size: 22px !important;
      line-height: 1.3 !important;
      color: var(--ink, #0e2a2c) !important;
      margin: 36px 0 14px !important;
    }
    .noe-post-body ul,
    .noe-post-body ol {
      margin: 0 0 26px !important;
      padding-left: 1.6em !important;
    }
    .noe-post-body ul { list-style: disc; }
    .noe-post-body ol { list-style: decimal; }
    .noe-post-body li { margin: 0 0 10px; padding-left: 4px; }
    .noe-post-body li::marker { color: var(--accent, #3aa8a0); }
    .noe-post-body blockquote {
      margin: 0 0 26px; padding: 4px 0 4px 22px;
      border-left: 3px solid var(--accent, #3aa8a0);
      color: var(--mute, #557073); font-style: italic;
    }
    .noe-post-body a { color: var(--accent, #2f8a83); text-decoration: underline; }
    .noe-post-body strong { color: var(--ink, #0e2a2c); }
    .noe-post-body > p:first-of-type::first-letter {
      font-family: 'Fraunces', 'Fraunces-fb', Georgia, serif;
      font-size: 4.5em;
      line-height: 0.9;
      float: left;
      margin: 6px 12px -2px 0;
      color: var(--accent, #3aa8a0);
      font-weight: 400;
    }
    .noe-post-cta {
      margin-top: 64px;
      padding: 36px 40px;
      background: linear-gradient(135deg, rgba(58,168,160,0.08), rgba(58,168,160,0.02));
      border: 1px solid var(--line, #cad4d1);
      border-radius: 16px;
      text-align: center;
    }
    .noe-post-cta h2 {
      font-family: 'Fraunces', 'Fraunces-fb', Georgia, serif !important;
      font-weight: 500 !important;
      font-size: 26px !important;
      margin: 0 0 12px !important;
      color: var(--ink, #0e2a2c) !important;
    }
    .noe-post-cta p { color: var(--mute, #557073); margin: 0 0 22px; font-size: 15px; }
    .noe-post-related h2 {
      font-family: 'Fraunces', 'Fraunces-fb', Georgia, serif !important;
      font-weight: 500 !important;
      font-size: 22px !important;
      margin: 0 0 24px !important;
      letter-spacing: -0.2px;
    }

    /* Features list: 2-column grid with clear key/value separation, no overlap */
    .detail-features {
      list-style: none !important;
      padding: 0 !important;
      margin: 0 !important;
      display: grid !important;
      grid-template-columns: 1fr !important;
      gap: 0 !important;
    }
    @media (min-width: 720px) {
      .detail-features { grid-template-columns: 1fr 1fr !important; column-gap: 56px !important; }
    }
    .detail-features li {
      display: flex !important;
      justify-content: space-between !important;
      align-items: baseline !important;
      gap: 24px !important;
      padding: 14px 0 !important;
      border-bottom: 1px solid var(--line, #cad4d1) !important;
      margin: 0 !important;
    }
    .detail-features li > span {
      color: var(--mute, #557073) !important;
      font-size: 14px !important;
    }
    .detail-features li > strong {
      color: var(--ink, #0e2a2c) !important;
      font-weight: 600 !important;
      font-size: 14px !important;
      text-align: right !important;
      flex-shrink: 0 !important;
    }

    /* Detail gallery main image: cap height so prev/next controls stay in viewport */
    .detail-main {
      position: relative !important;
      max-height: 70vh !important;
      overflow: hidden !important;
    }
    .detail-main img {
      width: 100% !important;
      height: auto !important;
      max-height: 70vh !important;
      object-fit: cover !important;
      display: block !important;
    }
    .detail-main-overlay,
    .detail-main-nav { z-index: 2 !important; }

    /* Wide-screen layout: right of the gallery = only title+specs;
       price card moves down next to the description. */
    @media (min-width: 1200px) {
      .detail {
        display: grid !important;
        grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr);
        grid-template-areas:
          "breadcrumb breadcrumb"
          "gallery    head"
          "body       price"
          "form       form";
        column-gap: 32px;
        row-gap: 28px;
      }
      .detail-breadcrumb { grid-area: breadcrumb; }
      .detail-gallery    { grid-area: gallery; min-width: 0; }
      /* Make detail-head a "ghost" so its inner children participate in .detail's grid */
      .detail-head       { display: contents !important; }
      .detail-head-main  { grid-area: head; min-width: 0; align-self: start; }
      .detail-price-card { grid-area: price !important; align-self: start; min-width: 0; margin: 0 !important; position: static !important; }
      .detail-body       { grid-area: body; min-width: 0; }
      .detail-form       { grid-area: form; }
      .detail-specs {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 14px 24px !important;
      }
      .detail-thumbs { padding-bottom: 0 !important; }
    }

    /* Smaller title in detail head */
    .detail-head h1.display,
    .detail-head h1.display--small {
      font-size: clamp(22px, 2.2vw, 32px) !important;
      line-height: 1.18 !important;
      margin: 0 0 6px !important;
      letter-spacing: -0.2px !important;
    }
    .detail-head .eyebrow { font-size: 11px !important; }

    /* Form card: keep all inputs and rows fully inside the card */
    .detail-form-card { box-sizing: border-box !important; }
    .detail-form-card * { box-sizing: border-box !important; }
    .detail-form-row,
    .detail-form-row--2 {
      max-width: 100% !important;
    }
    .detail-form-row input,
    .detail-form-row textarea,
    .detail-form-row select,
    .detail-form-card input,
    .detail-form-card textarea,
    .detail-form-card select {
      width: 100% !important;
      max-width: 100% !important;
      min-width: 0 !important;
    }
    .detail-form-row--2 {
      display: grid !important;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
      gap: 12px !important;
    }
    .detail-form-row--2 > * { min-width: 0 !important; }

    /* ── Blog sidebar layout (categorías + suscripción) ─────────────── */
    .noe-blog-layout {
      display: grid;
      grid-template-columns: 1fr;
      gap: 48px;
      margin-top: 32px;
    }
    @media (min-width: 1100px) {
      .noe-blog-layout { grid-template-columns: minmax(0, 2.4fr) minmax(260px, 1fr); gap: 64px; }
    }
    .noe-blog-sidebar { align-self: start; position: sticky; top: 24px; }
    .noe-blog-sidebar .sidebar-block { margin-bottom: 36px; }
    .noe-blog-sidebar h3 {
      font-family: 'Fraunces', 'Fraunces-fb', Georgia, serif !important;
      font-weight: 500 !important;
      font-size: 16px !important;
      color: var(--ink, #0e2a2c) !important;
      margin: 0 0 14px !important;
      padding-bottom: 12px;
      border-bottom: 1px solid var(--line, #cad4d1);
    }
    .noe-blog-sidebar ul { list-style: none; padding: 0; margin: 0; }
    .noe-blog-sidebar li { margin: 0 0 4px; }
    .noe-blog-sidebar li button {
      width: 100%; text-align: left;
      background: transparent; border: 0;
      padding: 8px 12px; cursor: pointer; border-radius: 8px;
      font-family: inherit; font-size: 14px; color: var(--ink, #243a3c);
      display: flex; justify-content: space-between; align-items: baseline; gap: 10px;
      transition: background .2s, color .2s;
    }
    .noe-blog-sidebar li button span { color: var(--mute, #557073); font-size: 12px; }
    .noe-blog-sidebar li button:hover { background: rgba(58,168,160,0.08); color: var(--accent, #3aa8a0); }
    .noe-blog-sidebar li button.is-on { background: var(--accent, #3aa8a0); color: #fff; font-weight: 500; }
    .noe-blog-sidebar li button.is-on span { color: rgba(255,255,255,0.85); }
    .noe-blog-sidebar form { display: flex; flex-direction: column; gap: 10px; }
    .noe-blog-sidebar input {
      padding: 11px 14px; border: 1px solid var(--line, #cad4d1); border-radius: 8px;
      font-family: inherit; font-size: 14px; background: rgba(255,255,255,0.6);
    }
    .noe-blog-sidebar input:focus { outline: none; border-color: var(--accent, #3aa8a0); }
    .noe-blog-sidebar form button {
      background: var(--ink, #0e2a2c); color: #fff;
      border: 0; border-radius: 999px;
      padding: 11px 18px;
      font-family: inherit; font-size: 12px; letter-spacing: 1.5px; text-transform: uppercase; font-weight: 500;
      cursor: pointer; transition: background .2s;
    }
    .noe-blog-sidebar form button:hover { background: var(--accent, #3aa8a0); }

    /* ── Floating WhatsApp button + chat box ──────────────────────────── */
    .wa-float {
      position: fixed; bottom: 22px; right: 22px; z-index: 999;
      font-family: 'Inter', 'Inter-fb', -apple-system, sans-serif;
    }
    .wa-float__btn {
      position: relative;
      width: 60px; height: 60px; border-radius: 50%;
      background: #25d366; border: 0; cursor: pointer;
      box-shadow: 0 4px 16px rgba(0,0,0,0.20);
      display: flex; align-items: center; justify-content: center;
      transition: transform .2s, box-shadow .2s;
    }
    .wa-float__btn:hover { transform: scale(1.06); box-shadow: 0 6px 22px rgba(0,0,0,0.30); }
    .wa-float__btn:active { transform: scale(0.96); }
    .wa-float__tooltip {
      position: absolute; right: 72px; top: 50%; transform: translateY(-50%);
      background: rgba(255,255,255,0.96); color: #0e2a2c;
      font-size: 13px; padding: 8px 14px; border-radius: 8px;
      box-shadow: 0 2px 10px rgba(0,0,0,0.15);
      white-space: nowrap; pointer-events: none;
      opacity: 0; transition: opacity .25s;
    }
    .wa-float__btn:hover .wa-float__tooltip { opacity: 1; }
    @media (max-width: 600px) { .wa-float__tooltip { display: none; } }
    .wa-float__box {
      position: absolute; bottom: 76px; right: 0;
      width: 300px;
      background: #fff; border-radius: 14px;
      box-shadow: 0 8px 32px rgba(0,0,0,0.18);
      padding: 22px 22px 20px;
      animation: wa-slide-up .25s ease-out;
    }
    @keyframes wa-slide-up { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
    .wa-float__close {
      position: absolute; top: 8px; right: 10px;
      background: transparent; border: 0; width: 28px; height: 28px;
      font-size: 22px; line-height: 1; color: #557073; cursor: pointer;
      border-radius: 50%; transition: background .2s;
    }
    .wa-float__close:hover { background: rgba(0,0,0,0.06); color: #0e2a2c; }
    .wa-float__avatar {
      width: 56px; height: 56px; border-radius: 50%; overflow: hidden;
      margin-bottom: 10px; box-shadow: 0 1px 4px rgba(0,0,0,0.10);
    }
    .wa-float__avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
    .wa-float__name {
      font-family: 'Fraunces', 'Fraunces-fb', Georgia, serif;
      font-size: 16px; font-weight: 500; color: #0e2a2c; margin-bottom: 8px;
    }
    .wa-float__bubble {
      background: #f0f2f5; color: #0e2a2c; padding: 12px 14px;
      border-radius: 4px 14px 14px 14px; font-size: 14px; line-height: 1.45;
      margin-bottom: 16px; max-width: 100%;
    }
    .wa-float__send {
      display: flex; align-items: center; gap: 8px; justify-content: center;
      background: #25d366; color: #fff !important;
      padding: 11px 18px; border-radius: 999px;
      text-decoration: none; font-size: 13px; font-weight: 500; letter-spacing: 0.4px;
      transition: background .2s;
    }
    .wa-float__send:hover { background: #1ea952; }

    /* ── Go-to-top button ──────────────────────────────────────────────── */
    .go-to-top {
      position: fixed; bottom: 22px; right: 96px; z-index: 998;
      width: 44px; height: 44px; border-radius: 50%;
      background: rgba(14,42,44,0.85); color: #fff; border: 0; cursor: pointer;
      backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
      box-shadow: 0 4px 14px rgba(0,0,0,0.22);
      display: flex; align-items: center; justify-content: center;
      transition: background .2s, transform .2s, box-shadow .2s;
    }
    .go-to-top:hover { background: #0e2a2c; transform: translateY(-2px); box-shadow: 0 6px 18px rgba(0,0,0,0.32); }
    .go-to-top:active { transform: translateY(0); }
    @media (max-width: 600px) {
      .go-to-top { right: 86px; bottom: 28px; width: 40px; height: 40px; }
    }
  
    /* ── /propiedades/ page-specific (full catalogue) ─────────────────── */
    .properties-page-head {
      padding-top: clamp(80px, 12vw, 120px);
      padding-bottom: 0;
    }
    .properties-page-head h1 { letter-spacing: -0.02em; }
    .properties-page-body { padding-top: 8px; }
    /* Tighten gap between SearchBar and the FeaturedGrid (otherwise the
       SearchBar's bottom margin + FeaturedGrid's top padding double up). */
    .properties-page-body .featured { padding-top: 24px !important; }
    .properties-page-body .featured > .section-head { margin-top: 0; }

    /* ── /propiedades/ filter bar mobile fix ──────────────────────────
       The default grid uses `1fr` which resolves to `minmax(auto, 1fr)`,
       so the "Toda la provincia" placeholder forces each column to ≥206px
       and the bar overflows the 390px viewport. minmax(0, 1fr) lets the
       cells shrink below their content, and the underlying <select> truncates
       cleanly. Also tighten gap so two columns fit comfortably. */
    @media (max-width: 760px) {
      .searchbar-fields {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
        gap: 14px !important;
      }
      .searchbar-fields label { min-width: 0; max-width: 100%; }
      .searchbar-fields select,
      .searchbar-fields input[type="text"] {
        width: 100%;
        min-width: 0;
        max-width: 100%;
        box-sizing: border-box;
      }
      .searchbar-fields select { text-overflow: ellipsis; }
      .searchbar-inner { padding-left: 16px !important; padding-right: 16px !important; }
      .searchbar { overflow-x: hidden; }
      /* Source toggle wraps cleanly on mobile */
      .searchbar-source { justify-content: center; }
      /* Properties page header padding tighter on mobile */
      .properties-page-head { padding-top: clamp(76px, 18vw, 96px) !important; padding-left: 16px; padding-right: 16px; }
      .properties-page-head h1 { font-size: clamp(26px, 7vw, 36px) !important; }
    }

    /* ── /propiedades/ filter bar layout (laptop + desktop) ───────────
       Original rule was `1.3fr 1fr 1fr 1.5fr` which only declares 4 columns
       but the bar has 6 fields → the 5th and 6th wrap into a second row with
       irregular widths (one column at 99 px, another at 220 px). Switch to
       auto-fit so every field gets the same min width, distributes evenly
       across whatever the viewport allows, and wraps gracefully. */
    .searchbar-fields {
      grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)) !important;
      gap: 18px 16px !important;
    }
    .searchbar-fields label { min-width: 0; }
    .searchbar-fields select,
    .searchbar-fields input[type="text"] {
      width: 100%;
      box-sizing: border-box;
      max-width: 100%;
      text-overflow: ellipsis;
    }
    /* Price slider still spans the full row */
    .searchbar-fields .price-label { grid-column: 1 / -1 !important; }

    /* ── SearchBar refactor: tabs row centered, filters all in one row ──
       Override the legacy `auto 1fr auto` 3-col grid which forced tabs and
       Buscar button into the same row as the filters (and squashed filters
       into a narrow middle column at laptop widths). New layout:
         row 1: [          En venta · Alquiler · Obra nueva          ] centered
         row 2: [Zona] [Tipología] [Habs] [Baños] [Piscina] [Ref]  6 cols
         row 3: [                Precio · slider                ]   full-width
         row 4: [                                  X resultados · Buscar →]
    */
    .searchbar-inner {
      display: block !important;
      max-width: 1400px;
      margin: 0 auto;
    }
    .searchbar-tabs-row {
      display: flex;
      justify-content: center;
      margin-bottom: 28px;
    }
    .searchbar-fields {
      display: grid !important;
      grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
      gap: 18px 16px !important;
    }
    .searchbar-fields .price-label { grid-column: 1 / -1 !important; }
    .searchbar-actions-row {
      display: flex;
      justify-content: flex-end;
      align-items: center;
      margin-top: 22px;
    }

    /* Below 1100 px the 6-col grid gets too tight for the longest label
       ("Toda la provincia"), so step down to 3 cols → 2 cols → 1 col. */
    @media (max-width: 1100px) {
      .searchbar-fields { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
    }
    @media (max-width: 760px) {
      .searchbar-fields { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
    }
    /* Phone (≤520): 1 col. */
    @media (max-width: 520px) {
      .searchbar-fields { grid-template-columns: 1fr !important; }
      .searchbar-actions-row { justify-content: center; }
    }

    /* ── Bottom row: price slider + counter + Buscar in one line ───── */
    .searchbar-bottom-row {
      display: flex;
      align-items: center;
      gap: 28px;
      margin-top: 22px;
    }
    .searchbar-bottom-row .price-label {
      flex: 1 1 auto;
      min-width: 0;
      display: flex;
      flex-direction: column;
      gap: 6px;
    }
    .searchbar-bottom-row .searchbar-actions {
      flex: 0 0 auto;
      display: flex;
      align-items: center;
      gap: 16px;
    }
    /* Hide the legacy actions-row wrapper if it's still present in any cached
       HTML so we don't double-render */
    .searchbar-actions-row { display: none; }

    @media (max-width: 760px) {
      .searchbar-bottom-row { flex-direction: column; align-items: stretch; gap: 18px; }
      .searchbar-bottom-row .searchbar-actions { justify-content: center; }
    }

/* ── Sticky contact bar en ficha (solo móvil) — mejoras usabilidad 2026-07-22 ── */
.detail-cta-bar { display: none; }
@media (max-width: 820px) {
  .detail-cta-bar {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 900;
    display: flex; gap: 10px;
    padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
    background: rgba(255, 255, 255, 0.96);
    -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
    box-shadow: 0 -4px 18px rgba(0, 0, 0, 0.10);
  }
  .detail-cta-bar .btn-primary { flex: 1.2; justify-content: center; text-align: center; }
  .detail-cta-wa {
    flex: 1; display: flex; align-items: center; justify-content: center; gap: 6px;
    border: 1.5px solid #25d366; color: #128c4b; border-radius: 6px;
    font-weight: 600; font-size: 14px; text-decoration: none; padding: 12px 10px;
    background: #fff;
  }
  /* deja hueco para que la barra no tape el final de la ficha */
  .detail { padding-bottom: 78px; }
}
@media (max-width: 820px) {
  /* la barra fija ya incluye WhatsApp con la referencia precargada:
     ocultar el FAB flotante en la ficha para no solaparse con ella.
     (2026-08-21: el FAB se renombró de .wa-fab a .wa-float y el FAB tapaba
     el botón WhatsApp de la barra — cubrimos ambas clases) */
  body:has(.detail-cta-bar) .wa-fab,
  body:has(.detail-cta-bar) .wa-float { display: none; }
}

/* ── Mejoras 2026-07-22 (2ª tanda): reviews reales, favoritos, calculadora,
      chips de zona, /vender/, chip playa, divisas ── */
.gmb-cta-row { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 14px; }
.detail-beach-chip {
  display: inline-flex; align-items: center; gap: 6px; margin: 6px 0 2px;
  background: color-mix(in srgb, var(--accent) 12%, transparent);
  color: var(--ink); border: 1px solid color-mix(in srgb, var(--accent) 35%, transparent);
  border-radius: 99px; padding: 4px 12px; font-size: 13px; font-weight: 600; width: fit-content;
}
.detail-price-fx { display: block; font-size: 13.5px; opacity: .75; margin-top: 2px; }
.detail-price-fx small { opacity: .7; }
.cost-calc { margin: 14px 0 4px; border: 1px solid var(--line, #e3ded2); border-radius: 10px; overflow: hidden; }
.cost-calc-toggle {
  width: 100%; text-align: left; background: transparent; border: 0; cursor: pointer;
  padding: 10px 12px; font: inherit; font-size: 13.5px; font-weight: 600;
  display: flex; justify-content: space-between; align-items: center; gap: 8px;
}
.cost-calc-body { padding: 2px 12px 10px; font-size: 13px; }
.cost-calc-body > div { display: flex; justify-content: space-between; gap: 10px; padding: 4px 0; }
.cost-calc-total { border-top: 1px solid var(--line, #e3ded2); margin-top: 4px; padding-top: 8px !important; font-size: 13.5px; }
.cost-calc-fine { font-size: 11px; opacity: .65; margin: 8px 0 0; line-height: 1.4; }
.zone-chips {
  display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
  max-width: 1280px; margin: 0 auto; padding: 22px 24px 6px;
}
.zone-chips-label { font-size: 12.5px; letter-spacing: 1px; text-transform: uppercase; opacity: .6; margin-right: 4px; }
.zone-chip {
  display: inline-block; padding: 7px 14px; border-radius: 99px; font-size: 13.5px; font-weight: 600;
  border: 1px solid var(--line, #e3ded2); color: var(--ink); text-decoration: none;
  transition: border-color .15s, background .15s;
}
.zone-chip:hover { border-color: var(--accent); background: color-mix(in srgb, var(--accent) 8%, transparent); }
.topbar-favs { position: relative; display: inline-flex; align-items: center; color: inherit; margin-right: 14px; text-decoration: none; }
.topbar-favs-n {
  position: absolute; top: -7px; right: -9px; background: var(--accent); color: #fff;
  font-size: 10px; font-weight: 700; border-radius: 99px; min-width: 15px; height: 15px;
  display: inline-flex; align-items: center; justify-content: center; padding: 0 3px;
}
.vender-points { list-style: none; margin: 18px 0 14px; padding: 0; }
.vender-points li { margin-bottom: 8px; font-size: 15px; }
.zone-landing.vender .valuation { margin-top: 24px; }

/* ── Landing /vender/ (rediseño 2026-07-22) ── */
.vender-wrap { max-width: 1280px; margin: 0 auto; padding: 0 48px; }
.vender-form-sec { border-top: 0; padding-top: 48px; }
.vender-trust { display: flex; align-items: center; gap: 26px; flex-wrap: wrap; margin: -8px 0 26px; }
.vender-rating {
  display: inline-flex; align-items: center; gap: 7px;
  font-size: 14px; color: var(--ink); text-decoration: none;
  border: 1px solid var(--line); border-radius: 99px; padding: 8px 16px;
}
.vender-rating strong { font-size: 16px; }
.vender-rating:hover { border-color: var(--accent); }
@media (max-width: 900px) {
  .vender-wrap { padding: 0 24px; }
  .vender-form-sec { padding-top: 32px; }
}

/* ── SEO 2026-08-25: kicker dentro del H1 (hero + about) ─────────────────── */
h1 .hero-kicker { display:block; font-family:'Inter','Inter-fb',sans-serif; font-size:11px; font-weight:500; font-style:normal; letter-spacing:0.18em; text-transform:uppercase; color:var(--mute); line-height:1.4; margin:0 0 24px; }
h1 .hero-kicker::before { content:"— "; }
/* Bloque "Tu inmobiliaria en Torrevieja" (home) */
.agency { max-width:1180px; margin:0 auto; padding:72px 24px 8px; }
.agency-grid { display:grid; grid-template-columns:1.4fr 1fr; gap:48px; align-items:start; }
.agency h2 { font-family:var(--serif); font-weight:400; font-size:clamp(30px,3.6vw,46px); line-height:1.05; letter-spacing:-0.02em; margin:0 0 22px; }
.agency h2 em { font-style:italic; color:var(--accent); }
.agency-text p { margin:0 0 18px; font-size:16.5px; line-height:1.75; opacity:.92; }
.agency-facts { background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:26px 28px; }
.agency-facts dl { margin:0; display:grid; gap:16px; }
.agency-facts dt { font-family:'Inter','Inter-fb',sans-serif; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--mute); margin-bottom:4px; }
.agency-facts dd { margin:0; font-size:15px; line-height:1.55; }
.agency-facts dd a, .agency-text a:not(.btn-primary):not(.btn-ghost) { color:var(--ink); text-decoration:underline; text-underline-offset:3px; }
.agency-ctas { display:flex; gap:14px; flex-wrap:wrap; margin-top:26px; }
.agency-ctas a { text-decoration:none; }
.agency-faq { margin-top:56px; max-width:880px; }
.agency-faq h3 { font-family:var(--serif); font-weight:500; font-size:19px; line-height:1.35; margin:26px 0 0; }
.agency-faq p { margin:10px 0 0; font-size:15.5px; line-height:1.7; opacity:.9; }
@media (max-width:860px) { .agency-grid { grid-template-columns:1fr; gap:28px; } .agency { padding-top:56px; } }
/* 404 propia */
.notfound { max-width:760px; margin:0 auto; padding:calc(var(--topbar-height,80px) + 48px) 24px 96px; text-align:center; }
.notfound h1 { font-family:var(--serif); font-weight:400; font-size:clamp(40px,6vw,72px); line-height:1.02; letter-spacing:-0.02em; margin:0 0 18px; }
.notfound p { font-size:17px; line-height:1.6; opacity:.85; margin:0 0 28px; }
.notfound-links { display:flex; gap:12px; flex-wrap:wrap; justify-content:center; }
.notfound-links a { text-decoration:none; }
/* Enlace SEO del pie */
a.footer-seo { color:inherit; text-decoration:none; }
a.footer-seo:hover { text-decoration:underline; text-underline-offset:3px; }
/* ══ Usabilidad 2026-09 — anclas bajo la cabecera fija ═════════════════════
   --noe-topbar-h lo publica TopBar (altura real con el menú cerrado). Los saltos
   nativos a #equipo, #blog, #contacto… dejan el encabezado visible. */
.app section[id], .app footer[id] { scroll-margin-top: calc(var(--noe-topbar-h, 84px) + 8px); }
/* ══ Usabilidad 2026-09 — botones flotantes (WhatsApp + volver arriba) ══════
   Tablet/móvil: columna estrecha pegada al borde derecho (antes una franja
   horizontal de ~150 px que tapaba títulos, párrafos e importes) y hueco
   reservado al final de la página. En la ficha móvil la flecha se apoya sobre
   la altura REAL de .detail-cta-bar (--noe-bottom-bar-h, medida por GoToTop,
   ya incluye safe-area). */
@media (max-width: 1024px) {
  .wa-float { right: 14px; bottom: calc(14px + env(safe-area-inset-bottom, 0px)); }
  .wa-float__btn { width: 52px; height: 52px; }
  .wa-float__btn svg { width: 28px; height: 28px; }
  .wa-float__box { bottom: 64px; }
  .go-to-top { right: 20px; width: 40px; height: 40px;
    bottom: calc(14px + 52px + 12px + env(safe-area-inset-bottom, 0px)); }
  .app .footer .footer-bottom { padding-bottom: calc(24px + 120px + env(safe-area-inset-bottom, 0px)) !important; }
}
@media (max-width: 820px) {
  body:has(.detail-cta-bar) .go-to-top { bottom: calc(var(--noe-bottom-bar-h, 66px) + 12px); }
  body:has(.detail-cta-bar) .app .footer .footer-bottom { padding-bottom: calc(24px + var(--noe-bottom-bar-h, 66px) + 64px) !important; }
}

/* ══ Portátil 2026-10-12 — retrato del equipo y menú ═══════════════════════
   El retrato llevaba aspect-ratio 4/5 + min-height 520 px: el navegador sacaba
   el ancho de la altura (416-480 px) y, en columnas de ~320 px (1280-1440),
   la foto se salía de su celda y tapaba la cita, idiomas y contacto. Ahora la
   foto ocupa SU columna (cover, encuadre en la cara) y la ficha gana ancho. */
@media (min-width: 1101px) and (max-width: 1680px) {
  .team-grid { grid-template-columns: minmax(0, .8fr) minmax(0, 1.5fr) !important; gap: 48px !important; }
  .team-detail { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important; gap: 36px !important; }
  .team-detail > .placeholder { width: 100% !important; max-width: none !important; min-width: 0;
    aspect-ratio: auto !important; height: 100% !important; min-height: 460px !important; }
  .team-detail > .placeholder img { object-position: 50% 18%; }
  .team-detail-meta { padding-left: 0 !important; min-width: 0; }
}
@media (min-width: 1101px) and (max-width: 1440px) {
  .team-detail blockquote { font-size: 22px; padding-left: 38px; }
  .team-detail blockquote .qmark { font-size: 64px; }
}
/* Menú en una línea entre 1101 y 1360 px (a 1280 «Contacto» bajaba a otra fila) */
@media (min-width: 1101px) and (max-width: 1360px) {
  .topbar-inner { gap: 20px; padding-left: 32px; padding-right: 32px; }
  .nav { gap: 18px; flex-wrap: nowrap; }
  .nav a { white-space: nowrap; }
  .topbar-end { gap: 12px; }
}

/* ══ Ads /pl/ 2026-10-15 ══════════════════════════════════════════════════
   1) Ficha móvil: la barra fija (Umów wizytę + WhatsApp) sigue visible y usable
      con el mosaico «Wszystkie N zdjęć» y el visor a pantalla completa abiertos
      (antes quedaba debajo de la capa negra, z-index 9998/9999).
   2) Botones de la barra con área táctil completa (≥46 px de alto). */
@media (max-width: 820px) {
  .detail-cta-bar > a, .detail-cta-bar > button { min-height: 46px; }
  body.noe-gallery-open .detail-cta-bar { z-index: 10001; }
  body.noe-gallery-open .noe-lb-cta { display: none !important; }
  body.noe-gallery-open .noe-lb-count { bottom: calc(max(var(--noe-bottom-bar-h, 0px), 70px) + 14px) !important; }
  body.noe-gallery-open .noe-mosaic { padding-bottom: calc(max(var(--noe-bottom-bar-h, 0px), 70px) + 24px) !important; }
}

/* ══ Ads web 2026-10-26 ══════════════════════════════════════════════════════
   1) Botón «Llamar» (tel:) en la barra fija de la ficha móvil y en los bloques de contacto.
   5) Botones rápidos de precio bajo el slider doble + tiradores más grandes en pantallas táctiles. */
.tel-link { display: inline-flex; align-items: center; gap: 6px; color: inherit; text-decoration: none; }
.detail-agent a.tel-link { color: var(--accent); }
.detail-cta-tel { display: none; }
@media (max-width: 820px) {
  .detail-cta-bar { gap: 8px; padding-left: 10px; padding-right: 10px; }
  .detail-cta-bar .btn-primary { flex: 1.25; padding-left: 10px; padding-right: 10px; font-size: 14px; }
  .detail-cta-tel {
    flex: 0.9; display: flex; align-items: center; justify-content: center; gap: 5px;
    border: 1.5px solid var(--ink, #0e2a2c); color: var(--ink, #0e2a2c); border-radius: 6px;
    font-weight: 600; font-size: 14px; text-decoration: none; padding: 12px 8px;
    background: #fff; white-space: nowrap;
  }
  .detail-cta-wa { padding-left: 8px; padding-right: 8px; white-space: nowrap; }
}
.price-quick { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.price-quick-btn {
  font: inherit; font-size: 13px; line-height: 1; padding: 9px 13px; min-height: 36px;
  border-radius: 999px; border: 1px solid var(--line, #d8e0dc); background: transparent;
  color: var(--ink, #0e2a2c); cursor: pointer; letter-spacing: 0; text-transform: none;
}
.price-quick-btn:hover { border-color: var(--accent); }
.price-quick-btn.is-on { background: var(--ink, #0e2a2c); border-color: var(--ink, #0e2a2c); color: #fff; }
@media (pointer: coarse) {
  .price-range .dual-range { height: 36px; }
  .price-range .dual-range input[type="range"],
  .price-range .dual-range input[type="range"]::-webkit-slider-runnable-track { height: 36px; }
  .price-range .dual-range input[type="range"]::-webkit-slider-thumb { width: 28px; height: 28px; margin-top: 4px; }
  .price-range .dual-range input[type="range"]::-moz-range-thumb { width: 28px; height: 28px; }
}
.detail-agent a.tel-link span { font-size: 13px; letter-spacing: 0; text-transform: none; color: inherit; }
