/* =============================================================
   1. Tokens
   ============================================================= */
:root{
  --ink:#0a0a0b;
  --charcoal:#18181a;
  --charcoal-2:#232326;
  --charcoal-3:#2c2c30;
  --stone:#efece5;
  --stone-2:#e6e1d6;
  --paper:#ffffff;
  --slate:#6b6b70;
  --slate-light:#a9a9ad;
  --gold:#b28a3f;
  --gold-light:#dcc48a;
  --gold-pale:#f3e2b6;
  --gold-deep:#8a6a2e;
  --gold-dim:rgba(178,138,63,.35);
  --wa-green:#25D366;
  --wa-green-light:#34e07a;
  --line-dark:rgba(255,255,255,.12);
  --line-light:rgba(10,10,11,.1);
  --maxw:1180px;

  --ease-out:  cubic-bezier(.16,1,.3,1);
  --ease-in:   cubic-bezier(.7,0,.84,0);
  --ease-soft: cubic-bezier(.25,.46,.45,.94);
  --ease-bounce: cubic-bezier(.34,1.56,.64,1);
}

/* =============================================================
   2. Reset & base
   ============================================================= */
*,*::before,*::after{box-sizing:border-box;margin:0;}
html{
  scroll-behavior:smooth;
  -webkit-text-size-adjust:100%;
  tab-size:2;
  overflow-x:clip;
}
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }
body{
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;
  background:var(--paper);
  color:var(--ink);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
  overflow-x:clip;
  overscroll-behavior-y:none;
}
img,svg,video{display:block;max-width:100%;}
img{height:auto;}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none;}
a{color:inherit;text-decoration:none;}
p{text-wrap:pretty;}
h1,h2,h3{font-family:'Fraunces',serif;font-weight:560;letter-spacing:-.01em;text-wrap:balance;line-height:1.08;}
::selection{background:var(--gold);color:var(--ink);}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:3px;}

/* =============================================================
   3. Utilities
   ============================================================= */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px;}
