/* ========================================================================
   LARIMAR — Real Estate — Design System
   ======================================================================== */

:root{
  --navy: #0b1f3a;
  --navy-dark: #071322;
  --navy-light: #16305a;
  --blue: #5b8fc9;
  --blue-pale: #eef4fb;
  --gold: #c6a15b;
  --gold-light: #e6d3a8;
  --gold-dark: #a3813f;
  --white: #ffffff;
  --off-white: #f7f7f5;
  --sand: #f2efe9;
  --ink: #10182a;
  --gray-700: #3d4552;
  --gray-500: #6b7280;
  --gray-300: #c9cdd4;
  --border: #e5e3dd;
  --border-dark: rgba(255,255,255,.14);

  --font-serif: 'Fraunces', 'Georgia', serif;
  --font-sans: 'Inter', -apple-system, sans-serif;

  --container: 1280px;
  --radius-sm: 4px;
  --radius: 8px;
  --radius-lg: 18px;

  --shadow-sm: 0 2px 10px rgba(11,31,58,.06);
  --shadow: 0 12px 40px rgba(11,31,58,.10);
  --shadow-lg: 0 30px 80px rgba(11,31,58,.18);

  --ease: cubic-bezier(.16,.84,.44,1);
  --ease-soft: cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; width:100%; overflow-x:hidden; -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body{
  margin:0;
  font-family: var(--font-sans);
  color: var(--ink);
  background: var(--white);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden; width:100%; min-width:0;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family: inherit; cursor:pointer; background:none; border:none; padding:0; color:inherit; }
input,select,textarea{ font-family: inherit; font-size: inherit; }
h1,h2,h3,h4,h5{ font-family: var(--font-serif); font-weight: 500; line-height:1.1; margin:0; letter-spacing:-.01em; }
p{ margin:0; }

.container{ max-width: var(--container); margin:0 auto; padding: 0 32px; }
@media (max-width: 720px){ .container{ padding: 0 20px; } }

section{ position: relative; }
.section-pad{ padding: 120px 0; }
.section-pad-sm{ padding: 80px 0; }
@media (max-width: 900px){
  .section-pad{ padding: 80px 0; }
  .section-pad-sm{ padding: 56px 0; }
}

.bg-navy{ background: var(--navy); color: var(--white); }
.bg-sand{ background: var(--sand); }
.bg-off{ background: var(--off-white); }

/* ---------- Type helpers ---------- */
.eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-family: var(--font-sans); font-size: 12px; font-weight:600;
  letter-spacing: .18em; text-transform: uppercase; color: var(--gold-dark);
  margin-bottom: 18px;
}
.eyebrow::before{ content:''; width:26px; height:1px; background: var(--gold-dark); display:inline-block; }
.bg-navy .eyebrow, .bg-navy .eyebrow::before{ color: var(--gold-light); background: var(--gold-light); }

.section-head{ max-width: 720px; margin-bottom: 56px; }
.section-head.center{ margin-left:auto; margin-right:auto; text-align:center; }
.section-title{ font-size: clamp(30px, 3.6vw, 46px); }
.section-title em{ font-style: italic; color: var(--gold-dark); }
.bg-navy .section-title em{ color: var(--gold-light); }
.section-sub{ margin-top: 18px; font-size: 17px; line-height:1.7; color: var(--gray-500); }
.bg-navy .section-sub{ color: rgba(255,255,255,.68); }

.text-accent{ color: var(--gold); font-style: italic; }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding: 16px 30px; border-radius: 2px; border: 1px solid transparent;
  font-size: 13px; font-weight:600; letter-spacing:.06em; text-transform: uppercase;
  transition: all .45s var(--ease); white-space: nowrap; position:relative; overflow:hidden;
}
.btn svg{ transition: transform .35s var(--ease); flex-shrink:0; }
.btn:hover svg{ transform: translateX(4px); }
.btn-lg{ padding: 19px 38px; }
.btn-sm{ padding: 11px 20px; font-size:12px; }
.btn-block{ width:100%; }

.btn-gold{ background: var(--gold); color: var(--navy-dark); border-color: var(--gold); }
.btn-gold:hover{ background: var(--gold-dark); border-color: var(--gold-dark); color:var(--white); }

.btn-navy{ background: var(--navy); color: var(--white); border-color: var(--navy); }
.btn-navy:hover{ background: var(--navy-light); border-color: var(--navy-light); }

.btn-outline-light{ background: transparent; color: var(--white); border-color: rgba(255,255,255,.5); }
.btn-outline-light:hover{ background: rgba(255,255,255,.12); border-color: var(--white); }

.btn-outline-dark{ background: transparent; color: var(--navy); border-color: var(--navy); }
.btn-outline-dark:hover{ background: var(--navy); color: var(--white); }

.btn-ghost-gold{ background: transparent; color: var(--gold-dark); border-color: transparent; padding-left:0; padding-right:0; }
.btn-ghost-gold:hover{ color: var(--navy); }

