/* =========================================================
   Cañadas del Sur · Opción 3 (estilo Somerstone)
   ========================================================= */
:root{
  /* Paleta Cañadas del Sur */
  --bosque:#0B1F16;
  --bosque-2:#12301F;
  --bosque-3:#1C4230;
  --oro:#C2A15A;
  --oro-claro:#DCC48E;
  --piedra:#ECEEE7;
  --tinta:#16271D;
  --niebla:#A7B5AB;
  --blanco:#FBFBF8;
  /* alias usados en el diseño */
  --black:var(--bosque);
  --g33:var(--bosque-2);
  --g40:rgba(167,181,171,.3);
  --g60:#8E9C92;
  --g80:#D3DAD3;
  --f4:var(--piedra);
  --white:var(--blanco);
  --gold:var(--oro);
  --line:#C9D0C8;
  --pad:32px;
  --r:14px;
  --r-lg:22px;
  --r-btn:10px;
  --ease:cubic-bezier(.33,1,.68,1);
  --font:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;overscroll-behavior:none}
html.is-locked{overflow:hidden}
body{margin:0;background:var(--white);color:var(--tinta);font-family:var(--font);font-size:14px;line-height:1.43;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
p,h1,h2,h3,h4{margin:0}
figure{margin:0}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
[hidden]{display:none!important}

/* ---------- tipografía ---------- */
.h1{font-size:clamp(44px,5vw,72px);line-height:.95;font-weight:700;letter-spacing:-.036em;color:var(--white)}
.h2{font-size:clamp(36px,4vw,57.6px);line-height:.95;font-weight:700;letter-spacing:-.032em;color:var(--black)}
.h3{font-size:clamp(26px,2.25vw,32px);line-height:.95;font-weight:700;letter-spacing:-.032em;color:var(--tinta)}
.h3--s{font-size:clamp(22px,1.8vw,26px);line-height:1.05}
.h4{font-size:clamp(22px,1.8vw,25.6px);line-height:1.15;font-weight:700;letter-spacing:-.032em}
.body-l{font-size:clamp(16px,1.35vw,19.2px);line-height:1.25;letter-spacing:-.016em}
.body-m{font-size:16px;line-height:1.3;letter-spacing:-.012em;color:var(--white)}
.body-s{font-size:14.4px;line-height:1.25;letter-spacing:-.008em}
.badge-t{font-size:12.8px;line-height:.95;font-weight:700;letter-spacing:-.012em;text-transform:uppercase;color:var(--tinta)}
.lbl{font-size:11px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--g60);margin-bottom:10px}
.c-w{color:var(--white)}.c-33{color:var(--tinta)}.c-40{color:rgba(167,181,171,.7)}.c-60{color:var(--niebla)}
.c-80{color:rgba(22,39,29,.82)}.c-80w{color:rgba(251,251,248,.78)}
.page .c-60,.footer .c-60{color:#6F7E74}
.club .c-60,.contact .c-60,.pslider .c-60,.calc .c-60,.plan .c-60,.prop .c-60{color:var(--niebla)}
strong{font-weight:700}

/* ---------- ruido ---------- */
.noise{position:absolute;inset:0;background:url(../assets/img/textura/ruido.png) repeat;background-size:220px;opacity:.05;pointer-events:none;z-index:0}
.noise--dark{opacity:.07;mix-blend-mode:screen}
.noise--hero{opacity:.06;mix-blend-mode:overlay;z-index:3}

/* ---------- badge ---------- */
.badge{display:flex;align-items:center;gap:8px}
.badge i{width:8px;height:8px;background:var(--oro);border-radius:1.5px;transform:rotate(45deg) scale(.8);flex:none}
.badge span{font-size:12.8px;line-height:.95;font-weight:700;text-transform:uppercase;letter-spacing:-.012em;color:var(--tinta)}
.badge--w i{background:var(--oro)}
.badge--w span{color:var(--white)}

/* ---------- botones ---------- */
.arr{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2.2;flex:none}
.btn{display:inline-flex;align-items:center;gap:10px;background:var(--oro);color:var(--bosque);border:1px solid var(--oro);border-radius:var(--r-btn);padding:13px 18px 13px 14px;font-size:12.8px;font-weight:700;text-transform:uppercase;letter-spacing:.01em;line-height:1;white-space:nowrap;box-shadow:0 6px 18px -10px rgba(11,31,22,.55);transition:background .35s,border-color .35s,transform .35s var(--ease),box-shadow .35s}
.btn:hover{background:var(--oro-claro);border-color:var(--oro-claro);transform:translateY(-1px);box-shadow:0 10px 24px -12px rgba(11,31,22,.6)}
.btn .arr{width:12px;height:12px;padding:0;box-sizing:content-box}
.btn--line{background:transparent;color:var(--tinta);border-color:rgba(22,39,29,.35);box-shadow:none}
.btn--line:hover{background:var(--bosque);color:var(--blanco);border-color:var(--bosque)}
.btn--full{width:100%;justify-content:center;padding:16px}
.lnk{display:inline-flex;align-items:center;gap:8px;font-size:12.8px;font-weight:700;text-transform:uppercase;letter-spacing:-.012em;line-height:1}
.lnk .hs{box-shadow:0 5px 0 -4px var(--oro)}
.lnk{padding-bottom:6px}
.lnk .arr{color:var(--oro)}
.lnk--w{color:var(--white)}
/* hover stagger */
.hs{position:relative;display:inline-block;overflow:hidden;vertical-align:top;line-height:1.05}
.hs__a,.hs__b{display:block;white-space:nowrap}
.hs__b{position:absolute;left:0;top:0}
.lnk .hs__b{top:0}
.hs .ch{display:inline-block;transition:transform .5s cubic-bezier(.33,1,.68,1);will-change:transform}
.hs__a .ch:nth-child(odd){transform:translateY(110%)}
.hs__b .ch:nth-child(odd){transform:translateY(0)}
.hs__a .ch:nth-child(even){transform:translateY(0)}
.hs__b .ch:nth-child(even){transform:translateY(-110%)}
.is-h .hs__a .ch:nth-child(odd){transform:translateY(0)}
.is-h .hs__b .ch:nth-child(odd){transform:translateY(-110%)}
.is-h .hs__a .ch:nth-child(even){transform:translateY(110%)}
.is-h .hs__b .ch:nth-child(even){transform:translateY(0)}
.no-tr .hs .ch{transition:none!important}

.circ{width:40px;height:40px;border-radius:999px;border:1px solid rgba(220,196,142,.55);display:grid;place-items:center;color:var(--oro-claro);transition:background .3s,color .3s,border-color .3s}
.circ svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6}
.circ:hover{background:var(--oro);border-color:var(--oro);color:var(--bosque)}

/* =========================================================
   LOADER
   ========================================================= */
.loader{position:fixed;inset:0;z-index:200;background:var(--white);overflow:hidden}
.no-loader .loader{display:none}
.loader__logo{position:absolute;left:50%;top:50%;width:150px;transform:translate(-50%,-50%)}
.loader__logo img{width:100%;height:auto}
.loader__back{opacity:.1}
.loader__front{position:absolute;inset:0;clip-path:inset(100% 0 0 0)}
.loader__imgs{position:absolute;left:8px;right:8px;bottom:8px;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;height:22vh}
.loader__imgs figure{position:relative;overflow:hidden;opacity:0;border-radius:12px}
.loader__imgs img{width:100%;height:100%;object-fit:cover}
.loader__wipe{position:absolute;inset:0;background:var(--white);visibility:hidden}
.loader__wipe .noise{opacity:.05}

/* =========================================================
   NAVBAR
   ========================================================= */
