/* ============================================================
   ALEJANDRA CAMACHO — EDICIÓN CUSTODIA
   Abogada Fiscal y Estratega Patrimonial
   Sistema de diseño · lujo silencioso · bóveda cálida
   ============================================================ */

/* ---------- TOKENS ---------- */
:root{
  /* Paleta */
  --bg:#0B0A08; --bg-elevated:#13110D; --surface:#1A1712; --surface-raised:#221D17;
  --ink:#EFE7D7; --body:#C2B9A6; --muted:#8A8170;
  --gold:#C9A24B; --gold-bright:#E7C97E; --gold-muted:#8A6E3A;
  --line:#2A2620; --custody:#3E5A47; --amber:#B5683A;
  --warm-dark:#1A1610;

  /* Tipografía */
  --serif:'Fraunces', 'Hoefler Text', 'Times New Roman', serif;
  --sans:'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

  /* Escala fluida */
  --fs-hero:clamp(3.4rem, 13vw, 11rem);
  --fs-display:clamp(2.3rem, 6.6vw, 5.6rem);
  --fs-h2:clamp(2rem, 4.6vw, 3.9rem);
  --fs-serif-lg:clamp(1.55rem, 3.4vw, 2.9rem);
  --fs-body:clamp(1rem, 0.97rem + 0.3vw, 1.175rem);
  --fs-sm:0.875rem;
  --fs-label:0.72rem;

  /* Ritmo */
  --pad:clamp(1.25rem, 5vw, 6.5rem);
  --section-y:clamp(5rem, 12.5vh, 11rem);
  --maxw:1440px;
  --measure:60ch;

  /* Movimiento */
  --ease:cubic-bezier(.16,1,.3,1);
  --ease-soft:cubic-bezier(.33,1,.68,1);
  --t-slow:1.1s; --t-med:.6s; --t-fast:.28s;

  --radius:2px;
}

/* ---------- RESET ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:auto}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}
body{
  background:var(--bg);color:var(--body);
  font-family:var(--sans);font-size:var(--fs-body);line-height:1.7;
  font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;position:relative;min-height:100vh;
  font-feature-settings:"tnum","kern";
}
img,picture,video,canvas,svg{display:block;max-width:100%}
img,video{height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}
ul,ol{list-style:none}
em,i{font-style:italic}
::selection{background:var(--gold);color:var(--bg)}

/* ---------- TIPOGRAFÍA BASE ---------- */
h1,h2,h3{font-family:var(--serif);font-weight:300;color:var(--ink);line-height:1.04;
  letter-spacing:-0.01em;font-optical-sizing:auto;text-wrap:balance}
h1 em,h2 em,h3 em{font-weight:400;color:var(--gold);font-style:italic}
p{text-wrap:pretty}
.serif{font-family:var(--serif)}

.eyebrow{font-family:var(--sans);font-size:var(--fs-label);font-weight:500;
  letter-spacing:0.24em;text-transform:uppercase;color:var(--muted);
  display:flex;align-items:center;gap:.7em;flex-wrap:wrap}
.eyebrow.center{justify-content:center;text-align:center}
.eyebrow i{color:var(--gold-muted);font-style:normal}
.eyebrow::before{content:"";width:1.6em;height:1px;background:var(--gold);flex:none;opacity:.8}
.eyebrow.center::before{display:none}

.wrap{max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad);width:100%}

/* hairline editorial */
.hairline{display:block;height:1px;background:var(--line);width:100%}
.hairline--draw{background:linear-gradient(90deg,var(--gold),var(--gold-muted));
  transform:scaleX(0);transform-origin:left;max-width:min(420px,60%);
  transition:transform 1.1s var(--ease)}
.hairline--draw.is-drawn{transform:scaleX(1)}

/* ---------- ACCESIBILIDAD ---------- */
.skip-link{position:fixed;left:50%;top:-100px;transform:translateX(-50%);
  background:var(--gold);color:var(--bg);padding:.7em 1.2em;z-index:9999;border-radius:var(--radius);
  font-size:var(--fs-sm);font-weight:600;transition:top .25s var(--ease)}
.skip-link:focus{top:14px}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:var(--radius)}
.no-js .preloader{display:none}

/* ============================================================
   ATMÓSFERA
   ============================================================ */