.skip-link{
  position:fixed;top:-100px;left:1rem;z-index:9999;
  padding:.7rem 1.2rem;background:var(--gold);color:var(--ink);
  font-weight:600;border-radius:3px;transition:top .3s var(--ease-out);
}
.skip-link:focus{top:1rem;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

/* =============================================================
   4. Typography helpers
   ============================================================= */
.eyebrow{
  font-family:'Inter',sans-serif;font-size:11px;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;color:var(--gold);
  display:flex;align-items:center;gap:10px;
}
.eyebrow::before{content:"";width:22px;height:1px;background:var(--gold);display:inline-block;flex:none;}
/* Contrast fix: base --gold (~3.2:1) fails AA on light backgrounds — use the deeper token there */
.section-light .eyebrow,.section-stone .eyebrow{color:var(--gold-deep);}
.section-light .eyebrow::before,.section-stone .eyebrow::before{background:var(--gold-deep);}
.section-stone .cvb-arrow,.section-stone .cvb-benefit strong{color:var(--gold-deep);}

/* =============================================================
   5. Components
   ============================================================= */

/* ---- buttons: gold texture with tactile depth ---- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  padding:16px 30px;font-family:'Inter',sans-serif;font-weight:600;font-size:14px;
  letter-spacing:.02em;border-radius:2px;border:1px solid transparent;
  cursor:pointer;white-space:nowrap;position:relative;isolation:isolate;
  transition:transform .35s var(--ease-soft), box-shadow .35s var(--ease-soft), background-position .6s var(--ease-soft);
}
.btn:active{transition-duration:.12s;}

.btn-gold{
  color:#1c1204;
  background-image:
    linear-gradient(160deg, var(--gold-pale) 0%, var(--gold-light) 20%, var(--gold) 48%, var(--gold-deep) 74%, #c9a656 100%);
  background-size:220% 220%;
  background-position:25% 25%;
  border-color:rgba(0,0,0,.35);
  box-shadow:
    inset 0 0 0 1px rgba(0,0,0,.45),
    inset 0 1px 0 rgba(255,255,255,.6),
    inset 0 -3px 6px rgba(0,0,0,.32),
    0 1px 2px rgba(0,0,0,.5),
    0 14px 26px -12px rgba(178,138,63,.6);
  overflow:hidden;
}
.btn-gold::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  opacity:.6;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.55 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  background-size:160px 160px;
}
.btn-gold::after{
  content:"";position:absolute;z-index:2;top:-70%;bottom:-70%;left:-45%;width:32%;
  background:linear-gradient(100deg, transparent, rgba(255,255,255,.65), transparent);
  transform:translateX(-30%) rotate(8deg);
  transition:transform .9s var(--ease-soft);
  pointer-events:none;
}
.btn-gold span{position:relative;z-index:3;}
.btn-gold:hover{
  background-position:70% 65%;
  transform:translateY(-3px);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.65),
    inset 0 -3px 6px rgba(0,0,0,.28),
    0 2px 4px rgba(0,0,0,.5),
    0 24px 42px -14px rgba(178,138,63,.7);
}
.btn-gold:hover::after{transform:translateX(360%) rotate(8deg);}
.btn-gold:active{
  transform:translateY(0) scale(.98);
  box-shadow:inset 0 2px 8px rgba(0,0,0,.5), 0 1px 2px rgba(0,0,0,.4);
}

.btn-outline{border-color:var(--gold-dim);color:var(--gold-light);background:transparent;}
.btn-outline:hover{border-color:var(--gold);background:rgba(178,138,63,.08);transform:translateY(-2px);}
.btn-outline-dark{border-color:var(--line-light);color:var(--ink);background:transparent;}
.btn-outline-dark:hover{border-color:var(--ink);background:rgba(10,10,11,.04);transform:translateY(-2px);}

/* ---- seal (verification mark) ---- */
.seal{width:64px;height:64px;flex:none;}
.seal svg{width:100%;height:100%;}
.has-seal-glow{position:relative;}
.has-seal-glow::before{
  content:"";position:absolute;inset:-30%;z-index:-1;
  background:radial-gradient(circle, rgba(178,138,63,.35), transparent 65%);
  opacity:0;transition:opacity .5s var(--ease-out);
  filter:blur(14px);
}
.trust-item:hover .has-seal-glow::before{opacity:1;}

/* ---- nav ---- */
header.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  background:rgba(10,10,11,.55);
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  border-bottom:1px solid transparent;
  transition:background-color .4s var(--ease-out), border-color .4s var(--ease-out), backdrop-filter .4s var(--ease-out);
}
header.nav.is-scrolled{
  background:rgba(10,10,11,.86);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom-color:var(--line-dark);
}
.nav-inner{
  max-width:var(--maxw);margin:0 auto;padding:16px 24px;
  display:flex;align-items:center;justify-content:space-between;
}
.brand{display:flex;align-items:center;gap:14px;}
.brand-logo{height:46px;width:auto;flex:none;}
.brand-text{
  font-family:'Fraunces',serif;color:var(--paper);font-size:16px;font-weight:560;
  display:flex;flex-direction:column;line-height:1.15;
}
.brand-text small{font-family:'Inter',sans-serif;font-size:10.5px;color:var(--slate-light);letter-spacing:.08em;text-transform:uppercase;font-weight:500;}
@media(min-width:540px){ .brand-logo{height:56px;} }
.nav-cta{display:none;}
@media(min-width:720px){ .nav-cta{display:inline-flex;} }

/* ---- chips ---- */
.chips{display:flex;flex-wrap:wrap;gap:0;margin-top:36px;border:1px solid var(--line-dark);border-radius:2px;overflow:hidden;width:fit-content;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:rgba(10,10,11,.25);}
.chip{padding:14px 20px;border-right:1px solid var(--line-dark);font-size:13px;color:var(--slate-light);}
.chip:last-child{border-right:none;}
.chip strong{display:block;color:var(--paper);font-family:'Fraunces',serif;font-size:16px;font-weight:560;margin-top:2px;}

