:root{
  --navy:#1B365D;
  --navy-dk:#132846;
  --blue:#3967BD;
  --blue-dk:#2C56A4;
  --blue-soft:#7A96CC;
  --grey:#EEEEEE;
  --pale:#F3F5F8;
  --white:#FFFFFF;
  --navy-60:rgba(27,54,93,.66);
  --line:#DADEE6;
  --display:"Playfair Display","Iowan Old Style","Times New Roman",serif;
  --sans:"Open Sans","Helvetica Neue",Arial,sans-serif;
  --pad:clamp(20px,5vw,64px);
  --maxw:1240px;
  --coin:url("/assets/moneda.jpg");
}

*{box-sizing:border-box}
body{
  margin:0;background:var(--white);color:var(--navy);
  font-family:var(--sans);font-size:16.5px;line-height:1.7;
  -webkit-font-smoothing:antialiased;overflow-x:clip;
}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
.wrap{max-width:var(--maxw);margin:0 auto;padding-inline:var(--pad)}
h1,h2,h3,h4{font-family:var(--display);font-weight:400;color:var(--navy);margin:0}
.eyebrow{
  display:block;font-size:.75rem;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:var(--blue);
}

.btn{
  display:inline-block;padding:14px 30px;background:var(--blue);color:#fff;
  font-size:.8125rem;font-weight:600;letter-spacing:.03em;
  border:1px solid var(--blue);cursor:pointer;font-family:var(--sans);
  transition:background .25s ease,border-color .25s ease;
}
.btn:hover{background:var(--blue-dk);border-color:var(--blue-dk)}
.btn--light{background:#fff;color:var(--navy);border-color:#fff}
.btn--light:hover{background:var(--pale);border-color:var(--pale)}
.btn--out{background:transparent;color:#fff;border-color:rgba(255,255,255,.75)}
.btn--out:hover{background:#fff;color:var(--navy);border-color:#fff}

/* ---- barra + header ---- */
.util{background:var(--pale);border-bottom:1px solid var(--line)}
.util__in{max-width:var(--maxw);margin:0 auto;padding:8px var(--pad);display:flex;justify-content:flex-end;gap:28px;font-size:.8125rem}
.util a{color:var(--navy);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--blue-soft)}
.util a:hover{color:var(--blue)}
.head{position:sticky;top:0;z-index:50;background:var(--white);border-bottom:1px solid var(--line)}
.head__in{max-width:var(--maxw);margin:0 auto;padding:14px var(--pad);display:flex;align-items:center;justify-content:space-between;gap:24px}
.lockup{display:flex;align-items:center;gap:15px}
.coin{width:60px;height:60px;flex:none;border-radius:50%;background:var(--coin) center/cover no-repeat;box-shadow:0 1px 5px rgba(27,54,93,.3)}
.lk1{display:block;font-family:var(--display);font-size:1.1rem;letter-spacing:.16em;text-transform:uppercase;color:var(--navy);line-height:1.25;white-space:nowrap}
.lk2{display:block;font-size:.6875rem;font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--navy);opacity:.8;margin-top:3px}
.lk3{display:block;font-size:.6875rem;letter-spacing:.06em;color:var(--navy);opacity:.6;margin-top:2px}
nav{display:flex;align-items:center;gap:clamp(16px,2.4vw,32px)}
nav a.nav-link{font-size:.9375rem;color:var(--navy);position:relative;padding:6px 0}
nav a.nav-link::after{content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;background:var(--blue);transition:right .3s cubic-bezier(.2,.7,.2,1)}
nav a.nav-link:hover::after{right:0}
nav .btn{padding:12px 24px}

/* ---- hero ---- */
.hero{position:relative;height:calc(100svh - 118px);min-height:600px;max-height:900px;display:flex;align-items:flex-end;overflow:hidden}
.hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;animation:slide 27s linear infinite, kb 27s ease-in-out infinite;filter:saturate(1.06) brightness(.94)}
.hero__img:nth-of-type(1){animation-delay:-1s,-1s}
.hero__img:nth-of-type(2){animation-delay:8s,8s}
.hero__img:nth-of-type(3){animation-delay:17s,17s}
.hero__veil{position:absolute;inset:0;background:linear-gradient(75deg,rgba(19,40,70,.9) 0%,rgba(19,40,70,.72) 38%,rgba(19,40,70,.42) 72%,rgba(19,40,70,.55) 100%),linear-gradient(180deg,rgba(19,40,70,.25),rgba(19,40,70,.45))}
.hero__in{position:relative;width:100%;padding-bottom:clamp(46px,9vh,96px)}
.hero h1{color:#fff;font-size:clamp(2.5rem,6vw,4.6rem);line-height:1.04;letter-spacing:-.012em;max-width:16ch;text-wrap:balance;margin:16px 0 0;animation:fadeUp 1s ease-out .1s both}
.hero .lead{color:rgba(255,255,255,.94);font-size:clamp(1.05rem,1.55vw,1.3rem);max-width:48ch;margin:20px 0 0;animation:fadeUp 1s ease-out .25s both}
.hero .eyebrow{color:#fff;opacity:.92;animation:fadeUp 1s ease-out both}
.hero__cta{margin-top:32px;display:flex;flex-wrap:wrap;gap:14px;animation:fadeUp 1s ease-out .4s both}

/* ---- servicios ---- */
.serv{background:var(--grey);padding:clamp(64px,10vh,120px) 0}
.serv__lead{text-align:center;max-width:22ch;margin:0 auto;font-size:clamp(1.75rem,3.7vw,3rem);line-height:1.2}
.serv__lead+.serv__lead{max-width:34ch}
.serv__split{display:grid;grid-template-columns:.9fr 2fr;gap:clamp(20px,4vw,56px);margin-top:clamp(48px,8vh,96px);align-items:start}
.serv__split h3{font-size:clamp(1.25rem,2.1vw,1.65rem);line-height:1.3}
.serv__split p{margin:0;font-size:1.0625rem}
.feats{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,56px);margin-top:clamp(48px,8vh,92px)}
.feat svg{width:40px;height:40px;color:var(--blue);display:block}
.feat h4{font-family:var(--sans);font-weight:700;font-size:1.0625rem;margin:20px 0 10px;line-height:1.35}
.feat p{margin:0;font-size:1rem}
.serv .btn{margin-top:clamp(38px,6vh,64px)}

/* ---- cifras ---- */
.cifras{background:var(--navy);color:#fff;padding:clamp(60px,9vh,104px) 0}
.cifras h2{color:#fff;font-size:clamp(1.75rem,3.4vw,2.7rem);line-height:1.15;margin-top:12px;max-width:20ch}
.cifras .eyebrow{color:var(--blue-soft)}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.2);margin-top:clamp(32px,5vh,54px)}
.stat{background:var(--navy);padding:clamp(24px,3.4vw,40px)}
.stat__n{display:block;font-family:var(--display);color:#fff;font-size:clamp(2.1rem,4.6vw,3.5rem);line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.stat__n small{font-size:.4em;color:var(--blue-soft);letter-spacing:.03em;vertical-align:.6em;margin-right:.28em}
.stat__l{margin:14px 0 0;font-size:.9375rem;color:rgba(255,255,255,.78);line-height:1.5}
.nota{margin-top:clamp(24px,4vh,36px);padding-left:18px;border-left:2px solid var(--blue);color:rgba(255,255,255,.66);font-size:.8125rem;line-height:1.7;max-width:82ch}

/* ---- gráfico de resultados ---- */
.chartsec{background:var(--white);padding:clamp(56px,9vh,104px) 0}
.chartsec h2{font-size:clamp(1.75rem,3.4vw,2.7rem);line-height:1.15;margin-top:12px;max-width:22ch}
.chartsec .sub{margin:16px 0 0;font-size:1.0625rem;max-width:56ch;opacity:.82}
.chart{margin:clamp(26px,4vh,42px) 0 0;border:1px solid var(--line);padding:clamp(16px,2.4vw,26px)}
.chart__cap{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;margin:0 0 12px}
.chart__k{display:inline-flex;align-items:center;gap:9px;font-size:.8125rem;font-weight:600}
.chart__k i{width:16px;height:3px;background:var(--blue);border-radius:2px;display:block}
.chart__k--bm i{background:#8E97A8}
.legend{display:flex;flex-wrap:wrap;gap:8px 22px}
.chart__end{font-family:var(--display);font-size:clamp(1.3rem,2.2vw,1.65rem);line-height:1}
.chart__end em{font-style:normal;font-family:var(--sans);font-size:.8125rem;opacity:.6;margin-left:7px;font-weight:400}
.chart__plot{position:relative}
.chart__plot svg{display:block;width:100%;overflow:visible}
.tip{position:absolute;pointer-events:none;background:var(--navy);color:#fff;font-size:.75rem;line-height:1.45;padding:8px 11px;transform:translate(-50%,-135%);white-space:nowrap;opacity:0;transition:opacity .14s ease}
.tip.on{opacity:1}
.tip i{display:block;font-style:normal;opacity:.7;font-size:.6875rem;letter-spacing:.04em}
.tip b{display:block;font-size:1rem;font-weight:700}
.tip s{display:block;text-decoration:none;opacity:.72;font-size:.6875rem}
.kpis{list-style:none;display:flex;flex-wrap:wrap;gap:10px 40px;margin:18px 0 0;padding:16px 0 0;border-top:1px solid var(--line)}
.kpis li{display:flex;flex-direction:column;gap:2px}
.kpis .k{font-size:.6875rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--blue)}
.kpis b{font-family:var(--display);font-size:1.6rem;font-weight:400;line-height:1.15;font-variant-numeric:tabular-nums}
.kpis .v{font-size:.8125rem;opacity:.6}
.chart__note{margin:14px 0 0;font-size:.8125rem;opacity:.6;line-height:1.65;max-width:88ch}
.tbl{margin-top:14px}
.tbl summary{cursor:pointer;color:var(--blue);font-weight:600;font-size:.875rem}
.tbl table{border-collapse:collapse;margin-top:14px;font-size:.875rem;width:100%;max-width:520px}
.tbl th,.tbl td{text-align:right;padding:8px 14px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}
.tbl th:first-child,.tbl td:first-child{text-align:left}
.tbl th{font-weight:700;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;opacity:.7}

/* ---- datos de quiénes somos ---- */
.facts{margin:0;display:flex;flex-direction:column}
.fact{padding:20px 0;border-top:1px solid var(--line)}
.fact:last-child{border-bottom:1px solid var(--line)}
.fact dt{font-size:.6875rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}
.fact dd{margin:9px 0 0;font-size:1.0625rem;line-height:1.6}

/* ---- quiénes somos ---- */
.about{background:var(--white);padding:clamp(64px,10vh,120px) 0}
.about__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);align-items:start}
.about h2{font-size:clamp(1.9rem,3.8vw,3rem);line-height:1.14;text-wrap:balance}
.about p{font-size:1.0625rem;margin:22px 0 0;max-width:52ch}
.about__sig{margin-top:26px;font-weight:700}
.about__sig span{display:block;font-weight:400;color:var(--navy);opacity:.75;font-size:.9375rem}
.about__ph{display:flex;flex-direction:column}
.about__ph img{width:100%;flex:1;min-height:520px;object-fit:cover;object-position:50% 16%}
.about__cap{margin-top:10px;font-size:.8125rem;opacity:.6}
.pend{display:inline-flex;align-items:center;gap:9px;margin-top:24px;font-size:.6875rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);background:var(--pale);border:1px solid var(--line);padding:8px 15px}
.pend::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--blue)}
.slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;margin-top:26px}
.slot{border:1px dashed var(--line);background:var(--pale);padding:18px}
.slot h4{font-family:var(--sans);font-size:.6875rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);margin-bottom:8px}
.slot p{margin:0;font-size:.9375rem;line-height:1.55;opacity:.8;max-width:none}