.atmosphere{position:fixed;inset:0;z-index:0;pointer-events:none}
.atmosphere__light{position:absolute;inset:0;
  background:radial-gradient(58vw 58vw at var(--lx,50%) var(--ly,26%), var(--warm-dark), transparent 72%);
  transition:background-position .6s var(--ease)}
.atmosphere__vignette{position:absolute;inset:0;
  background:radial-gradient(135% 120% at 50% 38%, transparent 48%, rgba(0,0,0,.5) 100%)}
.atmosphere__grain{position:absolute;inset:-50%;opacity:.05;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.82' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 6s steps(6) infinite}
@keyframes grain{
  0%{transform:translate(0,0)}16%{transform:translate(-3%,2%)}33%{transform:translate(2%,-3%)}
  50%{transform:translate(-2%,3%)}66%{transform:translate(3%,1%)}83%{transform:translate(-1%,-2%)}100%{transform:translate(0,0)}}

/* ============================================================
   PRELOADER
   ============================================================ */
.preloader{position:fixed;inset:0;z-index:9000;background:var(--bg);
  display:grid;place-items:center;transition:opacity .8s var(--ease),visibility .8s}
.preloader.is-done{opacity:0;visibility:hidden;pointer-events:none}
.preloader__inner{display:flex;flex-direction:column;align-items:center;gap:1.8rem;width:min(80vw,360px)}
.preloader__mono img{width:96px;height:auto;opacity:.92}
.preloader__words{font-family:var(--serif);font-style:italic;font-size:clamp(1.4rem,5vw,2rem);
  color:var(--ink);height:1.5em;position:relative;width:100%;text-align:center}
.preloader__words span{position:absolute;inset:0;opacity:0;display:grid;place-items:center}
.preloader__bar{width:100%;height:1px;background:var(--line);overflow:hidden}
.preloader__bar span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--gold-muted),var(--gold-bright))}

/* ============================================================
   CURSOR
   ============================================================ */
.cursor{position:fixed;top:0;left:0;z-index:8000;pointer-events:none;
  mix-blend-mode:difference;opacity:0;transition:opacity .4s}
.cursor__dot{position:absolute;width:6px;height:6px;border-radius:50%;background:var(--ink);
  transform:translate(-50%,-50%)}
.cursor__ring{position:absolute;width:38px;height:38px;border-radius:50%;border:1px solid var(--ink);
  transform:translate(-50%,-50%);transition:width .3s var(--ease),height .3s var(--ease),opacity .3s}
body.cursor-ready .cursor{opacity:1}
.cursor.is-hover .cursor__ring{width:60px;height:60px;border-color:var(--gold)}
.cursor.is-hover .cursor__dot{opacity:0}
@media (hover:none),(pointer:coarse){.cursor{display:none!important}}

/* ============================================================
   FOLIO
   ============================================================ */
.folio{position:fixed;left:max(1rem,env(safe-area-inset-left));bottom:1.2rem;z-index:60;
  display:flex;align-items:center;gap:.7rem;font-family:var(--sans);
  font-size:var(--fs-label);letter-spacing:.18em;text-transform:uppercase;color:var(--muted);
  mix-blend-mode:difference;pointer-events:none}
.folio__num{font-variant-numeric:tabular-nums;color:var(--gold);font-weight:500}
.folio__rule{width:28px;height:1px;background:var(--gold-muted)}
@media (max-width:720px){.folio{display:none}}

/* ============================================================
   MASTHEAD
   ============================================================ */
.masthead{position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:clamp(.9rem,2vw,1.4rem) var(--pad);
  transition:transform .5s var(--ease),background .5s var(--ease),backdrop-filter .5s;
  transform:translateY(-110%)}
.masthead.is-visible{transform:none}
.masthead.is-scrolled{background:rgba(11,10,8,.72);backdrop-filter:blur(14px) saturate(1.1);
  border-bottom:1px solid var(--line)}
.masthead__brand{display:flex;align-items:center;gap:.7rem}
.masthead__brand img{width:54px;height:auto}
.masthead__wordmark{font-family:var(--serif);font-size:1.05rem;color:var(--ink);letter-spacing:.01em;
  white-space:nowrap}