.nav{position:fixed;left:0;right:0;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:24px var(--pad);pointer-events:none;transition:transform .6s var(--ease)}
.nav>*{pointer-events:auto}
.nav.is-hidden{transform:translateY(-120%)}
.nav__logo{display:block;width:170px;opacity:0;visibility:hidden;transition:opacity .4s,visibility .4s}
.nav.is-light .nav__logo{opacity:1;visibility:visible}
.nav__logo{position:relative}
.nav__logo img{width:100%;height:auto;transition:opacity .4s}
.nav__logo-oscuro{position:absolute;left:0;top:0;opacity:0}
.nav.is-dark .nav__logo-claro{opacity:0}
.nav.is-dark .nav__logo-oscuro{opacity:1}
.nav__logo-oscuro{filter:drop-shadow(0 2px 8px rgba(11,31,22,.6))}
.nav__logo-claro{filter:drop-shadow(0 1px 6px rgba(251,251,248,.7))}
.nav__btns{display:flex;gap:8px;margin-left:auto}
.nav__menu{display:inline-flex;align-items:center;gap:10px;background:rgba(11,31,22,.82);color:var(--blanco);border:1px solid rgba(220,196,142,.35);border-radius:var(--r-btn);padding:13px 18px 13px 14px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color .3s,background .3s;font-size:12.8px;font-weight:700;text-transform:uppercase;letter-spacing:-.012em;line-height:1}
.burger{display:flex;flex-direction:column;align-items:flex-end;gap:3px;width:16px}
.burger i{display:block;height:1.5px;background:currentColor;width:100%;transition:transform .4s var(--ease),opacity .3s,width .3s}
.burger i:nth-child(2){width:70%}
.burger i:nth-child(3){width:85%}
.nav__menu:hover .burger i{width:100%}
.nav__menu:hover{border-color:var(--oro)}
.burger i{border-radius:2px}
.burger--x i:nth-child(1){transform:translateY(4.5px) rotate(45deg)}
.burger--x i:nth-child(2){opacity:0}
.burger--x i:nth-child(3){width:100%;transform:translateY(-4.5px) rotate(-45deg)}

/* =========================================================
   MENÚ
   ========================================================= */
.menu{position:fixed;inset:0;z-index:150;background:var(--bosque);color:var(--white);display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,40%);grid-template-rows:auto minmax(0,1fr) auto;column-gap:56px;padding:24px var(--pad) var(--pad);clip-path:inset(0 0 100% 0);visibility:hidden}
.menu.is-open{visibility:visible}
.menu__top{position:relative;grid-column:1/-1;display:flex;justify-content:space-between;align-items:center}
.menu__logo{width:170px;height:auto}
.menu__nav{position:relative;grid-column:1;grid-row:2;align-self:center;display:flex;flex-direction:column;gap:2px;padding:28px 0;max-height:100%;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:none;counter-reset:mi}
.menu__nav::-webkit-scrollbar{display:none}
.menu__nav a{position:relative;display:flex;align-items:baseline;gap:18px;overflow:hidden;flex:none;font-size:clamp(24px,min(5vw,6.6vh),74px);line-height:1.04;font-weight:700;letter-spacing:-.04em;color:var(--white);counter-increment:mi}
.menu__nav a::before{content:counter(mi,decimal-leading-zero);font-size:12px;font-weight:700;letter-spacing:0;color:var(--oro);opacity:.8;transform:translateY(-1.6em);min-width:18px}
.menu__nav a span{display:inline-block;transition:color .3s}
.menu__nav a:hover span,.menu__nav a.is-hover span{color:var(--oro)}
.menu__nav a span{transition:color .3s,transform .5s var(--ease)}
.menu__nav a.is-hover span{transform:translateX(10px)}
.menu__nav:hover a:not(.is-hover) span{color:rgba(251,251,248,.45)}
@media (max-height:640px){
  .menu__nav{padding:12px 0}
  .menu__foot{padding-top:14px;gap:10px 40px;font-size:12px}
  .menu__foot .lbl{margin-bottom:4px}
  .menu__foot>div:nth-child(2){display:none}
}
/* vista previa de sección */
.menu__prev{position:relative;grid-column:2;grid-row:2;align-self:center;height:100%;max-height:min(68vh,620px);margin:20px 0;border-radius:var(--r-lg);overflow:hidden;background:var(--bosque-2);border:1px solid rgba(220,196,142,.2);isolation:isolate}
.menu__prev img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.06);filter:blur(8px) saturate(.9);transition:opacity .75s ease,transform 1.6s var(--ease),filter .75s ease}
.menu__prev img.is-on{opacity:1;transform:scale(1);filter:blur(0) saturate(1);z-index:1}
.menu__prev-cap{transition:opacity .35s ease,transform .5s var(--ease)}
.menu__prev-cap.is-swap{opacity:0;transform:translateY(8px)}
.menu__prev::after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(to top,rgba(11,31,22,.65),rgba(11,31,22,0) 45%);pointer-events:none}
.menu__prev-cap{position:absolute;left:22px;bottom:20px;z-index:3;display:flex;align-items:center;gap:10px;font-size:12.8px;font-weight:700;text-transform:uppercase;color:var(--blanco)}
.menu__prev-cap::before{content:"";width:8px;height:8px;border-radius:1.5px;background:var(--oro);transform:rotate(45deg)}
.menu__foot{position:relative;grid-column:1/-1;display:flex;flex-wrap:wrap;gap:24px 64px;align-items:flex-end;border-top:.5px solid var(--g40);padding-top:24px;font-size:13px;text-transform:uppercase;font-weight:600;line-height:1.5}
.menu__foot a:hover{color:var(--oro)}
.menu__foot .lbl{color:var(--oro)}
.menu__copy{margin-left:auto;color:var(--niebla)}

/* =========================================================
   HERO
   ========================================================= */