/* ---- selector cards ---- */
.selector-grid{display:grid;grid-template-columns:1fr;gap:20px;}
@media(min-width:720px){ .selector-grid{grid-template-columns:1fr 1fr;} }
.selector-card{
  border:1px solid var(--line-light);padding:34px 30px;background:var(--paper);
  position:relative;transition:border-color .3s var(--ease-out), transform .3s var(--ease-soft), box-shadow .3s var(--ease-soft);
}
.selector-card:hover{border-color:var(--gold);box-shadow:0 30px 60px -30px rgba(10,10,11,.35);}
.selector-card .tag{display:inline-block;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:16px;}
.selector-card h3{font-size:21px;font-weight:560;line-height:1.25;margin-bottom:14px;}
.selector-card p{font-size:14.5px;color:var(--slate);line-height:1.6;margin-bottom:24px;}

/* ---- CVB grid ---- */
.cvb-grid{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line-light);border:1px solid var(--line-light);}
.section-charcoal .cvb-grid,.section-dark .cvb-grid{background:var(--line-dark);border-color:var(--line-dark);}
@media(min-width:720px){ .cvb-grid{grid-template-columns:1fr 1fr;} }
.cvb-item{background:var(--paper);padding:30px;transition:background-color .3s var(--ease-out);}
.section-charcoal .cvb-item,.section-dark .cvb-item{background:var(--charcoal);}
.cvb-item:hover{background:var(--stone);}
.section-charcoal .cvb-item:hover,.section-dark .cvb-item:hover{background:var(--charcoal-2);}
.cvb-item .feature{font-family:'Fraunces',serif;font-size:17px;font-weight:560;margin-bottom:14px;display:flex;align-items:center;gap:12px;}
.cvb-icon{
  width:34px;height:34px;flex:none;border:1px solid var(--gold-dim);border-radius:50%;
  display:flex;align-items:center;justify-content:center;color:var(--gold);
}
.cvb-icon svg{width:16px;height:16px;}
.section-stone .cvb-icon{color:var(--gold-deep);}
.cvb-arrow{color:var(--gold);font-size:13px;display:block;margin:10px 0;letter-spacing:.02em;}
.cvb-adv{font-size:14px;color:var(--slate);line-height:1.55;}
.section-charcoal .cvb-adv,.section-dark .cvb-adv{color:var(--slate-light);}
.cvb-benefit{font-size:14.5px;font-weight:600;line-height:1.55;margin-top:8px;}
.cvb-benefit strong{color:var(--gold);}

/* ---- photo book (full gallery, all real photos: thumbs + large viewer) ---- */
.photobook{display:flex;flex-direction:column;gap:14px;max-width:960px;margin:0 auto;}
.photobook-thumbs{
  display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;padding-bottom:6px;
  -webkit-overflow-scrolling:touch;scrollbar-width:thin;
}
.photobook-thumb{
  flex:0 0 76px;width:76px;height:58px;padding:0;border-radius:2px;
  border:1px solid var(--line-dark);overflow:hidden;opacity:.5;
  transition:opacity .3s var(--ease-out), border-color .3s var(--ease-out);
}
.photobook-thumb img{width:100%;height:100%;object-fit:cover;}
.photobook-thumb:hover{opacity:.8;}
.photobook-thumb.is-active{opacity:1;border-color:var(--gold);}
.photobook-main{position:relative;flex:1;min-width:0;}
.photobook-viewport{overflow:hidden;border:1px solid var(--line-dark);}
.photobook-track{display:flex;touch-action:pan-y;}
.photobook-track.is-dragging{transition:none !important;}
.photobook-slide{flex:0 0 100%;position:relative;margin:0;aspect-ratio:4/3;background:var(--charcoal);}
.photobook-slide img{width:100%;height:100%;object-fit:cover;-webkit-user-drag:none;user-select:none;}
.photobook-slide figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:16px 22px;
  font-family:'Fraunces',serif;font-size:15px;color:var(--stone);
  background:linear-gradient(0deg, rgba(10,10,11,.78), transparent);
}
.photobook-arrow{
  position:absolute;top:50%;transform:translateY(-50%);z-index:4;
  width:44px;height:44px;border-radius:50%;
  background:rgba(10,10,11,.55);border:1px solid var(--gold-dim);color:var(--gold-light);
  display:flex;align-items:center;justify-content:center;
  transition:background .3s var(--ease-out), border-color .3s var(--ease-out), transform .3s var(--ease-bounce);
}
.photobook-arrow:hover{background:rgba(10,10,11,.8);border-color:var(--gold);transform:translateY(-50%) scale(1.08);}
.photobook-arrow svg{width:20px;height:20px;}
.photobook-prev{left:12px;}
.photobook-next{right:12px;}
.photobook-counter{
  margin-top:16px;text-align:center;font-size:12.5px;letter-spacing:.06em;
  color:var(--slate-light);font-variant-numeric:tabular-nums;
}
@media(min-width:860px){
  .photobook{flex-direction:row;align-items:flex-start;}
  .photobook-thumbs{
    flex-direction:column;flex:0 0 130px;max-height:600px;
    overflow-y:auto;overflow-x:visible;padding-bottom:0;padding-right:6px;
  }
  .photobook-thumb{flex:0 0 96px;width:100%;height:72px;}
  .photobook-prev{left:-22px;}
  .photobook-next{right:-22px;}
}