.masthead__nav{display:none;gap:1.7rem;font-size:var(--fs-sm);letter-spacing:.02em}
.masthead__nav a{color:var(--body);position:relative;padding:.3em 0;transition:color .3s}
.masthead__nav a::after{content:"";position:absolute;left:0;bottom:0;width:100%;height:1px;
  background:var(--gold);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease)}
.masthead__nav a:hover{color:var(--ink)}
.masthead__nav a:hover::after{transform:scaleX(1);transform-origin:left}
.masthead__cta{display:none}
.masthead__burger{display:flex;flex-direction:column;justify-content:center;gap:6px;
  width:46px;height:46px;align-items:flex-end;z-index:120}
.masthead__burger span{display:block;height:1.5px;background:var(--ink);transition:.4s var(--ease);width:26px}
.masthead__burger span:last-child{width:18px}
body.menu-open .masthead__burger span:first-child{transform:translateY(3.75px) rotate(45deg)}
body.menu-open .masthead__burger span:last-child{width:26px;transform:translateY(-3.75px) rotate(-45deg)}

@media (min-width:1000px){
  .masthead__nav{display:flex}
  .masthead__cta{display:inline-flex;align-items:center;padding:.7em 1.4em;border:1px solid var(--gold-muted);
    border-radius:100px;font-size:var(--fs-sm);color:var(--ink);letter-spacing:.02em;
    transition:background .4s var(--ease),color .4s,border-color .4s}
  .masthead__cta:hover{background:var(--gold);color:var(--bg);border-color:var(--gold)}
  .masthead__burger{display:none}
}

/* ---------- MENÚ MÓVIL ---------- */
.mobilemenu{position:fixed;inset:0;z-index:110;background:var(--bg-elevated);
  display:flex;flex-direction:column;justify-content:center;gap:2.5rem;padding:var(--pad);
  clip-path:inset(0 0 100% 0);transition:clip-path .7s var(--ease);visibility:hidden}
body.menu-open .mobilemenu{clip-path:inset(0 0 0 0);visibility:visible}
.mobilemenu__nav{display:flex;flex-direction:column;gap:.4rem}
.mobilemenu__nav a{font-family:var(--serif);font-size:clamp(1.8rem,8vw,2.6rem);color:var(--ink);
  display:flex;align-items:baseline;gap:1rem;padding:.18em 0;opacity:0;transform:translateY(20px);
  transition:opacity .5s var(--ease),transform .5s var(--ease),color .3s}
.mobilemenu__nav a i{font-family:var(--sans);font-size:.7rem;font-style:normal;color:var(--gold);
  letter-spacing:.1em;font-variant-numeric:tabular-nums}
body.menu-open .mobilemenu__nav a{opacity:1;transform:none}
body.menu-open .mobilemenu__nav a:nth-child(1){transition-delay:.18s}
body.menu-open .mobilemenu__nav a:nth-child(2){transition-delay:.24s}
body.menu-open .mobilemenu__nav a:nth-child(3){transition-delay:.30s}
body.menu-open .mobilemenu__nav a:nth-child(4){transition-delay:.36s}
body.menu-open .mobilemenu__nav a:nth-child(5){transition-delay:.42s}
body.menu-open .mobilemenu__nav a:nth-child(6){transition-delay:.48s}
body.menu-open .mobilemenu__nav a:nth-child(7){transition-delay:.54s}
.mobilemenu__cta{align-self:flex-start;padding:.9em 1.8em;background:var(--gold);color:var(--bg);
  border-radius:100px;font-weight:600;letter-spacing:.02em}
.mobilemenu__meta{display:flex;flex-direction:column;gap:.3rem;font-size:var(--fs-label);
  letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
@media (min-width:1000px){.mobilemenu{display:none}}

/* ============================================================
   BOTONES
   ============================================================ */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;
  font-family:var(--sans);font-weight:500;letter-spacing:.02em;position:relative;
  padding:1em 2em;border-radius:100px;transition:transform .4s var(--ease),background .4s,color .4s;
  min-height:48px}
