/* ============================================================
CIIP · Sistema de diseño del sitio unificado
Sobrio, un solo acento (cian), jerarquía por escala tipográfica.
============================================================ */

/* ============================================================

VARIABLES Y BASE
============================================================ */
:root {
--navy: #122031;
--navy-2: #0e2542;
--blue: #003A70;
--cyan: #7ACDE8;
--bg: #F5F6F8;
--white: #FFFFFF;
--soporte: #9BA3AA;
--rule: #E6E9ED;
--ink: #1A1A1A;
--muted: #5A6470;
--shadow: 0 18px 50px -24px rgba(18, 32, 49, 0.28);
--maxw: 1200px;
--pad: clamp(20px, 5vw, 90px);
font-synthesis-weight: none;
}

* {
margin: 0;
padding: 0;
box-sizing: border-box;
}

html {
scroll-behavior: smooth;
}

body {
font-family: 'Helvetica Neue', Arial, sans-serif;
color: var(--ink);
background: var(--bg); /* Se usa --bg por defecto como en main.css */
line-height: 1.55;
-webkit-font-smoothing: antialiased;
text-rendering: optimizeLegibility;
}

img {
max-width: 100%;
height: auto;
display: block;
}

a {
color: inherit;
text-decoration: none;
}

::selection {
background: var(--cyan);
color: var(--navy);
}

/* ============================================================
2. LAYOUT PRIMITIVES
============================================================ */
.wrap {
max-width: var(--maxw);
margin: 0 auto;
padding-left: var(--pad);
padding-right: var(--pad);
}

.section {
padding: clamp(40px, 5vw, 96px) 0; /* Consolidado para abarcar ambas escalas */
}

.section--light { background: var(--bg); }
.section--white { background: var(--white); }
.section--navy {
background: var(--navy);
color: var(--white);
}

