:root{
  --ink:#171a16;
  --forest:#20261f;
  --forest-2:#121512;
  --bone:#f1eee7;
  --stone:#d8d0c2;
  --sand:#b5a48a;
  --wine:#4d211f;
  --brass:#b99a6a;
  --line:rgba(241,238,231,.22);
  --serif:Baskerville,"Iowan Old Style","Palatino Linotype",Georgia,serif;
  --sans:"Helvetica Neue",Arial,sans-serif;
  --container:min(1240px,calc(100% - 64px));
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--ink);scroll-padding-top:76px}
body{margin:0;color:var(--bone);background:var(--ink);font-family:var(--sans);font-weight:300;overflow-x:hidden}
body.menu-open{overflow:hidden}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit}
button{color:inherit}
img{display:block;width:100%;max-width:100%}
::selection{background:var(--brass);color:var(--ink)}

.skip-link{position:fixed;z-index:300;left:16px;top:12px;padding:10px 14px;background:#fff;color:#111;transform:translateY(-160%);transition:transform .2s}
.skip-link:focus{transform:none}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.container{width:var(--container);margin-inline:auto}
.eyebrow{margin:0;font-size:10px;line-height:1.4;letter-spacing:.28em;text-transform:uppercase;color:var(--brass);font-weight:600}
.dark-accent{color:#806b4b}
.display{font-family:var(--serif);font-weight:400;line-height:.9;letter-spacing:-.04em;margin:0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:16px;min-height:46px;padding:14px 20px;border:1px solid rgba(241,238,231,.38);background:transparent;color:var(--bone);font-size:10px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;transition:background .28s ease,color .28s ease,border-color .28s ease}
.btn:hover,.btn:focus-visible{background:var(--bone);color:var(--ink);border-color:var(--bone)}
.btn.dark{border-color:rgba(23,26,22,.30);color:var(--ink)}
.btn.dark:hover,.btn.dark:focus-visible{background:var(--ink);color:var(--bone);border-color:var(--ink)}
.text-link{display:inline-flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid currentColor;font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.light{color:#fff}
:focus-visible{outline:2px solid currentColor;outline-offset:4px}
.screen-section{min-height:100svh;display:flex;align-items:center}
.screen-section-short{min-height:48svh;display:flex;align-items:center}

/* NAV */
.nav{position:fixed;inset:0 0 auto;height:82px;z-index:90;display:flex;align-items:center;border-bottom:1px solid transparent;transition:height .35s ease,background .35s ease,border-color .35s ease}
.nav.scrolled{height:70px;background:rgba(18,21,18,.92);backdrop-filter:blur(14px);border-color:rgba(241,238,231,.10)}
.nav-inner{width:min(1360px,calc(100% - 48px));margin:auto;display:grid;grid-template-columns:1fr auto 1fr;gap:24px;align-items:center}
.nav-links,.nav-actions{display:flex;gap:22px;align-items:center}
.nav-actions{justify-content:flex-end}
.nav-link{font-size:9px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:rgba(241,238,231,.80);white-space:nowrap;transition:color .2s ease}
.nav-link:hover,.nav-link:focus-visible{color:#fff}
.brand{text-align:center;font-family:var(--serif);font-weight:500;letter-spacing:.06em;font-size:18px;line-height:.9;white-space:nowrap}
.brand small{display:block;margin-top:7px;font-family:var(--sans);font-size:7px;letter-spacing:.24em;text-transform:uppercase;color:rgba(241,238,231,.62)}
.nav-cta{padding-inline:15px;min-height:42px;font-size:8px}
.menu-btn{display:none;justify-self:end;width:44px;height:44px;border:1px solid var(--line);background:transparent;position:relative;cursor:pointer}
.menu-btn span{position:absolute;left:12px;width:18px;height:1px;background:currentColor;transition:transform .25s ease}
.menu-btn span:first-child{top:17px}.menu-btn span:nth-child(2){top:25px}
.menu-btn[aria-expanded="true"] span:first-child{transform:translateY(4px) rotate(45deg)}
.menu-btn[aria-expanded="true"] span:nth-child(2){transform:translateY(-4px) rotate(-45deg)}
.mobile-menu{display:none}

/* HERO */
.hero{height:100svh;min-height:680px;position:relative;overflow:hidden;background:#111}
.hero-media{position:absolute;inset:0}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,8,7,.16),rgba(7,8,7,.05) 36%,rgba(7,8,7,.78) 100%),linear-gradient(90deg,rgba(7,8,7,.42),transparent 58%)}
.hero-content{position:absolute;inset:auto 0 8.5vh;z-index:2}
.hero-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:50px;align-items:end}
.hero h1{font-size:clamp(68px,8.5vw,138px);max-width:1020px}
.hero h1 em{font-weight:400;color:var(--stone)}
.hero-side{max-width:380px;justify-self:end;padding-bottom:12px}
.hero-side>p{font-family:var(--serif);font-size:22px;line-height:1.3;margin:15px 0 28px;color:rgba(241,238,231,.88)}
.hero-actions{display:flex;gap:20px;align-items:center;flex-wrap:wrap}
.hero-meta{position:absolute;left:22px;top:50%;z-index:3;writing-mode:vertical-rl;transform:translateY(-50%) rotate(180deg);font-size:8px;letter-spacing:.24em;text-transform:uppercase;color:rgba(241,238,231,.58)}
.scrollmark{position:absolute;right:28px;bottom:28px;z-index:3;display:flex;gap:12px;align-items:center;font-size:8px;letter-spacing:.2em;text-transform:uppercase;color:rgba(241,238,231,.55)}
.scrollmark::after{content:"";height:58px;width:1px;background:rgba(241,238,231,.35)}

/* MANIFESTO */
.manifesto{padding:130px 0;background:var(--bone);color:var(--ink)}
.manifesto-grid{display:grid;grid-template-columns:.34fr 1fr;gap:70px;align-items:start}
.manifesto-copy{font-family:var(--serif);font-size:clamp(44px,5.1vw,78px);line-height:.98;letter-spacing:-.035em;margin:0}
.manifesto-copy em{color:#786b59;font-weight:400}
.manifesto-note{grid-column:2;max-width:520px;margin:24px 0 0;font-size:14px;line-height:1.8;color:rgba(23,26,22,.68)}

/* ESTATE */
.estate{background:var(--forest);padding:55px 0}
.estate-media{width:100%;height:min(82svh,840px);min-height:560px;position:relative;overflow:hidden}
.estate-media picture,.estate-media img{width:100%;height:100%;object-fit:cover}
.estate-shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 42%,rgba(10,12,10,.78))}
.estate-caption{position:absolute;left:max(6vw,32px);bottom:8%;z-index:2;max-width:720px}
.estate-caption h2{font-size:clamp(54px,6.4vw,100px);margin-top:14px}
.estate-caption>p:not(.eyebrow){font-family:var(--serif);font-size:23px;line-height:1.3;max-width:500px;color:rgba(241,238,231,.82)}

/* EXPERIENCES */
.experiences{background:var(--ink)}
.experience-head{padding:90px 0 60px}
.experience-head-row{width:100%;display:flex;justify-content:space-between;gap:70px;align-items:end}
.experience-head h2{font-size:clamp(60px,7.4vw,112px);margin-top:12px}
.experience-head-row>p{max-width:430px;margin:0 0 8px;font-size:13px;line-height:1.85;color:rgba(241,238,231,.64)}
.experience-card{min-height:84svh;display:grid;grid-template-columns:1.15fr .85fr;border-top:1px solid rgba(241,238,231,.10);background:var(--ink)}
.experience-card:nth-of-type(odd){grid-template-columns:.85fr 1.15fr}
.experience-card:nth-of-type(odd) .exp-media{order:2}
.experience-card:nth-of-type(odd) .exp-copy{order:1}
.exp-media{min-height:560px;position:relative;overflow:hidden}
.exp-media img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.2,.65,.25,1),filter .5s ease}
.experience-card:hover .exp-media img{transform:scale(1.02)}
.exp-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.25))}
.exp-index{position:absolute;z-index:2;left:22px;top:22px;width:42px;height:42px;border:1px solid rgba(255,255,255,.44);border-radius:50%;display:grid;place-items:center;font-size:9px;letter-spacing:.1em}
.exp-copy{padding:7vw;display:flex;flex-direction:column;justify-content:center}
.exp-copy h3{font-family:var(--serif);font-size:clamp(54px,5.8vw,94px);font-weight:400;line-height:.89;letter-spacing:-.035em;margin:14px 0 26px}
.exp-copy .lead{font-family:var(--serif);font-size:25px;line-height:1.27;color:var(--stone);max-width:500px;margin:0 0 24px}
.exp-copy .body{font-size:13px;line-height:1.8;color:rgba(241,238,231,.63);max-width:450px;margin:0 0 30px}
.health-card{background:#ece8df;color:var(--ink)}
.health-card .eyebrow{color:#7d694e}.health-card .lead{color:#615a4e}.health-card .body{color:rgba(23,26,22,.64)}.health-card .exp-index{border-color:rgba(23,26,22,.30)}
.dining-card{background:#171310}.social-card{background:#0b0b0b}.padel-card{background:#202720}
.padel-card .exp-media img{filter:saturate(.72) brightness(.90)}
.courts-badge{display:flex;gap:16px;margin-top:4px}.courts-badge span{min-width:120px;padding-top:10px;border-top:1px solid rgba(241,238,231,.28);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:rgba(241,238,231,.65)}
.pool-feature{padding:100px 0;background:var(--forest-2)}
.pool-feature-grid{width:100%;display:grid;grid-template-columns:.65fr 1.35fr;gap:70px;align-items:center}
.pool-copy h3{font-size:clamp(52px,5.4vw,84px);margin:16px 0 28px}
.pool-copy>p:not(.eyebrow){max-width:420px;line-height:1.8;color:rgba(241,238,231,.65)}
.pool-media{margin:0;aspect-ratio:16/10;overflow:hidden}.pool-media img{width:100%;height:100%;object-fit:cover}

/* RESIDENCES */
.residences{background:var(--bone);color:var(--ink);padding:110px 0}
.residences>.container{width:var(--container)}
.res-head{display:grid;grid-template-columns:1fr .55fr;gap:60px;align-items:end;margin-bottom:55px}
.res-head h2{font-size:clamp(60px,7.2vw,112px);margin-top:12px}
.res-head>p{font-family:var(--serif);font-size:23px;line-height:1.3;color:#6f675c;margin:0 0 10px}
.res-showcase{display:grid;grid-template-columns:1.18fr .82fr;min-height:640px;background:#d7d0c4;border:1px solid rgba(23,26,22,.12)}
.res-image{position:relative;overflow:hidden;min-height:640px;background:#cfc6b8}
.res-image>img{width:100%;height:100%;object-fit:cover;transition:opacity .25s ease,transform .6s ease}
.res-image.is-changing>img{opacity:.25;transform:scale(1.01)}
.res-image::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 64%,rgba(20,17,12,.38));pointer-events:none}
.gallery-arrow{position:absolute;z-index:4;top:50%;width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.65);background:rgba(15,18,15,.28);color:#fff;display:grid;place-items:center;cursor:pointer;transform:translateY(-50%);backdrop-filter:blur(6px)}
.gallery-prev{left:18px}.gallery-next{right:18px}
.res-legend{position:absolute;z-index:3;left:28px;right:28px;bottom:24px;color:#fff;display:grid;grid-template-columns:1fr auto;align-items:end;gap:3px 20px}
.res-legend .eyebrow{grid-column:1/-1;color:#fff}.res-legend strong{font-family:var(--serif);font-size:34px;font-weight:400}.res-legend span{font-size:9px;letter-spacing:.16em;text-transform:uppercase}
.res-panel{display:flex;flex-direction:column;background:#e8e3d8;min-width:0}
.res-list{display:flex;flex-direction:column}
.res-item{appearance:none;width:100%;border:0;border-bottom:1px solid rgba(23,26,22,.14);background:transparent;color:var(--ink);padding:23px 26px;display:grid;grid-template-columns:38px 1fr auto;gap:12px;align-items:center;text-align:left;cursor:pointer;transition:background .25s ease,color .25s ease}
.res-item:hover,.res-item.active{background:var(--ink);color:var(--bone)}
.res-item .num{font-size:9px;letter-spacing:.16em;color:#8a7a63}
.res-item strong{display:block;font-family:var(--serif);font-size:29px;font-weight:400;line-height:1.05}
.res-item small{display:block;margin-top:5px;font-size:9px;letter-spacing:.10em;text-transform:uppercase;color:#756f65}
.res-item:hover small,.res-item.active small{color:rgba(241,238,231,.56)}
.res-item .arr{font-family:var(--serif);font-size:20px}
.res-detail{padding:26px;margin-top:auto;border-top:1px solid rgba(23,26,22,.14)}
.res-detail-top{display:flex;justify-content:space-between;gap:20px;align-items:center}
.res-detail-top>strong{font-family:var(--serif);font-size:24px;font-weight:400}
.res-detail>p:not(.eyebrow){font-size:12px;line-height:1.72;color:rgba(23,26,22,.67)}
.res-detail ul{display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:18px 0 22px;list-style:none}
.res-detail li{padding:7px 8px;border:1px solid rgba(23,26,22,.15);font-size:8px;letter-spacing:.07em;text-transform:uppercase}

/* OWNERSHIP */
.ownership{padding:125px 0;background:var(--wine);position:relative;overflow:hidden}
.ownership::before{content:"TAI";position:absolute;right:-2vw;top:-7vw;font-family:var(--serif);font-size:38vw;line-height:1;color:rgba(255,255,255,.025);pointer-events:none}
.ownership-grid{width:100%;display:grid;grid-template-columns:.78fr 1.22fr;gap:90px;position:relative}
.ownership h2{font-size:clamp(62px,7.4vw,116px);margin-top:12px}
.ownership-copy{padding-top:35px}.ownership-copy>p{font-family:var(--serif);font-size:26px;line-height:1.28;max-width:560px;color:#e4dbcd}
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(241,238,231,.18);margin:44px 0 34px}
.pillars article{background:var(--wine);padding:26px}.pillars span{font-size:9px;letter-spacing:.18em;color:#c5a479}.pillars h3{font-family:var(--serif);font-size:27px;font-weight:400;margin:16px 0 10px}.pillars p{font-size:11px;line-height:1.65;color:rgba(241,238,231,.62);margin:0}

/* TRUST */
.trust-band{background:#151915;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08)}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.trust-grid>div{min-height:150px;display:flex;align-items:center;justify-content:center;gap:12px;border-right:1px solid rgba(255,255,255,.10)}
.trust-grid>div:last-child{border-right:0}.trust-grid strong{font-family:var(--serif);font-size:43px;font-weight:400}.trust-grid span{font-size:8px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.55)}

/* LOCATION */
.location{background:#d7d0c4;color:var(--ink);padding:110px 0}
.loc-grid{width:100%;display:grid;grid-template-columns:.75fr 1.25fr;gap:80px;align-items:center}
.location h2{font-size:clamp(58px,7.3vw,108px);margin:14px 0 28px}
.location .intro{font-family:var(--serif);font-size:23px;line-height:1.3;color:#706558;max-width:470px;margin-bottom:30px}
.map-art{height:min(64svh,600px);min-height:430px;border:1px solid rgba(23,26,22,.25);position:relative;background:linear-gradient(135deg,#dcd5c9,#cfc6b8);overflow:hidden;color:#403a31;transition:transform .25s ease,box-shadow .25s ease}
.map-art:hover,.map-art:focus-visible{transform:translateY(-3px);box-shadow:0 22px 50px rgba(23,26,22,.13)}
.map-art svg{width:100%;height:100%}.map-label{position:absolute;left:24px;bottom:22px;display:grid;gap:5px;padding:14px 16px;background:rgba(241,238,231,.88);backdrop-filter:blur(8px)}.map-label small,.map-label em{font-size:8px;letter-spacing:.15em;text-transform:uppercase;font-style:normal}.map-label strong{font-family:var(--serif);font-size:22px;font-weight:400}.map-label em{color:#6f6559}

/* CONTACT */
.contact{background:var(--forest-2);padding:110px 0 38px}
.contact>.container{width:var(--container)}
.contact-grid{width:100%;display:grid;grid-template-columns:1.02fr .98fr;gap:90px}
.contact h2{font-size:clamp(58px,7.2vw,108px);margin:14px 0 30px}.contact .intro{font-family:var(--serif);font-size:23px;line-height:1.32;color:var(--stone);max-width:500px}.contact-details{display:flex;flex-wrap:wrap;gap:18px 30px;margin-top:44px;font-size:10px;letter-spacing:.08em;color:rgba(241,238,231,.62)}
.contact-form{padding-top:30px;position:relative}.form-messages{margin-bottom:14px}.form-msg{padding:10px 14px;border-radius:8px;font-size:14px;margin:0 0 8px}.form-msg.success{background:rgba(116,165,127,.15);color:#89c795;border:1px solid rgba(116,165,127,.55)}.form-msg.error{background:rgba(224,104,79,.15);color:#ef9b87;border:1px solid rgba(224,104,79,.55)}
.field{border-bottom:1px solid rgba(241,238,231,.27);padding:16px 0;margin-bottom:8px;display:grid;grid-template-columns:118px 1fr;align-items:center}.field label{font-size:8px;letter-spacing:.18em;text-transform:uppercase;color:rgba(241,238,231,.48)}.field input{border:0;background:transparent;color:var(--bone);outline:none;font-family:var(--serif);font-size:21px;width:100%}.field input::placeholder{color:rgba(241,238,231,.34)}.field:focus-within{border-color:rgba(241,238,231,.70)}
.form-action{display:flex;justify-content:space-between;align-items:center;margin-top:32px;gap:20px}.form-note{font-size:9px;line-height:1.5;color:rgba(241,238,231,.40);max-width:220px}.hp-field{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}
.footer{margin-top:85px;padding-top:26px;border-top:1px solid rgba(241,238,231,.12);display:flex;justify-content:space-between;gap:20px;font-size:8px;line-height:1.5;letter-spacing:.14em;text-transform:uppercase;color:rgba(241,238,231,.38)}

.whatsapp-float{position:fixed;z-index:70;right:18px;bottom:18px;display:grid;place-items:center;width:50px;height:50px;border-radius:50%;background:var(--bone);color:var(--ink);box-shadow:0 14px 30px rgba(0,0,0,.24);transition:transform .2s ease}.whatsapp-float:hover{transform:translateY(-3px)}.whatsapp-float svg{width:26px;height:26px;fill:currentColor}

/* Motion enhancement; content stays visible without JavaScript */
.reveal{transition:opacity .85s ease,transform .85s ease}.reveal:not(.in){opacity:.82;transform:translateY(8px)}.reveal.in{opacity:1;transform:none}

@media(max-width:1180px){
  .nav-links{gap:14px}.nav-actions{gap:14px}.nav-cta{display:none}
  .hero h1{font-size:clamp(62px,8.6vw,112px)}
  .res-showcase{grid-template-columns:1.08fr .92fr}
}

@media(max-width:980px){
  :root{--container:min(100% - 36px,820px)}
  .screen-section{min-height:auto}
  .nav-inner{width:calc(100% - 30px);grid-template-columns:1fr auto}.nav-links,.nav-actions{display:none}.brand{text-align:left}.menu-btn{display:block}
  .mobile-menu{position:fixed;inset:0;z-index:80;background:var(--forest-2);padding:110px 24px 38px;display:flex;flex-direction:column;justify-content:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility .3s ease}.mobile-menu.open{opacity:1;visibility:visible;pointer-events:auto}.mobile-menu a{font-family:var(--serif);font-size:clamp(34px,8vw,52px);padding:10px 0;border-bottom:1px solid rgba(241,238,231,.12)}.mobile-menu .mobile-menu-cta{margin-top:16px;font-family:var(--sans);font-size:11px;letter-spacing:.14em;text-transform:uppercase;border-bottom:0;color:var(--brass)}
  .hero{min-height:700px}.hero-grid{grid-template-columns:1fr}.hero-side{justify-self:start;max-width:500px}.hero-side>p{font-size:20px}.hero-meta,.scrollmark{display:none}
  .manifesto{padding:100px 0}.manifesto-grid{grid-template-columns:1fr;gap:28px}.manifesto-note{grid-column:auto;margin-top:0}
  .estate{padding:0}.estate-media{height:72svh;min-height:520px}.estate-caption{left:7%;right:7%}
  .experience-head{min-height:auto;padding:95px 0 50px}.experience-head-row{display:block}.experience-head-row>p{margin-top:26px}
  .experience-card,.experience-card:nth-of-type(odd){grid-template-columns:1fr;min-height:auto}.experience-card:nth-of-type(odd) .exp-media{order:1}.experience-card:nth-of-type(odd) .exp-copy{order:2}.exp-media{min-height:56svh}.exp-copy{padding:62px 24px 74px}
  .pool-feature{min-height:auto;padding:90px 0}.pool-feature-grid{grid-template-columns:1fr;gap:40px}
  .residences{padding:95px 0}.res-head{grid-template-columns:1fr;gap:24px}.res-head>p{max-width:590px}.res-showcase{grid-template-columns:1fr;min-height:auto}.res-image{height:58svh;min-height:480px}.res-panel{display:grid;grid-template-columns:1fr}.res-detail{margin-top:0}
  .ownership{min-height:auto;padding:100px 0}.ownership-grid{grid-template-columns:1fr;gap:20px}.ownership-copy{padding-top:0}
  .location{padding:95px 0}.loc-grid{grid-template-columns:1fr;gap:48px}.location-copy{max-width:650px}.map-art{height:500px}
  .contact{padding:95px 0 34px}.contact-grid{grid-template-columns:1fr;gap:36px}.contact-form{padding-top:0}.footer{margin-top:70px}
}

@media(max-width:640px){
  :root{--container:calc(100% - 28px)}
  html{scroll-padding-top:68px}
  .nav{height:70px}.nav.scrolled{height:64px}.brand{font-size:15px}.brand small{font-size:6px;letter-spacing:.18em}.menu-btn{width:40px;height:40px}
  .hero{height:100svh;min-height:650px}.hero-media img{object-position:62% center}.hero-overlay{background:linear-gradient(0deg,rgba(7,8,7,.82),rgba(7,8,7,.06) 72%),linear-gradient(90deg,rgba(7,8,7,.34),transparent)}.hero-content{bottom:6vh}.hero h1{font-size:clamp(48px,14.6vw,72px);line-height:.94}.hero-side>p{font-size:18px}.hero-actions{align-items:flex-start;flex-direction:column;gap:14px}.btn{width:auto;min-height:44px;padding:12px 16px}
  .manifesto{padding:80px 0}.manifesto-copy{font-size:clamp(43px,12vw,62px)}
  .estate-media{height:68svh;min-height:480px}.estate-media img{object-position:center}.estate-caption{bottom:7%}.estate-caption h2{font-size:13vw}.estate-caption>p:not(.eyebrow){font-size:19px}
  .experience-head{padding:80px 0 40px}.experience-head h2{font-size:14vw}.exp-media{min-height:440px}.exp-copy{padding:52px 18px 62px}.exp-copy h3{font-size:14vw}.exp-copy .lead{font-size:22px}.exp-copy .body{font-size:12px}.courts-badge{flex-wrap:wrap}
  .pool-feature{padding:75px 0}.pool-copy h3{font-size:13vw}.pool-media{aspect-ratio:4/3}
  .residences{padding:78px 0}.res-head h2{font-size:14vw}.res-head>p{font-size:20px}.res-image{height:54svh;min-height:420px}.gallery-arrow{width:42px;height:42px}.res-legend{left:18px;right:18px;bottom:17px}.res-legend strong{font-size:29px}.res-item{padding:20px 17px;grid-template-columns:30px 1fr auto}.res-item strong{font-size:26px}.res-detail{padding:22px 17px}.res-detail-top{align-items:flex-start}.res-detail ul{margin-bottom:18px}
  .ownership{padding:80px 0}.ownership h2{font-size:14vw}.ownership-copy>p{font-size:23px}.pillars{grid-template-columns:1fr}.pillars article{padding:22px}
  .trust-grid{grid-template-columns:repeat(2,1fr)}.trust-grid>div{min-height:120px;border-bottom:1px solid rgba(255,255,255,.10)}.trust-grid>div:nth-child(2){border-right:0}.trust-grid>div:nth-child(n+3){border-bottom:0}.trust-grid strong{font-size:36px}
  .location{padding:80px 0}.location h2{font-size:14vw}.location .intro{font-size:21px}.map-art{height:390px;min-height:0}.map-art text{font-size:9px}.map-label{left:14px;bottom:14px}.map-label strong{font-size:19px}
  .contact{padding:80px 0 28px}.contact h2{font-size:14vw}.contact .intro{font-size:21px}.contact-details{flex-direction:column;gap:10px}.field{grid-template-columns:1fr;gap:6px}.field input{font-size:20px}.form-action{align-items:flex-start;flex-direction:column}.form-action .btn{width:100%}.form-note{max-width:none}.footer{flex-direction:column;margin-top:58px}
  .whatsapp-float{right:12px;bottom:12px;width:48px;height:48px}
}

@media(max-width:380px){
  .hero h1{font-size:13.8vw}.mobile-menu a{font-size:32px}.res-item strong{font-size:24px}.trust-grid>div{gap:8px}.trust-grid span{font-size:7px}
}

@media(min-width:1440px){
  .hero-side{max-width:410px}.res-showcase{min-height:700px}.res-image{min-height:700px}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .reveal,.reveal:not(.in){opacity:1!important;transform:none!important}
  .experience-card:hover .exp-media img{transform:none}
}

/* ==========================================================
   V2 LOCAL · Secciones 01–04 refinadas
   ========================================================== */

/* 01 · Hero: conserva la imagen elegida por el usuario */
.hero h1{font-size:clamp(56px,7.4vw,118px);max-width:1120px}
.hero-side{max-width:420px}

/* 02 · Concepto: composición puramente tipográfica */
.manifesto{position:relative;overflow:hidden;padding:0;background:var(--bone);color:var(--ink)}
.manifesto::before{content:"CAPULÍN";position:absolute;right:-.04em;top:50%;transform:translateY(-53%);font-family:var(--serif);font-size:clamp(150px,26vw,430px);line-height:.75;letter-spacing:-.07em;color:rgba(23,26,22,.028);pointer-events:none}
.manifesto-stage{position:relative;z-index:1;width:100%;padding-block:clamp(88px,11vh,150px);display:grid;grid-template-columns:1fr;gap:clamp(32px,5vh,64px)}
.manifesto-statement{display:grid;grid-template-columns:minmax(70px,.18fr) 1fr;gap:clamp(24px,5vw,74px);align-items:start}
.manifesto-kicker{font-family:var(--serif);font-size:clamp(58px,6vw,94px);line-height:.9;color:rgba(23,26,22,.16);border-top:1px solid rgba(23,26,22,.24);padding-top:14px}
.manifesto-copy{max-width:1050px;font-size:clamp(48px,6vw,94px);line-height:.94}
.manifesto-copy em{display:inline;color:#756958}
.manifesto-bottom{margin-left:calc(18% + clamp(24px,5vw,74px));display:grid;grid-template-columns:minmax(280px,520px) 1fr;gap:clamp(36px,7vw,100px);align-items:end;border-top:1px solid rgba(23,26,22,.18);padding-top:28px}
.manifesto-note{grid-column:auto;max-width:520px;margin:0;font-family:var(--serif);font-size:clamp(18px,1.45vw,23px);line-height:1.45;color:rgba(23,26,22,.72)}
.manifesto-words{margin:0;display:grid;grid-template-columns:repeat(2,minmax(120px,1fr));gap:14px 28px;align-self:end}
.manifesto-words span{padding-top:12px;border-top:1px solid rgba(23,26,22,.22);font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:rgba(23,26,22,.58)}

/* 03 · Hacienda: conserva seccion_3.jpg */
.estate-caption{max-width:min(900px,82vw)}
.estate-caption h2{max-width:900px;font-size:clamp(46px,5.2vw,82px);line-height:.92}
.estate-caption>p:not(.eyebrow){max-width:610px}

/* 04 · Amenidades en una sola sección */
.amenities-hub{position:relative;overflow:hidden;background:var(--forest-2);padding:clamp(94px,11vh,140px) 0;color:var(--bone)}
.amenities-hub::before{content:"EXPERIENCES";position:absolute;left:-.03em;bottom:-.08em;font-family:var(--serif);font-size:clamp(120px,18vw,290px);line-height:.7;letter-spacing:-.06em;color:rgba(255,255,255,.018);pointer-events:none;white-space:nowrap}
.amenities-shell{position:relative;z-index:1;width:100%}
.amenities-intro{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(42px,8vw,110px);align-items:end;margin-bottom:clamp(46px,6vh,74px)}
.amenities-intro h2{font-size:clamp(54px,6.9vw,102px);margin-top:14px;max-width:820px}
.amenities-lead{max-width:470px;margin:0 0 8px;font-family:var(--serif);font-size:clamp(18px,1.5vw,23px);line-height:1.45;color:rgba(241,238,231,.72)}
.amenities-grid{display:grid;grid-template-columns:repeat(12,1fr);border-top:1px solid rgba(241,238,231,.16);border-left:1px solid rgba(241,238,231,.16)}
.amenity-tile{grid-column:span 2;min-height:330px;padding:25px 24px 28px;position:relative;display:flex;flex-direction:column;align-items:flex-start;text-align:left;background:transparent;color:var(--bone);border:0;border-right:1px solid rgba(241,238,231,.16);border-bottom:1px solid rgba(241,238,231,.16);cursor:pointer;transition:background .35s ease,color .35s ease,transform .35s ease}
.amenity-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(145deg,rgba(185,154,106,.12),transparent 55%);opacity:0;transition:opacity .35s ease;pointer-events:none}
.amenity-tile:hover,.amenity-tile:focus-visible{background:#ece6da;color:var(--ink)}
.amenity-tile:hover::after,.amenity-tile:focus-visible::after{opacity:1}
.amenity-number{position:relative;z-index:1;font-size:8px;letter-spacing:.2em;color:var(--brass)}
.amenity-logo{position:relative;z-index:1;width:clamp(112px,9.5vw,150px);aspect-ratio:1;margin:auto 0 24px;display:block;overflow:hidden;background:#f2eee6;border:1px solid rgba(241,238,231,.18);box-shadow:0 12px 32px rgba(0,0,0,.10);transition:transform .35s ease,box-shadow .35s ease}
.amenity-logo img{display:block;width:100%;height:100%;object-fit:contain}
.amenity-tile:hover .amenity-logo,.amenity-tile:focus-visible .amenity-logo{transform:translateY(-4px);box-shadow:0 16px 38px rgba(0,0,0,.16)}
.amenity-name{position:relative;z-index:1;font-family:var(--serif);font-size:clamp(28px,2.35vw,38px);line-height:1;margin-bottom:13px}
.amenity-copy{position:relative;z-index:1;min-height:54px;max-width:245px;font-size:12px;line-height:1.55;color:rgba(241,238,231,.62);transition:color .35s ease}
.amenity-tile:hover .amenity-copy,.amenity-tile:focus-visible .amenity-copy{color:rgba(23,26,22,.66)}
.amenity-open{position:relative;z-index:1;margin-top:24px;padding-top:12px;border-top:1px solid currentColor;font-size:8px;letter-spacing:.17em;text-transform:uppercase;opacity:.72;display:flex;justify-content:space-between;width:100%}
.amenity-open b{font-weight:400;font-size:14px}

/* Ventana flotante accesible para amenidades */
body.amenity-modal-open{overflow:hidden}
.amenity-modal[hidden]{display:none!important}
.amenity-modal{position:fixed;inset:0;z-index:220;display:grid;place-items:center;padding:clamp(14px,3vw,42px)}
.amenity-modal-backdrop{position:absolute;inset:0;background:rgba(6,8,6,.80);backdrop-filter:blur(12px)}
.amenity-dialog{position:relative;z-index:1;width:min(1180px,100%);max-height:min(86svh,860px);display:grid;grid-template-columns:1.35fr .65fr;background:var(--forest-2);color:var(--bone);border:1px solid rgba(241,238,231,.16);box-shadow:0 35px 100px rgba(0,0,0,.45);overflow:hidden}
.amenity-modal-media{position:relative;min-height:min(72svh,720px);background:#0b0d0b;overflow:hidden}
.amenity-modal-media img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:center;transition:opacity .25s ease,transform .55s ease}
.amenity-modal-media img.is-contained{object-fit:contain;background:#0b0d0b}
.amenity-modal-media.is-changing img{opacity:.35;transform:scale(1.012)}
.amenity-modal-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 62%,rgba(0,0,0,.28));pointer-events:none}
.amenity-modal-copy{padding:clamp(40px,5vw,74px) clamp(30px,4vw,58px);display:flex;flex-direction:column;justify-content:center}
.amenity-modal-copy h3{font-size:clamp(48px,5.5vw,82px);line-height:.88;margin:16px 0 28px}
.amenity-modal-lead{font-family:var(--serif);font-size:clamp(21px,2vw,28px);line-height:1.3;color:var(--stone);margin:0 0 34px}
.amenity-modal-copy .btn{align-self:flex-start}
.amenity-close{position:absolute;z-index:5;right:16px;top:16px;width:44px;height:44px;border:1px solid rgba(241,238,231,.28);background:rgba(15,17,15,.65);color:#fff;font-size:28px;line-height:1;cursor:pointer;display:grid;place-items:center;transition:background .2s ease,color .2s ease}
.amenity-close:hover,.amenity-close:focus-visible{background:#fff;color:#111}
.amenity-gallery-arrow{position:absolute;z-index:4;bottom:22px;width:46px;height:46px;border:1px solid rgba(255,255,255,.48);background:rgba(8,10,8,.28);color:#fff;backdrop-filter:blur(5px);cursor:pointer;font-size:18px}
.amenity-gallery-prev{right:78px}.amenity-gallery-next{right:24px}
.amenity-gallery-arrow[hidden]{display:none}
.amenity-gallery-count{position:absolute;z-index:4;left:24px;bottom:30px;font-size:9px;letter-spacing:.17em;color:rgba(255,255,255,.82)}

@media(max-width:1100px){
  .amenities-grid{grid-template-columns:repeat(6,1fr)}
  .amenity-tile{grid-column:span 2;min-height:300px}
  .amenity-dialog{grid-template-columns:1.1fr .9fr}
}

@media(max-width:980px){
  .hero h1{font-size:clamp(50px,11.5vw,88px)}
  .manifesto-stage{padding-block:96px}
  .manifesto-statement{grid-template-columns:1fr;gap:22px}.manifesto-kicker{width:100px;font-size:54px}
  .manifesto-bottom{margin-left:0;grid-template-columns:1fr;gap:32px}.manifesto-words{max-width:620px}
  .estate-caption h2{font-size:clamp(44px,8.5vw,76px)}
  .amenities-hub{padding:95px 0}
  .amenities-intro{grid-template-columns:1fr;gap:26px}.amenities-lead{max-width:620px}
  .amenity-dialog{grid-template-columns:1fr;max-height:92svh;overflow-y:auto}
  .amenity-modal-media{min-height:52svh}
  .amenity-modal-copy{padding:40px 28px 44px}
}

@media(max-width:680px){
  .hero h1{font-size:clamp(44px,12.4vw,67px);line-height:.91}
  .hero-side>p{font-size:18px}
  .manifesto::before{font-size:58vw}
  .manifesto-stage{padding-block:82px;gap:30px}
  .manifesto-copy{font-size:clamp(42px,12.2vw,62px)}
  .manifesto-note{font-size:19px}
  .manifesto-words{grid-template-columns:1fr 1fr;gap:12px 18px}
  .estate-caption{left:18px;right:18px;bottom:6%;max-width:none}.estate-caption h2{font-size:clamp(40px,10.8vw,58px)}.estate-caption>p:not(.eyebrow){font-size:19px}
  .amenities-hub{min-height:auto;padding:80px 0}
  .amenities-intro h2{font-size:clamp(48px,13.2vw,68px)}
  .amenities-lead{font-size:19px}
  .amenities-grid{grid-template-columns:repeat(2,1fr)}
  .amenity-tile{grid-column:span 1;min-height:260px;padding:20px 16px 22px}
  .amenity-logo{width:108px;height:108px;margin:auto 0 20px}
  .amenity-name{font-size:26px}.amenity-copy{font-size:11px;min-height:auto}
  .amenity-modal{padding:0;align-items:end}
  .amenity-dialog{width:100%;max-height:94svh;border-left:0;border-right:0;border-bottom:0}
  .amenity-modal-media{min-height:44svh}
  .amenity-modal-copy h3{font-size:clamp(44px,13vw,64px)}
  .amenity-modal-lead{font-size:21px}
  .amenity-gallery-arrow{bottom:16px;width:42px;height:42px}.amenity-gallery-prev{right:66px}.amenity-gallery-next{right:16px}.amenity-gallery-count{left:16px;bottom:25px}
}

@media(max-width:390px){
  .amenity-tile{min-height:245px}
  .amenity-name{font-size:23px}
  .amenity-copy{font-size:10.5px}
  .manifesto-words{grid-template-columns:1fr}
}

@media(prefers-reduced-motion:reduce){
  .amenity-tile,.amenity-logo,.amenity-modal-media img{transition:none!important}
}


/* ==========================================================
   V2 LOCAL · Ajustes de alineación, residencias y Google Maps
   ========================================================== */

/* Amenidades: todos los logotipos ocupan el mismo cuadro y quedan centrados. */
.amenity-tile{
  display:grid;
  grid-template-rows:auto minmax(150px,1fr) auto minmax(54px,auto) auto;
  align-items:start;
}
.amenity-logo{
  width:clamp(118px,9vw,142px);
  height:clamp(118px,9vw,142px);
  aspect-ratio:auto;
  margin:18px auto 18px;
  align-self:center;
  justify-self:center;
  display:grid;
  place-items:center;
  padding:10px;
}
.amenity-logo img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  margin:auto;
}
.amenity-name,
.amenity-copy,
.amenity-open{width:100%}

/* Carrusel flotante: todas las fotos usan el mismo marco, centradas y sin deformarse. */
.amenity-modal-media{
  display:grid;
  place-items:center;
  height:min(72svh,720px);
  min-height:min(72svh,720px);
}
.amenity-modal-media img,
.amenity-modal-media img.is-contained{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center center;
  background:#0b0d0b;
}

/* Residencias: en escritorio caben encabezado, selector de modelos y contenido principal
   dentro de una composición de una pantalla sin reducir la legibilidad. */
@media(min-width:981px){
  .residences{
    min-height:100svh;
    padding:clamp(62px,7vh,82px) 0;
  }
  .residences>.container{
    display:flex;
    flex-direction:column;
    justify-content:center;
  }
  .res-head{
    grid-template-columns:.78fr 1.22fr;
    gap:clamp(34px,5vw,72px);
    margin-bottom:clamp(20px,2.4vh,30px);
  }
  .res-head h2{
    font-size:clamp(52px,5.7vw,88px);
  }
  .res-head>p{
    justify-self:end;
    max-width:590px;
    font-size:clamp(18px,1.45vw,22px);
    line-height:1.28;
  }
  .res-showcase{
    height:clamp(470px,58svh,600px);
    min-height:0;
  }
  .res-image{
    height:100%;
    min-height:0;
  }
  .res-panel{
    min-height:0;
    overflow:hidden;
  }
  .res-item{
    padding:clamp(12px,1.5vh,18px) 22px;
  }
  .res-item strong{
    font-size:clamp(22px,1.9vw,27px);
  }
  .res-item small{
    margin-top:3px;
  }
  .res-detail{
    padding:clamp(14px,1.8vh,21px) 22px;
  }
  .res-detail>p:not(.eyebrow){
    margin:10px 0;
    line-height:1.55;
  }
  .res-detail ul{
    margin:10px 0 14px;
  }
}

/* En tablet y móvil, los cuatro modelos aparecen antes de la galería para que el
   visitante vea el texto y las opciones inmediatamente al entrar a la sección. */
@media(max-width:980px){
  .res-showcase{
    display:grid;
    grid-template-columns:1fr;
  }
  .res-panel{
    display:contents;
  }
  .res-list{
    order:-1;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    border:1px solid rgba(23,26,22,.14);
    border-bottom:0;
    background:#e8e3d8;
  }
  .res-item{
    min-width:0;
    border-right:1px solid rgba(23,26,22,.14);
  }
  .res-item:nth-child(even){
    border-right:0;
  }
  .res-image{
    order:0;
  }
  .res-detail{
    order:1;
    background:#e8e3d8;
  }
}

/* Ubicación: Google Maps interactivo dentro del cuadro, manteniendo el enlace externo. */
.map-embed{
  padding:0;
  background:#d7d0c4;
  transform:none;
  box-shadow:none;
}
.map-embed:hover,
.map-embed:focus-within{
  transform:none;
  box-shadow:0 22px 50px rgba(23,26,22,.13);
}
.google-map-frame{
  display:block;
  width:100%;
  height:100%;
  min-height:100%;
  border:0;
  background:#d7d0c4;
}
.map-open-external{
  position:absolute;
  z-index:3;
  right:16px;
  bottom:16px;
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:12px 15px;
  border:1px solid rgba(23,26,22,.18);
  background:rgba(241,238,231,.94);
  color:var(--ink);
  box-shadow:0 8px 24px rgba(23,26,22,.12);
  font-size:9px;
  font-weight:600;
  letter-spacing:.12em;
  text-transform:uppercase;
  backdrop-filter:blur(8px);
}
.map-open-external:hover,
.map-open-external:focus-visible{
  background:var(--ink);
  color:var(--bone);
}

@media(max-width:680px){
  .amenity-tile{
    grid-template-rows:auto 124px auto minmax(46px,auto) auto;
  }
  .amenity-logo{
    width:100px;
    height:100px;
    margin:12px auto 12px;
    padding:8px;
  }
  .amenity-modal-media{
    height:44svh;
    min-height:44svh;
  }
  .res-list{
    grid-template-columns:1fr 1fr;
  }
  .res-item{
    grid-template-columns:26px 1fr auto;
    padding:16px 12px;
  }
  .res-item strong{
    font-size:22px;
  }
  .res-item small{
    font-size:8px;
    line-height:1.35;
  }
  .map-open-external{
    right:10px;
    bottom:10px;
    padding:10px 12px;
    font-size:8px;
  }
}

@media(max-width:390px){
  .res-item{
    grid-template-columns:1fr auto;
  }
  .res-item .num{
    display:none;
  }
  .res-item strong{
    font-size:20px;
  }
}


/* ==========================================================
   V2 LOCAL · Uniformidad visual de amenidades + limpieza de numeración
   ========================================================== */

/* Sin números decorativos en los encabezados/sección de amenidades. */
.amenity-number{display:none!important}
.manifesto-statement{grid-template-columns:1fr}
.manifesto-bottom{margin-left:0}

/* Todos los logos permanecen centrados dentro de un marco idéntico. */
.amenity-tile{align-items:center;text-align:center}
.amenity-logo{
  width:clamp(118px,9vw,148px);
  height:clamp(118px,9vw,148px);
  aspect-ratio:1;
  margin:auto auto 24px;
  display:grid;
  place-items:center;
}
.amenity-logo img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
}
.amenity-copy{margin-inline:auto}

/* La galería de cada amenidad usa exactamente el mismo alto visual.
   Las imágenes se centran y llenan el cuadro sin alterar su proporción. */
.amenity-modal-media{
  height:min(72svh,720px);
  min-height:0;
}
.amenity-modal-media img,
.amenity-modal-media img.is-contained{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  background:#0b0d0b;
}

@media(max-width:980px){
  .amenity-modal-media{height:52svh;min-height:0}
}

@media(max-width:680px){
  .amenity-logo{width:108px;height:108px;margin:auto auto 20px}
  .amenity-modal-media{height:44svh;min-height:0}
}


/* ==========================================================
   Actualización cliente · 18-08-2026
   Cambios limitados: márgenes, Experiencias TAI, ubicación y responsividad.
   ========================================================== */

/* Márgenes fluidos y prevención de recortes/overflow en toda la landing. */
:root{--container:min(1240px,calc(100% - clamp(36px,8vw,112px)))}
html,body{max-width:100%;overflow-x:clip}
main,section,.container,.nav-inner,.mobile-menu,.amenity-dialog{min-width:0}
.display,.manifesto-copy,.amenity-name,.destination-name,.contact-details a{max-width:100%}
.contact-details a{overflow-wrap:anywhere}

/* Experiencias TAI: fotografía real como visual principal; logos se conservan en assets. */
.amenities-grid{grid-template-columns:repeat(3,minmax(0,1fr));border:0;gap:1px;background:rgba(241,238,231,.16)}
.amenity-tile{
  grid-column:auto;
  min-width:0;
  min-height:clamp(390px,38vw,500px);
  padding:0 0 24px;
  align-items:flex-start;
  text-align:left;
  background:var(--forest-2);
  border:0;
  overflow:hidden;
}
.amenity-visual{
  position:relative;
  z-index:1;
  display:block;
  width:100%;
  aspect-ratio:4/3;
  overflow:hidden;
  background:#0b0d0b;
  margin:0 0 24px;
}
.amenity-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 62%,rgba(0,0,0,.24));pointer-events:none}
.amenity-visual img{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .55s ease,filter .35s ease}
.amenity-tile:hover .amenity-visual img,.amenity-tile:focus-visible .amenity-visual img{transform:scale(1.025);filter:contrast(1.02)}
.amenity-name,.amenity-copy,.amenity-open{width:auto;margin-left:clamp(20px,2.2vw,30px);margin-right:clamp(20px,2.2vw,30px)}
.amenity-name{font-size:clamp(28px,2.25vw,36px)}
.amenity-copy{min-height:3.6em;margin-top:0}
.amenity-open{width:calc(100% - clamp(40px,4.4vw,60px));margin-top:auto}

/* Modal preparado para Hacienda Capulín sin inventar fotografías. */
.amenity-placeholder{
  position:absolute;
  inset:0;
  z-index:2;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
  gap:10px;
  padding:clamp(26px,6vw,72px);
  background:linear-gradient(145deg,#171b17,#0d100d);
  color:var(--bone);
}
.amenity-placeholder[hidden]{display:none!important}
.amenity-placeholder span{font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--brass)}
.amenity-placeholder strong{max-width:520px;font-family:var(--serif);font-size:clamp(38px,5vw,72px);font-weight:400;line-height:.92}
.amenity-placeholder small{max-width:510px;font-size:12px;line-height:1.7;color:rgba(241,238,231,.58)}

/* Ubicación: fotografía de Hacienda en lugar del mapa embebido. */
.location-photo{margin:0;height:min(64svh,600px);min-height:430px;border:1px solid rgba(23,26,22,.20);overflow:hidden;background:#cfc6b8}
.location-photo img{width:100%;height:100%;object-fit:cover;object-position:center 48%;transition:transform .55s ease}
.location-photo:hover img{transform:scale(1.012)}

/* Ubicación estratégica y demanda corporativa. Todos los destinos permanecen visibles, sin carrusel. */
.strategic-location{position:relative;background:var(--forest);color:var(--bone);padding:clamp(88px,11vh,138px) 0;overflow:hidden}
.strategic-location::before{content:"LOCATION";position:absolute;right:-.04em;bottom:-.08em;font-family:var(--serif);font-size:clamp(140px,23vw,360px);line-height:.72;color:rgba(255,255,255,.018);pointer-events:none}
.strategic-shell{position:relative;z-index:1;width:100%}
.strategic-head{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(38px,7vw,96px);align-items:end;margin-bottom:clamp(42px,6vh,72px)}
.strategic-head h2{font-size:clamp(48px,5.8vw,88px);margin-top:14px;max-width:1000px}
.strategic-head>p{max-width:520px;margin:0;font-family:var(--serif);font-size:clamp(18px,1.45vw,22px);line-height:1.45;color:rgba(241,238,231,.68)}

.strategic-pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid rgba(241,238,231,.18);border-bottom:1px solid rgba(241,238,231,.18);margin-bottom:clamp(34px,5vh,54px)}
.strategic-pillar{min-width:0;padding:clamp(26px,3vw,42px);border-right:1px solid rgba(241,238,231,.14)}
.strategic-pillar:last-child{border-right:0}
.strategic-pillar-kicker{display:block;margin-bottom:18px;font-size:9px;letter-spacing:.18em;text-transform:uppercase;color:var(--brass)}
.strategic-pillar h3{margin:0 0 18px;font-family:var(--serif);font-size:clamp(27px,2.5vw,38px);font-weight:400;line-height:1.02}
.strategic-pillar p{margin:0;max-width:420px;font-size:12px;line-height:1.75;color:rgba(241,238,231,.62)}

.strategic-industrial-note{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(30px,6vw,88px);align-items:end;padding:clamp(30px,5vw,58px) 0 clamp(54px,7vw,86px)}
.strategic-industrial-note p{margin:0;max-width:460px;font-size:12px;line-height:1.75;color:rgba(241,238,231,.58)}
.strategic-industrial-note strong{display:block;font-family:var(--serif);font-size:clamp(34px,4.2vw,62px);font-weight:400;line-height:.98;color:var(--stone)}

.strategic-destinations-head{display:grid;grid-template-columns:1fr .65fr;gap:clamp(30px,6vw,80px);align-items:end;margin-bottom:30px}
.strategic-destinations-head h3{margin:10px 0 0;font-family:var(--serif);font-size:clamp(34px,4vw,58px);font-weight:400;line-height:1}
.strategic-destinations-head>p{max-width:400px;margin:0;font-size:11px;line-height:1.65;color:rgba(241,238,231,.52)}

.strategic-destinations{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid rgba(241,238,231,.18);border-left:1px solid rgba(241,238,231,.14)}
.strategic-destination{appearance:none;min-width:0;min-height:270px;padding:28px 22px;display:flex;flex-direction:column;gap:16px;text-align:left;background:transparent;color:var(--bone);border:0;border-right:1px solid rgba(241,238,231,.14);border-bottom:1px solid rgba(241,238,231,.14);cursor:pointer;transition:background .3s ease,color .3s ease,transform .3s ease,opacity .3s ease}
.strategic-destination:hover,.strategic-destination:focus-visible,.strategic-destination.active{background:var(--bone);color:var(--ink);transform:translateY(-4px)}
.strategic-destination--industrial{background:rgba(185,154,106,.08)}
.destination-name{font-family:var(--serif);font-size:clamp(26px,2.35vw,38px);line-height:1;min-height:2.15em;overflow-wrap:anywhere}
.destination-type{font-size:8px;letter-spacing:.14em;text-transform:uppercase;opacity:.58}
.destination-meta{display:grid;gap:5px;padding-top:12px;border-top:1px solid currentColor;margin-top:auto}
.destination-meta+ .destination-meta{margin-top:0}
.destination-meta small{font-size:8px;letter-spacing:.14em;text-transform:uppercase;opacity:.58}
.destination-meta strong{font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:500}

/* Navegación colapsa antes para evitar choques alrededor de 1024 px. */
@media(max-width:1080px){
  .nav-inner{width:calc(100% - 30px);grid-template-columns:1fr auto}
  .nav-links,.nav-actions{display:none}
  .brand{text-align:left}
  .menu-btn{display:block}
  .mobile-menu{position:fixed;inset:0;z-index:80;background:var(--forest-2);padding:110px clamp(18px,5vw,34px) 38px;display:flex;flex-direction:column;justify-content:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility .3s ease}
  .mobile-menu.open{opacity:1;visibility:visible;pointer-events:auto}
  .mobile-menu a{font-family:var(--serif);font-size:clamp(34px,7vw,50px);padding:10px 0;border-bottom:1px solid rgba(241,238,231,.12)}
  .mobile-menu .mobile-menu-cta{margin-top:16px;font-family:var(--sans);font-size:11px;letter-spacing:.14em;text-transform:uppercase;border-bottom:0;color:var(--brass)}
}

@media(max-width:980px){
  :root{--container:min(820px,calc(100% - clamp(36px,7vw,64px)))}
  .amenities-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .amenity-tile{min-height:410px}
  .strategic-head{grid-template-columns:1fr;gap:26px}
  .strategic-head>p{max-width:650px}
  .strategic-pillars{grid-template-columns:1fr}
  .strategic-pillar{border-right:0;border-bottom:1px solid rgba(241,238,231,.14)}
  .strategic-pillar:last-child{border-bottom:0}
  .strategic-industrial-note{grid-template-columns:1fr;gap:24px}
  .strategic-destinations-head{grid-template-columns:1fr;gap:18px}
  .strategic-destinations{grid-template-columns:repeat(2,minmax(0,1fr))}
  .strategic-destination{min-height:230px}
  .location-photo{height:500px;min-height:0}
}

@media(max-width:640px){
  :root{--container:calc(100% - 28px)}
  .hero-title-wrap,.hero-side,.estate-caption,.contact-copy,.location-copy{min-width:0}
  .hero h1,.estate-caption h2,.res-head h2,.ownership h2,.location h2,.contact h2,.strategic-head h2{overflow-wrap:normal;word-break:normal}
  .amenities-grid{grid-template-columns:1fr;gap:1px}
  .amenity-tile{min-height:0;padding-bottom:24px}
  .amenity-visual{aspect-ratio:16/10;margin-bottom:20px}
  .amenity-name{font-size:clamp(29px,9vw,38px)}
  .amenity-copy{min-height:0;font-size:12px}
  .amenity-open{margin-top:22px}
  .location-photo{height:min(58svh,520px);min-height:360px}
  .strategic-location{padding:78px 0}
  .strategic-destinations{grid-template-columns:1fr}
  .strategic-destination,.strategic-destination:last-child{grid-column:auto;min-height:0;border-right:1px solid rgba(241,238,231,.14);padding:24px 18px}
  .strategic-pillar{padding:26px 20px}
  .strategic-industrial-note{padding-bottom:58px}
  .strategic-industrial-note strong{font-size:clamp(32px,9.5vw,46px)}
  .destination-name{min-height:0;font-size:34px}
  .destination-meta{margin-top:0}
  .strategic-destination:hover,.strategic-destination:focus-visible,.strategic-destination.active{transform:none}
}

@media(max-width:390px){
  :root{--container:calc(100% - 24px)}
  .brand{font-size:14px;white-space:normal;line-height:1.05;max-width:230px}
  .brand small{line-height:1.35}
  .hero h1{font-size:clamp(42px,13.3vw,56px)}
  .hero-side>p{font-size:17px}
  .manifesto-copy{font-size:clamp(38px,11.8vw,50px)}
  .estate-caption h2{font-size:clamp(38px,11.4vw,48px)}
  .amenities-intro h2{font-size:clamp(44px,12vw,56px)}
  .strategic-head h2{font-size:clamp(42px,11.5vw,52px)}
}

@media(max-width:340px){
  :root{--container:calc(100% - 20px)}
  .mobile-menu{padding-left:16px;padding-right:16px}
  .mobile-menu a{font-size:30px}
  .hero h1{font-size:41px}
  .btn{font-size:9px;letter-spacing:.12em}
  .res-list{grid-template-columns:1fr}
  .res-item:nth-child(n){border-right:0}
  .form-action .btn{white-space:normal;text-align:center}
}

@media(max-height:760px) and (min-width:981px){
  .hero{min-height:680px}
  .residences{padding:54px 0}
  .res-showcase{height:clamp(450px,58svh,540px)}
  .amenities-hub,.strategic-location{padding-top:80px;padding-bottom:80px}
}

@media(prefers-reduced-motion:reduce){
  .amenity-visual img,.location-photo img,.strategic-destination{transition:none!important}
}

/* Ajuste final de densidad: 7 experiencias permanecen simultáneamente disponibles
   sin convertir la sección en una lista excesivamente larga. */
.amenities-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.amenity-tile{min-height:360px}
@media(max-width:1180px){.amenities-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:820px){.amenities-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:430px){.amenities-grid{grid-template-columns:1fr}.amenity-tile{min-height:0}}


/* ==========================================================
   Ajuste final solicitado · márgenes seguros + selector ES/EN
   ========================================================== */
:root{
  --page-gutter:clamp(26px,5vw,72px);
  --container:min(1240px,calc(100% - (var(--page-gutter) * 2)));
}
.container{width:var(--container);margin-inline:auto}
.nav-inner{width:min(1360px,calc(100% - (var(--page-gutter) * 2)))}
.estate-caption{
  left:var(--page-gutter);
  right:var(--page-gutter);
  max-width:min(720px,calc(100% - (var(--page-gutter) * 2)));
}
.hero-meta{left:max(18px,calc(var(--page-gutter) * .48))}
.scrollmark{right:max(18px,calc(var(--page-gutter) * .48))}
.amenity-modal{padding-inline:var(--page-gutter)}
.contact-copy,.location-copy,.strategic-head>div,.strategic-head>p,.res-head>div,.res-head>p,.ownership-grid>div{min-width:0}

.language-switcher{
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:36px;
  color:rgba(241,238,231,.62);
  white-space:nowrap;
}
.language-choice{
  appearance:none;
  border:0;
  padding:7px 3px;
  background:transparent;
  color:inherit;
  font:600 8px/1 var(--sans);
  letter-spacing:.16em;
  cursor:pointer;
  transition:color .2s ease,opacity .2s ease;
}
.language-choice:hover,.language-choice:focus-visible,.language-choice.active{color:var(--bone)}
.language-choice:not(.active){opacity:.62}
.language-switcher-mobile{margin:22px 0 6px;justify-content:flex-start;gap:12px}
.mobile-menu .language-switcher-mobile{border-bottom:0}
.mobile-menu .language-switcher-mobile .language-choice{font-family:var(--sans);font-size:10px;letter-spacing:.14em;padding:10px 0}

/* Las fotografías verticales de la Hacienda se muestran completas y centradas. */
.amenity-modal-media img.is-contained{object-fit:contain;object-position:center;background:#0b0d0b}

@media(max-width:1080px){
  .nav-inner{width:calc(100% - (var(--page-gutter) * 2))}
  .mobile-menu{padding-left:var(--page-gutter);padding-right:var(--page-gutter)}
}
@media(max-width:640px){
  :root{--page-gutter:24px;--container:calc(100% - 48px)}
  .estate-caption{left:24px;right:24px;max-width:calc(100% - 48px)}
  .amenity-modal{padding-inline:0}
  .amenity-modal-copy{padding-left:24px;padding-right:24px}
  .amenity-name,.amenity-copy,.amenity-open{margin-left:24px;margin-right:24px}
  .amenity-open{width:calc(100% - 48px)}
  .strategic-pillar{padding-left:24px;padding-right:24px}
  .strategic-destination,.strategic-destination:last-child{padding-left:24px;padding-right:24px}
}
@media(max-width:390px){
  :root{--page-gutter:22px;--container:calc(100% - 44px)}
  .estate-caption{left:22px;right:22px;max-width:calc(100% - 44px)}
  .amenity-modal-copy{padding-left:22px;padding-right:22px}
  .amenity-name,.amenity-copy,.amenity-open{margin-left:22px;margin-right:22px}
  .amenity-open{width:calc(100% - 44px)}
  .strategic-pillar{padding-left:22px;padding-right:22px}
  .strategic-destination,.strategic-destination:last-child{padding-left:22px;padding-right:22px}
}
@media(max-width:340px){
  :root{--page-gutter:20px;--container:calc(100% - 40px)}
  .estate-caption{left:20px;right:20px;max-width:calc(100% - 40px)}
  .mobile-menu{padding-left:20px;padding-right:20px}
}


/* ==========================================================
   Ajuste 19-08-2026 · Capilla + fotografía Sala + responsive
   ========================================================== */
/* Ocho experiencias: cuatro por fila en escritorio, manteniendo exactamente
   la misma altura de imagen y una composición estable al cambiar de idioma. */
.amenities-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.amenity-tile{
  min-height:420px;
  grid-template-rows:auto auto minmax(3.7em,auto) auto;
  align-content:start;
}
.amenity-visual{
  width:100%;
  aspect-ratio:4/3;
  height:auto;
  flex:none;
}
.amenity-visual img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.amenity-name{min-height:1.08em}
.amenity-copy{min-height:3.7em}

/* Sala suministrada por el usuario en la sección de ubicación. */
.location-photo img{object-position:center center}

/* Evita que ES/EN o textos largos desplacen el layout fuera del viewport. */
.amenity-name,.amenity-copy,.amenity-open,.ownership-copy p,.location-copy p{
  overflow-wrap:break-word;
  word-break:normal;
}

@media(max-width:1180px){
  .amenities-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .amenity-tile{min-height:410px}
}
@media(max-width:820px){
  .amenities-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .amenity-tile{min-height:390px}
}
@media(max-width:640px){
  .amenities-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .amenity-tile{min-height:0;padding-bottom:20px}
  .amenity-visual{aspect-ratio:4/3;margin-bottom:16px}
  .amenity-name,.amenity-copy,.amenity-open{
    margin-left:16px;
    margin-right:16px;
  }
  .amenity-name{font-size:clamp(23px,6.8vw,30px);min-height:2.05em}
  .amenity-copy{font-size:11px;line-height:1.5;min-height:4.5em}
  .amenity-open{width:calc(100% - 32px);font-size:7.5px;letter-spacing:.12em}
  .location-photo{height:min(60svh,560px);min-height:380px}
}
@media(max-width:430px){
  /* En teléfonos se conserva la composición de dos columnas sin overflow. */
  .amenities-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .amenity-name,.amenity-copy,.amenity-open{margin-left:13px;margin-right:13px}
  .amenity-name{font-size:clamp(21px,6.2vw,26px)}
  .amenity-copy{font-size:10.5px;min-height:5.2em}
  .amenity-open{width:calc(100% - 26px);white-space:normal}
}
@media(max-width:350px){
  /* Solo en pantallas extremadamente estrechas pasa a una columna para preservar legibilidad. */
  .amenities-grid{grid-template-columns:1fr}
  .amenity-name{min-height:0;font-size:29px}
  .amenity-copy{min-height:0;font-size:12px}
}


/* ==========================================================
   Copy comercial 21-08-2026 · ajustes no invasivos
   Mantiene el responsive existente y refuerza contraste móvil.
   ========================================================== */
.contact-ctas{margin:28px 0 32px}
.footer span:last-child{max-width:430px;text-align:right}

@media (max-width: 760px) {
  .estate-shade{
    background:
      linear-gradient(
        180deg,
        rgba(8,10,8,.10) 0%,
        rgba(8,10,8,.20) 28%,
        rgba(8,10,8,.62) 52%,
        rgba(8,10,8,.88) 72%,
        rgba(8,10,8,.96) 100%
      );
  }
  .estate-caption{text-shadow:0 2px 18px rgba(0,0,0,.48)}
  .estate-caption>p:not(.eyebrow){color:rgba(255,255,255,.94)}
  .estate-caption .eyebrow,
  .estate-caption .text-link{text-shadow:0 1px 10px rgba(0,0,0,.65)}
  .footer{flex-direction:column;align-items:flex-start}
  .footer span:last-child{max-width:none;text-align:left}
}

/* Ajuste de escala para titulares largos del nuevo copy comercial.
   Reduce altura de sección sin alterar composición, responsive ni funcionalidad. */
#residencias-title{
  font-size:clamp(44px,4.8vw,74px);
  line-height:.94;
}
#experiencias-title{
  font-size:clamp(44px,5.2vw,80px);
  line-height:.94;
}
#modelo-patrimonial-title{
  font-size:clamp(42px,4.9vw,76px);
  line-height:.94;
}
#contacto-title{
  font-size:clamp(42px,4.9vw,76px);
  line-height:.94;
}

@media(max-width:980px){
  #residencias-title{font-size:clamp(42px,7.2vw,60px)}
  #experiencias-title{font-size:clamp(40px,7vw,58px)}
  #modelo-patrimonial-title{font-size:clamp(38px,6.8vw,56px)}
  #contacto-title{font-size:clamp(38px,6.8vw,56px)}
}

@media(max-width:640px){
  #residencias-title{font-size:clamp(38px,10.5vw,48px)}
  #experiencias-title{font-size:clamp(36px,9.8vw,46px)}
  #modelo-patrimonial-title{font-size:clamp(34px,9.2vw,44px)}
  #contacto-title{font-size:clamp(34px,9.2vw,44px)}
}

/* ==========================================================
   Carrusel patrimonial · sección Ubicación
   Sustituye la imagen fija sin modificar la altura del bloque.
   Solo utiliza vistas de la Hacienda; no incluye amenidades.
   ========================================================== */
.location-carousel{
  position:relative;
  isolation:isolate;
}
.location-carousel-track{
  position:absolute;
  inset:0;
}
.location-carousel-slide{
  position:absolute;
  inset:0;
  margin:0;
  opacity:0;
  visibility:hidden;
  transition:opacity .65s ease,visibility .65s ease;
}
.location-carousel-slide.active{
  opacity:1;
  visibility:visible;
  z-index:1;
}
.location-carousel-slide img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transform:scale(1.01);
  transition:transform 6s ease;
}
.location-carousel-slide.active img{transform:scale(1.035)}
.location-carousel::after{
  content:"";
  position:absolute;
  z-index:2;
  inset:auto 0 0;
  height:34%;
  pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(7,9,7,.46));
}
.location-carousel-arrow{
  position:absolute;
  z-index:4;
  top:50%;
  width:46px;
  height:46px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.66);
  background:rgba(10,12,10,.26);
  color:#fff;
  display:grid;
  place-items:center;
  cursor:pointer;
  transform:translateY(-50%);
  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);
  transition:background .25s ease,transform .25s ease;
}
.location-carousel-arrow:hover,
.location-carousel-arrow:focus-visible{
  background:rgba(10,12,10,.52);
  transform:translateY(-50%) scale(1.04);
}
.location-carousel-prev{left:18px}
.location-carousel-next{right:18px}
.location-carousel-footer{
  position:absolute;
  z-index:4;
  left:22px;
  right:22px;
  bottom:18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  color:#fff;
}
.location-carousel-count{
  font-size:8px;
  letter-spacing:.18em;
  text-transform:uppercase;
  white-space:nowrap;
}
.location-carousel-dots{
  display:flex;
  align-items:center;
  gap:7px;
}
.location-carousel-dot{
  width:20px;
  height:2px;
  border:0;
  padding:0;
  background:rgba(255,255,255,.38);
  transition:width .25s ease,background .25s ease;
}
.location-carousel-dot.active{
  width:34px;
  background:#fff;
}

@media(max-width:640px){
  .location-carousel-arrow{width:42px;height:42px}
  .location-carousel-prev{left:14px}
  .location-carousel-next{right:14px}
  .location-carousel-footer{left:16px;right:16px;bottom:15px}
  .location-carousel-dot{width:14px}
  .location-carousel-dot.active{width:25px}
}

@media(prefers-reduced-motion:reduce){
  .location-carousel-slide,
  .location-carousel-slide img,
  .location-carousel-arrow,
  .location-carousel-dot{transition:none!important}
}


/* ==========================================================
   Heritage · contraste reforzado sobre fotografía
   Replica el tratamiento de lectura móvil también en desktop
   sin cambiar la imagen ni la composición de la sección.
   ========================================================== */
#heritage .estate-shade{
  background:
    linear-gradient(
      180deg,
      rgba(8,10,8,.08) 0%,
      rgba(8,10,8,.18) 28%,
      rgba(8,10,8,.58) 50%,
      rgba(8,10,8,.86) 72%,
      rgba(8,10,8,.94) 100%
    );
}
#heritage .estate-caption{
  text-shadow:0 2px 20px rgba(0,0,0,.48);
}
#heritage .estate-caption>p:not(.eyebrow){
  color:rgba(255,255,255,.95);
}
#heritage .estate-caption .eyebrow,
#heritage .estate-caption .text-link{
  text-shadow:0 1px 12px rgba(0,0,0,.72);
}

/* ==========================================================
   Ajuste visual 21-08-2026 · Concepto + titular Experiencias
   - Refuerza contraste de Private Residences & Hospitality
     en desktop/tablet/móvil, sin cambiar la fotografía.
   - Reduce el titular largo de Experiencias para conservar
     una sección más compacta y estable entre breakpoints.
   ========================================================== */
#concepto-residencial .estate-shade{
  background:
    linear-gradient(
      90deg,
      rgba(8,10,8,.52) 0%,
      rgba(8,10,8,.28) 46%,
      rgba(8,10,8,.08) 76%
    ),
    linear-gradient(
      180deg,
      rgba(8,10,8,.08) 0%,
      rgba(8,10,8,.18) 28%,
      rgba(8,10,8,.64) 52%,
      rgba(8,10,8,.90) 74%,
      rgba(8,10,8,.97) 100%
    );
}
#concepto-residencial .estate-caption{
  text-shadow:0 2px 20px rgba(0,0,0,.56);
}
#concepto-residencial .estate-caption h2{
  color:#fff;
}
#concepto-residencial .estate-caption>p:not(.eyebrow){
  color:rgba(255,255,255,.96);
}
#concepto-residencial .estate-caption .eyebrow,
#concepto-residencial .estate-caption .text-link{
  text-shadow:0 1px 12px rgba(0,0,0,.76);
}