/* ---- stat strip (investor) ---- */
.stat-strip{display:grid;grid-template-columns:1fr;gap:1px;background:var(--line-dark);border:1px solid var(--line-dark);margin-bottom:44px;}
@media(min-width:640px){ .stat-strip{grid-template-columns:repeat(3,1fr);} }
.stat-tile{background:var(--charcoal);padding:26px 24px;}
.stat-tile .stat-num{font-family:'Fraunces',serif;font-size:clamp(28px,4vw,38px);color:var(--gold-light);font-weight:560;line-height:1;}
.stat-tile .stat-label{margin-top:10px;font-size:12.5px;color:var(--slate-light);line-height:1.5;}

/* ---- trial close / objection ---- */
.trial-close{
  margin-top:44px;padding:26px 30px;border-left:2px solid var(--gold);
  background:rgba(178,138,63,.06);font-style:italic;font-size:15px;line-height:1.6;max-width:720px;
}
.section-dark .trial-close,.section-charcoal .trial-close{background:rgba(178,138,63,.12);}
.objection{margin-top:32px;padding:24px 28px;border:1px dashed var(--gold-dim);max-width:720px;}
.objection .obj-q{font-weight:700;font-size:14px;margin-bottom:8px;}
.objection .obj-a{font-size:14px;line-height:1.6;color:var(--slate);}
.section-dark .objection .obj-a,.section-charcoal .objection .obj-a{color:var(--slate-light);}
.block-cta{margin-top:40px;}

/* ---- ubicación ---- */
.location-grid{display:grid;grid-template-columns:1fr;gap:32px;}
@media(min-width:860px){ .location-grid{grid-template-columns:1.1fr .9fr;align-items:center;} }
.location-img{position:relative;overflow:hidden;border:1px solid var(--line-light);aspect-ratio:4/3.2;}
.location-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease-soft);}
.location-img:hover img{transform:scale(1.06);}
.location-map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.15) contrast(1.02);}
.poi-list{display:flex;flex-direction:column;gap:0;}
.poi{display:flex;gap:18px;padding:18px 0;border-bottom:1px solid var(--line-light);align-items:flex-start;transition:padding-left .3s var(--ease-out);}
.poi:hover{padding-left:6px;}
.poi:last-child{border-bottom:none;}
.poi-icon{width:38px;height:38px;flex:none;border:1px solid var(--gold-dim);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--gold-deep);}
.poi-icon svg{width:18px;height:18px;}
.poi-text strong{font-size:15px;font-weight:600;display:block;}
.poi-text span{font-size:13.5px;color:var(--slate);}