.btn--seal{background:linear-gradient(135deg,var(--gold-bright),var(--gold) 55%,var(--gold-muted));
  color:#1a140a;font-weight:600;box-shadow:0 6px 26px -10px rgba(201,162,75,.6)}
.btn--seal:hover{transform:translateY(-2px)}
.btn--seal:active{transform:scale(.97)}
.btn--seal .btn__ring{position:absolute;inset:0;border-radius:100px;border:1px solid var(--gold-bright);
  opacity:0;transform:scale(1)}
.btn--seal.is-press .btn__ring{animation:ring .7s var(--ease)}
@keyframes ring{0%{opacity:.7;transform:scale(1)}100%{opacity:0;transform:scale(1.4)}}
.btn--lg{padding:1.15em 2.6em;font-size:1.05rem}
.btn--ghost{color:var(--ink);border:1px solid var(--line)}
.btn--ghost:hover{border-color:var(--gold-muted);color:var(--gold-bright)}

/* ============================================================
   00 · HERO
   ============================================================ */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;
  padding-block:clamp(7rem,16vh,11rem) clamp(4rem,9vh,7rem);isolation:isolate;overflow:hidden}
.hero__bg{position:absolute;inset:0;z-index:-2}
.hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;
  transition:opacity 1.4s var(--ease);filter:saturate(.85) contrast(1.02)}
.hero__video.is-ready{opacity:.34}
.hero__scrim{position:absolute;inset:0;
  background:
    radial-gradient(120% 90% at 70% 20%, transparent, rgba(11,10,8,.5) 70%),
    linear-gradient(180deg, rgba(11,10,8,.55), rgba(11,10,8,.25) 40%, rgba(11,10,8,.92))}
.hero__inner{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad);
  display:flex;flex-direction:column;gap:clamp(2rem,5vh,3.5rem)}
.hero__eyebrow{justify-content:flex-start}
.hero__eyebrow span{white-space:nowrap}

.hero__stage{position:relative;display:grid;gap:clamp(1.5rem,4vw,2rem);align-items:center}
.hero__name{font-size:var(--fs-hero);font-weight:300;line-height:.92;letter-spacing:-0.02em;
  color:var(--ink);z-index:3}
.hero__line{display:block;overflow:hidden;padding-bottom:.14em;margin-bottom:-.14em}
.hero__ink{display:inline-block;will-change:transform}
.hero__name .hero__line:last-child{margin-left:.06em;color:var(--ink)}
.hero__portrait{position:relative;border-radius:var(--radius);overflow:hidden;z-index:2;
  border:1px solid var(--line);box-shadow:0 40px 80px -40px rgba(0,0,0,.9)}
.hero__portrait img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:62% 30%}
.hero__portrait::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 55%,rgba(11,10,8,.6));pointer-events:none}
.hero__cap{position:absolute;left:1rem;bottom:1rem;z-index:2;font-size:var(--fs-label);
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink);display:flex;align-items:center;gap:.5em}
.hero__cap .dot{width:6px;height:6px;border-radius:50%;background:var(--gold);box-shadow:0 0 10px var(--gold)}

.hero__foot{display:flex;flex-direction:column;gap:1.6rem}
.hero__role{font-family:var(--serif);font-size:var(--fs-serif-lg);font-weight:300;color:var(--ink);
  line-height:1.18;max-width:18ch}
.hero__role em{color:var(--gold);font-style:italic}
.hero__promise{color:var(--body);max-width:46ch;font-size:1.02rem}
.hero__actions{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}