/* Titular de Experiencias deliberadamente más compacto que el resto
   para evitar que el bloque crezca demasiado al cambiar de ancho. */
#experiencias-title{
  font-size:clamp(36px,4.25vw,64px);
  line-height:.96;
  max-width:760px;
}

@media(max-width:980px){
  #experiencias-title{
    font-size:clamp(34px,5.6vw,48px);
    line-height:.98;
    max-width:690px;
  }
}

@media(max-width:640px){
  #concepto-residencial .estate-shade{
    background:
      linear-gradient(
        180deg,
        rgba(8,10,8,.10) 0%,
        rgba(8,10,8,.22) 26%,
        rgba(8,10,8,.68) 50%,
        rgba(8,10,8,.91) 72%,
        rgba(8,10,8,.98) 100%
      );
  }
  #experiencias-title{
    font-size:clamp(29px,8.2vw,37px);
    line-height:1;
    max-width:100%;
  }
}

/* ==========================================================
   Ajustes cliente móvil · 26-08-2026
   Alcance: solo CSS + imagen patrimonial.
   No modifica HTML, JavaScript ni backend.
   ========================================================== */

/* Heritage: nueva fotografía de fondo solicitada por cliente. */
#heritage .estate-media{
  background-image:url("assets/images/heritage-portico.jpg");
  background-size:cover;
  background-position:center 52%;
  background-repeat:no-repeat;
}
#heritage .estate-media picture{
  opacity:0;
  pointer-events:none;
}
#heritage .estate-shade{
  background:
    linear-gradient(180deg,rgba(8,10,8,.08) 0%,rgba(8,10,8,.10) 34%,rgba(8,10,8,.72) 72%,rgba(8,10,8,.90) 100%),
    linear-gradient(90deg,rgba(8,10,8,.34) 0%,rgba(8,10,8,.06) 68%);
}