/* ---- blog ---- */
.blog{background:var(--grey);padding:clamp(64px,10vh,120px) 0}
.blog h2{font-size:clamp(1.75rem,3.4vw,2.7rem);line-height:1.15;margin-top:12px}
.blog__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px}
.blog__head .pend{margin-top:0}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:22px;margin-top:clamp(32px,5vh,54px)}
.card{background:var(--white);padding:28px;display:flex;flex-direction:column;gap:11px;border-top:3px solid var(--blue)}
.card__k{font-size:.6875rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}
.card h3{font-size:1.3rem;line-height:1.3}
.card p{margin:0;font-size:.9375rem;opacity:.8}

/* ---- banda full width ---- */
.band{position:relative;min-height:min(62vh,520px);display:flex;align-items:center;overflow:hidden;text-align:center}
.band__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 60%}
.band__veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(19,40,70,.5),rgba(19,40,70,.72))}
.band__in{position:relative;width:100%;padding:clamp(56px,9vh,96px) 0}
.band h2{color:#fff;font-size:clamp(1.85rem,3.8vw,3rem);line-height:1.16;max-width:20ch;margin:14px auto 0;text-wrap:balance}
.band .eyebrow{color:#fff;opacity:.9}
.band .btn{margin-top:32px}

/* ---- footer ---- */
footer{background:var(--pale);border-top:1px solid var(--line);padding:clamp(52px,8vh,88px) 0 32px}
.foot__lock{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.foot__lock .coin{width:78px;height:78px}
.foot__n{font-family:var(--display);font-size:clamp(1.3rem,2.4vw,1.8rem);letter-spacing:.15em;text-transform:uppercase;line-height:1.3}
.foot__r{font-size:.8125rem;font-weight:600;letter-spacing:.24em;text-transform:uppercase;opacity:.8;margin-top:6px}
.foot__m{font-size:.8125rem;opacity:.6;margin-top:3px}
.foot__grid{display:flex;flex-wrap:wrap;gap:18px 48px;justify-content:space-between;align-items:flex-end;margin-top:clamp(32px,5vh,52px);padding-top:24px;border-top:1px solid var(--line)}
.foot__c{display:flex;flex-wrap:wrap;gap:6px 32px}
.foot__c a{font-size:1.0625rem;border-bottom:1px solid transparent;transition:border-color .25s}
.foot__c a:hover{border-color:var(--blue)}
.foot__legal{font-size:.8125rem;line-height:1.7;opacity:.62;max-width:74ch;margin:24px 0 0}

/* ---- overlay contacto ---- */
.ov{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:22px;background:rgba(19,40,70,.62);opacity:0;visibility:hidden;transition:opacity .32s ease,visibility .32s}
.ov[data-open="true"]{opacity:1;visibility:visible}
.card-ov{width:min(500px,100%);background:#fff;border-top:4px solid var(--blue);padding:clamp(28px,5vw,46px);box-shadow:0 30px 70px rgba(19,40,70,.3);transform:translateY(12px);transition:transform .4s cubic-bezier(.2,.75,.2,1)}
.ov[data-open="true"] .card-ov{transform:none}
.card-ov h2{font-size:2rem;margin-top:10px}
.row{border-top:1px solid var(--line);padding-top:18px;margin-top:22px}
.row__k{font-size:.6875rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--blue)}
.row__v{display:inline-block;margin-top:6px;font-size:1.15rem;border-bottom:1px solid var(--line);padding-bottom:2px;transition:border-color .25s}
.row__v:hover{border-color:var(--blue)}
.close{margin-top:28px;background:none;border:0;padding:0;cursor:pointer;font-family:var(--sans);font-size:.8125rem;font-weight:600;color:var(--navy);opacity:.6}
.close:hover{opacity:1;color:var(--blue)}

.rv{opacity:0;transform:translateY(18px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.75,.2,1)}
.rv.in{opacity:1;transform:none}

@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@keyframes kb{0%{transform:scale(1.03) translate3d(0,0,0)}37%{transform:scale(1.17) translate3d(-2.2%,-1.6%,0)}100%{transform:scale(1.17) translate3d(-2.2%,-1.6%,0)}}
@keyframes slide{0%{opacity:0}3%{opacity:1}30%{opacity:1}37%{opacity:0}100%{opacity:0}}

@media (max-width:940px){
  .serv__split{grid-template-columns:1fr;gap:10px}
  .feats{grid-template-columns:1fr;gap:32px}
  .grid3{grid-template-columns:1fr}
  .about__grid{grid-template-columns:1fr}
  .about__ph img{aspect-ratio:4/3;min-height:0;flex:none;object-position:50% 16%}
  .lk3{display:none}
  .coin{width:48px;height:48px}
  .lk1{font-size:.9rem;letter-spacing:.12em}
  nav{gap:14px}
  nav a.nav-link{font-size:.8125rem}
  nav .btn{padding:10px 18px;font-size:.75rem}
  .util__in{justify-content:center;gap:18px;font-size:.75rem}
  .hero{height:auto;min-height:520px;padding-top:120px}
}
@media (max-width:620px){ nav a.nav-link{display:none} }
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition-duration:.001ms!important}
  .rv{opacity:1;transform:none}
}

/* ---- notas del blog ---- */
.nota-head{padding:clamp(46px,7vh,80px) 0 0}
.nota-head h1{font-size:clamp(2rem,4.4vw,3.2rem);line-height:1.12;letter-spacing:-.015em;max-width:20ch;text-wrap:balance;margin-top:14px}
.nota-meta{margin:18px 0 0;font-size:.875rem;opacity:.65}
.prosa{max-width:68ch;padding:clamp(28px,4vh,44px) 0 clamp(56px,9vh,96px);font-size:1.0625rem;line-height:1.8}
.prosa h2{font-size:clamp(1.4rem,2.6vw,1.9rem);line-height:1.25;margin:2em 0 .6em}
.prosa h3{font-size:1.25rem;margin:1.7em 0 .5em}
.prosa p{margin:0 0 1.15em}
.prosa ul,.prosa ol{margin:0 0 1.3em;padding-left:1.3em}
.prosa li{margin-bottom:.5em}
.prosa a{color:var(--blue);border-bottom:1px solid rgba(57,103,189,.35)}
.prosa a:hover{border-color:var(--blue)}
.prosa blockquote{margin:1.6em 0;padding:2px 0 2px 22px;border-left:3px solid var(--blue);font-family:var(--display);font-size:1.2rem;line-height:1.5}
.prosa img{margin:1.6em 0;width:100%}
.prosa hr{border:0;border-top:1px solid var(--line);margin:2.4em 0}
.prosa table{border-collapse:collapse;width:100%;margin:1.6em 0;font-size:.9375rem}
.prosa th,.prosa td{border-bottom:1px solid var(--line);padding:10px 14px;text-align:left}
.prosa th{font-weight:700;font-size:.75rem;letter-spacing:.06em;text-transform:uppercase;opacity:.7}
.prosa code{background:var(--pale);padding:2px 6px;font-size:.9em}
.volver{display:inline-block;margin-bottom:clamp(40px,6vh,72px);font-size:.875rem;color:var(--blue);font-weight:600}
.vacio{border:1px dashed var(--line-2);background:var(--paper);padding:clamp(28px,4vw,44px);text-align:center;margin-top:clamp(30px,5vh,52px)}
.vacio p{margin:0;opacity:.7}