.scrollcue{position:absolute;left:50%;bottom:1.4rem;transform:translateX(-50%);z-index:4;
  display:flex;flex-direction:column;align-items:center;gap:.7rem;
  font-size:var(--fs-label);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.scrollcue__line{width:1px;height:46px;background:linear-gradient(var(--gold),transparent);position:relative;overflow:hidden}
.scrollcue__line::after{content:"";position:absolute;top:-50%;left:0;width:100%;height:50%;
  background:var(--gold-bright);animation:cue 2.4s var(--ease) infinite}
@keyframes cue{0%{top:-50%}60%,100%{top:100%}}

@media (min-width:760px){
  .hero__stage{grid-template-columns:1.08fr .92fr}
  .hero__name{grid-column:1;margin-right:-12%;position:relative}
  .hero__portrait{grid-column:2;max-width:none;justify-self:end;width:100%}
  .hero__portrait img{aspect-ratio:4/5}
  .hero__foot{flex-direction:row;justify-content:space-between;align-items:flex-end;
    border-top:1px solid var(--line);padding-top:1.8rem;gap:2.5rem}
  .hero__promise{text-align:left}
}
@media (max-width:759px){
  .hero__name{font-size:clamp(3.2rem,17vw,5.5rem)}
  .hero__portrait{max-width:86vw;margin-inline:auto}
}

/* ============================================================
   SECCIÓN GENÉRICA
   ============================================================ */
section{position:relative;z-index:1}
.manifesto,.about,.pillars,.process,.radar,.values{padding-block:var(--section-y)}

/* ============================================================
   01 · MANIFIESTO
   ============================================================ */
.manifesto{background:var(--bg-elevated);text-align:center;overflow:hidden}
.manifesto .wrap{display:flex;flex-direction:column;align-items:center;gap:2rem;max-width:1100px}
.manifesto__quote{font-family:var(--serif);font-weight:300;font-style:italic;
  font-size:var(--fs-display);line-height:1.12;color:var(--muted);max-width:18ch;letter-spacing:-.01em}
.manifesto__quote em{font-style:italic}
.manifesto__quote .word{transition:color .5s var(--ease),opacity .5s}
.manifesto__quote .word.is-lit{color:var(--ink)}
.manifesto__quote em .word{font-style:italic}
.manifesto__quote em .word.is-lit{color:var(--gold)}
.manifesto__quote.is-static{color:var(--ink)}
.manifesto__quote.is-static em{color:var(--gold)}
.manifesto__support{max-width:52ch;color:var(--body)}
.manifesto__anchors{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem 2rem;
  font-size:var(--fs-label);letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.manifesto__anchors li{position:relative;opacity:.25;transition:opacity .5s var(--ease),color .5s}
.manifesto__anchors li.is-on{opacity:1;color:var(--ink)}
.manifesto__anchors li+li::before{content:"·";position:absolute;left:-1.05rem;color:var(--gold);opacity:.7}

/* ============================================================
   02 · SOBRE MÍ
   ============================================================ */
.about__grid{display:grid;gap:clamp(2.5rem,6vw,5rem);align-items:start}
.about__portrait{position:relative;border-radius:var(--radius);overflow:visible;max-width:520px}
.about__portrait picture{display:block;overflow:hidden;border-radius:var(--radius)}
.about__portrait img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:60% 25%;
  filter:saturate(.92)}
.about__frame{position:absolute;inset:14px -14px -14px 14px;border:1px solid var(--gold-muted);
  border-radius:var(--radius);z-index:-1;opacity:.55}
.about__body{display:flex;flex-direction:column;gap:1.4rem}
.about__heading{font-size:var(--fs-h2);margin-block:.3rem .6rem}
.about__copy{display:flex;flex-direction:column;gap:1rem;color:var(--body);max-width:var(--measure)}
.about__pledge em{color:var(--gold);font-style:italic;font-family:var(--serif)}
.about__pillars{display:grid;gap:1.4rem;margin-top:1.4rem;
  border-top:1px solid var(--line);padding-top:1.8rem}
.about__pillars li{display:grid;gap:.3rem}
.about__pillars h3{font-family:var(--sans);font-size:1.02rem;font-weight:600;color:var(--ink);letter-spacing:0}
.about__pillars p{font-size:.95rem;color:var(--muted);line-height:1.55;max-width:48ch}
@media (min-width:860px){
  .about__grid{grid-template-columns:0.85fr 1fr}
  .about__portrait{position:sticky;top:14vh}
  .about__pillars{grid-template-columns:1fr 1fr;gap:1.8rem 2.4rem}
}

/* ============================================================
   03 · PILARES
   ============================================================ */
.pillars{background:var(--bg)}
.pillars__head{max-width:880px;margin-bottom:clamp(2.5rem,6vh,5rem);display:flex;flex-direction:column;gap:1.2rem}
.pillars__heading{font-size:var(--fs-display)}
.pillars__sub{color:var(--body);max-width:56ch}
.pillars__grid{display:grid;gap:1px;background:var(--line);border-block:1px solid var(--line)}
.pillar{position:relative;background:var(--bg);overflow:hidden;transition:background .6s var(--ease)}
.pillar__media{position:absolute;inset:0;opacity:.12;transition:opacity .7s var(--ease),transform .7s var(--ease);z-index:0}
.pillar__media img{width:100%;height:100%;object-fit:cover;filter:saturate(.8)}
.pillar__inner{position:relative;z-index:1;padding:clamp(1.8rem,4vw,3.2rem);
  display:flex;flex-direction:column;gap:1rem}
.pillar__index{font-family:var(--serif);font-style:italic;font-size:clamp(2.4rem,5vw,3.6rem);
  color:var(--gold);line-height:1;opacity:.9}
.pillar__name{font-size:var(--fs-serif-lg);color:var(--ink)}
.pillar__tagline{font-family:var(--serif);font-style:italic;color:var(--gold-bright);font-size:1.1rem}
.pillar__desc{color:var(--body);font-size:.98rem;max-width:46ch}
.pillar__list{display:grid;gap:.55rem;margin-top:.4rem}
.pillar__list li{position:relative;padding-left:1.4em;color:var(--body);font-size:.93rem;line-height:1.45}
.pillar__list li::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:1px;background:var(--gold)}
.pillar__outcome{margin-top:.8rem;padding-top:1rem;border-top:1px solid var(--line);
  font-size:.92rem;color:var(--muted);line-height:1.5}