@media(max-width:760px){
  /* Header sólido desde el primer pixel para evitar traslape visual con el hero. */
  .nav,
  .nav.scrolled{
    height:70px;
    background:rgba(18,21,18,.98);
    border-color:rgba(241,238,231,.10);
    -webkit-backdrop-filter:blur(14px);
    backdrop-filter:blur(14px);
  }

  /* Property + Hospitality: escala y ritmo adecuados para teléfono. */
  .ownership{
    padding:72px 0 68px;
  }
  #modelo-patrimonial-title{
    font-size:clamp(31px,8.4vw,38px);
    line-height:.98;
    letter-spacing:-.025em;
  }
  .ownership-copy>p{
    font-size:18px;
    line-height:1.38;
    max-width:100%;
  }
  .pillars{
    margin-top:30px;
  }
  .pillars article{
    padding:19px 18px;
  }

  /* Ubicación estratégica: tarjetas más compactas y proporcionadas. */
  .strategic-location{
    padding:70px 0;
  }
  .strategic-destinations{
    grid-template-columns:1fr;
  }
  .strategic-destination,
  .strategic-destination:last-child{
    min-height:0;
    padding:20px 18px;
    gap:12px;
  }
  .destination-name{
    min-height:0;
    font-size:clamp(27px,8vw,32px);
    line-height:1.02;
  }
  .destination-meta{
    padding-top:10px;
  }

  /* La nueva imagen patrimonial conserva el sujeto principal en móvil. */
  #heritage .estate-media{
    background-position:42% center;
  }
  #heritage .estate-shade{
    background:
      linear-gradient(180deg,rgba(8,10,8,.10) 0%,rgba(8,10,8,.16) 30%,rgba(8,10,8,.66) 58%,rgba(8,10,8,.92) 82%,rgba(8,10,8,.97) 100%);
  }
}

/* FIX: residence measures nowrap */
.res-item small,[data-residence-area]{white-space:nowrap}

/* FIX: hero móvil debajo del header fijo */
@media(max-width:760px){
  #inicio{
    height:auto;
    min-height:100svh;
  }

  #inicio .hero-content{
    position:relative;
    inset:auto;
    min-height:100svh;
    display:flex;
    align-items:flex-end;
    padding:
      calc(70px + env(safe-area-inset-top) + 24px)
      0
      6vh;
  }
}