/* ---- proceso (timeline) ---- */
.timeline{position:relative;padding-left:2px;}
.timeline::before{content:"";position:absolute;left:19px;top:8px;bottom:8px;width:1px;background:linear-gradient(180deg, var(--gold), rgba(178,138,63,.15));}
.step{display:flex;gap:24px;padding:24px 0;position:relative;}
.step-num{
  width:40px;height:40px;flex:none;border-radius:50%;border:1px solid var(--gold);
  display:flex;align-items:center;justify-content:center;font-family:'Fraunces',serif;
  font-size:15px;color:var(--gold-light);background:var(--ink);z-index:1;
  transition:transform .4s var(--ease-bounce), box-shadow .4s var(--ease-out);
}
.step:hover .step-num{transform:scale(1.12);box-shadow:0 0 0 6px rgba(178,138,63,.15);}
.step-text strong{display:block;font-size:16px;font-weight:600;margin-bottom:6px;font-family:'Fraunces',serif;}
.step-text p{font-size:14.5px;color:var(--slate-light);line-height:1.6;max-width:560px;}

/* ---- confianza ---- */
.trust-grid{display:grid;grid-template-columns:1fr;gap:22px;}
@media(min-width:720px){ .trust-grid{grid-template-columns:repeat(2,1fr);} }
.trust-item{display:flex;gap:18px;align-items:flex-start;padding:26px;border:1px solid var(--line-light);transition:transform .35s var(--ease-soft), box-shadow .35s var(--ease-soft);}
.trust-item:hover{transform:translateY(-4px);box-shadow:0 30px 50px -28px rgba(10,10,11,.3);}
.trust-item .seal{width:40px;height:40px;}
.trust-item strong{display:block;font-size:15px;margin-bottom:4px;}
.trust-item span{font-size:13.5px;color:var(--slate);line-height:1.5;}

/* ---- surroundings strip ---- */
.surroundings-strip{padding:56px 0;}
.surroundings-head{max-width:680px;margin:0 auto 40px;text-align:center;}
.surroundings-head .eyebrow{justify-content:center;margin-bottom:18px;}
.surroundings-head .eyebrow::before{display:none;}
.surroundings-caption{
  font-family:'Fraunces',serif;font-weight:560;letter-spacing:-.01em;
  font-size:clamp(19px,2.4vw,26px);line-height:1.35;color:var(--ink);
}
.surroundings-caption em{color:var(--gold-deep);font-style:italic;}
.surroundings-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
@media(min-width:720px){ .surroundings-grid{grid-template-columns:repeat(4,1fr);gap:28px;} }
.surrounding-card{
  display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;
  padding:28px 16px;border:1px solid var(--line-light);border-radius:4px;
  transition:transform .3s var(--ease-out), border-color .3s var(--ease-out);
}
.surrounding-card:hover{transform:translateY(-4px);border-color:var(--gold-dim);}
.surrounding-icon{
  width:52px;height:52px;flex:none;border:1px solid var(--gold-dim);border-radius:50%;
  display:flex;align-items:center;justify-content:center;color:var(--gold-deep);
}
.surrounding-icon svg{width:24px;height:24px;}
.surrounding-card strong{font-family:'Fraunces',serif;font-size:16px;font-weight:600;color:var(--ink);}
.surrounding-card span{font-size:13px;color:var(--slate);line-height:1.4;}