.pillar__outcome span{display:block;font-family:var(--sans);font-size:var(--fs-label);
  letter-spacing:.2em;text-transform:uppercase;color:var(--gold-muted);margin-bottom:.4em}
.pillar::after{content:"";position:absolute;left:0;top:0;width:100%;height:2px;
  background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
.pillar[data-pillar="fiscal"]::after{background:var(--custody)}
@media (hover:hover){
  .pillar:hover{background:var(--surface)}
  .pillar:hover .pillar__media{opacity:.26;transform:scale(1.05)}
  .pillar:hover::after{transform:scaleX(1)}
}
@media (min-width:920px){.pillars__grid{grid-template-columns:repeat(3,1fr)}}

/* ============================================================
   04 · PROCESO
   ============================================================ */
.process{background:var(--bg-elevated)}
.process__head{max-width:820px;margin-bottom:clamp(3rem,7vh,5.5rem);display:flex;flex-direction:column;gap:1.1rem}
.process__heading{font-size:var(--fs-display)}
.process__sub{color:var(--body);max-width:54ch}
.timeline{position:relative;display:grid;gap:clamp(2.5rem,6vh,4.5rem);
  padding-left:clamp(2rem,7vw,4rem)}
.timeline::before{content:"";position:absolute;left:clamp(.5rem,2.4vw,1.1rem);top:.5em;bottom:.5em;width:1px;
  background:var(--line)}
.timeline::after{content:"";position:absolute;left:clamp(.5rem,2.4vw,1.1rem);top:.5em;width:1px;height:0;
  background:linear-gradient(var(--gold),var(--gold-muted));box-shadow:0 0 12px var(--gold);
  transition:height 1.5s var(--ease)}
.timeline.is-drawn::after{height:calc(100% - 1em)}
.step{position:relative;display:grid;gap:.55rem;opacity:.45;transition:opacity .6s var(--ease)}
.step.is-on{opacity:1}
.step__node{position:absolute;left:calc(clamp(2rem,7vw,4rem) * -1 + clamp(.5rem,2.4vw,1.1rem) - 5px);
  top:.4em;width:11px;height:11px;border-radius:50%;background:var(--bg-elevated);
  border:1px solid var(--gold-muted);transition:.5s var(--ease)}
.step.is-on .step__node{background:var(--gold);border-color:var(--gold);box-shadow:0 0 0 4px rgba(201,162,75,.15)}
.step__n{font-family:var(--sans);font-size:var(--fs-label);letter-spacing:.2em;color:var(--gold);
  font-variant-numeric:tabular-nums}
.step__title{font-size:var(--fs-serif-lg);color:var(--ink)}
.step__desc{color:var(--body);max-width:54ch;font-size:.98rem}
@media (min-width:860px){
  .timeline{padding-left:0;max-width:760px;margin-inline:auto}
  .timeline::before,.timeline::after{left:50%}
  .step{grid-template-columns:1fr;width:calc(50% - 3rem);text-align:right}
  .step:nth-child(even){margin-left:calc(50% + 3rem);text-align:left}
  .step__node{left:auto;right:-3.5rem;top:.4em}
  .step:nth-child(even) .step__node{right:auto;left:-3.5rem}
  .step__desc{margin-left:auto}
  .step:nth-child(even) .step__desc{margin-left:0}
}

/* ============================================================
   05 · RADAR
   ============================================================ */
.radar{background:var(--bg)}
.radar__grid{display:grid;gap:clamp(2.5rem,6vw,5rem);align-items:center}
.radar__heading{font-size:var(--fs-h2);margin-block:.4rem .8rem}
.radar__sub{color:var(--body);max-width:48ch;margin-bottom:2rem}
.radar__viz{position:relative;max-width:520px;aspect-ratio:1/1;width:100%}
.radar__viz canvas{width:100%;height:100%}
.radar__legend{display:flex;flex-wrap:wrap;gap:1.2rem;margin-top:1rem;font-size:var(--fs-label);
  letter-spacing:.14em;text-transform:uppercase;color:var(--muted);align-items:center}
.radar__legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:.5em;vertical-align:middle}
.radar__legend .is-risk{background:var(--amber);box-shadow:0 0 8px var(--amber)}
.radar__legend .is-ok{background:var(--custody);box-shadow:0 0 8px var(--custody)}
.radar__cards{display:grid;gap:1px;background:var(--line);border:1px solid var(--line)}
.rcard{background:var(--bg);padding:clamp(1.5rem,3vw,2.2rem);display:flex;flex-direction:column;gap:.7rem;
  position:relative;overflow:hidden;transition:background .5s var(--ease)}