.hero{position:sticky;top:0;height:100vh;height:100svh;min-height:600px;overflow:hidden;background:var(--bosque);z-index:0}
.hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.95) brightness(.93) contrast(1.03)}
.hero__ov1{position:absolute;inset:0;background:var(--bosque);opacity:.1;mix-blend-mode:multiply;z-index:1}
.hero__ov2{position:absolute;inset:0;background:var(--black);opacity:0;z-index:4}
.hero__grad-top{position:absolute;inset:0;z-index:2;background:linear-gradient(to bottom,rgba(11,31,22,.42) 0%,rgba(11,31,22,.2) 20%,rgba(11,31,22,.06) 36%,rgba(11,31,22,0) 48%)}
.hero__grad-bot{position:absolute;left:0;right:0;bottom:0;height:72%;z-index:2;background:linear-gradient(to top,rgba(11,31,22,.74) 0%,rgba(11,31,22,.56) 22%,rgba(11,31,22,.34) 44%,rgba(11,31,22,.14) 66%,rgba(11,31,22,0) 88%)}
.hero__text{position:absolute;left:var(--pad);bottom:64px;z-index:5;width:min(600px,calc(100% - 2*var(--pad)));display:flex;flex-direction:column;align-items:flex-start;gap:32px}
.hero__logo{width:230px;height:auto}
.hero__text .h1{text-shadow:0 2px 24px rgba(11,31,22,.35)}
.hero__body{color:var(--white);max-width:430px;margin-top:-8px}
.hero__card{position:absolute;right:var(--pad);bottom:var(--pad);z-index:5;width:330px;background:rgba(18,48,31,.72);border:1px solid rgba(220,196,142,.28);border-radius:18px;padding:8px 8px 12px;box-shadow:0 20px 40px -20px rgba(0,0,0,.5);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.hero__card-img{border-radius:12px;overflow:hidden;aspect-ratio:312/157}
.hero__card-img img{width:100%;height:100%;object-fit:cover}
.hero__card-txt{padding:16px 12px 4px;display:flex;flex-direction:column;gap:20px}
.hero__card-txt .lnk{align-self:flex-end}
.scroll-ind{position:absolute;left:50%;bottom:var(--pad);z-index:5;width:20px;height:40px;margin-left:-10px;border:1px solid var(--white);border-radius:999px}
.scroll-ind i{position:absolute;left:50%;top:8px;width:6px;height:6px;margin-left:-3px;border-radius:50%;background:var(--oro);animation:sdot 1.8s var(--ease) infinite}
@keyframes sdot{0%{transform:translateY(0);opacity:0}25%{opacity:1}70%{transform:translateY(16px);opacity:0}100%{opacity:0}}

/* =========================================================
   PÁGINA
   ========================================================= */
.page{position:relative;z-index:2;background:var(--white);border-radius:var(--r-lg) var(--r-lg) 0 0;box-shadow:0 -20px 40px -20px rgba(11,31,22,.35)}
.page>.noise{border-radius:inherit}
.page>section{position:relative;z-index:1}
.page>.noise{z-index:0}

/* ----- 1. intro ----- */
.intro{padding:128px var(--pad) 64px;display:flex;flex-direction:column;gap:64px}
.intro__text{max-width:1140px;display:flex;flex-direction:column;gap:32px}
.intro__body{max-width:674px}
.reveal-type .w{display:inline-block;white-space:nowrap}
.reveal-type .c{display:inline-block}
.cols{display:flex;gap:16px}
.col{flex:1;display:flex;flex-direction:column;gap:32px;min-width:0}
.col__img,.member__img,.faq__img{position:relative;display:block;overflow:hidden;border-radius:var(--r);aspect-ratio:1/1;isolation:isolate}
.col__img img,.member__img img,.faq__img img{width:100%;height:100%;object-fit:cover;transform:scale(1.1)}
.wipe{position:absolute;inset:-1px;background:var(--white);z-index:2}
.wipe .noise{opacity:.05}
.col__txt{display:flex;flex-direction:column;gap:12px;max-width:380px}

/* ----- 2. carrusel ----- */
.logos{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:64px 0;display:flex;flex-direction:column;align-items:center;gap:64px;overflow:hidden}
.logos .h3{text-align:center;padding:0 var(--pad)}
.marquee{width:100%;overflow:hidden}
.marquee__track{display:flex;width:max-content;animation:mq 45s linear infinite}
.marquee:hover .marquee__track{animation-play-state:paused}
.marquee__set{display:flex;gap:16px;padding-right:16px}
.mq{width:330px;height:150px;flex:none;border-radius:var(--r);background:var(--piedra);border:1px solid #E1E5DC;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:0 24px;text-align:center}
.mq svg{width:40px;height:40px;fill:none;stroke:var(--oro);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.mq span{font-size:17px;font-weight:700;letter-spacing:-.03em;color:var(--tinta);line-height:1.1}
@keyframes mq{to{transform:translateX(-50%)}}

/* ----- 3. proceso ----- */
.process,.fin{padding:64px var(--pad);display:flex;flex-direction:column;align-items:center;gap:64px}
.process{border-bottom:1px solid var(--line)}
.process__intro{width:100%;max-width:1140px;display:flex;align-items:flex-end;justify-content:space-between;gap:32px}
.process__intro>div{display:flex;flex-direction:column;gap:32px;max-width:640px}
.pslider{position:relative;width:100%;max-width:1080px;height:456px;background:var(--bosque);border:1px solid var(--g40);border-radius:var(--r-lg);isolation:isolate;overflow:hidden;transform-origin:50% 0}
.pslide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .6s ease,visibility .6s}
.pslide.is-on{opacity:1;visibility:visible}
.pslide__txt{position:absolute;left:64px;top:64px;width:min(420px,42%);display:flex;flex-direction:column;gap:16px;z-index:2}
.pslide__txt .h3{font-size:clamp(26px,2.3vw,33px)}
.pslide__media{position:absolute;right:0;top:0;bottom:0;width:52%;clip-path:url(#casa-mask);-webkit-clip-path:url(#casa-mask)}
.pslide__media img,.pslide__media video{width:100%;height:100%;object-fit:cover;filter:saturate(.85) brightness(.92);transform:scale(1.08);transition:transform 1.4s var(--ease)}
.pslide.is-on .pslide__media img,.pslide.is-on .pslide__media video{transform:scale(1)}
.pslider__ctrl{position:absolute;left:64px;bottom:48px;z-index:3;display:flex;flex-direction:column;gap:22px}
.pslider__arrows{display:flex;gap:8px}
.pslider__dots{display:flex;gap:3px}
.pslider__dots button{width:10px;height:6px;border-radius:99px;background:rgba(167,181,171,.35);transition:background .3s,width .4s var(--ease)}
.pslider__dots button.is-on{background:var(--oro);width:26px}
.svgdefs{position:absolute;width:0;height:0}

/* ----- 4. prototipos ----- */
.props{display:flex;align-items:center;gap:64px;padding:64px 0 64px var(--pad);overflow:hidden}
.props__text{flex:0 0 min(415px,32%);display:flex;flex-direction:column;gap:24px}
.props__list{flex:1;min-width:0;display:flex;gap:16px;overflow-x:auto;padding-bottom:20px;cursor:grab;scrollbar-width:thin;scrollbar-color:var(--oro) transparent;-webkit-overflow-scrolling:touch}
.props__list.is-drag{cursor:grabbing;user-select:none}
.props__list::-webkit-scrollbar{height:4px}
.props__list::-webkit-scrollbar-thumb{background:var(--oro);border-radius:4px}
.props__pad{flex:0 0 16px}
.prop{flex:0 0 400px;border:1px solid rgba(11,31,22,.12);border-radius:var(--r-lg);overflow:hidden;background:var(--bosque);isolation:isolate;display:flex;flex-direction:column}
.prop__img{height:202px;overflow:hidden}
.prop__img img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease)}
.prop:hover .prop__img img{transform:scale(1.05)}
.prop__info{padding:24px;display:flex;flex-direction:column;gap:22px}
.prop__rows{display:flex;flex-direction:column;gap:10px}
.row{display:flex;justify-content:space-between;align-items:center;gap:16px}
.row__end{display:flex;align-items:center;gap:12px}
.acc{font-size:12px;color:var(--gold);line-height:1;opacity:0;transform:translateX(6px);transition:opacity .4s,transform .4s var(--ease)}
.prop:hover .acc{opacity:1;transform:none}
.divider{display:block;height:1px;background:rgba(167,181,171,.22);margin:6px 0}

/* ----- 5. casa club (negro) ----- */
.club,.contact{background:var(--bosque);margin:0 12px;border-radius:var(--r-lg);padding:128px var(--pad);isolation:isolate;display:flex;flex-direction:column;align-items:center;gap:64px;overflow:hidden}
.club__intro{position:relative;z-index:1;max-width:800px;display:flex;flex-direction:column;align-items:center;gap:32px;text-align:center}
.club__grid{position:relative;z-index:1;width:100%;max-width:1376px;display:flex;gap:16px}
.tcard{position:relative;border-radius:var(--r-lg);padding:32px;display:flex;flex-direction:column;gap:24px;overflow:hidden}
.tcard--big{flex:0 0 54.2%;background:var(--bosque-2);border:1px solid var(--g40)}
.tcard--big .h3{max-width:620px;font-size:clamp(26px,2.5vw,36px)}
.tcard--big .body-s{max-width:560px}
.tcard--grey{background:var(--bosque-3);border:1px solid var(--g40);flex:1}
.club__side{flex:1;display:flex;flex-direction:column;gap:16px;min-width:0}
.tcard__mark{position:absolute;right:28px;top:24px;width:120px;opacity:.85;filter:drop-shadow(0 2px 10px rgba(11,31,22,.35));pointer-events:none}
.tcard__mark--s{width:84px;right:24px;top:20px}
.tcard .h3,.tcard .body-s{position:relative;padding-right:90px}
.tcard--big .h3,.tcard--big .body-s{padding-right:120px}
.tcard__imgs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:auto}
.tcard__imgs a,.tcard__thumbs a{display:block;overflow:hidden;border-radius:10px;isolation:isolate;aspect-ratio:4/3}
.tcard__imgs img,.tcard__thumbs img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease)}
.tcard__imgs a:hover img,.tcard__thumbs a:hover img{transform:scale(1.06)}
.tcard__thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:auto}
.club__list{position:relative;z-index:1;max-width:900px;text-align:center}