/* ---- bank alliances marquee ---- */
.bank-strip{padding:56px 0;}
.bank-head{max-width:680px;margin:0 auto;text-align:center;}
.bank-head .eyebrow{justify-content:center;margin-bottom:18px;}
.bank-head .eyebrow::before{display:none;}
.bank-marquee-caption{
  font-family:'Fraunces',serif;font-weight:560;letter-spacing:-.01em;
  font-size:clamp(21px,2.8vw,30px);line-height:1.3;color:var(--ink);
}
.bank-marquee-caption em{color:var(--gold-deep);font-style:italic;}
.bank-marquee{
  overflow:hidden;position:relative;margin-top:22px;padding:26px 0;
  border-top:1px solid var(--line-light);border-bottom:1px solid var(--line-light);
}
.bank-marquee::before,.bank-marquee::after{content:"";position:absolute;top:0;bottom:0;width:64px;z-index:2;pointer-events:none;}
.bank-marquee::before{left:0;background:linear-gradient(90deg,var(--paper),transparent);}
.bank-marquee::after{right:0;background:linear-gradient(270deg,var(--paper),transparent);}
.bank-marquee-track{display:flex;width:max-content;animation:bankScroll 32s linear infinite;}
.bank-marquee:hover .bank-marquee-track{animation-play-state:paused;}
.bank-plate{
  padding:0 40px;white-space:nowrap;border-right:1px solid var(--line-light);
  display:flex;align-items:center;height:34px;
}
.bank-plate img{
  height:22px;width:auto;max-width:110px;object-fit:contain;
  filter:grayscale(1) brightness(1.35) contrast(.75);opacity:.62;
  transition:filter .4s var(--ease-out), opacity .4s var(--ease-out);
}
.bank-plate:hover img{filter:grayscale(0) brightness(1) contrast(1);opacity:1;}
@keyframes bankScroll{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }

/* ---- faq ---- */
.faq-item{border-bottom:1px solid var(--line-light);}
.faq-q{width:100%;text-align:left;background:none;border:none;cursor:pointer;padding:22px 0;display:flex;justify-content:space-between;align-items:center;gap:20px;font-family:'Fraunces',serif;font-size:17px;font-weight:560;color:var(--ink);}
.faq-q .plus{color:var(--gold);font-size:20px;font-weight:400;transition:transform .3s var(--ease-out);flex:none;}
.faq-item.open .plus{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .35s var(--ease-out);}
.faq-a p{padding-bottom:22px;font-size:14.5px;color:var(--slate);line-height:1.65;max-width:640px;}

/* ---- form ---- */
.form-card{background:var(--charcoal);border:1px solid var(--line-dark);padding:36px;position:relative;}
.field{margin-bottom:20px;}
.field label{display:block;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--slate-light);margin-bottom:8px;}
.field input,.field select{
  width:100%;background:var(--ink);border:1px solid var(--line-dark);color:var(--paper);
  padding:14px 16px;font-family:'Inter',sans-serif;font-size:14.5px;border-radius:2px;
  transition:border-color .25s var(--ease-out);
}
.field input:focus,.field select:focus{outline:1px solid var(--gold);border-color:var(--gold);}
.field select:invalid{color:var(--slate-light);}
.form-hint{font-size:12.5px;color:var(--slate-light);line-height:1.5;margin-top:4px;}
.final-actions{display:flex;flex-direction:column;gap:12px;margin-top:14px;}
.final-actions .btn{width:100%;}

/* ---- WhatsApp floating button (official green + illuminated glow) ---- */
.whatsapp-float{
  position:fixed;right:20px;bottom:20px;z-index:150;
  width:58px;height:58px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle at 32% 28%, var(--wa-green-light), var(--wa-green) 70%);
  border:1px solid rgba(255,255,255,.25);
  box-shadow:
    0 0 0 1px rgba(37,211,102,.25),
    0 0 22px 4px rgba(37,211,102,.55),
    0 16px 30px -10px rgba(0,0,0,.55);
  transition:transform .35s var(--ease-bounce), box-shadow .35s var(--ease-out);
}
.whatsapp-float svg{width:30px;height:30px;position:relative;z-index:2;}
.whatsapp-float::before{
  content:"";position:absolute;inset:-6px;border-radius:50%;
  background:radial-gradient(circle, rgba(37,211,102,.5), transparent 70%);
  filter:blur(6px);z-index:-1;
  animation:wa-pulse 2.6s var(--ease-out) infinite;
}
.whatsapp-float:hover{
  transform:translateY(-4px) scale(1.06);
  box-shadow:
    0 0 0 1px rgba(37,211,102,.35),
    0 0 32px 8px rgba(37,211,102,.75),
    0 22px 40px -12px rgba(0,0,0,.6);
}
.whatsapp-label{
  position:absolute;right:calc(100% + 12px);top:50%;transform:translateY(-50%) translateX(6px);
  background:var(--ink);color:var(--stone);font-size:12.5px;font-weight:500;
  padding:8px 12px;border-radius:3px;border:1px solid var(--line-dark);white-space:nowrap;
  opacity:0;pointer-events:none;transition:opacity .3s var(--ease-out), transform .3s var(--ease-out);
}
.whatsapp-float:hover .whatsapp-label,.whatsapp-float:focus-visible .whatsapp-label{opacity:1;transform:translateY(-50%) translateX(0);}
@keyframes wa-pulse{
  0%{transform:scale(1);opacity:.7;}
  70%{transform:scale(1.4);opacity:0;}
  100%{transform:scale(1.4);opacity:0;}
}
@media (max-width:539px){ .whatsapp-float{right:14px;bottom:14px;width:52px;height:52px;} .whatsapp-float svg{width:27px;height:27px;} }

