@font-face {
  font-family: 'Source Serif 4';
  src: url(../fonts/SourceSerif4.woff2) format('woff2');
  font-weight: 200 900;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Inter';
  src: url(../fonts/Inter.woff2) format('woff2');
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}

:root{
  --navy:#16263F; --ambar:#BE8A3A; --ink:#13161A;
  --white:#FFFFFF; --paper:#F8F8F6; --muted:#676E73; --hair:#ECEDEF;
  --paper-soft:rgba(248,248,246,.76); --paper-dim:rgba(248,248,246,.60);
  --hair-dark:rgba(248,248,246,.18); --tick-dark:rgba(248,248,246,.30);
  --serif:'Source Serif 4',Georgia,serif; --sans:'Inter',system-ui,sans-serif;
}
*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth;}
body{margin:0; background:var(--white); color:var(--ink); font-family:var(--sans); font-size:18px; line-height:1.55; font-optical-sizing:auto; -webkit-font-smoothing:antialiased;}
.wrap{max-width:1120px; margin:0 auto; padding:0 32px;}
a{color:var(--navy);}
:focus-visible{outline:2px solid var(--ambar); outline-offset:2px;}
.skip{position:absolute; left:-9999px; top:0; background:var(--navy); color:var(--paper); padding:10px 16px; z-index:100;}
.skip:focus{left:8px; top:8px;}

/* NAV */
.nav{position:sticky; top:0; z-index:50; background:rgba(255,255,255,.92); backdrop-filter:saturate(1.1) blur(8px); border-bottom:1px solid var(--hair);}
.nav .row{display:flex; align-items:center; justify-content:space-between; gap:24px; height:68px;}
.nav .brand svg{height:30px; width:auto; display:block;}
.nav .links{display:flex; align-items:center; gap:26px; list-style:none; margin:0; padding:0;}
.nav .links a:not(.btn){font-size:14px; color:var(--ink); text-decoration:none; letter-spacing:.01em;}
.nav .links a:not(.btn):hover{color:var(--navy); text-decoration:underline; text-underline-offset:4px;}
.btn{display:inline-block; background:var(--navy); color:var(--paper); text-decoration:none; font-size:14px; font-weight:600; padding:10px 18px; border-radius:3px; border:1px solid var(--navy);}
.btn:hover{filter:brightness(.92);}
.btn.amber{background:var(--ambar); color:var(--ink); border-color:var(--ambar);}
.nav-toggle{display:none; background:none; border:none; cursor:pointer; padding:8px; flex-direction:column; gap:5px; align-items:center; justify-content:center; margin-left:8px;}
.nav-toggle span{display:block; width:22px; height:2px; background:var(--ink); border-radius:1px; transition:transform .2s,opacity .2s;}

/* secciones */
section{padding:84px 0; border-bottom:1px solid var(--hair);}
section.dark{background:var(--navy); color:var(--paper); border-bottom-color:var(--hair-dark);}
.eyebrow{display:flex; align-items:center; gap:11px; margin-bottom:24px;}
.eyebrow .d{width:9px; height:9px; border-radius:50%; background:var(--ambar); flex:none;}
.eyebrow span{font-size:12px; font-weight:600; letter-spacing:.15em; text-transform:uppercase; color:var(--muted);}
.dark .eyebrow span{color:var(--paper-soft);}
.lead{font-size:17px; color:var(--muted); max-width:62ch; margin:0 0 34px; line-height:1.6;}
.dark .lead{color:var(--paper-soft);}

