@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@300;400;500&family=Manrope:wght@300;400;500&display=swap');
:root{--ink:#11110f;--paper:#f5f4ef;--sand:#d9d3c5;--line:rgba(17,17,15,.2);--pad:clamp(1.25rem,4vw,4.5rem)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;overflow-x:hidden;background:var(--paper);color:var(--ink);font-family:"DM Sans",Arial,sans-serif;font-weight:300}a{color:inherit;text-decoration:none}button{font:inherit}h1,h2,h3,p{margin:0}.topbar{position:fixed;z-index:20;top:0;left:0;width:100%;height:76px;padding:0 var(--pad);display:flex;align-items:center;justify-content:space-between;color:white;transition:.35s}.topbar.is-light{color:var(--ink);background:rgba(245,244,239,.85);backdrop-filter:blur(12px)}.wordmark{font-family:Arial,sans-serif;font-weight:700;letter-spacing:.34em;font-size:clamp(1.5rem,3vw,2.7rem)}.wordmark--small{font-size:.82rem}.menu-button{display:none;border:0;background:none;color:inherit}.site-nav{display:flex;gap:2.2rem;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em}.hero{height:100svh;min-height:600px;position:relative;overflow:hidden;background:#1e2522;color:white;display:grid;place-items:center}.hero__landscape{position:absolute;inset:0;background:linear-gradient(#48534d 0%,#8d9284 51%,#252c27 100%)}.sun{position:absolute;width:24vw;height:24vw;min-width:220px;min-height:220px;border-radius:50%;background:#d4c9ac;filter:blur(2px);top:12%;right:12%;opacity:.72}.ridge{position:absolute;left:-10%;width:120%;border-radius:50% 50% 0 0}.ridge--back{height:54%;bottom:-15%;background:#4b564c;transform:rotate(-3deg)}.ridge--front{height:45%;bottom:-15%;background:#1c241f;transform:rotate(3deg)}.hero__grain{position:absolute;inset:0;opacity:.18;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.45'/%3E%3C/svg%3E")}.hero__content{position:relative;text-align:center}.hero__claim{font-family:Manrope,sans-serif;font-size:clamp(1.25rem,2vw,2rem);margin-top:1.4rem}.scroll-cue{position:absolute;bottom:2.2rem;display:grid;place-items:center;gap:.7rem;font-size:.65rem;letter-spacing:.16em;text-transform:uppercase}.scroll-cue i{width:1px;height:34px;background:white;animation:pulse 1.8s infinite}@keyframes pulse{0%,100%{transform:scaleY(.5);transform-origin:top}50%{transform:scaleY(1)}}
.section{padding:clamp(7rem,12vw,12rem) var(--pad)}.section-label{display:flex;gap:1.1rem;text-transform:uppercase;font-size:.68rem;letter-spacing:.17em;margin-bottom:clamp(4rem,8vw,8rem)}.section-label span:first-child{opacity:.45}.intro__headline{display:grid;grid-template-columns:2fr 1fr;gap:3rem;align-items:end}.intro h1,.architecture__intro h2,.sticky-copy h2,.summary-grid h2,.territory h2{font-family:Manrope,sans-serif;font-weight:300;line-height:.98;letter-spacing:-.045em;font-size:clamp(3rem,6.7vw,7.4rem)}.intro__headline>p{font-size:clamp(1rem,1.6vw,1.35rem);line-height:1.5}.stats{display:grid;grid-template-columns:repeat(4,1fr);margin-top:clamp(5rem,10vw,10rem);border-top:1px solid var(--line)}.stats article{padding:2rem 1rem 1rem 0;border-right:1px solid var(--line);display:grid;gap:2rem}.stats strong{font:300 clamp(3rem,6vw,6rem)/1 Manrope}.stats span{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em}.section--dark{background:#111310;color:#f5f4ef}.section--dark .section-label span:first-child{opacity:.6}.title-row{display:grid;grid-template-columns:1.5fr 1fr;gap:3rem;align-items:end;margin-bottom:6rem}.eyebrow{text-transform:uppercase;font-size:.68rem;letter-spacing:.15em;margin-bottom:1.4rem}.title-row h2{font:300 clamp(4.7rem,13vw,14rem)/.78 Manrope;letter-spacing:-.075em}.title-row__copy{max-width:34rem;line-height:1.7}.projects{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,6rem)}.visual{position:relative;overflow:hidden;background:#596156;isolation:isolate}.visual:before,.visual:after{content:"";position:absolute;z-index:-1}.visual:before{inset:0;background:linear-gradient(145deg,transparent 30%,rgba(0,0,0,.45))}.visual:after{width:110%;height:50%;left:-5%;bottom:-18%;border-radius:50% 50% 0 0;background:#242a23}.visual--river{aspect-ratio:4/5;background:linear-gradient(160deg,#a5a393,#56625b 48%,#a1aba6 49%,#35413c 62%)}.visual--field{aspect-ratio:4/5;background:linear-gradient(#a5aa9c 0 48%,#6a745e 48%)}.visual__index{font:300 clamp(8rem,18vw,20rem)/1 Manrope;position:absolute;left:4%;bottom:-3%;opacity:.35}.visual__hint{position:absolute;right:1rem;top:1rem;font-size:.6rem;text-transform:uppercase;letter-spacing:.12em;opacity:.65}.project-card__meta{display:flex;justify-content:space-between;padding-top:1.6rem}.project-card__meta p{text-transform:uppercase;font-size:.65rem;letter-spacing:.14em;margin-bottom:.8rem}.project-card h3,.house h3{font:300 clamp(2rem,3.2vw,3.7rem)/1 Manrope}.project-card__meta>div:last-child{display:grid;align-content:end;gap:.5rem;text-align:right;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em}
.architecture__intro{display:grid;grid-template-columns:2fr 1fr;gap:3rem;align-items:end;margin-bottom:6rem}.architecture__intro p{line-height:1.7;max-width:30rem}.houses{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(2rem,5vw,6rem);align-items:start}.house:nth-child(2){margin-top:12rem}.house .visual{aspect-ratio:4/3;margin-bottom:1.6rem}.visual--house-a{background:linear-gradient(#8c928b 0 62%,#454c40 62%)}.visual--house-b{background:linear-gradient(#b0afa4 0 60%,#596250 60%)}.visual--house-a:after,.visual--house-b:after{width:58%;height:30%;left:22%;bottom:20%;border-radius:0;background:#222722;clip-path:polygon(0 30%,50% 0,100% 30%,100% 100%,0 100%)}.house>div:last-child>span{font-size:.65rem;text-transform:uppercase;letter-spacing:.13em}.house h3{margin:.7rem 0 1.4rem}.text-link{padding:0 0 .5rem;border:0;border-bottom:1px solid;background:none;cursor:pointer;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em}.text-link i{margin-left:1rem}.section--sand{background:var(--sand)}.design-grid{display:grid;grid-template-columns:1fr 1fr;gap:8vw}.sticky-copy{align-self:start;position:sticky;top:130px}.sticky-copy>p:last-child{margin-top:2rem;max-width:22rem;line-height:1.7}.steps{list-style:none;padding:0;margin:0}.steps li{display:grid;grid-template-columns:2.2rem 1fr auto;gap:1rem;padding:2.2rem 0;border-top:1px solid var(--line)}.steps li:last-child{border-bottom:1px solid var(--line)}.steps li>span{font-size:.7rem}.steps h3{font:300 clamp(2rem,4vw,4.5rem)/1 Manrope}.steps p{font-size:.8rem;margin-top:.7rem}.steps i{font-style:normal;font-size:1.4rem}.summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:8vw}.summary-list p{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:1.4rem 0;font-size:clamp(1rem,1.7vw,1.5rem)}.summary-list p:last-child{border-bottom:1px solid var(--line)}.summary-list i{font-style:normal;font-size:.65rem}.button{display:flex;width:max-content;gap:4rem;padding:1.2rem 1.4rem;margin-top:6rem;border:1px solid;text-transform:uppercase;font-size:.7rem;letter-spacing:.1em;transition:.25s}.button:hover{background:var(--ink);color:white}.territory{min-height:100vh;display:grid;grid-template-columns:1.25fr .75fr;background:#262b25;color:white}.territory__map{position:relative;overflow:hidden;background:repeating-radial-gradient(ellipse at 45% 50%,#657062 0 1px,transparent 2px 28px),#384039}.map-ring{position:absolute;border:1px solid rgba(255,255,255,.4);border-radius:50%}.ring-a{width:28rem;height:28rem;left:20%;top:25%}.ring-b{width:12rem;height:12rem;left:38%;top:40%}.map-dot{position:absolute;width:9px;height:9px;background:white;border-radius:50%;left:49%;top:51%}.map-label{position:absolute;left:51%;top:49%;font-size:.7rem}.territory__content{padding:8rem var(--pad);display:flex;flex-direction:column}.territory__content .section-label{margin-bottom:auto}.territory h2{font-size:clamp(3rem,5.5vw,6rem)}.territory ul{list-style:none;margin:4rem 0 0;padding:0}.territory li{padding:.8rem 0;border-top:1px solid rgba(255,255,255,.25);font-size:.75rem;text-transform:uppercase;letter-spacing:.12em}.visit{background:#0d0e0c;color:white;padding:6rem var(--pad) 2rem;min-height:90vh;display:flex;flex-direction:column}.visit__content{margin:auto 0;position:relative}.visit__content p{font-size:clamp(1rem,1.6vw,1.4rem);line-height:1.5}.visit h2{font:300 clamp(4rem,11vw,12rem)/.9 Manrope;letter-spacing:-.06em;margin-top:2rem}.circle-link{position:absolute;right:2%;top:40%;width:clamp(5rem,10vw,10rem);aspect-ratio:1;border:1px solid white;border-radius:50%;display:grid;place-items:center;font-size:2rem;transition:.3s}.circle-link:hover{background:white;color:black;transform:rotate(45deg)}footer{display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.25);padding-top:1.5rem;font-size:.65rem;text-transform:uppercase;letter-spacing:.12em}.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s,transform .8s}.reveal.is-visible{opacity:1;transform:none}.modal{max-width:620px;border:0;padding:clamp(2rem,5vw,5rem);background:var(--paper);color:var(--ink)}.modal::backdrop{background:rgba(0,0,0,.7)}.modal button{position:absolute;right:1.2rem;top:1rem;border:0;background:none;font-size:2rem}.modal h2{font:300 clamp(2.5rem,6vw,5rem)/1 Manrope;margin:.8rem 0 2rem}.modal>p:last-child{line-height:1.7}
@media(max-width:800px){.topbar{height:62px}.menu-button{display:flex;align-items:center;gap:.8rem;text-transform:uppercase;font-size:.65rem;letter-spacing:.12em}.menu-button i{width:18px;height:1px;background:currentColor}.site-nav{position:fixed;inset:62px 0 auto;background:var(--paper);color:var(--ink);padding:2rem var(--pad);display:none;flex-direction:column;font-size:.9rem}.site-nav.is-open{display:flex}.intro__headline,.title-row,.architecture__intro,.design-grid,.summary-grid{grid-template-columns:1fr}.intro__headline>p{margin-top:2rem}.stats{grid-template-columns:1fr 1fr}.stats article:nth-child(2){border-right:0}.projects,.houses{grid-template-columns:1fr}.house:nth-child(2){margin-top:3rem}.sticky-copy{position:static;margin-bottom:3rem}.territory{grid-template-columns:1fr}.territory__map{min-height:55vh}.territory__content{min-height:75vh}.project-card__meta{gap:1rem}.visit{min-height:78vh}.circle-link{position:static;margin-top:3rem}footer{gap:1rem;flex-wrap:wrap}.title-row h2{font-size:20vw}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.scroll-cue i{animation:none}}

/* Recursos reales: video de portada y galerías numeradas */
.hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.hero__landscape{z-index:0}
.hero__grain{z-index:2}.hero__content,.scroll-cue{z-index:3}
.gallery-cover{display:block;width:100%;padding:0;border:0;color:inherit;text-align:inherit;cursor:pointer;background-position:center;background-size:cover}
.gallery-cover.has-photo:before{background:linear-gradient(145deg,transparent 45%,rgba(0,0,0,.35))}
.gallery-cover.has-photo:after{display:none}
.gallery-modal{width:min(1200px,94vw);height:90vh;max-width:none;max-height:none;padding:clamp(1.5rem,4vw,4rem)}
.gallery-modal .modal__close{position:fixed;right:calc(3vw + 1rem);top:calc(5vh + 1rem);z-index:2;border:0;background:rgba(245,244,239,.9);width:3rem;height:3rem;border-radius:50%;font-size:1.8rem;cursor:pointer}
.gallery-count{font-size:.7rem;text-transform:uppercase;letter-spacing:.12em}
.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:3rem}
.gallery-grid figure{margin:0;background:#ddd;min-height:12rem}
.gallery-grid img{display:block;width:100%;height:auto}
.gallery-grid figcaption{padding:.6rem 0;font-size:.65rem;letter-spacing:.1em}
.gallery-empty{display:none;margin-top:4rem}
.gallery-empty.is-visible{display:block}
@media(max-width:800px){.gallery-grid{grid-template-columns:1fr}.gallery-modal{width:100vw;height:100vh;margin:0;max-height:none}}

/* Dirección visual cinematográfica */
:root{--ink:#10110f;--paper:#e9e7df;--sand:#c6bdab;--line:rgba(16,17,15,.25)}
body{background:#10110f}
.hero:after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(180deg,rgba(3,5,4,.32) 0%,rgba(4,6,5,.12) 42%,rgba(2,4,3,.3) 100%),radial-gradient(circle at 50% 43%,transparent 0 24%,rgba(0,0,0,.2) 100%)}
.hero__video{filter:brightness(.72) contrast(1.12) saturate(.72);transform:scale(1.025);animation:cinematic-drift 18s ease-in-out infinite alternate}
.hero__grain{z-index:3;opacity:.28;mix-blend-mode:soft-light}
.hero__content,.scroll-cue{z-index:4;text-shadow:0 3px 30px rgba(0,0,0,.85)}
.hero__content .wordmark{font-size:clamp(2rem,5vw,5.4rem);letter-spacing:.42em}
.hero__claim{font-size:clamp(1rem,1.65vw,1.55rem);letter-spacing:.08em}
.brand{display:block;line-height:0}.brand img{display:block;width:100%;height:auto}.brand--header{width:clamp(6rem,8.4vw,8rem)}
.hero__logo{width:clamp(19rem,40vw,36rem);margin:0 auto;line-height:0}.hero__logo img{display:block;width:100%;height:auto}
.cinematic-intro{position:relative;isolation:isolate;background:#10110f}
.cinematic-intro__media{position:sticky;top:0;z-index:0;height:100svh;overflow:hidden}
.cinematic-intro__media:after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,rgba(3,5,4,.32),rgba(4,6,5,.12) 42%,rgba(2,4,3,.3)),radial-gradient(circle at 50% 43%,transparent 0 24%,rgba(0,0,0,.2) 100%)}
.cinematic-intro>.hero{margin-top:-100svh}
.cinematic-intro .hero{z-index:1;background:transparent}
.section.intro{position:relative;z-index:1;isolation:isolate;min-height:100svh;overflow:hidden;background:transparent;color:#fff}
.intro__shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(180deg,rgba(3,5,4,.32),rgba(4,6,5,.16) 44%,rgba(2,4,3,.58)),radial-gradient(circle at 70% 38%,transparent 0 18%,rgba(0,0,0,.35) 100%)}
.intro__content{position:relative;z-index:1}
.intro .section-label,.intro .intro__headline,.intro .stats{position:relative;z-index:1}
.intro .stats{border-color:rgba(255,255,255,.3)}
.intro .stats article{border-color:rgba(255,255,255,.22)}
.stats .stat-name{align-self:end;font-size:clamp(1.55rem,3vw,3.2rem);line-height:.95;letter-spacing:-.045em}
.topbar{background:linear-gradient(180deg,rgba(5,7,6,.52),transparent)}
.topbar.is-light{background:rgba(233,231,223,.9)}
.section{background:var(--paper)}
.section--dark{background:linear-gradient(145deg,#131611,#080a08 72%)}
.section--sand{background:linear-gradient(135deg,#c9c1b1,#aea592)}
.intro h1,.architecture__intro h2,.sticky-copy h2,.summary-grid h2,.territory h2,.visit h2{font-weight:300;letter-spacing:-.06em}
.section-label,.eyebrow,.site-nav,.stats span,.project-card__meta p,.house>div:last-child>span{letter-spacing:.18em}
.gallery-cover.has-photo{filter:saturate(.68) contrast(1.12) brightness(.82);transition:filter .7s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
.gallery-cover.has-photo:before{z-index:1;background:linear-gradient(180deg,rgba(5,7,6,.12),rgba(4,6,5,.55))}
.gallery-cover.has-photo:hover{filter:saturate(.9) contrast(1.08) brightness(.98);transform:scale(1.012)}
.visual__hint,.visual__index{z-index:2;text-shadow:0 2px 18px rgba(0,0,0,.8)}
.territory{background:#161a15}
.territory__map{background:repeating-radial-gradient(ellipse at 45% 50%,rgba(184,195,177,.3) 0 1px,transparent 2px 28px),radial-gradient(circle at 45% 50%,#394239,#151914 78%)}
.visit{background:radial-gradient(circle at 78% 44%,#22271f 0,#0a0c09 48%,#050605 100%)}
.reveal{transform:translateY(42px);transition:opacity 1.15s ease,transform 1.15s cubic-bezier(.2,.7,.2,1)}
.modal{background:#e9e7df}
.gallery-grid img{filter:saturate(.82) contrast(1.06)}
@keyframes cinematic-drift{from{transform:scale(1.025) translate3d(-.35%,0,0)}to{transform:scale(1.065) translate3d(.35%,-.5%,0)}}
@media(max-width:800px){.brand--header{width:6rem}.hero__logo{width:min(78vw,24rem)}}
@media(prefers-reduced-motion:reduce){.hero__video{animation:none;transform:scale(1.025)}}

/* Visor de galerías: una fotografía por vez, como una postal suspendida */
.gallery-modal{position:fixed;inset:0;width:min(1380px,97vw);height:100svh;max-width:none;max-height:none;margin:auto;padding:clamp(1rem,2vh,1.5rem) 0;border:0;overflow:hidden;background:transparent;color:#fff;opacity:0;transition:opacity .55s ease,display .55s allow-discrete,overlay .55s allow-discrete}
.gallery-modal[open]{display:grid;grid-template-rows:minmax(0,1fr) auto;align-items:center}
.gallery-modal[open].is-visible{opacity:1}
.gallery-modal.is-closing{opacity:0}
.gallery-modal::backdrop{background:rgba(0,0,0,0);backdrop-filter:blur(0) brightness(1);transition:background .55s ease,backdrop-filter .55s ease,display .55s allow-discrete,overlay .55s allow-discrete}
.gallery-modal.is-visible::backdrop{background:rgba(0,0,0,.78);backdrop-filter:blur(3px) brightness(.68)}
.gallery-modal.is-closing::backdrop{background:rgba(0,0,0,0);backdrop-filter:blur(0) brightness(1)}
@starting-style{.gallery-modal[open].is-visible{opacity:0}.gallery-modal[open].is-visible::backdrop{background:rgba(0,0,0,0);backdrop-filter:blur(0) brightness(1)}}
.gallery-postcard{position:relative;display:grid;width:100%;height:100%;min-height:0;place-items:center}
.gallery-postcard img{display:block;width:auto;max-width:100%;height:auto;max-height:86svh;object-fit:contain;background:#0b0c0b;box-shadow:0 2rem 6rem rgba(0,0,0,.78)}
.gallery-modal.is-plan .gallery-postcard img{background:rgba(255,255,255,.8)}
.gallery-postcard__arrow{position:absolute;z-index:2;top:50%;translate:0 -50%;display:grid;width:2.8rem;height:2.8rem;padding:0;place-items:center;border:1px solid rgba(255,255,255,.48);border-radius:50%;background:rgba(4,5,4,.34);color:#fff;font:300 2rem/1 Manrope,sans-serif;cursor:pointer;transition:background .25s ease,border-color .25s ease,scale .25s ease}
.gallery-postcard__arrow:hover,.gallery-postcard__arrow:focus-visible{border-color:#fff;background:rgba(4,5,4,.72);scale:1.06;outline:0}
.gallery-postcard__arrow--previous{left:1rem}.gallery-postcard__arrow--next{right:1rem}
.gallery-postcard .gallery-count{position:absolute;left:50%;bottom:1rem;translate:-50% 0;margin:0;padding:.35rem .65rem;background:rgba(0,0,0,.48);color:#fff;font:500 .62rem/1 Manrope,sans-serif;letter-spacing:.14em}
.gallery-modal .gallery-empty{margin:2rem auto;color:#fff;text-align:center}
.gallery-modal__close{position:static;display:block;margin:.8rem auto 0;padding:.55rem 1rem;border:0;background:none;color:#fff;font:500 .68rem/1 Manrope,sans-serif;letter-spacing:.19em;text-transform:uppercase;cursor:pointer;transition:opacity .25s ease}
.gallery-modal__close:hover,.gallery-modal__close:focus-visible{opacity:.62;outline:0}
@media(max-width:800px){.gallery-modal{width:96vw;height:100svh;max-height:none;margin:auto;padding:1rem 0}.gallery-postcard{height:100%;max-height:none}.gallery-postcard img{max-height:84svh}.gallery-postcard__arrow{width:2.35rem;height:2.35rem;font-size:1.6rem}.gallery-postcard__arrow--previous{left:.45rem}.gallery-postcard__arrow--next{right:.45rem}}

.radar-cursor--modal{z-index:10;mix-blend-mode:difference}

/* Modela tu proyecto: masterplan de Etapa 2, oscuro y fundido en sus bordes */
#disena,#elige-parcela{position:relative;isolation:isolate;min-height:100svh;overflow:hidden;background:#07100e;color:#fff}
#disena:before{content:"";position:absolute;z-index:-2;inset:0;background:url("../galeria/MODELA%20TU%20PROYECTO/00_BASE.png") center/cover no-repeat;filter:brightness(.56) saturate(.9) contrast(1.08);transform:scale(1.015)}
#disena:after{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background:linear-gradient(180deg,#07100e 0%,rgba(7,16,14,.18) 15%,rgba(7,16,14,.12) 82%,#07100e 100%),linear-gradient(90deg,#07100e 0%,rgba(7,16,14,.18) 12%,transparent 30%,transparent 72%,rgba(7,16,14,.5) 91%,#07100e 100%)}
.model-cover{display:flex;align-items:stretch;padding:0 var(--pad)}.model-cover__content{position:relative;z-index:1;display:grid;width:min(62rem,70vw);min-height:100svh;padding:clamp(7rem,13vh,10rem) 0 clamp(3rem,7vh,5rem);grid-template-rows:auto 1fr auto;align-items:start}.model-cover__heading h2{font:300 clamp(5rem,10.5vw,12rem)/.78 Manrope,sans-serif;letter-spacing:-.075em;text-transform:uppercase}.model-cover__heading p{margin-top:1.8rem;font:.68rem/1.3 Manrope,sans-serif;letter-spacing:.18em;text-transform:uppercase}.model-cover__decisions{align-self:center;width:min(30rem,48vw);margin:2rem 0 2rem 1rem;padding:0;list-style:none}.model-cover__decisions li{display:grid;padding:1rem 0;border-top:1px solid rgba(255,255,255,.32);grid-template-columns:2.5rem 1fr;font:300 clamp(1.15rem,2vw,2rem)/1 Manrope,sans-serif;text-transform:uppercase}.model-cover__decisions li:last-child{border-bottom:1px solid rgba(255,255,255,.32)}.model-cover__decisions span{font-size:.58rem;letter-spacing:.14em}.model-cover__start{display:flex;width:max-content;min-width:13rem;justify-content:space-between;padding:.8rem 1rem;border:1px solid rgba(255,255,255,.85);font:.66rem/1 Manrope,sans-serif;letter-spacing:.16em;text-transform:uppercase;transition:background .3s ease,color .3s ease}.model-cover__start:hover{background:#fff;color:#111}.model-step{display:grid;align-content:center;background:linear-gradient(180deg,#07100e,#0d1713)}.model-step__content{width:min(48rem,62vw)}.model-step__content h2{font:300 clamp(4.5rem,9vw,10rem)/.84 Manrope,sans-serif;letter-spacing:-.07em;text-transform:uppercase}.model-step__content>p:last-child{max-width:34rem;margin-top:2rem;font:500 clamp(.9rem,1.1vw,1.08rem)/1.55 Manrope,sans-serif}
@media(max-width:800px){.model-cover__content{width:82vw}.model-cover__heading h2{font-size:clamp(3.7rem,18vw,6rem)}.model-cover__decisions{width:76vw;margin-left:0}.model-step__content{width:82vw}}
.stats{grid-template-columns:repeat(3,1fr)}
@media(max-width:800px){.stats{grid-template-columns:1fr}.stats article{border-right:0}}
.location-map{position:relative;margin:0 0 clamp(5rem,10vw,9rem);overflow:hidden;border:1px solid rgba(235,239,229,.18);background:#20281f;color:rgba(218,228,211,.22)}
.location-map:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 57% 57%,rgba(121,153,111,.12),transparent 28%),linear-gradient(180deg,transparent 65%,rgba(7,10,7,.3))}
.location-map__top,.location-map__bottom{position:absolute;z-index:3;left:0;width:100%;display:flex;justify-content:space-between;padding:1.15rem 1.35rem;color:rgba(245,247,241,.62);font-size:.58rem;text-transform:uppercase;letter-spacing:.16em}
.location-map__top{top:0;border-bottom:1px solid rgba(235,239,229,.12)}.location-map__bottom{bottom:0;border-top:1px solid rgba(235,239,229,.12)}
.location-map svg{display:block;width:100%;height:auto;min-height:540px;color:rgba(203,218,197,.22)}
.map-grid{opacity:.28}.map-coast,.map-island,.map-inlet{fill:#101610;stroke:rgba(205,220,198,.5);stroke-width:2}.map-lake{fill:#111a16;stroke:rgba(172,201,187,.68);stroke-width:2}.map-river{fill:none;stroke:rgba(154,198,179,.78);stroke-width:7;stroke-linecap:round}.map-river+.map-road{stroke-dasharray:0}
.map-road{fill:none;stroke:rgba(220,226,213,.32);stroke-width:1.5}.map-road--minor{stroke-dasharray:7 8;opacity:.7}
.map-place circle{fill:#e9eee4}.map-place path{stroke:rgba(232,238,227,.55);stroke-width:1}.map-place text{fill:#f0f3ec;font:500 14px "DM Sans",Arial,sans-serif;letter-spacing:.035em}.map-place--water text{fill:#9ebdaf;font-size:12px;text-transform:uppercase;letter-spacing:.12em}.map-place--water path{stroke:#789b8d}.map-place--biotopia circle:not(.map-pulse){fill:#dce9a0}.map-place--biotopia text{fill:#e8f1b8;font-size:17px;letter-spacing:.16em}.map-pulse{fill:none!important;stroke:#cfe27b!important;stroke-width:1.5!important;opacity:.55}
.map-compass circle,.map-compass path{fill:none;stroke:rgba(225,232,219,.35);stroke-width:1}.map-compass .map-compass__north{fill:#dce9a0;stroke:none}.map-compass text{fill:rgba(238,242,233,.65);font:500 11px "DM Sans"}
.projects{position:relative}
@media(max-width:800px){.location-map{margin-inline:calc(var(--pad) * -1);border-left:0;border-right:0}.location-map svg{width:155%;max-width:none;transform:translateX(-30%);min-height:480px}.location-map__top span:first-child{display:none}.location-map__bottom{padding:.9rem var(--pad)}}
.hero__content,.hero .scroll-cue{opacity:var(--hero-opacity,1);will-change:opacity}
.intro .reveal,.intro .reveal.is-visible{transform:none;opacity:var(--intro-opacity,0);transition:opacity .2s linear}
.availability strong,.availability span{color:#d87870}.availability strong{animation:availability-pulse 3.2s ease-in-out infinite}
@keyframes availability-pulse{0%,100%{opacity:.78;text-shadow:0 0 0 rgba(216,120,112,0)}50%{opacity:1;text-shadow:0 0 22px rgba(216,120,112,.32)}}
.masterplan-screen{position:relative;z-index:1;height:100svh;overflow:hidden;background:#0b0e0b}
.masterplan-screen img{display:block;width:100%;height:100%;object-fit:cover;filter:brightness(.8) contrast(1.08) saturate(.78)}
.masterplan-screen img.reveal{transform:none;opacity:0;transition:opacity 1.4s ease}.masterplan-screen img.reveal.is-visible{opacity:1}
@media(prefers-reduced-motion:reduce){.availability strong{animation:none;opacity:1}}
.section.intro{padding:clamp(5.5rem,10vh,7.5rem) var(--pad) clamp(2.5rem,5vh,4rem);display:flex;align-items:stretch}
.intro__content{width:100%;display:flex;flex-direction:column;justify-content:center}
.intro .section-label{margin-bottom:clamp(2.5rem,5vh,4rem)}
.intro .intro__headline h1{font-size:clamp(3rem,6vw,6.5rem)}
.intro .stats{margin-top:clamp(2.8rem,6vh,5rem)}
@media(max-width:800px){.section.intro{height:auto;min-height:100svh}.intro .stats{margin-top:2.5rem}}
.cinematic-intro>.hero,.cinematic-intro>.intro,.cinematic-intro>.welcome-panel{position:sticky;top:0;height:100svh;min-height:100svh}
.cinematic-intro>.hero{z-index:1}.cinematic-intro>.intro{z-index:2;opacity:var(--intro-opacity,0);will-change:opacity}.cinematic-intro>.welcome-panel{z-index:3}
.intro__shade{background:linear-gradient(180deg,rgba(3,5,4,.4),rgba(3,5,4,.18) 48%,rgba(2,4,3,.48))}
.intro__content{justify-content:center;text-align:center;opacity:1}
.intro .intro__headline{display:block;max-width:1050px;margin:0 auto}
.intro .intro__headline h1{font-size:clamp(2rem,4.2vw,4.8rem);line-height:1.05;letter-spacing:-.045em}
.intro .stats{width:100%;margin-top:clamp(3rem,8vh,6rem);text-align:left}
.welcome-panel{display:grid;place-items:center;color:#fff;background:rgba(3,5,4,.18);opacity:var(--welcome-opacity,0);will-change:opacity;text-align:center}
.welcome-panel__content p{font:300 clamp(3.2rem,7.5vw,8rem)/.95 Manrope,sans-serif;letter-spacing:-.055em}.welcome-panel__content span{display:block;margin-top:2rem;font-size:clamp(.75rem,1vw,1rem);text-transform:uppercase;letter-spacing:.28em}
@media(max-width:800px){.intro .intro__headline h1{font-size:clamp(1.8rem,8vw,3.2rem)}.welcome-panel__content p{font-size:clamp(3rem,14vw,5rem)}}
.cinematic-intro.timed-intro{position:relative;isolation:isolate;height:100svh;min-height:600px;overflow:hidden;background:#080b08;color:#fff}
.timed-intro .cinematic-intro__media{position:absolute;inset:0;height:100%;overflow:hidden}
.timed-intro .cinematic-intro__media:after{background:linear-gradient(180deg,rgba(2,4,3,.48),rgba(3,5,4,.16) 48%,rgba(1,3,2,.5)),radial-gradient(circle at 50% 45%,transparent 0 18%,rgba(0,0,0,.45) 100%)}
.timed-intro__satellite{position:absolute;inset:0;z-index:3;width:100%;height:100%;object-fit:cover;filter:brightness(.72) contrast(1.12) saturate(.72);opacity:0;animation:satellite-reveal 20s ease-in-out forwards}
.timed-intro__shade{position:absolute;inset:0;z-index:4;background:#030403;opacity:.12;animation:intro-shade 20s ease-in-out forwards}
.timed-intro__copy{position:absolute;inset:0;z-index:5;display:grid;place-content:center;width:min(1100px,88vw);margin:auto;text-align:center;text-shadow:0 3px 32px rgba(0,0,0,.9)}
.timed-intro__copy h1{font:300 clamp(2.4rem,5.7vw,6.4rem)/1.02 Manrope,sans-serif;letter-spacing:-.055em}.timed-intro__copy>p{margin-inline:auto}
.timed-intro__line{display:block;opacity:0}.timed-intro__line--one{animation:intro-line-one 10.5s ease-in-out forwards}.timed-intro__line--two{max-width:850px;margin-top:2rem;font:300 clamp(1.15rem,2.2vw,2.2rem)/1.35 Manrope,sans-serif;animation:intro-line-two 10.5s ease-in-out forwards}
.timed-intro__welcome{position:absolute;left:0;right:0;top:calc(50% + clamp(5.5rem,10vw,10rem));font-size:clamp(.72rem,1vw,.95rem);text-transform:uppercase;letter-spacing:.32em;opacity:0;animation:intro-welcome 20s ease-in-out forwards}
.timed-intro__scroll{position:absolute;z-index:6;bottom:2rem;left:50%;translate:-50% 0;display:grid;place-items:center;gap:.65rem;font-size:.58rem;text-transform:uppercase;letter-spacing:.17em;opacity:0;animation:intro-controls 20s ease forwards}.timed-intro__scroll i{width:1px;height:28px;background:#fff}
.timed-intro~.section--dark{position:relative}
.topbar{animation:intro-controls 20s ease forwards}
@keyframes intro-line-one{0%,6%{opacity:0}15%,58%{opacity:1}74%,100%{opacity:0}}
@keyframes intro-line-two{0%,24%{opacity:0}35%,62%{opacity:1}76%,100%{opacity:0}}
@keyframes intro-welcome{0%,50%{opacity:0}60%,73%{opacity:1}84%,100%{opacity:0}}
@keyframes intro-shade{0%,72%{opacity:.12}86%{opacity:.96}100%{opacity:.18}}
@keyframes satellite-reveal{0%,82%{opacity:0}91%{opacity:.22}100%{opacity:1}}
@keyframes intro-controls{0%,92%{opacity:0}100%{opacity:1}}
@media(max-width:800px){.timed-intro__copy{width:min(90vw,42rem)}.timed-intro__copy h1{font-size:clamp(2.2rem,10vw,4.4rem)}.timed-intro__line--two{font-size:clamp(1rem,4.5vw,1.5rem)}}
@media(prefers-reduced-motion:reduce){.timed-intro__satellite{animation:none;opacity:1}.timed-intro__shade{animation:none;opacity:.18}.timed-intro__line{display:none}.timed-intro__welcome{display:none}.timed-intro__scroll,.topbar{animation:none;opacity:1}}
.timed-intro .hero__video{filter:brightness(.58) contrast(1.2) saturate(.62)}
.timed-intro__copy{display:block;width:min(960px,86vw)}
.timed-intro__copy h1{font:inherit;letter-spacing:normal}
.timed-intro__roll{position:absolute;left:50%;top:50%;width:min(900px,88vw);height:7.5em;margin:0;overflow:hidden;transform:translate(-50%,-50%);font:300 clamp(1rem,1.55vw,1.45rem)/1.5 Manrope,sans-serif!important;letter-spacing:.005em!important;opacity:0;mask-image:linear-gradient(to bottom,transparent 0,rgba(0,0,0,.45) 12%,rgba(0,0,0,.76) 29%,#000 43%,#000 57%,rgba(0,0,0,.76) 71%,rgba(0,0,0,.45) 88%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 0,rgba(0,0,0,.45) 12%,rgba(0,0,0,.76) 29%,#000 43%,#000 57%,rgba(0,0,0,.76) 71%,rgba(0,0,0,.45) 88%,transparent 100%);animation:intro-roll-visibility 20s ease-in-out forwards}
.timed-intro__track{display:flex;flex-direction:column;will-change:transform;animation:intro-roll 20s linear forwards}
.timed-intro__track>span{display:flex;align-items:center;justify-content:center;min-height:1.5em;padding:0 .5rem;white-space:nowrap}
.timed-intro__track>span:nth-child(3){margin-top:.75em}
.timed-intro__welcome{position:absolute;left:0;right:0;top:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:clamp(.8rem,1.8vh,1.2rem);width:100%;max-width:920px;margin:0 auto!important;transform:translateY(-50%);opacity:0;animation-name:intro-welcome-v2}
.timed-intro__welcome img{display:block;width:clamp(210px,27vw,360px);height:auto;filter:brightness(0) invert(1)}
.timed-intro__welcome span{font:300 clamp(.58rem,.68vw,.7rem)/1 Manrope,sans-serif;letter-spacing:.3em;color:rgba(255,255,255,.82)}
.timed-intro__shade{animation-name:intro-shade-v2}.timed-intro__satellite{animation-name:satellite-reveal-v2}
@keyframes intro-roll-visibility{0%,4%{opacity:0}9%,64%{opacity:1}70%,100%{opacity:0}}
@keyframes intro-roll{0%,7%{transform:translateY(5.25em)}66%,100%{transform:translateY(-5.25em)}}
@keyframes intro-welcome-v2{0%,64%{opacity:0}76%,83%{opacity:1}89%,100%{opacity:0}}
@keyframes intro-shade-v2{0%,80%{opacity:.18}88%,96%{opacity:1}100%{opacity:.2}}
@keyframes satellite-reveal-v2{0%,89%{opacity:0}94%,100%{opacity:1}}
@media(max-width:800px){.timed-intro__roll{font-size:clamp(.9rem,3.8vw,1.15rem);line-height:1.5;height:7.5em}.timed-intro__track>span{min-height:1.5em;white-space:normal}.timed-intro__welcome img{width:clamp(175px,56vw,260px)}}
.timed-intro__shade,.timed-intro__copy{pointer-events:none}
.map-explorer{overflow:hidden;background:#07100e;filter:none;isolation:isolate}
.map-explorer:before,.map-explorer:after{content:"";position:absolute;z-index:3;left:0;right:0;height:19%;pointer-events:none}
.map-explorer:before{top:0;background:linear-gradient(180deg,#07100e 0%,rgba(7,16,14,.82) 32%,transparent 100%)}
.map-explorer:after{bottom:0;background:linear-gradient(0deg,#07100e 0%,rgba(7,16,14,.82) 32%,transparent 100%)}
.map-explorer__world,.map-explorer__base,.map-explorer__vectors{position:absolute;inset:0;width:100%;height:100%}
.map-explorer__world{transform:scale(1);transition:inset .9s cubic-bezier(.22,.7,.2,1),transform .9s cubic-bezier(.22,.7,.2,1)}
.map-explorer[data-view="location"] .map-explorer__world{inset:4% 18% 4% 2%;width:auto;height:auto;transform:scale(.98);-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 12%,#000 88%,transparent 100%),linear-gradient(to right,transparent 0%,#000 7%,#000 93%,transparent 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(to bottom,transparent 0%,#000 12%,#000 88%,transparent 100%),linear-gradient(to right,transparent 0%,#000 7%,#000 93%,transparent 100%);mask-composite:intersect}
.map-explorer__base{object-fit:cover;filter:brightness(.77) saturate(1.1) contrast(1.04);will-change:opacity,transform,filter}
.map-explorer[data-view="location"] .map-explorer__base{object-fit:contain}
.map-explorer__base--location{filter:brightness(.64) saturate(1.08) contrast(1.06)}
.map-explorer__base--biotopia{opacity:1}.map-explorer__base--location{opacity:0}
.map-explorer[data-view="location"] .map-explorer__base--biotopia{opacity:0}
.map-explorer[data-view="location"] .map-explorer__base--location{opacity:1}
.map-explorer.is-zooming-out .map-explorer__base--biotopia{animation:earth-near-out 1.45s cubic-bezier(.22,.7,.15,1) forwards}
.map-explorer.is-zooming-out .map-explorer__base--location{animation:earth-far-in 1.45s cubic-bezier(.22,.7,.15,1) forwards}
.map-explorer.is-zooming-in .map-explorer__base--location{animation:earth-far-out 1.45s cubic-bezier(.22,.7,.15,1) forwards}
.map-explorer.is-zooming-in .map-explorer__base--biotopia{animation:earth-near-in 1.45s cubic-bezier(.22,.7,.15,1) forwards}
@keyframes earth-near-out{0%{opacity:1;transform:scale(1);filter:brightness(.77) saturate(1.1) contrast(1.04) blur(0)}100%{opacity:0;transform:scale(.48);filter:brightness(.77) saturate(1.1) contrast(1.04) blur(5px)}}
@keyframes earth-far-in{0%{opacity:0;transform:scale(1.75);filter:brightness(.64) saturate(1.08) contrast(1.06) blur(5px)}100%{opacity:1;transform:scale(1);filter:brightness(.64) saturate(1.08) contrast(1.06) blur(0)}}
@keyframes earth-far-out{0%{opacity:1;transform:scale(1);filter:brightness(.64) saturate(1.08) contrast(1.06) blur(0)}100%{opacity:0;transform:scale(1.75);filter:brightness(.64) saturate(1.08) contrast(1.06) blur(5px)}}
@keyframes earth-near-in{0%{opacity:0;transform:scale(.48);filter:brightness(.77) saturate(1.1) contrast(1.04) blur(5px)}100%{opacity:1;transform:scale(1);filter:brightness(.77) saturate(1.1) contrast(1.04) blur(0)}}
.map-explorer__vectors{z-index:2;opacity:0;pointer-events:none;transition:opacity .55s ease}
.map-explorer[data-view="location"] .map-explorer__vectors{opacity:1;pointer-events:auto}
.map-river-axis{pointer-events:none}.map-river-axis path{fill:none;stroke:rgba(255,255,255,.68);stroke-width:1.35;stroke-dasharray:5 7;filter:drop-shadow(0 0 3px rgba(255,255,255,.35))}.map-river-axis text{fill:rgba(255,255,255,.72);font:400 11px "Century Gothic","Avenir Next",sans-serif;letter-spacing:1.2px}
.map-legend{pointer-events:none}.map-legend line{stroke:rgba(255,255,255,.78);stroke-width:1.35;stroke-dasharray:5 7}.map-legend text{fill:rgba(255,255,255,.78);font:400 10px "Century Gothic","Avenir Next",sans-serif;letter-spacing:1.2px}
.map-route{opacity:0;transition:opacity .5s ease}.map-route path{fill:none;stroke:#fff;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1800;stroke-dashoffset:1800;filter:drop-shadow(0 0 2px rgba(255,255,255,.7)) drop-shadow(0 0 5px rgba(255,255,255,.22))}.map-origin{fill:#fff;stroke:#fff;transform-box:fill-box;transform-origin:center;animation:map-origin-pulse 1.25s ease-in-out infinite;filter:drop-shadow(0 0 5px rgba(255,255,255,.85))}@keyframes map-origin-pulse{0%,100%{opacity:.55;transform:scale(.72);filter:drop-shadow(0 0 3px rgba(255,255,255,.45))}50%{opacity:1;transform:scale(1.65);filter:drop-shadow(0 0 9px rgba(255,255,255,1))}}.map-route text,.map-city-labels text{fill:#fff;font:400 14px "Century Gothic","Avenir Next",sans-serif;letter-spacing:.8px}.map-route text{font-size:12px;font-weight:700;letter-spacing:.25px;paint-order:stroke;stroke:rgba(2,9,13,.8);stroke-width:3px;stroke-linejoin:round}.map-route text tspan+ tspan{font-size:10px;font-weight:400}.map-city-labels text{cursor:pointer;transition:fill .25s ease,filter .25s ease,opacity .25s ease;opacity:.78}.map-city-labels text:hover,.map-city-labels text:focus,.map-city-labels text.is-active{fill:#fff;opacity:1;filter:drop-shadow(0 0 6px rgba(255,255,255,.75));outline:none}
.map-route.is-active{opacity:1}.map-route.is-active path{animation:map-route-draw 1.35s cubic-bezier(.3,.75,.2,1) forwards}
@keyframes map-route-draw{to{stroke-dashoffset:0}}
.map-points circle{fill:rgba(255,255,255,.001);stroke:rgba(255,255,255,.72);stroke-width:1.25;cursor:pointer;transition:fill .25s ease,stroke-width .25s ease}.map-points circle:hover,.map-points circle:focus,.map-points circle.is-active{fill:rgba(255,255,255,.3);stroke:#fff;stroke-width:2;outline:none}
.map-explorer__section-title{position:absolute;z-index:4;top:5.2rem;left:50%;translate:-50% 0;margin:0;color:rgba(255,255,255,.78);font:400 .72rem/1 "Century Gothic","Avenir Next",sans-serif;letter-spacing:.18em;text-transform:uppercase}.map-explorer__modes,.map-explorer__places{position:absolute;z-index:4;left:50%;display:flex;align-items:center;translate:-50% 0;color:#fff}
.map-explorer__modes{top:54%;gap:clamp(1.2rem,4vw,4rem);width:min(920px,92vw);justify-content:center}.map-explorer__places-title{position:absolute;z-index:4;top:6.7rem;left:50%;translate:-50% 0;margin:0;color:rgba(255,255,255,.62);font:400 .72rem/1 "Century Gothic","Avenir Next",sans-serif;letter-spacing:.14em;text-transform:uppercase;opacity:0;transition:opacity .4s ease}.map-explorer__places{top:8.6rem;gap:clamp(1rem,3.5vw,3.5rem);width:min(940px,94vw);justify-content:center}
.map-explorer button,.map-explorer__modes a{border:0;outline:0;padding:.62rem 1.35rem;border-radius:999px;color:rgba(255,255,255,.74);background:none;font:400 clamp(.68rem,.9vw,.88rem)/1.2 "Century Gothic","Avenir Next",sans-serif;letter-spacing:.035em;text-decoration:none;text-transform:uppercase;white-space:nowrap;cursor:pointer;transition:color .3s ease,background .3s ease,text-shadow .3s ease}.map-explorer button:hover,.map-explorer button.is-active,.map-explorer__modes a:hover{color:#fff;background:rgba(5,8,5,.5);text-shadow:0 0 18px rgba(255,255,255,.25)}
.map-explorer__places{opacity:0;pointer-events:none;transition:opacity .4s ease}.map-explorer[data-view="location"] .map-explorer__places,.map-explorer[data-view="location"] .map-explorer__places-title{opacity:1;pointer-events:auto}
.map-explorer[data-view="location"] .map-explorer__modes{opacity:0;pointer-events:none}.map-explorer__back{position:absolute!important;z-index:7;left:50%;bottom:2.2rem;translate:-50% 0;opacity:0;pointer-events:none}.map-explorer[data-view="location"] .map-explorer__back{opacity:1;pointer-events:auto}.timed-intro.is-location-map .timed-intro__scroll{display:none}
.map-place-story{position:fixed;z-index:30;left:var(--story-left,50%);top:var(--story-top,55%);bottom:auto;width:min(440px,38vw);margin:0;translate:-50% calc(-50% + 12px);color:#fff;text-align:left;opacity:0;pointer-events:none;filter:none;mix-blend-mode:normal;transition:opacity .7s ease,translate .9s cubic-bezier(.22,.7,.2,1),left .65s cubic-bezier(.22,.7,.2,1),top .65s cubic-bezier(.22,.7,.2,1)}
.map-place-story.is-visible{opacity:1;translate:-50% -50%}
.map-place-story h3{margin:0 0 1.15rem;color:#fff;font:600 clamp(.78rem,.9vw,1rem)/1.2 Manrope,sans-serif;letter-spacing:.13em;text-transform:uppercase;text-shadow:0 2px 20px rgba(0,0,0,.55)}
.map-place-story p{margin:0;color:rgba(255,255,255,.94);font:500 clamp(.9rem,1vw,1.15rem)/1.48 Manrope,sans-serif;letter-spacing:-.018em;white-space:pre-line;text-wrap:pretty;text-shadow:0 2px 20px rgba(0,0,0,.55)}
.timed-intro__skip{position:absolute;z-index:8;right:clamp(1rem,2.5vw,2.5rem);bottom:2rem;border:0;padding:.45rem;color:rgba(255,255,255,.72);background:none;font:400 .58rem/1 Manrope,sans-serif;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;animation:intro-skip 20s ease forwards;transition:color .3s ease}.timed-intro__skip:hover{color:#fff}@keyframes intro-skip{0%,82%{opacity:1}92%,100%{opacity:0;pointer-events:none}}
.timed-intro__skip{left:50%;right:auto;translate:-50% 0}
.timed-intro.is-skipped .timed-intro__satellite{animation:none;opacity:1}.timed-intro.is-skipped .timed-intro__shade{animation:none;opacity:.2}.timed-intro.is-skipped .timed-intro__copy{display:none}.timed-intro.is-skipped .timed-intro__scroll{animation:none;opacity:1}.timed-intro.is-skipped .timed-intro__skip{display:none}body.intro-skipped .topbar{animation:none;opacity:1}
@media(max-width:800px){.map-explorer:before{height:7rem}.map-explorer__modes{top:auto;bottom:6rem;left:0;width:100%;padding:0 1rem;justify-content:flex-start;overflow-x:auto;translate:0 0;scrollbar-width:none}.map-explorer__modes::-webkit-scrollbar,.map-explorer__places::-webkit-scrollbar{display:none}.map-explorer__places-title{top:5.2rem}.map-explorer__places{top:7rem;left:0;width:100%;padding:0 1rem;justify-content:flex-start;overflow-x:auto;translate:0 0;scrollbar-width:none}.map-explorer button,.map-explorer__modes a{padding:.55rem .9rem;font-size:.64rem}.map-explorer__base,.map-explorer__vectors{min-width:100%;object-position:center}.map-place-story{left:50%;bottom:4rem;width:min(520px,82vw)}.map-place-story h3{font-size:12px}.map-place-story p{font-size:11px;line-height:1.55}.timed-intro__skip{right:1rem;bottom:1.2rem}}
@media(max-width:800px){.map-explorer[data-view="location"] .map-explorer__world{inset:3% 3% 3% 3%}.map-legend{display:none}}

/* Portada editorial posterior a la introducción */
html{scroll-behavior:smooth;scroll-snap-type:y mandatory}
main>section{scroll-snap-align:start;scroll-snap-stop:always}
.landing-cover.timed-intro__satellite{display:block;filter:none;background:#111;overflow:hidden}
.topbar{padding-left:clamp(1.25rem,3vw,3.5rem);padding-right:clamp(1.25rem,3vw,3.5rem)}
.landing-cover>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.9) contrast(1.06) saturate(1.03);transform:scale(1.01);animation:landing-flyover 42s ease-in-out infinite alternate;will-change:transform,opacity}
.landing-cover__slide{z-index:0;opacity:0;transition:opacity 2.4s ease-in-out}
.landing-cover__slide.is-active{opacity:1}
.landing-cover__slide.is-entering{z-index:1}
.landing-cover:before{content:"";position:absolute;z-index:1;left:0;right:0;bottom:-1px;height:clamp(5rem,15vh,11rem);pointer-events:none;background:linear-gradient(180deg,transparent 0%,rgba(7,16,14,.48) 62%,#07100e 100%)}
.landing-cover__veil{position:absolute;z-index:1;inset:0;background:rgba(0,0,0,.2)}
.landing-cover:after{content:"";position:absolute;z-index:1;inset:0;pointer-events:none;opacity:.18;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.05' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)' opacity='.52'/%3E%3C/svg%3E")}
@keyframes landing-flyover{from{transform:scale(1.01) translate3d(0,0,0)}to{transform:scale(1.075) translate3d(-.45%,-.35%,0)}}
.landing-cover__content{position:absolute;z-index:2;left:clamp(1.25rem,3vw,3.5rem);top:clamp(6.5rem,11vh,7.5rem);bottom:clamp(2.5rem,5vh,4rem);display:flex;flex-direction:column;width:min(33vw,670px);color:#fff}
.landing-cover__heading h2{margin:0;font:300 clamp(3.8rem,7vw,7.6rem)/.82 Manrope,sans-serif;letter-spacing:-.07em;text-transform:uppercase}
.landing-cover__heading p{margin:1.35rem 0 0;font:300 clamp(.58rem,.72vw,.72rem)/1 "Century Gothic","Avenir Next",sans-serif;letter-spacing:.28em;text-transform:uppercase}
.landing-cover__heading span{display:block;margin-top:.8rem;color:rgba(255,255,255,.68);font:300 clamp(.58rem,.72vw,.72rem)/1 "Century Gothic","Avenir Next",sans-serif;letter-spacing:.13em;text-transform:uppercase}
.landing-cover__body{display:flex;flex-direction:column;justify-content:center;gap:clamp(.9rem,1.8vh,1.25rem);width:min(650px,100%);margin:auto 0;padding:clamp(.7rem,1.2vh,1rem) .6rem;background:transparent}
.landing-cover__body p{margin:0;color:rgba(255,255,255,.9);font:300 clamp(.9rem,1vw,1.15rem)/1.55 Manrope,sans-serif;text-wrap:pretty}
.landing-cover__action{margin-top:auto}
.landing-cover__action>a{position:absolute;left:0;bottom:0;display:inline-flex;align-items:center;justify-content:center;width:min(19.6rem,100%);padding:.68rem 1.35rem;border:0;color:#111;background:#fff;font:700 clamp(.75rem,1vw,1.08rem)/1 "Century Gothic","Avenir Next",sans-serif;letter-spacing:.025em;text-transform:uppercase;transition:background .3s ease,color .3s ease}
.landing-cover__action>a:hover{background:#111;color:#fff}
.landing-cover__availability{position:absolute;left:0;bottom:clamp(6rem,14vh,10rem);display:grid;width:min(26rem,100%);gap:.65rem;padding:1.35rem 1.4rem;background:transparent;font-family:"Century Gothic","Avenir Next",sans-serif;text-transform:uppercase}
.landing-cover__availability strong{font-size:clamp(.78rem,.9vw,1rem);font-weight:700;letter-spacing:.105em;color:#fff}
.landing-cover__availability span{font-size:clamp(.72rem,.82vw,.88rem);font-weight:300;letter-spacing:.105em;color:rgba(255,255,255,.72)}
.landing-cover__availability em{font-size:clamp(.76rem,.86vw,.94rem);font-style:normal;font-weight:500;letter-spacing:.105em;color:#ff4d45;text-shadow:0 0 16px rgba(255,44,35,.42);animation:availability-alert 1.65s ease-in-out infinite}
.landing-cover__scroll{position:absolute;z-index:3;left:50%;bottom:2rem;translate:-50% 0;display:flex;flex-direction:column;align-items:center;gap:.55rem;color:rgba(255,255,255,.82);font:400 .64rem/1 "Century Gothic","Avenir Next",sans-serif;letter-spacing:.08em;text-transform:uppercase}
.landing-cover__scroll i{order:-1;width:1px;height:78px;background:rgba(255,255,255,.88);transform-origin:top;animation:landing-scroll-line 2s ease-in-out infinite}
@keyframes landing-scroll-line{0%,100%{transform:scaleY(.55);opacity:.55}50%{transform:scaleY(1);opacity:1}}
@keyframes availability-alert{0%,100%{opacity:.62}50%{opacity:1;text-shadow:0 0 22px rgba(255,44,35,.68)}}
.map-section{position:relative;height:900svh;min-height:5580px;margin-top:-1px;background:#07100e}
.map-section:after{content:"";position:absolute;z-index:9;left:0;right:0;top:-1px;height:clamp(5rem,15vh,11rem);pointer-events:none;background:linear-gradient(180deg,#07100e 0%,rgba(7,16,14,.44) 38%,transparent 100%)}
.map-section>.map-explorer{position:absolute;inset:0;width:100%;height:100%}
@media(max-width:800px){.landing-cover__content{top:5.5rem;bottom:1.5rem;width:min(86vw,390px)}.landing-cover__heading h2{font-size:clamp(3rem,16vw,4.7rem)}.landing-cover__heading p{max-width:18rem;margin-top:.85rem;line-height:1.35}.landing-cover__body{gap:.7rem;margin:auto 0;padding:.65rem .5rem 9rem}.landing-cover__body p{font-size:.67rem;line-height:1.4}.landing-cover__action>a{width:min(17rem,76vw);padding:.7rem 1rem}.landing-cover__availability{left:0;bottom:4.2rem;width:min(17rem,76vw);gap:.3rem;padding:.75rem}.landing-cover__availability span,.landing-cover__availability strong,.landing-cover__availability em{font-size:.62rem}.landing-cover__scroll{display:none}.landing-cover>img{object-position:center}.map-section{min-height:100svh}}
@media(prefers-reduced-motion:reduce){.landing-cover>img,.landing-cover__availability em,.landing-cover__scroll i{animation:none}}

/* Mapa interactivo Biotopia: solo MAPA/01.png es una imagen; el resto es interfaz vectorial */
.map-section>.map-explorer{display:block;visibility:hidden;opacity:0;pointer-events:none;transition:opacity 1.15s ease,visibility 0s linear 1.15s}
.map-section.is-connectivity-visible>.map-explorer{visibility:visible;opacity:1;pointer-events:auto;transition:opacity 1.15s ease}
.project-map{--map-side-space:max(0px,calc((100vw - 200svh)/2));position:sticky;z-index:2;top:0;width:100%;height:100svh;overflow:hidden;background:#07100e;color:#fff;font-family:"Century Gothic","Avenir Next",Manrope,sans-serif;opacity:1;visibility:visible;transition:opacity 1.15s ease,visibility 0s linear}
.map-section.is-connectivity-visible>.project-map{visibility:hidden;opacity:0;pointer-events:none;transition:opacity 1.15s ease,visibility 0s linear 1.15s}
.project-map__base{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:contain;scale:.92;filter:brightness(.72) saturate(1.08) contrast(1.04);-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 12%,#000 88%,transparent 100%),linear-gradient(to right,transparent 0%,#000 6%,#000 94%,transparent 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(to bottom,transparent 0%,#000 12%,#000 88%,transparent 100%),linear-gradient(to right,transparent 0%,#000 6%,#000 94%,transparent 100%);mask-composite:intersect}
.project-map__state-bg{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;filter:brightness(.62) saturate(1.04) contrast(1.06);transition:opacity 1.25s ease;will-change:opacity}
.project-map[data-map-state="environment"][data-environment-panel="environment"] [data-environment-bg="environment"],.project-map[data-map-state="environment"][data-environment-panel="river"] [data-environment-bg="river"],.project-map[data-map-state="environment"][data-environment-panel="wetlands"] [data-environment-bg="wetlands"],.project-map[data-map-state="environment"][data-environment-panel="flora"] [data-environment-bg="flora"],.project-map[data-map-state="environment"][data-environment-panel="fauna"] [data-environment-bg="fauna"]{opacity:1}
.project-map:before{content:"";position:absolute;z-index:1;inset:0;background:rgba(1,5,4,.12);pointer-events:none}
.project-map:after{content:"";position:absolute;z-index:3;inset:0;pointer-events:none;background:linear-gradient(180deg,#020403 0%,rgba(2,4,3,.9) 3.5%,rgba(2,4,3,.28) 11%,transparent 19%,transparent 80%,rgba(2,4,3,.3) 89%,rgba(2,4,3,.9) 96.5%,#020403 100%)}
.project-map__areas{position:absolute;z-index:2;inset:0;width:100%;height:100%;scale:.92;pointer-events:none}
.project-map[data-map-state="environment"] .project-map__areas{opacity:0}
.project-map__area{fill:rgba(255,255,255,.045);stroke:#fff;stroke-width:1.05;vector-effect:non-scaling-stroke;opacity:.2;pointer-events:all;cursor:none;filter:drop-shadow(0 0 2px rgba(255,255,255,.28));transition:opacity .7s ease,fill .55s ease,filter .55s ease,stroke-width .55s ease}
.project-map__area:hover,.project-map__area:focus{fill:rgba(255,255,255,.075);filter:drop-shadow(0 0 3px rgba(255,255,255,.62)) drop-shadow(0 0 9px rgba(210,235,255,.18));outline:none}
.project-map[data-map-state="project"] .project-map__area{opacity:.92}
.project-map[data-map-state="stage1"] .project-map__area--stage1,.project-map[data-map-state="stage2"] .project-map__area--stage2{opacity:1;fill:rgba(255,255,255,.06);stroke-width:1.2;filter:drop-shadow(0 0 3px rgba(255,255,255,.7)) drop-shadow(0 0 10px rgba(210,235,255,.2))}
.project-map[data-map-state="stage1"] .project-map__area--stage2,.project-map[data-map-state="stage2"] .project-map__area--stage1{opacity:.2}
.project-map__nav{position:absolute;z-index:4;right:calc(var(--map-side-space) + clamp(2.5rem,4vw,5rem));top:39%;display:flex;flex-direction:column;align-items:flex-end;gap:2.1rem;width:min(330px,32vw);text-align:right}
.project-map__nav>button{border:0;padding:0;background:none;color:rgba(255,255,255,.58);font:300 clamp(1.4rem,1.8vw,2rem)/1 Manrope,sans-serif;letter-spacing:-.045em;text-transform:uppercase;cursor:none;transition:color .3s ease,text-shadow .3s ease}
.project-map__nav>button:hover,.project-map__nav>button:focus,.project-map__nav>button.is-active{color:#fff;text-shadow:0 0 14px rgba(255,255,255,.2);outline:none}
.project-map__stages{display:flex;justify-content:flex-end;gap:1.8rem;max-height:0;margin-top:-1.7rem;opacity:0;overflow:hidden;pointer-events:none;transition:max-height .45s ease,opacity .35s ease}
.project-map[data-map-state="project"] .project-map__stages,.project-map[data-map-state="stage1"] .project-map__stages,.project-map[data-map-state="stage2"] .project-map__stages{max-height:2rem;opacity:1;pointer-events:auto}
.project-map__stages button{border:0;padding:.2rem 0;background:none;color:rgba(255,255,255,.75);font:400 .83rem/1 "Century Gothic","Avenir Next",sans-serif;text-transform:uppercase;cursor:none}
.project-map__stages button:hover,.project-map__stages button:focus,.project-map__stages button.is-active{color:#fff;font-weight:700;outline:none}
.project-map__details{position:absolute;z-index:4;left:50%;top:45%;display:flex;flex-direction:column;align-items:center;width:min(310px,30vw);translate:-50% -50%;text-align:center;opacity:0;pointer-events:none;transition:opacity .45s ease,translate .6s ease}
.project-map[data-map-state="stage1"] .project-map__details,.project-map[data-map-state="stage2"] .project-map__details{opacity:1;pointer-events:auto;translate:-50% -54%}
.project-map__details strong{font-size:.9rem;letter-spacing:.04em}.project-map__details p{margin:1rem 0 2.4rem;font-size:.9rem;letter-spacing:.035em;text-transform:uppercase}
.project-map__availability-alert{margin:-1.65rem 0 1.5rem;color:#ff4d45;font:500 .76rem/1.2 "Century Gothic","Avenir Next",sans-serif;font-style:normal;letter-spacing:.11em;text-transform:uppercase;text-shadow:0 0 16px rgba(255,44,35,.42);animation:availability-alert 1.35s ease-in-out infinite}
.project-map__availability-alert[hidden]{display:none}
.project-map__details button{width:194px;height:23px;margin:.42rem 0 0;border:0;background:#fff;color:#111;font:700 .72rem/1 "Century Gothic","Avenir Next",sans-serif;text-transform:uppercase;cursor:none;transition:opacity .25s ease,background .25s ease}
.project-map__details button:hover{background:#e9e9e5}.project-map__details button:disabled{opacity:.22;cursor:not-allowed}
.project-map__environment-copy{position:absolute;z-index:4;left:50%;top:50%;width:min(650px,42vw);translate:-50% -50%;color:#fff;text-align:left;opacity:0;pointer-events:none;transition:opacity .7s ease,translate .8s cubic-bezier(.22,.7,.2,1)}
.project-map[data-map-state="environment"] .project-map__environment-copy{opacity:1;translate:-50% -54%}
.project-map__environment-copy h3{margin:0 0 1.15rem;color:#fff;font:600 clamp(.78rem,.9vw,1rem)/1.2 Manrope,sans-serif;letter-spacing:.13em;text-transform:uppercase;text-shadow:0 2px 20px rgba(0,0,0,.55)}
.project-map__environment-copy p{margin:0;color:rgba(255,255,255,.94);font:500 clamp(.9rem,1vw,1.15rem)/1.48 Manrope,sans-serif;letter-spacing:-.018em;white-space:pre-line;text-wrap:pretty;text-shadow:0 2px 20px rgba(0,0,0,.55)}
.project-map__continue{position:absolute;z-index:4;left:50%;bottom:2rem;display:flex;flex-direction:column;align-items:center;gap:.65rem;translate:-50% 0;color:rgba(255,255,255,.82);font-size:.68rem;letter-spacing:.035em;text-decoration:none;text-transform:uppercase;cursor:none}
.project-map__continue i{width:1px;height:54px;background:rgba(255,255,255,.86)}
.project-map__coordinates{position:absolute;z-index:4;right:calc(var(--map-side-space) + clamp(2.5rem,4vw,5rem));bottom:2rem;text-align:right;color:rgba(255,255,255,.92);font-size:.58rem;line-height:1.28;text-transform:uppercase}.project-map__coordinates strong{display:block;margin-bottom:.65rem;font-size:.63rem}
.radar-cursor{position:fixed;z-index:99999;left:0;top:0;width:26px;height:26px;margin:-13px 0 0 -13px;border:1px solid rgba(255,255,255,.78);border-radius:50%;opacity:0;pointer-events:none;mix-blend-mode:difference;transition:opacity .2s ease,width .28s ease,height .28s ease,margin .28s ease,border-color .28s ease,background .28s ease;will-change:transform}.radar-cursor:before,.radar-cursor:after{content:"";position:absolute;left:50%;top:50%;background:rgba(255,255,255,.88);translate:-50% -50%}.radar-cursor:before{width:1px;height:7px}.radar-cursor:after{width:7px;height:1px}.radar-cursor i{display:none}.radar-cursor.is-visible{opacity:1}.radar-cursor.is-action{width:34px;height:34px;margin:-17px 0 0 -17px;border-color:#fff;background:rgba(255,255,255,.07)}
@media(pointer:fine){html.custom-cursor-active,html.custom-cursor-active body,html.custom-cursor-active body *{cursor:none!important}}
/* El cursor del sistema permanece siempre disponible, incluso si un script falla. */
@media(pointer:fine){.radar-cursor{display:none!important}a,button,[role="button"],select{cursor:pointer!important}input,textarea{cursor:text!important}}
.site-nav{gap:clamp(1.15rem,2vw,2.2rem);font-size:.68rem;letter-spacing:.17em;white-space:nowrap}
.project-map__nav>button{line-height:1.12;letter-spacing:.035em}
.landing-cover__action{pointer-events:none}
body.intro-skipped .topbar{visibility:visible;opacity:1}
.landing-cover__availability{bottom:clamp(2.5rem,5vh,4rem)}
@media(min-width:801px){body.intro-skipped .site-nav{display:flex;visibility:visible;opacity:1}}
.side-index{position:fixed;z-index:19;right:clamp(2.5rem,4vw,5rem);top:50%;display:flex;flex-direction:column;align-items:flex-end;gap:.55rem;color:#fff;text-align:right;translate:0 -50%;opacity:0;pointer-events:none;transition:opacity .8s ease}
body.intro-skipped .side-index{opacity:1;pointer-events:auto}
.side-index a{display:block;width:min(280px,29vw);padding:.55rem 1rem;color:#fff;background:transparent;font:300 clamp(.82rem,1vw,1.05rem)/1.2 Manrope,sans-serif;letter-spacing:.075em;text-align:right;text-transform:uppercase;text-shadow:0 1px 8px rgba(0,0,0,.7);transition:color .35s ease,background .35s ease,translate .3s ease}
.side-index a:hover,.side-index a:focus{translate:-.25rem 0;outline:none}.side-index a.is-active{color:#111;background:rgba(255,255,255,.96);text-shadow:none}
.side-index__map-group{display:flex;flex-direction:column;align-items:flex-end;gap:0}
.side-index__map-submenu{display:flex;flex-direction:column;align-items:flex-end;gap:.8rem;max-height:0;margin-top:0;padding-right:1rem;overflow:hidden;opacity:0;pointer-events:none;transition:max-height .7s cubic-bezier(.22,.7,.2,1),margin .7s ease,opacity .45s ease}
body.map-index-active .side-index__map-submenu{max-height:13rem;margin-top:1rem;opacity:1;pointer-events:auto}
.side-index__map-submenu>button{border:0;padding:0;background:none;color:rgba(255,255,255,.7);font:300 clamp(.75rem,.9vw,.95rem)/1.15 Manrope,sans-serif;letter-spacing:.075em;text-transform:uppercase;text-align:right;transition:color .3s ease,translate .3s ease}
.side-index__map-submenu>button:hover,.side-index__map-submenu>button:focus,.side-index__map-submenu>button.is-active{color:#fff;translate:-.3rem 0;outline:none}
.side-index__map-submenu .project-map__stages{justify-content:flex-end;gap:1.2rem;margin:0;max-height:0}
.side-index[data-map-state="project"] .project-map__stages,.side-index[data-map-state="stage1"] .project-map__stages,.side-index[data-map-state="stage2"] .project-map__stages{max-height:2rem;opacity:1;pointer-events:auto}
.map-section:after{background:linear-gradient(180deg,#020403 0%,rgba(2,4,3,.72) 38%,transparent 100%)}
.map-scroll-sequence{position:absolute;z-index:1;inset:0;pointer-events:none}.map-scroll-step{display:block;height:100svh;scroll-snap-align:start;scroll-snap-stop:always}
.map-section.is-connectivity-visible>.map-explorer{position:fixed;z-index:8;inset:0;width:100%;height:100svh}
@media(max-width:800px){.side-index{right:1rem;top:50%;bottom:auto;gap:.4rem}.side-index a{width:min(68vw,240px);font-size:.58rem;letter-spacing:.055em}}
.side-index__group{display:flex;flex-direction:column;align-items:flex-end;width:min(280px,29vw)}
.side-index .side-index__main{display:block;width:min(280px,29vw);border:0;padding:.55rem 1rem;color:#fff;background:transparent;font:300 clamp(.82rem,1vw,1.05rem)/1.2 Manrope,sans-serif;letter-spacing:.075em;text-align:right;text-transform:uppercase;text-shadow:0 1px 8px rgba(0,0,0,.7);transition:color .35s ease,background .35s ease,translate .3s ease}
.side-index .side-index__main:hover,.side-index .side-index__main:focus{translate:-.25rem 0;outline:none}.side-index .side-index__main.is-active{color:#111;background:rgba(255,255,255,.96);text-shadow:none}
.side-index__submenu{display:flex;flex-direction:column;align-items:flex-end;gap:.48rem;max-height:0;padding:0 1rem;overflow:hidden;opacity:0;pointer-events:none;transition:max-height .55s cubic-bezier(.22,.7,.2,1),padding .55s ease,opacity .35s ease}
.side-index__group.is-open .side-index__submenu{max-height:14rem;padding-top:.65rem;padding-bottom:.45rem;opacity:1;pointer-events:auto}
.side-index .side-index__submenu button,.side-index .side-index__submenu a{width:auto;border:0;padding:0;background:none;color:rgba(255,255,255,.7);font:300 clamp(.65rem,.76vw,.78rem)/1.2 Manrope,sans-serif;letter-spacing:.075em;text-align:right;text-transform:uppercase;text-shadow:0 1px 7px rgba(0,0,0,.75);transition:color .25s ease,translate .25s ease}
.side-index .side-index__submenu button:hover,.side-index .side-index__submenu button:focus,.side-index .side-index__submenu button.is-active,.side-index .side-index__submenu a:hover,.side-index .side-index__submenu a:focus{color:#fff;translate:-.22rem 0;outline:none}.side-index__submenu small{font:inherit;opacity:.7}
.side-index[data-map-state="environment"] [data-project-stage],.side-index[data-map-state="environment"] [data-project-stage]:hover,.side-index[data-map-state="environment"] [data-project-stage]:focus{color:rgba(255,255,255,.7);font-weight:300;translate:0}
@media(max-width:800px){.side-index__group,.side-index .side-index__main{width:min(68vw,240px)}.side-index .side-index__main{font-size:.58rem}.side-index .side-index__submenu button,.side-index .side-index__submenu a{font-size:.52rem}}
@media(max-width:800px){.project-map__environment-copy{left:38%;width:68vw}.project-map__environment-copy p{font-size:clamp(.9rem,4vw,1.25rem)}}

/* Voz editorial común para todos los textos explicativos */
.landing-cover__body p,.project-map__environment-copy p,.map-place-story p,.architecture__intro>p,.sticky-copy>p,.steps p,.summary-grid p,.visit__content>p{font-family:Manrope,sans-serif;font-weight:500;letter-spacing:-.018em}
.landing-cover__body p{color:rgba(255,255,255,.94);line-height:1.48}
.project-map__environment-copy p{font-weight:500;line-height:1.48;letter-spacing:-.018em}
.map-place-story p{font-size:clamp(.78rem,.9vw,.95rem);line-height:1.55}
.architecture__intro>p,.sticky-copy>p,.steps p,.summary-grid p{line-height:1.5}
@media(max-width:800px){.project-map__base{object-position:center}.project-map__nav{right:1rem;top:24%;width:55vw;gap:1.25rem}.project-map__nav>button{font-size:clamp(.9rem,4.6vw,1.25rem)}.project-map__stages{gap:1rem;margin-top:-.9rem}.project-map__stages button{font-size:.65rem}.project-map__details{left:40%;top:58%;width:72vw}.project-map__details strong,.project-map__details p{font-size:.72rem}.project-map__coordinates{right:1rem;bottom:1rem;font-size:.45rem}.project-map__continue{bottom:1rem;font-size:.54rem}.project-map__continue i{height:38px}.radar-cursor{display:none}}

/* Sistema tipográfico unificado */
:root{--display-title-size:clamp(3.8rem,7vw,7.6rem);--display-title-line:.82;--display-title-spacing:-.07em}
body,body *{font-family:Manrope,sans-serif!important}
.landing-cover__heading h2,.model-cover__heading h2,.model-step__content h2,.project-map__environment-copy h3,.map-place-story h3,.project-map__details strong{font-size:var(--display-title-size);font-weight:300;line-height:var(--display-title-line);letter-spacing:var(--display-title-spacing);text-transform:uppercase}
.project-map__environment-copy,.map-place-story{width:min(760px,48vw)}
.project-map__environment-copy h3,.map-place-story h3{margin-bottom:clamp(1.5rem,3vh,2.5rem)}

/* Las reseñas de lugares ocupan una franja inferior estable para no tapar rutas ni hitos. */
.map-place-story{
  left:42%!important;
  top:auto!important;
  bottom:clamp(2.5rem,4.5vh,4rem)!important;
  width:min(680px,38vw);
  translate:-50% 12px;
}
.map-place-story.is-visible{translate:-50% 0}
.map-place-story h3{font-size:clamp(2rem,3.5vw,3.8rem);line-height:.9;letter-spacing:-.055em}
.map-place-story p{font-size:clamp(.72rem,.82vw,.9rem);line-height:1.5}
.project-map__details strong{display:block;white-space:nowrap}
@media(max-width:800px){:root{--display-title-size:clamp(3rem,16vw,4.7rem)}.project-map__environment-copy,.map-place-story{width:min(82vw,520px)}.map-place-story{left:50%!important;bottom:4.25rem!important}.map-place-story h3{font-size:clamp(1.8rem,9vw,2.8rem)}.map-place-story p{font-size:.72rem}.project-map__details strong{font-size:clamp(2.6rem,13vw,4.2rem);white-space:normal}}

/* MODELA TU PROYECTO */
.model-step{position:relative;isolation:isolate;overflow:hidden;color:#fff}
.model-step:before{content:"";position:absolute;z-index:-2;inset:0;background:url("../galeria/MODELA%20TU%20PROYECTO/00_BASE.png") center/cover no-repeat;filter:brightness(.48) saturate(.85) contrast(1.08);transform:scale(1.015)}
.model-step:after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.58),transparent 22% 72%,rgba(0,0,0,.68)),linear-gradient(90deg,rgba(0,0,0,.42),transparent 62%)}
.model-options,.model-types{display:grid;width:min(38rem,52vw);margin-top:clamp(2rem,5vh,4rem)}
.model-options button,.model-types button{display:grid;align-items:center;width:100%;padding:1rem 0;border:0;border-top:1px solid rgba(255,255,255,.35);background:none;color:#fff;text-align:left;text-transform:uppercase;grid-template-columns:3rem 1fr;font-size:clamp(1rem,1.6vw,1.5rem);font-weight:400;letter-spacing:.04em}
.model-options button:last-child,.model-types button:last-child{border-bottom:1px solid rgba(255,255,255,.35)}
.model-options small{display:block;margin-top:.35rem;font-size:.58rem;font-weight:400;letter-spacing:.13em}
.model-step__note{max-width:34rem;margin-top:1.6rem!important;color:rgba(255,255,255,.72);font-size:.72rem!important;letter-spacing:.04em}
.model-types button{grid-template-columns:1fr auto}
.model-types span{font-size:.9rem}
@media(max-width:800px){.model-options,.model-types{width:82vw}.model-options button,.model-types button{font-size:.9rem}}

/* Configurador de adicionales sobre la galería de la parcela seleccionada. */
.model-step--options{min-height:100svh;padding:clamp(6rem,10vh,8rem) var(--pad) clamp(7rem,14vh,10rem);align-content:center}
.model-step--options:before{display:none}.model-step--options:after{z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.72),rgba(0,0,0,.3) 35% 65%,rgba(0,0,0,.78))}
.addons-gallery{position:absolute;z-index:-2;inset:0;background:#07100e;overflow:hidden}.addons-gallery img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.58) saturate(.88);opacity:0;transform:scale(1.02);transition:opacity 2.2s ease,transform 7s ease}.addons-gallery img.is-active{opacity:1;transform:scale(1.055)}
.addons-configurator{position:relative;z-index:2;width:min(930px,76vw);margin:auto;text-align:center}.addons-configurator h2{margin:.5rem 0 clamp(1.5rem,4vh,3rem);font:300 clamp(2rem,4.2vw,4.5rem)/.92 Manrope,sans-serif;letter-spacing:-.055em;text-transform:uppercase}
.addon-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem}.addon-card{display:flex;min-height:250px;padding:1.15rem;flex-direction:column;justify-content:space-between;border:1px solid rgba(255,255,255,.42);background:rgba(4,10,9,.62);backdrop-filter:blur(10px);text-align:left;transition:border-color .3s ease,background .3s ease}.addon-card.is-selected{border-color:#78d08b;background:rgba(28,75,41,.7)}.addon-card h3{margin:0 0 .6rem;font:500 clamp(.85rem,1vw,1rem)/1.15 Manrope,sans-serif;letter-spacing:.04em;text-transform:uppercase}.addon-card strong{display:block;font:500 clamp(1.15rem,1.7vw,1.55rem)/1 Manrope,sans-serif}.addon-card small{display:block;margin-top:.8rem;color:rgba(255,255,255,.67);font:.57rem/1.4 Manrope,sans-serif;letter-spacing:.035em}.addon-card>button{align-self:flex-start;border:0;border-bottom:1px solid rgba(255,255,255,.7);padding:.35rem 0;background:none;color:#fff;font:600 .56rem/1 Manrope,sans-serif;letter-spacing:.09em;text-transform:uppercase;cursor:pointer}
.addon-switch{display:flex;align-items:center;gap:.55rem;font:600 .62rem/1 Manrope,sans-serif;letter-spacing:.1em;text-transform:uppercase;cursor:pointer}.addon-switch input{position:absolute;opacity:0;pointer-events:none}.addon-switch span{position:relative;width:2rem;height:1.05rem;border:1px solid rgba(255,255,255,.72);border-radius:1rem;background:rgba(0,0,0,.25)}.addon-switch span:after{content:"";position:absolute;left:.16rem;top:.15rem;width:.65rem;height:.65rem;border-radius:50%;background:#fff;transition:translate .25s ease,background .25s ease}.addon-switch input:checked+span:after{translate:.98rem 0;background:#78d08b}.addon-switch input:disabled+span{opacity:.35}.addon-switch:has(input:disabled){opacity:.45;cursor:not-allowed}
.addons-summary{position:absolute;z-index:4;left:50%;bottom:clamp(1rem,2.5vh,2rem);display:grid;width:min(700px,calc(100vw - 2rem));grid-template-columns:1.2fr .65fr .8fr auto;align-items:center;gap:1rem;padding:.85rem 1rem;border:1px solid rgba(255,255,255,.38);background:rgba(4,10,9,.82);backdrop-filter:blur(12px);translate:-50% 0}.addons-summary div{display:flex;flex-direction:column;gap:.25rem}.addons-summary small{color:rgba(255,255,255,.58);font:.54rem/1 Manrope,sans-serif;letter-spacing:.11em;text-transform:uppercase}.addons-summary strong{font:500 .76rem/1.2 Manrope,sans-serif}.addons-summary a{padding:.65rem .75rem;background:#fff;color:#111;font:600 .62rem/1 Manrope,sans-serif;text-transform:uppercase;white-space:nowrap}
@media(max-width:800px){.model-step--options{min-height:115svh;padding-left:1rem;padding-right:1rem}.addons-configurator{width:100%}.addon-cards{grid-template-columns:1fr;gap:.45rem}.addon-card{min-height:125px;padding:.8rem}.addons-summary{grid-template-columns:1fr 1fr 1fr}.addons-summary a{grid-column:1/-1;text-align:center}.addon-card small{font-size:.5rem}}

/* El índice derecho hereda la estética editorial de las decisiones originales. */
.side-index__group[data-index-group="proyecto"] .side-index__submenu{width:min(280px,29vw);gap:0;padding-left:1rem;padding-right:1rem}
.side-index__group[data-index-group="proyecto"] .side-index__submenu a{width:100%;padding:.72rem 0;border-top:1px solid rgba(255,255,255,.28);font-weight:400;text-align:right}
.side-index__group[data-index-group="proyecto"] .side-index__submenu a.is-active{padding-right:0;color:#fff;background:none;font-weight:700;text-shadow:0 1px 7px rgba(0,0,0,.75);translate:0;opacity:1}
.side-index__group[data-index-group="proyecto"] .side-index__submenu a:last-child{border-bottom:1px solid rgba(255,255,255,.28)}

/* Selector vectorial de las ocho parcelas. La imagen anotada se usa sólo como referencia. */
.model-step--parcels{position:relative;width:100%;height:100svh;min-height:650px;padding:0;background:#07100e;isolation:isolate;overflow:hidden}
.model-step--parcels:before,.model-step--parcels:after{display:none}
.parcel-map__base,.parcel-map__areas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.parcel-map__base{z-index:0;filter:brightness(.52) saturate(.9) contrast(1.08);-webkit-mask-image:linear-gradient(to bottom,transparent 0%,#000 10%,#000 90%,transparent 100%),linear-gradient(to right,transparent 0%,#000 5%,#000 95%,transparent 100%);-webkit-mask-composite:source-in;mask-image:linear-gradient(to bottom,transparent 0%,#000 10%,#000 90%,transparent 100%),linear-gradient(to right,transparent 0%,#000 5%,#000 95%,transparent 100%);mask-composite:intersect}
.parcel-map__areas{z-index:2;pointer-events:none}
.parcel-map__labels{text-anchor:middle;pointer-events:none;font-family:Manrope,sans-serif}
.parcel-map__labels .is-sold{fill:rgba(255,255,255,.3);font-size:10px;font-weight:500}
.parcel-map__labels .is-sold tspan+ tspan{font-size:5px;letter-spacing:.08em}
.parcel-map__labels .is-available{visibility:hidden}
.parcel-map__available-labels{fill:#fff;font-family:Manrope,sans-serif;font-size:11px;font-weight:700;text-anchor:middle;pointer-events:none;filter:drop-shadow(0 1px 3px #000) drop-shadow(0 0 4px rgba(0,0,0,.8))}
.parcel-map__areas polygon{fill:rgba(255,255,255,.045);stroke:#fff;stroke-width:1.05;vector-effect:non-scaling-stroke;opacity:.2;pointer-events:all;cursor:none;filter:drop-shadow(0 0 2px rgba(255,255,255,.28));transition:opacity .7s ease,fill .55s ease,filter .55s ease,stroke-width .55s ease}
.parcel-map__areas polygon:hover,.parcel-map__areas polygon:focus,.parcel-map__areas polygon.is-active{fill:rgba(255,255,255,.06);stroke:#fff;stroke-width:1.2;opacity:1;filter:drop-shadow(0 0 3px rgba(255,255,255,.7)) drop-shadow(0 0 10px rgba(210,235,255,.2));outline:none}
.parcel-map__areas.has-locked-selection polygon:hover:not(.is-selected),.parcel-map__areas.has-locked-selection polygon:focus:not(.is-selected){fill:rgba(255,255,255,.045);stroke:#fff;stroke-width:1.05;opacity:.16;filter:drop-shadow(0 0 2px rgba(255,255,255,.28))}
.parcel-map__areas polygon.is-selected{fill:rgba(73,148,91,.38);stroke:#78d08b;stroke-width:1.5;opacity:1;filter:drop-shadow(0 0 4px rgba(92,210,117,.9)) drop-shadow(0 0 14px rgba(48,150,72,.45))}
.parcel-map__areas.has-selection polygon:not(.is-active):not(.is-selected){opacity:.16}
.parcel-map__intro{position:absolute;z-index:3;left:var(--pad);top:clamp(7rem,14vh,10rem);color:#fff;pointer-events:none}
.parcel-map__intro p{margin-bottom:1rem;font:.66rem/1.2 Manrope,sans-serif;letter-spacing:.18em;text-transform:uppercase}
.parcel-map__intro h2{font:300 clamp(2.8rem,5.2vw,6rem)/.86 Manrope,sans-serif;letter-spacing:-.065em;text-transform:uppercase}
.project-cart{position:absolute;z-index:6;left:50%;bottom:clamp(1.2rem,3vh,2.5rem);display:grid;width:min(650px,calc(100vw - 2rem));grid-template-columns:1.35fr .6fr 1.1fr auto;align-items:center;gap:1rem;padding:.85rem 1rem;border:1px solid rgba(255,255,255,.34);background:rgba(4,10,9,.76);backdrop-filter:blur(12px);opacity:0;translate:-50% 14px;pointer-events:none;transition:opacity .4s ease,translate .5s ease}
.project-cart.is-visible{opacity:1;translate:-50% 0;pointer-events:auto}
.project-cart div{display:flex;flex-direction:column;gap:.25rem}.project-cart small{color:rgba(255,255,255,.6);font:.56rem/1 Manrope,sans-serif;letter-spacing:.12em;text-transform:uppercase}.project-cart strong{font:500 .82rem/1.1 Manrope,sans-serif}.project-cart a{padding:.65rem .75rem;background:#fff;color:#111;font:600 .66rem/1 Manrope,sans-serif;text-decoration:none;text-transform:uppercase;white-space:nowrap}
.project-cart__selection{display:flex!important;flex-direction:column;gap:.3rem!important}.project-cart__selection-row{display:flex!important;flex-direction:row!important;align-items:center;justify-content:flex-start;gap:.45rem!important}.project-cart__remove{display:grid;width:1.2rem;height:1.2rem;border:0;padding:0;place-items:center;background:none;color:#ff4f47;font:600 1.15rem/1 Manrope,sans-serif;cursor:pointer}.project-cart__remove:hover,.project-cart__remove:focus-visible{color:#ff817b;outline:0}.project-cart__discount{max-width:12rem;color:#78d08b!important;line-height:1.25!important}.project-cart__discount[hidden]{display:none}
.project-cart__actions{display:grid!important;grid-template-columns:1fr;gap:.32rem;opacity:.18;pointer-events:none;transition:opacity .35s ease}.project-cart__actions.is-visible{opacity:1;pointer-events:auto}.project-cart__actions button{min-width:9.4rem;padding:.52rem .7rem;border:1px solid rgba(255,255,255,.82);background:rgba(255,255,255,.96);color:#111;font:600 .54rem/1 Manrope,sans-serif;letter-spacing:.055em;text-align:center;text-transform:uppercase;cursor:none;transition:background-color .25s ease,color .25s ease,border-color .25s ease}.project-cart__actions button:hover,.project-cart__actions button:focus-visible{border-color:#fff;background:transparent;color:#fff;outline:none}
@media(max-width:800px){.side-index__group[data-index-group="proyecto"] .side-index__submenu{width:min(68vw,240px)}.model-step--parcels{min-height:100svh}.parcel-map__base,.parcel-map__areas{object-fit:cover}.parcel-map__intro{top:5.5rem}.parcel-map__intro h2{font-size:clamp(2.3rem,10vw,3.5rem)}}

/* En la portada de Modela tu proyecto, el único llamado a la acción ocupa el centro. */
.model-cover__start{position:absolute;left:calc(50vw - var(--pad));top:50%;margin:0;border-color:#fff;background:#fff;color:#111;translate:-50% -50%}

/* Los cuatro capítulos de configuración comparten escala y permanecen en una línea. */
.model-cover__heading h2,
.parcel-map__intro h2,
.model-step__content h2{
  font:300 clamp(2.8rem,5.2vw,6rem)/.88 Manrope,sans-serif;
  letter-spacing:-.065em;
  text-transform:uppercase;
  white-space:nowrap;
}
.model-cover__heading h2{white-space:normal}
@media(max-width:800px){
  .model-cover__heading h2,
  .parcel-map__intro h2,
  .model-step__content h2{font-size:clamp(1.65rem,7.8vw,3.15rem);letter-spacing:-.05em}
}

/* Homologación final de escala, tarjetas y capítulos claros. */
@media(min-width:801px){
  .model-step--options,.model-step--typologies{padding-left:var(--chapter-title-left);padding-right:clamp(23rem,24vw,29rem)}
  .addons-configurator,.house-configurator{width:100%;max-width:none;margin:0}
  .addon-cards{grid-template-columns:repeat(5,minmax(0,1fr));gap:.7rem}
  .addon-card{display:flex;min-height:clamp(330px,52vh,520px);padding:1.25rem;flex-direction:column;align-items:stretch;justify-content:space-between}
  .addon-card>button{align-self:flex-start}.addon-card h3{font-size:clamp(.9rem,1.05vw,1.1rem)}.addon-card small{font-size:.72rem;line-height:1.5}
  .house-cards{grid-template-columns:repeat(3,minmax(0,1fr));height:min(60vh,610px);gap:1rem}
  .house-choice{display:grid;height:100%;grid-template-rows:minmax(0,58%) minmax(0,42%)}
  .house-choice>img,.house-choice__empty{width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
  .house-choice__body{min-height:0;height:100%;padding:1.25rem}.house-choice__body p,.house-configurator__note{font-size:.78rem;line-height:1.5}
  .visit{padding:clamp(7rem,12vw,12rem) var(--pad) 1.2rem}
  .visit__contact{width:min(900px,72vw);margin:0}
  .visit__contact h2{margin:0 0 3rem;font-size:var(--chapter-title-size,clamp(2.6rem,4.2vw,4.5rem))}
  .visit__layout{grid-template-columns:minmax(250px,.78fr) minmax(420px,1.22fr);gap:clamp(2rem,4vw,4rem)}
}

@media(max-width:800px){
  /* El SVG y su fotografía usan exactamente el mismo ajuste geométrico. */
  .project-map>.project-map__base{object-fit:contain!important}
  .project-map>.project-map__areas{object-fit:contain!important}

  .model-step--options,.model-step--typologies{display:flex;height:100svh;min-height:100svh;padding:4.8rem .7rem 6.8rem;flex-direction:column;justify-content:flex-start;overflow:hidden}
  .addons-configurator,.house-configurator{display:flex;width:100%;height:100%;padding-right:2.5rem!important;flex-direction:column}
  .addons-configurator h2,.house-configurator h2{margin:0 0 .55rem;font-size:clamp(1.15rem,5vw,1.55rem)}
  .house-configurator__note{margin-bottom:.55rem;font-size:.67rem;line-height:1.4}
  .addon-cards{display:grid;min-height:0;flex:1;grid-template-rows:repeat(5,minmax(0,1fr));gap:.35rem}
  .addon-card{height:auto;min-height:0;padding:.55rem .65rem;grid-template-columns:minmax(0,1fr) auto}
  .addon-card h3{font-size:.72rem}.addon-card strong{font-size:1rem}.addon-card small{font-size:.67rem;line-height:1.28}.addon-card>button{font-size:.62rem}
  .house-cards{display:grid;min-height:0;flex:1;grid-template-columns:1fr;grid-template-rows:repeat(3,minmax(0,1fr));gap:.4rem}
  .house-choice{display:grid;width:100%;height:auto;min-height:0;grid-template-columns:38% 62%}
  .house-choice>img,.house-choice__empty{width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
  .house-choice__body{height:100%;min-height:0;padding:.7rem;gap:.45rem}.house-choice h3{font-size:.78rem}.house-choice strong{font-size:.67rem}.house-choice__actions button{font-size:.62rem}.house-choice--none .house-choice__body p{font-size:.67rem;line-height:1.35}

  .visit{display:flex;height:100svh;min-height:100svh;padding:5.2rem 1rem .6rem;overflow:hidden}
  .visit__contact{width:100%;margin:0}.visit__contact h2{margin:0 0 1.4rem;font-size:clamp(1.15rem,5vw,1.55rem);line-height:.92;letter-spacing:-.055em}
  .visit__layout{display:grid;min-height:0;grid-template-columns:1fr;gap:.75rem}
  .visit__summary,.visit__contact form{padding-top:.65rem}.visit__summary h3,.visit__contact legend{font-size:.67rem}.visit__summary pre{font-size:.67rem;line-height:1.45}
  .visit__contact form{display:grid;grid-template-columns:1fr 1fr;gap:.45rem .7rem}
  .visit__contact fieldset{gap:.3rem}.visit__contact label{grid-template-columns:5.8rem minmax(0,1fr);font-size:.67rem}
  .visit__contact input{height:2.1rem;font-size:.67rem}.visit__message-label{grid-column:1/-1}.visit__message-label textarea{height:3.2rem;font-size:.67rem}
  .visit__contact form>button{grid-column:1/-1;padding:.65rem;font-size:.67rem}
  .visit footer{font-size:.58rem}

  .map-place-story>p:last-child,.project-map__environment-copy p,.landing-cover__body p{font-size:.67rem!important;line-height:1.4!important}
}

/* Barra de selección compacta y contactos despejados en teléfono. */
@media(max-width:800px){
  .model-step--parcels .project-cart{
    left:50%;bottom:.45rem;width:calc(100% - .8rem);
    grid-template-columns:minmax(6.7rem,1fr) 3.4rem 5.3rem 4.5rem;
    gap:.4rem;padding:.52rem .58rem;translate:-50% 0;
  }
  .model-step--parcels .project-cart>div{min-width:0}
  .model-step--parcels .project-cart small{font-size:.43rem}
  .model-step--parcels .project-cart strong{overflow:hidden;font-size:.62rem;text-overflow:ellipsis;white-space:nowrap}
  .model-step--parcels .project-cart__selection-row{gap:.25rem!important}
  .model-step--parcels .project-cart__remove{width:.9rem;height:.9rem;font-size:.9rem}
  .model-step--parcels .project-cart__actions{display:grid;grid-column:auto;grid-template-columns:1fr!important;gap:.2rem!important}
  .model-step--parcels .project-cart__actions button{min-width:0;padding:.34rem .2rem;font-size:.42rem;letter-spacing:.025em;white-space:nowrap}
  .model-step--parcels .project-cart>a{grid-column:auto;padding:.55rem .25rem;font-size:.48rem;text-align:center;white-space:normal}
  body.parcel-cart-active .mobile-contact-cluster,
  body:has(#elige-parcela:target) .mobile-contact-cluster{bottom:5.4rem}
}
@media(max-width:800px){.project-cart{left:50%;bottom:.7rem;width:calc(100% - 1.4rem);grid-template-columns:1.35fr .55fr auto;padding:.65rem}.project-cart__actions{display:none}.project-cart strong{font-size:.7rem}.project-cart a{padding:.55rem;font-size:.58rem}}

/* Un solo lenguaje para todos los submenús del índice lateral. */
.side-index__group .side-index__submenu{width:min(280px,29vw);gap:0;padding-left:1rem;padding-right:1rem}
.side-index .side-index__submenu button,
.side-index .side-index__submenu a{width:100%;padding:.72rem 0;border-top:1px solid rgba(255,255,255,.28);font-weight:400;text-align:right}
.side-index .side-index__submenu button:last-child,
.side-index .side-index__submenu a:last-child{border-bottom:1px solid rgba(255,255,255,.28)}

/* Las etapas son referencias secundarias: mantienen presencia sin competir con BIOTOPIA. */
.side-index__submenu [data-project-stage="stage1"],
.side-index__submenu [data-project-stage="stage2"]{font-size:clamp(.56rem,.64vw,.68rem)}
.project-map__details strong{font-size:clamp(1.35rem,2.2vw,2.15rem);letter-spacing:.055em}

/* Correo e Instagram continúan la navegación superior. */
.header-social{position:absolute;right:var(--pad);top:50%;display:flex;align-items:center;gap:.85rem;translate:0 -50%}
.site-nav{padding-right:4.2rem}
.header-social a{display:grid;width:.95rem;height:.95rem;place-items:center;color:#fff;opacity:.7;transition:opacity .3s ease,transform .3s ease}
.header-social a:hover,.header-social a:focus{opacity:1;transform:translateY(-2px);outline:none}
.header-social svg,.whatsapp-float svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}
.header-social .header-social__dot{fill:currentColor;stroke:none}
.mobile-contact-cluster,.mobile-section-title{display:none}

/* WhatsApp queda disponible como futuro acceso al asistente automático. */
.whatsapp-float{position:fixed;z-index:25;right:clamp(2.5rem,4vw,5rem);bottom:clamp(1.4rem,3vh,2.5rem);display:flex;align-items:center;gap:.65rem;padding:.65rem .9rem;border:1px solid rgba(255,255,255,.7);background:rgba(5,14,11,.7);color:#fff;backdrop-filter:blur(8px);font:500 .58rem/1 Manrope,sans-serif;letter-spacing:.12em;text-transform:uppercase;transition:background .3s ease,color .3s ease,transform .3s ease}
.whatsapp-float svg{width:1.15rem;height:1.15rem}
.whatsapp-float:hover,.whatsapp-float:focus{background:#fff;color:#111;transform:translateY(-3px);outline:none}
@media(max-width:800px){.side-index__group .side-index__submenu{width:min(68vw,240px)}.header-social{right:1rem}.site-nav{padding-right:3.3rem}.whatsapp-float{right:1rem;bottom:1rem;padding:.6rem}.whatsapp-float span{display:none}}

/* Los relatos de Biotopia replican la composición editorial de la portada. */
.project-map__environment-copy{
  left:clamp(1.25rem,3vw,3.5rem);
  top:clamp(6.5rem,11vh,7.5rem);
  bottom:clamp(2.5rem,5vh,4rem);
  display:grid;
  width:min(33vw,670px);
  grid-template-rows:auto 1fr;
  translate:0 1.2rem;
}
.project-map[data-map-state="environment"] .project-map__environment-copy{translate:0 0}
.project-map__environment-copy h3{align-self:start;margin:0}
.project-map__environment-copy p{align-self:center;width:100%;padding:.7rem .6rem;color:rgba(255,255,255,.94);font-size:clamp(.9rem,1vw,1.15rem);font-weight:500;line-height:1.48;letter-spacing:-.018em}
@media(max-width:800px){.project-map__environment-copy{left:1.25rem;top:5.5rem;bottom:3.5rem;width:min(68vw,390px)}.project-map__environment-copy h3{font-size:clamp(2.5rem,12vw,4.2rem)}.project-map__environment-copy p{align-self:end;padding:.6rem 0;font-size:.67rem;line-height:1.4}}
/* El índice completo debe caber incluso cuando Biotopia despliega sus siete relatos. */
.side-index__group.is-open .side-index__submenu{max-height:22rem}
@media(max-width:800px), (max-height:760px){
  .side-index{max-height:calc(100svh - 5rem);gap:.18rem;overflow-y:auto;scrollbar-width:none}
  .side-index::-webkit-scrollbar{display:none}
  .side-index .side-index__main,
  .side-index>a{padding:.38rem .75rem}
  .side-index__group.is-open .side-index__submenu{max-height:20rem;padding-top:.3rem;padding-bottom:.25rem}
  .side-index .side-index__submenu button,
  .side-index .side-index__submenu a{padding:.38rem 0;line-height:1.05}
}

/* El configurador deja libre la franja del índice lateral en escritorio. */
@media(min-width:801px){
  .model-step--options{padding-right:clamp(23rem,24vw,29rem)}
  .addons-configurator{width:min(720px,calc(100vw - 30rem));margin-left:auto;margin-right:auto}
  .addons-configurator h2{font-size:clamp(2.1rem,3.25vw,3.7rem);margin-bottom:clamp(1rem,2.3vh,1.8rem)}
  .addon-cards{grid-template-columns:1fr;gap:.55rem}
  .addon-card{display:grid;min-height:0;grid-template-columns:minmax(230px,1.5fr) minmax(115px,.7fr) auto;align-items:center;gap:1rem;padding:.85rem 1rem}
  .addon-card>div{min-width:0}
  .addon-card h3{margin-bottom:.35rem}
  .addon-card small{margin-top:.35rem}
  .addon-card>button{justify-self:start;align-self:center}
  .addon-switch{justify-self:end}
  .addons-summary{left:calc((100vw - clamp(23rem,24vw,29rem))/2)}
}

/* En teléfono el índice es un panel deliberado, nunca una capa permanente. */
@media(max-width:800px){
  .site-nav{display:none!important}
  .side-index{
    position:fixed;z-index:40;inset:62px 0 0 auto;top:62px;right:0;bottom:0;
    width:min(88vw,340px);max-height:none;padding:1.25rem 1rem 2rem;
    justify-content:center;align-items:flex-end;gap:.25rem;overflow-y:auto;
    background:rgba(3,10,8,.96);backdrop-filter:blur(14px);
    translate:105% 0;opacity:0;pointer-events:none;
    transition:translate .38s cubic-bezier(.22,.7,.2,1),opacity .3s ease;
  }
  body.mobile-index-open .side-index{translate:0 0;opacity:1;pointer-events:auto}
  body.mobile-index-open{overflow:hidden}
  body.mobile-index-open:after{content:"";position:fixed;z-index:18;inset:62px 0 0;background:rgba(0,0,0,.46);pointer-events:none}
  .side-index a,.side-index .side-index__main,.side-index__group,.side-index__group .side-index__submenu{width:100%;max-width:none}
  .side-index a,.side-index .side-index__main{font-size:.72rem;padding:.62rem .75rem}
  .side-index .side-index__submenu button,.side-index .side-index__submenu a{font-size:.62rem;padding:.52rem 0}

  .model-step--options{min-height:100svh;height:auto;padding:7rem 1rem 4.5rem}
  .addons-configurator{text-align:left}
  .addons-configurator>.eyebrow{display:none}
  .addons-configurator h2{margin:0 0 1.25rem;font-size:clamp(1.15rem,5vw,1.55rem);line-height:1;letter-spacing:.015em;text-align:left}
  .addon-cards{gap:.7rem}
  .addon-card{min-height:165px;padding:1rem}
  .addon-card h3{font-size:.82rem}
  .addon-card strong{font-size:1.2rem}
  .addon-card small{font-size:.55rem}
  .addons-summary{position:relative;left:auto;bottom:auto;width:100%;margin:1rem auto 0;grid-template-columns:1fr 1fr;translate:0 0}
  .addons-summary div:nth-child(3){grid-column:1/-1}

  .project-cart{grid-template-columns:1fr .55fr;padding:.72rem}
  .project-cart__actions{display:grid;grid-column:1/-1;grid-template-columns:1fr 1fr!important}
  .project-cart__actions button{min-width:0}
  .project-cart>a{grid-column:1/-1;text-align:center}

  .header-social,.whatsapp-float{display:none}
  .mobile-contact-cluster{position:fixed;z-index:35;right:.75rem;bottom:.75rem;display:flex;align-items:center;gap:.15rem;padding:.35rem;border:1px solid rgba(255,255,255,.65);background:rgba(4,10,9,.78);backdrop-filter:blur(10px)}
  .mobile-contact-cluster a{display:grid;width:2.25rem;height:2.25rem;place-items:center;color:#fff}
  .mobile-contact-cluster svg{width:1.1rem;height:1.1rem;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}
  .mobile-contact-cluster .header-social__dot{fill:currentColor;stroke:none}

  .mobile-section-title{position:absolute;z-index:7;left:1rem;top:5.2rem;display:block;margin:0;color:#fff;font:500 clamp(1.05rem,4.8vw,1.45rem)/1 Manrope,sans-serif;letter-spacing:.025em;text-transform:uppercase;text-shadow:0 2px 14px rgba(0,0,0,.8);pointer-events:none}
  .landing-cover__heading h2,.model-cover__heading h2,.model-step__content h2{font-size:clamp(1.15rem,5vw,1.55rem);line-height:1;letter-spacing:.015em}
  .model-step--typologies{align-content:start;padding-top:6rem}
  .model-step--typologies .model-step__content{width:100%}
  .model-step--typologies .eyebrow{display:none}
  .model-step--typologies .model-step__content h2{font-size:clamp(1.15rem,5vw,1.55rem);line-height:1;letter-spacing:.015em}

  .project-map__environment-copy{top:5.2rem}
  .project-map__environment-copy h3,.map-place-story h3,.project-map__details strong{font-size:clamp(1.05rem,4.8vw,1.45rem)!important;line-height:1;letter-spacing:.025em}
  .map-place-story{left:1rem!important;top:5.2rem!important;bottom:auto!important;width:calc(100vw - 2rem);translate:0 0}
  .map-place-story.is-visible{translate:0 0}
  .project-map__details{left:1rem;top:5.2rem;align-items:flex-start;width:calc(100vw - 2rem);translate:0 0;text-align:left}
  .project-map[data-map-state="stage1"] .project-map__details,.project-map[data-map-state="stage2"] .project-map__details{translate:0 0}
  .project-map__details p{margin:.6rem 0 1rem}
  .project-map__details strong{margin:0 0 .85rem}
  .project-map__details p{margin:0 0 .7rem;line-height:1.25}
  .project-map__availability-alert{margin:0 0 1.15rem;font-size:.66rem;line-height:1.25;letter-spacing:.075em}
  .project-map__details button{margin:.35rem 0 0}
}

/* Los planos horizontales aprovechan la altura disponible al verse en vertical. */
@media(max-width:800px) and (orientation:portrait){
  .model-step--parcels .parcel-map__base,
  .model-step--parcels .parcel-map__areas,
  .project-map>.project-map__base,
  .project-map>.project-map__areas,
  .map-explorer__world>.map-explorer__base,
  .map-explorer__world>.map-explorer__vectors{
    inset:auto;left:50%;top:50%;width:100svh;height:100vw;max-width:none;
    transform:translate(-50%,-50%) rotate(90deg);transform-origin:center;
  }
  .model-step--parcels .parcel-map__base,
  .project-map>.project-map__base,
  .map-explorer__world>.map-explorer__base{object-fit:cover}
  .parcel-map__labels text{font-size:8px}
  .parcel-map__labels text,.parcel-map__available-labels text,.map-explorer__vectors text{transform:rotate(-90deg);transform-box:fill-box;transform-origin:center}
  .gallery-modal.is-landscape-plan .gallery-postcard img{
    max-width:82svh;max-height:90vw;
    transform:rotate(90deg);transform-origin:center;
  }
}

/* Ajuste integral solicitado 05-09: lectura, mapas y configurador. */
@media(min-width:801px){
  :root{--text-font:"Century Gothic","Avenir Next",sans-serif;--text-size:clamp(.875rem,1vw,1rem)}

  .landing-cover__body p,
  .project-map__environment-copy p,
  .map-place-story>p:last-child,
  .model-cover__heading p,
  .house-configurator__note,
  .house-choice__body p,
  .addon-card small,
  .economic-note,
  .visit__summary pre,
  .about-intro p,
  .about-people p{
    font-family:var(--text-font)!important;
    font-size:var(--text-size)!important;
    font-weight:300!important;
    line-height:1.55!important;
    letter-spacing:.01em!important;
  }
  .landing-cover__body,
  .project-map__environment-copy p,
  .model-cover__heading p,
  .economic-note{max-width:50vw!important}

  .project-map__details{
    left:50%!important;
    top:50%!important;
    width:min(430px,34vw)!important;
    align-items:center!important;
    translate:-50% -50%!important;
    text-align:center!important;
  }
  .project-map[data-map-state="stage1"] .project-map__details,
  .project-map[data-map-state="stage2"] .project-map__details{translate:-50% -50%!important}
  .project-map__stage-label{
    display:block;
    fill:#fff;
    font:500 15px/1 var(--text-font);
    letter-spacing:.1em;
    text-anchor:middle;
    paint-order:stroke;
    stroke:rgba(0,0,0,.65);
    stroke-width:3px;
    pointer-events:none;
  }

  .project-map__environment-copy{
    display:flex!important;
    width:50vw!important;
    height:calc(100svh - var(--master-title-top) - 5rem)!important;
    flex-direction:column!important;
  }
  .project-map__environment-copy p{
    width:50%!important;
    margin:auto 0!important;
    align-self:flex-start!important;
    text-align:center!important;
    white-space:pre-line;
  }

  .map-place-story{
    left:2rem!important;
    right:calc(clamp(23rem,24vw,29rem) + 2rem)!important;
    top:auto!important;
    bottom:2rem!important;
    display:grid!important;
    width:auto!important;
    grid-template-columns:minmax(280px,.7fr) minmax(420px,1.5fr)!important;
    grid-template-rows:auto auto!important;
    gap:.3rem 2rem!important;
    padding:1rem 1.25rem!important;
    background:rgba(2,8,7,.86)!important;
  }
  .map-place-story h3{grid-column:1;grid-row:2;margin:0!important}
  .map-place-story__time{grid-column:1;grid-row:1;margin:0!important}
  .map-place-story>p:last-child{grid-column:2;grid-row:1/3;align-self:center;max-width:none!important}

  .model-cover{display:flex!important;min-height:100svh!important}
  .model-cover__heading{display:block!important;opacity:1!important;visibility:visible!important}

  .project-cart{
    left:50%!important;
    top:6.8rem!important;
    bottom:auto!important;
    display:block!important;
    width:auto!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    backdrop-filter:none!important;
    translate:-50% 0!important;
  }
  .project-cart>div:not(.project-cart__actions),.project-cart>a{display:none!important}
  .project-cart__actions{display:flex!important;grid-template-columns:none!important;gap:.6rem!important}
  .project-cart__actions button{min-width:11rem!important}

  .addons-summary{
    left:var(--master-title-left)!important;
    right:clamp(23rem,24vw,29rem)!important;
    bottom:1rem!important;
    width:auto!important;
    height:112px!important;
    max-height:112px!important;
    padding:.7rem 1rem!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr) 9rem!important;
    grid-template-rows:auto 1fr!important;
    translate:0!important;
    overflow:hidden!important;
    background:rgba(255,255,255,.92)!important;
    color:#111!important;
  }
  .addons-summary>h3{grid-column:1/-1!important;margin:0!important;font-size:.72rem!important}
  .addons-summary .house-summary__breakdown{
    display:flex!important;
    grid-column:1/4!important;
    grid-row:2!important;
    flex-direction:row!important;
    gap:0!important;
    overflow:hidden!important;
  }
  .addons-summary .house-summary__item{
    display:grid!important;
    min-width:0!important;
    flex:1 1 0!important;
    grid-template-columns:1.1rem minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;
    align-content:center!important;
    padding:0 .65rem!important;
    border-right:1px solid rgba(0,0,0,.18)!important;
  }
  .house-summary__remove{grid-column:1;grid-row:1/3;border:0;background:none;color:#c7332f;font-size:1.15rem;cursor:pointer}
  .addons-summary .house-summary__item span{grid-column:2;grid-row:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .addons-summary .house-summary__item b{grid-column:2;grid-row:2;font-size:.7rem!important}
  .addons-summary .house-summary__grand-total{grid-column:3;grid-row:1/3;align-self:center;justify-self:end;padding-right:1rem}
  .addons-summary .house-summary__grand-total strong{font-size:1.4rem!important}
  .addons-summary>a{grid-column:4;grid-row:1/3;display:grid!important;place-items:center;background:#111!important;color:#fff!important}
  .house-summary{display:none!important}

  .model-step--options,.model-step--typologies,.project-summary,.visit{padding-bottom:9rem!important}
  .addon-cards{align-content:start!important}
  .addon-card{min-height:clamp(210px,36vh,330px)!important}

  .house-choice{position:relative!important;display:block!important;overflow:hidden!important}
  .house-choice>img{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important}
  .house-choice__body{position:absolute!important;z-index:2;inset:0!important;display:flex!important;padding:1.2rem!important;flex-direction:column!important;justify-content:space-between!important;background:linear-gradient(180deg,rgba(0,0,0,.15),transparent 45%,rgba(0,0,0,.8))!important}
  .house-choice__actions{align-self:flex-start;padding:.45rem .65rem;background:rgba(0,0,0,.7)}
  .house-choice--none{display:grid!important}.house-choice--none .house-choice__body{position:relative!important;background:none!important}

  .visit__summary{display:none!important}
  .visit__layout{display:block!important;border-top:1px solid rgba(0,0,0,.35)!important}
  .visit__contact{width:min(900px,72vw)!important}
  .visit__contact form{width:100%!important;min-height:0!important;padding:1.5rem 0!important;grid-template-columns:1fr 1fr!important;gap:1.2rem 2rem!important}
  .visit__contact fieldset label{font-size:.7rem!important}
  .visit__contact input{height:2.75rem!important;font-size:.9rem!important}
  .visit__message-label textarea{height:4.5rem!important;font-size:.9rem!important}
}

.map-section.is-connectivity-visible>.project-map{visibility:hidden!important;opacity:0!important;transition:none!important}
.map-section.is-connectivity-visible>.map-explorer{background:#07100e!important;visibility:visible!important;opacity:1!important;transition:none!important}

/* Cierre definitivo de Agenda: composición horizontal equivalente a la grilla económica. */
@media(min-width:801px){
  .visit__contact h2{margin-bottom:2rem!important}
  .visit__layout{grid-template-columns:minmax(230px,.9fr) minmax(0,2.4fr)!important}
  .visit__summary{min-height:365px!important}
  .visit__contact form{
    display:grid!important;
    min-height:365px!important;
    grid-template-columns:1fr 1fr!important;
    align-content:start!important;
    gap:.7rem 1.2rem!important;
  }
  .visit__contact fieldset{min-width:0!important}
  .visit__contact fieldset label{display:grid!important;grid-template-columns:1fr!important;gap:.2rem!important}
  .visit__contact input{height:2.1rem!important}
  .visit__message-label{grid-column:1/-1!important;grid-template-columns:10rem minmax(0,1fr)!important;align-items:center!important}
  .visit__message-label textarea{height:2.8rem!important}
  .visit__contact form>button{grid-column:1/-1!important;min-height:2.5rem!important;margin-top:0!important}
}

@media(min-width:801px){
  .visit__contact h2{margin-bottom:2rem!important}
  .visit__layout{grid-template-columns:minmax(230px,.9fr) minmax(0,2.4fr)!important}
  .visit__summary{min-height:365px}
  .visit__contact form{
    display:grid!important;
    min-height:365px;
    grid-template-columns:1fr 1fr!important;
    align-content:start;
    gap:.8rem 1.25rem!important;
  }
  .visit__contact fieldset{min-width:0}
  .visit__contact fieldset label{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:.22rem!important;
  }
  .visit__contact input{height:2.15rem!important}
  .visit__message-label{
    grid-column:1/-1;
    grid-template-columns:10rem minmax(0,1fr)!important;
    align-items:center!important;
  }
  .visit__message-label textarea{height:3rem!important}
  .visit__contact form>button{
    grid-column:1/-1;
    min-height:2.55rem;
    margin-top:0;
  }
}

/* Agendar replica la retícula, proporciones y contraste de Modelo económico. */
.visit__contact{
  width:min(900px,72vw)!important;
  max-width:none!important;
  margin:0!important;
}
.visit__contact h2{margin-bottom:3rem!important}
.visit__layout{
  display:grid!important;
  grid-template-columns:minmax(220px,1fr) minmax(0,2.15fr)!important;
  gap:0!important;
  border-top:1px solid rgba(0,0,0,.35);
  border-bottom:1px solid rgba(0,0,0,.35);
}
.visit__summary{
  min-height:390px;
  padding:1.25rem!important;
  border:0!important;
  border-right:1px solid rgba(0,0,0,.2)!important;
}
.visit__contact form{
  display:flex!important;
  min-height:390px;
  padding:1.25rem!important;
  border:0!important;
  flex-direction:column!important;
  gap:.7rem!important;
}
.visit__summary h3,.visit__contact legend{
  margin:0 0 1rem!important;
  color:rgba(0,0,0,.58)!important;
  font:500 .62rem/1.2 Manrope,sans-serif!important;
  letter-spacing:.1em!important;
  text-transform:uppercase!important;
}
.visit__summary pre{
  color:#111!important;
  font:500 .78rem/1.65 Manrope,sans-serif!important;
}
.visit__contact fieldset{gap:.5rem!important}
.visit__contact label{
  grid-template-columns:8.5rem minmax(0,1fr)!important;
  gap:.75rem!important;
  color:rgba(0,0,0,.62)!important;
  font-size:.58rem!important;
}
.visit__contact input,.visit__contact textarea{
  border:1px solid rgba(0,0,0,.3)!important;
  background:#fff!important;
  color:#111!important;
}
.visit__contact input{height:2.35rem!important;padding:.5rem .7rem!important;font-size:.76rem!important}
.visit__message-label textarea{height:3.7rem!important;padding:.55rem .7rem!important;font-size:.76rem!important}
.visit__contact form>button{
  width:100%!important;
  min-height:2.8rem;
  margin-top:auto;
  padding:.75rem 1rem!important;
  font-size:.68rem!important;
}
.visit footer{
  width:min(900px,72vw);
  margin-top:1.4rem!important;
  padding-top:.75rem;
  border-top:1px solid rgba(0,0,0,.25);
}

@media(max-width:800px){
  .visit__contact{width:100%!important}
  .visit__contact h2{margin-bottom:1.4rem!important}
  .visit__layout{
    grid-template-columns:1fr!important;
    border-bottom:0;
  }
  .visit__summary{
    min-height:0;
    padding:.65rem 0 .75rem!important;
    border-right:0!important;
    border-bottom:1px solid rgba(0,0,0,.25)!important;
  }
  .visit__summary h3,.visit__contact legend{margin-bottom:.5rem!important;font-size:.58rem!important}
  .visit__summary pre{font-size:.62rem!important;line-height:1.4!important}
  .visit__contact form{min-height:0;padding:.75rem 0 0!important;gap:.35rem!important}
  .visit__contact fieldset{gap:.28rem!important}
  .visit__contact label{grid-template-columns:6.3rem minmax(0,1fr)!important;gap:.4rem!important;font-size:.52rem!important}
  .visit__contact input{height:1.85rem!important;padding:.3rem .45rem!important;font-size:.62rem!important}
  .visit__message-label textarea{height:2.65rem!important;padding:.35rem .45rem!important;font-size:.62rem!important}
  .visit__contact form>button{min-height:2.25rem;margin-top:.15rem;padding:.5rem!important;font-size:.58rem!important}
  .visit footer{width:100%;margin-top:auto!important;padding-top:.45rem;font-size:.45rem!important}
}

/* Tercera decisión: dos tipologías sobre fondo negro. */
.model-step--typologies{min-height:100svh;padding:clamp(6rem,10vh,8rem) var(--pad) clamp(7rem,13vh,9rem);background:#030504;align-content:center}
.model-step--typologies:before,.model-step--typologies:after{display:none}
.house-configurator{width:min(850px,74vw);margin:auto;text-align:left}
.house-configurator h2{margin:.45rem 0 .8rem;font:300 clamp(2rem,4.2vw,4.5rem)/.92 Manrope,sans-serif;letter-spacing:-.055em;text-transform:uppercase}
.house-configurator__note{max-width:48rem;margin:0 0 1.25rem;color:rgba(255,255,255,.7);font-size:.68rem;line-height:1.5}
.house-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.85rem}
.house-choice{overflow:hidden;border:1px solid rgba(255,255,255,.38);background:#07100e;transition:border-color .3s ease,background .3s ease}
.house-choice.is-selected{border-color:#78d08b;background:rgba(28,75,41,.7)}
.house-choice>img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;filter:brightness(.83)}
.house-choice__body{display:grid;min-height:180px;padding:1rem;grid-template-rows:auto 1fr auto;gap:.8rem}
.house-choice h3{margin:0 0 .35rem;font-size:1rem;font-weight:600;text-transform:uppercase}
.house-choice strong{color:rgba(255,255,255,.72);font-size:.68rem;font-weight:500;text-transform:uppercase}
.house-choice__actions{display:flex;align-items:center;gap:1rem}
.house-choice__actions button{border:0;border-bottom:1px solid rgba(255,255,255,.7);padding:.35rem 0;background:none;color:#fff;font-size:.56rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.house-summary{position:absolute;z-index:4;left:50%;bottom:clamp(1rem,2.5vh,2rem);display:grid;width:min(760px,calc(100vw - 2rem));grid-template-columns:1fr 1.25fr .8fr auto;align-items:center;gap:1rem;padding:.85rem 1rem;border:1px solid rgba(255,255,255,.38);background:rgba(4,10,9,.88);translate:-50% 0}
.house-summary div{display:flex;flex-direction:column;gap:.25rem}.house-summary small{color:rgba(255,255,255,.58);font-size:.54rem;letter-spacing:.11em;text-transform:uppercase}.house-summary strong{font-size:.72rem;font-weight:500}.house-summary a{padding:.65rem .75rem;background:#fff;color:#111;font-size:.62rem;font-weight:600;text-align:center;text-transform:uppercase;white-space:nowrap}
@media(min-width:801px){
  .model-step--typologies{padding-left:clamp(2.5rem,4vw,5rem);padding-right:clamp(23rem,24vw,29rem)}
  .house-configurator{width:100%;max-width:none}
  .house-choice>img{aspect-ratio:16/8.2}
  .house-summary{left:calc((100vw - clamp(23rem,24vw,29rem))/2);width:min(900px,calc(100vw - clamp(27rem,29vw,34rem)))}
  .project-map__environment-copy h3,.map-place-story h3,.model-cover__heading h2,.addons-configurator h2,.house-configurator h2{font-size:clamp(2.6rem,4.2vw,4.5rem);line-height:.92;letter-spacing:-.055em}
}
@media(max-width:800px){
  .model-step--typologies{height:auto;min-height:100svh;padding:6rem 1rem 3rem}
  .house-configurator{width:100%}.house-configurator>.eyebrow{display:none}.house-configurator h2{font-size:clamp(1.15rem,5vw,1.55rem);line-height:1;letter-spacing:.015em}
  .house-configurator__note{font-size:.62rem}.house-cards{grid-template-columns:1fr;gap:.75rem}.house-choice__body{min-height:150px}
  .house-summary{position:relative;left:auto;bottom:auto;width:100%;margin:1rem 0 0;grid-template-columns:1fr 1fr;translate:0 0}.house-summary div:nth-child(2),.house-summary a{grid-column:1/-1}.house-summary a{text-align:center}
}

/* Desde Entorno, todos los títulos comparten la posición y escala de “Elige tu casa”. */
@media(min-width:801px){
  :root{
    --chapter-title-left:clamp(2.5rem,4vw,5rem);
    --chapter-title-top:clamp(6.5rem,11vh,7.5rem);
    --chapter-title-size:clamp(2.6rem,4.2vw,4.5rem);
  }
  .project-map__environment-copy,
  .map-place-story{
    left:var(--chapter-title-left)!important;
    top:var(--chapter-title-top)!important;
    bottom:auto!important;
    width:min(670px,38vw);
    translate:0 0;
  }
  .map-place-story.is-visible{translate:0 0}
  .project-map__environment-copy h3,
  .map-place-story h3,
  .model-cover__heading h2,
  .parcel-map__intro h2,
  .addons-configurator h2,
  .house-configurator h2{
    margin:0 0 .8rem;
    font-size:var(--chapter-title-size);
    line-height:.92;
    letter-spacing:-.055em;
  }
  .model-cover__content{padding-top:var(--chapter-title-top)}
  .model-cover{padding-left:var(--chapter-title-left)}
  .parcel-map__intro{left:var(--chapter-title-left);top:var(--chapter-title-top)}
  .parcel-map__intro p,
  .addons-configurator>.eyebrow,
  .house-configurator>.eyebrow{display:none}
  .model-step--options,
  .model-step--typologies{
    align-content:start;
    padding-top:var(--chapter-title-top);
    padding-left:var(--chapter-title-left);
  }
  .addons-configurator,
  .house-configurator{margin-left:0;margin-right:0}
}

/* El total se distingue como la tarjeta de cierre y los contactos forman una barra vertical única. */
.addons-summary{
  color:#080b09;
  border-color:#fff;
  background:rgba(255,255,255,.94);
  backdrop-filter:blur(12px);
}
.addons-summary h3{grid-column:1/-1;margin:0;font-size:.95rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.addons-summary small{color:rgba(8,11,9,.58)}
.addons-summary a{background:#080b09;color:#fff}
.header-social,.whatsapp-float{display:none}
.mobile-contact-cluster{
  position:fixed;
  z-index:35;
  right:clamp(.75rem,2vw,2rem);
  bottom:clamp(.75rem,2vh,1.5rem);
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:.15rem;
  padding:.35rem;
  border:1px solid rgba(255,255,255,.65);
  background:rgba(4,10,9,.82);
  backdrop-filter:blur(10px);
}
.mobile-contact-cluster a{display:grid;width:2.25rem;height:2.25rem;place-items:center;color:#fff}
.mobile-contact-cluster svg{width:1.1rem;height:1.1rem;fill:none;stroke:currentColor;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}
.mobile-contact-cluster .header-social__dot{fill:currentColor;stroke:none}
@media(max-width:800px){
  .topbar{background:linear-gradient(180deg,rgba(4,10,9,.98) 0%,rgba(4,10,9,.92) 72%,transparent 100%);backdrop-filter:blur(5px)}
  .addons-summary{margin-bottom:8.5rem}
  .addons-summary h3{grid-column:1/-1}
  .addons-summary div:nth-child(3){grid-column:auto}
  .addons-summary div:nth-of-type(3){grid-column:1/-1}
  body.parcel-cart-active .mobile-contact-cluster,
  body:has(#elige-parcela:target) .mobile-contact-cluster{bottom:4.8rem}
}

/* Desglose vivo del valor conocido del proyecto. */
.house-summary{grid-template-columns:minmax(18rem,1fr) auto auto}
.house-summary>h3{grid-column:1/-1;margin:0;font-size:.82rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase}
.house-summary__breakdown{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem 1.25rem!important}
.house-summary__item{display:grid!important;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:.75rem!important;padding:.3rem 0;border-bottom:1px solid rgba(255,255,255,.16)}
.house-summary__item span{display:flex;min-width:0;flex-direction:column;gap:.18rem}
.house-summary__item strong,.house-summary__item b{font-size:.62rem;font-weight:500}
.house-summary__item small{font-size:.45rem;line-height:1.25}
.house-summary__item b{white-space:nowrap}
.house-summary__grand-total strong{font-size:.85rem}
@media(max-width:800px){
  .house-summary{grid-template-columns:1fr 1fr}
  .house-summary>h3,.house-summary__breakdown,.house-summary>a{grid-column:1/-1}
  .house-summary__breakdown{grid-template-columns:1fr}
  .house-summary__grand-total{grid-column:1/-1}
}

/* Las tarjetas completas son el control de selección; el estado se expresa con color. */
[data-addon-toggle],[data-house-toggle]{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip-path:inset(50%)!important;opacity:0!important;pointer-events:none!important}
.addon-card,.house-choice{cursor:pointer}
.addon-card:focus-visible,.house-choice:focus-visible{outline:2px solid #78d08b;outline-offset:2px}
.addon-card:has([data-addon-toggle]:disabled){opacity:.48;cursor:not-allowed}
@media(min-width:801px){
  .addons-configurator{text-align:left}
  .addon-card{grid-template-columns:minmax(230px,1.5fr) minmax(115px,.7fr)}
  .house-cards{grid-template-columns:repeat(3,minmax(0,1fr))}
}
.house-choice__empty{display:grid;width:100%;aspect-ratio:16/8.2;place-items:center;background:linear-gradient(135deg,#101613,#050706);color:rgba(255,255,255,.6);font-size:1rem;letter-spacing:.08em;text-transform:uppercase}
.house-choice--none .house-choice__body{grid-template-rows:auto 1fr}
.house-choice--none .house-choice__body p{align-self:center;color:rgba(255,255,255,.65);font-size:.62rem;line-height:1.45}

/* La barra de precio conserva posición, ancho y gráfica al pasar entre ambas decisiones. */
.addons-summary,.house-summary{
  bottom:clamp(1rem,2.5vh,2rem);
  color:#080b09;
  border-color:#fff;
  background:rgba(255,255,255,.95);
  backdrop-filter:blur(12px);
}
.house-summary small,.house-summary__item small{color:rgba(8,11,9,.58)}
.house-summary__item{border-bottom-color:rgba(8,11,9,.15)}
.house-summary a{background:#080b09;color:#fff}
@media(min-width:801px){
  .addons-summary{
    left:var(--chapter-title-left);
    width:min(720px,calc(100vw - 30rem));
    translate:0 0;
  }
  .house-summary{
    left:var(--chapter-title-left);
    width:calc(100vw - var(--chapter-title-left) - clamp(23rem,24vw,29rem));
    translate:0 0;
  }
}
@media(max-width:800px){
  .house-choice__empty{aspect-ratio:16/7}
  .addons-configurator{text-align:left}
}

/* Un único lenguaje de resumen permanece anclado durante las dos decisiones. */
@media(min-width:801px){
  .addons-summary,.house-summary{
    position:fixed;
    z-index:18;
    grid-template-columns:minmax(0,1fr) auto auto;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .25s ease,visibility .25s ease,width .35s ease;
  }
  .addons-summary.is-current-summary,.house-summary.is-current-summary{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }
  .addons-summary>h3,.house-summary>h3{grid-column:1/-1}
  .addons-summary .house-summary__breakdown,.house-summary .house-summary__breakdown{grid-column:1}
}
@media(max-width:800px){
  .addons-summary .house-summary__breakdown,
  .addons-summary .house-summary__grand-total{grid-column:1/-1}
  .addons-summary .house-summary__breakdown{grid-template-columns:1fr}
}

/* Controles auxiliares y ventanas informativas. */
.mobile-contact-cluster button{display:grid;width:2.25rem;height:2.25rem;border:0;padding:0;place-items:center;background:none;color:#fff;cursor:pointer}
.info-modal{width:min(1080px,94vw);max-width:none;max-height:90svh;border:1px solid rgba(255,255,255,.35);padding:clamp(1.5rem,4vw,3.5rem);overflow:auto;background:#101310;color:#fff}
.info-modal::backdrop{background:rgba(0,0,0,.76);backdrop-filter:blur(5px)}
.info-modal__close{position:sticky;z-index:2;top:0;float:right;border:0;background:none;color:#fff;font-size:1.8rem;cursor:pointer}
.info-modal h2{margin:0 0 1.5rem;font-size:clamp(2.4rem,5vw,4.8rem);font-weight:300;line-height:.9;text-transform:uppercase}
.location-modal{width:min(430px,92vw)}.location-options{display:grid}.location-options a{display:flex;justify-content:space-between;padding:1rem 0;border-top:1px solid rgba(255,255,255,.3);font-size:.78rem;text-transform:uppercase}.location-options a:last-child{border-bottom:1px solid rgba(255,255,255,.3)}
.about-intro{max-width:52rem;margin-bottom:3rem}.about-intro>p:last-child,.about-people p{font-size:.78rem;line-height:1.65}.about-people{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,5rem)}.about-people img{width:180px;aspect-ratio:4/5;object-fit:cover;filter:grayscale(1)}.about-people h3{margin:1rem 0 .25rem;font-size:1.2rem}.about-people small{display:block;margin-bottom:1.2rem;color:#d4a62a;font-size:.58rem;letter-spacing:.18em;text-transform:uppercase}.about-people p+p{margin-top:1rem}
.about-intro__logo{display:block;width:min(280px,62vw);height:auto;margin:1.2rem 0 2rem;filter:none!important}.about-intro p{font-size:.78rem;line-height:1.65}.info-modal,.info-modal *{cursor:auto!important}.info-modal button,.info-modal a{cursor:pointer!important}
.visit__contact{width:min(980px,100%);margin:auto}.visit__contact h2{font:300 clamp(3rem,7vw,7rem)/.95 Manrope;margin:0 0 1rem}.visit__contact>p{max-width:42rem;line-height:1.6;margin-bottom:2rem}.visit__contact form{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.visit__contact label{display:grid;gap:.45rem;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase}.visit__contact input,.visit__contact textarea{width:100%;border:1px solid rgba(255,255,255,.4);padding:.85rem;background:rgba(0,0,0,.3);color:#fff;font:500 .78rem/1.4 Manrope,sans-serif}.visit__summary-label{grid-column:1/-1}.visit__contact textarea{min-height:120px;resize:vertical}.visit__contact form>button{grid-column:1/-1;padding:1rem;border:0;background:#fff;color:#111;text-transform:uppercase;cursor:pointer}
.visit{height:100svh;min-height:680px;padding:clamp(5.5rem,8vh,7rem) var(--chapter-title-left,clamp(2rem,5vw,6rem)) 1.1rem;background:#ecebe6;color:#111;overflow:hidden}.visit__contact{width:calc(100vw - var(--chapter-title-left,clamp(2rem,5vw,6rem)) - clamp(23rem,24vw,29rem));max-width:none;margin:0}.visit__contact h2{margin:0 0 clamp(1rem,2vh,1.6rem);font-size:var(--chapter-title-size,clamp(2.6rem,4.2vw,4.5rem));font-weight:300;line-height:.92;letter-spacing:-.055em;text-transform:uppercase}.visit__layout{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(340px,1.1fr);gap:clamp(1.2rem,3vw,3.5rem);align-items:start}.visit__summary,.visit__contact form{border-top:1px solid rgba(0,0,0,.42);padding-top:.75rem}.visit__summary h3,.visit__contact legend{margin:0 0 .65rem;color:#111;font:600 .66rem/1.2 Manrope,sans-serif;letter-spacing:.12em;text-transform:uppercase}.visit__summary pre{margin:0;white-space:pre-wrap;color:#111;font:500 clamp(.62rem,.72vw,.76rem)/1.55 Manrope,sans-serif}.visit__contact form{display:flex;flex-direction:column;gap:.48rem}.visit__contact fieldset{display:flex;flex-direction:column;gap:.38rem;border:0;padding:0;margin:0}.visit__contact label{display:grid;grid-template-columns:9.5rem 1fr;align-items:center;gap:.55rem;color:#111;font-size:.54rem;letter-spacing:.09em;text-transform:uppercase}.visit__contact input,.visit__contact textarea{width:100%;height:2rem;border:1px solid rgba(0,0,0,.35);padding:.35rem .55rem;background:rgba(255,255,255,.55);color:#111;font:500 .68rem/1.25 Manrope,sans-serif}.visit__message-label{align-items:start!important}.visit__message-label textarea{height:3.5rem;min-height:0;resize:none}.visit__contact form>button{align-self:flex-end;width:min(210px,100%);border:1px solid #111;padding:.65rem 1rem;background:#111;color:#fff;font-size:.62rem;text-transform:uppercase;cursor:pointer}.visit footer{display:flex;justify-content:flex-start;gap:1.2rem;margin-top:auto;border-color:rgba(0,0,0,.3);color:#111;font-size:.5rem;text-transform:none;letter-spacing:.03em}.visit footer span+span:before{content:"·";margin-right:1.2rem}.visit-active .brand--header img,.visit-active .header-social svg,.visit-active .mobile-contact-cluster svg{filter:brightness(0)}.visit-active .topbar,.visit-active .site-nav a,.visit-active .menu-button,.visit-active .header-social,.visit-active .side-index,.visit-active .side-index a,.visit-active .side-index .side-index__main,.visit-active .side-index .side-index__submenu a{color:#111}.visit-active .menu-button i{background:#111}.visit-active .side-index a,.visit-active .side-index .side-index__main,.visit-active .side-index .side-index__submenu a{text-shadow:none}.visit-active .side-index a.is-active,.visit-active .side-index .side-index__main.is-active{background:#111;color:#fff}.visit-active .mobile-contact-cluster{border-color:rgba(0,0,0,.5);background:rgba(236,235,230,.9)}
.thank-you-screen{position:fixed;inset:0;z-index:200000;display:grid;place-items:center;padding:2rem;background:linear-gradient(rgba(0,10,8,.28),rgba(0,10,8,.4)),url('../galeria/PORTADA/01.png') center/cover no-repeat;color:#fff;opacity:0;visibility:hidden;transition:opacity .45s,visibility .45s}.thank-you-screen.is-visible{opacity:1;visibility:visible}.thank-you-screen>div{width:min(900px,92vw);text-align:left}.thank-you-screen p{font:300 clamp(2.5rem,6vw,6.5rem)/1.02 Manrope;letter-spacing:-.055em}.thank-you-screen img{display:block;width:min(310px,55vw);margin:3rem 0;filter:none}.thank-you-screen button{padding:1rem 1.4rem;border:1px solid #fff;background:transparent;color:#fff;text-transform:uppercase;cursor:pointer}.thank-you-visible{overflow:hidden}
.contact-modal{width:min(620px,94vw)}.contact-modal form{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.contact-modal label{display:grid;gap:.4rem;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase}.contact-modal label:nth-child(4){grid-column:1/-1}.contact-modal input,.contact-modal textarea,.economic-grid select{width:100%;border:1px solid rgba(255,255,255,.35);padding:.8rem;background:rgba(0,0,0,.25);color:inherit;font:500 .75rem/1.4 Manrope,sans-serif}.contact-modal textarea{min-height:130px;resize:vertical}.contact-modal form>button{grid-column:1/-1;padding:1rem;border:0;background:#fff;color:#111;text-transform:uppercase}.contact-modal__note{margin-top:1rem;color:rgba(255,255,255,.55);font-size:.58rem}

/* Modelo económico conectado al configurador. */
.project-summary{min-height:100svh;background:#ecebe6}.economic-configurator{width:min(900px,72vw)}.economic-configurator h2{margin:0 0 3rem;font-size:var(--chapter-title-size,clamp(2.6rem,4.2vw,4.5rem));font-weight:300;line-height:.92;letter-spacing:-.055em;text-transform:uppercase}.economic-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(0,0,0,.35)}.economic-grid>div,.economic-grid>label{display:grid;align-content:center;min-height:120px;padding:1rem;border-right:1px solid rgba(0,0,0,.2);border-bottom:1px solid rgba(0,0,0,.35)}.economic-grid small{margin-bottom:.65rem;color:rgba(0,0,0,.55);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase}.economic-grid strong{font-size:1.15rem}.economic-grid select{border-color:rgba(0,0,0,.3);background:#fff;color:#111}.economic-note{margin-top:1.5rem;font-size:.72rem}.economic-configurator .button{border:0;background:#111;color:#fff;cursor:pointer}

/* Fondos aproximadamente 10% más luminosos. */
.hero__video{filter:brightness(.79) contrast(1.1) saturate(.75)}
.timed-intro .hero__video{filter:brightness(.64) contrast(1.17) saturate(.66)}
.timed-intro__satellite{filter:brightness(.79) contrast(1.09) saturate(.76)}
.map-explorer__base{filter:brightness(.84) saturate(1.08) contrast(1.03)}
.map-explorer__base--location{filter:brightness(.7) saturate(1.06) contrast(1.04)}
.project-map__state-bg{filter:brightness(.68) saturate(1.03) contrast(1.04)}
#disena:before{filter:brightness(.62) saturate(.92) contrast(1.06)}
.project-map__base,.parcel-map__base{filter:brightness(.59) saturate(.92) contrast(1.06)}
.addons-gallery img{filter:brightness(.64) saturate(.9)}
.house-choice>img{filter:brightness(.9)}
.model-step:before{filter:brightness(.54) saturate(.88) contrast(1.06)}
.model-step--typologies{background:#0a0d0b}
.model-step:after{opacity:.9}

.map-place-story__time{display:flex;align-items:center;gap:.35rem;margin:0 0 .85rem!important;color:rgba(255,255,255,.78)!important;font-size:.66rem!important;letter-spacing:.05em!important;text-transform:uppercase}

/* El resumen permanece fijo durante toda la experiencia de Modela tu proyecto. */
.addons-summary,.house-summary{position:fixed;z-index:18;opacity:0;visibility:hidden;pointer-events:none}
.addons-summary.is-current-summary,.house-summary.is-current-summary{opacity:1;visibility:visible;pointer-events:auto}

@media(max-width:800px){
  html,body,a,button,input,textarea,select,label,[role="button"],.info-modal,.info-modal *{cursor:auto!important}
  .visit{height:100svh;min-height:0;padding:4.6rem .7rem .5rem;overflow:hidden}.visit__contact{width:100%}.visit__contact h2{margin-bottom:.55rem;font-size:1.3rem}.visit__layout{grid-template-columns:34% 66%;gap:.55rem}.visit__summary,.visit__contact form{padding-top:.42rem}.visit__summary h3,.visit__contact legend{margin-bottom:.28rem;font-size:.43rem}.visit__summary pre{font-size:clamp(.39rem,1.7vw,.49rem);line-height:1.38}.visit__contact form{gap:.2rem}.visit__contact fieldset{gap:.16rem}.visit__contact label{grid-template-columns:4.3rem 1fr;gap:.25rem;font-size:.37rem}.visit__contact input{height:1.42rem;padding:.2rem .3rem;font-size:.5rem}.visit__message-label textarea{height:2.2rem;min-height:0;padding:.25rem;font-size:.5rem}.visit__contact form>button{width:100%;padding:.4rem;font-size:.45rem}.visit footer{gap:.35rem;padding-top:.35rem;font-size:.34rem}.visit footer span+span:before{margin-right:.35rem}.thank-you-screen p{font-size:clamp(2.2rem,10vw,4rem)}
  .about-people{grid-template-columns:1fr}.about-people img{width:130px}.contact-modal form{grid-template-columns:1fr}.contact-modal label:nth-child(4),.contact-modal form>button{grid-column:1}
  .project-summary{padding:5.2rem 1rem 4rem}.economic-configurator{width:100%}.economic-configurator h2{margin-bottom:1.4rem;font-size:clamp(1.15rem,5vw,1.55rem)}.economic-grid{grid-template-columns:1fr 1fr}.economic-grid>div,.economic-grid>label{min-height:85px}.economic-configurator .button{width:100%;justify-content:space-between;margin-top:2rem}

  .model-step--options,.model-step--typologies{height:100svh;min-height:100svh;padding:4.8rem .6rem 7.2rem;overflow:hidden}
  .addons-configurator,.house-configurator{height:auto;width:100%;margin:0}
  .addons-configurator h2,.house-configurator h2{margin:0 0 .45rem;font-size:1.05rem}
  .addon-cards{display:grid;gap:.25rem}
  .addon-card{display:grid;min-height:0;height:clamp(60px,10.4svh,76px);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.5rem;padding:.42rem .55rem}
  .addon-card h3{margin:0 0 .15rem;font-size:.58rem}.addon-card strong{font-size:.85rem}.addon-card small{margin-top:.18rem;font-size:.42rem;line-height:1.18}.addon-card>button{align-self:center;font-size:.4rem}
  .house-configurator__note{margin-bottom:.45rem;font-size:.45rem;line-height:1.2}
  .house-cards{display:grid;grid-template-columns:1fr;gap:.3rem}
  .house-choice{display:grid;height:clamp(92px,15.4svh,116px);grid-template-columns:34% 66%}
  .house-choice>img,.house-choice__empty{width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
  .house-choice__body{min-height:0;height:100%;padding:.55rem;gap:.35rem}.house-choice h3{font-size:.68rem}.house-choice strong{font-size:.5rem}.house-choice__actions{gap:.65rem}.house-choice__actions button{font-size:.4rem}.house-choice--none .house-choice__body p{font-size:.45rem}

  .addons-summary,.house-summary{left:.5rem;right:auto;bottom:.45rem;width:calc(100vw - 1rem);max-height:102px;margin:0;padding:.45rem .55rem;grid-template-columns:minmax(0,1fr) auto auto;gap:.35rem .6rem;overflow:hidden;translate:0 0}
  .addons-summary,.house-summary{height:94px;grid-template-columns:minmax(0,1fr) 4.5rem 5.4rem;grid-template-rows:auto 1fr}
  .addons-summary>h3,.house-summary>h3{grid-column:1/3;grid-row:1;font-size:.58rem}
  .addons-summary .house-summary__breakdown,.house-summary .house-summary__breakdown{display:flex!important;grid-column:1;grid-row:2;flex-direction:row;gap:.65rem!important;overflow-x:auto;scrollbar-width:none}
  .house-summary__item{display:flex!important;min-width:max-content;gap:.3rem!important;border:0}.house-summary__item span{display:block}.house-summary__item small{display:none}.house-summary__item strong,.house-summary__item b{font-size:.45rem}.house-summary__grand-total small{font-size:.4rem}.house-summary__grand-total strong{font-size:.62rem}.addons-summary a,.house-summary a{padding:.5rem;font-size:.45rem;white-space:normal;text-align:center}
  .addons-summary .house-summary__grand-total,.house-summary .house-summary__grand-total{grid-column:2;grid-row:2}
  .addons-summary>a,.house-summary>a{display:grid;grid-column:3;grid-row:1/3;align-self:stretch;place-items:center}
  .mobile-contact-cluster{bottom:6.8rem;padding:.2rem}.mobile-contact-cluster a,.mobile-contact-cluster button{width:1.75rem;height:1.75rem}.mobile-contact-cluster svg{width:.85rem;height:.85rem}
  .model-step--options .addons-configurator,.model-step--typologies .house-configurator{padding-right:2.45rem}

  .map-place-story{top:4.7rem!important;width:calc(100vw - 4.5rem)}
  .map-place-story h3{margin-bottom:.4rem!important}.map-place-story__time{margin-bottom:.45rem!important;font-size:.48rem!important}.map-place-story>p:last-child{font-size:.58rem!important;line-height:1.32!important}
  .project-map__environment-copy{top:4.7rem;bottom:auto;height:auto}.project-map__environment-copy p{align-self:start;margin-top:2.6rem;padding:0;font-size:.58rem;line-height:1.32}
  .map-city-labels text{font-size:20px!important;font-weight:600;opacity:1!important;paint-order:stroke;stroke:rgba(0,0,0,.85);stroke-width:3px}
  .parcel-map__available-labels{font-size:16px;font-weight:800}.parcel-map__labels .is-sold{font-size:13px;opacity:.8}
}

@media(max-width:800px) and (orientation:portrait){
  #disena:before{inset:auto;left:50%;top:50%;width:100svh;height:100vw;background-size:cover;transform:translate(-50%,-50%) rotate(90deg)}
}

/* Contraste de navegación en los dos capítulos de fondo claro. */
.finance-active .brand--header img,.finance-active .header-social svg,.finance-active .mobile-contact-cluster svg{filter:brightness(0)}
.finance-active .side-index,.finance-active .side-index a,.finance-active .side-index .side-index__main,.finance-active .side-index .side-index__submenu a{color:#111}
.finance-active .side-index a,.finance-active .side-index .side-index__main,.finance-active .side-index .side-index__submenu a{text-shadow:none}
.finance-active .side-index a.is-active,.finance-active .side-index .side-index__main.is-active{background:#111;color:#fff}
.finance-active .mobile-contact-cluster{border-color:rgba(0,0,0,.5);background:rgba(236,235,230,.9)}

/* Agenda amplia y legible, sin invadir el índice lateral. */
@media(min-width:801px){
  .visit{padding-top:clamp(6.2rem,10vh,8rem)}
  .visit__contact{width:calc(100vw - var(--chapter-title-left,clamp(2rem,5vw,6rem)) - clamp(27rem,31vw,36rem))}
  .visit__contact h2{margin-bottom:clamp(1.4rem,3vh,2.4rem)}
  .visit__layout{grid-template-columns:minmax(250px,.72fr) minmax(420px,1.28fr);gap:clamp(1.5rem,3vw,3.5rem)}
  .visit__summary,.visit__contact form{padding-top:1rem}
  .visit__summary h3,.visit__contact legend{margin-bottom:.9rem;font-size:.78rem}
  .visit__summary pre{font-size:clamp(.82rem,1vw,1rem);line-height:1.65}
  .visit__contact form{gap:.7rem}.visit__contact fieldset{gap:.55rem}
  .visit__contact label{grid-template-columns:10.5rem 1fr;font-size:.68rem}
  .visit__contact input{height:2.6rem;padding:.5rem .7rem;font-size:.82rem}
  .visit__message-label textarea{height:4.4rem;font-size:.82rem}
  .visit__contact form>button{width:min(270px,100%);padding:.85rem 1.2rem;font-size:.72rem}
  .visit footer{font-size:.58rem}
}
@media(min-width:801px) and (max-width:1250px){
  .visit__contact{width:calc(100vw - var(--chapter-title-left,2rem) - 19rem)}
  .visit__layout{grid-template-columns:minmax(180px,.7fr) minmax(0,1.3fr);gap:1.25rem}
  .visit__contact label{grid-template-columns:7.2rem minmax(0,1fr)}
}
@media(max-width:800px){
  .visit{height:100svh;min-height:0;padding:4.8rem .9rem .6rem;overflow:hidden}
  .visit__contact{width:100%}.visit__contact h2{margin-bottom:.75rem;font-size:clamp(1.75rem,8vw,2.4rem)}
  .visit__layout{grid-template-columns:minmax(105px,.7fr) minmax(0,1.3fr);gap:.75rem}
  .visit__summary,.visit__contact form{padding-top:.55rem}.visit__summary h3,.visit__contact legend{margin-bottom:.4rem;font-size:.55rem}
  .visit__summary pre{font-size:clamp(.5rem,2.15vw,.65rem);line-height:1.5}
  .visit__contact form{gap:.32rem}.visit__contact fieldset{gap:.24rem}
  .visit__contact label{grid-template-columns:5.4rem minmax(0,1fr);gap:.35rem;font-size:.47rem}
  .visit__contact input{height:1.8rem;padding:.28rem .4rem;font-size:.6rem}
  .visit__message-label textarea{height:2.8rem;min-height:0;padding:.35rem;font-size:.6rem}
  .visit__contact form>button{width:100%;padding:.55rem;font-size:.56rem}
  .visit footer{gap:.45rem;padding-top:.45rem;font-size:.42rem;line-height:1.3}.visit footer span+span:before{margin-right:.45rem}
}

/* Distribución definitiva de Casas opcionales: dos tarjetas protagonistas y una franja menor. */
@media(min-width:801px){
  .model-step--typologies{display:flex;height:100svh;padding-top:clamp(6rem,9vh,7.5rem);padding-bottom:clamp(7rem,12vh,8.5rem);flex-direction:column;justify-content:flex-start}
  .house-configurator{display:flex;width:100%;height:100%;max-width:none;margin:0;flex-direction:column}
  .house-cards{display:grid;min-height:0;flex:1;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:minmax(0,1fr) minmax(105px,.3fr);gap:.8rem;height:auto}
  .house-choice{display:grid;height:100%;min-height:0;grid-template-rows:minmax(0,58%) minmax(0,42%)}
  .house-choice--none{grid-column:1/-1;grid-template-columns:30% 70%;grid-template-rows:1fr}
  .house-choice>img,.house-choice__empty{width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
  .house-choice__body{height:100%;min-height:0}
}
@media(max-width:800px){
  .model-step--typologies{display:flex!important;height:100svh!important;min-height:100svh!important;padding:4.8rem .65rem 7rem!important;flex-direction:column!important;justify-content:flex-start!important;align-content:normal!important;overflow:hidden!important}
  .model-step--typologies .house-configurator{display:flex!important;width:100%!important;height:100%!important;min-height:0!important;margin:0!important;padding-right:2.5rem!important;flex-direction:column!important}
  .house-configurator h2{flex:0 0 auto;margin:0 0 .45rem!important}
  .house-configurator__note{flex:0 0 auto;margin:0 0 .55rem!important}
  .house-cards{display:grid!important;min-height:0!important;height:auto!important;flex:1 1 auto!important;grid-template-columns:1fr!important;grid-template-rows:minmax(0,1fr) minmax(0,1fr) minmax(82px,.34fr)!important;gap:.45rem!important}
  .house-choice{display:grid!important;width:100%!important;height:100%!important;min-height:0!important;grid-template-columns:34% 66%!important;grid-template-rows:1fr!important}
  .house-choice>img,.house-choice__empty{width:100%!important;height:100%!important;aspect-ratio:auto!important;object-fit:cover!important}
  .house-choice__body{height:100%!important;min-height:0!important;padding:.75rem!important;gap:.55rem!important}
  .house-choice--none{grid-template-columns:34% 66%!important}
}

/*
 * REGLA MAESTRA DE TÍTULOS
 * “Modelo económico” es la única referencia de posición y tipografía.
 * Este bloque debe permanecer al final para evitar variaciones entre capítulos.
 */
:root{
  --master-title-left:var(--pad);
  --master-title-top:clamp(7rem,12vw,12rem);
  --master-title-size:clamp(2.6rem,4.2vw,4.5rem);
}

:is(
  .model-cover__heading h2,
  .parcel-map__intro h2,
  .mobile-section-title,
  .addons-configurator h2,
  .house-configurator h2,
  .economic-configurator h2,
  .visit__contact h2,
  .project-map__details strong,
  .project-map__environment-copy h3,
  .map-place-story h3
){
  margin-top:0!important;
  font-family:Manrope,sans-serif!important;
  font-size:var(--master-title-size)!important;
  font-weight:300!important;
  line-height:.92!important;
  letter-spacing:-.055em!important;
  text-align:left!important;
  text-transform:uppercase!important;
}

@media(min-width:801px){
  .model-cover{padding-left:var(--master-title-left)!important}
  .model-cover__content{padding-top:var(--master-title-top)!important}

  .model-step--options,
  .model-step--typologies,
  .project-summary,
  .visit{
    padding-top:var(--master-title-top)!important;
    padding-left:var(--master-title-left)!important;
  }

  .parcel-map__intro,
  .project-map__details,
  .project-map__environment-copy,
  .map-place-story{
    left:var(--master-title-left)!important;
    top:var(--master-title-top)!important;
    right:auto!important;
    bottom:auto!important;
    translate:0 0!important;
    transform:none!important;
    text-align:left!important;
  }

  .addons-configurator,
  .house-configurator,
  .economic-configurator,
  .visit__contact{
    margin-left:0!important;
  }
}

@media(max-width:800px){
  :root{
    --master-title-left:1rem;
    --master-title-top:5.2rem;
    --master-title-size:clamp(1.15rem,5vw,1.55rem);
  }

  .model-cover{padding-left:var(--master-title-left)!important}
  .model-cover__content{padding-top:var(--master-title-top)!important}

  .model-step--options,
  .model-step--typologies,
  .project-summary,
  .visit{
    padding-top:var(--master-title-top)!important;
    padding-left:var(--master-title-left)!important;
  }

  .mobile-section-title,
  .parcel-map__intro,
  .project-map__details,
  .project-map__environment-copy,
  .map-place-story{
    left:var(--master-title-left)!important;
    top:var(--master-title-top)!important;
    right:auto!important;
    bottom:auto!important;
    translate:0 0!important;
    transform:none!important;
    text-align:left!important;
  }
}