.btn-whatsapp{ background:#25D366; color:#fff; border-color:#25D366; }
.btn-whatsapp:hover{ background:#1ebd59; border-color:#1ebd59; }

.link-underline{
  position:relative; padding-bottom:3px; font-weight:600; font-size:13px;
  letter-spacing:.05em; text-transform:uppercase; color: var(--navy);
}
.link-underline::after{
  content:''; position:absolute; left:0; bottom:0; width:100%; height:1px; background: var(--gold);
  transform: scaleX(1); transform-origin:left; transition: transform .4s var(--ease);
}
.link-underline:hover::after{ transform: scaleX(0); transform-origin:right; }

/* ---------- Preloader ---------- */
.preloader{
  position:fixed; inset:0; z-index:9999; background: var(--navy);
  display:flex; align-items:center; justify-content:center;
  transition: opacity .8s var(--ease), visibility .8s var(--ease);
}
.preloader.hide{ opacity:0; visibility:hidden; }
.preloader-mark{ font-family: var(--font-serif); font-size: 34px; color:#fff; letter-spacing:.08em; }
.preloader-mark span{ color: var(--gold); font-style: italic; }

/* ---------- Navbar ---------- */
.navbar{
  position: fixed; top:0; left:0; right:0; z-index: 900;
  padding: 26px 0; transition: all .5s var(--ease);
}
.navbar-inner{ display:flex; align-items:center; justify-content:space-between; gap: 24px; }
.logo{ font-family: var(--font-serif); font-size: 24px; letter-spacing:.04em; color:#fff; }
.logo span{ color: var(--gold); font-style: italic; }
.navbar.solid .logo{ color: var(--navy); }
.navbar.solid .logo span{ color: var(--gold-dark); }

.nav-links{ display:flex; align-items:center; gap: 36px; }
.nav-links a{
  font-size:12.5px; font-weight:600; letter-spacing:.07em; text-transform:uppercase;
  color: rgba(255,255,255,.86); position:relative; padding: 4px 0;
}
.nav-links a::after{ content:''; position:absolute; left:0; bottom:-2px; width:0; height:1px; background: var(--gold); transition: width .35s var(--ease); }
.nav-links a:hover::after, .nav-links a.active::after{ width:100%; }
.navbar.solid .nav-links a{ color: var(--navy); }

.navbar-actions{ display:flex; align-items:center; gap:14px; }
.navbar{ background: linear-gradient(to bottom, rgba(7,19,34,.55), transparent); }
.navbar.solid{ background: rgba(255,255,255,.96); backdrop-filter: blur(14px); box-shadow: 0 1px 0 var(--border); padding: 16px 0; }

.nav-icon-btn{
  width:42px; height:42px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  border:1px solid rgba(255,255,255,.35); color:#fff; transition: all .35s var(--ease);
}
.navbar.solid .nav-icon-btn{ border-color: var(--border); color: var(--navy); }
.nav-icon-btn:hover{ background:#25D366; border-color:#25D366; color:#fff; }

.burger{ display:none; flex-direction:column; gap:5px; background:none; border:none; padding:6px; z-index:20; }
.burger span{ width:24px; height:1.5px; background:#fff; transition: all .35s var(--ease); }
.navbar.solid .burger span{ background: var(--navy); }
.burger.open span:nth-child(1){ transform: translateY(6.5px) rotate(45deg); }
.burger.open span:nth-child(2){ opacity:0; }
.burger.open span:nth-child(3){ transform: translateY(-6.5px) rotate(-45deg); }

/* ---------- Mobile nav ---------- */
@media (max-width: 1080px){
  .nav-links{ display:none; }
  .navbar-actions .btn-outline-light, .navbar-actions .btn-outline-dark{ display:none; }
  .burger{ display:flex; }
}
.mobile-nav{
  position:fixed; inset:0; background: var(--navy); z-index: 850;
  display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:6px;
  padding: 0 40px; transform: translateY(-100%); transition: transform .6s var(--ease);
}
.mobile-nav.open{ transform: translateY(0); }
.mobile-nav a{
  font-family: var(--font-serif); font-size: 32px; color:#fff; padding: 12px 0; border-bottom:1px solid rgba(255,255,255,.08); width:100%;
}
.mobile-nav-cta{ margin-top: 28px; display:flex; gap:14px; flex-wrap:wrap; }

/* ---------- Hero ---------- */
.hero{
  position:relative; min-height:100svh; display:flex; align-items:center;
  background: var(--navy); overflow:hidden;
}
.hero-media{ position:absolute; inset:0; z-index:0; }
.real-photo{ width:100%; height:100%; display:block; object-fit:cover; }
.hero-photo{ object-position:center center; transform:scale(1.01); }
.generated-photo.photo-1{ object-position:center 58%; }
.generated-photo.photo-2{ object-position:center center; }
.ph-photo{
  position:relative; width:100%; height:100%; overflow:hidden;
  background: linear-gradient(135deg,var(--v1,#0b1f3a),var(--v2,#16305a));
  display:flex; align-items:center; justify-content:center;
}
.ph-photo::before{
  content:''; position:absolute; inset:0; opacity:.5;
  background-image: repeating-linear-gradient(115deg, rgba(255,255,255,.045) 0 2px, transparent 2px 90px);
}
.ph-photo .ph-tag{
  position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; gap:10px;
  color: rgba(255,255,255,.55); font-family: var(--font-sans);
}
.ph-photo .ph-tag svg{ opacity:.7; }
.ph-photo .ph-tag span{ font-size:11px; letter-spacing:.12em; text-transform:uppercase; }
.ph-photo.light{ background: linear-gradient(135deg,var(--v1,#eef1f5),var(--v2,#dbe3ec)); }
.ph-photo.light .ph-tag{ color: rgba(11,31,58,.4); }
.ph-photo.light::before{ background-image: repeating-linear-gradient(115deg, rgba(11,31,58,.035) 0 2px, transparent 2px 90px); }

.hero-media .ph-photo{ height:100%; }
.hero-scrim{
  position:absolute; inset:0; z-index:1;
  background: linear-gradient(180deg, rgba(7,19,34,.55) 0%, rgba(7,19,34,.35) 40%, rgba(7,19,34,.85) 100%);
}
.hero-content{ position:relative; z-index: 2; padding-top: 120px; padding-bottom: 160px; width:100%; }
.hero-badge{
  display:inline-flex; align-items:center; gap:10px; color: rgba(255,255,255,.85);
  font-size:12px; letter-spacing:.14em; text-transform:uppercase; margin-bottom: 30px;
  border: 1px solid rgba(255,255,255,.28); padding: 9px 18px; border-radius: 30px;
}
.hero-badge .dot{ width:6px; height:6px; border-radius:50%; background: var(--gold); }
.hero-title{ color:#fff; font-size: clamp(42px, 6.4vw, 84px); max-width: 980px; }
.hero-title em{ font-style: italic; color: var(--gold-light); }
.hero-subtitle{ color: rgba(255,255,255,.78); font-size: 19px; max-width: 620px; margin-top: 26px; line-height:1.7; }
.hero-cta{ display:flex; gap:18px; margin-top: 42px; flex-wrap:wrap; }

.hero-scrollcue{
  position:absolute; left:32px; bottom:34px; z-index:2; display:flex; flex-direction:column; align-items:center; gap:10px;
  color: rgba(255,255,255,.55); font-size:10px; letter-spacing:.16em; text-transform:uppercase;
}
.hero-scrollcue .line{ width:1px; height:46px; background: rgba(255,255,255,.3); position:relative; overflow:hidden; }
.hero-scrollcue .line::after{ content:''; position:absolute; top:-100%; left:0; width:100%; height:100%; background:var(--gold); animation: scrollline 2.2s infinite var(--ease); }
@keyframes scrollline{ to{ top:100%; } }
@media (max-width: 720px){ .hero-scrollcue{ display:none; } }

/* ---------- Search widget ---------- */
.search-widget{
  position:relative; z-index:3; margin-top: -78px;
}
.search-card{
  background:#fff; border-radius: var(--radius-lg); box-shadow: var(--shadow-lg);
  padding: 30px; display:grid; grid-template-columns: auto 1.3fr 1.1fr .9fr 1.1fr auto;
  gap: 22px; align-items:end;
}
.op-toggle{ display:flex; background: var(--off-white); border-radius:30px; padding:4px; grid-column: span 1; }
.op-toggle button{
  border:none; background:transparent; padding: 12px 20px; border-radius:30px; font-size:12.5px; font-weight:700;
  letter-spacing:.05em; text-transform:uppercase; color: var(--gray-500); transition: all .3s var(--ease); white-space:nowrap;
}
.op-toggle button.active{ background: var(--navy); color:#fff; }
.field{ display:flex; flex-direction:column; gap:8px; }
.field label{ font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color: var(--gray-500); }
.field select, .field input{
  border:none; border-bottom: 1px solid var(--border); background:transparent; padding: 6px 0; font-size:15px; color: var(--ink);
  appearance:none; -webkit-appearance:none;
}
.field.select-wrap{ position:relative; }
.field.select-wrap::after{
  content:''; position:absolute; right:0; bottom:12px; width:8px; height:8px;
  border-right:1.5px solid var(--gray-500); border-bottom:1.5px solid var(--gray-500); transform: rotate(45deg); pointer-events:none;
}
.field select:focus, .field input:focus{ outline:none; border-color: var(--gold); }
.search-submit{ height:56px; width:56px; border-radius:50%; background: var(--gold); border:none; display:flex; align-items:center; justify-content:center; color: var(--navy-dark); transition: all .35s var(--ease); flex-shrink:0; }
.search-submit:hover{ background: var(--navy); color:#fff; transform: scale(1.06); }

@media (max-width: 1100px){
  .search-card{ grid-template-columns: repeat(2, 1fr); }
  .op-toggle{ grid-column: 1 / -1; }
  .search-submit{ grid-column: 1/-1; width:100%; border-radius: 4px; }
}
@media (max-width: 640px){ .search-card{ grid-template-columns: 1fr; padding:24px; } }

/* ---------- Stat strip ---------- */
.stat-strip{ display:flex; flex-wrap:wrap; gap: 50px 60px; }
.stat-item .num{ font-family: var(--font-serif); font-size: 46px; color: var(--navy); display:flex; align-items:baseline; gap:2px; }
.stat-item .num .suffix{ font-size: 24px; color: var(--gold-dark); }
.stat-item small{ display:block; margin-top: 8px; font-size:12.5px; letter-spacing:.06em; text-transform:uppercase; color: var(--gray-500); }
.bg-navy .stat-item .num{ color:#fff; }
.bg-navy .stat-item small{ color: rgba(255,255,255,.6); }

/* ---------- Property cards ---------- */
.prop-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap: 34px; }
@media (max-width: 1024px){ .prop-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 680px){ .prop-grid{ grid-template-columns: 1fr; } }

.prop-card{ display:block; background:#fff; border-radius: var(--radius); overflow:hidden; box-shadow: var(--shadow-sm); transition: box-shadow .5s var(--ease), transform .5s var(--ease); }
.prop-card:hover{ box-shadow: var(--shadow-lg); transform: translateY(-6px); }
.prop-media{ position:relative; height: 280px; overflow:hidden; }
.prop-media .ph-photo{ transition: transform 1s var(--ease); }
.prop-card:hover .prop-media .ph-photo{ transform: scale(1.08); }
.prop-tag{ position:absolute; top:18px; left:18px; z-index:2; background:#fff; color: var(--navy); font-size:10.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:7px 13px; border-radius:2px; }
.prop-tag.rent{ background: var(--navy); color:#fff; }
.prop-fav{ position:absolute; top:16px; right:16px; z-index:2; width:36px; height:36px; border-radius:50%; background: rgba(255,255,255,.9); display:flex; align-items:center; justify-content:center; color: var(--navy); }
.prop-price-tag{ position:absolute; bottom:18px; left:18px; z-index:2; color:#fff; }
.prop-price-tag .price{ font-family: var(--font-serif); font-size: 26px; }
.prop-price-tag .period{ font-size:12px; opacity:.8; }
.prop-media::after{ content:''; position:absolute; inset:0; background: linear-gradient(180deg, transparent 40%, rgba(7,19,34,.65) 100%); z-index:1; }

.prop-body{ padding: 24px 26px 26px; }
.prop-loc{ font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color: var(--gold-dark); font-weight:700; margin-bottom:8px; display:flex; align-items:center; gap:6px; }
.prop-title{ font-size: 20px; margin-bottom: 16px; }
.prop-specs{ display:flex; gap:18px; padding-top:16px; border-top:1px solid var(--border); color: var(--gray-500); font-size:13.5px; }
.prop-specs span{ display:flex; align-items:center; gap:6px; }

.cards-cta{ display:flex; justify-content:center; margin-top: 56px; }

/* ---------- Quad "encuentra tu propiedad" ---------- */
.quad-grid{ display:grid; grid-template-columns: repeat(4,1fr); gap: 4px; }
.quad-item{ position:relative; height: 460px; overflow:hidden; }
.quad-item .ph-photo{ transition: transform 1.2s var(--ease); }
.quad-item:hover .ph-photo{ transform: scale(1.1); }
.quad-item::after{ content:''; position:absolute; inset:0; background: linear-gradient(0deg, rgba(7,19,34,.78), rgba(7,19,34,.15) 55%); }
.quad-content{ position:absolute; left:0; right:0; bottom:0; z-index:2; padding: 30px 26px; color:#fff; }
.quad-content .eyebrow{ color: var(--gold-light); margin-bottom:10px; }
.quad-content .eyebrow::before{ background: var(--gold-light); }
.quad-content h3{ font-size: 26px; color:#fff; margin-bottom: 12px; }
.quad-content .arrow{ opacity:0; transform: translateY(8px); transition: all .4s var(--ease); display:inline-flex; }
.quad-item:hover .arrow{ opacity:1; transform: translateY(0); }
@media (max-width: 1024px){ .quad-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 640px){ .quad-grid{ grid-template-columns: 1fr; } .quad-item{ height:340px; } }

/* ---------- Projects (pre-construction) ---------- */
.project-card{ display:grid; grid-template-columns: 1.1fr 1fr; background:#fff; border-radius: var(--radius); overflow:hidden; box-shadow: var(--shadow-sm); margin-bottom: 30px; }
.project-card:nth-child(even){ grid-template-columns: 1fr 1.1fr; }
.project-card:nth-child(even) .project-media{ order:2; }
.project-media{ position:relative; min-height: 360px; }
.project-info{ padding: 48px; display:flex; flex-direction:column; justify-content:center; }
.project-badge{ display:inline-flex; align-self:flex-start; gap:8px; align-items:center; background: var(--blue-pale); color: var(--navy); font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; padding:8px 14px; border-radius:30px; margin-bottom:20px; }
.project-badge .dot{ width:6px; height:6px; border-radius:50%; background: var(--gold-dark); }
.project-info h3{ font-size: 30px; margin-bottom:14px; }
.project-info p{ color: var(--gray-500); line-height:1.75; margin-bottom: 26px; }
.project-meta{ display:flex; gap: 34px; margin-bottom: 30px; flex-wrap:wrap; }
.project-meta div small{ display:block; color: var(--gray-500); font-size:11.5px; text-transform:uppercase; letter-spacing:.06em; margin-bottom:6px; }
.project-meta div strong{ font-family: var(--font-serif); font-size:22px; color: var(--navy); font-weight:500; }
@media (max-width: 900px){
  .project-card, .project-card:nth-child(even){ grid-template-columns: 1fr; }
  .project-card:nth-child(even) .project-media{ order:0; }
  .project-media{ min-height: 260px; }
  .project-info{ padding: 34px 28px; }
}

/* ---------- Zones ---------- */
.zone-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap: 28px; }
.zone-card{ position:relative; height: 380px; border-radius: var(--radius); overflow:hidden; }
.zone-card .ph-photo{ transition: transform 1s var(--ease); }
.zone-card:hover .ph-photo{ transform: scale(1.09); }
.zone-card::after{ content:''; position:absolute; inset:0; background: linear-gradient(0deg, rgba(7,19,34,.82), rgba(7,19,34,0) 60%); }
.zone-info{ position:absolute; left:0; right:0; bottom:0; padding: 26px; color:#fff; z-index:2; }
.zone-info small{ color: var(--gold-light); letter-spacing:.1em; text-transform:uppercase; font-size:11px; }
.zone-info h3{ color:#fff; font-size:24px; margin-top:8px; }
@media (max-width: 1024px){ .zone-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 640px){ .zone-grid{ grid-template-columns: 1fr; } }

/* ---------- Why us / services ---------- */
.pillars-grid{ display:grid; grid-template-columns: repeat(4,1fr); gap: 40px; }
.pillar{ text-align:left; }
.pillar-icon{ width:56px; height:56px; border-radius:50%; border:1px solid rgba(255,255,255,.25); display:flex; align-items:center; justify-content:center; margin-bottom: 24px; color: var(--gold-light); }
.pillar h3{ font-size:19px; margin-bottom:12px; color:#fff; }
.pillar p{ color: rgba(255,255,255,.65); line-height:1.7; font-size:14.5px; }
@media (max-width: 1024px){ .pillars-grid{ grid-template-columns: repeat(2,1fr); gap:36px; } }
@media (max-width: 560px){ .pillars-grid{ grid-template-columns: 1fr; } }

.services-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--border); border:1px solid var(--border); }
.service-item{ background:#fff; padding: 44px 38px; transition: background .4s var(--ease); }
.service-item:hover{ background: var(--sand); }
.service-num{ font-family: var(--font-serif); font-size:14px; color: var(--gold-dark); margin-bottom: 22px; }
.service-item h3{ font-size:21px; margin-bottom:14px; }
.service-item p{ color: var(--gray-500); line-height:1.7; font-size:14.5px; }
@media (max-width: 900px){ .services-grid{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 600px){ .services-grid{ grid-template-columns: 1fr; } }

/* ---------- Investors ---------- */
.invest-wrap{ display:grid; grid-template-columns: .95fr 1.05fr; gap: 70px; align-items:center; }
.invest-list{ margin-top: 30px; display:flex; flex-direction:column; gap:22px; }
.invest-list li{ display:flex; gap:16px; align-items:flex-start; color: rgba(255,255,255,.82); line-height:1.6; }
.invest-list .ic{ flex-shrink:0; width:30px; height:30px; border-radius:50%; background: rgba(198,161,91,.16); color: var(--gold-light); display:flex; align-items:center; justify-content:center; margin-top:2px; }
.invest-media{ position:relative; border-radius: var(--radius); overflow:hidden; height: 520px; }
.invest-media-card{ position:absolute; bottom:24px; left:24px; right:24px; background:#fff; border-radius: var(--radius); padding: 24px; display:flex; justify-content:space-between; align-items:center; box-shadow: var(--shadow-lg); }
.invest-media-card div small{ display:block; color: var(--gray-500); font-size:11px; text-transform:uppercase; letter-spacing:.06em; margin-bottom:6px; }
.invest-media-card strong{ font-family: var(--font-serif); font-size: 30px; color: var(--navy); }
@media (max-width: 980px){ .invest-wrap{ grid-template-columns: 1fr; gap:44px; } .invest-media{ height:380px; } }

/* ---------- Owners CTA ---------- */
.owners-banner{ display:grid; grid-template-columns: 1fr 1fr; align-items:stretch; background: var(--navy); border-radius: var(--radius-lg); overflow:hidden; }
.owners-copy{ padding: 64px; display:flex; flex-direction:column; justify-content:center; }
.owners-copy h2{ color:#fff; font-size: clamp(28px,3vw,38px); margin-bottom:18px; }
.owners-copy p{ color: rgba(255,255,255,.7); line-height:1.75; margin-bottom: 30px; }
.owners-media{ position:relative; min-height: 340px; }
@media (max-width: 900px){ .owners-banner{ grid-template-columns: 1fr; } .owners-copy{ padding: 44px 32px; } .owners-media{ min-height:260px; } }

/* ---------- Forms ---------- */
.form-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: 20px 24px; }
.form-grid .full{ grid-column: 1/-1; }
.form-field{ display:flex; flex-direction:column; gap:9px; }
.form-field label{ font-size:12px; font-weight:600; letter-spacing:.04em; color: var(--gray-700); }
.form-field input, .form-field select, .form-field textarea{
  border:1px solid var(--border); border-radius: 3px; padding: 14px 16px; font-size:15px; background:#fff; color: var(--ink); transition: border-color .3s;
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{ outline:none; border-color: var(--gold); }
.form-field textarea{ resize: vertical; min-height: 110px; }
.form-note{ font-size:12.5px; color: var(--gray-500); margin-top:14px; line-height:1.6; }
.bg-navy .form-field label{ color: rgba(255,255,255,.75); }
.bg-navy .form-field input, .bg-navy .form-field select, .bg-navy .form-field textarea{ background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.2); color:#fff; }
.bg-navy .form-field input::placeholder, .bg-navy .form-field textarea::placeholder{ color: rgba(255,255,255,.4); }
.bg-navy .form-note{ color: rgba(255,255,255,.5); }
.form-success{ display:none; text-align:center; padding: 40px 20px; }
.form-success.show{ display:block; }
.form-success .ic{ width:64px; height:64px; border-radius:50%; background: var(--blue-pale); color: var(--navy); display:flex; align-items:center; justify-content:center; margin: 0 auto 20px; }

/* ---------- Testimonials ---------- */
.testi-track{ display:flex; gap: 28px; overflow-x:auto; scroll-snap-type: x mandatory; padding-bottom: 10px; scrollbar-width: none; }
.testi-track::-webkit-scrollbar{ display:none; }
.testi-card{ scroll-snap-align:start; flex: 0 0 auto; width: 400px; background:#fff; border:1px solid var(--border); border-radius: var(--radius); padding: 36px; }
.testi-stars{ color: var(--gold); letter-spacing:3px; margin-bottom: 20px; font-size:15px; }
.testi-quote{ font-size:16px; line-height:1.75; color: var(--gray-700); margin-bottom: 26px; min-height:130px; }
.testi-person{ display:flex; align-items:center; gap:14px; }
.testi-avatar{ width:48px; height:48px; border-radius:50%; background: linear-gradient(135deg,var(--navy),var(--blue)); color:#fff; display:flex; align-items:center; justify-content:center; font-family: var(--font-serif); font-size:18px; flex-shrink:0; }
.testi-person strong{ display:block; font-size:14.5px; }
.testi-person span{ font-size:12.5px; color: var(--gray-500); }
.testi-nav{ display:flex; gap:12px; margin-top: 34px; justify-content:center; }
.testi-nav button{ width:42px; height:42px; border-radius:50%; border:1px solid var(--border); background:#fff; display:flex; align-items:center; justify-content:center; color: var(--navy); transition: all .3s; }
.testi-nav button:hover{ background: var(--navy); color:#fff; border-color: var(--navy); }
@media (max-width: 560px){ .testi-card{ width: 85vw; } }

/* ---------- FAQ ---------- */
.faq-tabs{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom: 40px; }
.faq-tab{ padding: 12px 22px; border-radius: 30px; border:1px solid var(--border); font-size:13px; font-weight:600; color: var(--gray-700); background:#fff; transition: all .3s; }
.faq-tab.active{ background: var(--navy); color:#fff; border-color: var(--navy); }
.faq-group{ display:none; }
.faq-group.active{ display:block; }
.faq-item{ border-bottom: 1px solid var(--border); }
.faq-q{ display:flex; align-items:center; justify-content:space-between; gap: 20px; padding: 26px 4px; width:100%; background:none; border:none; text-align:left; font-family: var(--font-serif); font-size: 18px; color: var(--ink); }
.faq-q .plus{ flex-shrink:0; width:26px; height:26px; border-radius:50%; border:1px solid var(--border); position:relative; }
.faq-q .plus::before, .faq-q .plus::after{ content:''; position:absolute; background: var(--navy); transition: transform .3s var(--ease); }
.faq-q .plus::before{ top:50%; left:6px; right:6px; height:1px; transform: translateY(-50%); }
.faq-q .plus::after{ left:50%; top:6px; bottom:6px; width:1px; transform: translateX(-50%); }
.faq-item.open .plus::after{ transform: translateX(-50%) scaleY(0); }
.faq-a{ max-height:0; overflow:hidden; transition: max-height .45s var(--ease); }
.faq-a p{ padding: 0 30px 26px 4px; color: var(--gray-500); line-height:1.75; }

/* ---------- Contact ---------- */
.contact-wrap{ display:grid; grid-template-columns: 1fr 1.1fr; gap: 70px; }
.contact-info-item{ display:flex; gap:18px; padding: 22px 0; border-bottom:1px solid var(--border); }
.contact-info-item .ic{ width:44px; height:44px; border-radius:50%; background: var(--blue-pale); color: var(--navy); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.contact-info-item strong{ display:block; font-size:15px; margin-bottom:4px; }
.contact-info-item span{ color: var(--gray-500); font-size:14px; }
@media (max-width: 940px){ .contact-wrap{ grid-template-columns: 1fr; gap:44px; } }

/* ---------- Footer ---------- */
.footer{ background: var(--navy-dark); color: rgba(255,255,255,.6); padding-top: 90px; }
.footer-top{ display:grid; grid-template-columns: 1.4fr 1fr 1fr 1fr 1.2fr; gap: 40px; padding-bottom: 70px; border-bottom: 1px solid rgba(255,255,255,.1); }
.footer-brand .logo{ margin-bottom: 20px; display:inline-block; }
.footer-brand p{ line-height:1.7; font-size:14px; max-width:280px; }
.footer-social{ display:flex; gap:12px; margin-top:24px; }
.footer-social a{ width:38px; height:38px; border-radius:50%; border:1px solid rgba(255,255,255,.2); display:flex; align-items:center; justify-content:center; transition: all .3s; }
.footer-social a:hover{ background: var(--gold); border-color: var(--gold); color: var(--navy); }
.footer-col h4{ color:#fff; font-size:13px; letter-spacing:.08em; text-transform:uppercase; margin-bottom: 24px; font-family: var(--font-sans); font-weight:700; }
.footer-col ul{ display:flex; flex-direction:column; gap:14px; }
.footer-col a{ font-size:14.5px; transition: color .3s; }
.footer-col a:hover{ color: var(--gold-light); }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; padding: 28px 0; font-size:12.5px; flex-wrap:wrap; gap:14px; }
@media (max-width: 980px){ .footer-top{ grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px){ .footer-top{ grid-template-columns: 1fr; } }

/* ---------- WhatsApp float ---------- */
.wa-float{
  position: fixed; right: 26px; bottom: 26px; z-index: 500;
  width: 62px; height:62px; border-radius:50%; background:#25D366; color:#fff;
  display:flex; align-items:center; justify-content:center; box-shadow: 0 10px 30px rgba(37,211,102,.45);
  transition: transform .35s var(--ease);
}
.wa-float:hover{ transform: scale(1.08); }
.wa-float::before{
  content:''; position:absolute; inset:0; border-radius:50%; background:#25D366; opacity:.55;
  animation: wa-pulse 2.4s infinite;
}
@keyframes wa-pulse{ 0%{ transform: scale(1); opacity:.55; } 100%{ transform: scale(1.9); opacity:0; } }

/* ---------- Breadcrumb / page header ---------- */
.page-header{ background: var(--navy); padding: 160px 0 60px; position:relative; overflow:hidden; }
.page-header h1{ color:#fff; font-size: clamp(32px,4.4vw,54px); }
.breadcrumb{ display:flex; gap:8px; align-items:center; font-size:12.5px; color: rgba(255,255,255,.55); margin-bottom:20px; text-transform:uppercase; letter-spacing:.06em; }
.breadcrumb a:hover{ color: var(--gold-light); }

/* ---------- Reveal / animation utilities ---------- */
[data-reveal]{ opacity:0; transform: translateY(36px); transition: opacity 1s var(--ease-soft), transform 1s var(--ease-soft); }
[data-reveal].in{ opacity:1; transform: translateY(0); }
[data-reveal="fade"]{ transform:none; }
[data-reveal-delay="1"]{ transition-delay:.1s; }
[data-reveal-delay="2"]{ transition-delay:.22s; }
[data-reveal-delay="3"]{ transition-delay:.34s; }
[data-reveal-delay="4"]{ transition-delay:.46s; }

/* ---------- Catalog (propiedades.html) ---------- */
.catalog-layout{ display:grid; grid-template-columns: 300px 1fr; gap: 50px; align-items:start; }
.filters-panel{ position: sticky; top: 110px; background:#fff; border:1px solid var(--border); border-radius: var(--radius); padding: 30px; }
.filters-panel h3{ font-size:19px; margin-bottom:24px; }
.filter-group{ margin-bottom: 26px; padding-bottom: 26px; border-bottom: 1px solid var(--border); }
.filter-group:last-child{ border-bottom:none; }
.filter-group label.title{ display:block; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.06em; color: var(--gray-700); margin-bottom: 14px; }
.chip-group{ display:flex; flex-wrap:wrap; gap:8px; }
.chip{ padding: 8px 14px; border-radius: 30px; border:1px solid var(--border); font-size:12.5px; color: var(--gray-700); background:#fff; transition: all .25s; }
.chip.active{ background: var(--navy); color:#fff; border-color: var(--navy); }
.range-row{ display:flex; gap:10px; align-items:center; }
.range-row input{ width:100%; border:1px solid var(--border); border-radius:3px; padding:10px 12px; font-size:13.5px; }
.check-row{ display:flex; align-items:center; gap:10px; padding: 7px 0; font-size:14px; color: var(--gray-700); }
.catalog-toolbar{ display:flex; align-items:center; justify-content:space-between; margin-bottom: 30px; gap:16px; flex-wrap:wrap; }
.result-count{ color: var(--gray-500); font-size:14.5px; }
.sort-select{ border:1px solid var(--border); border-radius:3px; padding:10px 14px; font-size:13.5px; background:#fff; }
.filters-mobile-toggle{ display:none; }
.empty-state{ text-align:center; padding: 80px 20px; color: var(--gray-500); }
@media (max-width: 980px){
  .catalog-layout{ grid-template-columns: 1fr; }
  .filters-panel{ position:fixed; top:0; left:0; right:0; bottom:0; z-index:950; border-radius:0; overflow-y:auto; transform: translateX(-100%); transition: transform .4s var(--ease); }
  .filters-panel.open{ transform: translateX(0); }
  .filters-mobile-toggle{ display:inline-flex; }
  .filters-close{ display:flex; justify-content:flex-end; margin-bottom:16px; }
}

/* ---------- Property detail (propiedad.html) ---------- */
.gallery-main{ position:relative; height: 560px; border-radius: var(--radius); overflow:hidden; }
.gallery-thumbs{ display:grid; grid-template-columns: repeat(6,1fr); gap:10px; margin-top:10px; }
.gallery-thumbs .th{ height:80px; border-radius:4px; overflow:hidden; cursor:pointer; opacity:.6; transition: opacity .3s; }
.gallery-thumbs .th:hover, .gallery-thumbs .th.active{ opacity:1; }
.gallery-count{ position:absolute; bottom:18px; right:18px; z-index:2; background: rgba(7,19,34,.7); color:#fff; padding:8px 16px; border-radius:30px; font-size:12.5px; display:flex; align-items:center; gap:8px; }

.detail-layout{ display:grid; grid-template-columns: 1.7fr 1fr; gap: 60px; align-items:start; margin-top: 50px; }
.detail-header{ display:flex; justify-content:space-between; align-items:flex-start; gap: 30px; padding-bottom: 30px; border-bottom: 1px solid var(--border); margin-bottom:34px; flex-wrap:wrap; }
.detail-header h1{ font-size: clamp(26px,3vw,36px); margin-bottom:10px; }
.detail-loc{ display:flex; align-items:center; gap:8px; color: var(--gray-500); font-size:14.5px; }
.detail-price{ text-align:right; }
.detail-price .price{ font-family: var(--font-serif); font-size:34px; color: var(--navy); }
.detail-price small{ display:block; color: var(--gray-500); font-size:12.5px; text-transform:uppercase; letter-spacing:.05em; margin-top:4px; }
.detail-ref{ font-size:12px; color: var(--gray-500); margin-top:6px; }

.quickfacts{ display:flex; gap:0; border:1px solid var(--border); border-radius: var(--radius); overflow:hidden; margin-bottom: 44px; }
.quickfacts div{ flex:1; text-align:center; padding: 22px 10px; border-right:1px solid var(--border); }
.quickfacts div:last-child{ border-right:none; }
.quickfacts strong{ display:block; font-family: var(--font-serif); font-size:22px; color: var(--navy); margin-bottom:6px; }
.quickfacts span{ font-size:11.5px; color: var(--gray-500); text-transform:uppercase; letter-spacing:.05em; }

.detail-block{ margin-bottom: 50px; }
.detail-block h2{ font-size:24px; margin-bottom: 20px; }
.detail-block p{ color: var(--gray-700); line-height:1.85; font-size:15.5px; }
.amen-grid{ display:grid; grid-template-columns: repeat(2,1fr); gap: 14px 24px; }
.amen-grid div{ display:flex; align-items:center; gap:12px; font-size:14.5px; color: var(--gray-700); }
.amen-grid .ic{ color: var(--gold-dark); flex-shrink:0; }
.map-ph{ height: 340px; border-radius: var(--radius); overflow:hidden; }
.plans-grid{ display:grid; grid-template-columns: repeat(2,1fr); gap:20px; }
.plan-card{ height:220px; border-radius: var(--radius); overflow:hidden; position:relative; }
.plan-label{ position:absolute; bottom:14px; left:16px; color:#fff; font-size:13px; font-weight:600; z-index:2; }
@media (max-width: 560px){ .amen-grid, .plans-grid{ grid-template-columns:1fr; } }

.sidebar-card{ background:#fff; border:1px solid var(--border); border-radius: var(--radius); padding: 30px; position: sticky; top: 110px; box-shadow: var(--shadow-sm); }
.sidebar-agent{ display:flex; align-items:center; gap:14px; padding-bottom:24px; border-bottom:1px solid var(--border); margin-bottom:24px; }
.sidebar-card .btn{ margin-bottom:12px; }
.related-title{ margin: 90px 0 36px; }
@media (max-width: 1080px){ .detail-layout{ grid-template-columns: 1fr; } .sidebar-card{ position:static; } }
@media (max-width: 720px){ .gallery-main{ height:340px; } .gallery-thumbs{ grid-template-columns: repeat(3,1fr); } .detail-price{ text-align:left; } }

/* ---------- Modal ---------- */
.modal-overlay{ position:fixed; inset:0; background: rgba(7,19,34,.7); z-index:990; display:flex; align-items:center; justify-content:center; padding:20px; opacity:0; visibility:hidden; transition: all .4s var(--ease); }
.modal-overlay.open{ opacity:1; visibility:visible; }
.modal-box{ background:#fff; border-radius: var(--radius); max-width: 560px; width:100%; padding: 44px; position:relative; max-height:90vh; overflow-y:auto; transform: translateY(20px); transition: transform .4s var(--ease); }
.modal-overlay.open .modal-box{ transform: translateY(0); }
.modal-close{ position:absolute; top:20px; right:20px; width:36px; height:36px; border-radius:50%; display:flex; align-items:center; justify-content:center; color: var(--gray-500); }
.modal-close:hover{ background: var(--off-white); }
.modal-box h3{ font-size:24px; margin-bottom:8px; }
.modal-box > p{ color: var(--gray-500); margin-bottom: 26px; font-size:14.5px; }

/* ---------- AI chat widget ---------- */
.chat-widget{ position:fixed; bottom:26px; right:100px; z-index:901; }
.chat-launcher{
  width:60px; height:60px; border-radius:50%; background: var(--navy); color: var(--gold-light);
  display:flex; align-items:center; justify-content:center; position:relative;
  box-shadow: var(--shadow-lg); transition: transform .35s var(--ease);
  border: 1px solid var(--navy-light);
}
.chat-launcher:hover{ transform:scale(1.08); }
.chat-widget.open .chat-launcher{ transform:scale(0); opacity:0; pointer-events:none; }
.chat-launcher-badge{
  position:absolute; top:-4px; right:-4px; background: var(--gold); color: var(--navy-dark);
  font-size:10px; font-weight:800; letter-spacing:.04em; padding:2px 6px; border-radius:100px; border:1px solid #fff;
}

.chat-panel{
  position:absolute; bottom:0; right:0; width:370px; max-width:calc(100vw - 40px); height:540px; max-height:72vh;
  background:#fff; border:1px solid var(--border); border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
  display:flex; flex-direction:column; overflow:hidden;
  opacity:0; transform:translateY(16px) scale(.97); pointer-events:none;
  transition:opacity .35s var(--ease), transform .35s var(--ease);
}
.chat-widget.open .chat-panel{ opacity:1; transform:translateY(0) scale(1); pointer-events:auto; }

.chat-panel-header{
  display:flex; align-items:center; justify-content:space-between; padding:20px 22px;
  background: var(--navy); color:#fff;
}
.chat-panel-header strong{ display:block; font-family: var(--font-serif); font-size:17px; font-weight:500; }
.chat-panel-header span{ display:block; font-size:11.5px; color: var(--gold-light); margin-top:4px; letter-spacing:.02em; }
.chat-language{ display:flex; margin-left:auto; margin-right:10px; border:1px solid rgba(255,255,255,.3); border-radius:100px; padding:2px; }
.chat-language button{ color:#fff; font-size:10px; font-weight:800; padding:5px 7px; border-radius:100px; }
.chat-language button.active{ background:var(--gold); color:var(--navy); }
.chat-close{ color: rgba(255,255,255,.7); padding:4px; transition:color .25s; }
.chat-close:hover{ color:#fff; }

.chat-messages{ flex:1; overflow-y:auto; padding:18px 20px; display:flex; flex-direction:column; gap:12px; background: var(--off-white); }
.chat-msg{
  max-width:85%; padding:11px 15px; border-radius:14px; font-size:13.5px; line-height:1.55; white-space:pre-wrap;
}
.chat-msg-user{ align-self:flex-end; background: var(--navy); color:#fff; border-bottom-right-radius:4px; }
.chat-msg-model{ align-self:flex-start; background:#fff; border:1px solid var(--border); color: var(--gray-700); border-bottom-left-radius:4px; }
.chat-typing{ display:flex; gap:4px; align-items:center; padding:13px 16px; }
.chat-typing span{ width:6px; height:6px; border-radius:50%; background: var(--gray-300); animation:typingDot 1.2s ease-in-out infinite; }
.chat-typing span:nth-child(2){ animation-delay:.15s; }
.chat-typing span:nth-child(3){ animation-delay:.3s; }
@keyframes typingDot{ 0%,60%,100%{ opacity:.4; transform:translateY(0);} 30%{ opacity:1; transform:translateY(-3px);} }

.chat-quick-replies{ display:flex; flex-wrap:wrap; gap:7px; padding:0 20px 14px; background: var(--off-white); }
.chat-quick-chip{
  font-size:12px; padding:8px 13px; border-radius:100px; border:1px solid var(--border); background:#fff;
  color: var(--gray-700); transition:border-color .25s, color .25s;
}
.chat-quick-chip:hover{ border-color: var(--gold); color: var(--navy); }
.chat-turnstile{ min-height:65px; padding:0 16px 10px; background:var(--off-white); display:flex; justify-content:center; }
.chat-turnstile iframe{ max-width:100%; }
.form-turnstile{ min-height:66px; display:flex; justify-content:center; align-items:center; }
.form-error{ grid-column:1/-1; color:#a33b32; font-size:13px; margin:0; }
.form-grid button:disabled{ opacity:.55; cursor:wait; }

.cookie-banner{ position:fixed; left:24px; right:24px; bottom:24px; z-index:1200; background:#fff; border:1px solid var(--border); box-shadow:var(--shadow-lg); padding:20px 24px; display:flex; align-items:center; justify-content:space-between; gap:24px; border-radius:var(--radius); }
.cookie-banner strong{ color:var(--navy); font-family:var(--font-serif); font-size:18px; }
.cookie-banner p{ color:var(--gray-500); font-size:13px; margin-top:5px; max-width:680px; }
.cookie-actions{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; flex-shrink:0; }
.cookie-actions .btn{ padding:10px 14px; font-size:12px; }
.cookie-actions a{ color:var(--navy); text-decoration:underline; font-size:12px; }
@media (max-width:760px){ .cookie-banner{ left:12px; right:12px; bottom:12px; flex-direction:column; align-items:flex-start; } }

.chat-input-row{ display:flex; align-items:center; gap:10px; padding:14px 16px; border-top:1px solid var(--border); background:#fff; }
.chat-input-row input{
  flex:1; background: var(--off-white); border:1px solid var(--border); border-radius:100px; padding:11px 17px;
  color: var(--ink); font-size:13.5px; outline:none; transition:border-color .3s;
}
.chat-input-row input:focus{ border-color: var(--gold); }
.chat-input-row button{
  width:40px; height:40px; border-radius:50%; background: var(--gold); color: var(--navy-dark); flex-shrink:0;
  display:flex; align-items:center; justify-content:center; transition:transform .25s var(--ease);
}
.chat-input-row button:hover{ transform:scale(1.08); }

.chat-whatsapp-fallback{
  display:block; text-align:center; font-size:12px; color: var(--gray-500); padding:11px; border-top:1px solid var(--border); background:#fff;
  transition:color .25s;
}
.chat-whatsapp-fallback:hover{ color:#25D366; }

.prop-card.is-unavailable .prop-media img,.prop-card.is-unavailable .prop-media .ph-photo{ filter:grayscale(.75); opacity:.72; }
.prop-card.is-unavailable{ opacity:.82; }
.prop-tag.status-closed{ background:#8d2f2f; color:#fff; }
.availability-notice{ margin-bottom:18px; padding:13px 15px; border-radius:6px; background:#fff2d8; border:1px solid #e4bd69; color:#684916; font-size:13px; line-height:1.45; }

@media (max-width:640px){
  .chat-widget{ right:20px; bottom:96px; }
  .chat-panel{ width:calc(100vw - 40px); height:65vh; }
}

/* ---------- Misc ---------- */
.divider-fade{ height:1px; background: linear-gradient(90deg, transparent, var(--border), transparent); }
::selection{ background: var(--gold-light); color: var(--navy-dark); }

/* ---------- Mobile fit & iPhone Safari ---------- */
@media (max-width: 640px){
  .container{ width:100%; max-width:100%; padding-left:16px; padding-right:16px; }
  .navbar{ padding:18px 0; }
  .navbar.solid{ padding:12px 0; }
  .navbar-inner{ gap:12px; }
  .logo{ font-size:22px; }
  .navbar-actions{ gap:8px; }
  .nav-icon-btn{ width:40px; height:40px; }

  .hero{ width:100%; min-height:100svh; }
  .hero-content{ padding-top:108px; padding-bottom:125px; }
  .hero-badge{ max-width:100%; padding:8px 13px; font-size:10px; line-height:1.45; letter-spacing:.11em; white-space:normal; }
  .hero-title,.hero-title[style]{ font-size:clamp(37px,11.5vw,49px) !important; max-width:100%; overflow-wrap:anywhere; }
  .hero-title br{ display:none; }
  .hero-subtitle{ max-width:100%; font-size:16px; line-height:1.6; margin-top:20px; }
  .hero-cta{ display:grid; grid-template-columns:1fr; gap:12px; margin-top:30px; }
  .hero-cta .btn{ width:100%; min-width:0; white-space:normal; text-align:center; padding:16px 18px; }

  .search-widget{ width:100%; margin-top:-54px; }
  .search-card{ width:100%; min-width:0; padding:22px 20px; gap:18px; }
  .op-toggle{ width:100%; }
  .op-toggle button{ flex:1; min-width:0; padding:11px 8px; }

  .section-pad{ padding:64px 0; }
  .section-pad-sm{ padding:48px 0; }
  .section-head{ margin-bottom:34px; }
  .section-title{ font-size:clamp(30px,9vw,39px); overflow-wrap:anywhere; }
  .section-sub{ font-size:15.5px; line-height:1.65; }
  .owners-banner{ width:100%; }
  .owners-copy{ min-width:0; padding:34px 22px; }
  .owners-copy h2,.owners-copy p{ max-width:100%; overflow-wrap:anywhere; }
  .owners-copy .btn{ width:100%; min-width:0; padding:16px 14px; white-space:normal; text-align:center; line-height:1.35; }
  .owners-media{ min-height:230px; }

  .page-header{ padding:125px 0 45px; }
  .breadcrumb{ flex-wrap:wrap; line-height:1.45; overflow-wrap:anywhere; }
  .gallery-main{ width:100%; height:62vw; min-height:240px; max-height:340px; }
  .gallery-thumbs{ width:100%; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
  .gallery-thumbs .th{ height:72px; }
  .detail-layout{ width:100%; min-width:0; gap:34px; margin-top:34px; }
  .detail-layout > *{ min-width:0; }
  .detail-header{ display:grid; grid-template-columns:1fr; gap:20px; padding-bottom:24px; margin-bottom:24px; }
  .detail-header h1{ font-size:29px; overflow-wrap:anywhere; }
  .detail-loc{ align-items:flex-start; line-height:1.45; }
  .detail-price{ width:100%; text-align:left; }
  .detail-price .price{ font-size:clamp(29px,9vw,38px); line-height:1.05; overflow-wrap:anywhere; }
  .quickfacts{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); overflow:visible; border-bottom:0; }
  .quickfacts div{ min-width:0; padding:18px 8px; border-right:1px solid var(--border); border-bottom:1px solid var(--border); }
  .quickfacts div:nth-child(2n){ border-right:0; }
  .quickfacts strong{ font-size:20px; overflow-wrap:anywhere; }
  .quickfacts span{ font-size:10px; overflow-wrap:anywhere; }
  .detail-block{ margin-bottom:38px; }
  .detail-block p{ font-size:15px; line-height:1.75; overflow-wrap:anywhere; }
  .sidebar-card{ padding:22px 18px; }
  .sidebar-card .btn{ min-width:0; padding-left:12px; padding-right:12px; white-space:normal; text-align:center; }
  .related-title{ margin:60px 0 28px; }

  .prop-specs{ flex-wrap:wrap; gap:10px 14px; }
  .prop-price-tag .price{ font-size:23px; }
  .modal-box{ padding:34px 20px 24px; }
  .cookie-banner{ max-height:calc(100svh - 24px); overflow-y:auto; padding:17px; }
  .cookie-actions{ width:100%; }
  .cookie-actions .btn{ flex:1; min-width:130px; white-space:normal; }

  .wa-float{ width:54px; height:54px; right:14px; bottom:20px; }
  .chat-widget{ right:14px; bottom:84px; }
  .chat-launcher{ width:54px; height:54px; }
  .chat-panel{ right:0; width:calc(100vw - 28px); max-width:calc(100vw - 28px); height:min(620px,72svh); }
}

@media (max-width: 380px){
  .hero-title,.hero-title[style]{ font-size:35px !important; }
  .quickfacts{ grid-template-columns:1fr 1fr; }
  .chat-panel-header{ padding:15px 13px; }
  .chat-panel-header strong{ font-size:15px; }
}