/* HERO navy */
.hero{background:var(--navy); color:var(--paper); border-bottom:1px solid var(--hair-dark);}
.hero .wrap{padding-top:76px; padding-bottom:84px;}
.hero .kick{display:flex; align-items:center; gap:11px; margin-bottom:26px;}
.hero .kick .d{width:9px;height:9px;border-radius:50%;background:var(--ambar);}
.hero .kick span{font-size:12px; font-weight:600; letter-spacing:.15em; text-transform:uppercase; color:var(--paper-soft);}
.hero h1{font-family:var(--serif); font-weight:560; font-size:clamp(46px,8.5vw,96px); line-height:1.0; letter-spacing:-.025em; color:var(--paper); margin:0; max-width:14ch;}
.hero h1 .pt{color:var(--ambar);}
.hero .sub{font-size:20px; color:var(--paper-soft); max-width:52ch; margin:30px 0 0; line-height:1.5;}
.hero .firma{font-family:var(--serif); font-style:italic; font-size:21px; color:var(--paper); margin:26px 0 0;}
.hero .firma::before{content:""; display:inline-block; width:9px;height:9px;border-radius:50%; background:var(--ambar); margin-right:11px; vertical-align:middle;}
.hero .cta{margin-top:40px;}

/* método: rejilla + riel-cajetín */
.asym{display:grid; grid-template-columns:1fr 300px; gap:0; border-top:2px solid var(--navy);}
.asym .col{padding:34px 44px 34px 0;}
.asym h3{font-family:var(--serif); font-weight:560; font-size:clamp(32px,4.6vw,52px); line-height:1.06; letter-spacing:-.02em; color:var(--navy); margin:0 0 22px;}
.asym .col p{margin:0 0 16px; max-width:50ch;}
.rail{position:relative; overflow:hidden; background:var(--navy); color:var(--paper); padding:30px 28px; margin:-2px 0;}
.rail .ruler{position:absolute; left:0; top:0; bottom:0; width:7px; background:repeating-linear-gradient(to bottom, var(--tick-dark) 0 1px, transparent 1px 12px);}
.rail-body{padding-left:18px;}
.titleblock{border:1px solid var(--hair-dark); border-radius:2px; padding:10px 12px; margin-bottom:24px; display:flex; align-items:center; justify-content:space-between; gap:12px;}
.titleblock svg{height:17px; width:auto; display:block;}
.tb-meta{text-align:right; font-size:9px; line-height:1.6; letter-spacing:.12em; text-transform:uppercase; color:var(--paper-soft); font-variant-numeric:tabular-nums;}
.rl{display:flex; align-items:baseline; gap:9px;}
.rl .ri{font-variant-numeric:tabular-nums; font-size:9.5px; font-weight:700; color:var(--ambar); letter-spacing:.05em;}
.rl .rt{font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--paper-soft);}
.rv{font-size:14px; color:var(--paper); padding:5px 0 16px 17px; border-bottom:1px solid var(--hair-dark); margin-bottom:16px; line-height:1.4;}
.rv:last-child{border-bottom:none; padding-bottom:0; margin-bottom:0;}

/* fases (banda navy) */
.phases{display:grid; grid-template-columns:repeat(5,1fr); gap:14px;}
.phase{border:1px solid var(--hair-dark); border-top:2px solid var(--ambar); padding:18px 16px 22px;}
.phase .pn{display:inline-block; font-family:var(--sans); font-variant-numeric:tabular-nums; font-weight:600; font-size:12px; color:var(--paper); letter-spacing:.06em; border:1px solid var(--hair-dark); border-radius:2px; padding:2px 7px; margin-bottom:14px;}
.phase .pt{font-family:var(--serif); font-weight:560; font-size:18px; line-height:1.2; color:var(--paper); margin:0 0 7px;}
.phase .pd{font-size:12.5px; color:var(--paper-soft); line-height:1.45; margin:0;}

/* lo que te llevas: punto ámbar */
.dotlist{list-style:none; margin:0; padding:0; max-width:62ch;}
.dotlist li{position:relative; padding:0 0 18px 28px; font-size:17px; line-height:1.5; border-bottom:1px solid var(--hair); margin-bottom:18px;}
.dotlist li:last-child{border-bottom:none; padding-bottom:0; margin-bottom:0;}
.dotlist li::before{content:""; position:absolute; left:2px; top:9px; width:9px; height:9px; border-radius:50%; background:var(--ambar);}
.dotlist li strong{font-weight:600; color:var(--ink);}