/* =============================================================
   6. Sections
   ============================================================= */
section{padding:96px 0;}
.section-light{background:var(--paper);}
.section-stone{background:var(--stone);}
.section-dark{background:var(--ink);color:var(--paper);}
.section-charcoal{background:var(--charcoal);color:var(--paper);}
.section-head{max-width:640px;margin-bottom:52px;}
.section-head h2{font-size:clamp(26px,3.4vw,38px);margin-top:16px;}
.section-dark .section-head p,.section-charcoal .section-head p{color:var(--slate-light);}
.section-light .section-head p,.section-stone .section-head p{color:var(--slate);}
.section-head p{margin-top:16px;font-size:15.5px;line-height:1.65;}

/* ---- hero (cinematic, video-ready with parallax + Ken Burns fallback) ---- */
.hero{
  position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;
  background:var(--ink);color:var(--paper);overflow:hidden;
}
.hero-media{position:absolute;inset:0;overflow:hidden;}
.hero-media video{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:2;
  transform:scale(1.06);opacity:0;transition:opacity 1.1s var(--ease-out);
}
.hero-media video.is-playing{opacity:1;}
.hero-slides{position:absolute;inset:0;z-index:1;}
.hero-slide{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transform:scale(1.06);
  transition:opacity 1.8s var(--ease-soft);
  animation:heroAmbientZoom 24s ease-in-out infinite;
}
.hero-slide.is-active{opacity:1;}
.hero-slide:nth-of-type(2){animation-delay:-8s;}
.hero-slide:nth-of-type(3){animation-delay:-16s;}
@keyframes heroAmbientZoom{
  0%,100%{transform:scale(1.06) translate3d(0,0,0);}
  50%{transform:scale(1.14) translate3d(-1.2%,-1%,0);}
}
.hero-dots{position:absolute;left:0;right:0;bottom:14px;z-index:3;display:flex;justify-content:center;gap:8px;}
@media(min-width:720px){ .hero-dots{display:none;} }
.hero-dots span{width:16px;height:2px;background:rgba(255,255,255,.35);transition:background .3s var(--ease-out);}
.hero-dots span.is-active{background:var(--gold-light);}
.hero-tint{
  position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg, rgba(10,10,11,.55) 0%, rgba(10,10,11,.6) 45%, rgba(10,10,11,.96) 100%);
}
.hero-grain{
  position:absolute;inset:0;z-index:2;opacity:.14;mix-blend-mode:overlay;pointer-events:none;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  background-size:220px 220px;
}
.hero-content{position:relative;z-index:3;padding-top:150px;padding-bottom:60px;width:100%;}
.hero-content .eyebrow{color:var(--gold-light);margin-bottom:22px;}
.hero-content .eyebrow::before{background:var(--gold-light);}
h1.hero-title{font-size:clamp(30px,5.2vw,56px);line-height:1.09;max-width:820px;font-weight:500;text-shadow:0 4px 30px rgba(0,0,0,.5);}
.hero-sub{margin-top:22px;max-width:560px;color:var(--slate-light);font-size:16px;line-height:1.6;text-shadow:0 2px 16px rgba(0,0,0,.6);}
.hero-actions{margin-top:36px;display:flex;flex-direction:column;gap:14px;align-items:flex-start;}
.hero-note{font-size:12.5px;color:var(--slate-light);max-width:380px;font-style:italic;}
.scroll-cue{
  position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:3;
  width:22px;height:36px;border:1px solid var(--line-dark);border-radius:12px;
  display:none;
}
@media(min-width:720px){ .scroll-cue{display:block;} }
.scroll-cue::before{
  content:"";position:absolute;left:50%;top:6px;width:3px;height:7px;margin-left:-1.5px;
  background:var(--gold-light);border-radius:2px;animation:scrollCue 1.8s var(--ease-out) infinite;
}
@keyframes scrollCue{0%{opacity:1;transform:translateY(0);}70%{opacity:0;transform:translateY(12px);}100%{opacity:0;transform:translateY(12px);}}

