/* ==========================================================================
   COLEGIO DE PREVENCIONISTAS DE RIESGOS DEL PERÚ — Sistema de diseño 2026
   Archivo: public/css/cprp.css
   ========================================================================== */

:root {
  /* Marca */
  --granate: #8B1621;
  --granate-600: #A01C28;
  --granate-800: #66101A;
  --oxblood: #22090D;
  --oxblood-2: #2E0D12;
  --oxblood-3: #3D1419;
  --oro: #C9A24A;
  --oro-claro: #E8D5A3;
  --oro-osc: #A6822F;

  /* Neutros */
  --tinta: #1B1D22;
  --pizarra: #5A606B;
  --pizarra-2: #858B96;
  --linea: #E3E5EA;
  --niebla: #F4F5F7;
  --blanco: #FFFFFF;

  /* Señalética de riesgo */
  --r-bajo: #2E9A62;
  --r-medio: #E2B23A;
  --r-alto: #E07A2E;
  --r-critico: #C8312F;
  --ok: #1E8A5A;
  --wa: #25D366;

  /* Tipografía */
  --f-display: 'Archivo', 'Arial Narrow', Arial, sans-serif;
  --f-body: 'IBM Plex Sans', 'Segoe UI', Roboto, Arial, sans-serif;

  /* Escala */
  --t-xs: .78rem;
  --t-sm: .875rem;
  --t-md: 1rem;
  --t-lg: 1.125rem;
  --t-xl: 1.375rem;
  --t-2xl: clamp(1.6rem, 1.2rem + 1.4vw, 2.25rem);
  --t-3xl: clamp(2rem, 1.4rem + 2.2vw, 3rem);
  --t-4xl: clamp(2.4rem, 1.5rem + 3.6vw, 4.4rem);

  /* Forma */
  --r-sm: 8px;
  --r-md: 10px;
  --r-lg: 14px;
  --r-xl: 20px;
  --sh-1: 0 1px 2px rgba(27,29,34,.06), 0 1px 1px rgba(27,29,34,.04);
  --sh-2: 0 6px 24px -8px rgba(34,9,13,.18), 0 2px 6px rgba(27,29,34,.05);
  --sh-3: 0 24px 60px -20px rgba(34,9,13,.35);

  --ease: cubic-bezier(.2,.7,.2,1);
  --hdr-h: 76px;
  --container: 1240px;
}

/* ---------- Reset & base ---------- */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--f-body);
  font-size: var(--t-md);
  line-height: 1.6;
  color: var(--tinta);
  background: var(--blanco);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