.rcard__tag{font-size:var(--fs-label);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-muted)}
.rcard h3{font-family:var(--serif);font-size:clamp(1.25rem,2.4vw,1.6rem);color:var(--ink);line-height:1.18}
.rcard p{color:var(--muted);font-size:.95rem;line-height:1.55}
.rcard::before{content:"";position:absolute;top:0;left:0;width:200%;height:100%;
  background:linear-gradient(105deg,transparent 45%,rgba(201,162,75,.07) 50%,transparent 55%);
  transform:translateX(-60%);transition:transform .8s var(--ease)}
@media (hover:hover){.rcard:hover{background:var(--surface)}.rcard:hover::before{transform:translateX(0)}}
@media (min-width:980px){.radar__grid{grid-template-columns:1fr 1fr}}

/* ============================================================
   06 · VALORES
   ============================================================ */
.values{background:var(--bg-elevated);overflow:hidden}
.values__head{text-align:center;margin-bottom:clamp(2.5rem,6vh,4.5rem);display:flex;flex-direction:column;
  align-items:center;gap:1rem}
.values__heading{font-size:var(--fs-display)}
.values__list{display:grid;gap:1px;background:var(--line);border-block:1px solid var(--line)}
.value{background:var(--bg-elevated);padding:clamp(2rem,4vw,3.2rem);display:grid;gap:.8rem;
  grid-template-columns:auto 1fr;align-items:baseline;column-gap:1.6rem;transition:background .5s var(--ease)}
.value__i{font-family:var(--sans);font-size:var(--fs-label);letter-spacing:.2em;color:var(--gold);
  font-variant-numeric:tabular-nums}
.value h3{font-size:var(--fs-serif-lg);color:var(--ink);grid-column:2}
.value p{grid-column:2;color:var(--body);max-width:52ch}
@media (hover:hover){.value:hover{background:var(--surface)}}
@media (min-width:760px){.values__list{grid-template-columns:1fr 1fr}}

/* ============================================================
   07 · CTA
   ============================================================ */
.cta{position:relative;padding-block:clamp(6rem,16vh,12rem);text-align:center;overflow:hidden;isolation:isolate}
.cta__bg{position:absolute;inset:0;z-index:-2}
.cta__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;
  transition:opacity 1.4s var(--ease)}