/* ----- 6. ubicación (equipo) ----- */
.team,.videos{padding:128px var(--pad) 64px;display:flex;flex-direction:column;align-items:center;gap:64px;border-bottom:1px solid var(--line)}
.team__intro{max-width:680px;display:flex;flex-direction:column;align-items:center;gap:32px;text-align:center}
.team__cols{display:flex;justify-content:center;gap:16px;width:100%}
.member{flex:0 1 560px;display:flex;flex-direction:column;gap:32px}
.member__img{aspect-ratio:4/3}
.member__img img{transition:transform 1.2s var(--ease)}
.member__txt{display:flex;flex-direction:column;gap:12px}
.member__txt .badge-t span{font-weight:700}
.stats{width:100%;max-width:1136px;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}
.stat{padding:32px 0 0;display:flex;flex-direction:column;gap:14px}
.stat+.stat{padding-left:24px;border-left:1px solid var(--line)}
.stat__n{font-size:clamp(40px,4vw,57.6px);font-weight:700;letter-spacing:-.04em;line-height:.9;color:var(--bosque)}
.stat__n span{color:var(--oro)}

/* ----- 7. financiamiento ----- */
.fin__lead{max-width:440px}
.fin__grid{width:100%;max-width:1140px;display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.plan{background:var(--bosque);border:1px solid rgba(11,31,22,.12);border-radius:var(--r-lg);padding:24px;display:flex;flex-direction:column;gap:16px;min-height:260px}
.plan__price{font-size:clamp(30px,2.6vw,38px);font-weight:700;letter-spacing:-.04em;color:var(--white);line-height:1;margin-top:auto}
.plan__price small{font-size:14px;font-weight:600;color:var(--oro-claro);letter-spacing:0}
.plan .divider{margin:0}
.calc{position:relative;width:100%;max-width:1140px;background:var(--bosque-2);border:1px solid var(--g40);border-radius:var(--r-lg);padding:48px 64px;display:grid;grid-template-columns:1fr 1fr;gap:64px;overflow:hidden}
.calc__l,.calc__r{position:relative;display:flex;flex-direction:column;gap:18px}
.calc__r{justify-content:center;gap:14px}
.calc__r .row{padding-bottom:14px;border-bottom:1px solid rgba(167,181,171,.2)}
.calc__r .row .badge-t:last-child{font-size:15px}
.calc__m2{font-size:clamp(48px,5vw,72px);font-weight:700;letter-spacing:-.04em;line-height:.95;color:var(--oro-claro)}
.calc input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:4px;border-radius:99px;background:var(--g40);outline:none;margin:10px 0}
.calc input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--oro);border:4px solid var(--bosque-2);box-shadow:0 0 0 1px var(--oro);cursor:pointer}
.calc input[type=range]::-moz-range-thumb{width:12px;height:12px;border-radius:50%;background:var(--oro);border:4px solid var(--bosque-2);box-shadow:0 0 0 1px var(--oro);cursor:pointer}
.calc__legal{font-size:11.5px;line-height:1.35;color:rgba(167,181,171,.7)}

/* ----- 8. avance de obra ----- */
.vgrid{width:100%;max-width:1080px;display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.vcard{position:relative;display:block;aspect-ratio:349/620;border-radius:var(--r-lg);border:1px solid rgba(11,31,22,.12);overflow:hidden;background:var(--bosque);isolation:isolate}
.vcard img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.vcard:hover img{transform:scale(1.05)}
.vcard::before{content:"";position:absolute;inset:0 0 auto;height:30%;background:linear-gradient(rgba(11,31,22,.65),transparent);z-index:1}
.vcard__tag{position:absolute;left:16px;top:16px;z-index:2;display:flex;align-items:center;gap:8px;color:var(--white);font-size:12.8px;font-weight:700;text-transform:uppercase}
.vcard__tag i{width:28px;height:28px;border-radius:50%;background:var(--bosque) url(../assets/img/logos/logo-marca-oro.png) center/18px auto no-repeat}
.vcard__ico{position:absolute;left:12px;bottom:12px;z-index:2;width:40px;height:40px;border-radius:50%;background:rgba(11,31,22,.55);display:grid;place-items:center;color:var(--white)}
.vcard__ico svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6}
.vreel{cursor:pointer}
.vreel__v{width:100%;height:100%;object-fit:cover;display:block}
.vreel__snd{position:absolute;left:12px;bottom:12px;z-index:3;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;color:var(--blanco);background:rgba(11,31,22,.55);border:1px solid rgba(251,251,248,.25);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .3s,color .3s}
.vreel__snd svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round;stroke-linecap:round}
.vreel__snd .i-on{display:none}
.vreel__snd[aria-pressed=true] .i-on{display:block}
.vreel__snd[aria-pressed=true] .i-off{display:none}
.vreel__snd:hover{background:var(--oro);color:var(--bosque);border-color:var(--oro)}
.vreel__ig{position:absolute;right:12px;bottom:12px;z-index:3;display:inline-flex;align-items:center;gap:8px;padding:10px 14px 10px 12px;border-radius:999px;background:var(--oro);color:var(--bosque);font-size:12px;font-weight:700;text-transform:uppercase;line-height:1;box-shadow:0 8px 20px -10px rgba(11,31,22,.6);transition:background .3s,transform .35s var(--ease)}
.vreel__ig svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8}
.vreel__ig:hover{background:var(--oro-claro);transform:translateY(-1px)}
.vreel::after{content:"";position:absolute;inset:auto 0 0;height:30%;background:linear-gradient(to top,rgba(11,31,22,.55),transparent);z-index:2;pointer-events:none}
.vcard.is-more{display:none}
.vgrid.is-all .vcard.is-more{display:block}
.plus{width:40px;height:40px;border-radius:12px;border:1px solid var(--line);display:grid;place-items:center;margin-top:-32px;transition:background .3s}
.plus svg{width:14px;height:14px;fill:none;stroke:var(--tinta);stroke-width:1.6;transition:transform .4s var(--ease)}
.plus:hover{background:var(--oro);border-color:var(--oro)}
.plus[aria-expanded=true] svg{transform:rotate(45deg)}

/* ----- 9. preguntas ----- */
.faq{padding:128px var(--pad);display:grid;grid-template-columns:1fr 1fr;gap:64px;max-width:1440px;margin:0 auto}
.faq__l{display:flex;flex-direction:column;gap:32px;align-self:start;position:sticky;top:110px}
.faq__img{aspect-ratio:16/10;max-width:560px}
.faq__list{border-top:1px solid var(--line)}
.qa{border-bottom:1px solid var(--line)}
.qa summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:24px;padding:26px 0;cursor:pointer;font-size:clamp(17px,1.4vw,20px);font-weight:700;letter-spacing:-.03em;color:var(--tinta);line-height:1.15}
.qa summary::-webkit-details-marker{display:none}
.qa summary i{position:relative;flex:none;width:34px;height:34px;border-radius:10px;border:1px solid var(--line);transition:background .3s,border-color .3s}
.qa[open] summary i,.qa summary:hover i{background:var(--oro);border-color:var(--oro)}
.qa summary i::before,.qa summary i::after{content:"";position:absolute;left:50%;top:50%;width:12px;height:1.5px;border-radius:2px;background:var(--tinta);transform:translate(-50%,-50%);transition:transform .4s var(--ease)}
.qa summary i::after{transform:translate(-50%,-50%) rotate(90deg)}
.qa[open] summary i::after{transform:translate(-50%,-50%) rotate(0)}
.qa p{padding:0 56px 26px 0;max-width:620px}