/* =============================================================
   7. Split-text reveal (headlines)
   ============================================================= */
[data-split]{overflow:visible;}
.split-word,.split-char{display:inline-block;will-change:transform,opacity;}
/* Defensive: never let a reveal+split combo stay invisible if JS is stale */
.reveal[data-split]{opacity:1;transform:none;}

/* =============================================================
   8. Reveal on scroll (universal)
   ============================================================= */
.reveal{opacity:0;transform:translateY(20px);transition:opacity .8s var(--ease-soft), transform .8s var(--ease-soft);}
.reveal.in,.reveal.is-revealed{opacity:1;transform:none;}

/* ---- tilt (subtle 3D on cards) ---- */
.has-tilt{
  --rx:0deg;--ry:0deg;
  transform:perspective(900px) rotateX(var(--rx)) rotateY(var(--ry));
  transform-style:preserve-3d;
  transition:transform .55s var(--ease-soft);
}
.has-tilt:hover{transition-duration:.15s;}

@media (prefers-reduced-motion:reduce){
  .hero-media img.ambient-on{animation:none;}
  .whatsapp-float::before{animation:none;}
  .scroll-cue::before{animation:none;}
}

/* =============================================================
   9. Responsive
   ============================================================= */

/* Critical: long CTA labels ("nowrap" from .btn) overflowed the 390px viewport and
   forced horizontal scroll on the whole page. Below 540px every standalone CTA wraps
   and goes full-width, matching what .final-actions .btn already did safely. */
@media(max-width:539px){
  .hero-actions .btn,.block-cta .btn,.selector-card .btn{
    width:100%;white-space:normal;text-align:center;
  }
  .hero-content{padding-top:104px;}
  .chip{padding:11px 15px;}
  footer .wrap{padding-right:80px;}
}

@media(min-width:540px){
  .wrap{padding:0 32px;}
}
@media(min-width:720px){
  section{padding:120px 0;}
}
@media(min-width:960px){
  .hero-content{padding-top:170px;padding-bottom:72px;}
}

/* ---- cierre final ---- */
.final{
  position:relative;
  background-image:
    radial-gradient(circle at 20% 20%, rgba(178,138,63,.08), transparent 45%),
    radial-gradient(circle at 80% 80%, rgba(178,138,63,.06), transparent 45%);
}
.final-grid{display:grid;grid-template-columns:1fr;gap:48px;}
@media(min-width:900px){ .final-grid{grid-template-columns:1.1fr .9fr;} }
.final h2{font-size:clamp(28px,3.6vw,40px);}
.final .lead{margin-top:20px;color:var(--slate-light);font-size:15.5px;line-height:1.7;max-width:520px;}

footer{background:var(--ink);border-top:1px solid var(--line-dark);color:var(--slate-light);padding:34px 0;font-size:13px;}
.footer-inner{display:flex;flex-direction:column;gap:8px;}
@media(min-width:720px){ .footer-inner{flex-direction:row;justify-content:space-between;} }