.section--navy .muted,
.section--navy .lede { color: #AEB7C2; }
.section--navy .title { color: var(--white); }
.section--navy .eyebrow { color: var(--cyan); }
.section--navy .panel-label { color: #8995A4; }

.tight {
padding-top: clamp(32px, 4vw, 56px);
}

.sec-head {
max-width: 760px;
margin-bottom: clamp(26px, 4vw, 48px);
}
.sec-head .lede {
margin-top: 20px;
}
.sec-head .opp-facts{
  display: flex;
  flex-direction: row;
  width: 100%;
  justify-content: space-between;
  gap: 28px 6%;
  margin-top: clamp(32px, 3.4vw, 44px);
}

.sec-head .opp-facts .opp-fact{
  width: 47%;
  border-top: 1px solid #DDE1E7;
  padding-top: 20px;
}

.sec-head .opp-facts .opp-fact .opp-fact-label.title{
  color: var(--blue);
  font-size: clamp(18px, 1.5vw, 20px);
  font-weight: 800;
  letter-spacing: -.01em;
  line-height: 1.2;
}

.sec-head .opp-facts .opp-fact .lede{
  margin-top: 10px;
  font-size: clamp(15px, 1.15vw, 17px);
}

/* ============================================================
3. TIPOGRAFÍA
============================================================ */
.eyebrow {
display: inline-flex;
align-items: center;
gap: 16px;
font-size: 13px;
font-weight: 700;
letter-spacing: .2em;
text-transform: uppercase;
color: var(--blue);
margin-bottom: 26px;
}
.eyebrow::before {
content: "";
width: 42px;
height: 4px;
background: var(--cyan);
display: block;
flex: none;
}
.section--navy .eyebrow::before { background: var(--cyan); }

.display {
font-weight: 800;
letter-spacing: -.015em;
line-height: 1.02;
font-size: clamp(34px, 4.5vw, 64px);
color: var(--navy);
text-wrap: balance;
}
.display.display--impact {
font-size: clamp(46px, 7.2vw, 100px);
letter-spacing: -.025em;
max-width: 14ch;
}
.section--navy .display { color: var(--white); }
.display .ci, .title .ci { color: var(--blue); }
.section--navy .display .ci, .section--navy .title .ci { color: var(--cyan); }

h2.title {
font-weight: 800;
letter-spacing: -.012em;
line-height: 1.06;
font-size: clamp(27px, 3vw, 42px);
color: var(--navy);
text-wrap: balance;
}

h3 {
font-weight: 800;
letter-spacing: -.01em;
line-height: 1.12;
font-size: clamp(19px, 1.7vw, 23px);
color: var(--navy);
}
.section--navy h3 { color: var(--white); }

.lede {
font-size: clamp(16px, 1.3vw, 19px);
line-height: 1.55;
color: var(--muted);
max-width: 62ch;
}

.muted { color: var(--muted); }
.small {
font-size: 14px;
color: var(--soporte);
letter-spacing: .02em;
}

/* ============================================================
4. COMPONENTES: BOTONES, PILLS Y CHIPS
============================================================ */
.btn {
display: inline-flex;
align-items: center;
gap: 10px;
font-size: 15px;
font-weight: 700;
letter-spacing: .01em;
padding: 15px 26px;
border-radius: 4px;
border: 1px solid transparent;
transition: transform .18s ease, background .18s ease, box-shadow .18s ease, color .18s ease;
cursor: pointer;
}
.btn .arr { transition: transform .18s ease; }
.btn:hover .arr { transform: translateX(4px); }

.btn-primary { background: var(--blue); color: #fff; }
.btn-primary:hover { background: var(--navy-2); transform: translateY(-2px); box-shadow: var(--shadow); }

.btn-ghost { background: transparent; color: var(--navy); border-color: var(--rule); }
.btn-ghost:hover { border-color: var(--blue); color: var(--blue); transform: translateY(-2px); }
.section--navy .btn-ghost { color: #fff; border-color: rgba(255, 255, 255, .28); }
.section--navy .btn-ghost:hover { border-color: var(--cyan); color: var(--cyan); }

.btn-cyan { background: var(--cyan); color: var(--navy); }
.btn-cyan:hover { background: #9adcf0; transform: translateY(-2px); box-shadow: var(--shadow); }

/* Panel Tool Pills */
.pills { display: grid; gap: 10px; }
.pills--title { grid-template-columns: repeat(3, 1fr); }
.pills--sub { grid-template-columns: repeat(4, 1fr); }
.pills--3o { grid-template-columns: repeat(3, 1fr); }
.pills--5o { grid-template-columns: repeat(5, 1fr); }
@media(max-width: 900px) {
.pills--title, .pills--sub, .pills--3o, .pills--5o { grid-template-columns: 1fr 1fr; }
}
@media(max-width: 540px) {
.pills--title, .pills--sub, .pills--3o, .pills--5o { grid-template-columns: 1fr; }
}

.pill {
appearance: none;
border: 1px solid var(--rule);
background: var(--white);
color: var(--ink);
font: inherit;
text-align: left;
padding: 14px 16px;
border-radius: 10px;
cursor: pointer;
transition: border-color .15s ease, background .15s ease, color .15s ease;
}
.pill:hover { border-color: var(--blue); }
.pill:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.pill .pt { display: block; font-size: 14px; font-weight: 700; letter-spacing: -.005em; }
.pill .ps { display: block; font-size: 12.5px; color: var(--muted); margin-top: 5px; line-height: 1.4; }
.pill.active { background: var(--blue); border-color: var(--blue); }
.pill.active .pt { color: #fff; }
.pill.active .ps { color: #C4CCD6; }

.rec-tag {
display: inline-block; margin-left: 7px; padding: 2px 7px; border-radius: 999px;
background: var(--cyan); color: var(--navy); font-size: 9px; font-weight: 800;
letter-spacing: .04em; text-transform: uppercase; vertical-align: middle;
}

/* Chips (Filtros) */
.chip {
font: inherit; font-size: 13.5px; font-weight: 600; padding: 8px 15px;
border-radius: 999px; border: 1px solid var(--rule); background: var(--white);
color: var(--navy); cursor: pointer; transition: all .15s ease;
}
.chip:hover { border-color: var(--blue); color: var(--blue); }
.chip.on { background: var(--blue); color: #fff; border-color: var(--blue); }

/* ============================================================
5. NAVEGACIÓN
============================================================ */
.nav {
position: sticky; top: 0; z-index: 60; background: var(--navy);
}
.nav-inner { display: flex; align-items: center; gap: 32px; height: 74px; }
.nav .brand { height: 34px; }
.nav .brand img { height: 100%; width: auto; }
.nav-links { display: flex; gap: 30px; margin-left: 14px; }
.nav-item--contact { display: none; }
.nav-links a { font-size: 15px; font-weight: 600; color: #C4CCD6; transition: color .15s ease; }
.nav-links a:hover { color: #fff; }

.nav-item { position: relative; display: flex; align-items: center; height: 74px; }
.nav-top { display: flex; align-items: center; gap: 8px; }
.nav-item:hover .nav-top, .nav-item:focus-within .nav-top { color: #fff; }

.nav .caret {
width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor;
transform: rotate(45deg); margin-top: -3px; transition: transform .15s ease, margin .15s ease;
}
.nav-item:hover .caret, .nav-item:focus-within .caret { transform: rotate(225deg); margin-top: 3px; }

.nav-drop {
position: absolute; top: 100%; left: -20px; min-width: 264px;
background: var(--navy); border: 1px solid rgba(255, 255, 255, .12); border-top: 0;
border-radius: 0 0 10px 10px; padding: 8px 0 10px;
box-shadow: 0 28px 48px -18px rgba(0, 0, 0, .55);
opacity: 0; visibility: hidden; transform: translateY(8px);
transition: opacity .16s ease, transform .16s ease, visibility .16s;
}
.nav-item:hover .nav-drop, .nav-item:focus-within .nav-drop { opacity: 1; visibility: visible; transform: translateY(0); }
.nav-drop a { display: block; padding: 11px 20px; font-size: 14.5px; white-space: nowrap; }
.nav-drop a:hover { background: rgba(255, 255, 255, .06); }
.nav-drop .drop-label:first-child { border-top: 0; margin-top: 0; }
.drop-label {
display: block; margin-top: 8px; padding: 12px 20px 4px; font-size: 11px; font-weight: 700;
letter-spacing: .16em; text-transform: uppercase; color: #8995A4; border-top: 1px solid rgba(255, 255, 255, .1);
}

.nav-right { margin-left: auto; display: flex; align-items: center; gap: 18px; }
.lang { display: flex; align-items: center; }
.lang button {
display: inline-flex; align-items: center; gap: 8px; background: none; cursor: pointer;
font: inherit; font-size: 14px; font-weight: 600; color: #C4CCD6; padding: 8px 14px;
min-width: 108px; justify-content: center; /* mismo ancho en Español / English */
border: 1px solid rgba(255, 255, 255, .22); border-radius: 4px; transition: color .15s ease, border-color .15s ease;
}
.lang button svg { width: 16px; height: 16px; flex: none; }
.lang button:hover { color: #fff; border-color: var(--cyan); }
.lang button.on { display: none; } /* solo se muestra el idioma al que se puede cambiar */
.nav .btn-primary { background: var(--blue); padding: 9px 18px; font-size: 14px; border-radius: 4px; justify-content: center; }
.nav .btn-primary:hover { background: #0a4f93; }

/* Cambio de idioma: fundido breve en vez de corte (ver setLang en ui-interactions.js) */
html.lang-switch::view-transition-old(root),
html.lang-switch::view-transition-new(root) { animation-duration: .24s; }
.nav-burger { display: none; background: none; border: none; cursor: pointer; flex-direction: column; gap: 5px; margin-left: auto; padding: 10px 4px; }
.nav-burger span { width: 24px; height: 2px; background: #fff; display: block; transition: transform .2s ease, opacity .2s ease; }
.nav.menu-open .nav-burger span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav.menu-open .nav-burger span:nth-child(2) { opacity: 0; }
.nav.menu-open .nav-burger span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

@media(max-width: 900px) {
.nav-links {
position: fixed; top: 74px; left: 0; right: 0; bottom: 0; background: var(--navy);
flex-direction: column; gap: 0; margin-left: 0; padding: 6px var(--pad) 24px;
overflow-y: auto; display: none;
}
.nav.menu-open .nav-links { display: flex; }
.nav-item { display: block; height: auto; position: static; border-top: 1px solid rgba(255, 255, 255, .08); }
.nav-item:first-child { border-top: 0; }
.nav-top { padding: 15px 0 6px; font-size: 17px; }
.nav .caret { display: none; }
.nav-drop {
position: static; opacity: 1; visibility: visible; transform: none;
background: transparent; border: 0; box-shadow: none; padding: 0 0 14px; min-width: 0;
}
.nav-drop a { padding: 9px 0 9px 16px; font-size: 15px; color: #AEB7C2; white-space: normal; }
.drop-label { margin-top: 4px; padding: 10px 0 2px 16px; border-top: 0; }
.nav .btn-primary { display: none; }
.nav-item--contact { display: block; }
.nav-item--contact .nav-top { color: var(--cyan); font-weight: 700; }
.nav-burger { display: flex; }
.nav-right + .nav-burger { margin-left: -14px; }
}

/* ============================================================
6. HERO SECTIONS
============================================================ */
.hero {
position: relative; background: var(--navy); color: #fff; overflow: hidden;
}
.hero::before {
content: ""; position: absolute; inset: 0; opacity: .5;
background-image: radial-gradient(rgba(122, 205, 232, .10) 1.4px, transparent 1.4px);
background-size: 30px 30px; mask-image: linear-gradient(180deg, #000, transparent 75%);
}
.hero::after {
content: ""; position: absolute; right: -160px; top: -160px; width: 520px; height: 520px;
border: 1px solid rgba(122, 205, 232, .22); border-radius: 50%;
}
.hero-inner {
position: relative; z-index: 2; padding: clamp(48px, 7vw, 104px) 0 clamp(40px, 6vw, 80px);
}
.hero .display { max-width: 17ch; color: #fff; }
.hero .display.display--wide { max-width: 24ch; }
.hero .display .ci { color: var(--cyan); }
.hero .lede { color: #FFFFFF; margin-top: 20px; max-width: 54ch; min-height: 3.3em; text-wrap: pretty; }
.hero-cta { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 32px; }
.hero .eyebrow { color: var(--cyan); }
.hero .eyebrow::before { display: none; } /* sin tick en el hero */
.hero .btn-ghost { color: #fff; border-color: rgba(255, 255, 255, .28); }
.hero .btn-ghost:hover { border-color: var(--cyan); color: var(--cyan); }

/* Hero Video */
.hero--video { display: flex; align-items: center; min-height: min(82svh, 760px); }
.hero--video > .wrap { width: 100%; }
.hero--video .video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; }
.hero--video::before {
content: ""; position: absolute; inset: 0; z-index: 1; opacity: 1; mask-image: none; background-image: none;
background:
linear-gradient(90deg, rgba(18, 32, 49, .92), rgba(18, 32, 49, .62) 52%, rgba(18, 32, 49, .28)),
linear-gradient(180deg, rgba(18, 32, 49, .35), transparent 30%, rgba(18, 32, 49, .55));
}
.hero--video::after { display: none; }

/* ---------- hero con foto de fondo (portadas internas) ----------
   Variante del hero: <header class="hero hero--photo"> con un <img class="photo">
   como primer hijo. Mismo scrim que hero--video, para fotos estáticas. */
.hero--photo{display:flex;align-items:center;min-height:min(64svh,560px);}
.hero--photo>.wrap{width:100%;min-width:0;}
.hero--photo .photo{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;
}
.hero--photo::before{
  z-index:1;opacity:1;mask-image:none;background-image:none;
  background:
    linear-gradient(90deg, rgba(18,32,49,.92), rgba(18,32,49,.62) 52%, rgba(18,32,49,.28)),
    linear-gradient(180deg, rgba(18,32,49,.35), transparent 30%, rgba(18,32,49,.55));
}
.hero--photo::after{display:none;}
.hero-credit{position:absolute;right:16px;bottom:10px;z-index:3;font-size:11px;color:rgba(255,255,255,.5);letter-spacing:.01em;}

/* Hero Cinemático (Portada) */
.hero-cine {
position: relative; background: var(--navy); color: #fff; overflow: hidden;
min-height: calc(100svh - 74px); display: flex; align-items: center; justify-content: center;
}
.hero-cine::before {
content: ""; position: absolute; inset: 0;
background: radial-gradient(120% 70% at 50% 118%, rgba(0, 58, 112, .85), transparent 62%),
radial-gradient(60% 40% at 50% 112%, rgba(122, 205, 232, .16), transparent 70%);
}
.hero-cine .topo { position: absolute; inset: -20%; width: 140%; height: 140%; }
.hero-cine .topo ellipse { fill: none; stroke: rgba(122, 205, 232, .14); stroke-width: 1; transform-origin: 50% 50%; }
.hero-cine .topo .r1 { animation: cine-drift 46s linear infinite; }
.hero-cine .topo .r2 { animation: cine-drift 64s linear infinite reverse; stroke: rgba(122, 205, 232, .10); }
.hero-cine .topo .r3 { animation: cine-drift 88s linear infinite; stroke: rgba(122, 205, 232, .07); }
@keyframes cine-drift { to { transform: rotate(360deg); } }
.hero-cine .inner {
position: relative; z-index: 2; text-align: center;
padding: clamp(72px, 10vh, 120px) var(--pad) clamp(96px, 12vh, 140px);
max-width: 980px; margin: 0 auto;
}
.hero-cine .kicker {
display: inline-block; font-size: 12.5px; font-weight: 700; letter-spacing: .32em; text-transform: uppercase;
color: var(--cyan); padding-bottom: 16px; margin-bottom: 26px; position: relative;
}
.hero-cine .kicker::after {
content: ""; position: absolute; left: 50%; bottom: 0; transform: translateX(-50%); width: 42px; height: 3px; background: var(--cyan);
}
.hero-cine h1 {
font-weight: 800; letter-spacing: -.025em; line-height: 1.0; color: #fff;
font-size: clamp(44px, 6.4vw, 92px); text-wrap: balance;
}
.hero-cine h1 .ci { color: var(--cyan); }
.hero-cine .lede { color: #C4CCD6; margin: 26px auto 0; max-width: 56ch; font-size: clamp(17px, 1.4vw, 20px); }
.hero-cine .hero-cta { display: flex; gap: 14px; flex-wrap: wrap; justify-content: center; margin-top: 36px; }
.hero-cine .btn-ghost { color: #fff; border-color: rgba(255, 255, 255, .28); }
.hero-cine .btn-ghost:hover { border-color: var(--cyan); color: var(--cyan); }
.hero-cine .cue {
position: absolute; left: 50%; bottom: 26px; transform: translateX(-50%); z-index: 2;
display: flex; flex-direction: column; align-items: center; gap: 10px;
font-size: 11px; font-weight: 700; letter-spacing: .28em; text-transform: uppercase; color: #8995A4;
}
.hero-cine .cue i { width: 1px; height: 44px; background: linear-gradient(var(--cyan), transparent); display: block; overflow: hidden; position: relative; }
.hero-cine .cue i::after { content: ""; position: absolute; left: 0; top: -100%; width: 1px; height: 100%; background: var(--cyan); animation: cine-fall 2.2s ease-in-out infinite; }
@keyframes cine-fall { to { top: 110%; } }

/* ============================================================
7. TARJETAS Y GRIDS
============================================================ */
.grid { display: grid; gap: 20px; margin-top: clamp(40px, 5vw, 56px); }
.grid-2 { grid-template-columns: repeat(2, 1fr); }
.grid-3 { grid-template-columns: repeat(3, 1fr); }
.grid-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 900px) {
.grid-2, .grid-3 { grid-template-columns: 1fr 1fr; }
.grid-4 { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 620px) {
.grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; }
}

/* Tarjeta Base */
.card {
position: relative; background: var(--white); border: 1px solid var(--rule); border-radius: 16px;
padding: 30px 28px; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.card:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: #d7dde4; }
.card .idx { font-size: 14px; font-weight: 800; color: var(--soporte); letter-spacing: .06em; font-variant-numeric: tabular-nums; }
.card h3 { margin: 18px 150px 12px 0; }
.card p { font-size: 15px; color: var(--muted); line-height: 1.5; }
.card .more { display: inline-flex; align-items: center; gap: 8px; margin-top: 20px; font-size: 14px; font-weight: 700; color: var(--blue); }
.card .more .arr { transition: transform .18s ease; }
.card:hover .more .arr { transform: translateX(4px); }
.card .example-tag {
position: absolute; top: 18px; right: 18px; font-size: 10px; font-weight: 800; letter-spacing: .08em;
text-transform: uppercase; color: var(--soporte); background: var(--bg); border: 1px solid var(--rule);
padding: 4px 9px; border-radius: 999px; white-space: nowrap;
}

.section--navy .card { background: #16273b; border-color: rgba(255, 255, 255, .1); }
.section--navy .card h3 { color: #fff; margin-right: 0; }
.section--navy .card p { color: #AEB7C2; }
.section--navy .card .more { color: var(--cyan); }

/* Tarjetas de Oportunidades (.opp) */
.opp-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.opp {
display: flex; flex-direction: column; background: var(--white); border: 1px solid var(--rule);
border-radius: 16px; padding: 26px 26px 24px; text-align: left; cursor: pointer;
transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.opp:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: #d7dde4; }
.opp .opp-photo { margin: -26px -26px 20px; aspect-ratio: 16/9; overflow: hidden; background: var(--bg); border-radius: 16px 16px 0 0; }
.opp .opp-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
/* sin zoom de foto al pasar el mouse */
.opp .opp-badge { display: inline-flex; align-self: flex-start; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--blue); background: #E8EEF5; padding: 5px 11px; border-radius: 999px; margin-bottom: 14px; }
.opp h3 { font-size: 19px; line-height: 1.2; margin: 0; }
.opp .opp-type { margin-top: 7px; font-size: 13px; font-weight: 700; color: var(--muted); letter-spacing: .01em; }
.opp .opp-loc { margin-top: 12px; font-size: 13.5px; line-height: 1.45; color: var(--muted); }
.opp .opp-stats { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--rule); display: flex; flex-direction: column; gap: 9px; }
.opp .opp-stats .st { display: flex; gap: 10px; font-size: 13px; line-height: 1.35; }
.opp .opp-stats .st .sk { flex: none; width: 96px; font-size: 10.5px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--soporte); padding-top: 2px; }
.opp .opp-stats .st .sv { color: var(--ink); font-weight: 600; }
.opp .opp-more { margin-top: 18px; display: inline-flex; align-items: center; gap: 8px; font-size: 13.5px; font-weight: 700; color: var(--blue); }
.opp .opp-more .arr { transition: transform .18s ease; }
.opp:hover .opp-more .arr { transform: translateX(4px); }
@media (max-width: 920px) { .opp-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .opp-grid { grid-template-columns: 1fr; } }

/* Tarjetas Fotográficas (.pcard) */
.pcard {
position: relative; border-radius: 16px; overflow: hidden; background: var(--navy);
display: grid; transition: transform .2s ease, box-shadow .2s ease;
}
/* Proporción mínima 1:1; la tarjeta crece si el contenido no cabe */
.pcard::before { content: ""; grid-area: 1 / 1; padding-top: 100%; }
.pcard:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.pcard img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; filter: saturate(.75) contrast(1.12) brightness(.94); }
.pcard img.pimg-up { top: auto; height: 150%; object-position: 62% 50%; }
.pcard::after {
content: ""; position: absolute; inset: 0;
background: linear-gradient(180deg, rgba(0, 50, 98, .10) 0%, rgba(0, 44, 86, .30) 26%, rgba(0, 32, 66, .80) 52%, rgba(0, 22, 46, .95) 100%);
}
.pcard .pin { grid-area: 1 / 1; position: relative; z-index: 1; min-width: 0; padding: 20px 22px; display: flex; flex-direction: column; }
.pcard .icon { width: 28px; height: 28px; color: #fff; flex: none; }
.pcard .icon svg { width: 100%; height: 100%; display: block; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.pcard .ptick { width: 28px; height: 3px; background: var(--cyan); margin-top: auto; margin-bottom: 12px; transition: width .2s ease; }
a.pcard:hover .ptick, a.pcard:focus-visible .ptick { width: 56px; }
.pcard .ch { font-size: 19px; font-weight: 800; color: #fff; line-height: 1.2; text-shadow: 0 1px 2px rgba(0, 18, 38, .55); }
.pcard .cb { font-size: 14px; color: rgba(255, 255, 255, .95); line-height: 1.42; margin-top: 8px; text-shadow: 0 1px 2px rgba(0, 18, 38, .55); }
.pcard .more { display: inline-flex; align-items: center; gap: 8px; margin-top: 16px; font-size: 13.5px; font-weight: 700; color: var(--cyan); }
.pcard .more .arr { transition: transform .18s ease; }
.pcard:hover .more .arr { transform: translateX(4px); }
a.pcard { cursor: pointer; }
.opp-cta { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px 32px; margin-top: clamp(28px, 3vw, 40px); padding-top: 24px; border-top: 1px solid #DDE1E7; }

/* Tarjetas de Noticias (.news-card) y Carrusel */
.newsgrid {
display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px;
}
.news-carousel .newsgrid {
display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
-webkit-overflow-scrolling: touch; scrollbar-width: none; -ms-overflow-style: none;
}
.news-carousel .newsgrid::-webkit-scrollbar { display: none; }

.news-card {
background: #16273b; border: 1px solid rgba(255, 255, 255, .1); border-radius: 16px; overflow: hidden;
display: flex; flex-direction: column; transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.news-carousel .news-card {
flex: 0 0 calc((100% - 40px) / 3); scroll-snap-align: start;
}
/* sin salto ni sombra al pasar el mouse: solo el borde */
.news-card:hover { border-color: rgba(122, 205, 232, .4); }
.news-card .thumb { aspect-ratio: 3/2; overflow: hidden; background: var(--navy-2); }
.news-card .thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s ease; }
/* sin zoom de foto al pasar el mouse */
.news-card .nbody { padding: 22px 24px 24px; display: flex; flex-direction: column; flex: 1; }
.news-card .ndate { font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--cyan); }
.news-card h3 { color: #fff; font-size: 17px; line-height: 1.28; margin: 12px 0 0; }
.news-card .nmore { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 20px; font-size: 13.5px; font-weight: 700; color: var(--cyan); }
.news-card .nmore .arr { transition: transform .18s ease; }
.news-card:hover .nmore .arr { transform: translateX(4px); }

.news-carousel-head { display: flex; justify-content: flex-end; gap: 10px; margin-bottom: 16px; }
.news-nav {
width: 44px; height: 44px; border-radius: 50%; flex: none;
border: 1px solid rgba(255, 255, 255, .25); background: rgba(255, 255, 255, .06); color: #fff;
display: flex; align-items: center; justify-content: center; cursor: pointer;
transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.news-nav:hover { background: rgba(255, 255, 255, .14); border-color: var(--cyan); color: var(--cyan); }
.news-nav:disabled { opacity: .35; cursor: default; }
.news-nav:disabled:hover { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .25); color: #fff; }
.news-nav svg { width: 20px; height: 20px; display: block; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

@media (max-width: 920px) {
.newsgrid { grid-template-columns: repeat(2, 1fr); }
.news-carousel .news-card { flex: 0 0 calc((100% - 20px) / 2); }
}
@media (max-width: 560px) {
.newsgrid { grid-template-columns: 1fr; }
.news-carousel .news-card { flex: 0 0 85%; }
}

/* ============================================================
8. BLOQUES DE DATOS Y ESTADÍSTICAS (KPIs, Numwalls)
============================================================ */
.kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.kpi { padding: 30px 26px; border-left: 1px solid var(--rule); }
.kpi:first-child { border-left: 0; }
.kpi .num { font-size: clamp(28px, 2.8vw, 40px); font-weight: 800; letter-spacing: -.02em; color: var(--blue); font-variant-numeric: tabular-nums; line-height: 1; }
.kpi .lab { margin-top: 12px; font-size: 14px; color: var(--muted); line-height: 1.35; }
.section--navy .kpis { border-color: rgba(255, 255, 255, .14); }
.section--navy .kpi { border-color: rgba(255, 255, 255, .14); }
.section--navy .kpi .num { color: var(--cyan); }
.section--navy .kpi .lab { color: #AEB7C2; }
.kpi-src { margin-top: 16px; font-size: 13px; line-height: 1.5; color: var(--muted); max-width: 900px; }
.kpi-src b { color: var(--ink); font-weight: 700; }
.section--navy .kpi-src { color: #AEB7C2; }
.section--navy .kpi-src b { color: #fff; }
.kpi .num .u { font-size: .5em; font-weight: 700; color: var(--muted); letter-spacing: 0; }
.section--navy .kpi .num .u { color: #AEB7C2; }
.kpi .src { margin-top: 10px; font-size: 11.5px; line-height: 1.4; color: var(--soporte); letter-spacing: .01em; }
.section--navy .kpi .src { color: #8995A4; }

/* Numwall Clásico (Layout A) */
.layoutC-panel { background: var(--navy); border-radius: 20px; padding: clamp(6px, 1vw, 10px); margin-top: clamp(40px, 5vw, 56px); overflow: hidden; }
.numwall {
margin-top: clamp(34px, 4vw, 50px); display: grid; grid-template-columns: repeat(3, 1fr);
border-top: 1px solid rgba(255, 255, 255, .16); border-left: 1px solid rgba(255, 255, 255, .16);
}
.layoutC-panel .numwall { margin-top: 0; }
.numwall .nw-cell { border-right: 1px solid rgba(255, 255, 255, .16); border-bottom: 1px solid rgba(255, 255, 255, .16); padding: clamp(26px, 2.6vw, 36px); }
.numwall .nw-icon { width: 20px; height: 20px; color: var(--cyan); margin-bottom: 12px; }
.numwall .nw-icon svg { width: 100%; height: 100%; display: block; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.numwall .kicker { font-size: 13px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; color: var(--cyan); }
.numwall .big { margin-top: 20px; font-size: clamp(36px, 4vw, 56px); font-weight: 800; color: #fff; letter-spacing: -.03em; line-height: .98; font-variant-numeric: tabular-nums; }
.numwall .big .u { display: block; margin-top: 10px; font-size: .34em; font-weight: 700; color: var(--cyan); letter-spacing: 0; line-height: 1.15; }
.numwall .claim { margin-top: 18px; font-size: 17px; font-weight: 800; color: #fff; line-height: 1.32; letter-spacing: -.01em; }
.numwall .sub { margin-top: 10px; font-size: 14.5px; line-height: 1.5; color: #C3CBD4; }
.numwall .src { margin-top: 14px; font-size: 13px; color: #8995A4; }

/* Variante Palabras */
.numwall--words { grid-template-columns: repeat(4, 1fr); }
.numwall--words .big { margin-top: 16px; font-size: clamp(22px, 2.4vw, 32px); letter-spacing: -.01em; line-height: 1.05; text-transform: uppercase; }
.numwall--words .sub { margin-top: 14px; max-width: 30ch; }
@media(max-width: 900px) {
.numwall { grid-template-columns: 1fr 1fr; }
.numwall--words { grid-template-columns: repeat(2, 1fr); }
}
@media(max-width: 620px) {
.numwall { grid-template-columns: 1fr; }
.numwall--words { grid-template-columns: 1fr; }
}

/* Numwall Bento (Layout B) */
.pqwall-b { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: clamp(34px, 4vw, 50px); }
.pqb-cell { background: rgba(255, 255, 255, .045); border: 1px solid rgba(255, 255, 255, .14); border-radius: 16px; padding: 24px 26px; }
.pqb-cell.hero { grid-column: span 2; }
.pqb-cell .kicker { font-size: 12.5px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; color: var(--cyan); }
.pqb-cell .big { margin-top: 14px; font-size: clamp(24px, 2.4vw, 34px); font-weight: 800; color: #fff; letter-spacing: -.02em; line-height: 1.08; }
.pqb-cell.hero .big { font-size: clamp(30px, 3.2vw, 44px); }
.pqb-cell .big .u { display: block; margin-top: 6px; font-size: .4em; font-weight: 700; color: var(--cyan); }
.pqb-cell .claim { margin-top: 10px; font-size: 14.5px; font-weight: 700; color: #fff; line-height: 1.32; }
.pqb-cell .sub { margin-top: 8px; font-size: 13px; line-height: 1.5; color: #AEB7C2; }
.pqb-cell .src { margin-top: 10px; font-size: 11.5px; color: #7C8896; }
@media(max-width: 820px) { .pqwall-b { grid-template-columns: 1fr 1fr; } .pqb-cell.hero { grid-column: span 2; } }
@media(max-width: 560px) { .pqwall-b { grid-template-columns: 1fr; } .pqb-cell.hero { grid-column: span 1; } }

/* Numwall Filas Editoriales (Layout C) */
.pqrows { margin-top: clamp(34px, 4vw, 50px); border-top: 1px solid rgba(255, 255, 255, .14); }
.pqrow { display: grid; grid-template-columns: 40px 190px 1fr; gap: 24px; padding: 26px 2px; border-bottom: 1px solid rgba(255, 255, 255, .14); align-items: start; }
.pqrow .picon { width: 30px; height: 30px; color: var(--cyan); }
.pqrow .picon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.pqrow .stat .kicker { font-size: 11.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--cyan); }
.pqrow .stat .big { margin-top: 8px; font-size: clamp(19px, 1.9vw, 25px); font-weight: 800; color: #fff; line-height: 1.18; }
.pqrow .stat .big .u { display: block; margin-top: 4px; font-size: .5em; font-weight: 600; color: #AEB7C2; }
.pqrow .body .claim { font-size: 16px; font-weight: 700; color: #fff; line-height: 1.32; }
.pqrow .body .sub { margin-top: 8px; font-size: 14px; line-height: 1.55; color: #C3CBD4; }
.pqrow .body .src { margin-top: 8px; font-size: 12.5px; color: #7C8896; }
@media(max-width: 760px) { .pqrow { grid-template-columns: 36px 1fr; row-gap: 10px; } .pqrow .body { grid-column: 1 / -1; } }

/* Franja Cifras del Sector (.figrow en Cards) */
.figrow { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 14px; margin: 18px 0 4px; padding-top: 16px; border-top: 1px solid var(--rule); }
.figrow .fig .fv { font-size: clamp(18px, 1.7vw, 22px); font-weight: 800; color: var(--blue); letter-spacing: -.02em; line-height: 1.05; font-variant-numeric: tabular-nums; }
.figrow .fig .fl { margin-top: 6px; font-size: 12px; line-height: 1.35; color: var(--muted); }
.figrow .fig .fs { margin-top: 6px; font-size: 10.5px; line-height: 1.3; color: var(--soporte); letter-spacing: .01em; }
.section--navy .figrow { border-color: rgba(255, 255, 255, .14); }
.section--navy .figrow .fig .fv { color: var(--cyan); }
.section--navy .figrow .fig .fl { color: #AEB7C2; }
.section--navy .figrow .fig .fs { color: #8995A4; }
@media (max-width: 520px) { .figrow { grid-template-columns: 1fr; gap: 12px; } }

/* ============================================================
9. FLUJOS, PASOS Y RUTAS
============================================================ */
.steps { display: grid; gap: 0; margin-top: clamp(40px, 5vw, 56px); }
.step { display: grid; grid-template-columns: 96px 1fr; gap: 30px; padding: 32px 0; border-top: 1px solid var(--rule); align-items: start; }
.step:last-child { border-bottom: 1px solid var(--rule); }
.step .sidx { font-size: clamp(32px, 3vw, 44px); font-weight: 800; color: var(--cyan); letter-spacing: -.02em; line-height: 1; font-variant-numeric: tabular-nums; }
.step h3 { margin-bottom: 10px; }
.step p { color: var(--muted); font-size: 16px; max-width: 64ch; }
.section--navy .step { border-color: rgba(255, 255, 255, .14); }
@media(max-width: 640px) { .step { grid-template-columns: 64px 1fr; gap: 18px; } }

/* Steps Across (Horizontales) */
.steps-across { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(24px, 3vw, 48px); }
.step-a { border-top: 1px solid var(--rule); padding-top: 26px; }
.step-a .sidx { font-size: clamp(36px, 3.4vw, 52px); font-weight: 800; color: var(--cyan); letter-spacing: -.02em; line-height: 1; font-variant-numeric: tabular-nums; }
.step-a h3 { margin: 18px 0 10px; }
.step-a p { color: var(--muted); font-size: 16px; max-width: 38ch; }
@media (max-width: 920px) {
.steps-across { grid-template-columns: 1fr; gap: 0; }
.step-a { padding: 26px 0; }
.step-a:last-child { border-bottom: 1px solid var(--rule); padding-bottom: 26px; }
}

/* Steps4 (Variante a 4 columnas) */
.steps4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(24px, 3vw, 36px); margin-top: clamp(40px, 5vw, 56px); }
.step4 { border-top: 1px solid var(--rule); padding-top: 24px; }
.step4 .sidx { font-size: clamp(28px, 2.4vw, 38px); font-weight: 800; color: var(--cyan); letter-spacing: -.02em; line-height: 1; font-variant-numeric: tabular-nums; }
.step4-label { margin: 16px 0 10px; font-weight: 800; letter-spacing: -.01em; font-size: clamp(20px, 1.9vw, 24px); color: var(--navy); }
.step4 p { color: var(--muted); font-size: 15px; line-height: 1.5; max-width: 32ch; }
@media(max-width: 900px) { .steps4 { grid-template-columns: repeat(2, 1fr); } }
@media(max-width: 540px) { .steps4 { grid-template-columns: 1fr; } }

/* Ruta conectada con línea (.route) */
.route { position: relative; margin-top: clamp(40px, 5vw, 56px); }
.route-line { position: absolute; top: 29px; left: 0; right: 0; height: 2px; background: rgba(0, 58, 112, .14); z-index: 0; }
.route-track { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(20px, 3vw, 32px); position: relative; }
.route-dot {
width: 60px; height: 60px; border-radius: 50%; background: var(--navy); border: 2px solid var(--cyan);
display: flex; align-items: center; justify-content: center; font-weight: 800; color: var(--cyan);
font-size: 21px; letter-spacing: -.02em; position: relative; z-index: 2; font-variant-numeric: tabular-nums;
box-shadow: 0 8px 16px -10px rgba(18, 32, 49, .4);
}
.route-node .step4-label { margin-top: 20px; }
.route-node p { color: var(--muted); font-size: 15px; line-height: 1.5; max-width: 32ch; margin-top: 8px; }
@media(max-width: 820px) {
.route-line { display: none; }
.route-track { grid-template-columns: 1fr; gap: 0; }
.route-node { position: relative; padding: 0 0 30px 80px; border-left: 2px solid var(--rule); margin-left: 30px; }
.route-node:last-child { padding-bottom: 0; }
.route-dot { position: absolute; left: -30px; top: 0; }
}

/* Meta por etapa */
.step-meta { display: flex; flex-wrap: wrap; gap: 12px 32px; margin-top: 18px; }
.step-meta .sm { font-size: 14px; line-height: 1.4; color: var(--ink); max-width: 34ch; }
.step-meta .sm b { display: block; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--blue); margin-bottom: 4px; }
.section--navy .step-meta .sm { color: #C4CCD6; }
.section--navy .step-meta .sm b { color: var(--cyan); }

/* ============================================================
10. LAYOUTS ESPECÍFICOS (Por qué ahora, Split, Funciones, etc.)
============================================================ /
/ Por qué Ahora - Layout A (Clásico Numeral Agua) */
.ahora-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 56px; margin-top: clamp(24px, 3vw, 36px); }
.ahora-cell { position: relative; padding: clamp(28px, 3vw, 34px) clamp(28px, 3vw, 34px) clamp(28px, 3vw, 34px) 0; overflow: hidden; }
.ahora-cell:not(:nth-last-child(-n+2)) { border-bottom: 1px solid var(--rule); }
.ah-ghost { position: absolute; top: 6px; right: 6px; font-size: clamp(78px, 8vw, 110px); font-weight: 800; line-height: .8; color: #E9EEF4; letter-spacing: -.04em; z-index: 0; font-variant-numeric: tabular-nums; }
.ah-body { position: relative; z-index: 1; }
.ah-head { display: flex; align-items: center; gap: 12px; margin-bottom: 16px; }
.ah-icon { width: 30px; height: 30px; color: var(--blue); flex: none; }
.ah-icon svg { width: 100%; height: 100%; display: block; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.ah-tag { font-size: 12px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; color: var(--blue); }
.ah-date { font-size: 14px; color: var(--muted); margin-bottom: 9px; }
.ahora-cell h3 { margin-bottom: 12px; }
.ahora-cell p { font-size: 15.5px; line-height: 1.6; color: var(--muted); max-width: 44ch; }
@media (max-width: 760px) {
.ahora-grid { grid-template-columns: 1fr; gap: 0; }
.ahora-cell, .ahora-cell:not(:nth-last-child(-n+2)) { padding: 26px 0; border-bottom: 1px solid var(--rule); }
.ahora-cell:last-child { border-bottom: 0; }
.ah-ghost { font-size: 72px; }
}

/* Por qué Ahora - Layout B (Círculos Sólidos) */
.ahoraB-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 40px 44px; margin-top: clamp(28px, 3.5vw, 40px); }
.ahoraB-icon { width: 52px; height: 52px; border-radius: 50%; background: var(--blue); display: flex; align-items: center; justify-content: center; color: #fff; margin-bottom: 18px; }
.ahoraB-icon svg { width: 24px; height: 24px; display: block; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ahoraB-tag { font-size: 12px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--blue); margin-bottom: 8px; }
.ahoraB-card h3 { margin-bottom: 10px; }
.ahoraB-card p { font-size: 15px; color: var(--muted); line-height: 1.55; max-width: 44ch; }
@media(max-width: 760px) { .ahoraB-grid { grid-template-columns: 1fr; gap: 32px; } }

/* Por qué Ahora - Layout C (Línea de tiempo horizontal) */
.ahoraC-track { position: relative; margin-top: clamp(30px, 4vw, 44px); }
.ahoraC-line { position: absolute; top: 29px; left: 0; right: 0; height: 2px; background: rgba(0, 58, 112, .14); z-index: 0; }
.ahoraC-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; position: relative; }
.ahoraC-dot { width: 60px; height: 60px; border-radius: 50%; background: var(--white); border: 2px solid var(--blue); display: flex; align-items: center; justify-content: center; color: var(--blue); position: relative; z-index: 2; }
.ahoraC-dot svg { width: 26px; height: 26px; display: block; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.ahoraC-tag { margin-top: 18px; font-size: 11.5px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--blue); }
.ahoraC-item h3 { margin-top: 8px; font-size: 16.5px; }
.ahoraC-item p { margin-top: 8px; font-size: 13.5px; color: var(--muted); line-height: 1.5; }
@media(max-width: 820px) {
.ahoraC-line { display: none; }
.ahoraC-grid { grid-template-columns: 1fr; gap: 0; }
.ahoraC-item { position: relative; padding: 0 0 28px 80px; border-left: 2px solid var(--rule); margin-left: 29px; }
.ahoraC-item:last-child { padding-bottom: 0; }
.ahoraC-dot { position: absolute; left: -31px; top: 0; }
}

/* Por qué Ahora - Layout D (Paneles Navy) */
.ahoraD-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin-top: clamp(24px, 3vw, 36px); }
.ahoraD-card { position: relative; background: var(--navy); border-radius: 16px; padding: 28px 26px; overflow: hidden; color: #fff; }
.ahoraD-card::before { content: ""; position: absolute; inset: 0; opacity: .55; background-image: radial-gradient(rgba(122, 205, 232, .14) 1.4px, transparent 1.4px); background-size: 24px 24px; mask-image: linear-gradient(150deg, #000, transparent 72%); }
.ahoraD-body { position: relative; z-index: 1; }
.ahoraD-icon { width: 28px; height: 28px; color: var(--cyan); margin-bottom: 14px; }
.ahoraD-icon svg { width: 100%; height: 100%; display: block; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.ahoraD-tag { font-size: 11.5px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--cyan); margin-bottom: 10px; }
.ahoraD-card h3 { color: #fff; margin-bottom: 10px; }
.ahoraD-card p { font-size: 14.5px; color: #C4CCD6; line-height: 1.55; }
@media(max-width: 760px) { .ahoraD-grid { grid-template-columns: 1fr; } }

/* Split (La encrucijada) */
.split { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.path {
position: relative; border-radius: 20px; padding: clamp(28px, 3vw, 40px); overflow: hidden;
transition: transform .2s ease, box-shadow .2s ease; border: 1px solid var(--rule);
}
.path:hover { transform: translateY(-5px); box-shadow: var(--shadow); }
.path--intl { background: var(--bg); }
.path--inst { background: var(--navy); color: #fff; border-color: var(--navy); }
.path--inst .eyebrow { color: var(--cyan); }
.path h3 { font-size: clamp(21px, 2vw, 26px); margin: 14px 0 12px; }
.path--inst h3 { color: #fff; }
.path p { color: var(--muted); font-size: 16px; max-width: 42ch; }
.path--inst p { color: #C4CCD6; }
.path--inst .btn-ghost { color: #fff; border-color: rgba(255, 255, 255, .28); }
.path--inst .btn-ghost:hover { border-color: var(--cyan); color: var(--cyan); }
.path ul { list-style: none; margin: 24px 0 30px; }
.path li { padding: 11px 0; border-top: 1px solid var(--rule); font-size: 15px; font-weight: 600; display: flex; align-items: center; gap: 12px; }
.path--inst li { border-color: rgba(255, 255, 255, .14); }
.path li::before { content: ""; width: 16px; height: 8px; border-left: 2px solid var(--cyan); border-bottom: 2px solid var(--cyan); transform: rotate(-45deg); flex: none; margin-bottom: 3px; }
@media (max-width: 920px) { .split { grid-template-columns: 1fr; } }

/* Argumento & Pitch */
.argument { display: grid; grid-template-columns: 5fr 6fr; gap: clamp(40px, 6vw, 96px); align-items: start; }
.argument .sec-head { margin-bottom: 0; }
.arg-item { display: grid; grid-template-columns: 56px 1fr; gap: 22px; padding: 26px 0; border-top: 1px solid var(--rule); }
.arg-item:last-child { border-bottom: 1px solid var(--rule); }
.arg-item .idx { font-size: 14px; font-weight: 800; color: var(--soporte); letter-spacing: .06em; font-variant-numeric: tabular-nums; padding-top: 4px; }
.arg-item h3 { margin-bottom: 8px; }
.arg-item p { color: var(--muted); font-size: 16px; line-height: 1.5; }

.pitch { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(40px, 5vw, 72px); align-items: center; }
.pitch .sec-head { margin-bottom: 0; }
.pitch .path li { align-items: flex-start; }
.pitch .path li::before { margin-top: 7px; }
.pitch .path:hover { transform: none; box-shadow: none; }
.pitch .path ul { margin-bottom: 0; }
@media (max-width: 920px) { .argument, .pitch { grid-template-columns: 1fr; gap: 36px; } }

/* Promesa & Funciones */
.promise { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); margin-top: 8px; }
.promise .pi { padding: 26px 26px 26px 0; border-left: 1px solid var(--rule); padding-left: 26px; }
.promise .pi:first-child { border-left: 0; padding-left: 0; }
.promise .pi .pt { display: flex; align-items: center; gap: 11px; font-size: 16px; font-weight: 800; color: var(--navy); letter-spacing: -.01em; }
.promise .pi .pt::before { content: ""; width: 16px; height: 8px; border-left: 2px solid var(--cyan); border-bottom: 2px solid var(--cyan); transform: rotate(-45deg); flex: none; margin-bottom: 3px; }
.promise .pi p { margin-top: 11px; font-size: 15px; line-height: 1.5; color: var(--muted); }
.section--navy .promise { border-color: rgba(255, 255, 255, .14); }
.section--navy .promise .pi { border-color: rgba(255, 255, 255, .14); }
.section--navy .promise .pi .pt { color: #fff; }
.section--navy .promise .pi p { color: #C4CCD6; }
@media (max-width: 920px) {
.promise { grid-template-columns: 1fr; }
.promise .pi { border-left: 0; padding-left: 0; border-top: 1px solid var(--rule); padding-top: 22px; padding-bottom: 22px; }
.promise .pi:first-child { border-top: 0; padding-top: 0; }
.section--navy .promise .pi { border-color: rgba(255, 255, 255, .14); }
}

.funcs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; border-top: 1px solid var(--rule); }
.funcs .fn { padding: 24px 24px 24px 0; border-left: 1px solid var(--rule); padding-left: 24px; }
.funcs .fn:first-child { border-left: 0; padding-left: 0; }
.funcs .fn h3 { font-size: clamp(19px, 1.6vw, 22px); letter-spacing: -.02em; margin-bottom: 10px; }
.funcs .fn p { font-size: 15px; line-height: 1.45; color: var(--muted); }
.section--navy .funcs { border-color: rgba(255, 255, 255, .14); }
.section--navy .funcs .fn { border-color: rgba(255, 255, 255, .14); }
@media(max-width: 900px) {
.funcs { grid-template-columns: 1fr 1fr; }
.funcs .fn:nth-child(2n+1) { border-left: 0; padding-left: 0; }
.funcs .fn:nth-child(n+3) { border-top: 1px solid var(--rule); }
.section--navy .funcs .fn:nth-child(n+3) { border-top-color: rgba(255, 255, 255, .14); }
}
@media(max-width: 600px) {
.funcs { grid-template-columns: 1fr; }
.funcs .fn { border-left: 0; padding-left: 0; padding-right: 0; border-top: 1px solid var(--rule); }
.funcs .fn:first-child { border-top: 0; padding-top: 0; }
.section--navy .funcs .fn { border-top-color: rgba(255, 255, 255, .14); }
}

/* Oportunidad Destacada (.opp-feature) */
.opp-feature {
display: flex; justify-content: space-between; align-items: center; gap: 20px 34px; flex-wrap: wrap;
background: var(--white); border: 1px solid var(--rule); border-radius: 16px;
padding: clamp(24px, 3vw, 34px) clamp(26px, 3vw, 40px);
transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.opp-feature:hover { transform: translateY(-2px); box-shadow: var(--shadow); border-color: var(--blue); }
.opp-feature .of-badge { display: inline-block; font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--blue); background: #E8EEF5; padding: 5px 11px; border-radius: 999px; margin-bottom: 12px; }
.opp-feature h3 { margin-bottom: 8px; }
.opp-feature p { color: var(--muted); font-size: 15.5px; line-height: 1.5; max-width: 60ch; }
.opp-feature .of-cta { display: inline-flex; align-items: center; gap: 10px; white-space: nowrap; font-size: 15px; font-weight: 800; color: var(--blue); }
.opp-feature:hover .of-cta .arr { transform: translateX(4px); }

/* Equipo (.people) */
.people { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.people.people-2 { grid-template-columns: repeat(2, 1fr); max-width: 760px; }
.people.people-3 { grid-template-columns: repeat(3, 1fr); max-width: 1000px; }
.person { background: var(--white); border: 1px solid var(--rule); border-radius: 16px; overflow: hidden; display: flex; flex-direction: column; }
.person .portrait { aspect-ratio: 4/5; background: var(--bg); overflow: hidden; }
.person .portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.person .pbody { padding: 22px 22px 26px; display: flex; flex-direction: column; gap: 0; }
.person .p-role { font-size: 11px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; color: var(--blue); margin-bottom: 9px; }
.person h3 { font-size: clamp(17px, 1.5vw, 20px); }
.person p { margin-top: 12px; font-size: 14px; line-height: 1.55; color: var(--muted); }
.people-group-label { font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--blue); display: flex; align-items: center; gap: 12px; margin: 8px 0 22px; }
.people-group-label::before { content: ""; width: 30px; height: 4px; background: var(--cyan); flex: none; }
@media (max-width: 920px) { .people { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .people, .people.people-2 { grid-template-columns: 1fr; } }

/* ============================================================
11. ACORDEONES, LISTAS Y FAQ
============================================================ /
/ Índice de Sectores */
.sector-index { border-top: 1px solid rgba(255, 255, 255, .14); }
.si-item { border-bottom: 1px solid rgba(255, 255, 255, .14); }
.si-row {
display: grid; grid-template-columns: 56px 250px 1fr auto; gap: 26px; align-items: baseline;
padding: 24px 0; width: 100%; text-align: left;
}
.si-row .si-n { font-size: 13px; font-weight: 800; color: var(--cyan); font-variant-numeric: tabular-nums; letter-spacing: .05em; }
.si-row .si-name { font-size: clamp(19px, 1.8vw, 24px); font-weight: 800; color: #fff; letter-spacing: -.01em; transition: color .15s ease; }
.si-row .si-desc { font-size: 15px; color: #AEB7C2; line-height: 1.45; }
.si-tail { margin-top: 36px; display: flex; gap: 28px; align-items: center; flex-wrap: wrap; }
.si-tail .si-tail-copy { margin: 0; flex: 1 1 420px; font-size: 16px; line-height: 1.6; color: #AEB7C2; }
@media (max-width: 920px) {
.si-row { grid-template-columns: 44px 1fr; row-gap: 6px; }
.si-row .si-n { grid-row: 1; grid-column: 1; }
.si-row .si-name { grid-row: 1; grid-column: 2; }
.si-row .si-desc { grid-row: 2; grid-column: 2; }
}

/* Mapa ZEE */
.zee { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.zee-item { display: flex; gap: 18px; padding: 22px 0; border-top: 1px solid rgba(255, 255, 255, .14); align-items: baseline; }
.zee-item .z-n { font-size: 13px; font-weight: 800; color: var(--cyan); font-variant-numeric: tabular-nums; letter-spacing: .05em; }
.zee-item .z-name { font-size: 19px; font-weight: 800; color: #fff; }
.zee-item .z-desc { font-size: 15px; color: #AEB7C2; margin-top: 4px; }
@media (max-width: 920px) { .zee { grid-template-columns: 1fr; } }

/* FAQ Estándar */
.faq-wrap { max-width: none; margin: 0; }
.faq-list { margin-top: clamp(28px, 3.5vw, 42px); border-top: 1px solid var(--rule); }
.faq-item { border-bottom: 1px solid var(--rule); }
.faq-item summary { list-style: none; cursor: pointer; display: flex; align-items: flex-start; gap: 22px; padding: 23px 4px; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; border-radius: 6px; }
.faq-q { flex: 1; font-size: clamp(16.5px, 1.5vw, 19px); font-weight: 700; letter-spacing: -.01em; color: var(--navy); line-height: 1.42; transition: color .15s ease; }
.faq-item summary:hover .faq-q { color: var(--blue); }
.faq-ico { flex: none; width: 22px; height: 22px; position: relative; margin-top: 4px; }
.faq-ico::before, .faq-ico::after { content: ""; position: absolute; background: var(--blue); border-radius: 2px; }
.faq-ico::before { left: 0; top: 10px; width: 22px; height: 2px; }
.faq-ico::after { left: 10px; top: 0; width: 2px; height: 22px; transition: opacity .2s ease, transform .2s ease; }
.faq-item[open] .faq-ico::after { opacity: 0; transform: scaleY(0); }
.faq-a { padding: 0 48px 26px 4px; }
.faq-a p { font-size: 16.5px; line-height: 1.62; color: var(--ink); margin: 0 0 13px; max-width: 72ch; }
.faq-a p:last-child { margin-bottom: 0; }
.faq-src { margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--rule); font-size: 14.5px; line-height: 1.5; color: var(--muted); max-width: 72ch; }
.faq-src b { font-weight: 700; color: var(--blue); }
.faq-more { margin-top: 32px; font-size: 16px; color: var(--muted); }
.faq-more a { color: var(--blue); font-weight: 700; text-decoration: none; }
.faq-more a:hover { text-decoration: underline; }
@media(max-width: 560px) { .faq-a { padding-right: 0; } }

/* FAQ Grid (Variante B) */
.faq-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 40px; margin-top: clamp(28px, 3.5vw, 42px); }
.faq-grid .faq-item { grid-column: span 1; }
@media(max-width: 820px) { .faq-grid { grid-template-columns: 1fr; } }

/* FAQ Numbered (Variante C) */
.faq-numbered { margin-top: clamp(28px, 3.5vw, 42px); border-top: 1px solid var(--rule); counter-reset: faqnum; }
.faq-numbered .faq-item { position: relative; padding-left: 52px; border-bottom: 1px solid var(--rule); }
.faq-numbered .faq-item::before {
counter-increment: faqnum; content: counter(faqnum, decimal-leading-zero);
position: absolute; left: 0; top: 23px; font-size: 12px; font-weight: 800; color: var(--cyan);
font-variant-numeric: tabular-nums; letter-spacing: .04em;
}
.faq-numbered .faq-item[open] { border-left: 2px solid var(--cyan); }
.faq-numbered .faq-item summary { padding-left: 0; }

/* ============================================================
12. FORMULARIOS, MODALES Y CONTACTO
============================================================ /
/ Contacto Base */
.contact { display: grid; grid-template-columns: 1.1fr .9fr; gap: 48px; align-items: start; }
@media (max-width: 920px) { .contact { grid-template-columns: 1fr; gap: 32px; } }

.field { margin-bottom: 18px; }
.field label { display: block; font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); margin-bottom: 8px; }
.field input, .field select, .field textarea {
width: 100%; font: inherit; font-size: 16px; padding: 14px 16px; border: 1px solid var(--rule); border-radius: 4px;
background: var(--white); color: var(--ink); transition: border-color .15s ease;
}
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--blue); }
.field .req { color: var(--blue); font-weight: 800; margin-left: 3px; }
.field .hint { display: block; font-size: 13px; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--muted); margin-top: 5px; }
.field.bad input, .field.bad select, .field.bad textarea { border-color: #C0392B; }
.field .err { display: none; font-size: 13px; color: #C0392B; margin-top: 6px; line-height: 1.45; }
.field .err a { color: #C0392B; font-weight: 700; }
.field.bad .err { display: block; }

.contact-info dt { font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--blue); margin-top: 24px; }
.contact-info dd { font-size: 17px; color: var(--ink); margin-top: 6px; }

/* Grupos y Utilidades de Formularios */
.fgroup { font-size: 12px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; color: var(--blue); margin: 34px 0 16px; padding-bottom: 9px; border-bottom: 1px solid var(--rule); display: flex; align-items: center; gap: 9px; }
.fgroup:first-child { margin-top: 0; }
.fgroup::before { content: ""; width: 14px; height: 3px; background: var(--cyan); flex: none; }
.fgroup .opt { font-size: 12px; font-weight: 600; letter-spacing: .02em; text-transform: none; color: var(--soporte); margin-left: auto; }
.frow { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
@media (max-width: 720px) { .frow { grid-template-columns: 1fr; } }

/* Adjuntos (.drop) */
.drop { border: 1px dashed #B4BEC9; border-radius: 12px; padding: 18px 20px; background: var(--bg); margin-bottom: 14px; }
.drop label { display: block; font-size: 14.5px; font-weight: 700; color: var(--navy); margin-bottom: 4px; }
.drop .dd { font-size: 13.5px; color: var(--muted); margin-bottom: 11px; }
.drop input[type=file] { width: 100%; font: inherit; font-size: 14px; color: var(--muted); }
.drop input[type=file]::file-selector-button { font: inherit; font-size: 13.5px; font-weight: 700; color: var(--navy); background: var(--white); border: 1px solid #CFD6DE; border-radius: 7px; padding: 8px 15px; margin-right: 12px; cursor: pointer; }
.drop input[type=file]::file-selector-button:hover { border-color: var(--blue); color: var(--blue); }
.drop .fname { margin-top: 8px; font-size: 13.5px; font-weight: 700; color: var(--navy); }
.fnote { font-size: 13px; color: var(--soporte); margin-bottom: 18px; }

/* Casillas de verificación /
.fcheck { display: flex; gap: 12px; align-items: flex-start; margin-bottom: 16px; }
.fchecks { display: grid; grid-template-columns: 1fr 1fr; gap: 0 26px; margin-top: 12px; }
.fchecks .fcheck { margin-bottom: 13px; }
.fchecks .fcheck label { display: inline; font-size: 14.5px; font-weight: 400; letter-spacing: 0; text-transform: none; color: var(--ink); margin-bottom: 0; }
.fcheck input[type=checkbox] { width: 19px; height: 19px; flex: none; margin-top: 2px; accent-color: var(--blue); }
.fcheck label { font-size: 15px; line-height: 1.5; color: var(--ink); }
.fcheck:has([required]) > label::after, .field:has([required]) > label::after { content: ""; color: var(--blue); font-weight: 800; margin-left: 3px; }
.fcheck.bad label { color: #C0392B; }
.fcheck.bad input[type=checkbox] { outline: 2px solid #C0392B; outline-offset: 2px; }
.fsummary { font-size: 15px; font-weight: 700; color: #C0392B; margin: 4px 0 6px; }
@media (max-width: 720px) { .fchecks { grid-template-columns: 1fr; } }

/* Formularios de Triaje / Expedientes */
.pghead { padding: clamp(38px, 5vw, 58px) 0 30px; border-bottom: 1px solid var(--rule); }
.pghead .code { font-size: 12px; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; color: var(--blue); display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.pghead .code::before { content: ""; width: 22px; height: 3px; background: var(--cyan); flex: none; }
.pghead h1 { font-size: clamp(26px, 3.4vw, 34px); color: var(--navy); font-weight: 800; letter-spacing: -.015em; line-height: 1.18; }
.pghead p { font-size: 16.5px; color: var(--muted); margin-top: 12px; max-width: 66ch; }

.track { display: flex; border-top: 1px solid var(--rule); margin-top: 28px; }
.tstep { flex: 1; padding: 13px 18px 13px 0; border-top: 3px solid transparent; margin-top: -1px; }
.tstep.on { border-top-color: var(--blue); }
.tstep .tn { font-size: 11.5px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--soporte); }
.tstep.on .tn { color: var(--blue); }
.tstep .tt { font-size: 14.5px; color: var(--muted); margin-top: 3px; }
.tstep.on .tt { color: var(--navy); font-weight: 700; }

.doors { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; padding: 26px 0 0; }
.door { border: 1px solid var(--rule); border-radius: 12px; padding: 26px; background: var(--white); cursor: pointer; text-align: left; font: inherit; transition: border-color .15s ease, box-shadow .15s ease; display: flex; flex-direction: column; }
.door:hover { border-color: var(--blue); box-shadow: 0 8px 24px -14px rgba(18, 32, 49, .4); }
.door.sel { border-color: var(--blue); border-width: 2px; padding: 25px; }
.door .dk { font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: #fff; background: var(--blue); display: inline-flex; align-items: center; gap: 6px; align-self: flex-start; padding: 4px 10px 4px 8px; border-radius: 4px; margin-bottom: 13px; }
.door .di { width: 14px; height: 14px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; }
.door.b .dk { background: var(--muted); }
.door h3 { font-size: 18px; color: var(--navy); font-weight: 800; margin-bottom: 8px; line-height: 1.25; }
.door p { font-size: 14.5px; color: var(--muted); margin-bottom: 14px; }
.door .meta { font-size: 13.5px; color: var(--muted); padding-top: 12px; margin-top: auto; border-top: 1px solid var(--rule); }
.door .meta b { color: var(--navy); }

.triage { padding-top: 30px; }
.triage h2 { font-size: 20px; color: var(--navy); font-weight: 800; }
.triage > p { font-size: 15.5px; color: var(--muted); max-width: 62ch; margin-top: 6px; }
.dhide { display: none !important; }

.intake { display: none; padding: 38px 0 0; }
.intake.on { display: block; }
.intake .ih { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-bottom: 16px; border-bottom: 1px solid var(--rule); margin-bottom: 26px; }
.intake .ih h2 { font-size: 22px; color: var(--navy); font-weight: 800; outline: none; }
.intake .chg { font: inherit; font-size: 14px; font-weight: 700; color: var(--blue); background: none; border: 0; cursor: pointer; }
.intake .chg:hover { text-decoration: underline; }
.icols { display: grid; grid-template-columns: 1fr 310px; gap: 44px; align-items: start; }
.icols[hidden] { display: none; }
.icols > form { grid-column: 1; }
.icols > .iside { grid-column: 2; position: sticky; top: 88px; }

.abox { background: var(--bg); border-radius: 12px; padding: 22px 24px; margin-bottom: 16px; }
.abox h4 { font-size: 12.5px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; color: var(--blue); margin-bottom: 12px; display: flex; align-items: center; gap: 8px; }
.abox h4::before { content: ""; width: 13px; height: 3px; background: var(--cyan); flex: none; }
.abox ul { list-style: none; }
.abox li { position: relative; padding-left: 18px; font-size: 14px; margin-bottom: 8px; line-height: 1.45; color: var(--ink); }
.abox li::before { content: ""; position: absolute; left: 0; top: 8px; width: 5px; height: 5px; background: var(--cyan); border-radius: 50%; }
.abox p { font-size: 14px; color: var(--muted); }
.abox .big { font-size: 15.5px; color: var(--navy); font-weight: 800; margin-bottom: 4px; }
.abox a { font-size: 14px; font-weight: 700; color: var(--blue); text-decoration: none; }
.abox a:hover { text-decoration: underline; }

.isent { max-width: 62ch; padding: 8px 0 12px; scroll-margin-top: 110px; }
.isent h2 { font-size: 26px; color: var(--navy); font-weight: 800; margin: 2px 0 12px; outline: none; }
.isent p { font-size: 16px; line-height: 1.6; color: var(--ink); margin-bottom: 12px; }
.isent .btn { margin-top: 10px; }

.nextstep { margin-top: 26px; padding: 24px 26px; background: var(--wash, #F5F6F8); border: 1px solid var(--rule); border-radius: 14px; }
.nextstep h4 { font-size: 17px; color: var(--navy); font-weight: 800; margin-bottom: 8px; }
.nextstep p { font-size: 15px; line-height: 1.55; color: var(--muted); margin-bottom: 14px; }
.nextstep a { font-size: 15px; font-weight: 700; color: var(--blue); text-decoration: none; }
.nextstep a:hover { text-decoration: underline; }

@media (max-width: 900px) {
.doors { grid-template-columns: 1fr; }
.icols { grid-template-columns: 1fr; gap: 26px; }
.icols > form, .icols > .iside { grid-column: 1; }
.icols > .iside { position: static; }
.track { flex-wrap: wrap; }
.tstep { flex: 1 1 100%; }
}

/* Modales e Interfaces Overlays /
/ Fichas de Oportunidades */
.modal-backdrop { position: fixed; inset: 0; z-index: 200; background: rgba(18, 32, 49, .62); backdrop-filter: blur(3px); display: none; align-items: flex-start; justify-content: center; overflow-y: auto; padding: clamp(16px, 5vh, 64px) 16px; }
.modal-backdrop.open { display: flex; }
.modal { background: var(--white); border-radius: 20px; max-width: 760px; width: 100%; box-shadow: 0 40px 90px -30px rgba(0, 0, 0, .5); overflow: hidden; }
.modal .m-photo { aspect-ratio: 1500/830; overflow: hidden; background: var(--bg); }
.modal .m-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.modal .m-head { position: relative; background: var(--navy); color: #fff; padding: 30px 32px; }
.modal .m-badge { display: inline-flex; font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--cyan); margin-bottom: 12px; }
.modal .m-head h3 { color: #fff; font-size: clamp(21px, 2.4vw, 27px); line-height: 1.15; max-width: 90%; margin: 0; }
.modal .m-type { margin-top: 10px; font-size: 14px; color: #C4CCD6; font-weight: 600; }
.modal .m-close { position: absolute; top: 20px; right: 22px; width: 34px; height: 34px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .3); background: transparent; color: #fff; font-size: 20px; line-height: 1; cursor: pointer; transition: background .15s ease; }
.modal .m-close:hover { background: rgba(255, 255, 255, .15); }
.modal .m-body { padding: 28px 32px 8px; }
.modal .m-desc { font-size: 15.5px; line-height: 1.6; color: var(--ink); margin-bottom: 22px; }
.modal .m-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 28px; }
.modal .m-field { border-top: 1px solid var(--rule); padding-top: 12px; }
.modal .m-field .mk { font-size: 10.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--blue); margin-bottom: 5px; }
.modal .m-field .mv { font-size: 14px; line-height: 1.5; color: var(--ink); }
.modal .m-field.full { grid-column: 1 / -1; }
.modal .m-foot { padding: 22px 32px 30px; display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.modal .m-foot .mnote { font-size: 12.5px; color: var(--soporte); max-width: 32ch; }
@media (max-width: 560px) { .modal .m-grid { grid-template-columns: 1fr; } }

/* Formularios de Contacto (Pop-up main.css) */
.modal-overlay {
position: fixed; inset: 0; z-index: 200; background: rgba(18, 32, 49, .72);
display: flex; align-items: flex-start; justify-content: center;
padding: 48px 20px; overflow-y: auto;
}
.modal-overlay[hidden] { display: none; }
.modal-panel {
position: relative; background: var(--white); border-radius: 20px; max-width: 760px; width: 100%;
padding: clamp(28px, 4vw, 44px); box-shadow: 0 30px 80px -20px rgba(0, 0, 0, .55);
}
.modal-close {
position: absolute; top: 18px; right: 18px; width: 36px; height: 36px; border-radius: 50%;
border: 1px solid var(--rule); background: var(--white); color: var(--muted);
display: flex; align-items: center; justify-content: center; cursor: pointer; transition: border-color .15s ease, color .15s ease;
}
.modal-close:hover { border-color: var(--blue); color: var(--blue); }
.modal-close svg { width: 18px; height: 18px; display: block; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.icform { max-width: 760px; }
.icform .row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 20px; }
.icform .field { display: flex; flex-direction: column; gap: 8px; margin-bottom: 0; }
.icform .field.full { grid-column: 1/-1; }
.icform label { font-size: 13px; font-weight: 700; color: var(--navy); }
.icform label .req { color: var(--blue); }
.icform input, .icform select, .icform textarea {
font: inherit; font-size: 15px; padding: 12px 14px; border: 1px solid var(--rule); border-radius: 10px;
background: var(--white); color: var(--ink); transition: border-color .15s ease; width: 100%;
}
.icform input:focus, .icform select:focus, .icform textarea:focus { outline: none; border-color: var(--blue); }
.icform textarea { resize: vertical; min-height: 120px; font-family: inherit; }
.icform select { appearance: none; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235A6470' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>"); background-repeat: no-repeat; background-position: right 14px center; background-size: 16px; padding-right: 40px; }
.icform .hint { font-size: 12.5px; color: var(--soporte); }
.icform .consent { display: flex; align-items: flex-start; gap: 10px; margin-top: 4px; margin-bottom: 26px; }
.icform .consent input { width: auto; margin-top: 3px; flex: none; }
.icform .consent label { font-size: 13.5px; color: var(--muted); font-weight: 400; }
.icform .fgroup { font-size: 11.5px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--blue); margin: 36px 0 16px; padding-top: 0; border-top: 0; }
.icform .fgroup:first-of-type { margin-top: 0; }
.icform .fgroup .opt { font-weight: 600; color: var(--soporte); text-transform: none; letter-spacing: 0; margin-left: 6px; }
.icform .fnote { font-size: 12.5px; color: var(--soporte); line-height: 1.5; margin: -6px 0 16px; }
.icform input[type="file"] { padding: 9px 10px; font-size: 13.5px; }
@media(max-width: 640px) { .icform .row { grid-template-columns: 1fr; } }

/* ============================================================
13. ESTILOS EDITORIALES / ARTÍCULOS (.art3, .art4)
============================================================ /
/ V4 Light (Página de nota) */
.art4 { background: #fff; color: var(--ink); }
.art4 .a4-wrap { max-width: 900px; margin: 0 auto; padding: 0 24px; }
.art4 .a4-top { padding: clamp(44px, 6vw, 80px) 0 0; }
.art4 .a4-idx { display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--rule); padding-bottom: 16px; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.art4 .a4-idx .cy { color: var(--blue); }
.art4 .a4-eyebrow { margin: clamp(30px, 5vw, 52px) 0 22px; display: inline-flex; align-items: center; gap: 14px; font-size: 13px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; color: var(--blue); }
.art4 .a4-eyebrow::before { content: ""; width: 42px; height: 4px; background: var(--cyan); }
.art4 h1 { font-weight: 800; letter-spacing: -.022em; line-height: 1.02; font-size: clamp(34px, 5vw, 64px); color: var(--navy); }
.art4 h1 .cy { color: var(--blue); }
.art4 .a4-lede { margin-top: 30px; max-width: 56ch; font-size: clamp(18px, 1.7vw, 22px); line-height: 1.5; color: var(--muted); }
.art4 .a4-meta { margin-top: 26px; display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 13.5px; font-weight: 600; color: var(--soporte); }
.art4 .a4-meta .dot { opacity: .6; }
.art4 figure { margin: clamp(36px, 5vw, 60px) 0 0; }
.art4 figure img { width: 100%; border-radius: 14px; border: 1px solid var(--rule); }
.art4 figcaption { margin-top: 12px; font-size: 12.5px; color: var(--soporte); letter-spacing: .02em; }
.art4 .a4-nums { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--rule); border: 1px solid var(--rule); border-radius: 14px; overflow: hidden; margin: clamp(40px, 5vw, 64px) 0; }
.art4 .a4-nums .c { background: var(--bg); padding: 26px 22px; }
.art4 .a4-nums .n { font-size: clamp(24px, 2.7vw, 36px); font-weight: 800; letter-spacing: -.02em; color: var(--blue); line-height: 1; white-space: nowrap; }
.art4 .a4-nums .l { margin-top: 10px; font-size: 12.5px; line-height: 1.4; color: var(--muted); }
.art4 .a4-body { max-width: 660px; margin: 0 auto; font-size: 18.5px; line-height: 1.74; color: #28333d; }
.art4 .a4-body p { margin-bottom: 24px; }
.art4 .a4-body p .lead-in { color: var(--navy); font-weight: 700; }
.art4 .a4-body h2 { color: var(--navy); font-size: clamp(24px, 2.6vw, 32px); line-height: 1.12; font-weight: 800; letter-spacing: -.015em; margin: 40px 0 18px; }
.art4 .a4-quote { margin: clamp(40px, 5vw, 60px) auto; max-width: 820px; text-align: center; }
.art4 .a4-quote p { font-size: clamp(26px, 3.6vw, 42px); line-height: 1.18; font-weight: 800; letter-spacing: -.02em; color: var(--navy); }
.art4 .a4-quote p .cy { color: var(--blue); }
.art4 .a4-quote .who { margin-top: 20px; font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--soporte); }
.art4 .a4-src { max-width: 660px; margin: 36px auto 0; padding-top: 22px; border-top: 1px solid var(--rule); font-size: 14px; color: var(--muted); }
.art4 .a4-src a { color: var(--blue); font-weight: 700; }
.art4 .a4-rel { margin-top: clamp(52px, 7vw, 84px); margin-bottom: clamp(56px, 7vw, 92px); }
.art4 .a4-rel .rh { font-size: 13px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--blue); margin-bottom: 22px; display: flex; align-items: center; gap: 14px; }
.art4 .a4-rel .rh::before { content: ""; width: 34px; height: 3px; background: var(--cyan); }
.art4 .a4-rel-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.art4 .rc { display: block; background: #fff; border: 1px solid var(--rule); border-radius: 14px; overflow: hidden; transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.art4 .rc:hover { transform: translateY(-4px); border-color: var(--blue); box-shadow: var(--shadow); }
.art4 .rc img { width: 100%; aspect-ratio: 3/2; object-fit: cover; }
.art4 .rc .b { padding: 16px 18px 20px; }
.art4 .rc .cat { font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--blue); }
.art4 .rc .t { margin-top: 8px; font-size: 15px; line-height: 1.3; font-weight: 700; color: var(--navy); }
@media(max-width: 720px) { .art4 .a4-nums { grid-template-columns: 1fr 1fr; } .art4 .a4-rel-grid { grid-template-columns: 1fr; } }

/* V3 Dossier Centrado */
.art3 { background: #fff; color: var(--ink); }
.art3 .a3-inner { max-width: 760px; margin: 0 auto; padding: 0 24px; }
.art3 .a3-head { background: var(--navy); color: #fff; padding: clamp(34px, 4vw, 52px) 0 clamp(38px, 5vw, 58px); }
.art3 .a3-crumb { font-size: 12.5px; color: #9fb0c2; letter-spacing: .02em; margin-bottom: 24px; }
.art3 .a3-crumb a { color: #c9d4e0; }
.art3 .a3-crumb a:hover { color: var(--cyan); }
.art3 .a3-crumb .sep { opacity: .4; padding: 0 8px; }
.art3 .a3-cat { display: inline-flex; align-items: center; gap: 12px; font-size: 12px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--cyan); margin-bottom: 20px; }
.art3 .a3-cat::before { content: ""; width: 30px; height: 3px; background: var(--cyan); }
.art3 .a3-head h1 { font-weight: 800; letter-spacing: -.018em; line-height: 1.08; font-size: clamp(30px, 4vw, 50px); color: #fff; margin: 0; }
.art3 .a3-head .a3-sub { margin-top: 20px; font-size: clamp(16.5px, 1.5vw, 19px); line-height: 1.55; color: #c4cdd8; }
.art3 .a3-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--rule); border: 1px solid var(--rule); border-radius: 12px; overflow: hidden; margin: clamp(32px, 4vw, 44px) 0 0; }
.art3 .a3-stats .c { background: #fff; padding: 22px 18px; }
.art3 .a3-stats .n { font-size: clamp(22px, 2.4vw, 30px); font-weight: 800; letter-spacing: -.02em; color: var(--blue); line-height: 1; white-space: nowrap; }
.art3 .a3-stats .l { margin-top: 9px; font-size: 12px; line-height: 1.4; color: var(--muted); }
.art3 .a3-body { padding: clamp(36px, 5vw, 52px) 0 0; }
.art3 figure { margin: 0 0 clamp(28px, 3vw, 36px); }
.art3 figure img { width: 100%; border-radius: 12px; border: 1px solid var(--rule); }
.art3 figcaption { margin-top: 12px; font-size: 13px; color: var(--soporte); }
.art3 .a3-text { font-size: 18px; line-height: 1.72; color: #28333d; }
.art3 .a3-text p { margin-bottom: 22px; }
.art3 .a3-text h2 { font-size: clamp(22px, 2.4vw, 27px); line-height: 1.18; color: var(--navy); font-weight: 800; margin: 40px 0 18px; letter-spacing: -.01em; }
.art3 .a3-text h2::before { content: ""; display: inline-block; width: 22px; height: 3px; background: var(--cyan); vertical-align: middle; margin-right: 12px; margin-bottom: 5px; }
.art3 .a3-callout { margin: 30px 0; padding: 24px 26px; background: var(--bg); border-radius: 12px; font-size: 17px; line-height: 1.55; color: var(--navy); font-weight: 600; }
.art3 .a3-callout .lbl { display: block; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--blue); font-weight: 800; margin-bottom: 10px; }
.art3 .a3-tl { margin: 30px 0; border-left: 2px solid var(--rule); padding-left: 26px; }
.art3 .a3-tl .ph { position: relative; padding: 0 0 26px; }
.art3 .a3-tl .ph:last-child { padding-bottom: 0; }
.art3 .a3-tl .ph::before { content: ""; position: absolute; left: -33px; top: 4px; width: 12px; height: 12px; border-radius: 50%; background: #fff; border: 3px solid var(--cyan); }
.art3 .a3-tl .ph .t { font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--blue); }
.art3 .a3-tl .ph .d { font-size: 16px; color: #28333d; margin-top: 5px; line-height: 1.55; }
.art3 .a3-src { margin-top: 34px; padding-top: 22px; border-top: 1px solid var(--rule); font-size: 14px; color: var(--muted); }
.art3 .a3-src a { color: var(--blue); font-weight: 700; }
.art3 .a3-rel { margin: clamp(48px, 7vw, 72px) 0 clamp(56px, 7vw, 92px); }
.art3 .a3-rel .rh { font-size: 13px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--blue); margin-bottom: 22px; display: flex; align-items: center; gap: 14px; }
.art3 .a3-rel .rh::before { content: ""; width: 34px; height: 3px; background: var(--cyan); }
.art3 .a3-rel-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.art3 .rc { display: block; background: #fff; border: 1px solid var(--rule); border-radius: 12px; overflow: hidden; transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease; }
.art3 .rc:hover { transform: translateY(-4px); border-color: var(--blue); box-shadow: var(--shadow); }
.art3 .rc img { width: 100%; aspect-ratio: 3/2; object-fit: cover; }
.art3 .rc .b { padding: 15px 16px 18px; }
.art3 .rc .cat { font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--blue); }
.art3 .rc .t { margin-top: 7px; font-size: 14.5px; line-height: 1.3; font-weight: 700; color: var(--navy); }
@media(max-width: 720px) { .art3 .a3-stats { grid-template-columns: 1fr 1fr; } .art3 .a3-rel-grid { grid-template-columns: 1fr; } }

/* ============================================================
14. FOOTER Y NEWSLETTER
============================================================ */
.newsletter { background: var(--bg); border-top: 1px solid var(--rule); }
.newsletter .wrap { padding-top: clamp(44px, 5vw, 64px); padding-bottom: clamp(44px, 5vw, 64px); }
.nl-inner { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(28px, 4vw, 64px); align-items: center; }
.nl-copy .eyebrow { margin-bottom: 16px; }
.nl-copy h2 { font-weight: 800; letter-spacing: -.01em; line-height: 1.1; font-size: clamp(23px, 2.4vw, 32px); color: var(--navy); }
.nl-copy p { margin-top: 12px; font-size: 15px; line-height: 1.55; color: var(--muted); max-width: 46ch; }
.nl-form { display: flex; gap: 12px; flex-wrap: wrap; }
.nl-form input { flex: 1; min-width: 200px; font: inherit; font-size: 16px; padding: 15px 16px; border: 1px solid var(--rule); border-radius: 4px; background: var(--white); color: var(--ink); transition: border-color .15s ease; }
.nl-form input:focus { outline: none; border-color: var(--blue); }
.nl-note { margin-top: 12px; font-size: 12.5px; color: var(--soporte); }
@media (max-width: 760px) { .nl-inner { grid-template-columns: 1fr; } }

.footer { background: var(--navy); color: #fff; padding: 72px 0 40px; }
.footer-top { display: grid; grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 48px; border-bottom: 1px solid rgba(255, 255, 255, .12); }
.footer .brand img { height: 46px; width: auto; margin-bottom: 18px; }
@media(max-width:620px){ .footer .brand img { height: 40px; } }
.footer .blurb { color: #9AA6B4; font-size: 15px; max-width: 34ch; }
.footer h4, .footer .fh { font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--cyan); margin-bottom: 18px; }
.footer ul { list-style: none; }
.footer li { margin-bottom: 12px; }
.footer li a { color: #C4CCD6; font-size: 15px; transition: color .15s ease; }
.footer li a:hover { color: #fff; }
.footer-rrss { display: flex; flex-direction: row; width: 100%; justify-content: space-between; }
.footer-rrss .footer-rrss-icon i { font-size: 28px; }
.footer-bot { display: flex; justify-content: space-between; align-items: center; padding-top: 28px; color: #7C8896; font-size: 14px; flex-wrap: wrap; gap: 14px; }
@media (max-width: 900px) { .footer-top { grid-template-columns: 1fr 1fr; } }
@media (max-width: 640px) { .footer-top { grid-template-columns: 1fr; gap: 28px; } }

/* Newsletter integrado en Footer (.foot-nl) */
.foot-nl { display: flex; justify-content: space-between; align-items: center; gap: 20px 48px; flex-wrap: wrap; padding-bottom: 40px; margin-bottom: 44px; border-bottom: 1px solid rgba(255, 255, 255, .12); }
.foot-nl .fn-copy { max-width: 46ch; }
.foot-nl .fn-copy strong { display: block; font-size: 16px; font-weight: 800; color: #fff; letter-spacing: -.005em; margin-bottom: 5px; }
.foot-nl .fn-copy span { font-size: 14px; line-height: 1.5; color: #9AA6B4; }
.foot-nl form { display: flex; gap: 10px; flex-wrap: wrap; }
.foot-nl input { font: inherit; font-size: 15px; padding: 12px 15px; min-width: 240px; border: 1px solid rgba(255, 255, 255, .20); border-radius: 10px; background: rgba(255, 255, 255, .05); color: #fff; transition: border-color .15s ease; }
.foot-nl input::placeholder { color: #8995A4; }
.foot-nl input:focus { outline: none; border-color: var(--cyan); }
.foot-nl form .btn { padding: 12px 20px; }
@media (max-width: 640px) { .foot-nl form, .foot-nl input { width: 100%; } }

/* Divisor Decorativo */
.rule-accent { width: 54px; height: 5px; background: var(--cyan); border: 0; margin: 0 0 28px; }

/* ============================================================
15. UTILIDADES Y ANIMACIONES
============================================================ */
.reveal { opacity: 0; transform: translateY(22px); transition: opacity .7s cubic-bezier(.2, .7, .2, 1), transform .7s cubic-bezier(.2, .7, .2, 1); }
.reveal.in { opacity: 1; transform: none; }

/* Aparición escalonada: cada hijo directo de .stagger entra al verse en pantalla.
   Usa animation con fill backwards (no transition) para no pisar el transform de hover de las tarjetas. */
@keyframes rise { from { opacity: 0; transform: translateY(22px); } }
.stagger > :not(.in) { opacity: 0; }
.stagger > .in { animation: rise .7s cubic-bezier(.2, .7, .2, 1) backwards; animation-delay: calc(var(--i, 0) * 80ms); }

/* Entrada del hero */
.hero-inner > * { animation: rise .8s cubic-bezier(.2, .7, .2, 1) backwards; }
.hero-inner > :nth-child(2) { animation-delay: .08s; }
.hero-inner > :nth-child(3) { animation-delay: .16s; }
.hero-inner > :nth-child(n+4) { animation-delay: .24s; }

/* FAQ: mientras se cierra, el ícono vuelve a "+" sin esperar al final */
.faq-item.closing .faq-ico::after { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
.reveal { opacity: 1; transform: none; transition: none; }
.stagger > :not(.in) { opacity: 1; }
.stagger > .in, .hero-inner > * { animation: none; }
}
/* Sin JavaScript nada queda oculto */
@media (scripting: none) {
.reveal { opacity: 1; transform: none; }
.stagger > :not(.in) { opacity: 1; }
}

/* ============================================================
16. SALA DE PRENSA
============================================================ */
/* Sala de prensa — encabezado compacto */
.press-top{padding-top:clamp(96px,11vw,132px);}
.press-head{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;flex-wrap:wrap;padding-bottom:clamp(28px,3.4vw,40px);margin-bottom:clamp(28px,3.4vw,40px);border-bottom:1px solid rgba(255,255,255,.12);}
.press-head-copy{max-width:640px;}
.press-head h1{color:#fff;font-size:clamp(30px,3.6vw,42px);line-height:1.08;letter-spacing:-.02em;margin:12px 0 0;}
.press-head p{color:#C4CCD6;font-size:16px;line-height:1.6;margin:14px 0 0;max-width:56ch;}
.press-row{margin-top:clamp(44px,5.5vw,64px);margin-bottom:22px;}
@media (max-width:640px){.press-head .btn{align-self:flex-start;}}

  /* Sala de prensa — historia destacada */
.lead-story{display:grid;grid-template-columns:1.15fr 1fr;gap:0;background:#16273b;border:1px solid rgba(255,255,255,.1);border-radius:18px;overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease;}
.lead-story:hover{border-color:rgba(122,205,232,.4);}
.lead-story .lead-thumb{overflow:hidden;background:var(--navy-2);min-height:340px;}
.lead-story .lead-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
/* sin zoom de foto al pasar el mouse */
.lead-story .lead-body{padding:clamp(28px,3.4vw,48px);display:flex;flex-direction:column;justify-content:center;}
.lead-story .lead-tag{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);margin-bottom:16px;}
.lead-story .ndate{font-size:12px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#AEB7C2;}
.lead-story h2{color:#fff;font-size:clamp(24px,2.6vw,32px);line-height:1.18;margin:14px 0 16px;}
.lead-story p{color:#C4CCD6;font-size:16px;line-height:1.62;margin:0 0 26px;}
.lead-story .nmore{display:inline-flex;align-items:center;gap:9px;font-size:14px;font-weight:700;color:var(--cyan);}
.lead-story .nmore .arr{transition:transform .18s ease;}
.lead-story:hover .nmore .arr{transform:translateX(5px);}
@media (max-width:820px){.lead-story{grid-template-columns:1fr;}.lead-story .lead-thumb{min-height:220px;aspect-ratio:3/2;}}

  /* Barra de filtros por sector */
.news-filter{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:clamp(24px,3vw,32px);}
.news-filter button{appearance:none;cursor:pointer;font-family:inherit;font-size:13.5px;font-weight:700;letter-spacing:.01em;color:#C4CCD6;background:transparent;border:1px solid rgba(255,255,255,.2);border-radius:999px;padding:9px 18px;transition:all .18s ease;}
.news-filter button:hover{border-color:var(--cyan);color:#fff;}
.news-filter button.on{background:var(--cyan);border-color:var(--cyan);color:var(--navy);}

  /* Etiqueta de sector en la tarjeta */
.news-card .ncat{display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:#8fd4ea;background:rgba(122,205,232,.12);border-radius:6px;padding:4px 9px;margin-bottom:12px;align-self:flex-start;}
.news-card.hide{display:none;}

.news-empty{color:#AEB7C2;font-size:15px;padding:20px 0;display:none;}

/* ============================================================
16. CIIP
============================================================ */
/* ---------- grilla 2x2 con etiqueta + numero fantasma: "Nuestras funciones" ---------- */
.funcC-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:64px;row-gap:0;margin-top:8px;}
.funcC-item{position:relative;padding:32px 0;border-bottom:1px solid var(--rule);}
.funcC-top{display:flex;align-items:center;gap:9px;margin-bottom:14px;position:relative;z-index:1;}
.funcC-icon{width:19px;height:19px;flex:none;fill:none;stroke:var(--blue);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;}
.funcC-tag{font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--blue);}
.funcC-n{position:absolute;top:-8px;right:0;font-size:clamp(56px,6.5vw,92px);font-weight:800;
  color:var(--rule);letter-spacing:-.03em;line-height:1;font-variant-numeric:tabular-nums;
  pointer-events:none;user-select:none;}
.funcC-item h3{position:relative;z-index:1;margin-bottom:10px;max-width:46ch;}
.funcC-item p{position:relative;z-index:1;color:var(--muted);font-size:15.5px;max-width:46ch;}
@media(max-width:760px){.funcC-grid{grid-template-columns:1fr;column-gap:0;}
  .funcC-n{font-size:56px;}}
.leyes-grid .card{display:flex;flex-direction:column;justify-content:center;gap:10px;min-height:118px;padding:20px 20px;white-space:normal;}
.leyes-grid .card h3{margin:0;font-size:15.5px;line-height:1.3;}
.leyes-grid .card .more{margin:0;}
@media(max-width:980px){.leyes-grid{grid-template-columns:1fr 1fr !important;}}
@media(max-width:640px){.leyes-grid{grid-template-columns:1fr !important;}}
.leyes-cta{background:var(--cyan);border-radius:12px;padding:24px 32px;display:flex;align-items:center;justify-content:space-between;gap:28px;}
.leyes-cta-text{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;flex:1 1 auto;min-width:0;}
.leyes-cta-text h3{margin:0;color:var(--navy);font-size:19px;flex:none;white-space:nowrap;}
.leyes-cta-text p{margin:0;font-size:15.5px;color:var(--navy);opacity:.72;}
.leyes-cta-btn{flex:none;background:var(--navy);color:#fff;padding:14px 24px;font-size:15px;}
.leyes-cta-btn:hover{background:var(--navy-2);transform:translateY(-2px);box-shadow:var(--shadow);}
@media(max-width:760px){.leyes-cta{flex-wrap:wrap;}}
.grid .reveal .more{
  display:inline-flex;align-items:center;gap:8px;margin-top:22px;font-size:14px;font-weight:700;color:var(--blue);
}
.grid .reveal .more .arr{transition:transform .18s ease;}
.grid .reveal .more:hover .arr{transform:translateX(4px);}

/* ============================================================
17. COMO INVERTIR
============================================================ */
/* ---------- lista numerada con acento lateral: "Antes de comenzar" ---------- */
.faq-numbered{margin-top:clamp(28px,3.5vw,42px);border-top:1px solid var(--rule);counter-reset:faqnum;}
/* el borde lateral existe siempre (transparente) para que el contenido no salte al abrir;
   el número se separa del borde y se centra con la primera línea del título */
.faq-numbered .faq-item{position:relative;padding-left:88px;border-left:2px solid transparent;border-bottom:1px solid var(--rule);}
.faq-numbered .faq-item::before{
  counter-increment:faqnum;content:counter(faqnum,decimal-leading-zero);
  position:absolute;left:20px;top:calc(23px + (clamp(16.5px,1.5vw,19px)*1.42 - 26px)/2);
  font-size:26px;font-weight:800;color:var(--cyan);
  font-variant-numeric:tabular-nums;letter-spacing:-.01em;line-height:1;
}
.faq-numbered .faq-item[open]{border-left-color:var(--cyan);}
.faq-numbered .faq-item summary{padding-left:0;}
.faq-numbered .faq-item .faq-a{padding-left:0;}
@media(max-width:600px){.faq-numbered .faq-item{padding-left:0;}
  .faq-numbered .faq-item::before{position:static;display:block;margin-bottom:6px;}}

/* ---------- subtemas dentro de un punto ---------- */
.inv-sub{margin-top:22px;padding-top:18px;border-top:1px solid var(--rule);}
.inv-sub h3{font-size:15px;font-weight:800;color:var(--navy);margin-bottom:6px;}

/* ---------- fichas "ente responsable / base legal" ---------- */
.inv-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;
  margin-top:22px;padding-top:18px;border-top:1px solid var(--rule);}
.inv-fact-label{font-size:11.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);margin-bottom:8px;}
.inv-fact p{font-size:14.5px;color:var(--muted);line-height:1.5;margin:0;}

/* ---------- bloque "por qué importa" ---------- */
.why{border-left:3px solid var(--cyan);padding:6px 0 6px 24px;margin-top:8px;}
.why .k{font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--blue);}
.section--navy .why .k{color:var(--cyan);}
.why p{margin-top:8px;font-size:17px;color:var(--muted);}
.section--navy .why p{color:#C4CCD6;}
.sec-head .criterios{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:28px;padding-top:22px;border-top:1px solid var(--rule);}
.sec-head .criterios .inv-fact p{color:var(--ink);font-size:15px;}
@media(max-width:760px){.sec-head .criterios{grid-template-columns:1fr;}}
.ruta-why{margin-top:40px;max-width:820px;}
.section--navy .inv-facts{border-top-color:rgba(255,255,255,.14);}
.section--navy .inv-fact-label{color:var(--cyan);}
.section--navy .inv-fact p{color:#C4CCD6;}

/* ---------- franja de cierre "siguiente paso" ---------- */
.cta-band{border-top:1px solid var(--rule);}
.cta-band-inner{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:32px 64px;align-items:center;}
.cta-band .eyebrow{margin-bottom:16px;}
.cta-band .title{font-size:clamp(26px,3vw,40px);margin-bottom:12px;}
.cta-band .lede{font-size:clamp(16px,1.3vw,18px);}
.cta-band-actions{display:flex;flex-direction:column;align-items:flex-start;gap:14px;}
.cta-mail{color:var(--blue);font-weight:700;text-decoration:none;border-bottom:1px solid rgba(0,58,112,.3);}
.cta-mail:hover{border-bottom-color:var(--blue);}
@media(max-width:820px){.cta-band-inner{grid-template-columns:1fr;}.cta-band-actions{align-items:stretch;}.cta-mail{align-self:flex-start;}}

/* ---------- acrónimos de entes: subrayado + tooltip con el nombre completo ---------- */
.ente{position:relative;text-decoration:underline;text-decoration-style:dotted;
  text-decoration-color:var(--soporte);text-underline-offset:3px;cursor:help;}
.ente::after{
  content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 9px);
  transform:translateX(-50%) translateY(4px);background:var(--navy);color:#fff;
  font-size:12.5px;line-height:1.4;font-weight:600;padding:8px 12px;border-radius:8px;
  white-space:normal;width:max-content;max-width:240px;box-shadow:var(--shadow);
  opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .15s ease,transform .15s ease;z-index:30;text-align:left;
}
.ente::before{
  content:"";position:absolute;left:50%;bottom:100%;transform:translateX(-50%) translateY(4px);
  border:6px solid transparent;border-top-color:var(--navy);margin-bottom:-3px;
  opacity:0;visibility:hidden;transition:opacity .15s ease,transform .15s ease;z-index:30;
}
.ente:hover::after,.ente:focus::after,.ente:hover::before,.ente:focus::before{
  opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);
}

/* ---------- La Ruta CIIP: lista de 6 etapas sobre navy ---------- */
.ruta{margin-top:clamp(36px,4vw,56px);}
.ruta-cols,.ruta-row{display:grid;grid-template-columns:150px minmax(0,1.2fr) minmax(0,1fr);gap:24px 40px;}
.ruta-cols{padding-bottom:14px;border-bottom:2px solid rgba(255,255,255,.6);font-size:11.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#AEB7C2;}
.ruta-cols span:nth-child(2){padding-left:36px;}
.ruta-cols span:nth-child(3){color:var(--cyan);}
.ruta-list{list-style:none;margin:0;padding:0;}
.ruta-row{position:relative;padding:34px 0;border-bottom:1px solid rgba(255,255,255,.14);}
.ruta-num{font-size:clamp(48px,5vw,72px);font-weight:300;letter-spacing:-.04em;line-height:1;color:#fff;font-variant-numeric:tabular-nums;}
.ruta-body{position:relative;padding-left:36px;}
.ruta-body::before{content:"";position:absolute;left:0;top:-35px;bottom:-35px;width:1px;background:rgba(255,255,255,.22);}
.ruta-body::after{content:"";position:absolute;left:-5.5px;top:10px;width:12px;height:12px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 4px var(--navy);}
.ruta-row:first-child .ruta-body::before{top:10px;}
.ruta-row:last-child .ruta-body::before{bottom:auto;height:calc(100% + 35px);}
.ruta-row:last-child .ruta-body::after{background:#fff;}
.ruta-body h3{margin:0 0 10px;font-size:23px;letter-spacing:-.01em;color:#fff;line-height:1.2;}
.ruta-body p{margin:0;color:#C4CCD6;font-size:16.5px;line-height:1.55;max-width:52ch;}
.ruta-res{align-self:start;padding-top:6px;border-left:1px solid rgba(255,255,255,.14);padding-left:28px;margin-left:-20px;}
.ruta-res small{display:none;font-size:11.5px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--cyan);margin-bottom:8px;}
.ruta-res p{margin:0;font-size:17px;font-weight:700;color:var(--cyan);line-height:1.4;}
.ruta-after{display:flex;flex-wrap:wrap;align-items:center;gap:20px 40px;margin-top:38px;}
.ruta-after p{margin:0;color:#AEB7C2;font-size:15px;line-height:1.5;max-width:60ch;}
@media(max-width:820px){
  .ruta-cols{display:none;}
  .ruta-row{grid-template-columns:1fr;gap:12px;padding:28px 0;}
  .ruta-num{font-size:44px;}
  .ruta-body{padding-left:0;}
  .ruta-body::before,.ruta-body::after{display:none;}
  .ruta-res{border-left:0;padding-left:0;margin-left:0;border-top:1px dashed rgba(255,255,255,.22);padding-top:14px;}
  .ruta-res small{display:block;}
}

/* ---------- posición estratégica: mapa + estadísticas ---------- */
.pos-grid{margin-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,4vw,48px);align-items:center;}
.pos-map{position:relative;border-radius:14px;overflow:hidden;}
.pos-map img{width:100%;display:block;}
.pos-map-svg{position:absolute;inset:0;width:100%;height:100%;}
.pos-ring{fill:none;stroke:rgba(122,205,232,.22);stroke-width:1.5;stroke-dasharray:5 6;}
.pos-route{stroke:rgba(122,205,232,.55);stroke-width:1.6;stroke-dasharray:2 5;stroke-linecap:round;}
.pos-arrow{fill:rgba(122,205,232,.85);}
.pos-dot{fill:#fff;stroke:var(--navy);stroke-width:2;}
.pos-map-label{position:absolute;font-size:12px;transform:translateY(-50%);white-space:nowrap;pointer-events:none;}
.pos-label-dest{color:#fff;font-weight:700;}
.pos-label-sea{color:#8FB4CC;font-weight:600;font-style:italic;}
.pos-label-country{color:#fff;font-weight:800;text-transform:uppercase;letter-spacing:.04em;font-size:13px;transform:translate(-50%,-50%);}
.pos-stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.12);border-radius:12px;overflow:hidden;margin-bottom:24px;}
.pos-stat{background:var(--navy-2);padding:20px 18px;}
.pos-n{font-size:clamp(21px,2.1vw,27px);font-weight:800;color:var(--cyan);letter-spacing:-.01em;line-height:1.1;}
.pos-l{margin-top:8px;font-size:12.5px;line-height:1.4;color:#C4CCD6;}
.pos-side p{color:#C4CCD6;font-size:15.5px;line-height:1.6;}
.pos-cta{margin-top:16px;font-weight:700;color:#fff;}
@media(max-width:860px){.pos-grid{grid-template-columns:1fr;}.pos-map{order:2;}.pos-side{order:1;}}

/* ---------- modalidades de inversión (como-invertir): lista editorial ---------- */
.modalidades-lista{margin-top:clamp(36px,4vw,52px)}
.modalidades-lista .row{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:18px 56px;padding:34px 0;border-top:1px solid #D9DEE4}
.modalidades-lista .row:last-child{border-bottom:1px solid #D9DEE4}
.modalidades-lista .num{font-size:13px;font-weight:800;letter-spacing:.08em;color:var(--blue);font-variant-numeric:tabular-nums}
.modalidades-lista h3{margin:10px 0 0;font-size:clamp(20px,1.9vw,25px);line-height:1.2;color:var(--navy);max-width:16ch}
.modalidades-lista .desc{font-size:16.5px;line-height:1.6;color:var(--ink);margin:0}
.modalidades-lista .base{margin:16px 0 0;font-size:14.5px;line-height:1.5;color:var(--muted)}
.modalidades-lista .base b{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--navy);margin-right:10px}
@media(max-width:720px){.modalidades-lista .row{grid-template-columns:1fr;gap:12px;padding:26px 0}.modalidades-lista h3{max-width:none}}

/* ---------- grilla de 7 sectores: 4 arriba, 3 abajo a todo el ancho ---------- */
.grid-4.sectores-7{grid-template-columns:repeat(12,1fr);}
.sectores-7>.pcard{grid-column:span 3;}
.sectores-7>.pcard:nth-child(n+5){grid-column:span 4;}
@media(max-width:900px){.sectores-7>.pcard,.sectores-7>.pcard:nth-child(n+5){grid-column:span 6;}
  .sectores-7>.pcard:nth-child(7){grid-column:span 12;}}
@media(max-width:620px){.sectores-7>.pcard,.sectores-7>.pcard:nth-child(n+5),.sectores-7>.pcard:nth-child(7){grid-column:span 12;}}
.sectores-7>.pcard:nth-child(n+5)::before{padding-top:75%;}
/* "Para quién" a todo el ancho, como encabezado de los tres criterios */
.sec-head .opp-facts--single .opp-fact{width:100%;}
.sec-head .opp-facts--single .opp-fact .lede{max-width:72ch;}

/* ---------- selector de sectores (inicio) ---------- */
.stabs{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);gap:0 48px;align-items:stretch}
.stab-list{border-top:1px solid var(--rule)}
.stab{display:flex;align-items:center;gap:16px;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--rule);padding:18px 8px 18px 0;cursor:pointer;font:800 clamp(17px,1.4vw,19px)/1.2 Helvetica,Arial,sans-serif;color:var(--navy);letter-spacing:-.01em;transition:color .15s}
.stab small{font:800 12px/1 Helvetica,Arial,sans-serif;color:var(--muted);letter-spacing:.06em;width:26px;flex:none}
.stab .bar{margin-left:auto;width:0;height:3px;background:var(--cyan);transition:width .2s;flex:none}
.stab:hover{color:var(--blue)} .stab:hover .bar{width:12px}
.stab:focus-visible{outline:2px solid var(--blue);outline-offset:-2px;border-radius:4px}
.stab.is-on{color:var(--blue)} .stab.is-on .bar{width:28px}
.stab-panes{display:grid}
.stab-pane{position:relative;grid-area:1/1;border-radius:16px;overflow:hidden;background:var(--navy);color:#fff;display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);visibility:hidden;opacity:0;transition:opacity .18s}
.stab-pane.is-on{visibility:visible;opacity:1}
.stab-body{position:relative;z-index:1;padding:34px 36px 32px;display:flex;flex-direction:column;height:100%}
.stab-body .icon{width:30px;height:30px;color:var(--cyan)}
.stab-body .icon svg{width:100%;height:100%;display:block;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.stab-body .ptick{width:28px;height:3px;background:var(--cyan);margin:28px 0 14px}
.stab-body h3{color:#fff;font-size:clamp(24px,2.4vw,32px);font-weight:800;letter-spacing:-.02em;line-height:1.1}
.stab-body p{font-size:16px;line-height:1.5;color:rgba(255,255,255,.92);margin-top:12px;max-width:52ch}
.stab-facts{display:grid;grid-template-columns:1fr;gap:16px;margin-top:22px;padding-top:18px;border-top:1px solid rgba(255,255,255,.16);margin-bottom:26px}
.stab-facts b{display:block;font:800 11.5px/1 Helvetica,Arial,sans-serif;letter-spacing:.12em;text-transform:uppercase;color:var(--cyan);margin-bottom:7px}
.stab-facts span{font-size:15px;color:#C4CCD6;line-height:1.45}
.stab-body .btn{align-self:flex-start;margin-top:auto}
.stab-fig{position:relative;min-height:100%}
.stab-fig img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.7) contrast(1.1) brightness(.85)}
.stab-fig::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--navy) 0%,rgba(18,32,49,.3) 22%,rgba(18,32,49,0) 55%)}
@media(prefers-reduced-motion:reduce){.stab,.stab .bar,.stab-pane{transition:none}}
@media(max-width:900px){
  .stabs{display:block}
  .stab{padding:15px 4px 15px 0;scroll-margin-top:84px}
  .stab .bar{display:none}
  .stab::after{content:"";width:8px;height:8px;border:solid var(--soporte);border-width:0 2px 2px 0;transform:rotate(45deg);margin-left:auto;margin-right:6px;transition:transform .2s}
  .stab.is-on::after{transform:rotate(-135deg);border-color:var(--blue)}
  .stab-panes{display:contents}
  .stab-pane{display:none;grid-area:auto;grid-template-columns:1fr;border-radius:12px;margin:10px 0 18px}
  .stab-pane.is-on{display:grid;visibility:visible;opacity:1}
  /* foto como franja superior; el nombre ya está en la fila del acordeón */
  .stab-fig{display:block;order:-1;position:relative;height:150px;min-height:0}
  .stab-fig::after{background:linear-gradient(180deg,rgba(18,32,49,0) 40%,var(--navy) 100%)}
  .stab-body{padding:14px 20px 20px;height:auto}
  .stab-body .icon,.stab-body .ptick,.stab-body h3{display:none}
  .stab-body p{margin-top:0;font-size:15.5px}
  .stab-facts{margin-top:16px;padding-top:14px;gap:12px;margin-bottom:18px}
  .stab-body .btn{width:100%;justify-content:center;margin-top:0}
  .stab-list>button.stab:last-of-type{border-bottom:0}
}

/* ---------- "Por qué Venezuela" en móvil: carrusel lateral con encaje ---------- */
.nw-dots{display:none}
@media(max-width:620px){
  .numwall{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:12px;border:0;
    margin-left:calc(-1*var(--pad));margin-right:calc(-1*var(--pad));padding:2px var(--pad) 6px;scrollbar-width:none}
  .numwall::-webkit-scrollbar{display:none}
  .numwall .nw-cell{flex:0 0 82%;scroll-snap-align:start;scroll-snap-stop:always;border:1px solid rgba(255,255,255,.16);border-radius:14px;padding:22px 20px 20px;display:flex;flex-direction:column}
  .numwall .nw-cell:last-child{margin-right:var(--pad)}
  .numwall .big{margin-top:16px}
  .numwall .src{margin-top:auto;padding-top:14px}
  .nw-dots{display:flex;gap:8px;justify-content:center;align-items:center;margin-top:16px}
  .nw-dots button{width:6px;height:6px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.28);transition:width .2s,background .2s}
  .nw-dots button.on{width:18px;border-radius:3px;background:var(--cyan)}
}

/* Avances de inversión en móvil: sin flechas, con puntos de posición */
@media(max-width:620px){
  .news-carousel-head{display:none}
  .news-carousel .nw-dots{margin-top:14px}
}
/* Avances en móvil: la fila sangra al borde derecho para que la siguiente noticia se asome */
@media(max-width:620px){
  .news-carousel .newsgrid{margin-right:calc(-1*var(--pad));padding-right:var(--pad)}
  .news-carousel .news-card{flex:0 0 80%}
}
/* Carruseles en móvil: tarjeta activa centrada, con asomo a ambos lados */
@media(max-width:620px){
  .numwall{padding-left:9vw;padding-right:9vw;scroll-padding:0 9vw}
  .numwall .nw-cell{flex:0 0 82vw;scroll-snap-align:center}
  .numwall .nw-cell:last-child{margin-right:0}
  .news-carousel .newsgrid{margin-left:calc(-1*var(--pad));padding-left:10vw;padding-right:10vw;scroll-padding:0 10vw}
  .news-carousel .news-card{flex:0 0 80vw;scroll-snap-align:center}
}
/* Carruseles en móvil: primera tarjeta alineada con el texto; asomo solo a la derecha */
@media(max-width:620px){
  .numwall,.news-carousel .newsgrid{margin-left:0;padding-left:0;padding-right:0;margin-right:calc(-1*var(--pad));scroll-padding:0}
  .numwall::after,.news-carousel .newsgrid::after{content:"";flex:0 0 var(--pad)}
  .numwall .nw-cell,.news-carousel .news-card{scroll-snap-align:start}
  .numwall .nw-cell{flex:0 0 82%}
  .news-carousel .news-card{flex:0 0 80%}
}

/* Avances: flechas y puntos debajo de la fila */
.news-carousel-foot{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px}
.news-carousel .nw-dots{display:flex;gap:8px;align-items:center;margin:0}
.news-carousel .nw-dots button{width:6px;height:6px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.28);transition:width .2s,background .2s;cursor:pointer}
.news-carousel .nw-dots button.on{width:18px;border-radius:3px;background:var(--cyan)}
.news-carousel-foot .news-nav-group{display:flex;gap:10px;margin-left:auto}
@media(max-width:620px){
  .news-carousel-foot{justify-content:center;margin-top:14px}
  .news-carousel-foot .news-nav-group{display:none}
}

/* Puntos de posición del carrusel sobre fondo claro (El CIIP): visibles y centrados, sin barra de flechas */
.news-carousel > .nw-dots{justify-content:center;margin-top:18px}
.section--white .news-carousel .nw-dots button,
.section--light .news-carousel .nw-dots button{background:rgba(18,32,49,.18)}
.section--white .news-carousel .nw-dots button.on,
.section--light .news-carousel .nw-dots button.on{background:var(--navy)}


/* ---------- Formulario de contacto v3: puertas, condicionales, validación ---------- */
.dq{font-size:clamp(20px,2.2vw,26px);font-weight:800;color:var(--navy);letter-spacing:-.01em;padding-top:4px}
.doors2{grid-template-columns:repeat(2,1fr);max-width:760px;padding-top:18px}
@media(max-width:900px){.doors2{grid-template-columns:1fr}}
.door .meta{font-size:14px}
.door:focus-visible,.btn:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.fsec{padding-top:0;padding-bottom:clamp(40px,5vw,64px);scroll-margin-top:96px}
.fsec [hidden],.triage [hidden]{display:none !important}
.ih{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:34px;margin-bottom:6px;max-width:760px;scroll-margin-top:96px}
.ih h2{font-size:clamp(20px,2.2vw,26px);font-weight:800;color:var(--navy);letter-spacing:-.01em}
.fintro{font-size:15px;color:var(--muted);max-width:66ch;margin:0 0 22px}
.icform > .field.full,.icform .fstep > .field.full,.icform .fstep > fieldset.field,.icform .fstep > .consent{margin-bottom:20px}
.icform .hint{font-size:14px;line-height:1.45;color:var(--muted)}
.icform .fnote{font-size:14px;color:var(--muted)}
.icform .consent label{font-size:14px}
.icform fieldset.field{border:0;padding:0;margin:0 0 20px;min-width:0}
.icform legend{font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--navy);padding:0;margin-bottom:8px}
.icform .chks{display:grid;grid-template-columns:1fr 1fr;grid-auto-flow:column;grid-template-rows:repeat(6,auto);gap:8px 18px;padding:6px 0}
.icform #f-aporta{grid-template-rows:repeat(2,auto)}
.icform #f-capital{grid-template-rows:repeat(3,auto)}
.icform .chk{display:flex;align-items:flex-start;gap:9px;font-size:14.5px;font-weight:400;color:var(--ink);line-height:1.4;text-transform:none;letter-spacing:0}
.icform .chk input{width:17px;height:17px;flex:none;margin-top:2px;accent-color:var(--blue)}
@media(max-width:640px){.icform .chks{grid-template-columns:1fr;grid-auto-flow:row;grid-template-rows:none}}
.icform .field.bad input,.icform .field.bad select,.icform .field.bad textarea{border-color:#C0392B}
.icform .field.bad .chks{outline:1px solid #C0392B;outline-offset:6px;border-radius:6px}
.icform .field .err{display:none;font-size:14px;color:#C0392B;margin-top:6px}
.icform .field.bad .err{display:block}
.icform .consent.bad label{color:#C0392B}
.icform .fsummary{font-size:15px;font-weight:700;color:#C0392B;margin:4px 0 14px}
.icform input[type="file"]::file-selector-button{font:inherit;font-size:13.5px;font-weight:700;color:var(--navy);background:#F1F4F7;border:1px solid var(--rule);border-radius:6px;padding:6px 10px;margin-right:10px;cursor:pointer}
.acuse{max-width:760px;padding:34px 0 10px}
.acuse .code{font-size:12px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--blue);display:flex;align-items:center;gap:10px;margin-bottom:14px}
.acuse .code::before{content:"";width:22px;height:3px;background:var(--cyan)}
.acuse h2{font-size:clamp(22px,2.6vw,30px);font-weight:800;color:var(--navy);letter-spacing:-.015em;margin-bottom:14px}
.acuse p{font-size:16px;color:var(--muted);max-width:62ch;margin-bottom:10px}
.acuse p b{color:var(--navy);font-variant-numeric:tabular-nums}
.ireg{max-width:760px;margin:28px 0 20px;border:1px dashed var(--rule);border-radius:12px;padding:14px 18px;background:#F6F8FA}
.ireg summary{cursor:pointer;font-size:13px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ireg dl{display:grid;grid-template-columns:200px 1fr;gap:8px 16px;margin-top:14px;font-size:14.5px}
.ireg dt{font-weight:700;color:var(--navy)}
.ireg dd{color:var(--ink)}
.ireg .warn{color:#9A4408;font-weight:700}
@media(max-width:640px){.ireg dl{grid-template-columns:1fr}}
/* pasos del formulario de inversión */
.icform .track{list-style:none;margin:0 0 26px;padding:0;display:flex;border-top:1px solid var(--rule)}
.icform .track .tstep{flex:1;padding:12px 14px 12px 0;border-top:3px solid transparent;margin-top:-1px;cursor:default}
.icform .track .tstep.done{border-top-color:var(--cyan);cursor:pointer}
.icform .track .tstep.on{border-top-color:var(--blue)}
.icform .track .tn{display:block;font-size:11.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--soporte)}
.icform .track .tstep.on .tn{color:var(--blue)}
.icform .track .tt{display:block;font-size:14px;color:var(--muted);margin-top:3px}
.icform .track .tstep.on .tt{color:var(--navy);font-weight:700}
.icform .track-m{display:none;font-size:14px;color:var(--muted);margin:0 0 18px}
.icform .track-m b{color:var(--blue);font-variant-numeric:tabular-nums;margin-right:8px}
@media(max-width:700px){.icform .track{display:none}.icform .track-m{display:block}}
.icform .fstep > .fgroup:first-child{margin-top:0}
.icform .fnav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:28px;padding-top:22px;border-top:1px solid var(--rule)}
.icform .fnav .js-next,.icform .fnav [type=submit]{margin-left:auto}
/* borrador guardado en el navegador */
.draft{border:1px solid var(--rule);border-radius:10px;padding:16px 18px;margin:0 0 22px;background:#F6F8FA;max-width:760px}
.draft p{font-size:15px;color:var(--ink);margin:0 0 12px}
.draft p b{color:var(--navy)}
.draft-actions{display:flex;gap:10px;flex-wrap:wrap}
/* antes de empezar */
.before{border:1px solid var(--rule);border-radius:12px;padding:22px 24px 18px;margin:0 0 26px;max-width:760px;background:#F6F8FA}
.before h3{font-size:12px;font-weight:800;letter-spacing:.13em;text-transform:uppercase;color:var(--blue);margin:0 0 10px}
.before p{font-size:15px;color:var(--muted);margin:0 0 10px;line-height:1.5}
.before ol{margin:0 0 14px;padding-left:22px}
.before li{font-size:15px;color:var(--ink);line-height:1.5;margin-bottom:6px}
.before li b{color:var(--navy)}
.linkbtn{font:inherit;font-size:14.5px;font-weight:700;color:var(--blue);background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.linkbtn:hover{color:var(--navy)}
.icform.full .track,.icform.full .track-m{display:none}
.icform.full .fstep .fnav .js-next,.icform.full .fstep .fnav .js-prev{display:none}
.icform.full .fstep:not(:last-child) .fnav{display:none}
.icform.full .fstep{margin-bottom:8px}
/* contacto: mismo tamaño de título en las dos secciones y menos distancia entre ellas */
.triage .dq,.fsec .ih h2{font-size:24px;line-height:1.2}
.fsec .ih{padding-top:6px;margin-bottom:18px}
.icform.full .fstep + .fstep > .fgroup:first-child{margin-top:40px}
/* aviso de redirección a otra vía */
.redirect{border:1px solid var(--rule);border-radius:10px;padding:16px 18px;margin:0 0 20px;background:#F6F8FA;max-width:760px}
.redirect p{font-size:15px;color:var(--ink);line-height:1.5;margin:0 0 12px}
/* aviso de correo de dominio gratuito */
.icform .hint.freemail{color:var(--navy);margin-top:2px}
.icform .hint.freemail b{font-weight:700}

/* Liderazgo: directorio en vertical (rótulo del nivel a la izquierda, persona a la derecha) */
.mast{margin-top:40px;border-top:1px solid var(--rule)}
.mast-tier{display:grid;grid-template-columns:260px 1fr;gap:0 48px;padding:36px 0;border-bottom:1px solid var(--rule)}
.mast-label{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--blue);padding-top:6px}
.mast-tier:last-child{border-bottom:0}
.mast-persons{display:flex;flex-direction:column;gap:36px}
.mast-person{display:grid;grid-template-columns:148px 1fr;gap:28px;align-items:start}
.mast-sq{width:148px;aspect-ratio:1/1;border-radius:6px;overflow:hidden;background:var(--bg)}
.mast-sq img{width:100%;height:100%;object-fit:cover;object-position:center top}
.mast-body h3{font-size:22px;letter-spacing:-.01em}
.mast-role{margin-top:4px;font-size:13px;font-weight:600;color:var(--blue)}
.mast-body p{margin-top:12px;font-size:15px;line-height:1.55;color:var(--muted);max-width:62ch}
@media(max-width:900px){.mast-tier{grid-template-columns:1fr;gap:18px}}
@media(max-width:620px){.mast-person{grid-template-columns:96px 1fr;gap:18px}.mast-sq{width:96px}}

/* Cierre de El CIIP: sin caja, regla fina y botón azul */
.ruta-cierre{padding-top:8px;display:flex;align-items:center;justify-content:space-between;gap:32px}
.ruta-cierre-text h3{margin:0;font-size:22px;color:var(--navy)}
.ruta-cierre-text p{margin:6px 0 0;font-size:16px;color:var(--muted);max-width:60ch}
.ruta-cierre .btn{flex:none}
@media(max-width:700px){.ruta-cierre{flex-direction:column;align-items:flex-start}}
/* Hero partido: texto a la izquierda sobre navy, foto en la mitad derecha (El CIIP) */
.hero--photo.hero--split .photo{left:42%;width:58%}
.hero--photo.hero--split::before{background:linear-gradient(90deg, var(--navy) 0, var(--navy) 40%, rgba(18,32,49,.9) 47%, rgba(18,32,49,.35) 58%, rgba(18,32,49,.12) 75%, rgba(18,32,49,.25) 100%)}
@media(max-width:900px){
  .hero--photo.hero--split .photo{left:0;width:100%}
  .hero--photo.hero--split .photo{object-position:70% 30% !important}
  .hero--photo.hero--split::before{background:linear-gradient(180deg, rgba(18,32,49,.9), rgba(18,32,49,.78) 60%, rgba(18,32,49,.88))}
}

/* El proceso sobre fondo claro (Cómo invertir): misma línea de tiempo, colores de tinta */
.section--white .ruta-cols{border-bottom-color:var(--navy);color:var(--muted)}
.section--white .ruta-cols span:nth-child(3){color:var(--blue)}
.section--white .ruta-row{border-bottom-color:var(--rule)}
.section--white .ruta-num{color:var(--navy)}
.section--white .ruta-body::before{background:var(--rule)}
.section--white .ruta-body::after{background:var(--blue);box-shadow:0 0 0 4px #fff}
.section--white .ruta-row:last-child .ruta-body::after{background:var(--navy)}
.section--white .ruta-body h3{color:var(--navy)}
.section--white .ruta-body p{color:var(--muted)}
.section--white .ruta-res{border-left-color:var(--rule)}
.section--white .ruta-res small{color:var(--blue)}
.section--white .ruta-res p{color:var(--blue)}
.section--white .ruta-res .more{color:var(--blue)}
.section--white .ruta-after p{color:var(--muted)}