/* ----- 10. contacto ----- */
.contact{position:relative;flex-direction:row;align-items:center;justify-content:space-between;gap:64px}
.contact__bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.7);opacity:.4;z-index:0}
.contact__ov{position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,31,22,.92) 30%,rgba(11,31,22,.45));z-index:0}
.contact__l{position:relative;z-index:1;max-width:620px;display:flex;flex-direction:column;gap:32px}
.contact__tel{display:flex;flex-direction:column;gap:6px}
.contact__tel .badge-t{margin-bottom:8px}
.contact__tel a{font-size:clamp(24px,2.2vw,32px);font-weight:700;letter-spacing:-.04em;color:var(--white);line-height:1.1}
.contact__tel a:hover{color:var(--oro)}
.form{position:relative;z-index:1;width:min(460px,100%);background:rgba(18,48,31,.78);border:1px solid rgba(220,196,142,.25);border-radius:var(--r-lg);padding:32px;display:flex;flex-direction:column;gap:18px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.fld{display:flex;flex-direction:column;gap:6px}
.fld span{font-size:11px;font-weight:700;text-transform:uppercase;color:var(--oro-claro);letter-spacing:.02em}
.fld input,.fld select{font:inherit;font-size:16px;color:var(--white);background-color:rgba(251,251,248,.06);border:1px solid rgba(167,181,171,.25);padding:12px 14px;border-radius:var(--r-btn);outline:none;transition:border-color .3s,background-color .3s;-webkit-appearance:none;appearance:none}
.fld select{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23DCC48E' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-size:16px;background-repeat:no-repeat;padding-right:38px}
.fld select option{color:#000}
.fld input:focus,.fld select:focus{border-color:var(--oro);background-color:rgba(251,251,248,.1)}
.form__check{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--g80);line-height:1.35}
.form__check input{margin-top:2px;accent-color:var(--oro)}
.form__check a{text-decoration:underline}
.form__error{font-size:13px;color:#ff8a80}
.form__ok{display:flex;flex-direction:column;gap:12px}

/* =========================================================
   FOOTER
   ========================================================= */
.footer{position:relative;z-index:2;background:var(--white);padding:32px var(--pad) 0;overflow:hidden}
.footer__top{display:flex;justify-content:space-between;gap:48px}
.footer__mark img{width:96px;height:auto}
.footer__cols{display:flex;gap:64px;padding-right:8%}
.footer__cols>div{display:flex;flex-direction:column;gap:6px;min-width:110px}
.footer__cols a{font-size:12px;font-weight:700;text-transform:uppercase;color:var(--tinta);letter-spacing:-.01em;line-height:1.5}
.footer__cols a:hover{color:var(--oro)}
.footer .lbl{color:#8E9C92}
.lbl--gap{margin-top:18px}
.footer__legal{margin-top:56px;max-width:720px;font-size:11.5px;line-height:1.4;color:var(--g60)}
.wordmark{margin-top:40px;overflow:hidden;line-height:.78;padding-bottom:.04em}
.wordmark__in{display:inline-block;white-space:nowrap;font-weight:600;letter-spacing:-.055em;color:var(--bosque);font-size:11vw;transform:translateY(.06em)}
.wordmark .l{display:inline-block}

/* =========================================================
   VISOR
   ========================================================= */
.lightbox{position:fixed;inset:0;z-index:300;background:rgba(11,31,22,.95);display:flex;align-items:center;justify-content:center;padding:64px 80px}
.lightbox[hidden]{display:none}
.lightbox__fig{max-width:100%;max-height:100%;display:flex;flex-direction:column;align-items:center;gap:14px}
.lightbox__fig img{max-width:100%;max-height:calc(100vh - 160px);object-fit:contain;border-radius:var(--r)}
.lightbox__fig figcaption{color:var(--g80);font-size:12.8px;font-weight:700;text-transform:uppercase}
.lightbox__close{position:absolute;top:20px;right:24px;color:var(--oro-claro);font-size:38px;line-height:1}
.lightbox__nav{position:absolute;top:50%;margin-top:-19px}
.lightbox__prev{left:24px}.lightbox__next{right:24px}

/* =========================================================
   ESTADOS INICIALES DE ANIMACIÓN (solo con JS)
   ========================================================= */
.js [data-fade],.js [data-rise]{opacity:0}
.js .hero__text>*,.js .hero__card,.js .scroll-ind{opacity:0}

/* =========================================================
   TEMA CLARO CON TEXTURA (fondo del loader en casi toda la página)
   ========================================================= */
:root{--verde-txt:#3D5646;--tex:url(../assets/img/textura/ruido.png)}
.page{background:var(--blanco)}
/* textura de la página pintada como fondo (antes era una capa encima de toda la página, pesada al hacer scroll) */
.page{background:var(--blanco) url(../assets/img/textura/ruido-pagina.png) repeat;background-size:220px}
.page>.noise{display:none}
/* textos en verde */
.h2{color:var(--bosque-3)}
.h3,.h4{color:var(--bosque-3)}
.badge span,.badge-t{color:var(--bosque-3)}
.c-80{color:var(--verde-txt)}
.page .c-60{color:#6E8274}
.reveal-type{color:var(--bosque-3)}
.footer .lbl{color:#7C8F81}
.footer__cols a{color:var(--bosque-3)}
.wordmark__in{color:var(--bosque-3)}
.stat__n{color:var(--bosque-3)}
.qa summary{color:var(--bosque-3)}
.mq span{color:var(--bosque-3)}
/* secciones alternas en piedra translúcida: la textura se ve a través */
.logos,.props,.fin,.faq{background:rgba(236,238,231,.72)}
.faq{max-width:none;padding-left:max(var(--pad),calc((100% - 1376px)/2));padding-right:max(var(--pad),calc((100% - 1376px)/2))}
.logos{border-color:#DCE1D8}
.process{border-bottom:0}
.team,.videos{border-bottom:0}
.mq{background:rgba(251,251,248,.75);border-color:#DCE1D8}
/* tarjeta del proceso: clara */
.pslider{background:rgba(236,238,231,.9);border:1px solid #DCE1D8;box-shadow:0 30px 60px -40px rgba(11,31,22,.35)}
.pslider .noise--dark{mix-blend-mode:normal;opacity:.06}
.pslider .c-w{color:var(--bosque-3)}
.pslider .c-60{color:var(--verde-txt)}
.pslider .circ{border-color:rgba(28,66,48,.35);color:var(--bosque-3)}
.pslider .circ:hover{background:var(--bosque-3);border-color:var(--bosque-3);color:var(--oro-claro)}
.pslider__dots button{background:rgba(28,66,48,.2)}
/* prototipos: tarjetas claras */
.prop{background:rgba(251,251,248,.92);border-color:#DCE1D8;box-shadow:0 20px 40px -30px rgba(11,31,22,.35)}
.prop .c-w{color:var(--bosque-3)}
.prop .c-40{color:#7C8F81}
.prop .divider{background:rgba(28,66,48,.12)}
/* financiamiento: planes claros, calculadora en verde */
.plan{background:rgba(251,251,248,.9);border-color:#DCE1D8;box-shadow:0 20px 40px -32px rgba(11,31,22,.3)}
.plan .c-40{color:#7C8F81}
.plan .c-60{color:var(--verde-txt)}
.plan__price{color:var(--bosque-3)}
.plan__price small{color:var(--oro)}
.plan .divider{background:rgba(28,66,48,.12)}
.plan:first-child{background:var(--bosque-3);border-color:var(--bosque-3)}
.plan:first-child .plan__price{color:var(--blanco)}
.plan:first-child .plan__price small{color:var(--oro-claro)}
.plan:first-child .c-40{color:var(--oro-claro)}
.plan:first-child .c-60{color:rgba(251,251,248,.78)}
.plan:first-child .divider{background:rgba(251,251,248,.18)}
.calc{background:var(--bosque-3);border-color:var(--bosque-3)}
.calc .noise--dark{opacity:.06}
/* bloques verdes más claros */
.club,.contact{background:var(--bosque-3)}
.tcard--big{background:rgba(11,31,22,.32);border-color:rgba(220,196,142,.18)}
.tcard--grey{background:rgba(251,251,248,.07);border-color:rgba(220,196,142,.18)}
.club .h3{color:var(--blanco)}
.club .badge span,.contact .badge span,.pslider .badge span{color:inherit}
.club .badge--w span,.contact .badge--w span{color:var(--blanco)}
.contact .c-w,.club .c-w,.calc .c-w,.calc .badge-t.c-w{color:var(--blanco)}
.contact__ov{background:linear-gradient(90deg,rgba(28,66,48,.95) 30%,rgba(28,66,48,.55))}
.form{background:rgba(11,31,22,.42)}
.form .badge-t{color:var(--blanco)}
/* avance de obra */
.vcard{border-color:#DCE1D8;box-shadow:0 20px 40px -30px rgba(11,31,22,.35)}
/* pie de página con la misma textura */
.footer{background:var(--blanco);border-top:1px solid #E1E5DC}
.footer::before{content:"";position:absolute;inset:0;background:var(--tex) repeat;background-size:220px;opacity:.06;pointer-events:none}
.footer>*{position:relative}
/* encabezado claro sobre secciones claras */
.nav.is-light .nav__menu{background:rgba(28,66,48,.9)}
.club .h2,.contact .h2{color:var(--blanco)}
.page .club .c-60,.page .contact .c-60,.page .calc .c-60{color:rgba(236,238,231,.78)}
.calc .c-40,.contact .c-40{color:var(--oro-claro)}
.calc .row .badge-t.c-w{color:var(--blanco)}

/* =========================================================
   SEGURIDAD E INFRAESTRUCTURA (rediseño)
   ========================================================= */
/* ===== Seguridad e infraestructura (reconstruida: foto que cambia + 10 tarjetas) ===== */
.seg{position:relative;background:rgba(236,238,231,.72);padding:112px 0 0;display:flex;flex-direction:column;align-items:center;gap:56px;overflow:hidden}
.seg__intro{width:100%;max-width:calc(1376px + 2*var(--pad));padding:0 var(--pad);box-sizing:border-box}
.seg__lead{max-width:440px}
.seg__main{width:100%;max-width:calc(1376px + 2*var(--pad));padding:0 var(--pad);box-sizing:border-box;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:24px;align-items:stretch}
.seg__media{position:relative;border-radius:var(--r-lg);overflow:hidden;min-height:520px;background:var(--bosque-3);box-shadow:0 30px 60px -40px rgba(11,31,22,.55);contain:paint}
.seg__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .7s ease}
.seg__media img.is-on{opacity:1;z-index:1}
.seg__media::after{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(to top,rgba(11,31,22,.7),rgba(11,31,22,0) 50%);pointer-events:none}
.seg__cap{position:absolute;left:24px;right:24px;bottom:30px;z-index:3;display:flex;align-items:baseline;gap:14px;color:var(--blanco)}
.seg__cap-n{font-size:14px;font-weight:700;color:var(--oro-claro)}
.seg__cap-t{font-size:clamp(24px,2.4vw,36px);font-weight:700;letter-spacing:-.035em;line-height:1}
.seg__bar{position:absolute;left:24px;right:24px;bottom:16px;z-index:3;height:2px;border-radius:2px;background:rgba(251,251,248,.25);overflow:hidden}
.seg__bar i{display:block;height:100%;width:100%;background:var(--oro);transform-origin:left;transform:scaleX(0)}
.seg__grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-content:stretch}
.seg__item{position:relative;display:flex;align-items:center;gap:14px;text-align:left;padding:16px 18px;border-radius:var(--r);background:rgba(251,251,248,.85);border:1px solid #DCE1D8;color:var(--bosque-3);font:inherit;cursor:pointer;transition:background .45s var(--ease),border-color .3s,box-shadow .45s,color .45s}
.seg__item:hover{border-color:rgba(194,161,90,.6)}
.seg__item:focus-visible{outline:2px solid var(--oro);outline-offset:2px}
.seg__item.is-on{background:var(--bosque-3);border-color:var(--bosque-3);color:var(--blanco);box-shadow:0 20px 36px -24px rgba(11,31,22,.7)}
.seg__ico{flex:none;width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:rgba(194,161,90,.14);transition:background .45s}
.seg__ico svg{width:26px;height:26px;fill:none;stroke:var(--oro);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;transition:stroke .45s}
.seg__item.is-on .seg__ico{background:var(--oro)}
.seg__item.is-on .seg__ico svg{stroke:var(--bosque)}
.seg__txt{display:flex;flex-direction:column;gap:5px;min-width:0}
.seg__t{font-size:15.5px;font-weight:700;letter-spacing:-.02em;line-height:1.1}
.seg__d{font-size:12.8px;line-height:1.3;color:var(--verde-txt);transition:color .45s}
.seg__item.is-on .seg__d{color:rgba(236,238,231,.8)}
.seg__n{position:absolute;right:14px;top:12px;font-size:11px;font-weight:700;color:var(--oro);opacity:.7}
/* entrada escalonada de las tarjetas (CSS, sin recalcular la página) */
.js .seg__item{opacity:0;transform:translateY(24px)}
.js .seg__grid.is-in .seg__item{opacity:1;transform:none;transition:opacity .8s var(--ease) calc(var(--i)*55ms),transform .8s var(--ease) calc(var(--i)*55ms),background .45s var(--ease),border-color .3s,box-shadow .45s,color .45s}
@media (prefers-reduced-motion:reduce){.js .seg__item{opacity:1;transform:none}.seg__media img{transition:none}}
/* cinta de texto en movimiento */
.ticker{width:100%;overflow:hidden;border-top:1px solid #DCE1D8;padding:26px 0;margin-top:24px;contain:layout paint}
.ticker__track{display:flex;width:max-content;animation:mq 50s linear infinite;will-change:transform;backface-visibility:hidden}
.ticker.is-off .ticker__track{animation-play-state:paused}
.ticker__set{display:flex;align-items:center}
.ticker span{font-size:clamp(28px,3.4vw,48px);font-weight:700;letter-spacing:-.04em;color:var(--bosque-3);white-space:nowrap;padding:0 26px}
.ticker i{width:12px;height:12px;flex:none;border-radius:2px;background:var(--oro);transform:rotate(45deg)}
@media (max-width:1000px){
  .seg__main{grid-template-columns:1fr}
  .seg__media{min-height:0;aspect-ratio:16/10}
}
@media (max-width:640px){
  .seg{padding-top:88px;gap:36px}
  .seg__media{aspect-ratio:4/3}
  .seg__grid{gap:8px}
  .seg__item{flex-direction:column;align-items:flex-start;gap:10px;padding:14px}
  .seg__ico{width:38px;height:38px;border-radius:10px}
  .seg__ico svg{width:22px;height:22px}
  .seg__d{display:none}
  .seg__t{font-size:14px}
  .seg__cap{bottom:26px}
}

/* ---------- Preguntas: apertura suave ---------- */
.qa{overflow:hidden}
.qa p{font-size:16px;line-height:1.45;transition:opacity .45s ease,transform .55s var(--ease)}
.qa:not([open]) p,.qa.is-closing p{opacity:0;transform:translateY(-8px)}
.qa summary span{transition:color .3s}
.qa[open]:not(.is-closing) summary span{color:var(--bosque)}

/* =========================================================
   RESPONSIVE
   ========================================================= */
@media (max-width:1100px){
  .fin__grid{grid-template-columns:repeat(2,1fr)}
  .club__grid{flex-direction:column}
  .tcard--big{flex:auto}
  .vgrid{gap:16px}
}
@media (max-width:900px){
  :root{--pad:24px}
  .menu{grid-template-columns:1fr}
  .menu__prev{display:none}
  .menu__foot{gap:14px 32px}
  .cols{flex-direction:column;gap:48px}
  .col__img{aspect-ratio:4/3}
  .props{flex-direction:column;align-items:stretch;padding-right:0}
  .props__text{flex:auto;padding-right:var(--pad)}
  .prop{flex-basis:320px}
  .pslider{height:auto;min-height:620px}
  .pslide__txt{left:32px;right:32px;top:32px;width:auto}
  .pslide__media{top:auto;height:52%;width:100%;left:0}
  .pslider__ctrl{bottom:calc(52% + 20px);left:32px}
  .team__cols{flex-direction:column;align-items:center;gap:48px}
  .member{flex:auto;width:100%;max-width:560px}
  .stats{grid-template-columns:repeat(2,1fr)}
  .stat:nth-child(3){padding-left:0;border-left:0}
  .stat{padding-bottom:24px}
  .calc{grid-template-columns:1fr;padding:32px;gap:32px}
  .faq{grid-template-columns:1fr;padding:96px var(--pad)}
  .faq__l{position:static}
  .contact{flex-direction:column;align-items:stretch;padding:96px var(--pad)}
  .form{width:100%}
  .footer__top{flex-direction:column}
  .footer__cols{padding-right:0;gap:32px;flex-wrap:wrap}
  .process__intro{flex-direction:column;align-items:flex-start}
}
@media (max-width:640px){
  :root{--pad:16px}
  .nav{padding:16px var(--pad)}
  .nav .btn{padding:12px 12px}
  .nav .btn .hs{display:none}
  .hero__text{bottom:48px;gap:22px}
  .hero__logo{width:180px}
  .hero__card{top:84px;bottom:auto;right:var(--pad);width:min(300px,calc(100% - 2*var(--pad)))}
  .scroll-ind{display:none}
  .intro{padding-top:96px}
  .logos{padding:48px 0;gap:40px}
  .mq{width:240px;height:120px}
  .process,.fin{padding:48px var(--pad)}
  .pslider{min-height:640px}
  .pslide__txt{left:24px;right:24px;top:24px}
  .pslider__ctrl{left:24px}
  .prop{flex-basis:290px}
  .club{padding:96px var(--pad)}
  .club,.contact{margin:0 8px;border-radius:18px}
  .tcard{padding:24px}
  .tcard .h3,.tcard .body-s,.tcard--big .h3,.tcard--big .body-s{padding-right:0}
  .tcard__mark{width:64px;opacity:.55}
  .tcard__thumbs{grid-template-columns:repeat(2,1fr)}
  .tcard__imgs{grid-template-columns:repeat(2,1fr)}
  .tcard__imgs a:last-child{display:none}
  .team,.videos{padding:96px var(--pad) 48px}
  .fin__grid{grid-template-columns:1fr}
  .plan{min-height:0}
  .vgrid{grid-template-columns:repeat(2,1fr);gap:12px}
  .vgrid .vcard:nth-child(3){display:none}
  .vgrid.is-all .vcard:nth-child(3){display:block}
  .menu__nav a{font-size:clamp(28px,min(9.5vw,6.4vh),40px)}
  .lightbox{padding:56px 12px}
  .lightbox__nav{top:auto;bottom:16px;margin:0}
}
@media (max-width:640px) and (max-height:760px){
  .hero__card{display:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
  .marquee__track{animation:none}
  .js [data-fade],.js [data-rise],.js .hero__text>*,.js .hero__card,.js .scroll-ind{opacity:1}
  .wipe{display:none}
  .loader{display:none}
}

/* Casa Club: contador de amenidades */
.club__count{display:flex;flex-direction:column;align-items:center;gap:6px;line-height:1}
.club__count-n{font-size:clamp(64px,8vw,112px);font-weight:700;letter-spacing:-.05em;color:var(--oro-claro)}
.club__count-t{font-size:13px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--blanco)}

/* Ubicación: plano y croquis que se acercan y se mueven */
.zoom{position:relative;overflow:hidden;border-radius:var(--r);aspect-ratio:3/2;background:var(--bosque);isolation:isolate;user-select:none;-webkit-user-select:none}
.zoom__stage{position:absolute;inset:0;transform-origin:0 0;touch-action:pan-y;cursor:zoom-in}
.zoom.is-zoomed .zoom__stage{touch-action:none;cursor:grab}
.zoom.is-drag .zoom__stage{cursor:grabbing}
.zoom__stage img{width:100%;height:100%;object-fit:cover;transform:none;pointer-events:none;-webkit-user-drag:none}
.zoom__ui{position:absolute;right:12px;bottom:12px;z-index:3;display:flex;gap:6px}
.zoom__ui button{width:40px;height:40px;border-radius:50%;border:0;background:rgba(251,251,248,.92);color:var(--bosque);display:grid;place-items:center;cursor:pointer;box-shadow:0 6px 18px -8px rgba(11,31,22,.5);transition:background .3s,color .3s}
.zoom__ui button:hover{background:var(--oro);color:var(--blanco)}
.zoom__ui svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.zoom__hint{position:absolute;left:12px;bottom:12px;z-index:3;padding:8px 12px;border-radius:99px;background:rgba(11,31,22,.72);color:var(--blanco);font-size:12px;font-weight:500;pointer-events:none;transition:opacity .4s}
.zoom.is-zoomed .zoom__hint{opacity:0}
.zoom.is-full{position:fixed;inset:12px;z-index:200;aspect-ratio:auto;border-radius:var(--r);box-shadow:0 0 0 100vmax rgba(11,31,22,.85)}
.zoom.is-full .zoom__stage img,.zoom.is-fs .zoom__stage img{object-fit:contain}
.zoom.is-fs{border-radius:0;aspect-ratio:auto;width:100%;height:100%}
html.zoom-lock,html.zoom-lock body{overflow:hidden}
@media (max-width:640px){.zoom__hint{display:none}.zoom__ui button{width:36px;height:36px}}

/* ===== Leyendas legales (imágenes ilustrativas / precios) ===== */
.leyenda{margin:-40px auto 0;max-width:720px;font-size:12px;line-height:1.5;color:var(--g60);text-align:center}
.leyenda--izq{margin:0;text-align:left;max-width:none}
.leyenda--claro{color:rgba(251,251,248,.55)}
.intro > .leyenda{margin-left:0;text-align:left}
@media (max-width:767px){.footer__legal{padding-right:64px}}

/* ===== Aviso de privacidad ===== */
.is-legal .nav__logo{opacity:1;visibility:visible}
.legal{border-radius:0;box-shadow:none;padding:150px var(--pad) 96px}
.legal__wrap{max-width:760px;margin:0 auto}
.legal__title{margin:18px 0 22px}
.legal__lead{margin-bottom:14px}
.legal__fecha{font-size:13px;color:var(--g60);padding-bottom:36px;border-bottom:1px solid var(--line)}
.legal__sec{padding:32px 0;border-bottom:1px solid var(--line)}
.legal__sec .h3{margin-bottom:16px}
.legal__sec p,.legal__sec li{font-size:15.5px;line-height:1.6;color:var(--tinta);letter-spacing:-.006em}
.legal__sec p+p,.legal__sec ul+p,.legal__sec p+ul{margin-top:12px}
.legal__sec ul{padding-left:20px;list-style:disc}
.legal__sec li{margin-top:6px}
.legal__sec li::marker{color:var(--oro)}
.legal__sec a{color:var(--bosque-3);text-decoration:underline;text-underline-offset:3px}
.legal mark.dato{background:rgba(194,161,90,.22);color:var(--tinta);padding:1px 4px;border-radius:4px}
.legal__volver{margin-top:40px}
@media (max-width:767px){.legal{padding-top:120px}}

/* Crédito del estudio (discreto) */
.footer__credito{margin-top:8px;font-size:11px;line-height:1.4;color:var(--g60);letter-spacing:.01em}
.footer__credito a{color:inherit;font-weight:700;letter-spacing:.08em;text-decoration:none;border-bottom:1px solid transparent;transition:color .3s,border-color .3s}
.footer__credito a:hover{color:var(--tinta);border-bottom-color:currentColor}
/* Textos legales: evita el parpadeo mientras carga la versión guardada */
.legal__wrap.is-cargando .legal__sec,.legal__wrap.is-cargando .legal__lead{opacity:0}
.legal__wrap .legal__sec,.legal__wrap .legal__lead{transition:opacity .3s}
@media (max-width:767px){.footer__credito{padding-right:64px}}
/* Acceso al panel (candado discreto en el footer) */
.footer__credito{display:flex;align-items:center;flex-wrap:wrap;gap:0 4px}
.footer__sep{margin:0 6px;opacity:.6}
.footer__credito a.footer__admin{display:inline-flex;align-items:center;gap:5px;font-weight:600;letter-spacing:.02em;border-bottom:0}
.footer__admin svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.footer__admin:hover svg{stroke:var(--oro)}

/* ===== Rendimiento del scroll =====
   Capas que el navegador tenía que recombinar en cada cuadro al desplazarse:
   texturas con modo de fusión sobre secciones grandes y desenfoques en
   elementos fijos. Se ven prácticamente igual y ya no traban el scroll. */
.noise--dark,.noise--hero,.pslider .noise--dark{mix-blend-mode:normal}
.noise--dark{opacity:.045}
.noise--hero{opacity:.035}
.hero__ov1{mix-blend-mode:normal;opacity:.12}
.nav__menu{-webkit-backdrop-filter:none;backdrop-filter:none;background:rgba(11,31,22,.9)}
/* Menú: logo que lleva al inicio y dirección */
.menu__home{display:inline-block;line-height:0;transition:opacity .3s}
.menu__home:hover{opacity:.8}
.menu__foot a[href*="google.com/maps"]{text-decoration:underline;text-underline-offset:3px;text-decoration-color:rgba(220,196,142,.45)}
.menu__ref{display:inline-block;margin-top:4px;opacity:.6;font-size:.9em}
/* Admin en la columna Legal del footer */
.footer__cols a.footer__admin{display:inline-flex;align-items:center;gap:6px;margin-top:10px;color:var(--g60)}
.footer__cols a.footer__admin:hover{color:var(--oro)}

/* ===== Formulario de contacto ===== */
.form__campos{display:flex;flex-direction:column;gap:inherit}
.form__campos[hidden]{display:none}
.form__hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
#form-btn.is-sending{opacity:.65;pointer-events:none}
#form-btn.is-sending .hs::after{content:"…"}
.form__ok{align-items:flex-start;gap:14px;padding:8px 0;outline:none}
.form__ok[hidden]{display:none}
.form__ok-ico{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(220,196,142,.5);color:var(--oro-claro)}
.form__ok-ico svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.form__wa{display:inline-flex;align-items:center;gap:10px;margin-top:6px;padding:11px 16px;border-radius:var(--r-btn);border:1px solid rgba(251,251,248,.3);color:var(--blanco);font-size:13px;font-weight:600;transition:background .3s,border-color .3s,color .3s}
.form__wa svg{width:18px;height:18px;flex:none}
.form__wa:hover{background:#25D366;border-color:#25D366;color:#fff}

/* =========================================================
   SOLO TELÉFONO (≤640px): inicio y Seguridad e infraestructura
   ========================================================= */
@media (max-width:640px){
  /* Inicio: sin la tarjeta flotante, texto limpio abajo */
  .hero__card{display:none}
  .hero__grad-bot{height:78%;background:linear-gradient(to top,rgba(11,31,22,.9) 0%,rgba(11,31,22,.72) 28%,rgba(11,31,22,.4) 55%,rgba(11,31,22,0) 100%)}
  .hero__text{bottom:calc(36px + env(safe-area-inset-bottom));gap:16px;width:calc(100% - 2*var(--pad))}
  .hero__logo{width:146px;margin-bottom:4px}
  .hero__text .h1{font-size:clamp(36px,10.4vw,46px);line-height:.98}
  .hero__body{font-size:15px;line-height:1.4;max-width:32ch;margin-top:0}
  .hero__text .lnk{margin-top:4px}

  /* Seguridad: carrusel de tarjetas con foto */
  .seg--movil .seg__media{display:none}
  .seg--movil .seg__main{padding:0;max-width:none}
  .seg--movil .seg__grid{display:flex;gap:12px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding:0 var(--pad);padding:0 var(--pad) 6px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .seg--movil .seg__grid::-webkit-scrollbar{display:none}
  .seg--movil .seg__item,
  .seg--movil .seg__item.is-on{flex:0 0 76%;aspect-ratio:4/5;scroll-snap-align:start;justify-content:flex-end;align-items:flex-start;gap:8px;padding:18px;border:0;border-radius:20px;overflow:hidden;isolation:isolate;background:var(--bosque-3);color:var(--blanco);box-shadow:0 22px 40px -28px rgba(11,31,22,.7)}
  .seg--movil .seg__item::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(11,31,22,.86) 0%,rgba(11,31,22,.35) 45%,rgba(11,31,22,0) 70%),linear-gradient(to bottom,rgba(11,31,22,.35),rgba(11,31,22,0) 30%);pointer-events:none}
  .seg__foto{position:absolute;inset:0;z-index:0}
  .seg__foto img{width:100%;height:100%;object-fit:cover}
  .seg--movil .seg__ico,
  .seg--movil .seg__item.is-on .seg__ico{position:absolute;top:14px;right:14px;z-index:2;width:38px;height:38px;border-radius:11px;background:rgba(251,251,248,.16);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
  .seg--movil .seg__ico svg,
  .seg--movil .seg__item.is-on .seg__ico svg{stroke:var(--blanco);width:20px;height:20px}
  .seg--movil .seg__n{left:18px;right:auto;top:20px;z-index:2;color:var(--oro-claro);opacity:1;font-size:12px;letter-spacing:.06em}
  .seg--movil .seg__txt{position:relative;z-index:2;gap:6px}
  .seg--movil .seg__t{font-size:20px;line-height:1.08;letter-spacing:-.025em;color:var(--blanco)}
  .seg--movil .seg__d,
  .seg--movil .seg__item.is-on .seg__d{display:block;font-size:13px;line-height:1.35;color:rgba(251,251,248,.8)}
  .seg__cuenta{display:flex;align-items:center;gap:12px;padding:16px var(--pad) 0;font-size:12px;font-weight:600;letter-spacing:.06em;color:var(--g60);width:100%;box-sizing:border-box}
  .seg__cuenta b{color:var(--tinta);font-weight:700}
  .seg__cuenta-bar{position:relative;flex:1;height:2px;border-radius:2px;background:rgba(22,39,29,.12);overflow:hidden}
  .seg__cuenta-bar i{position:absolute;inset:0;background:var(--oro);transform-origin:0 50%;transform:scaleX(.1);transition:transform .4s var(--ease)}
  .seg__cuenta-h{text-transform:uppercase;font-size:10.5px;letter-spacing:.12em}
}
@media (min-width:641px){.seg__foto,.seg__cuenta{display:none}}