/* cifras (banda navy) */
.stats{display:grid; grid-template-columns:repeat(4,1fr); gap:24px;}
.stat{border-top:2px solid var(--ambar); padding-top:16px;}
.stat .sv{font-family:var(--serif); font-weight:560; font-size:clamp(40px,5vw,58px); color:var(--paper); line-height:1; letter-spacing:-.02em;}
.stat .sl{font-size:13px; color:var(--paper-soft); margin-top:12px; line-height:1.4;}

/* reseñas */
.quotes{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.quote{border:1px solid var(--hair); border-top:2px solid var(--navy); padding:24px 22px; background:var(--white); display:flex; flex-direction:column;}
.quote .qd{width:9px;height:9px;border-radius:50%;background:var(--ambar);margin-bottom:18px;}
.quote p{font-family:var(--serif); font-size:18px; line-height:1.4; color:var(--ink); margin:0 0 20px; flex:1;}
.quote .who{font-size:12px; color:var(--muted); letter-spacing:.04em; line-height:1.4; border-top:1px solid var(--hair); padding-top:14px;}
.quote .who b{display:block; color:var(--ink); font-weight:600; font-size:12.5px; letter-spacing:.02em;}

/* CTA final */
.final h2{font-family:var(--serif); font-weight:560; font-size:clamp(34px,5.5vw,60px); line-height:1.04; letter-spacing:-.02em; color:var(--paper); margin:0 0 18px; max-width:16ch;}
.final p{font-size:18px; color:var(--paper-soft); max-width:50ch; margin:0 0 32px;}

/* footer */
footer{background:var(--navy); color:var(--paper-soft); padding:54px 0 44px;}
footer .frow{display:flex; align-items:flex-start; justify-content:space-between; gap:32px; flex-wrap:wrap;}
footer .brand svg{height:26px; width:auto; display:block; margin-bottom:14px;}
footer .fdesc{font-size:13px; color:var(--paper-soft); max-width:34ch; line-height:1.5;}
footer nav ul{list-style:none; margin:0; padding:0; display:grid; gap:9px;}
footer nav a{color:var(--paper-soft); text-decoration:none; font-size:13px;}
footer nav a:hover{color:var(--paper); text-decoration:underline; text-underline-offset:3px;}
footer .legal{margin-top:34px; padding-top:18px; border-top:1px solid var(--hair-dark); font-size:11.5px; color:var(--paper-dim); display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-variant-numeric:tabular-nums;}

/* shared utilities */
.nav .links a[aria-current="page"]{color:var(--navy);font-weight:600;}
.btn.ghost{background:transparent;color:var(--paper);border-color:var(--hair-dark);}
.btn.ghost:hover{border-color:var(--paper);filter:none;}
.narrow{max-width:760px;}
h2.t{font-family:var(--serif);font-weight:560;font-size:clamp(30px,4.4vw,48px);line-height:1.06;letter-spacing:-.02em;color:var(--ink);margin:0 0 22px;max-width:20ch;}
.dark h2.t{color:var(--paper);}
.lede{font-family:var(--serif);font-weight:440;font-size:clamp(21px,2.6vw,27px);line-height:1.4;color:var(--ink);max-width:30ch;margin:0 0 22px;}
.dark .lede{color:var(--paper);}
.prose{font-size:18px;color:var(--ink);line-height:1.62;max-width:64ch;margin:0 0 18px;}
.prose:last-child{margin-bottom:0;}
.dark .prose{color:var(--paper-soft);}
.prose strong{font-weight:600;color:var(--ink);}
.dark .prose strong{color:var(--paper);}
.inline-cta{display:inline-block;font-size:14px;font-weight:600;color:var(--navy);text-decoration:none;border-bottom:2px solid var(--ambar);padding-bottom:2px;}
.inline-cta:hover{color:var(--ink);}
.cta-line{margin:24px 0 0;}
.chips{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px;}
.chips .c{border:1px solid var(--hair);border-radius:3px;padding:10px 16px;font-size:14.5px;color:var(--ink);background:var(--paper);}
.final .ctas{display:flex;gap:14px;flex-wrap:wrap;}
.head{background:var(--navy);color:var(--paper);border-bottom:1px solid var(--hair-dark);}
.head .wrap{padding:54px 32px 50px;}
.head .kick{display:flex;align-items:center;gap:11px;margin-bottom:18px;}
.head .kick .d{width:9px;height:9px;border-radius:50%;background:var(--ambar);}
.head .kick span{font-size:12px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--paper-soft);}
.head h1{font-family:var(--serif);font-weight:560;font-size:clamp(32px,5vw,52px);line-height:1.05;letter-spacing:-.02em;color:var(--paper);margin:0;}
.doc{max-width:760px;margin:0 auto;padding:56px 0 80px;}
.borrador{border-left:3px solid var(--ambar);background:var(--paper);padding:16px 20px;margin:0 0 40px;font-size:15px;color:var(--ink);line-height:1.55;}
.borrador strong{font-weight:600;}
.doc h2{font-family:var(--serif);font-weight:560;font-size:22px;line-height:1.2;color:var(--ink);margin:38px 0 12px;}
.doc h2:first-of-type{margin-top:0;}
.doc p{margin:0 0 14px;color:var(--ink);}
.doc .ph{color:var(--muted);}
.doc table{width:100%;border-collapse:collapse;margin:14px 0 20px;font-size:14px;}
.doc th,.doc td{border:1px solid var(--muted);padding:9px 11px;text-align:left;vertical-align:top;}
.doc th{background:var(--paper);font-weight:600;}
.doc .upd{margin-top:34px;font-size:13px;color:var(--muted);}