.cta__video.is-ready{opacity:.22}
/* En móvil el video de fondo se percibe poco: súbele presencia */
@media (max-width:760px){
  .hero__video.is-ready{opacity:.5}
  .cta__video.is-ready{opacity:.3}
}
.cta__scrim{position:absolute;inset:0;background:radial-gradient(120% 100% at 50% 50%,rgba(11,10,8,.7),var(--bg) 78%)}
.cta__inner{display:flex;flex-direction:column;align-items:center;gap:1.5rem;max-width:900px}
.cta__heading{font-size:var(--fs-display);max-width:16ch}
.cta__word{font-family:var(--serif);font-style:italic;font-weight:300;
  font-size:clamp(3.5rem,16vw,12rem);line-height:.9;letter-spacing:-.02em;
  background:linear-gradient(180deg,var(--muted) 0%,var(--muted) 100%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;
  background-size:100% 200%;background-position:0 0;transition:background-position 1s var(--ease);margin-block:.2rem}
.cta__word.is-fill{background-image:linear-gradient(180deg,var(--gold-bright),var(--gold) 50%,var(--gold-muted));
  background-position:0 100%}
.cta__sub{color:var(--body);max-width:50ch}
.cta__channels{display:grid;gap:1.4rem 2.5rem;margin-top:2.5rem;width:100%;
  border-top:1px solid var(--line);padding-top:2.5rem;text-align:left}
.cta__channels li{display:flex;flex-direction:column;gap:.3rem}
.cta__k{font-size:var(--fs-label);letter-spacing:.2em;text-transform:uppercase;color:var(--gold-muted)}
.cta__channels a{color:var(--ink);transition:color .3s;width:fit-content}
.cta__channels a:hover{color:var(--gold-bright)}
@media (min-width:680px){.cta__channels{grid-template-columns:repeat(2,1fr)}}
@media (min-width:980px){.cta__channels{grid-template-columns:repeat(4,1fr)}}

/* ============================================================
   08 · FOOTER
   ============================================================ */
.colophon{background:var(--bg);border-top:1px solid var(--line);padding-block:clamp(3rem,7vh,5rem) 2rem}
.colophon__grid{display:grid;gap:2.5rem;padding-bottom:2.5rem}
.colophon__brand img{width:min(260px,70vw);height:auto;margin-bottom:1.2rem;opacity:.92}
.colophon__brand p{color:var(--muted);font-size:.92rem;max-width:42ch}
.colophon__links{display:flex;flex-wrap:wrap;gap:.8rem 1.8rem;align-content:start}
.colophon__links a{color:var(--body);font-size:.95rem;position:relative;transition:color .3s}
.colophon__links a:hover{color:var(--gold-bright)}
.colophon__base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;align-items:center;
  border-top:1px solid var(--line);padding-top:2rem;font-size:var(--fs-label);
  letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.colophon__edition{color:var(--gold-muted)}
.colophon__base .folio__num{position:static}
@media (min-width:760px){.colophon__grid{grid-template-columns:1.4fr 1fr}}

/* ============================================================
   SELLO FLOTANTE WHATSAPP
   ============================================================ */
.floatcta{position:fixed;right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));
  z-index:90;display:inline-flex;align-items:center;gap:.55em;
  padding:.75em 1.25em .75em 1em;border-radius:100px;
  background:linear-gradient(135deg,var(--gold-bright),var(--gold) 60%,var(--gold-muted));color:#1a140a;
  font-weight:600;font-size:.92rem;box-shadow:0 10px 30px -10px rgba(0,0,0,.7);
  opacity:0;transform:translateY(20px) scale(.9);pointer-events:none;
  transition:opacity .5s var(--ease),transform .5s var(--ease)}
.floatcta.is-visible{opacity:1;transform:none;pointer-events:auto}
.floatcta svg{flex:none}
@media (max-width:520px){.floatcta span{display:none}.floatcta{padding:.85em}}

/* ============================================================
   ESTADOS DE REVELADO (GSAP base)
   ============================================================ */
.js [data-reveal],.js [data-reveal-lines] .line,.js [data-reveal-lines] .word{will-change:transform,opacity}
.js .hero__line>*{display:inline-block}
.js [data-step],.js [data-value],.js [data-rcard],.js [data-anchor]{will-change:transform,opacity}

/* ============================================================
   REDUCED MOTION
   ============================================================ */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;scroll-behavior:auto!important}
  .atmosphere__grain{animation:none}
  .scrollcue__line::after{animation:none;display:none}
  .hero__video,.cta__video{display:none}
  .timeline::after{height:calc(100% - 1em)!important}
  .manifesto__quote .word,.manifesto__anchors li{opacity:1!important;color:var(--ink)}
  .manifesto__quote em.word{color:var(--gold)}
  .cta__word{-webkit-text-fill-color:transparent;background-image:linear-gradient(180deg,var(--gold-bright),var(--gold-muted));background-position:0 100%}
}