body.no-scroll { overflow: hidden; }
img, svg, video { max-width: 100%; display: block; }
img { height: auto; }
a { color: inherit; text-decoration: none; }
ul, ol { list-style: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
input, select, textarea { font: inherit; color: inherit; }
strong { font-weight: 600; }
::selection { background: var(--oro-claro); color: var(--oxblood); }

:focus-visible { outline: 3px solid var(--oro); outline-offset: 2px; border-radius: 4px; }

h1, h2, h3, h4, h5 {
  font-family: var(--f-display);
  font-weight: 700;
  line-height: 1.12;
  letter-spacing: -0.015em;
  font-stretch: 105%;
  color: var(--tinta);
}

.container { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 24px; }
.container--narrow { max-width: 860px; }

.sec { padding: clamp(64px, 8vw, 112px) 0; position: relative; }
.sec--tight { padding: clamp(48px, 6vw, 72px) 0; }
.sec--niebla { background: var(--niebla); }
.sec--dark { background: var(--oxblood); color: rgba(255,255,255,.82); }
.sec--dark h2, .sec--dark h3, .sec--dark h4 { color: #fff; }

.sr-only { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip-link { position: absolute; left: 12px; top: -60px; background: var(--oro); color: var(--oxblood); padding: 10px 16px; border-radius: var(--r-sm); z-index: 2000; font-weight: 600; }
.skip-link:focus { top: 12px; }

/* ---------- Encabezados de sección ---------- */
.shead { max-width: 720px; margin-bottom: clamp(36px, 4vw, 56px); }
.shead--center { margin-left: auto; margin-right: auto; text-align: center; }
.shead--split { max-width: none; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.shead--split > div { max-width: 680px; }
.kicker {
  display: inline-flex; align-items: center; gap: 10px;
  font-size: var(--t-sm); font-weight: 600; color: var(--granate);
  margin-bottom: 14px;
}
.kicker::before { content: ""; width: 22px; height: 2px; background: var(--oro); border-radius: 2px; }
.sec--dark .kicker, .on-dark .kicker { color: var(--oro); }
.shead h2 { font-size: var(--t-3xl); }
.shead p { margin-top: 16px; font-size: var(--t-lg); color: var(--pizarra); line-height: 1.65; }
.sec--dark .shead p { color: rgba(255,255,255,.68); }

/* ---------- Botones ---------- */
.btn {
  --bg: var(--granate); --fg: #fff; --bd: var(--granate);
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 46px; padding: 0 22px;
  font-family: var(--f-body); font-weight: 600; font-size: .95rem; line-height: 1;
  color: var(--fg); background: var(--bg); border: 1.5px solid var(--bd);
  border-radius: var(--r-md);
  transition: background .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease), transform .2s var(--ease), box-shadow .2s var(--ease);
  white-space: nowrap; cursor: pointer;
}
.btn i { font-size: .95em; }
.btn:hover { --bg: var(--granate-800); --bd: var(--granate-800); }
.btn:active { transform: translateY(1px); }
.btn--gold { --bg: var(--oro); --fg: var(--oxblood); --bd: var(--oro); }
.btn--gold:hover { --bg: var(--oro-claro); --bd: var(--oro-claro); }
.btn--ghost { --bg: transparent; --fg: var(--tinta); --bd: #CDD0D6; }
.btn--ghost:hover { --bg: var(--tinta); --fg: #fff; --bd: var(--tinta); }
.btn--ghost-light { --bg: rgba(255,255,255,.04); --fg: #fff; --bd: rgba(255,255,255,.32); }
.btn--ghost-light:hover { --bg: #fff; --fg: var(--oxblood); --bd: #fff; }
.btn--white { --bg: #fff; --fg: var(--granate); --bd: #fff; }
.btn--white:hover { --bg: var(--oro-claro); --fg: var(--oxblood); --bd: var(--oro-claro); }
.btn--wa { --bg: var(--wa); --fg: #fff; --bd: var(--wa); }
.btn--wa:hover { --bg: #1DAE55; --bd: #1DAE55; }
.btn--lg { min-height: 54px; padding: 0 28px; font-size: 1rem; }
.btn--sm { min-height: 38px; padding: 0 16px; font-size: .875rem; }
.btn--block { width: 100%; }
.btn[disabled] { opacity: .65; pointer-events: none; }

.link-arrow { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--granate); }
.link-arrow i { transition: transform .2s var(--ease); font-size: .8em; }
.link-arrow:hover i { transform: translateX(4px); }
.sec--dark .link-arrow { color: var(--oro); }

/* ---------- Barra superior ---------- */
.topbar { background: var(--oxblood); color: rgba(255,255,255,.72); font-size: .8rem; }
.topbar .container { display: flex; align-items: center; justify-content: space-between; height: 38px; gap: 16px; }
.topbar a { color: rgba(255,255,255,.78); transition: color .2s; }
.topbar a:hover { color: var(--oro); }
.topbar__left, .topbar__right { display: flex; align-items: center; gap: 22px; }
.topbar__left i, .topbar__right i { margin-right: 6px; color: var(--oro); }
.topbar__social { display: flex; gap: 14px; }
.topbar__social i { margin: 0; color: inherit; }

/* ---------- Promo ---------- */
.promo-banner {
  background: var(--oro); color: var(--oxblood);
  font-size: .875rem; font-weight: 600; text-align: center;
  padding: 9px 48px; position: relative;
}
.promo-banner a { text-decoration: underline; text-underline-offset: 3px; margin-left: 6px; }
.close-promo { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); font-size: 1.2rem; line-height: 1; opacity: .7; cursor: pointer; padding: 4px 8px; }
.close-promo:hover { opacity: 1; }

/* ---------- Header ---------- */
.site-header {
  position: sticky; top: 0; z-index: 1000;
  background: rgba(255,255,255,.96);
  backdrop-filter: saturate(160%) blur(14px);
  -webkit-backdrop-filter: saturate(160%) blur(14px);
  border-bottom: 1px solid var(--linea);
  transition: background .3s var(--ease), border-color .3s var(--ease), box-shadow .3s var(--ease);
}
.site-header.scrolled { box-shadow: 0 8px 30px -18px rgba(34,9,13,.35); }
.header-inner { display: flex; align-items: center; gap: 28px; height: var(--hdr-h); max-width: 1320px; margin: 0 auto; padding: 0 24px; }
.logo { flex-shrink: 0; display: flex; align-items: center; }
.logo img { height: 48px; width: auto; }
.logo .logo--light { display: none; }

/* Header superpuesto en portada */
body.has-hero .site-header { position: fixed; left: 0; right: 0; top: var(--top-offset, 0px); background: transparent; border-color: transparent; backdrop-filter: none; -webkit-backdrop-filter: none; }
body.has-hero .site-header .logo--dark { display: none; }
body.has-hero .site-header .logo--light { display: block; }
body.has-hero .site-header .nav-link { color: rgba(255,255,255,.9); }
body.has-hero .site-header .nav-link:hover, body.has-hero .site-header .nav-item:hover > .nav-link { color: #fff; background: rgba(255,255,255,.1); }
body.has-hero .site-header .hdr-wa { color: #fff; border-color: rgba(255,255,255,.3); }
body.has-hero .site-header .menu-toggle span { background: #fff; }
body.has-hero .site-header.scrolled { top: 0; background: rgba(255,255,255,.97); border-color: var(--linea); backdrop-filter: saturate(160%) blur(14px); -webkit-backdrop-filter: saturate(160%) blur(14px); }
body.has-hero .site-header.scrolled .logo--dark { display: block; }
body.has-hero .site-header.scrolled .logo--light { display: none; }
body.has-hero .site-header.scrolled .nav-link { color: var(--tinta); }
body.has-hero .site-header.scrolled .nav-link:hover, body.has-hero .site-header.scrolled .nav-item:hover > .nav-link { color: var(--granate); background: var(--niebla); }
body.has-hero .site-header.scrolled .hdr-wa { color: var(--tinta); border-color: var(--linea); }
body.has-hero .site-header.scrolled .menu-toggle span { background: var(--tinta); }

.main-nav { display: flex; align-items: center; gap: 2px; margin-left: auto; }
.nav-item { position: relative; }
.nav-link {
  display: flex; align-items: center; gap: 6px;
  padding: 10px 12px; border-radius: var(--r-sm);
  font-size: .9rem; font-weight: 500; color: var(--tinta);
  transition: color .2s, background .2s;
  white-space: nowrap;
}
.nav-link svg { width: 9px; height: 9px; opacity: .6; transition: transform .25s var(--ease); }
.nav-link:hover, .nav-item:hover > .nav-link { color: var(--granate); background: var(--niebla); }
.nav-item:hover > .nav-link svg { transform: rotate(180deg); }
.nav-link.active { color: var(--granate); }
.nav-link.active::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: 2px; height: 2px; background: var(--oro); border-radius: 2px; }
body.has-hero .site-header:not(.scrolled) .nav-link.active::after { background: var(--oro); }
.nav-mobile-only { display: none; }

.dropdown {
  position: absolute; top: calc(100% + 10px); left: 50%;
  width: 330px; padding: 10px;
  background: #fff; border: 1px solid var(--linea); border-radius: var(--r-lg);
  box-shadow: var(--sh-3);
  opacity: 0; visibility: hidden; transform: translate(-50%, 8px);
  transition: opacity .2s var(--ease), transform .25s var(--ease), visibility .2s;
}
.dropdown::before { content: ""; position: absolute; top: -12px; left: 0; right: 0; height: 12px; }
.nav-item:hover > .dropdown, .nav-item:focus-within > .dropdown { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.dd-link { display: flex; gap: 14px; align-items: flex-start; padding: 12px; border-radius: var(--r-md); transition: background .15s; }
.dd-link:hover { background: var(--niebla); }
.dd-ic { width: 38px; height: 38px; flex-shrink: 0; border-radius: 9px; display: grid; place-items: center; background: rgba(139,22,33,.08); color: var(--granate); font-size: .95rem; }
.dd-txt strong { display: block; font-size: .9rem; font-weight: 600; color: var(--tinta); line-height: 1.3; }
.dd-txt span { display: block; font-size: .8rem; color: var(--pizarra); line-height: 1.4; margin-top: 2px; }
.dd-foot { margin-top: 6px; padding: 12px; border-top: 1px solid var(--linea); }
.dd-foot a { font-size: .85rem; }

.header-actions { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.hdr-wa { width: 44px; height: 44px; border-radius: var(--r-md); border: 1.5px solid var(--linea); display: grid; place-items: center; font-size: 1.15rem; color: var(--tinta); transition: .2s; }
.hdr-wa:hover { background: var(--wa) !important; border-color: var(--wa) !important; color: #fff !important; }
.menu-toggle { display: none; width: 44px; height: 44px; border-radius: var(--r-md); flex-direction: column; align-items: center; justify-content: center; gap: 5px; }
.menu-toggle span { display: block; width: 22px; height: 2px; background: var(--tinta); border-radius: 2px; transition: transform .3s var(--ease), opacity .2s; }
.menu-toggle.active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-toggle.active span:nth-child(2) { opacity: 0; }
.menu-toggle.active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.nav-overlay { position: fixed; inset: 0; background: rgba(34,9,13,.55); backdrop-filter: blur(3px); z-index: 998; opacity: 0; visibility: hidden; transition: .3s; }
.nav-overlay.open { opacity: 1; visibility: visible; }
.drawer-head, .drawer-foot { display: none; }

@media (max-width: 1180px) {
  .topbar__left .tb-hide { display: none; }
  .menu-toggle { display: flex; }
  .header-actions .btn { display: none; }
  .main-nav {
    position: fixed; top: 0; right: 0; bottom: 0; width: min(400px, 92vw);
    flex-direction: column; align-items: stretch; gap: 0;
    background: #fff; z-index: 1001; overflow-y: auto;
    transform: translateX(100%); transition: transform .35s var(--ease);
    padding: 0 0 24px; margin: 0;
  }
  .main-nav.open { transform: translateX(0); box-shadow: var(--sh-3); }
  .drawer-head { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid var(--linea); position: sticky; top: 0; background: #fff; z-index: 2; }
  .drawer-head img { height: 40px; width: auto; }
  .drawer-close { width: 40px; height: 40px; border-radius: var(--r-md); display: grid; place-items: center; font-size: 1.1rem; background: var(--niebla); }
  .drawer-foot { display: grid; gap: 10px; padding: 20px; }
  .nav-mobile-only { display: block; }
  .nav-item { border-bottom: 1px solid var(--linea); }
  .main-nav .nav-link, body.has-hero .site-header .main-nav .nav-link { color: var(--tinta); justify-content: space-between; padding: 16px 20px; border-radius: 0; font-size: 1rem; }
  .main-nav .nav-link:hover { background: var(--niebla); }
  .nav-link.active::after { display: none; }
  .nav-link.active { color: var(--granate) !important; font-weight: 600; }
  .dropdown { position: static; width: auto; transform: none !important; opacity: 1; visibility: visible; box-shadow: none; border: 0; border-radius: 0; padding: 0 12px 12px; display: none; background: transparent; }
  .nav-item.open > .dropdown { display: block; }
  .nav-item.open > .nav-link svg { transform: rotate(180deg); }
  .dd-link { padding: 10px; }
}
@media (max-width: 760px) {
  .topbar { display: none; }
  :root { --hdr-h: 66px; }
  .logo img { height: 40px; }
}

/* ==========================================================================
   PORTADA
   ========================================================================== */
.hero {
  position: relative; overflow: hidden; isolation: isolate;
  background: var(--oxblood);
  color: #fff;
  padding: calc(var(--hdr-h) + clamp(40px, 6vw, 80px)) 0 clamp(64px, 7vw, 96px);
}
.hero::before { /* trama de plano técnico */
  content: ""; position: absolute; inset: 0; z-index: -2;
  background-image:
    linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: radial-gradient(ellipse 80% 70% at 30% 40%, #000 30%, transparent 75%);
  -webkit-mask-image: radial-gradient(ellipse 80% 70% at 30% 40%, #000 30%, transparent 75%);
}
.hero::after {
  content: ""; position: absolute; z-index: -1; width: 900px; height: 900px; left: -320px; top: -360px;
  background: radial-gradient(circle, rgba(139,22,33,.55), transparent 62%);
}
.hero-video-bg { position: absolute; inset: 0; z-index: -3; opacity: .18; pointer-events: none; overflow: hidden; }
.hero-video-bg iframe { position: absolute; top: 50%; left: 50%; width: 177.77vh; min-width: 100%; height: 56.25vw; min-height: 100%; transform: translate(-50%,-50%); }
.hero__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(32px, 5vw, 72px); align-items: center; }
.hero__badge {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 7px 14px 7px 8px; border-radius: 999px;
  background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.14);
  font-size: .82rem; color: rgba(255,255,255,.85); margin-bottom: 26px;
}
.hero__badge b { background: var(--oro); color: var(--oxblood); font-weight: 700; font-size: .72rem; padding: 4px 9px; border-radius: 999px; letter-spacing: .02em; }
.hero h1 {
  font-size: var(--t-4xl); color: #fff; font-weight: 800; font-stretch: 108%;
  letter-spacing: -0.025em; line-height: 1.02; max-width: 15ch;
}
.hero__sub { margin-top: 24px; font-size: clamp(1.02rem, .95rem + .3vw, 1.18rem); color: rgba(255,255,255,.74); max-width: 54ch; line-height: 1.7; }
.hero__cta { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 36px; }
.hero__trust { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; margin-top: 40px; padding-top: 28px; border-top: 1px solid rgba(255,255,255,.12); max-width: 560px; }
.hero__trust-item { display: flex; align-items: center; gap: 10px; font-size: .84rem; color: rgba(255,255,255,.66); line-height: 1.35; }
.hero__trust-item i { color: var(--oro); font-size: 1.1rem; }
.hero__trust-item strong { color: #fff; display: block; font-weight: 600; }

.hero__visual { position: relative; padding: 0 0 56px 56px; }
.hero__photo { position: relative; border-radius: 22px; overflow: hidden; aspect-ratio: 4 / 4.4; box-shadow: 0 40px 80px -30px rgba(0,0,0,.6); }
.hero__photo img { width: 100%; height: 100%; object-fit: cover; object-position: 38% 30%; transform: scale(1.04); animation: heroZoom 1.6s var(--ease) both; }
.hero__photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(34,9,13,0) 45%, rgba(34,9,13,.55)); }
@keyframes heroZoom { from { transform: scale(1.12); opacity: .4; } to { transform: scale(1.04); opacity: 1; } }
.hero__chip {
  position: absolute; top: 24px; right: -14px; z-index: 2;
  display: flex; align-items: center; gap: 12px;
  background: #fff; color: var(--tinta); border-radius: 14px; padding: 12px 16px 12px 12px;
  box-shadow: var(--sh-3); font-size: .82rem; line-height: 1.3;
  animation: riseIn .8s .9s var(--ease) both;
}
.hero__chip .ic { width: 38px; height: 38px; border-radius: 10px; background: rgba(30,138,90,.12); color: var(--ok); display: grid; place-items: center; font-size: 1.05rem; }
.hero__chip strong { display: block; font-weight: 700; font-size: .88rem; }
.hero__chip span { color: var(--pizarra); }
@keyframes riseIn { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }

/* --- Matriz IPERC (elemento firma) --- */
.matrix {
  position: absolute; left: 0; bottom: 0; z-index: 3;
  width: 300px; background: #fff; color: var(--tinta);
  border-radius: 18px; padding: 18px 18px 16px;
  box-shadow: 0 30px 60px -20px rgba(0,0,0,.55);
  animation: riseIn .8s .5s var(--ease) both;
}
.matrix__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.matrix__title { font-family: var(--f-display); font-weight: 700; font-size: .95rem; }
.matrix__tag { font-size: .7rem; font-weight: 600; color: var(--pizarra); background: var(--niebla); padding: 3px 8px; border-radius: 999px; }
.matrix__body { display: grid; grid-template-columns: 14px 1fr; gap: 6px; }
.matrix__axis-y { writing-mode: vertical-rl; transform: rotate(180deg); font-size: .62rem; color: var(--pizarra-2); text-align: center; letter-spacing: .04em; }
.matrix__axis-x { grid-column: 2; font-size: .62rem; color: var(--pizarra-2); text-align: center; letter-spacing: .04em; margin-top: 2px; }
.matrix__grid { position: relative; display: grid; grid-template-columns: repeat(5, 1fr); gap: 4px; }
.matrix__cell { aspect-ratio: 1; border-radius: 5px; opacity: 0; transform: scale(.6); animation: cellIn .45s var(--ease) both; }
.matrix__cell.l { background: var(--r-bajo); }
.matrix__cell.m { background: var(--r-medio); }
.matrix__cell.h { background: var(--r-alto); }
.matrix__cell.c { background: var(--r-critico); }
@keyframes cellIn { to { opacity: .9; transform: none; } }
.matrix__dot {
  --u: calc((100% - 16px) / 5);
  position: absolute; width: var(--u); height: calc((100% - 16px) / 5);
  left: calc(4 * (var(--u) + 4px)); top: 0; transition: left 1.2s var(--ease), top 1.2s var(--ease);
  display: grid; place-items: center; pointer-events: none;
}
.matrix__dot::before { content: ""; width: 62%; aspect-ratio: 1; border-radius: 50%; background: #fff; border: 3px solid var(--tinta); box-shadow: 0 0 0 6px rgba(255,255,255,.35), 0 4px 10px rgba(0,0,0,.3); }
.matrix.is-controlled .matrix__dot { left: calc(1 * ((100% - 16px) / 5 + 4px)); top: calc(3 * ((100% - 16px) / 5 + 4px)); }
.matrix__read { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 14px; }
.matrix__stat { background: var(--niebla); border-radius: 10px; padding: 9px 10px; transition: background .6s, opacity .6s; }
.matrix__stat small { display: block; font-size: .66rem; color: var(--pizarra); }
.matrix__stat b { font-family: var(--f-display); font-size: 1rem; display: flex; align-items: center; gap: 6px; }
.matrix__stat b::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.matrix__stat--ini b { color: var(--r-critico); }
.matrix__stat--res { opacity: .35; }
.matrix__stat--res b { color: var(--ok); }
.matrix.is-controlled .matrix__stat--res { opacity: 1; background: rgba(30,138,90,.1); }
.matrix__foot { margin-top: 10px; font-size: .72rem; color: var(--pizarra); display: flex; align-items: center; gap: 6px; }
.matrix__foot i { color: var(--ok); }

/* --- Cifras --- */
.figures { background: #fff; border-bottom: 1px solid var(--linea); }
.figures__grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.figure { padding: 34px 24px; border-left: 1px solid var(--linea); }
.figure:first-child { border-left: 0; padding-left: 0; }
.figure__num { font-family: var(--f-display); font-weight: 800; font-size: clamp(2rem, 1.5rem + 1.5vw, 2.8rem); line-height: 1; color: var(--granate); font-variant-numeric: tabular-nums; letter-spacing: -0.02em; }
.figure__lbl { margin-top: 8px; font-size: .9rem; color: var(--pizarra); line-height: 1.4; }

/* --- Logos aliados --- */
.logos { padding: 40px 0 44px; background: #fff; }
.logos__label { text-align: center; font-size: .85rem; color: var(--pizarra); margin-bottom: 22px; }
.logos__track { overflow: hidden; mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.logos__row { display: flex; gap: 64px; align-items: center; width: max-content; animation: marquee 38s linear infinite; }
.logos__track:hover .logos__row { animation-play-state: paused; }
.logos__row img { height: 46px; width: auto; max-width: 170px; object-fit: contain; filter: grayscale(1) contrast(1.05); opacity: .62; transition: .25s; }
.logos__row img:hover { filter: none; opacity: 1; }
.logos__row .logo-txt { font-family: var(--f-display); font-weight: 700; color: var(--pizarra-2); white-space: nowrap; font-size: 1rem; }
@keyframes marquee { to { transform: translateX(-50%); } }

/* --- Ruta profesional --- */
.route { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; counter-reset: step; position: relative; }
.route__step { position: relative; padding: 28px 24px 26px; background: #fff; border: 1px solid var(--linea); border-radius: var(--r-lg); transition: border-color .25s, box-shadow .25s, transform .25s var(--ease); display: flex; flex-direction: column; }
.route__step:hover { border-color: rgba(139,22,33,.35); box-shadow: var(--sh-2); transform: translateY(-3px); }
.route__n { display: flex; align-items: center; gap: 12px; margin-bottom: 22px; }
.route__n span { font-family: var(--f-display); font-weight: 800; font-size: .85rem; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--granate); color: #fff; }
.route__n::after { content: ""; flex: 1; height: 1px; background: repeating-linear-gradient(90deg, var(--linea) 0 6px, transparent 6px 10px); }
.route__step:last-child .route__n::after { display: none; }
.route__ic { font-size: 1.6rem; color: var(--granate); margin-bottom: 14px; }
.route__step h3 { font-size: 1.2rem; margin-bottom: 8px; }
.route__step p { font-size: .92rem; color: var(--pizarra); line-height: 1.6; flex: 1; }
.route__step .link-arrow { margin-top: 18px; font-size: .9rem; }

/* --- Tarjeta de programa --- */
.pgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.pcard { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--linea); border-radius: var(--r-lg); overflow: hidden; transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s; }
.pcard:hover { transform: translateY(-4px); box-shadow: var(--sh-3); border-color: transparent; }
.pcard__media { position: relative; aspect-ratio: 3 / 2; overflow: hidden; background: linear-gradient(135deg, var(--oxblood-3), var(--granate)); }
.pcard__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.pcard:hover .pcard__media img { transform: scale(1.05); }
.pcard__ph { position: absolute; inset: 0; display: grid; place-items: center; color: rgba(255,255,255,.22); font-size: 3rem; }
.pcard__tags { position: absolute; top: 14px; left: 14px; display: flex; gap: 6px; flex-wrap: wrap; }
.tag { display: inline-flex; align-items: center; gap: 6px; font-size: .74rem; font-weight: 600; padding: 5px 10px; border-radius: 999px; background: rgba(255,255,255,.95); color: var(--tinta); }
.tag--gold { background: var(--oro); color: var(--oxblood); }
.tag--dark { background: rgba(34,9,13,.75); color: #fff; backdrop-filter: blur(6px); }
.tag--soft { background: rgba(139,22,33,.08); color: var(--granate); }
.tag--ok { background: rgba(30,138,90,.12); color: var(--ok); }
.pcard__body { padding: 22px 22px 20px; display: flex; flex-direction: column; flex: 1; }
.pcard__meta { display: flex; gap: 16px; flex-wrap: wrap; font-size: .8rem; color: var(--pizarra); margin-bottom: 12px; }
.pcard__meta i { color: var(--granate); margin-right: 5px; }
.pcard__title { font-size: 1.12rem; font-stretch: 100%; line-height: 1.3; margin-bottom: 10px; }
.pcard__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.pcard__desc { font-size: .9rem; color: var(--pizarra); line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.pcard__incl { display: flex; gap: 14px; flex-wrap: wrap; font-size: .8rem; color: var(--pizarra); margin-top: auto; padding-top: 14px; }
.pcard__incl span { display: inline-flex; align-items: center; gap: 6px; }
.pcard__incl i { color: var(--oro-osc); }
.pcard__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--linea); }
.price { font-family: var(--f-display); font-weight: 800; font-size: 1.5rem; color: var(--tinta); line-height: 1; letter-spacing: -.01em; }
.price small { font-size: .78rem; font-weight: 600; color: var(--pizarra); margin-right: 3px; }
.price--free { color: var(--ok); font-size: 1rem; }
.pcard__go { position: relative; z-index: 2; display: inline-flex; align-items: center; gap: 8px; font-size: .88rem; font-weight: 600; color: var(--granate); }
.pcard__go i { transition: transform .2s; font-size: .8em; }
.pcard:hover .pcard__go i { transform: translateX(4px); }

/* --- Examen / cuenta regresiva --- */
.exam { position: relative; overflow: hidden; background: var(--granate); color: #fff; padding: clamp(48px, 6vw, 72px) 0; isolation: isolate; }
.exam::before { content: ""; position: absolute; inset: 0; z-index: -1; background: repeating-linear-gradient(-45deg, rgba(255,255,255,.035) 0 18px, transparent 18px 36px); }
.exam::after { content: ""; position: absolute; right: -200px; top: -200px; width: 600px; height: 600px; z-index: -1; background: radial-gradient(circle, rgba(201,162,74,.28), transparent 65%); }
.exam__grid { display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: center; }
.exam h2 { color: #fff; font-size: var(--t-2xl); max-width: 22ch; }
.exam__date { margin-top: 12px; font-size: 1.02rem; color: rgba(255,255,255,.8); display: flex; align-items: center; gap: 10px; }
.exam__date i { color: var(--oro); }
.exam__cta { margin-top: 24px; display: flex; gap: 12px; flex-wrap: wrap; }
.countdown-timer { display: flex; gap: 12px; }
.cd-unit { min-width: 92px; padding: 18px 10px 14px; text-align: center; border-radius: 14px; background: rgba(34,9,13,.32); border: 1px solid rgba(255,255,255,.14); }
.cd-unit .num { display: block; font-family: var(--f-display); font-weight: 800; font-size: clamp(2rem, 1.6rem + 1.4vw, 2.9rem); line-height: 1; font-variant-numeric: tabular-nums; color: #fff; }
.cd-unit .lbl { display: block; margin-top: 8px; font-size: .74rem; color: rgba(255,255,255,.65); }
.cd-done { font-family: var(--f-display); font-size: 1.3rem; color: var(--oro-claro); }

/* --- Escalera de acreditación --- */
.accred { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr); gap: clamp(32px, 5vw, 72px); align-items: center; }
.ladder { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; align-items: end; min-height: 340px; }
.ladder__step { --h: 40%; position: relative; height: var(--h); min-height: 120px; border-radius: 14px 14px 6px 6px; padding: 16px 14px; display: flex; flex-direction: column; justify-content: flex-start; background: var(--niebla); border: 1px solid var(--linea); transition: transform .3s var(--ease), box-shadow .3s; overflow: hidden; }
.ladder__step::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: var(--c, var(--granate)); }
.ladder__step:hover { transform: translateY(-6px); box-shadow: var(--sh-2); }
.ladder__step:nth-child(1) { --h: 42%; }
.ladder__step:nth-child(2) { --h: 56%; }
.ladder__step:nth-child(3) { --h: 70%; }
.ladder__step:nth-child(4) { --h: 85%; }
.ladder__step:nth-child(5) { --h: 100%; background: var(--oxblood); border-color: var(--oxblood); }
.ladder__step:nth-child(5) .ladder__name { color: #fff; }
.ladder__step:nth-child(5) .ladder__sub { color: rgba(255,255,255,.6); }
.ladder__num { font-family: var(--f-display); font-weight: 800; font-size: 1.9rem; line-height: 1; color: var(--c, var(--granate)); }
.ladder__name { margin-top: 10px; font-family: var(--f-display); font-weight: 700; font-size: .92rem; line-height: 1.25; color: var(--tinta); }
.ladder__sub { margin-top: 4px; font-size: .74rem; color: var(--pizarra); }
.ladder__axis { display: flex; justify-content: space-between; margin-top: 12px; font-size: .78rem; color: var(--pizarra); }
.ladder__axis i { margin: 0 6px; color: var(--oro-osc); }
.carnet { position: relative; perspective: 1200px; }
.carnet img { border-radius: 16px; box-shadow: var(--sh-3); transform: rotateY(-8deg) rotateX(4deg); transition: transform .6s var(--ease); }
.carnet:hover img { transform: none; }
.checklist { display: grid; gap: 12px; margin-top: 24px; }
.checklist li { display: flex; gap: 12px; align-items: flex-start; font-size: .95rem; line-height: 1.5; }
.checklist li i { color: var(--ok); margin-top: 4px; }
.sec--dark .checklist li { color: rgba(255,255,255,.82); }
.sec--dark .checklist li i { color: var(--oro); }

/* --- Tecnología --- */
.tech { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.tech__card { position: relative; border-radius: var(--r-xl); padding: clamp(28px, 3vw, 40px); background: var(--oxblood-2); border: 1px solid rgba(255,255,255,.08); overflow: hidden; display: flex; flex-direction: column; }
.tech__card h3 { font-size: 1.9rem; color: #fff; margin: 4px 0 12px; }
.tech__sub { font-size: .85rem; color: var(--oro); font-weight: 600; }
.tech__card > p { color: rgba(255,255,255,.7); line-height: 1.7; font-size: .97rem; }
.tech__feats { display: flex; flex-wrap: wrap; gap: 8px; margin: 20px 0 26px; }
.tech__feats span { font-size: .8rem; padding: 6px 12px; border-radius: 999px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); color: rgba(255,255,255,.8); }
.tech__card .btn { align-self: flex-start; margin-top: auto; }
.mock { margin-top: 26px; margin-bottom: 26px; border-radius: 14px; background: #fff; color: var(--tinta); padding: 14px; box-shadow: 0 20px 40px -18px rgba(0,0,0,.6); }
.mock__bar { display: flex; gap: 6px; margin-bottom: 12px; }
.mock__bar i { width: 9px; height: 9px; border-radius: 50%; background: var(--linea); }
.mock__kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.mock__kpi { background: var(--niebla); border-radius: 9px; padding: 10px; }
.mock__kpi small { display: block; font-size: .64rem; color: var(--pizarra); line-height: 1.3; }
.mock__kpi b { font-family: var(--f-display); font-size: 1.15rem; }
.mock__kpi em { font-style: normal; font-size: .64rem; font-weight: 600; color: var(--ok); margin-left: 4px; }
.mock__chart { display: flex; align-items: flex-end; gap: 6px; height: 74px; margin-top: 12px; padding: 8px 4px 0; border-top: 1px dashed var(--linea); }
.mock__chart span { flex: 1; border-radius: 4px 4px 0 0; background: var(--granate); opacity: .85; }
.mock__chart span:nth-child(even) { background: var(--oro); }
.chat { display: grid; gap: 10px; }
.chat__msg { max-width: 88%; font-size: .82rem; line-height: 1.5; padding: 10px 12px; border-radius: 12px; }
.chat__msg--q { justify-self: end; background: var(--granate); color: #fff; border-bottom-right-radius: 4px; }
.chat__msg--a { background: var(--niebla); border-bottom-left-radius: 4px; }
.chat__msg--a b { display: flex; align-items: center; gap: 6px; font-size: .72rem; color: var(--granate); margin-bottom: 4px; }
.chat__input { display: flex; align-items: center; justify-content: space-between; margin-top: 4px; padding: 9px 12px; border-radius: 10px; border: 1px solid var(--linea); font-size: .78rem; color: var(--pizarra-2); }
.chat__input i { color: var(--granate); }

/* --- Respaldo / diploma --- */
.endorse { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: clamp(32px, 5vw, 72px); align-items: center; }
.endorse__img { position: relative; max-width: 420px; margin: 0 auto; }
.endorse__img img { border-radius: 10px; box-shadow: var(--sh-3); }
.endorse__img::before { content: ""; position: absolute; inset: 22px -22px -22px 22px; border: 2px solid var(--oro); border-radius: 12px; z-index: -1; }
.inst-list { display: grid; gap: 0; margin-top: 26px; border-top: 1px solid var(--linea); }
.inst-list li { display: flex; gap: 14px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--linea); font-size: .95rem; }
.inst-list i { width: 34px; height: 34px; flex-shrink: 0; border-radius: 9px; display: grid; place-items: center; background: rgba(201,162,74,.16); color: var(--oro-osc); font-size: .85rem; }

/* --- Eventos --- */
.evt { display: grid; grid-template-columns: 92px 1fr auto; gap: 24px; align-items: center; padding: 24px; border: 1px solid var(--linea); border-radius: var(--r-lg); background: #fff; transition: border-color .25s, box-shadow .25s; }
.evt + .evt { margin-top: 14px; }
.evt:hover { border-color: rgba(139,22,33,.3); box-shadow: var(--sh-2); }
.evt__date { text-align: center; border-radius: 12px; background: var(--niebla); padding: 14px 6px; }
.evt__date .d { font-family: var(--f-display); font-weight: 800; font-size: 2rem; line-height: 1; color: var(--granate); }
.evt__date .m { margin-top: 4px; font-size: .78rem; font-weight: 600; color: var(--pizarra); text-transform: capitalize; }
.evt__date--tba .d { font-size: 1rem; line-height: 1.2; }
.evt__info h3 { font-size: 1.15rem; font-stretch: 100%; line-height: 1.3; margin: 8px 0 6px; }
.evt__info p { font-size: .9rem; color: var(--pizarra); line-height: 1.6; }
.evt__meta { display: flex; gap: 18px; flex-wrap: wrap; margin-top: 10px; font-size: .82rem; color: var(--pizarra); }
.evt__meta i { color: var(--granate); margin-right: 5px; }
.evt__meta .free { color: var(--ok); font-weight: 600; }
.evt__meta .free i { color: var(--ok); }

/* --- Testimonios --- */
.quotes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.quote { display: flex; flex-direction: column; padding: 30px 28px 26px; background: #fff; border-radius: var(--r-lg); border: 1px solid var(--linea); position: relative; }
.quote__mark { font-family: Georgia, serif; font-size: 4.2rem; line-height: .6; color: var(--oro); height: 30px; }
.quote__stars { color: var(--oro); font-size: .8rem; letter-spacing: 2px; margin: 10px 0 12px; }
.quote__txt { font-size: .98rem; line-height: 1.75; color: var(--tinta); flex: 1; }
.quote__who { display: flex; align-items: center; gap: 12px; margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--linea); }
.avatar { width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; flex-shrink: 0; font-family: var(--f-display); font-weight: 700; background: var(--granate); color: #fff; object-fit: cover; }
.quote__who strong { display: block; font-size: .92rem; }
.quote__who span { display: block; font-size: .8rem; color: var(--pizarra); }

/* --- CTA final --- */
.cta-band { position: relative; overflow: hidden; background: var(--oxblood); color: #fff; isolation: isolate; }
.cta-band__grid { display: grid; grid-template-columns: 1.15fr .85fr; align-items: stretch; min-height: 420px; }
.cta-band__txt { padding: clamp(56px, 7vw, 96px) clamp(0px, 2vw, 32px) clamp(56px, 7vw, 96px) 0; }
.cta-band h2 { font-size: var(--t-3xl); color: #fff; max-width: 18ch; }
.cta-band p { margin-top: 18px; color: rgba(255,255,255,.72); font-size: 1.08rem; max-width: 52ch; line-height: 1.7; }
.cta-band__btns { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 32px; }
.cta-band__img { position: relative; }
.cta-band__img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 30% 20%; }
.cta-band__img::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, var(--oxblood), rgba(34,9,13,0) 45%); }
.cta-band::after { content: ""; position: absolute; left: -200px; bottom: -300px; width: 700px; height: 700px; z-index: -1; background: radial-gradient(circle, rgba(139,22,33,.6), transparent 65%); }

/* --- Sobre (portada) --- */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 5vw, 80px); align-items: center; }
.split--top { align-items: start; }
.prose-lead { font-size: 1.06rem; line-height: 1.8; color: var(--pizarra); }
.prose-lead + .prose-lead { margin-top: 16px; }
.prose-lead strong { color: var(--tinta); }
.pillars { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.pillar { padding: 24px; border-radius: var(--r-lg); background: var(--niebla); }
.pillar i { font-size: 1.3rem; color: var(--granate); }
.pillar h3 { font-size: 1.05rem; font-stretch: 100%; margin: 14px 0 6px; }
.pillar p { font-size: .88rem; color: var(--pizarra); line-height: 1.6; }
.pillar--dark { background: var(--oxblood); }
.pillar--dark i { color: var(--oro); }
.pillar--dark h3 { color: #fff; }
.pillar--dark p { color: rgba(255,255,255,.65); }
.btn-row { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 30px; }

/* --- Responsive portada --- */
@media (max-width: 1080px) {
  .hero__grid { grid-template-columns: 1fr; }
  .hero__visual { max-width: 560px; margin: 0 auto; width: 100%; }
  .route { grid-template-columns: repeat(2, 1fr); }
  .route__n::after { display: none; }
  .pgrid, .quotes { grid-template-columns: repeat(2, 1fr); }
  .accred, .endorse, .split { grid-template-columns: 1fr; }
  .tech { grid-template-columns: 1fr; }
  .exam__grid { grid-template-columns: 1fr; }
  .cta-band__grid { grid-template-columns: 1fr; }
  .cta-band__img { min-height: 280px; order: -1; margin: 0 -24px; }
  .cta-band__img::before { background: linear-gradient(0deg, var(--oxblood), rgba(34,9,13,0) 60%); }
}
@media (max-width: 760px) {
  .figures__grid { grid-template-columns: 1fr 1fr; }
  .figure { padding: 24px 16px; border-left: 0; border-top: 1px solid var(--linea); }
  .figure:nth-child(-n+2) { border-top: 0; }
  .figure:nth-child(odd) { padding-left: 0; }
  .figure:nth-child(even) { border-left: 1px solid var(--linea); }
  .route, .pgrid, .quotes, .pillars { grid-template-columns: 1fr; }
  .hero__visual { padding: 0 0 120px 0; }
  .matrix { left: 12px; width: calc(100% - 24px); max-width: 320px; }
  .hero__chip { right: 10px; }
  .ladder { gap: 6px; min-height: 300px; }
  .ladder__step { padding: 12px 8px; min-height: 100px; }
  .ladder__name { font-size: .74rem; }
  .ladder__sub { display: none; }
  .ladder__num { font-size: 1.4rem; }
  .evt { grid-template-columns: 72px 1fr; padding: 18px; gap: 16px; }
  .evt > .btn, .evt > div:last-child:not(.evt__info) { grid-column: 1 / -1; }
  .countdown-timer { gap: 8px; }
  .cd-unit { min-width: 0; flex: 1; padding: 14px 4px 10px; }
  .mock__kpis { grid-template-columns: 1fr 1fr; }
  .mock__kpi:nth-child(3) { display: none; }
}

/* ==========================================================================
   PÁGINAS INTERIORES
   ========================================================================== */
.phero { position: relative; overflow: hidden; isolation: isolate; background: var(--oxblood); color: #fff; padding: clamp(56px, 7vw, 96px) 0 clamp(52px, 6vw, 80px); }
.phero::before { content: ""; position: absolute; inset: 0; z-index: -2; background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px); background-size: 56px 56px; mask-image: linear-gradient(90deg, transparent, #000 55%); -webkit-mask-image: linear-gradient(90deg, transparent, #000 55%); }
.phero::after { content: ""; position: absolute; z-index: -1; width: 760px; height: 760px; right: -260px; top: -360px; background: radial-gradient(circle, rgba(139,22,33,.6), transparent 62%); }
.phero__stripe { position: absolute; left: 0; right: 0; bottom: 0; height: 5px; background: repeating-linear-gradient(-45deg, var(--oro) 0 14px, var(--oxblood) 14px 28px); opacity: .9; }
.phero--img { background-size: cover; background-position: center 30%; }
.phero--img > .phero__shade { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(34,9,13,.96) 30%, rgba(34,9,13,.72) 65%, rgba(34,9,13,.5)); }
.crumbs { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: .82rem; color: rgba(255,255,255,.55); margin-bottom: 20px; }
.crumbs a { color: rgba(255,255,255,.7); }
.crumbs a:hover { color: var(--oro); }
.crumbs i { font-size: .6rem; opacity: .6; }
.crumbs span:last-child { color: rgba(255,255,255,.9); }
.phero h1 { font-size: var(--t-4xl); font-size: clamp(2.1rem, 1.4rem + 2.8vw, 3.6rem); color: #fff; max-width: 22ch; font-weight: 800; letter-spacing: -.022em; }
.phero__sub { margin-top: 18px; font-size: 1.1rem; color: rgba(255,255,255,.72); max-width: 62ch; line-height: 1.7; }
.phero__tags { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 18px; }
.phero__facts { display: flex; gap: 28px; flex-wrap: wrap; margin-top: 28px; font-size: .92rem; color: rgba(255,255,255,.78); }
.phero__facts i { color: var(--oro); margin-right: 8px; }
.phero__actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 30px; }

/* Barra de filtros */
.toolbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 36px; }
.chips { display: flex; gap: 8px; flex-wrap: wrap; }
.chip { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 16px; border-radius: 999px; border: 1.5px solid var(--linea); font-size: .88rem; font-weight: 500; color: var(--tinta); background: #fff; transition: .2s; }
.chip:hover { border-color: var(--granate); color: var(--granate); }
.chip.active { background: var(--granate); border-color: var(--granate); color: #fff; }
.chip .count { font-size: .72rem; font-weight: 700; background: rgba(0,0,0,.08); padding: 2px 7px; border-radius: 999px; }
.chip.active .count { background: rgba(255,255,255,.22); }
.search { display: flex; align-items: center; min-width: 300px; border: 1.5px solid var(--linea); border-radius: var(--r-md); background: #fff; transition: border-color .2s, box-shadow .2s; }
.search:focus-within { border-color: var(--granate); box-shadow: 0 0 0 4px rgba(139,22,33,.1); }
.search i { padding: 0 4px 0 14px; color: var(--pizarra-2); }
.search input { flex: 1; min-width: 0; border: 0; outline: 0; padding: 12px 10px; background: transparent; font-size: .92rem; }
.search button { margin: 4px; padding: 0 16px; height: 36px; border-radius: 7px; background: var(--tinta); color: #fff; font-weight: 600; font-size: .85rem; }
.search button:hover { background: var(--granate); }
.result-note { font-size: .9rem; color: var(--pizarra); margin: -16px 0 28px; }
.result-note a { color: var(--granate); font-weight: 600; }

.pagination { display: flex; justify-content: center; gap: 6px; margin-top: 48px; flex-wrap: wrap; }
.page-link { min-width: 42px; height: 42px; padding: 0 12px; display: grid; place-items: center; border-radius: var(--r-md); border: 1.5px solid var(--linea); font-weight: 600; font-size: .9rem; transition: .2s; }
.page-link:hover { border-color: var(--granate); color: var(--granate); }
.page-link.active { background: var(--granate); border-color: var(--granate); color: #fff; }

.empty { text-align: center; padding: 72px 24px; border: 1.5px dashed var(--linea); border-radius: var(--r-xl); background: #fff; }
.empty__ic { width: 72px; height: 72px; border-radius: 20px; display: grid; place-items: center; margin: 0 auto 20px; background: var(--niebla); color: var(--granate); font-size: 1.6rem; }
.empty h3 { font-size: 1.4rem; margin-bottom: 8px; }
.empty p { color: var(--pizarra); max-width: 48ch; margin: 0 auto; }
.empty .btn-row { justify-content: center; }

/* Banda de ayuda */
.help-band { background: var(--niebla); border-radius: var(--r-xl); padding: clamp(28px, 4vw, 44px); display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.help-band h3 { font-size: 1.5rem; }
.help-band p { color: var(--pizarra); margin-top: 6px; }
.help-band--dark { background: var(--oxblood); }
.help-band--dark h3 { color: #fff; }
.help-band--dark p { color: rgba(255,255,255,.7); }

/* --- Detalle de programa --- */
.pd { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: clamp(32px, 4vw, 56px); align-items: start; }
.pd__cover { border-radius: var(--r-xl); overflow: hidden; box-shadow: var(--sh-2); margin-bottom: 40px; background: var(--niebla); }
.pd__cover img { width: 100%; }
.pd__block + .pd__block { margin-top: 48px; }
.pd__block h2 { font-size: 1.6rem; margin-bottom: 18px; display: flex; align-items: center; gap: 12px; }
.pd__block h2 .cnt { font-family: var(--f-body); font-size: .8rem; font-weight: 600; color: var(--pizarra); background: var(--niebla); padding: 4px 10px; border-radius: 999px; }
.pd__block > p { color: var(--pizarra); line-height: 1.8; font-size: 1.02rem; }
.modules { counter-reset: mod; border: 1px solid var(--linea); border-radius: var(--r-lg); overflow: hidden; }
.module { display: grid; grid-template-columns: 56px 1fr; align-items: center; gap: 4px; padding: 16px 20px 16px 8px; border-top: 1px solid var(--linea); background: #fff; transition: background .2s; }
.module:first-child { border-top: 0; }
.module:hover { background: var(--niebla); }
.module::before { counter-increment: mod; content: counter(mod, decimal-leading-zero); font-family: var(--f-display); font-weight: 800; font-size: 1rem; color: var(--granate); text-align: center; font-variant-numeric: tabular-nums; }
.module span { font-weight: 500; line-height: 1.45; }
.modules--collapsed .module:nth-child(n+9) { display: none; }
.modules-more { margin-top: 12px; }
.certs { display: grid; gap: 12px; }
.cert { display: flex; gap: 16px; align-items: center; padding: 16px 18px; border-radius: var(--r-lg); background: linear-gradient(90deg, rgba(201,162,74,.12), rgba(201,162,74,.02)); border: 1px solid rgba(201,162,74,.35); }
.cert i { width: 42px; height: 42px; border-radius: 11px; flex-shrink: 0; display: grid; place-items: center; background: var(--oro); color: var(--oxblood); }
.cert span { font-weight: 500; line-height: 1.45; }
.audience { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.audience li { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border-radius: var(--r-md); background: var(--niebla); font-size: .94rem; line-height: 1.45; }
.audience i { color: var(--ok); margin-top: 3px; }
.includes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.include { padding: 18px; border-radius: var(--r-lg); border: 1px solid var(--linea); }
.include i { color: var(--granate); font-size: 1.2rem; }
.include strong { display: block; margin-top: 10px; font-size: .95rem; }
.include span { display: block; font-size: .82rem; color: var(--pizarra); margin-top: 2px; line-height: 1.45; }

.buybox { position: sticky; top: calc(var(--hdr-h) + 24px); background: #fff; border: 1px solid var(--linea); border-radius: var(--r-xl); box-shadow: var(--sh-3); overflow: hidden; }
.buybox__top { padding: 26px 26px 22px; background: var(--oxblood); color: #fff; position: relative; overflow: hidden; }
.buybox__top::after { content: ""; position: absolute; right: -80px; top: -80px; width: 220px; height: 220px; background: radial-gradient(circle, rgba(201,162,74,.35), transparent 65%); }
.buybox__lbl { font-size: .8rem; color: rgba(255,255,255,.6); }
.buybox__price { font-family: var(--f-display); font-weight: 800; font-size: 2.8rem; line-height: 1.05; color: #fff; letter-spacing: -.02em; margin-top: 4px; }
.buybox__price small { font-size: 1.1rem; margin-right: 4px; color: var(--oro); }
.buybox__old { font-size: .9rem; color: rgba(255,255,255,.5); text-decoration: line-through; margin-left: 8px; }
.buybox__note { font-size: .82rem; color: rgba(255,255,255,.65); margin-top: 6px; }
.buybox__body { padding: 22px 26px 26px; }
.spec { display: grid; gap: 0; margin-bottom: 22px; }
.spec div { display: flex; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px solid var(--linea); font-size: .9rem; }
.spec div:last-child { border-bottom: 0; }
.spec dt { color: var(--pizarra); display: flex; align-items: center; gap: 8px; }
.spec dt i { width: 16px; color: var(--granate); }
.spec dd { font-weight: 600; text-align: right; }
.buybox .btn + .btn { margin-top: 10px; }
.buybox__trust { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 16px; font-size: .8rem; color: var(--pizarra); }
.buybox__trust i { color: var(--ok); }
.share { display: flex; align-items: center; gap: 8px; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--linea); font-size: .82rem; color: var(--pizarra); }
.share a, .share button { width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center; background: var(--niebla); color: var(--tinta); transition: .2s; font-size: .85rem; }
.share a:hover, .share button:hover { background: var(--granate); color: #fff; }

/* --- Certificación --- */
.risst-feats { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.feat { padding: 22px; border-radius: var(--r-lg); background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.1); }
.feat i { width: 42px; height: 42px; border-radius: 11px; display: grid; place-items: center; background: rgba(201,162,74,.15); color: var(--oro); }
.feat h3 { font-size: 1.02rem; font-stretch: 100%; margin: 14px 0 6px; color: #fff; }
.feat p { font-size: .87rem; color: rgba(255,255,255,.62); line-height: 1.6; }
.levels { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.level { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--linea); border-radius: var(--r-lg); overflow: hidden; transition: transform .3s var(--ease), box-shadow .3s; }
.level:hover { transform: translateY(-4px); box-shadow: var(--sh-3); }
.level__img { position: relative; aspect-ratio: 1414 / 2000; max-height: 340px; width: 100%; overflow: hidden; background: var(--niebla); cursor: zoom-in; border: 0; padding: 0; }
.level__img img { width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform .5s var(--ease); }
.level__img:hover img { transform: scale(1.04); }
.level__img .zoom { position: absolute; right: 12px; bottom: 12px; width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: rgba(34,9,13,.75); color: #fff; font-size: .85rem; }
.level__body { padding: 20px; flex: 1; }
.level__num { display: inline-flex; align-items: center; gap: 8px; font-size: .8rem; font-weight: 600; color: var(--c, var(--granate)); }
.level__num b { font-family: var(--f-display); font-size: 1.1rem; width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center; background: var(--c, var(--granate)); color: #fff; }
.level h3 { font-size: 1.12rem; font-stretch: 100%; margin: 12px 0 8px; }
.level p { font-size: .87rem; color: var(--pizarra); line-height: 1.6; }
.steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; counter-reset: st; position: relative; }
.steps::before { content: ""; position: absolute; top: 27px; left: 12.5%; right: 12.5%; height: 2px; background: repeating-linear-gradient(90deg, var(--granate) 0 8px, transparent 8px 14px); opacity: .35; }
.step { text-align: center; padding: 0 16px; position: relative; }
.step__n { width: 56px; height: 56px; margin: 0 auto 18px; border-radius: 50%; display: grid; place-items: center; background: #fff; border: 2px solid var(--granate); font-family: var(--f-display); font-weight: 800; font-size: 1.3rem; color: var(--granate); position: relative; z-index: 1; }
.step:last-child .step__n { background: var(--granate); color: #fff; }
.step h3 { font-size: 1.05rem; font-stretch: 100%; margin-bottom: 8px; }
.step p { font-size: .88rem; color: var(--pizarra); line-height: 1.6; }

/* Lightbox */
.lightbox { position: fixed; inset: 0; z-index: 3000; display: none; align-items: center; justify-content: center; padding: 24px; background: rgba(20,6,8,.92); backdrop-filter: blur(6px); }
.lightbox.open { display: flex; animation: fadeIn .2s ease; }
.lightbox__inner { position: relative; max-width: 760px; width: 100%; text-align: center; }
.lightbox__img { max-height: 82vh; margin: 0 auto; border-radius: 10px; box-shadow: 0 30px 80px rgba(0,0,0,.6); }
.lightbox__cap { color: #fff; font-family: var(--f-display); font-weight: 600; margin-top: 14px; }
.lightbox__close { position: absolute; top: -14px; right: -14px; width: 44px; height: 44px; border-radius: 50%; background: #fff; color: var(--tinta); display: grid; place-items: center; font-size: 1rem; box-shadow: var(--sh-2); }
.lightbox__close:hover { background: var(--oro); }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

/* --- Afiliación --- */
.plans { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; align-items: stretch; }
.plan { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--linea); border-radius: var(--r-xl); padding: 32px 28px 28px; transition: transform .3s var(--ease), box-shadow .3s; }
.plan:hover { box-shadow: var(--sh-3); }
.plan--featured { background: var(--oxblood); border-color: var(--oxblood); color: rgba(255,255,255,.8); box-shadow: var(--sh-3); transform: translateY(-12px); }
.plan--featured:hover { transform: translateY(-16px); }
.plan--selected { outline: 3px solid var(--oro); outline-offset: 3px; }
.plan__flag { position: absolute; top: -13px; left: 28px; background: var(--oro); color: var(--oxblood); font-size: .76rem; font-weight: 700; padding: 6px 12px; border-radius: 999px; display: inline-flex; align-items: center; gap: 6px; }
.plan__ic { width: 50px; height: 50px; border-radius: 14px; display: grid; place-items: center; font-size: 1.25rem; background: rgba(139,22,33,.08); color: var(--granate); }
.plan--featured .plan__ic { background: rgba(201,162,74,.18); color: var(--oro); }
.plan h3 { font-size: 1.5rem; margin-top: 18px; }
.plan--featured h3 { color: #fff; }
.plan__desc { font-size: .9rem; line-height: 1.6; color: var(--pizarra); margin-top: 8px; min-height: 4.8em; }
.plan--featured .plan__desc { color: rgba(255,255,255,.65); }
.plan__price { margin: 22px 0; padding: 20px 0; border-top: 1px solid var(--linea); border-bottom: 1px solid var(--linea); }
.plan--featured .plan__price { border-color: rgba(255,255,255,.12); }
.plan__amount { font-family: var(--f-display); font-weight: 800; font-size: 3.2rem; line-height: 1; letter-spacing: -.03em; color: var(--tinta); }
.plan__amount small { font-size: 1.1rem; font-weight: 700; margin-right: 4px; color: var(--pizarra); letter-spacing: 0; }
.plan--featured .plan__amount { color: #fff; }
.plan--featured .plan__amount small { color: var(--oro); }
.plan__per { font-size: .82rem; color: var(--pizarra); margin-top: 6px; }
.plan--featured .plan__per { color: rgba(255,255,255,.55); }
.plan__list { display: grid; gap: 11px; flex: 1; margin-bottom: 26px; }
.plan__list li { display: flex; gap: 11px; align-items: flex-start; font-size: .9rem; line-height: 1.45; }
.plan__list i { font-size: .72rem; width: 20px; height: 20px; flex-shrink: 0; border-radius: 50%; display: grid; place-items: center; background: rgba(30,138,90,.12); color: var(--ok); margin-top: 1px; }
.plan--featured .plan__list i { background: rgba(201,162,74,.2); color: var(--oro); }
.plan .btn + .btn { margin-top: 10px; }
.pay { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.pay__card { padding: 24px; border-radius: var(--r-lg); background: #fff; border: 1px solid var(--linea); }
.pay__head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.pay__head i { width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center; background: rgba(139,22,33,.08); color: var(--granate); }
.pay__head strong { font-family: var(--f-display); font-size: 1.05rem; }
.pay__row { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 9px 0; border-top: 1px dashed var(--linea); font-size: .88rem; }
.pay__row span { color: var(--pizarra); }
.pay__row b { font-weight: 600; font-variant-numeric: tabular-nums; display: inline-flex; align-items: center; gap: 8px; text-align: right; }
.copy { width: 28px; height: 28px; border-radius: 7px; display: inline-grid; place-items: center; background: var(--niebla); color: var(--pizarra); font-size: .75rem; transition: .2s; flex-shrink: 0; }
.copy:hover { background: var(--granate); color: #fff; }
.copy.done { background: var(--ok); color: #fff; }
.pay__holder { margin-top: 10px; font-size: .8rem; color: var(--pizarra); line-height: 1.5; }
.notice { display: flex; gap: 14px; align-items: flex-start; margin-top: 20px; padding: 18px 20px; border-radius: var(--r-lg); background: rgba(201,162,74,.12); border: 1px solid rgba(201,162,74,.35); font-size: .92rem; line-height: 1.6; }
.notice i { color: var(--oro-osc); margin-top: 4px; }
.bgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: var(--linea); border: 1px solid var(--linea); border-radius: var(--r-xl); overflow: hidden; }
.bgrid__item { background: #fff; padding: 30px 28px; }
.bgrid__item i { font-size: 1.3rem; color: var(--granate); }
.bgrid__item h3 { font-size: 1.08rem; font-stretch: 100%; margin: 16px 0 8px; }
.bgrid__item p { font-size: .9rem; color: var(--pizarra); line-height: 1.65; }

/* --- Servicios --- */
.subnav { position: sticky; top: var(--hdr-h); z-index: 50; background: rgba(255,255,255,.96); backdrop-filter: blur(10px); border-bottom: 1px solid var(--linea); }
.subnav__inner { display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; }
.subnav__inner::-webkit-scrollbar { display: none; }
.subnav a { display: inline-flex; align-items: center; gap: 8px; padding: 18px 16px; font-size: .9rem; font-weight: 500; color: var(--pizarra); border-bottom: 2px solid transparent; white-space: nowrap; transition: .2s; }
.subnav a:hover { color: var(--tinta); }
.subnav a.active { color: var(--granate); border-bottom-color: var(--granate); font-weight: 600; }
.subnav .count { font-size: .7rem; font-weight: 700; padding: 2px 7px; border-radius: 999px; background: var(--niebla); color: var(--pizarra); }
.subnav a.active .count { background: var(--granate); color: #fff; }
.divider-title { display: flex; align-items: center; gap: 16px; margin: 0 0 24px; font-family: var(--f-display); font-weight: 700; font-size: 1.15rem; }
.divider-title::after { content: ""; flex: 1; height: 1px; background: var(--linea); }
.divider-title + .sgrid { margin-bottom: 56px; }
.sgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.sgrid--featured { grid-template-columns: repeat(2, 1fr); }
.scard { position: relative; display: flex; flex-direction: column; border-radius: var(--r-lg); border: 1px solid var(--linea); background: #fff; overflow: hidden; transition: transform .3s var(--ease), box-shadow .3s; }
.scard:hover { transform: translateY(-4px); box-shadow: var(--sh-3); }
.scard__media { position: relative; aspect-ratio: 16 / 9; overflow: hidden; background: linear-gradient(135deg, var(--oxblood), var(--c, var(--granate))); }
.scard__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.scard:hover .scard__media img { transform: scale(1.05); }
.scard__ph { position: absolute; inset: 0; display: grid; place-items: center; font-size: 3rem; color: rgba(255,255,255,.25); }
.scard__tags { position: absolute; top: 14px; left: 14px; right: 14px; display: flex; justify-content: space-between; gap: 6px; }
.scard__price { position: absolute; bottom: 14px; right: 14px; background: #fff; color: var(--tinta); font-weight: 700; font-size: .82rem; padding: 6px 12px; border-radius: 999px; box-shadow: var(--sh-1); }
.scard__price--free { background: var(--ok); color: #fff; }
.scard__body { padding: 22px; display: flex; flex-direction: column; flex: 1; }
.scard__rubros { display: flex; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }
.scard__rubros span { font-size: .72rem; font-weight: 600; padding: 3px 9px; border-radius: 6px; background: var(--niebla); color: var(--pizarra); }
.scard__title { font-size: 1.15rem; font-stretch: 100%; line-height: 1.3; }
.scard__sub { margin-top: 6px; font-size: .88rem; color: var(--c, var(--granate)); font-weight: 500; line-height: 1.45; }
.scard__desc { margin-top: 10px; font-size: .9rem; color: var(--pizarra); line-height: 1.6; }
.scard__bens { display: grid; gap: 7px; margin-top: 14px; }
.scard__bens li { display: flex; gap: 9px; font-size: .86rem; line-height: 1.4; }
.scard__bens i { color: var(--ok); font-size: .75rem; margin-top: 4px; }
.scard__bens .more { color: var(--pizarra); font-size: .8rem; padding-left: 21px; }
.scard__meta { display: flex; gap: 16px; flex-wrap: wrap; margin-top: auto; padding-top: 16px; font-size: .8rem; color: var(--pizarra); }
.scard__meta i { color: var(--c, var(--granate)); margin-right: 5px; }
.scard__ctas { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--linea); }
.scard__ctas .btn { min-height: 42px; padding: 0 12px; font-size: .86rem; }
.rich { color: var(--pizarra); line-height: 1.8; font-size: 1.02rem; }
.rich p + p, .rich ul, .rich ol { margin-top: 14px; }
.rich ul { list-style: disc; padding-left: 22px; }
.rich ol { list-style: decimal; padding-left: 22px; }
.rich h2, .rich h3 { color: var(--tinta); margin: 28px 0 12px; }
.rich a { color: var(--granate); text-decoration: underline; text-underline-offset: 3px; }
.rich img { border-radius: var(--r-lg); margin: 20px 0; }
.two-lists { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.box { padding: 24px; border-radius: var(--r-lg); border: 1px solid var(--linea); }
.box h3 { font-size: 1.1rem; font-stretch: 100%; display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.box h3 i { color: var(--granate); }
.box li { display: flex; gap: 10px; padding: 7px 0; font-size: .92rem; line-height: 1.5; }
.box li i { color: var(--oro-osc); margin-top: 4px; font-size: .8rem; }
.bens { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.bens li { display: flex; gap: 12px; padding: 14px 16px; border-radius: var(--r-md); background: var(--niebla); font-size: .93rem; line-height: 1.45; }
.bens i { color: var(--ok); margin-top: 3px; }

/* --- Institucional --- */
.timeline { position: relative; padding-left: 28px; }
.timeline::before { content: ""; position: absolute; left: 7px; top: 8px; bottom: 8px; width: 2px; background: linear-gradient(var(--granate), var(--oro)); border-radius: 2px; }
.tl { position: relative; padding-bottom: 26px; }
.tl:last-child { padding-bottom: 0; }
.tl::before { content: ""; position: absolute; left: -28px; top: 4px; width: 16px; height: 16px; border-radius: 50%; background: #fff; border: 3px solid var(--granate); }
.tl:last-child::before { background: var(--oro); border-color: var(--oro); }
.tl__y { font-family: var(--f-display); font-weight: 800; font-size: 1.25rem; color: var(--granate); line-height: 1.2; }
.tl__t { margin-top: 4px; color: var(--pizarra); font-size: .94rem; line-height: 1.6; }
.mv { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.mv__card { position: relative; padding: clamp(28px, 3vw, 40px); border-radius: var(--r-xl); overflow: hidden; isolation: isolate; }
.mv__card--a { background: var(--granate); color: rgba(255,255,255,.85); }
.mv__card--b { background: var(--oxblood); color: rgba(255,255,255,.85); }
.mv__card::after { content: ""; position: absolute; right: -120px; bottom: -120px; width: 320px; height: 320px; border-radius: 50%; border: 50px solid rgba(255,255,255,.04); z-index: -1; }
.mv__card i { font-size: 1.4rem; color: var(--oro); }
.mv__card h3 { color: #fff; font-size: 1.6rem; margin: 16px 0 12px; }
.mv__card p { line-height: 1.8; }
.values { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 24px; }
.value { padding: 26px 24px; border-radius: var(--r-lg); background: #fff; border: 1px solid var(--linea); }
.value i { width: 46px; height: 46px; border-radius: 12px; display: grid; place-items: center; background: rgba(139,22,33,.08); color: var(--granate); font-size: 1.1rem; }
.value h3 { font-size: 1.05rem; font-stretch: 100%; margin: 16px 0 8px; }
.value p { font-size: .88rem; color: var(--pizarra); line-height: 1.6; }
.team { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 24px; }
.member { text-align: left; }
.member__photo { position: relative; aspect-ratio: 1; border-radius: var(--r-lg); overflow: hidden; background: linear-gradient(135deg, var(--oxblood), var(--granate)); }
.member__photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.member:hover .member__photo img { transform: scale(1.04); }
.member__photo .ini { position: absolute; inset: 0; display: grid; place-items: center; font-family: var(--f-display); font-weight: 800; font-size: 3rem; color: rgba(255,255,255,.85); }
.member__li { position: absolute; right: 12px; bottom: 12px; width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; background: #fff; color: #0A66C2; box-shadow: var(--sh-2); transition: .2s; }
.member__li:hover { background: #0A66C2; color: #fff; }
.member h3 { font-size: 1.05rem; font-stretch: 100%; margin-top: 16px; line-height: 1.3; }
.member__role { font-size: .86rem; color: var(--granate); font-weight: 500; margin-top: 4px; }
.member__country { font-size: .8rem; color: var(--pizarra); margin-top: 4px; }
.member p { font-size: .85rem; color: var(--pizarra); line-height: 1.6; margin-top: 10px; }
.allies { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.ally { display: flex; flex-direction: column; padding: 22px; border: 1px solid var(--linea); border-radius: var(--r-lg); background: #fff; transition: .25s; }
a.ally:hover { border-color: rgba(139,22,33,.35); box-shadow: var(--sh-2); }
.ally__logo { height: 64px; display: flex; align-items: center; margin-bottom: 16px; }
.ally__logo img { max-height: 58px; max-width: 170px; width: auto; object-fit: contain; }
.ally__logo .ini { width: 56px; height: 56px; border-radius: 12px; display: grid; place-items: center; background: var(--granate); color: #fff; font-family: var(--f-display); font-weight: 800; }
.ally h3 { font-size: .98rem; font-stretch: 100%; line-height: 1.3; }
.ally p { font-size: .84rem; color: var(--pizarra); line-height: 1.55; margin-top: 8px; flex: 1; }
.ally__web { margin-top: 12px; font-size: .8rem; font-weight: 600; color: var(--granate); }

/* --- Herramientas --- */
.tool { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 5vw, 72px); align-items: center; }
.tool--rev .tool__visual { order: -1; }
.flist { display: grid; gap: 4px; margin-top: 26px; }
.flist li { display: grid; grid-template-columns: 44px 1fr; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--linea); }
.flist li:last-child { border-bottom: 0; }
.flist i { width: 44px; height: 44px; border-radius: 11px; display: grid; place-items: center; background: rgba(139,22,33,.08); color: var(--granate); }
.flist strong { display: block; font-size: .98rem; }
.flist span { display: block; font-size: .88rem; color: var(--pizarra); line-height: 1.55; margin-top: 2px; }
.screen { border-radius: var(--r-xl); background: var(--oxblood); padding: clamp(18px, 2.4vw, 28px); box-shadow: var(--sh-3); position: relative; overflow: hidden; }
.screen::before { content: ""; position: absolute; right: -120px; top: -120px; width: 320px; height: 320px; background: radial-gradient(circle, rgba(201,162,74,.3), transparent 65%); }
.screen .mock { margin: 0; position: relative; }
.screen__cap { position: relative; display: flex; justify-content: space-between; align-items: center; color: #fff; margin-bottom: 16px; }
.screen__cap b { font-family: var(--f-display); font-size: 1.4rem; }
.screen__cap span { font-size: .78rem; color: var(--oro); }
.stats4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 14px; position: relative; }
.stats4 div { text-align: center; padding: 14px 6px; border-radius: 12px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.08); }
.stats4 b { display: block; font-family: var(--f-display); font-size: 1.3rem; color: var(--oro); }
.stats4 span { font-size: .72rem; color: rgba(255,255,255,.62); line-height: 1.3; display: block; margin-top: 2px; }

/* --- Eventos --- */
.feature-evt { position: relative; overflow: hidden; isolation: isolate; border-radius: var(--r-xl); background: var(--oxblood); color: rgba(255,255,255,.78); padding: clamp(32px, 4vw, 52px); margin-bottom: 40px; display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: center; }
.feature-evt::after { content: ""; position: absolute; right: -160px; top: -160px; width: 480px; height: 480px; z-index: -1; background: radial-gradient(circle, rgba(139,22,33,.75), transparent 65%); }
.feature-evt h2 { color: #fff; font-size: var(--t-2xl); margin: 14px 0 12px; max-width: 26ch; }
.feature-evt p { max-width: 60ch; line-height: 1.7; }
.feature-evt__meta { display: flex; gap: 22px; flex-wrap: wrap; margin-top: 18px; font-size: .9rem; }
.feature-evt__meta i { color: var(--oro); margin-right: 6px; }
.feature-evt__date { text-align: center; padding: 22px 26px; border-radius: 16px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.12); min-width: 150px; }
.feature-evt__date .d { font-family: var(--f-display); font-weight: 800; font-size: 3.2rem; line-height: 1; color: #fff; }
.feature-evt__date .m { margin-top: 6px; color: var(--oro); font-weight: 600; text-transform: capitalize; }
.themes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.theme { display: flex; gap: 14px; padding: 18px; border-radius: var(--r-lg); background: #fff; border: 1px solid var(--linea); }
.theme i { width: 40px; height: 40px; border-radius: 10px; flex-shrink: 0; display: grid; place-items: center; background: rgba(139,22,33,.08); color: var(--granate); }
.theme strong { display: block; font-size: .94rem; }
.theme span { display: block; font-size: .84rem; color: var(--pizarra); line-height: 1.5; margin-top: 2px; }

/* --- Blog --- */
.bgrid-posts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.post { position: relative; display: flex; flex-direction: column; }
.post__media { aspect-ratio: 16 / 10; border-radius: var(--r-lg); overflow: hidden; background: linear-gradient(135deg, var(--oxblood), var(--granate)); position: relative; }
.post__media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.post:hover .post__media img { transform: scale(1.05); }
.post__media .ph { position: absolute; inset: 0; display: grid; place-items: center; font-size: 2.6rem; color: rgba(255,255,255,.22); }
.post__meta { display: flex; align-items: center; gap: 10px; margin-top: 18px; font-size: .8rem; color: var(--pizarra); }
.post__title { font-size: 1.2rem; font-stretch: 100%; line-height: 1.3; margin-top: 10px; }
.post__title a::after { content: ""; position: absolute; inset: 0; }
.post:hover .post__title { color: var(--granate); }
.post__ex { font-size: .92rem; color: var(--pizarra); line-height: 1.65; margin-top: 8px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.post--lead { grid-column: 1 / -1; display: grid; grid-template-columns: 1.2fr 1fr; gap: 36px; align-items: center; }
.post--lead .post__title { font-size: var(--t-2xl); }
.article { max-width: 760px; margin: 0 auto; }
.article__cover { border-radius: var(--r-xl); overflow: hidden; margin: -64px auto 40px; max-width: 1000px; box-shadow: var(--sh-3); position: relative; z-index: 2; }
.article .rich { font-size: 1.08rem; color: #33363D; }

/* --- Contacto --- */
.contact { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(32px, 4vw, 56px); align-items: start; }
.cinfo { display: grid; gap: 12px; }
.cinfo__item { display: flex; gap: 16px; align-items: center; padding: 18px; border-radius: var(--r-lg); border: 1px solid var(--linea); background: #fff; transition: .2s; }
a.cinfo__item:hover { border-color: rgba(139,22,33,.35); box-shadow: var(--sh-2); }
.cinfo__item > i { width: 48px; height: 48px; border-radius: 12px; flex-shrink: 0; display: grid; place-items: center; background: rgba(139,22,33,.08); color: var(--granate); font-size: 1.1rem; }
.cinfo__item--wa > i { background: rgba(37,211,102,.12); color: #128C4B; }
.cinfo__item small { display: block; font-size: .78rem; color: var(--pizarra); }
.cinfo__item strong { display: block; font-size: .98rem; font-weight: 600; word-break: break-word; }
.socials { display: flex; gap: 8px; flex-wrap: wrap; }
.social { width: 42px; height: 42px; border-radius: 11px; display: grid; place-items: center; background: var(--niebla); color: var(--tinta); transition: .2s; }
.social:hover { background: var(--granate); color: #fff; }
.form-card { padding: clamp(24px, 3vw, 40px); border-radius: var(--r-xl); background: #fff; border: 1px solid var(--linea); box-shadow: var(--sh-2); }
.form-card h2 { font-size: 1.6rem; }
.form-card > p { color: var(--pizarra); margin: 6px 0 26px; font-size: .95rem; }
.claims { display: flex; gap: 20px; align-items: center; justify-content: space-between; flex-wrap: wrap; padding: 28px 32px; border-radius: var(--r-xl); border: 1px solid var(--linea); background: #fff; }
.claims__l { display: flex; gap: 18px; align-items: center; }
.claims__l > i { width: 54px; height: 54px; border-radius: 14px; display: grid; place-items: center; background: var(--oxblood); color: var(--oro); font-size: 1.3rem; flex-shrink: 0; }
.claims h3 { font-size: 1.2rem; }
.claims p { font-size: .9rem; color: var(--pizarra); margin-top: 4px; }

/* --- Formularios --- */
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-group { margin-bottom: 16px; }
.form-label { display: block; font-size: .84rem; font-weight: 600; margin-bottom: 7px; color: var(--tinta); }
.form-label .req { color: var(--granate); }
.form-control { width: 100%; min-height: 48px; padding: 12px 14px; border: 1.5px solid #D6D9DF; border-radius: var(--r-md); background: #fff; font-size: .95rem; transition: border-color .2s, box-shadow .2s; }
.form-control::placeholder { color: #A3A8B1; }
.form-control:hover { border-color: #BFC3CA; }
.form-control:focus { outline: 0; border-color: var(--granate); box-shadow: 0 0 0 4px rgba(139,22,33,.1); }
textarea.form-control { min-height: 120px; resize: vertical; }
select.form-control { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%235A606B' d='M6 8 0 0h12z'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; background-size: 10px; padding-right: 36px; }
.form-hint { font-size: .8rem; color: var(--pizarra); margin-top: 12px; text-align: center; display: flex; gap: 8px; justify-content: center; align-items: center; }
.form-hint i { color: var(--ok); }
.alert { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border-radius: var(--r-md); font-size: .9rem; margin-bottom: 18px; line-height: 1.5; animation: riseIn .3s var(--ease); }
.alert-success { background: #E8F6EE; color: #13633F; border: 1px solid #BFE5CF; }
.alert-error { background: #FCECEC; color: #9B2420; border: 1px solid #F3C6C4; }
.alert-info { background: #EEF2F8; color: #2D4363; border: 1px solid #D3DCEA; }
.alert span { font-weight: 700; }
.loading { width: 16px; height: 16px; border: 2px solid rgba(255,255,255,.4); border-top-color: #fff; border-radius: 50%; display: inline-block; animation: spin .7s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

/* --- Modal --- */
.modal-overlay { position: fixed; inset: 0; z-index: 2500; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(20,6,8,.7); backdrop-filter: blur(6px); opacity: 0; visibility: hidden; transition: opacity .25s, visibility .25s; }
.modal-overlay.open { opacity: 1; visibility: visible; }
.modal-box { position: relative; width: 100%; max-width: 620px; max-height: calc(100vh - 40px); overflow-y: auto; background: #fff; border-radius: var(--r-xl); box-shadow: var(--sh-3); transform: translateY(16px) scale(.98); transition: transform .3s var(--ease); }
.modal-overlay.open .modal-box { transform: none; }
.modal-head { padding: 26px 30px 20px; background: var(--oxblood); color: #fff; position: relative; overflow: hidden; }
.modal-head::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: repeating-linear-gradient(-45deg, var(--oro) 0 10px, var(--oxblood) 10px 20px); }
.modal-head small { color: var(--oro); font-weight: 600; font-size: .8rem; }
.modal-head h3 { color: #fff; font-size: 1.45rem; margin-top: 4px; padding-right: 40px; }
.modal-head p { color: rgba(255,255,255,.7); font-size: .9rem; margin-top: 6px; }
.modal-body { padding: 26px 30px 30px; }
.modal-close { position: absolute; top: 18px; right: 18px; z-index: 2; width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; background: rgba(255,255,255,.1); color: #fff; cursor: pointer; transition: .2s; }
.modal-close:hover { background: #fff; color: var(--oxblood); }
.modal-box--simple .modal-close { background: var(--niebla); color: var(--tinta); }
.modal-box--simple { padding: 32px; }

/* --- Legales / prosa --- */
.prose { max-width: 760px; margin: 0 auto; color: #33363D; line-height: 1.8; font-size: 1.02rem; }
.prose h2 { font-size: 1.35rem; margin: 36px 0 12px; }
.prose p + p { margin-top: 14px; }
.prose a { color: var(--granate); text-decoration: underline; text-underline-offset: 3px; }
.prose .updated { font-size: .88rem; color: var(--pizarra); padding: 12px 16px; background: var(--niebla); border-radius: var(--r-md); display: inline-block; margin-bottom: 8px; }

/* --- 404 --- */
.nf { min-height: 70vh; display: grid; place-items: center; text-align: center; padding: 80px 24px; background: var(--niebla); }
.nf__code { font-family: var(--f-display); font-weight: 800; font-size: clamp(6rem, 18vw, 11rem); line-height: .9; letter-spacing: -.04em; color: var(--granate); }
.nf__sign { display: inline-flex; align-items: center; gap: 10px; padding: 10px 18px; background: var(--r-medio); color: var(--tinta); font-weight: 700; border-radius: 8px; margin: 22px 0 16px; border: 3px solid var(--tinta); }
.nf h1 { font-size: var(--t-2xl); }
.nf p { color: var(--pizarra); margin: 12px auto 0; max-width: 46ch; }
.nf .btn-row { justify-content: center; }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.site-footer { background: var(--oxblood); color: rgba(255,255,255,.66); position: relative; }
.site-footer::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 5px; background: repeating-linear-gradient(-45deg, var(--oro) 0 14px, var(--oxblood) 14px 28px); }
.ftr-top { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr 1.2fr; gap: 40px; padding: 80px 0 56px; }
.ftr-brand img { height: 54px; width: auto; }
.ftr-brand p { margin-top: 20px; font-size: .9rem; line-height: 1.7; max-width: 34ch; }
.ftr-social { display: flex; gap: 8px; margin-top: 22px; flex-wrap: wrap; }
.ftr-social a { width: 38px; height: 38px; border-radius: 10px; display: grid; place-items: center; background: rgba(255,255,255,.06); color: #fff; transition: .2s; font-size: .9rem; }
.ftr-social a:hover { background: var(--oro); color: var(--oxblood); }
.ftr-col h4 { color: #fff; font-size: .98rem; margin-bottom: 18px; font-stretch: 100%; }
.ftr-col li + li { margin-top: 11px; }
.ftr-col a { font-size: .9rem; transition: color .2s; }
.ftr-col a:hover { color: var(--oro); }
.ftr-contact li { display: flex; gap: 12px; align-items: flex-start; font-size: .88rem; line-height: 1.5; word-break: break-word; }
.ftr-contact li + li { margin-top: 13px; }
.ftr-contact i { color: var(--oro); margin-top: 4px; width: 16px; text-align: center; }
.ftr-contact a:hover { color: var(--oro); }
.ftr-bottom { border-top: 1px solid rgba(255,255,255,.08); padding: 22px 0; font-size: .82rem; }
.ftr-bottom .container { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.ftr-legal { display: flex; gap: 20px; flex-wrap: wrap; }
.ftr-legal a:hover { color: var(--oro); }
.ftr-legal .lr { display: inline-flex; align-items: center; gap: 6px; color: #fff; }
.ftr-legal .lr i { color: var(--oro); }

/* Flotantes */
.whatsapp-float { position: fixed; right: 22px; bottom: 22px; z-index: 900; display: flex; align-items: center; gap: 0; height: 58px; padding: 0; border-radius: 999px; background: var(--wa); color: #fff; box-shadow: 0 12px 30px -8px rgba(37,211,102,.6); transition: .3s var(--ease); }
.whatsapp-float i { width: 58px; height: 58px; display: grid; place-items: center; font-size: 1.7rem; }
.whatsapp-float span { max-width: 0; overflow: hidden; white-space: nowrap; font-weight: 600; font-size: .9rem; transition: max-width .35s var(--ease), padding .35s; }
.whatsapp-float:hover span { max-width: 220px; padding-right: 22px; }
.whatsapp-float::before { content: ""; position: absolute; inset: 0; border-radius: inherit; border: 2px solid var(--wa); animation: ping 2.4s ease-out infinite; }
@keyframes ping { 0% { transform: scale(1); opacity: .7; } 80%, 100% { transform: scale(1.35); opacity: 0; } }
.back-top { position: fixed; right: 30px; bottom: 92px; z-index: 900; width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; background: #fff; color: var(--tinta); box-shadow: var(--sh-2); border: 1px solid var(--linea); cursor: pointer; opacity: 0; visibility: hidden; transform: translateY(10px); transition: .3s var(--ease); }
.back-top.visible { opacity: 1; visibility: visible; transform: none; }
.back-top:hover { background: var(--granate); color: #fff; border-color: var(--granate); }

/* Revelado sutil */
.reveal { opacity: 0; transform: translateY(16px); transition: opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.visible { opacity: 1; transform: none; }
.no-js .reveal { opacity: 1; transform: none; }

/* --- Responsive interiores --- */
@media (max-width: 1080px) {
  .ftr-top { grid-template-columns: 1fr 1fr 1fr; }
  .ftr-brand { grid-column: 1 / -1; }
  .pd { grid-template-columns: 1fr; }
  .buybox { position: static; }
  .levels { grid-template-columns: repeat(2, 1fr); }
  .plans { grid-template-columns: 1fr; max-width: 520px; margin: 0 auto; }
  .plan--featured { transform: none; }
  .plan--featured:hover { transform: translateY(-4px); }
  .pay, .bgrid, .sgrid, .themes, .bgrid-posts { grid-template-columns: repeat(2, 1fr); }
  .values, .allies { grid-template-columns: repeat(2, 1fr); }
  .tool, .contact, .mv { grid-template-columns: 1fr; }
  .tool--rev .tool__visual { order: 0; }
  .post--lead { grid-template-columns: 1fr; }
  .feature-evt { grid-template-columns: 1fr; }
  .feature-evt__date { justify-self: start; }
  .steps { grid-template-columns: repeat(2, 1fr); row-gap: 36px; }
  .steps::before { display: none; }
}
@media (max-width: 760px) {
  .ftr-top { grid-template-columns: 1fr 1fr; gap: 32px; padding: 64px 0 40px; }
  .search { min-width: 0; width: 100%; }
  .toolbar { flex-direction: column; align-items: stretch; }
  .chips { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 4px; scrollbar-width: none; }
  .chip { flex-shrink: 0; }
  .form-row, .audience, .includes, .two-lists, .bens, .risst-feats { grid-template-columns: 1fr; }
  .form-row { gap: 0; }
  .levels, .pay, .bgrid, .sgrid, .sgrid--featured, .themes, .bgrid-posts, .values, .allies { grid-template-columns: 1fr; }
  .steps { grid-template-columns: 1fr; }
  .stats4 { grid-template-columns: 1fr 1fr; }
  .modal-head, .modal-body { padding-left: 22px; padding-right: 22px; }
  .whatsapp-float { right: 16px; bottom: 16px; height: 54px; }
  .whatsapp-float i { width: 54px; height: 54px; }
  .back-top { right: 22px; bottom: 82px; }
  .claims { padding: 22px; }
  .article__cover { margin-top: -40px; border-radius: var(--r-lg); }
}
@media (max-width: 460px) {
  .ftr-top { grid-template-columns: 1fr; }
  .scard__ctas { grid-template-columns: 1fr; }
  .hero__cta .btn, .phero__actions .btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
  .reveal { opacity: 1; transform: none; }
  .logos__row { animation: none; flex-wrap: wrap; justify-content: center; width: auto; }
  .logos__row .dup { display: none; }
}
@media print {
  .site-header, .topbar, .whatsapp-float, .back-top, .site-footer, .promo-banner { display: none !important; }
}
.pgrid > div > .pcard { width: 100%; }
.ladder__name { hyphens: auto; -webkit-hyphens: auto; overflow-wrap: break-word; }
.ladder__step { min-height: 150px; }
@media (max-width: 760px) { .ladder__step { min-height: 110px; } }
.endorse__img { isolation: isolate; } .evt__date .m { text-transform: none; }
.quote__who .avatar { display: grid; color: #fff; font-size: .95rem; }
@media (max-width: 760px) {
  .hero__visual { padding: 0 0 170px 0; }
  .hero__photo { aspect-ratio: 4 / 3.3; }
  .matrix { width: 236px; left: auto; right: 10px; padding: 14px; border-radius: 14px; }
  .matrix__read { gap: 6px; }
  .matrix__stat b { font-size: .88rem; }
  .matrix__foot { display: none; }
  .hero__chip { top: 12px; right: 12px; padding: 9px 12px 9px 9px; }
  .hero__chip .ic { width: 32px; height: 32px; }
}
@media (max-width: 1180px) {
  .site-header, body.has-hero .site-header.scrolled { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
  .site-header { background: #fff; }
  body.has-hero .site-header.scrolled { background: #fff; }
  .main-nav { height: 100vh; height: 100dvh; }
}

/* ==========================================================================
   v2 — HEROES FOTOGRÁFICOS, SLIDER DE PORTADA Y SECCIONES NUEVAS
   ========================================================================== */
.scroll-progress { position: fixed; top: 0; left: 0; height: 3px; width: 100%; z-index: 1200; background: linear-gradient(90deg, var(--oro), var(--oro-claro)); transform-origin: 0 50%; transform: scaleX(0); pointer-events: none; }

/* ---- Hero de páginas interiores con foto ---- */
.phero { min-height: clamp(420px, 52vh, 560px); display: flex; align-items: center; padding: clamp(64px, 8vw, 110px) 0 clamp(72px, 8vw, 110px); }
.phero > .container { position: relative; z-index: 2; width: 100%; }
.phero__media { position: absolute; inset: 0; z-index: -3; overflow: hidden; }
.phero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 70% 35%; animation: kenburns 22s ease-out both; }
@keyframes kenburns { from { transform: scale(1.14) translate3d(1.5%, 1%, 0); } to { transform: scale(1.02) translate3d(0, 0, 0); } }
.phero--photo::after { /* reemplaza el halo: degradado de lectura */
  width: auto; height: auto; inset: 0; right: 0; top: 0; z-index: -2;
  background:
    linear-gradient(90deg, rgba(34,9,13,.97) 0%, rgba(34,9,13,.9) 32%, rgba(34,9,13,.62) 62%, rgba(34,9,13,.38) 100%),
    linear-gradient(0deg, rgba(34,9,13,.85) 0%, rgba(34,9,13,0) 40%);
}
.phero--photo::before { z-index: -1; opacity: .7; }
.phero--photo .phero__sub { color: rgba(255,255,255,.82); }
.phero__grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 48px; align-items: center; }
.phero__aside { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.16); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-radius: 18px; padding: 24px; color: #fff; box-shadow: 0 30px 60px -30px rgba(0,0,0,.6); animation: riseIn .8s .3s var(--ease) both; }
.phero__aside h3 { color: #fff; font-size: 1.05rem; margin-bottom: 14px; display: flex; align-items: center; gap: 10px; }
.phero__aside h3 i { color: var(--oro); }
.phero__aside .big { font-family: var(--f-display); font-weight: 800; font-size: 2.6rem; line-height: 1; letter-spacing: -.02em; }
.phero__aside .big small { font-size: 1rem; color: var(--oro); margin-right: 4px; }
.phero__aside p { font-size: .88rem; color: rgba(255,255,255,.72); margin-top: 8px; line-height: 1.55; }
.phero__aside img { border-radius: 12px; }
.phero__aside .btn { margin-top: 16px; width: 100%; }
.aside-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.aside-stats div { background: rgba(255,255,255,.06); border-radius: 12px; padding: 14px 12px; }
.aside-stats b { display: block; font-family: var(--f-display); font-size: 1.6rem; line-height: 1; color: #fff; }
.aside-stats span { display: block; font-size: .74rem; color: rgba(255,255,255,.66); margin-top: 6px; line-height: 1.35; }
.phero h1, .phero__sub, .crumbs, .phero__tags, .phero__facts, .phero__actions { animation: riseIn .7s var(--ease) both; }
.phero__sub { animation-delay: .08s; } .phero__facts, .phero__actions { animation-delay: .16s; }
.phero__facts { padding: 14px 18px; border-radius: 12px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.1); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); display: inline-flex; }

/* ---- Portada: slider de fondo a pantalla completa ---- */
.hero--slider { min-height: min(100vh, 940px); display: flex; align-items: center; padding-bottom: clamp(96px, 9vw, 130px); }
.hero--slider > .container { position: relative; z-index: 2; width: 100%; }
.hero--slider::after { display: none; }
.hero-slides { position: absolute; inset: 0; z-index: -3; }
.hero-slide { position: absolute; inset: 0; opacity: 0; transition: opacity 1.6s ease; }
.hero-slide.is-active { opacity: 1; }
.hero-slide img { width: 100%; height: 100%; object-fit: cover; object-position: 65% 30%; transform: scale(1.12); }
.hero-slide.is-active img { animation: kenburns 9s ease-out both; }
.hero-shade { position: absolute; inset: 0; z-index: -2; background:
  linear-gradient(90deg, rgba(34,9,13,.96) 0%, rgba(34,9,13,.86) 36%, rgba(34,9,13,.45) 68%, rgba(34,9,13,.3) 100%),
  linear-gradient(0deg, rgba(34,9,13,.9) 0%, rgba(34,9,13,0) 35%),
  radial-gradient(ellipse 60% 70% at 0% 30%, rgba(139,22,33,.55), transparent 70%); }
.hero--slider::before { z-index: -1; opacity: .6; }
.hero--slider .hero__grid { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); }
.hero--slider .hero__visual { padding: 0; display: flex; flex-direction: column; align-items: flex-end; gap: 16px; }
.hero--slider .matrix { position: relative; left: auto; bottom: auto; width: 320px; }
.hero--slider .hero__chip { position: relative; top: auto; right: auto; align-self: flex-end; margin-right: 40px; }
.hero h1 .accent { color: var(--oro); }
.hero-dots { position: absolute; left: 0; right: 0; bottom: 34px; z-index: 3; }
.hero-dots .container { display: flex; gap: 28px; align-items: flex-end; }
.hero-dot { flex: 1; max-width: 220px; text-align: left; color: rgba(255,255,255,.55); font-size: .8rem; padding-top: 12px; position: relative; cursor: pointer; transition: color .3s; }
.hero-dot::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: rgba(255,255,255,.2); border-radius: 2px; }
.hero-dot::after { content: ""; position: absolute; top: 0; left: 0; height: 2px; width: 0; background: var(--oro); border-radius: 2px; }
.hero-dot.is-active { color: #fff; }
.hero-dot.is-active::after { animation: dotfill var(--slide-ms, 7000ms) linear forwards; }
.hero-dot b { display: block; color: inherit; font-weight: 600; font-size: .86rem; }
@keyframes dotfill { to { width: 100%; } }

/* ---- Sectores ---- */
.sectors { display: grid; grid-template-columns: repeat(3, 1fr); grid-auto-rows: 260px; gap: 16px; }
.sector { position: relative; overflow: hidden; border-radius: var(--r-lg); isolation: isolate; color: #fff; display: flex; flex-direction: column; justify-content: flex-end; padding: 24px; }
.sector:nth-child(1) { grid-row: span 2; }
.sector img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.sector::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(34,9,13,.92) 0%, rgba(34,9,13,.35) 55%, rgba(34,9,13,.1) 100%); transition: background .4s; }
.sector:hover img { transform: scale(1.07); }
.sector:hover::before { background: linear-gradient(0deg, rgba(139,22,33,.92) 0%, rgba(139,22,33,.45) 60%, rgba(34,9,13,.15) 100%); }
.sector__ic { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: rgba(255,255,255,.14); backdrop-filter: blur(6px); margin-bottom: 14px; color: var(--oro); font-size: 1.1rem; }
.sector h3 { color: #fff; font-size: 1.35rem; }
.sector p { font-size: .88rem; color: rgba(255,255,255,.78); margin-top: 6px; max-width: 34ch; line-height: 1.5; }
.sector__go { display: inline-flex; align-items: center; gap: 8px; margin-top: 14px; font-size: .85rem; font-weight: 600; color: var(--oro); opacity: 0; transform: translateY(8px); transition: .35s var(--ease); }
.sector:hover .sector__go, .sector:focus-visible .sector__go { opacity: 1; transform: none; }
.sector:nth-child(1) h3 { font-size: 1.9rem; }

/* ---- Banda de propósito con parallax ---- */
.purpose { position: relative; isolation: isolate; overflow: hidden; color: #fff; padding: clamp(96px, 12vw, 160px) 0; text-align: center; }
.purpose__bg { position: absolute; inset: -15% 0; z-index: -2; background-size: cover; background-position: center; will-change: transform; }
.purpose::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(34,9,13,.88), rgba(34,9,13,.72) 50%, rgba(34,9,13,.92)); }
.purpose blockquote { font-family: var(--f-display); font-weight: 700; font-size: clamp(1.8rem, 1.1rem + 2.8vw, 3.4rem); line-height: 1.12; letter-spacing: -.02em; max-width: 22ch; margin: 0 auto; color: #fff; }
.purpose blockquote em { font-style: normal; color: var(--oro); }
.purpose p { margin-top: 22px; color: rgba(255,255,255,.72); font-size: 1rem; }
.purpose__stats { display: grid; grid-template-columns: repeat(3, 1fr); max-width: 760px; margin: 52px auto 0; border-top: 1px solid rgba(255,255,255,.18); }
.purpose__stats div { padding: 24px 12px 0; }
.purpose__stats b { display: block; font-family: var(--f-display); font-weight: 800; font-size: clamp(1.8rem, 1.4rem + 1.4vw, 2.6rem); color: var(--oro); line-height: 1; }
.purpose__stats span { display: block; margin-top: 8px; font-size: .85rem; color: rgba(255,255,255,.7); }

/* ---- Responsive v2 ---- */
@media (max-width: 1080px) {
  .phero__grid { grid-template-columns: 1fr; }
  .phero__aside { max-width: 420px; }
  .hero--slider .hero__grid { grid-template-columns: 1fr; }
  .hero--slider .hero__visual { align-items: flex-start; flex-direction: row; flex-wrap: wrap; }
  .hero--slider .hero__chip { margin: 0; align-self: auto; }
  .sectors { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 220px; }
}
@media (max-width: 760px) {
  .phero { min-height: 0; }
  .phero--photo::after { background: linear-gradient(180deg, rgba(34,9,13,.82), rgba(34,9,13,.94)); }
  .phero__facts { display: flex; gap: 12px 20px; }
  .phero__aside { display: none; }
  .hero--slider { min-height: 0; padding-bottom: 110px; }
  .hero--slider .hero__visual { padding: 0; }
  .hero--slider .matrix { width: 100%; max-width: 340px; right: auto; }
  .hero--slider .hero__chip { display: none; }
  .hero-shade { background: linear-gradient(180deg, rgba(34,9,13,.78) 0%, rgba(34,9,13,.9) 50%, rgba(34,9,13,.97) 100%); }
  .hero-dots .container { gap: 12px; }
  .hero-dot { font-size: 0; }
  .hero-dot b { font-size: .72rem; }
  .sectors { grid-template-columns: 1fr; grid-auto-rows: 200px; }
  .sector:nth-child(1) { grid-row: auto; }
  .sector__go { opacity: 1; transform: none; }
  .purpose__stats { grid-template-columns: 1fr; gap: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-slide { transition: none; }
}
.nf--photo { position: relative; isolation: isolate; overflow: hidden; background: var(--oxblood); color: #fff; min-height: 78vh; }
.nf--photo::after { content: ""; position: absolute; inset: 0; z-index: -2; background: radial-gradient(ellipse 50% 60% at 50% 50%, rgba(34,9,13,.7), rgba(34,9,13,.96)); }
.nf--photo .nf__code { color: #fff; text-shadow: 0 0 60px rgba(201,162,74,.35); }
.nf--photo h1 { color: #fff; }
.nf--photo p { color: rgba(255,255,255,.75); }
.nf--photo .nf__sign { border-color: var(--oxblood); }
.sector:nth-child(6) { grid-column: 1 / -1; }
.sector:nth-child(6) img { object-position: center 35%; }
@media (max-width: 760px) { .sector:nth-child(6) { grid-column: auto; } }