@media (prefers-reduced-motion:no-preference){
  .reveal{opacity:0; transform:translateY(10px); animation:rise .7s cubic-bezier(.2,.6,.2,1) forwards;}
  @keyframes rise{to{opacity:1; transform:none;}}
}
@media (max-width:860px){
  .nav-toggle{display:flex;}
  .nav .links{display:none; position:absolute; top:68px; left:0; right:0; background:rgba(255,255,255,.97); border-bottom:1px solid var(--hair); flex-direction:column; gap:0; padding:8px 24px;}
  .nav .links.open{display:flex;}
  .nav .links li{border-bottom:1px solid var(--hair);}
  .nav .links li:last-child{border-bottom:none;}
  .nav .links a:not(.btn){padding:13px 0; display:block;}
  .nav .links .btn{margin:13px 0; display:inline-block;}
  .asym{grid-template-columns:1fr;}
  .asym .col{padding-right:0;}
  .asym .rail{margin:0; border-top:2px solid var(--ambar);}
  .phases{grid-template-columns:1fr 1fr;}
  .stats{grid-template-columns:1fr 1fr;}
  .quotes{grid-template-columns:1fr;}
}

/* Ghost Koenig card stubs - required by gscan */
.kg-width-wide{margin-left:calc(50% - 50vw + 24px);margin-right:calc(50% - 50vw + 24px);}
.kg-width-full{margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);}
.kg-gallery-container{display:flex;flex-direction:column;}
.kg-gallery-row{display:flex;flex-direction:row;justify-content:center;gap:4px;margin-bottom:4px;}
.kg-gallery-image{flex:1;object-fit:cover;}
.kg-bookmark-card{width:100%;}
.kg-bookmark-container{display:flex;border:1px solid var(--hair);border-radius:4px;overflow:hidden;text-decoration:none;}
.kg-bookmark-content{flex:1;padding:16px;}
.kg-bookmark-title{font-weight:600;color:var(--ink);}
.kg-bookmark-description{font-size:14px;color:var(--muted);margin-top:4px;}
.kg-bookmark-metadata{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:12px;color:var(--muted);}
.kg-bookmark-icon{width:16px;height:16px;}
.kg-bookmark-author{}
.kg-bookmark-publisher{}
.kg-bookmark-thumbnail{width:160px;object-fit:cover;}
