/* ===================== FONTS ===================== */
@font-face {
  font-family: "Playfair Display";
  src: url("../fonts/PlayfairDisplay-Regular.ttf") format("truetype");
  font-weight: 400;
  font-display: swap;
}
@font-face {
  font-family: "Playfair Display";
  src: url("../fonts/PlayfairDisplay-SemiBold.ttf") format("truetype");
  font-weight: 600;
  font-display: swap;
}

/* ===================== TOKENS ===================== */
:root {
  /* palette = user eyedropper on the design (matches .ai raw, not pdftocairo) */
  --blue:     #034e7d;  /* primary: titles, body, subtitles, footer/IR bg */
  --ink:      #132030;  /* dark: near-black headings */
  --lblue:    #2a90d1;  /* accent: news dates */
  --cyan:     #199bc2;  /* Capital SOCIMI, © credits bar */
  --nav-gray: #86898B;  /* gray: inactive nav links */
  --btn-blue: #46aadf;  /* primary button fill (hero) */
  /* "sombra dura" global: con algo de difuminado, no un corte sólido */
  --shadow-card: 6px 6px 12px rgba(19,32,48,.35);
  --shadow-card-rgb: 19,32,48;

  --navy-900: #0a2240;
  --navy-800: #0e2b50;
  --navy-700: #143a6b;
  --blue-600: #1f5aa0;
  --blue-500: #2f6fb0;
  --blue-400: #4f8fd0;
  --sky-bg:   #d3e3ec;
  --gray-card:#eef0f2;
  --muted:    #5d6e84;
  --line:     #d7dee6;
  --white:    #ffffff;

  --serif: "Playfair Display", Georgia, "Times New Roman", serif;
  --sans:  "Inter Tight", system-ui, -apple-system, Segoe UI, Roboto, sans-serif;

  --maxw: 1300px;
  --gut: 24px;
  --edge: 80px;   /* margen lateral generoso (PC) para cabecera y hero full-width */
  --radius: 10px;
  --radius-card: 5px;   /* radio pequeño uniforme: numcard, stat, newscard, orgchart, contactcard... */
  /* superficies y bordes exactos del .ai */
  --card-light: #eef4f6;   /* tarjetas claras: principios, ventajas, tipologías, accesos */
  --card-dark:  #0a3958;   /* tarjetas oscuras (Estrategia · prudencia) */
  --chip-blue:  #0b5b89;   /* chips de categoría */
  --badge-cyan: #4bc0e8;   /* badges cian */
  --badge-blue: #0b5a96;   /* badge estado de activo */
  --bd-soft:    #d7e5ea;   /* borde tarjeta clara */
  --bd-card:    #cfdce2;   /* borde tarjeta noticia */
  --bd-org:     #8db6c9;   /* borde organigrama */
  --bd-node:    #68a6c4;   /* borde nodo diagrama */
  --bd-doc:     #c7d8df;   /* borde tarjeta documento */
  --bd-typo:    #d0dde3;   /* borde tarjeta tipología */
}
/* portátil para abajo: márgenes laterales de 20px en cabecera/hero */
@media (max-width: 1440px) { :root { --edge: 20px; } }

/* ===================== BASE ===================== */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  font-family: var(--sans);
  color: var(--ink);
  background: var(--white);
  line-height: 1.6;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
h1, h2, h3 { margin: 0; line-height: 1.15; }
p { margin: 0; }

.container { width: 100%; max-width: var(--maxw); margin: 0 auto; padding: 0 var(--gut); }
.h-serif { font-family: var(--serif); font-weight: 400; }

.ico {
  width: 26px; height: 26px; object-fit: contain;
  fill: none; stroke: currentColor; stroke-width: 1.4;
  stroke-linecap: round; stroke-linejoin: round;
}
.ico--lg { width: 40px; height: 40px; stroke-width: 1.2; }

/* ===================== BUTTONS ===================== */
.btn {
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--sans); font-weight: 400; font-size: 18.9px;  /* .ai: 25.02pt x 0.7554 */
  padding: 18px 53px; border-radius: 999px; border: 1px solid transparent;  /* .ai: botón hero home 247.97x77.35pt x 0.7554 */
  cursor: pointer; transition: .25s ease;
  white-space: nowrap;
}
.btn--primary { background: var(--btn-blue); color: #fff; }
.btn--primary:hover { background: #3a9fda; }
/* "Próximamente nueva web": Playfair Regular 22.75pt -> 17.2px */
.btn--ghost { background: transparent; color: #fff; font-family: var(--serif); font-size: 22.75px; padding: 13px 6px; }
.btn--ghost:hover { gap: 12px; opacity: .85; }
/* Escríbenos: Inter Tight 17.55pt -> 13.3px, fill #43a9e6, text primary blue */
.btn--light {
  background: #43a9e6; color: var(--blue); font-weight: 500; font-size: 17.55px;
  padding: 8px 18px; box-shadow: 0 6px 16px rgba(0,0,0,.22);
}
.btn--light:hover { background: #59b3ea; }

/* ===================== HEADER ===================== */
.site-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 50;
  background: transparent;
  transition: background .3s ease, box-shadow .3s ease;
}
.site-header.is-scrolled {
  background: rgba(10,34,64,.9);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 2px 20px rgba(0,0,0,.25);
}
/* páginas sin hero oscuro (single de activo, posts, archivos): header opaco desde
   el principio, si no el logo/menú en blanco queda invisible sobre fondo blanco */
body.gv-no-hero .site-header {
  background: rgba(10,34,64,.9);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 2px 20px rgba(0,0,0,.25);
}
body.gv-no-hero main { padding-top: 248px; }  /* header fixed (200px sin scroll) + aire, si no el contenido queda a ras del filo */
@media (max-width: 900px) { body.gv-no-hero main { padding-top: 156px; } }  /* .nav mide 116px en móvil + aire */
/* sticky: shrink logo to ~2/3, keep vertical breathing room around it */
.site-header.is-scrolled .nav { height: 112px; }
.site-header.is-scrolled .brand__logo { height: 87px; }
/* header geometry scaled from .ai (×0.756): logo 174px->130px, links centered */
/* cabecera full-width con márgenes laterales --edge */
.container.nav { max-width: none; padding-left: var(--edge); padding-right: var(--edge); }
.nav {
  display: flex; align-items: center; gap: 24px;
  height: 200px; transition: height .3s ease;
}

/* brand */
.brand { display: flex; align-items: center; color: #fff; }
.brand__logo { height: 130px; width: auto; display: block; transition: height .3s ease; }

/* nav links — Playfair Display Regular 12px (15.91pt), cluster centered */
.nav__links {
  display: flex; align-items: center; gap: 30px;
  margin: 0 auto; flex-wrap: wrap;
}
.nav__links a {
  font-family: var(--serif); font-weight: 400;
  color: var(--nav-gray); font-size: 15.91px;
  transition: color .2s;
}
.nav__links a:hover { color: #fff; }
.nav__links a.is-active { color: var(--badge-cyan); }
/* badge: Playfair 14.7pt -> 11px */
.nav__badge {
  font-family: var(--serif); font-size: 14.73px; color: #fff; padding: 8px 18px;
  border: 1px solid rgba(255,255,255,.55); border-radius: 999px;
  white-space: nowrap; margin-left: 6px;
}

.nav__right { display: flex; align-items: center; gap: 18px; }
.lang {
  position: relative;
  display: flex; align-items: center; gap: 6px; color: #fff;
  padding-bottom: 10px;
}
/* .ai: la rayita bajo el idioma es ~2.6x más ancha que el propio texto, centrada */
.lang::after {
  content: ""; position: absolute; left: -63px; right: -4px;   /* .ai: 82.96pt / 5.22pt x 0.7554 */
  bottom: 0; height: 1px; background: rgba(255,255,255,.35);
}
.lang__btn {
  background: none; border: none; color: rgba(255,255,255,.6);
  font-family: var(--sans); font-size: 14px; cursor: pointer; padding: 0;
}
.lang__btn.is-active { color: #fff; font-weight: 600; }
.lang__sep { color: rgba(255,255,255,.4); }

.nav__toggle { display: none; }

/* ===================== HERO ===================== */
.hero {
  position: relative; min-height: 860px; display: flex; align-items: flex-start;
  overflow: hidden; color: #fff;
}  /* .ai: 1137.9pt x 0.7554; anclado arriba (no centrado), como el resto del sitio */
.hero__bg {
  position: absolute; inset: 0; background-size: cover;
  background-position: center right; z-index: 0;
}
/* two gradients:
   1) short top black->transparent, darkens the menu area
   2) left->right dark blue->transparent up to ~40% */
.hero::before {
  content: ""; position: absolute; inset: 0; z-index: 1;
  background:
    linear-gradient(180deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,0) 16%),
    linear-gradient(90deg, rgb(7,24,42) 0%, rgb(7,24,42) 30%, rgba(7,24,42,0) 45%);
}
/* hero full-width: contenido con márgenes laterales --edge */
.hero__inner { position: relative; z-index: 2; max-width: none; padding: 248px var(--edge) 65px; }  /* .ai: título a 328.2pt, features hasta 1053.3pt, x0.7554 */
.hero__content { max-width: 740px; }
/* H1: Playfair Regular 100pt -> 75.6px, line-height 1.0 */
.hero__title {
  font-family: var(--serif); font-weight: 400;
  font-size: clamp(3rem, 13vw, 72px); line-height: 1.06; margin-bottom: 28px;
  overflow-wrap: break-word;
}
/* lead: Inter Tight Regular 25.02pt -> 18.9px, line-height 1.2 */
.hero__lead {
  font-family: var(--sans); font-weight: 400; color: #fff;
  font-size: 18px; line-height: 1.2; max-width: 595px;
}
.hero__actions { display: flex; align-items: center; gap: 26px; margin: 34px 0 48px; flex-wrap: wrap; }
.hero__features { display: flex; gap: 38px; list-style: none; margin: 0; padding: 0; flex-wrap: nowrap; }
/* feature labels: Playfair Regular 25.02pt -> 18.9px */
.hero__features li {
  display: flex; align-items: center; gap: 16px;
  font-family: var(--serif); font-weight: 400; font-size: 25.02px; line-height: 1.05;
}
.hero__features li span { max-width: 130px; }
.hero__features .ico { width: 50px; height: 50px; flex: none; }

/* ===================== SECTIONS ===================== */
.section { padding: 84px 0; }
.section--sky { background: var(--sky-bg); }
.section--pale { background: #dceef5; }
.section--navy { background: var(--blue); color: #fff; padding: 58px 0; }

/* title + text row: title col 380px (fits 1-line "Estrategia de inversión"),
   text capped, remaining space free on the right (matches .ai layout) */
/* .ai: título=1/4, hueco vacío=1/4, texto=2/4, alineación superior (no centrada) */
.split { display: grid; grid-template-columns: repeat(4, 1fr); column-gap: 0; align-items: start; }
.split__head { grid-column: 1 / 2; }
.split__body { grid-column: 2 / 4; max-width: none; padding-left: 20px; }  /* .ai: 1/4 título, 2/4 texto, 1/4 vacío al final */
/* variante .ai: título 2/4 + texto 2/4 (sin columna vacía) */
.split--even { align-items: flex-end; }  /* .ai: párrafo alineado al bottom del título, no al top */
.split--even .split__head { grid-column: 1 / 3; }
.split--even .split__body { grid-column: 3 / 5; }
.split__head { position: relative; }
/* section titles: Playfair Regular 48pt -> 36.3px */
.split__head .h-serif {
  font-size: 36.3px; line-height: 1.15; color: var(--blue);  /* .ai: 48pt x 0.7554 */
}
.split__head .h-serif.is-dark { color: var(--ink); }
.section--navy .split__head .h-serif { color: #fff; }
/* rule sits absolutely below the title so it does NOT count toward the
   vertical centering of the body text (which centers on the title text only) */
.rule { position: absolute; top: 100%; left: 0; margin-top: 22px; width: 56px; height: 3px; background: var(--blue); }
.rule--light { background: #fff; }
/* body copy: Inter Tight Regular 21pt -> 15.9px, line-height 1.143, #004e7c */
.split__body p { color: var(--blue); font-size: 18px; line-height: 1.143; max-width: 525px; padding-top: 6px; }
.split__body--muted p { color: var(--muted); }
.section--navy .split__body p { color: #fff; }
.split__body strong { color: inherit; font-weight: 700; }
.split__body--muted strong { color: var(--blue); }

/* pillars — full width, 3 equal columns (used by Home Gutenberg blocks) */
.pillars {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 30px; margin-top: 48px; text-align: center;
  position: relative;
}
/* pillars--clustered: Estrategia / Compañía — agrupados en caja compacta
   (~840px) y CENTRADOS dentro del contenedor de 1300px; solo se aplica
   en estas dos páginas (la Home usa .pillars a ancho completo). */
.pillars--clustered { grid-template-columns: repeat(3, 260px); width: max-content; margin-left: auto; margin-right: auto; }
.pillar { padding: 0 24px; }
/* divider between pillar icons: .ai = thin dark blue (#004e7d) */
.pillar + .pillar { border-left: 1px solid var(--blue); }
.section--navy .pillar + .pillar { border-color: rgba(255,255,255,.18); }
.pillar .ico { width: 50px; height: 50px; margin: 0 auto 18px; }
/* pillar title: Playfair SemiBold 25.02pt -> 18.9px, #004e7c */
.pillar h3 { font-family: var(--serif); font-weight: 600; font-size: 18.9px; color: var(--blue); margin-bottom: 8px; white-space: nowrap; }  /* .ai: 25.02pt x 0.7554, en una sola línea */
.pillar p { color: var(--blue); font-size: 18px; line-height: 1.143; max-width: 240px; margin: 0 auto; }
.section--navy .pillar h3, .section--navy .pillar p { color: #fff; }

/* sectors */
.sectors {
  display: grid; grid-template-columns: repeat(5, 1fr);
  gap: 20px; margin-top: 48px;
}
.sector {
  background: #ebebec; border-radius: 18px;
  padding: 24px 18px; text-align: center; transition: .25s ease;
}
.sector:hover { transform: translateY(-4px); box-shadow: 0 12px 30px rgba(20,58,107,.12); }
.sector .ico { width: 50px; height: 50px; margin: 0 auto 14px; }
/* sector title: Playfair SemiBold 25.02pt -> 18.9px ; desc Inter Tight 18pt -> 13.6px */
.sector h3 { font-family: var(--serif); font-weight: 600; font-size: 18.9px; color: var(--blue); margin-bottom: 6px; }  /* .ai: 25.02pt x 0.7554 */
.sector p { color: var(--blue); font-size: 16px; line-height: 1.2; }

/* assets — badge above, square image, navy label bar below */
.assets {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 28px; margin-top: 48px;
}
.asset { display: flex; flex-direction: column; align-items: flex-start; color: inherit; text-decoration: none; height: 100%; }
/* tag: Inter Tight Regular 20.47pt -> 15.5px */
.asset__tag {
  display: inline-block; margin-bottom: 14px;
  background: var(--navy-700); color: #fff; font-size: 18px; font-weight: 400;
  padding: 7px 20px; border-radius: 999px;
}
.asset__tag--dev { background: var(--blue-500); }
.asset__img { width: 100%; aspect-ratio: 2 / 1; overflow: hidden; }
.asset__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.asset:hover .asset__img img { transform: scale(1.04); }
/* label: Playfair Regular 25.02pt -> 18.9px */
.asset__label {
  width: 100%; background: var(--navy-700); color: #fff; font-family: var(--serif);
  font-weight: 400; font-size: 18.9px; padding: 14px 18px;
  flex: 1; display: flex; align-items: center;  /* si un título vecino ocupa 2 líneas, esta caja crece igual en vez de dejar hueco */
}
.assets__more { text-align: center; margin-top: 40px; }

/* IR */
.ir-items {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 20px; margin-top: 65px;
}
/* pill: user #0d395f, gray border #5b86a5, soft shadow (raised) */
.ir-item {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px;
  min-height: 118px; padding: 16px 20px; border-radius: 60px;
  background: #0d395f; border: 1px solid #5b86a5;
  box-shadow: 0 7px 20px rgba(0,0,0,.22);
  transition: .25s ease;
}
.ir-item:hover { background: #16456f; box-shadow: 0 10px 26px rgba(0,0,0,.28); }
.ir-item .ico { width: 58px; height: 58px; }
/* IR label: Playfair Regular 20.47pt -> 15.5px */
.ir-item span { font-family: var(--serif); font-weight: 400; font-size: 18px; }

/* newsroom — bordered cards, plain arrow */
.news {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 26px; margin-top: 48px;
}
.news-card {
  border: 1px solid var(--line); padding: 26px 26px 22px; position: relative;
  min-height: 210px; display: flex; flex-direction: column; transition: .25s ease;
}
.news-card:hover { border-color: var(--blue-400); box-shadow: 0 10px 28px rgba(20,58,107,.08); }
/* date: Playfair Regular 18.2pt -> 13.8px, #2a90d1 (no italic) */
.news-card__date {
  font-family: var(--serif); font-weight: 400; font-size: 16px;
  color: var(--lblue);
}
/* title: Playfair Regular 38.67pt -> 29.2px, line-height 1.0, #131f2f */
.news-card h3 { font-family: var(--serif); font-weight: 400; font-size: 29.2px; line-height: 1.0; color: var(--ink); margin-top: 14px; }
.news-card__arrow {
  margin-top: auto; align-self: flex-end; color: var(--blue-500);
  font-size: 1.3rem; line-height: 1; transition: transform .2s, color .2s;
}
.news-card__arrow:hover { transform: translateX(4px); color: var(--blue-600); }

/* ===================== FOOTER ===================== */
.footer { background: var(--blue); color: #fff; padding-top: 64px; }
/* footer content box is narrower than the 1280 body box:
   .ai = 1154px @1920 -> 872px (centered, ~383px side margins) */
.footer .container, .footer__top, .footer__contact { max-width: 1100px; }
.footer__top {
  display: grid; grid-template-columns: auto 248px 339px auto; gap: 0;
  align-items: stretch; justify-content: space-around; min-height: 104px; padding-bottom: 18px;
}
/* cells: full row height so dividers span the whole row; content vertically centered */
.footer__top > * { display: flex; align-items: center; padding: 0 18px; }
.footer__top > *:first-child { padding-left: 0; }
.footer__top > *:last-child { padding-right: 0; }
.footer__brand img { height: 90px; width: auto; max-width: none; display: block; }
/* claim: Playfair Regular 33.67pt -> 25.5px, line-height 1.2 */
.footer__claim {
  font-family: var(--serif); font-weight: 400; font-size: 25.5px; line-height: 1.2;
  border-left: 1px solid rgba(255,255,255,.22); border-right: 1px solid rgba(255,255,255,.22);
}
/* text: Inter Tight Regular 21pt -> 15.9px, line-height 1.2
   (block + align-self so the <strong> lead-in stays inline, not a flex column) */
.footer__text { display: block; align-self: center; color: #fff; font-size: 18px; line-height: 1.2; }
.footer__cta { display: flex; justify-content: flex-end; border-left: 1px solid rgba(255,255,255,.22); }

.footer__contact {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px;
  padding: 16px var(--gut) 48px; text-align: center;
}
/* contact: Inter Tight Regular 18pt -> 13.6px, line-height 1.2 */
.footer__contact a, .footer__contact .footer__contact-item {
  display: flex; flex-direction: column; align-items: center; gap: 12px;
  color: #fff; font-size: 16px; line-height: 1.2; font-weight: 400;
}
.footer__contact .ico { color: #8db8e0; width: 26px; height: 26px; }
.footer__contact a:hover { color: #fff; }

/* © bar: Inter Tight Regular 12pt -> 9.1px */
.footer__legal { background: var(--cyan); padding: 13px 0; font-size: 12px; text-align: center; }
.footer__legal span { color: #fff; font-weight: 400; }
.footer__legal a { color: #fff; font-weight: 400; }
.footer__legal a:hover { text-decoration: underline; }
/* registry: Inter Tight Regular 10pt -> 7.6px, pure white */
.footer__reg { background: var(--blue); padding: 11px 0; font-size: 10px; text-align: center; }
.footer__reg span { color: #fff; }

/* ===================== RESPONSIVE ===================== */
@media (max-width: 1080px) {
  .nav__links { gap: 16px; }
  .nav__badge { display: none; }
}
@media (max-width: 900px) {
  .timeline-wrap{grid-template-columns:1fr;gap:32px}
  /* logo igual en normal y sticky, con aire arriba/abajo */
  .nav { height: 116px; }
  .brand__logo { height: 84px; margin: 16px 0; }
  .site-header.is-scrolled .nav { height: 116px; }
  .site-header.is-scrolled .brand__logo { height: 84px; }
  .hero__inner { padding-top: 150px; }       /* header móvil */
  .ir-items { margin-top: 40px; }            /* sin el gran gap de escritorio */
  /* text spans full width on small screens — extend the gradient for legibility */
  .hero::before {
    background:
      linear-gradient(180deg, rgba(0,0,0,.5) 0%, rgba(0,0,0,0) 14%, rgba(0,0,0,0) 55%, rgba(7,24,42,.55) 100%),
      linear-gradient(90deg, rgb(7,24,42) 0%, rgb(7,24,42) 45%, rgba(7,24,42,.78) 72%, rgba(7,24,42,.55) 100%);
  }
  .nav__toggle {
    display: flex; flex-direction: column; gap: 5px; background: none; border: none;
    cursor: pointer; padding: 6px;
  }
  .nav__toggle span { width: 24px; height: 2px; background: #fff; transition: .25s; }
  .nav__toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .nav__toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .nav__toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

  .nav__links {
    position: absolute; top: 116px; left: 0; right: 0;
    flex-direction: column; flex-wrap: nowrap; align-items: flex-start; gap: 4px;
    margin: 0;
    background: var(--navy-900); padding: 16px var(--gut) 24px;
    max-height: 0; overflow: hidden; transition: max-height .3s ease, padding .3s ease;
    padding-top: 0; padding-bottom: 0;
  }
  .nav__links.is-open { max-height: 75vh; overflow-y: auto; padding-top: 16px; padding-bottom: 24px; }
  .nav__links a { padding: 8px 0; width: 100%; }
  .nav__right { margin-left: auto; }
  .nav__badge { display: none; }

  .split, .split--even { grid-template-columns: 1fr; gap: 34px; align-items: start; }
  .split .split__head, .split .split__body,
  .split--even .split__head, .split--even .split__body { grid-column: 1 / -1; }  /* .split--even tiene más especificidad que .split__head solo: hay que igualarla o el 2 columnas de escritorio persiste en móvil */
  .split__body { padding-left: 0; }  /* en 1 columna no debe heredar el offset de la 2ª columna de escritorio */
  .pillars { grid-template-columns: 1fr; gap: 40px; }
  .pillar + .pillar { border-left: none; border-top: 1px solid var(--line); padding-top: 40px; }
  .section--navy .pillar + .pillar { border-color: rgba(255,255,255,.18); }
  .sectors { grid-template-columns: repeat(2, 1fr); }
  .assets { grid-template-columns: repeat(2, 1fr); }
  .ir-items { grid-template-columns: repeat(2, 1fr); }
  .news { grid-template-columns: 1fr; }

  .footer__top { grid-template-columns: 1fr; text-align: center; gap: 32px; }
  .footer__top > * { padding: 0; }
  .footer__brand { display: flex; justify-content: center; }
  .footer__claim, .footer__cta { border-left: none; border-right: none; padding: 0; }
  .footer__claim, .footer__text, .footer__cta { padding-top: 28px; border-top: 1px solid rgba(255,255,255,.18); }
  .footer__cta { justify-content: center; }
  .footer__claim { justify-content: center; text-align: center; }  /* era flex sin justify-content: quedaba a la izq. pese al text-align del padre */
  .footer__contact { grid-template-columns: repeat(2, 1fr); gap: 36px; }
}
@media (max-width: 520px) {
  .section { padding: 60px 0; }
  .assets-topband { margin-top: -60px; padding-top: 60px; }
  .sectors, .assets, .ir-items { grid-template-columns: 1fr; }
  .footer__contact { grid-template-columns: 1fr; }
  .hero__features { gap: 18px 24px; flex-wrap: wrap; }
  .hero__actions { gap: 14px; }
}

/* ===================== WORDPRESS — newsroom links, single, archive ===================== */
.news-card h3 a { color: inherit; text-decoration: none; }
.news-card h3 a:hover { color: var(--accent, #2a90d1); }
.news__empty { color: var(--blue); }

.single__wrap { max-width: 820px; margin: 0 auto; }

/* ---------- single.php: entrada de Newsroom con sidebar ---------- */
.single-news__grid { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 64px; align-items: start; max-width: 1160px; margin: 0 auto; }
.single-news__main { min-width: 0; }
.news-aside { position: sticky; top: 130px; display: flex; flex-direction: column; gap: 40px; }
.news-aside__block { padding: 28px; background: var(--sky-bg); border-radius: var(--radius-card); }
.news-aside__title { font-family: var(--serif); font-weight: 600; font-size: 16px; color: var(--blue); margin: 0 0 18px; }
.news-aside__cats { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.news-aside__cats li { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 9px 0; border-bottom: 1px solid rgba(3,78,125,.1); }
.news-aside__cats li:last-child { border-bottom: none; }
.news-aside__cats a { color: var(--ink); font-size: 14px; }
.news-aside__cats a:hover { color: var(--chip-blue); }
.news-aside__count { font-size: 12px; color: var(--muted); }
.news-aside__recent { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 16px; }
.news-aside__recent li + li { padding-top: 16px; border-top: 1px solid rgba(3,78,125,.1); }
.news-aside__recent a { display: flex; flex-direction: column; gap: 4px; }
.news-aside__recent-date { font-size: 10px; font-weight: 600; letter-spacing: .08em; color: var(--muted); }
.news-aside__recent-title { font-family: var(--serif); font-size: 15px; line-height: 1.3; color: var(--ink); }
.news-aside__recent a:hover .news-aside__recent-title { color: var(--chip-blue); }
@media (max-width: 960px) {
  .single-news__grid { grid-template-columns: 1fr; gap: 48px; }
  .news-aside { position: static; flex-direction: row; flex-wrap: wrap; }
  .news-aside__block { flex: 1 1 260px; }
}
.single__back { display: inline-block; color: var(--blue); font-size: 16px; margin-bottom: 18px; }
.single__back:hover { text-decoration: underline; }
.single__title { font-size: 36.3px; line-height: 1.1; margin-top: 8px; }
.single__media { margin: 28px 0; }
.single__media img { width: 100%; height: auto; border-radius: var(--radius); }
.single__content { color: var(--ink); font-size: 16px; line-height: 1.7; }
.single__content p { margin: 0 0 1em; }
.single__footer { margin-top: 40px; border-top: 1px solid var(--line); padding-top: 20px; }
.single__footer a { color: var(--blue); }
.single__meta { display: flex; align-items: center; gap: 12px; margin-top: 4px; }
.single__related { margin-top: 64px; padding-top: 48px; border-top: 1px solid var(--line); }

.page-content .entry-content { color: var(--ink); font-size: 16px; line-height: 1.7; }
.page-content .entry-content p { margin: 0 0 1em; }

/* tipografía genérica para contenido largo (legal, entradas): sin esto los
   h2/h3/listas de wp_editor salían sin estilo, en Times por defecto */
.entry-content h2 { font-family: var(--serif); font-weight: 600; font-size: 24px; color: var(--blue); margin: 1.6em 0 .6em; }
.entry-content h3 { font-family: var(--serif); font-weight: 600; font-size: 19px; color: var(--ink); margin: 1.4em 0 .5em; }
.entry-content h2:first-child, .entry-content h3:first-child { margin-top: 0; }
.entry-content ul, .entry-content ol { margin: 0 0 1em; padding-left: 1.3em; }
.entry-content li { margin-bottom: .4em; }
.entry-content a { color: var(--chip-blue); text-decoration: underline; }
.entry-content strong { color: var(--ink); }

/* ---------- single-gv_activo: sin diseño cerrado en el .ai, construido con la
   estética general (héroe con imagen + ficha de datos + contenido) ---------- */
.activo-hero { position: relative; min-height: 420px; display: flex; align-items: flex-end; overflow: hidden; color: #fff; background: var(--ink); }
.activo-hero__bg { position: absolute; inset: 0; }
.activo-hero__bg img { width: 100%; height: 100%; object-fit: cover; }
.activo-hero__scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7,24,42,.35) 0%, rgba(7,24,42,.55) 60%, rgba(7,24,42,.85) 100%); }
.activo-hero__inner { position: relative; z-index: 2; padding-top: 150px; padding-bottom: 40px; }
.activo-hero__back { display: inline-block; color: rgba(255,255,255,.85); font-size: 15px; margin-bottom: 16px; }
.activo-hero__back:hover { color: #fff; text-decoration: underline; }
.activo-hero__eyebrow { display: block; font-family: var(--sans); font-size: 12px; font-weight: 600; letter-spacing: .18em; color: var(--badge-cyan); margin-bottom: 10px; }
.activo-hero__title { font-size: clamp(2rem, 4.5vw, 44px); line-height: 1.1; color: #fff; margin: 0 0 18px; }
.activo-hero__meta { display: flex; align-items: center; flex-wrap: wrap; gap: 20px; }
.activo-hero__meta .assetrow__loc { color: rgba(255,255,255,.85); margin-bottom: 0; }
.activo-hero__meta .ico--pin path { stroke: #fff; }

.single-activo__wrap { max-width: 960px; margin: 0 auto; padding-top: 56px; padding-bottom: 64px; }
.activo-facts { display: flex; flex-wrap: wrap; gap: 32px; padding-bottom: 32px; margin-bottom: 32px; border-bottom: 1px solid var(--line); }
.activo-facts__item { display: flex; flex-direction: column; gap: 4px; }
.activo-facts__label { font-family: var(--sans); font-size: 11px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.activo-facts__value { font-family: var(--serif); font-size: 18px; color: var(--ink); }

.activo-cta { margin-top: 56px; padding: 40px; background: var(--sky-bg); border-radius: var(--radius-card); text-align: center; }
.activo-cta h2 { margin: 0 0 10px; font-size: 24px; color: var(--blue); }
.activo-cta p { margin: 0 0 22px; color: var(--muted); }

@media (max-width: 700px) {
  .activo-hero { min-height: 320px; }
  .activo-hero__inner { padding-top: 120px; padding-bottom: 32px; }
  .activo-cta { padding: 28px 20px; }
}

.news__pagination { margin-top: 48px; }
.news__pagination .page-numbers {
  display: inline-block; padding: 8px 14px; margin: 0 3px;
  border: 1px solid var(--line); border-radius: var(--radius-card); color: var(--blue); font-size: 14px;
}
.news__pagination .page-numbers.current { background: var(--blue); color: #fff; border-color: var(--blue); }

/* ===================== GUTENBERG — patterns/bloques editables ===================== */
/* los patterns reutilizan las clases del tema; neutralizamos los márgenes por defecto
   de core para que el maquetado coincida con el diseño */
/* reset solo de los grupos del bloque "split" (título + texto); NO de las filas
   de iconos/tarjetas, que conservan su margin-top de diseño */
.section > .wp-block-group.split,
.split .wp-block-group { margin-top: 0; margin-bottom: 0; }
.pillar .wp-block-heading, .sector .wp-block-heading { margin: 0 0 8px; }
.pillar p, .sector p { margin-top: 0; }
.split__body p { margin: 0; }
.ir-item .ir-item__label { margin: 0; font-family: var(--serif); font-weight: 400; font-size: 18px; }
.assets__note.wp-block-paragraph { margin-top: 40px; }
/* las filas de grid mantienen display:grid Y el separador de diseño (margin-top 48) */
.wp-block-group.pillars, .wp-block-group.sectors,
.wp-block-group.assets, .wp-block-group.ir-items { display: grid; margin-top: 65px; }
/* core añade margin-block-start a los items 2º+ (layout flow) y descuadra el grid:
   el 1º queda más alto. Lo anulamos en los hijos directos de cada grid. */
.pillars > *, .sectors > *, .assets > *, .ir-items > * {
  margin-block-start: 0; margin-block-end: 0; margin-top: 0; margin-bottom: 0;
}
.wp-block-group.ir-items { margin-top: 65px; }
@media (max-width: 900px) {
  .wp-block-group.ir-items { margin-top: 40px; }
}

/* ===================== WORDPRESS — wp_nav_menu (<ul class="nav__menu">) ===================== */
.nav__menu {
  position: relative;
  list-style: none; margin: 0; padding: 0;
  display: flex; align-items: center; gap: 30px; flex-wrap: wrap;
}
/* .ai: rayita bajo el menú, pero excluye "Home" (queda fuera, separado).
   Ancho variable (tipografía), se mide por JS -> --line-start / --line-end. */
.nav__menu::after {
  content: ""; position: absolute;
  left: var(--line-start, 0); right: var(--line-end, 0);
  bottom: -15px; height: 1px; background: rgba(255,255,255,.35);
}
.nav__menu li { margin: 0; }
.nav__menu li:first-child { margin-right: 24px; }
.nav__menu li:first-child a,
.nav__menu li:first-child a.is-active { font-weight: 700; color: #fff; }  /* Home: blanco puro, siempre */
.nav__menu a {
  font-family: var(--serif); font-weight: 400;
  color: var(--nav-gray); font-size: 15.91px; transition: color .2s;
}
.nav__menu a:hover { color: #fff; }
/* el activo lo marca el scrollspy (.is-active); no usamos .current-menu-item
   porque todas las anclas apuntan a la home y WP las marcaría todas */
.nav__menu a.is-active { color: var(--badge-cyan); }
/* páginas interiores: WP marca la página actual con sus propias clases en el
   <li> (current-menu-item / current_page_item), no con .is-active (eso solo lo
   pone el scrollspy de anclas en Home) — por eso el activo no se veía nunca */
.nav__menu li.current-menu-item > a,
.nav__menu li.current_page_item > a { color: var(--badge-cyan); }
.nav__menu li:first-child.current-menu-item > a,
.nav__menu li:first-child.current_page_item > a { color: #fff; }

@media (max-width: 900px) {
  .nav__menu {
    flex-direction: column; align-items: flex-start; gap: 4px; width: 100%;
  }
  .nav__menu li { width: 100%; }
  .nav__menu a { display: block; padding: 8px 0; width: 100%; }
}

/* ===================== HEADER — .ai: LOGO | MENU (izq.) | espacio | IDIOMA (der.) ===================== */
.nav__center {
  display: flex; align-items: center; gap: 22px;
  margin: 0 0 0 76px; flex-wrap: wrap;   /* separación logo-menú, ver .ai */
}
.nav__center .nav__links { margin: 0; }
.nav__center .nav__badge { margin-left: 0; }
.nav__right { margin-left: auto; }
@media (max-width: 900px) {
  .nav__center { margin: 0; gap: 0; }         /* el menú es dropdown absoluto en móvil */
  /* nav__right sigue empujado al borde derecho (margin-left:auto): sin esto quedaba
     flotando a ~96px del filo, lejos del edge real del header */
}

/* ===================== CONTACT MODAL (popup CF7) ===================== */
body.gv-modal-open { overflow: hidden; }
.gv-modal { position: fixed; inset: 0; z-index: 200; display: none; }
.gv-modal.is-open { display: block; }
.gv-modal__overlay {
  position: absolute; inset: 0; background: rgba(7,24,42,.6);
  backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px);
  animation: gvFade .25s ease;
}
.gv-modal__dialog {
  position: relative; z-index: 1; width: min(640px, calc(100% - 32px));
  max-height: calc(100vh - 48px); overflow-y: auto;
  margin: 24px auto; background: #fff; border-radius: 16px;
  padding: 40px 40px 32px; box-shadow: 0 30px 80px rgba(7,24,42,.35);
  top: 50%; transform: translateY(-50%); animation: gvPop .28s ease;
}
@keyframes gvFade { from { opacity: 0; } }
@keyframes gvPop { from { opacity: 0; transform: translateY(-46%); } }
.gv-modal__close {
  position: absolute; top: 14px; right: 18px; background: none; border: none;
  font-size: 30px; line-height: 1; color: var(--blue); cursor: pointer; opacity: .6;
}
.gv-modal__close:hover { opacity: 1; }
.gv-modal__title { font-size: 30px; color: var(--blue); margin-bottom: 6px; }
.gv-modal__lead { color: var(--ink); font-size: 15px; margin-bottom: 22px; }

/* formulario */
/* .ai: sin <label> visible — el placeholder (o, en el select, la 1ª opción) hace de label */
.gv-form .gv-row { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.gv-form p { margin: 0 0 20px; }
.gv-form .gv-field-label { display: block; font-size: 13px; font-weight: 600; color: var(--muted); margin-bottom: 8px; }
.gv-form input[type="text"],
.gv-form input[type="email"],
.gv-form input[type="tel"],
.gv-form select,
.gv-form textarea {
  width: 100%; padding: 11px 14px;
  border: 1px solid var(--line); border-radius: 4px;
  font-family: var(--sans); font-size: 15px; color: var(--ink); background: #fff;
  transition: border-color .2s, box-shadow .2s;
}
.gv-form select.gv-select {
  color: var(--blue); appearance: none; -webkit-appearance: none;
  padding-right: 40px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23034e7d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center; background-size: 16px;
}
.gv-form select.gv-select:invalid,
.gv-form select.gv-select option[value=""] { color: var(--muted); }
.gv-form input:focus, .gv-form select:focus, .gv-form textarea:focus {
  outline: none; border-color: var(--btn-blue);
  box-shadow: 0 0 0 3px rgba(70,170,223,.18);
}
.gv-form textarea { resize: vertical; min-height: 90px; }
.gv-consent { display: flex; align-items: flex-start; gap: 4px; font-size: 13px; color: var(--muted); line-height: 1.5; }
.gv-consent a { color: var(--blue); text-decoration: underline; }
.gv-consent .wpcf7-list-item { margin: 0; }
.gv-form .gv-submit { margin-top: 6px; }
.contactform .gv-submit { display: flex; justify-content: flex-end; }
.gv-form .wpcf7-submit {
  background: var(--btn-blue); color: var(--ink); border: none; cursor: pointer;
  font-family: var(--sans); font-weight: 500; font-size: 16px;
  padding: 13px 34px; border-radius: 999px; transition: background .2s;
}
.gv-form .wpcf7-submit:hover { background: #3a9fda; }
.gv-form .wpcf7-spinner { margin: 0 0 0 10px; }
/* feedback CF7 */
.wpcf7-response-output { margin: 14px 0 0 !important; padding: 10px 14px !important; border-radius: 8px; font-size: 14px; }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output { border-color: #e2b0b0 !important; background: #fbf0f0; }
.wpcf7 form.sent .wpcf7-response-output { border-color: #b6d6c0 !important; background: #eef7f1; }
.wpcf7-not-valid-tip { color: #c0392b; font-size: 12px; }

@media (max-width: 560px) {
  .gv-modal__dialog { padding: 30px 22px 24px; }
  .gv-form .gv-row { grid-template-columns: 1fr; gap: 0; }
}

/* ============================================================
   PÁGINAS INTERIORES — componentes del diseño ampliado
   ============================================================ */
@font-face{font-family:"Playfair Display";src:url("../fonts/PlayfairDisplay-Bold.ttf") format("truetype");font-weight:700;font-display:swap}

/* hero de interiores: más bajo que el de home */
.hero--inner { min-height: 860px; align-items: stretch; }  /* .ai: hero 1138pt x 0.7554. stretch: .hero centra por defecto (align-items:center); aquí .hero__inner (position:relative, es el ancestro posicionado real por z-index) debe ocupar el alto completo para que el botón absoluto ancle contra el borde inferior real, no el del contenido */
.hero--inner .hero__bg { background-position: center center; }
.hero--inner .hero__inner { padding: 0 var(--edge); position: relative; }
/* .ai: el lead SIEMPRE empieza a 695.6pt (525px) del top del hero, sea cual sea el
   número de líneas del título (comprobado igual en Compañía/Estrategia/Investor). El
   título, en cambio, cuelga "hacia arriba" desde ese mismo punto: cuantas más líneas,
   más sube, pero su línea base inferior siempre queda a la misma distancia del lead.
   Por eso el título va en una caja ranurada (top:0 / bottom fijo) con flex-end, en vez
   de un padding-top fijo que sólo es correcto para el título de 4 líneas de Compañía. */
.hero--inner .hero__title {
  position: absolute; left: var(--edge); right: var(--edge); top: 0; bottom: 379px;  /* 860 - 525 + 44 de aire hasta el lead */
  display: flex; flex-direction: column; justify-content: flex-end; margin: 0;
  font-size: clamp(2.6rem, 6vw, 62px); line-height: 1.05;
}
.hero--inner .hero__lead {
  position: absolute; left: var(--edge); top: 525px; margin: 0;
  max-width: 406px;  /* .ai: 536.8pt x 0.7554 — más estrecho, más líneas, como el diseño */
}
/* .ai: el botón "Contactar" NO fluye tras el lead — está anclado en posición fija
   (idéntica en las 6 páginas interiores: x0=79.9pt, top=959.8pt, box 188.8x58.9pt,
   hero 1138pt de alto) independientemente de cuánto texto haya encima. */
.hero--inner .hero__actions { position: absolute; left: var(--edge); bottom: 90px; margin: 0; }  /* .ai: gap inferior 119.3pt x 0.7554 */
.hero--inner .btn--primary { font-size: 18px; padding: 10px 29px; }

/* eyebrow (rótulo superior de sección) */
.eyebrow{display:block;font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:var(--chip-blue);margin-bottom:14px}
/* si el head lleva antetítulo, el texto de la derecha se alinea con el título
   (no con el antetítulo) — sin esto ambos arrancan a la misma altura */
.split__head:has(.eyebrow) ~ .split__body{margin-top:33px}
.section--navy .eyebrow{color:#8fc4e8}

/* cabecera a una sola columna, alineada a la izquierda (.ai: Explora el portfolio…,
   Todas las noticias…), en vez del patrón 1/4+1/4+2/4 de .split */
.sectionhead--single{}  /* hereda ancho/centrado normal de .container: título y texto ya limitan su propio max-width */
.sectionhead--single .h-serif{font-size:36.3px;line-height:1.1;color:var(--blue)}
.sectionhead--single .h-serif.is-dark{color:var(--ink)}
.sectionhead--single p{color:var(--muted);font-size:18px;line-height:1.4;margin-top:22px;max-width:640px}  /* .ai: rgb(87,112,128) — gris, no azul */
.sectionhead--single .rule{position:static;display:block;margin:22px 0 0}

/* fondo crema (listados de activos / documentos) */
.section--cream{background:#f3f1e8}

/* ---------- timeline (Compañía) ---------- */
/* .ai: eje vertical cian (#4bc0e8) + puntos huecos (fondo crema, borde #0b5b89),
   año en sans bold #0b5b89, título en --ink (no azul) sin negrita, sin líneas
   horizontales entre items (solo el eje vertical) */
/* .ai: título+regla+foto en la columna izquierda, timeline en la derecha */
.timeline-wrap{display:grid;grid-template-columns:1.15fr 1fr;gap:80px;margin-top:56px;align-items:start}
.timeline-wrap__media{position:relative}
.timeline-wrap__media .h-serif{font-size:36.3px;line-height:1.15;color:var(--ink);margin-bottom:0}
.timeline-wrap__media .rule{position:static;display:block;margin:22px 0 32px}
.timeline-wrap__media img{width:75%;max-width:75%;height:auto;aspect-ratio:971/728;object-fit:cover;border-radius:8px}
@media (max-width:900px){ .timeline-wrap__media img{width:100%;max-width:100%} }
.timeline{margin-top:0;display:flex;flex-direction:column;gap:0;position:relative;padding-left:28px}
.timeline::before{content:"";position:absolute;top:14px;bottom:14px;left:6px;width:1.5px;background:var(--badge-cyan)}
.timeline__item{display:grid;grid-template-columns:70px 1fr;gap:32px;padding:30px 0;position:relative}  /* más aire vertical: la columna debe acercarse a la altura de la foto+título */
.timeline__year{position:relative;font-family:var(--sans);font-weight:700;font-size:13.8px;color:var(--chip-blue)}
.timeline__year::before{content:"";position:absolute;left:-28px;top:3px;width:13px;height:13px;
  border-radius:50%;background:#f3f1e8;border:1.5px solid var(--chip-blue)}
.timeline__body h3{font-family:var(--serif);font-weight:400;font-size:17px;color:var(--ink);margin-bottom:6px}
.timeline__body p{color:var(--blue);font-size:15px;line-height:1.4;max-width:640px}

/* ---------- tarjetas numeradas (principios / prudencia / ventajas) ---------- */
.numgrid{display:grid;gap:19px;margin-top:56px}
.numgrid--5{grid-template-columns:repeat(5,1fr)}
.numgrid--2{grid-template-columns:repeat(2,1fr)}
.numcard{background:var(--card-light);border:1px solid var(--bd-soft);border-radius:var(--radius-card);padding:26px 22px}
.numcard--slim{
  padding:22px 20px; border:none;
  border-radius: 34% 2.4% 34% 2.4% / 21.7% 1.5% 21.7% 1.5%;  /* .ai: misma esquina asimétrica que typocard */
  box-shadow: var(--shadow-card);  /* .ai: sombra difuminada, sin filo azul */
}
.numcard--slim h3{color:var(--ink);font-size:20px}
.numcard__num{display:block;font-family:var(--sans);font-size:13px;font-weight:600;color:var(--chip-blue);margin-bottom:28px}  /* .ai: 37.66pt de hueco al título x 0.7554 */
.numcard h3{font-family:var(--serif);font-weight:400;font-size:27.2px;color:var(--ink);margin-bottom:8px}  /* .ai: 36pt, color ink (no azul) */
.numcard p{color:var(--blue);font-size:15px;line-height:1.45}
.numcard--dark{background:var(--card-dark);border-color:rgba(255,255,255,.14)}
.numcard--dark h3,.numcard--dark p{color:#fff}
.numcard--dark h3{font-weight:700}
.numcard--dark .numcard__num{color:var(--badge-cyan)}

/* .ai: "Crecer con prudencia" — col.1 título+regla+texto apilados, col.2 las 4 card en 2x2 */
/* wrapper único (título+regla+texto en flujo normal) como una sola columna del
   grid, evitando que el numgrid (al abarcar dos filas) infle la fila 1 y separe
   el texto de la regla — bug anterior */
.prudence-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:64px;align-items:start}
.prudence-grid__text .rule{position:static;display:block;margin:62px 0 0;background:var(--badge-cyan)}  /* .ai: 81.8pt hueco título->regla, azul claro */
.prudence-grid__text .split__body{margin-top:57px;padding-left:0}  /* .ai: 74.9pt hueco regla->texto; sin indent (split__body trae padding-left:20px para el layout 2-col, no aplica aquí, es 1 sola columna */
.prudence-grid .numgrid{margin-top:0}
@media (max-width:900px){
  .prudence-grid{grid-template-columns:1fr;gap:34px}
}

/* ---------- hubgraph: diagrama hub-spoke (Estrategia) — SVG puro, geometría exacta del .ai.
   Cajas con esquina asimétrica (TL/BR grandes, TR/BL pequeñas), líneas #68a6c4 dibujadas
   antes que el círculo para que éste tape el tramo central de cada línea. */
.hubgraph{max-width:900px;margin:56px auto 0}
.hubgraph svg{display:block;width:100%;height:auto;overflow:visible}
.hubgraph__lines line{stroke:var(--bd-node);stroke-width:1.4}
.hubgraph__node path{fill:#fff;stroke:none;filter:drop-shadow(8px 8px 17px rgba(19,32,48,.4))}  /* sombra reforzada: filter opera en coords del viewBox (1243.9), más grande que el viewport renderizado, así que var(--shadow-card) se ve tenue aquí */
.hubgraph__node text{fill:var(--ink);font-family:var(--serif);font-size:21.7px;font-weight:700}
.hubgraph__circle{fill:var(--chip-blue)}
.hubgraph__coretext{fill:#fff;font-family:var(--sans);font-size:23.14px;font-weight:700;letter-spacing:.03em}
.hubgraph__note{text-align:center;color:var(--blue);font-family:var(--serif);font-size:18px;font-weight:700;margin-top:34px}

/* ---------- tipologías (Activos) ---------- */
/* .ai: fill #eef4f6, borde #d0dde3, radio pequeño uniforme (~3pt), número cian,
   título Playfair Regular casi negro, descripción gris-azulado */
.typegrid{display:grid;grid-template-columns:repeat(7,1fr);gap:11px;margin-top:56px}
.typecard{background:var(--card-light);border:1px solid var(--bd-typo);border-radius:var(--radius-card);padding:22px 14px;text-align:left}  /* .ai: sin icono, alineado a la izquierda */
.typecard__num{display:block;font-size:10px;font-weight:600;color:var(--badge-cyan);margin-bottom:10px}
.typecard h3{font-family:var(--serif);font-weight:400;font-size:16px;color:var(--ink);margin-bottom:6px}
.typecard p{font-size:12px;line-height:1.35;color:#587080}
.sectors--7{grid-template-columns:repeat(7,1fr)}
/* ---------- typocard: tipologías (Estrategia · diversificación) ----------
   .ai: card 220.7x345.7pt fill #ebebec, sin borde ni sombra vectorial.
   Esquinas asimétricas: sup-izq y inf-der con radio grande (~34% ancho),
   sup-der e inf-izq con radio pequeño. Solo icono + título (Playfair). */
.typogrid{
  display:grid; grid-template-columns:repeat(7,1fr); gap:23px; margin-top:52px;
}
.typocard{
  background:#ebebec;
  border-radius: 34% 2.4% 34% 2.4% / 21.7% 1.5% 21.7% 1.5%;
  padding:50px 18px 40px;
  text-align:center;
  aspect-ratio: 221 / 346;
  display:flex; flex-direction:column; align-items:center; justify-content:flex-start;
  box-shadow: 8px 8px 18px rgba(19,32,48,.32);  /* sombra reforzada, más próxima al .ai */
}
.typocard .ico{width:44px;height:auto;margin:0 auto 46px;color:var(--blue)}  /* .ai: ~58pt x 0.7554 */
.typocard h3{
  font-family:var(--serif); font-weight:400; font-size:17px; line-height:1.2;
  color:var(--ink); margin:0;
}
@media (max-width: 1100px){ .typogrid{grid-template-columns:repeat(4,1fr); gap:16px;} }
@media (max-width: 640px){ .typogrid{grid-template-columns:repeat(2,1fr);} }


/* ---------- filtros ---------- */
/* .ai: inputs/selects blancos, borde gris sutil, radio 2px, sin caja contenedora */
.gv-filters{display:flex;gap:12px;flex-wrap:wrap;margin-top:72px;background:transparent;border:none;padding:0}  /* .ai: ~100pt de aire respecto al texto, no amontonado */
/* .ai: en Newsroom el conjunto (buscador+selects) no supera 2/3 del contenedor */
#actualidad .gv-filters{max-width:66.667%}
@media (max-width:900px){ #actualidad .gv-filters{max-width:none} }
.gv-filters input[type="search"]{
  flex:1 1 260px;min-width:200px;
  background-color:#fff;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23034e7d' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:16px center; background-size:17px;
  padding-left:44px;
}
.gv-filters input,.gv-filters select{padding:15px 16px;border:1px solid #c9d8de;border-radius:2px;
  font-family:var(--sans);font-size:15px;color:var(--ink);background-color:#fff}
.gv-filters select{flex:0 1 200px}
.gv-filters .btn--sm{
  background:var(--chip-blue);border-radius:2px;padding:15px 34px;font-weight:600;
}
.btn--sm{font-size:15px;padding:11px 24px}
.gv-listhead{display:flex;justify-content:space-between;align-items:center;margin:26px 0 16px;
  font-size:11.5px;color:#586f80}
.gv-listhead span{font-weight:700}
.gv-sort{display:flex;align-items:center;gap:6px;font-family:var(--sans);font-size:11.5px;color:#586f80;
  border:none;background:transparent;cursor:pointer}

/* ---------- listado de activos ---------- */
/* .ai: fondo blanco (no crema), sin padding interior antes de la línea
   (queda a ras de la imagen), gap entre items; estructura 1/5+3/5+1/5 */
/* El fondo crema vive en un div interior, no en la .section (que ya trae
   padding:84px 0): sin esto, ese padding queda blanco y el texto aparece
   pegado al borde superior del bloque crema en vez de con aire dentro de él. */
.assets-topband{background:#f3f1e8;margin-top:-84px;padding-top:84px;padding-bottom:32px}
.assetlist{display:flex;flex-direction:column;gap:24px;background:#fff}
.assetrow{display:grid;grid-template-columns:1fr 3fr 1fr;gap:28px;align-items:stretch;
  padding:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.assetlist .assetrow + .assetrow{border-top:none}  /* evita doble línea entre items consecutivos */
.assetrow__media img{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;border-radius:0}
.assetrow__type{display:block;font-size:11px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--chip-blue);margin-bottom:14px;margin-top:22px}
.assetrow__body h3{font-family:var(--serif);font-weight:400;font-size:29px;color:var(--ink);margin-bottom:14px}
.assetrow__loc{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--muted);margin-bottom:16px}
.assetrow__loc .ico--pin{width:22px;height:auto;flex:none}  /* .ai: pin notablemente más grande que el texto */
.assetrow__body p{font-size:14px;line-height:1.45;color:var(--muted);max-width:560px;margin-bottom:22px}
.assetrow__aside{text-align:right;padding:24px 0;display:flex;flex-direction:column;align-items:flex-end;
  justify-content:space-between}  /* .ai: flag arriba (altura título), Ver activo abajo (altura párrafo) */
.assetrow__state{display:inline-block;background:#dbecf5;color:#0b5b89;font-size:12px;font-weight:700;
  padding:5px 14px;border-radius:999px}
.assetrow__link{display:flex;align-items:center;justify-content:space-between;gap:10px;
  width:100%;color:var(--chip-blue);font-weight:700;font-size:13px;
  border-bottom:1px solid var(--chip-blue);padding-bottom:8px}  /* .ai: la línea corre bajo todo el ancho (texto + flecha) */
.assetrow__link:hover{opacity:.8}
.assetrow__link-text{flex:none}
.assetrow__link-arrow{flex:none;font-size:20px;line-height:1}  /* .ai: flecha más grande que el texto */

.gv-listfoot{display:flex;justify-content:space-between;align-items:center;margin-top:32px;flex-wrap:wrap;gap:16px}
.gv-listfoot--end{justify-content:flex-end}

/* ---------- comunicaciones y notas de prensa (Newsroom) ---------- */
/* .ai: título sans bold (no serif), fecha+categoría apiladas, PDF+descargar, flecha final */
.pressrow-list{display:flex;flex-direction:column;gap:20px;margin-top:72px}  /* más aire entre cabecera y listado */
.pressrow{display:grid;grid-template-columns:150px 1fr 160px 40px;gap:24px;align-items:center;
  background:#fff;border:1px solid var(--line);border-radius:10px;padding:24px}
.pressrow__when{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.pressrow__date{font-size:9.7px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:#8296a2}
.pressrow__cat{display:inline-block;background:#dbecf5;color:var(--chip-blue);font-size:8.7px;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;padding:5px 12px;border-radius:999px}
.pressrow__main h3{font-family:var(--sans);font-weight:700;font-size:19.3px;color:var(--ink);margin-bottom:6px}
.pressrow__main p{font-size:11.6px;line-height:1.4;color:var(--muted)}
.pressrow__file{display:flex;flex-direction:column;gap:8px}
.pressrow__label{font-size:9.7px;color:#8296a2;text-transform:uppercase;letter-spacing:.08em}
.pressrow__dl{display:flex;align-items:center;gap:8px;color:var(--chip-blue);font-weight:600;font-size:11.6px}
.pressrow__dl:hover{text-decoration:underline}
.pressrow__dl-ico{font-size:20px;line-height:1}  /* flecha de descarga notablemente más grande que el texto */
.pressrow__go{font-size:21.3px;color:var(--chip-blue);text-align:center}
@media (max-width:900px){
  .pressrow{grid-template-columns:1fr;gap:12px}
  .pressrow__go{display:none}
}
.gv-listcount{font-size:13px;color:var(--muted)}
.gv-pagination{display:flex;align-items:center;gap:8px}
.gv-pagination__num,.gv-pagination__arrow{
  display:flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:50%;
  font-family:var(--sans);font-size:13px;color:var(--chip-blue);background:#eef4f6;
}
.gv-pagination__num.is-active{background:var(--chip-blue);color:#fff;font-weight:700}
.gv-pagination__arrow{font-size:16px}

/* ---------- accesos IR ---------- */
.accessgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:56px}
/* .ai: fill #eef4f6, sin borde. Esquinas asimétricas (sup-izq/inf-der grandes, ~19-20%) */
.accesscard{display:block;background:var(--card-light);border-radius:18.8% 1.4% 18.8% 1.4% / 20% 1.5% 20% 1.5%;
  padding:34px 28px 38px;transition:.25s ease}  /* alto según contenido: el aspect-ratio forzado dejaba las cards demasiado altas y vacías */
.accesscard:hover{box-shadow:0 14px 34px rgba(3,78,125,.12);transform:translateY(-3px)}
.accesscard__num{display:block;font-size:13px;font-weight:600;color:var(--chip-blue);margin-bottom:14px}
.accesscard .ico{width:33px;height:33px;margin-bottom:14px}
.accesscard h3{font-family:var(--serif);font-weight:400;font-size:25.3px;color:var(--ink);margin-bottom:8px}
.accesscard p{font-size:13px;line-height:1.45;color:var(--muted);margin-bottom:14px}
.accesscard__cta{font-family:var(--serif);color:var(--chip-blue);font-size:12px;font-weight:400}

/* ---------- documentos ---------- */
/* .ai: card blanca (aunque la sección sea crema), icono doc, todo alineado arriba */
.doclist{display:flex;flex-direction:column;gap:20px;margin-top:72px}  /* más aire entre cabecera y listado */
.docrow{display:grid;grid-template-columns:56px 1.5fr 1.7fr 1fr;gap:26px;align-items:start;
  padding:32px 36px;background:#fff;border-radius:10px;border:none;
  box-shadow:0 2px 12px rgba(3,78,125,.06)}
.docrow__icon{width:40px;height:40px}  /* icono de documento notablemente más grande */
.docrow__meta{display:block;font-size:10px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--chip-blue);margin-bottom:8px}
.docrow__main h3{font-family:var(--serif);font-weight:400;font-size:22.2px;color:var(--ink)}
.docrow__desc{font-size:13px;line-height:1.45;color:var(--muted)}
.docrow__aside{text-align:right}
.docrow__state{display:inline-block;font-size:12px;font-weight:700;padding:5px 14px;border-radius:999px;
  background:#dcede8;color:#2d7a68;margin-bottom:14px}
.docrow--restringido .docrow__state{background:#f1e5d8;color:#b87333}
.docrow--proximamente .docrow__state,.docrow--preparacion .docrow__state{background:#eceff1;color:#8296a2}
.docrow__cta{display:flex;align-items:center;justify-content:flex-end;gap:8px;color:var(--chip-blue);font-weight:700;font-size:13px}
.docrow__cta:hover{text-decoration:underline}
.docrow__cta.is-muted{color:var(--muted);cursor:default}
/* flecha de descarga con línea (bandeja), a juego con el .ai */
.docrow__cta-ico{position:relative;display:inline-block;width:20px;font-size:20px;text-align:center;padding-bottom:6px}
.docrow__cta-ico::after{content:"";position:absolute;left:0;right:0;bottom:0;border-bottom:1.4px solid currentColor}
svg.docrow__cta-ico{width:22px;height:22px;padding-bottom:0;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
svg.docrow__cta-ico::after{content:none}
.docrow--restringido .docrow__cta{color:#b87333}
.doclist--press .docrow{grid-template-columns:1fr 200px}

/* ---------- stats + tabla financiera ---------- */
.statgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-top:56px}
/* .ai: borde #c7d8df, radio pequeño ~5pt, cifra en chip-blue, etiqueta Inter Bold --ink */
.stat{background:#fff;border:1px solid var(--bd-doc);border-radius:var(--radius-card);padding:26px 22px}
.stat__value{display:block;font-family:var(--sans);font-weight:700;font-size:38.4px;color:var(--chip-blue);margin-bottom:8px}  /* .ai: 50.77pt sans bold x 0.7554 */
.stat__label{font-family:var(--sans);font-weight:700;font-size:15px;color:var(--ink);margin-bottom:4px}
.stat__note{font-size:13px;color:var(--muted)}
/* .ai: título 48pt (no 24), cabecera SIN fondo (texto gris pequeño mayúsculas),
   filas de datos casi negras (--ink), no azul */
.statgrid + .container{margin-top:72px}  /* separación generosa entre las card y "Previsiones 2026-2028" */
.table-title{font-family:var(--serif);font-weight:400;font-size:34.6px;color:var(--blue);margin:0 0 32px}  /* .ai: pegado a la eyebrow de arriba */
/* .ai: tarjeta blanca con padding interior, cebreado de filas, borde solo bajo el head */
.table-wrap{overflow-x:auto;background:#fff;border-radius:10px;padding:14px 24px}  /* aire arriba/abajo: la última fila no debe tocar el borde */
.fin-table{width:100%;border-collapse:collapse;background:#fff;font-size:14.1px}
.fin-table th,.fin-table td{padding:18px;text-align:center}
.fin-table th:first-child,.fin-table td:first-child{text-align:left}
.fin-table tbody td{color:var(--chip-blue)}
.fin-table tbody td:first-child{color:var(--ink)}
.fin-table tbody tr:nth-child(even){background:#f6f9fa}
.fin-table thead th{background:none;color:#8296a2;font-weight:400;font-size:11px;letter-spacing:.08em;
  text-transform:uppercase;border-bottom:1px solid var(--line)}
.fin-note{font-size:11px;color:var(--muted);margin-top:14px}

/* ---------- newsroom ---------- */
/* .ai: NO es tarjeta lado a lado — es una foto a sangre con degradado oscuro y
   texto en blanco superpuesto abajo-izquierda, como un mini-hero */
.feature{position:relative;margin-top:20px;border-radius:14px;overflow:hidden;
  min-height:480px;display:flex;align-items:flex-end}
.feature__media{position:absolute;inset:0;z-index:0}
.feature__media img{width:100%;height:100%;object-fit:cover;border-radius:0}
.feature::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(0deg,rgba(7,20,35,.92) 0%,rgba(7,20,35,.6) 45%,rgba(7,20,35,.1) 75%,transparent 100%)}
.feature__body{position:relative;z-index:2;padding:56px 64px;max-width:1100px}
.feature__cat{display:inline-block;font-size:12px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--badge-cyan);margin-bottom:12px}
.feature__date{display:block;font-size:13px;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;color:#afc4cf;margin-bottom:16px}
.feature__body h2{font-family:var(--serif);font-weight:400;font-size:45.2px;line-height:1.08;color:#fff;margin-bottom:32px;max-width:66%}
.feature__body p{font-size:15px;line-height:1.5;color:#d6e0e6;margin-bottom:38px;max-width:33%}
.feature__body .btn--primary{background:var(--badge-cyan);color:var(--ink)}
.feature__body .btn--primary:hover{background:#6bcdec}
.newsgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:34px}
.newscard{background:#fff;border:1px solid var(--bd-card);border-radius:var(--radius-card);overflow:hidden;
  display:flex;flex-direction:column}
.newscard__media img{width:100%;height:auto;aspect-ratio:537/313;object-fit:cover;display:block}
.newscard__body{padding:24px 22px;display:flex;flex-direction:column;flex:1}
.newscard__top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.newscard__date{font-size:9.7px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#8296a2}
.newscard__cat{font-size:8.7px;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
.newscard h3{font-family:var(--serif);font-weight:400;font-size:22.2px;line-height:1.2;
  color:var(--ink);margin-bottom:10px}
.newscard h3 a{color:inherit}
.newscard h3 a:hover{color:var(--lblue)}
.newscard p{font-size:11.6px;line-height:1.45;color:var(--muted);margin-bottom:16px}
.newscard__link{margin-top:auto;color:var(--chip-blue);font-weight:600;font-size:11.6px}

/* ---------- organigrama ----------
   .ai: raíz #0b5b89, nodos blancos borde #8db6c9, gap real ~48px (no 14px),
   texto de nodo casi negro (--ink), + conectores tipo árbol (troncal+bus+stubs) */
.orgchart{margin-top:64px;text-align:center;--org-line:var(--bd-org)}
.orgchart__root{position:relative;display:inline-block;background:var(--chip-blue);color:#fff;border-radius:var(--radius-card);
  padding:20px 100px;font-family:var(--sans);font-weight:700;font-size:18px;line-height:1.3;margin-bottom:56px}  /* .ai: sans bold, padding L/R ~134pt x 0.7554 */
.orgchart__root::after{content:"";position:absolute;left:50%;top:100%;width:1.5px;height:56px;background:var(--org-line)}
.orgchart__row{position:relative;display:grid;grid-template-columns:repeat(5,1fr);gap:48px;margin-bottom:64px;padding-top:24px}
.orgchart__row::before{content:"";position:absolute;top:0;left:calc(10% - 19.2px);right:calc(10% - 19.2px);height:1.5px;background:var(--org-line)}
.orgchart__row--sub{grid-template-columns:repeat(4,1fr);max-width:82%;margin-inline:auto}
.orgchart__row--sub::before{left:calc(12.5% - 18px);right:calc(12.5% - 18px)}
.orgchart__row--sub::after{content:"";position:absolute;left:50%;top:-40px;width:1.5px;height:40px;background:var(--org-line)}
.orgchart__node{position:relative;background:#fff;border:1px solid var(--bd-org);border-radius:var(--radius-card);padding:18px 14px;
  font-family:var(--sans);font-weight:700;font-size:13px;line-height:1.35;color:var(--ink)}  /* .ai: sans bold */
.orgchart__node::before{content:"";position:absolute;left:50%;top:-24px;width:1.5px;height:24px;background:var(--org-line)}
.orgchart__row--sub .orgchart__node::before{top:-24px;height:24px}

/* ---------- contacto ---------- */
/* .ai: dos tarjetas de color (no transparentes): izq. crema #f3f1e8, der. azul claro
   #eef4f6, ratio real 619.3:1048.8, radio pequeño uniforme (--radius-card) */
.contactgrid{display:grid;grid-template-columns:619.3fr 1048.8fr;gap:44px;margin-top:56px;align-items:start}
.contactcard{background:#f3f1e8;border:none;border-radius:var(--radius-card);padding:56px 40px}
.contactcard h3{font-family:var(--sans);font-weight:400;font-size:26px;color:var(--ink);margin-bottom:26px}
.contactcard__item{display:flex;gap:14px;margin-bottom:48px}  /* .ai: más separación entre item y item */
.contactcard__item:last-child{margin-bottom:0}
.contactcard__item .ico{width:24px;height:24px;object-fit:contain;flex:none;margin-top:0}
.contactcard__label{display:block;font-size:11px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted);margin-bottom:5px}
.contactcard__item p{font-size:16px;line-height:1.45;color:var(--ink)}
.contactcard__item a:hover{text-decoration:underline}
.contactcard__pending{font-size:13px;color:#b87333;font-style:normal}
.contactform{background:var(--card-light);border:none;border-radius:var(--radius-card);padding:56px 48px}
.contactform h3{font-family:var(--sans);font-weight:400;font-size:29px;color:var(--ink);margin-bottom:26px}

/* ============================ RESPONSIVE ============================ */
@media (max-width:1200px){
  .numgrid--5,.typegrid,.sectors--7{grid-template-columns:repeat(4,1fr)}
  .statgrid{grid-template-columns:repeat(2,1fr)}
  .newsgrid{grid-template-columns:repeat(2,1fr)}
  .orgchart__row,.orgchart__row--sub{grid-template-columns:repeat(3,1fr);gap:20px}
  .orgchart__row::before,.orgchart__row--sub::before{left:calc(16.667% - 6.67px);right:calc(16.667% - 6.67px)}
}
@media (max-width:900px){
  .hero--inner{min-height:auto}
  .hero--inner .hero__inner{padding:150px var(--edge) 60px}
  /* en móvil título/lead/botón vuelven al flujo normal: el anclaje absoluto (pensado
     para el hero fijo de 860px de escritorio) recortaría o solaparía con min-height:auto */
  .hero--inner .hero__title{position:static;display:block;margin:0 0 24px}
  .hero--inner .hero__lead{position:static;margin:0}
  .hero--inner .hero__actions{position:static;margin:28px 0 0}
  .timeline-wrap{grid-template-columns:1fr}  /* la regla de escritorio (1.15fr 1fr) va DESPUÉS en el archivo y ganaba por orden de cascada */
  .timeline__item{grid-template-columns:1fr;gap:8px}
  .numgrid--5,.numgrid--2,.typegrid,.sectors--7{grid-template-columns:repeat(2,1fr)}
  .assetrow{grid-template-columns:1fr;gap:14px}
  .assetrow__aside{text-align:left;padding:0 0 22px}
  .accessgrid{grid-template-columns:1fr}
  .docrow,.doclist--press .docrow{grid-template-columns:1fr;gap:10px}
  .docrow__aside{text-align:left}
  .feature{min-height:380px} .feature__body{padding:32px 28px} .feature__body h2{font-size:30px;max-width:100%} .feature__body p{max-width:100%}
  .newsgrid{grid-template-columns:1fr}
  .contactgrid{grid-template-columns:1fr}
  .orgchart__row,.orgchart__row--sub{grid-template-columns:repeat(2,1fr);max-width:none;gap:16px}
  .orgchart__row::before,.orgchart__row--sub::before{left:calc(25% - 4px);right:calc(25% - 4px)}
}
@media (max-width:560px){
  .numgrid--5,.numgrid--2,.typegrid,.sectors--7,.statgrid{grid-template-columns:1fr}
  .gv-filters{flex-direction:column}
  .gv-filters select,.gv-filters input,.gv-filters input[type="search"]{flex:1 1 auto;width:100%}  /* el flex-basis:260px de [type=search] es más específico y, en columna, se leía como ALTO */
}

/* ===================== NEWSROOM — chips, contador, medios ===================== */
.gv-chips { display: flex; flex-wrap: wrap; gap: 10px; margin: 64px 0 40px; }  /* .ai: ~89pt de aire respecto a los filtros */
.gv-chip {
  display: inline-block; padding: 7px 18px; border-radius: 999px;
  border: 1px solid var(--line); background: #fff;
  font-size: 14px; color: var(--blue); transition: .2s ease;
}
.gv-chip:hover { border-color: var(--btn-blue); }
.gv-chip.is-active { background: var(--blue); border-color: var(--blue); color: #fff; }

.news__count { text-align: center; color: var(--muted); font-size: 14px; margin-top: 28px; }
.news__more { display: flex; justify-content: center; margin-top: 18px; }
.btn--outline {
  background: transparent; color: var(--blue); border: 1px solid var(--blue);
  font-size: 16px; padding: 11px 26px;
}
.btn--outline:hover { background: var(--blue); color: #fff; }

/* menciones en medios */
/* .ai: medio+fecha apilados a la izq., título sans bold en el centro, icono externo a la derecha */
.medialist { display: flex; flex-direction: column; gap: 14px; margin-top: 72px; }  /* más aire entre cabecera y listado */
.mediarow {
  display: grid; grid-template-columns: 150px 1fr 40px; align-items: center; gap: 24px;
  background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 20px 26px;
  transition: .2s ease;
}
.mediarow:hover { border-color: var(--btn-blue); box-shadow: 0 8px 22px rgba(3,78,125,.08); }
.mediarow__when { display: flex; flex-direction: column; gap: 8px; }
.mediarow__medio { font-size: 10.5px; letter-spacing: .08em; color: var(--chip-blue); font-weight: 600; }
.mediarow__date { font-size: 9.6px; letter-spacing: .06em; color: #8296a2; white-space: nowrap; text-transform: uppercase; }
.mediarow__title { font-family: var(--sans); font-weight: 700; font-size: 17.2px; color: var(--ink); line-height: 1.35; }
.mediarow__link {
  display: grid; place-items: center; flex: none; color: var(--chip-blue); font-size: 18px;
}

@media (max-width: 700px) {
  .mediarow { grid-template-columns: 1fr; align-items: flex-start; gap: 14px; }
}

/* ---------- estados (colores exactos del .ai) ---------- */
.assetrow__state--en-cartera      { background:#dbecf5; color:#0b5b89; }
.assetrow__state--en-desarrollo   { background:#f1e5d8; color:#b87333; }
.assetrow__state--en-explotacion  { background:#dcede8; color:#2d7a68; }
/* categoría de noticia */
.newscard__cat { background:#dbecf5; color:#0b5b89; padding:4px 12px; border-radius:999px; }
.feature__cat  { background:#0d3955; color:#4bc0e8; padding:5px 14px; border-radius:999px; }
/* chips: activo azul sólido, inactivo blanco con texto azul */
.gv-chip { background:#fff; color:#0b5b89; border-color:#cfdce2; }
.gv-chip.is-active { background:#0b5b89; border-color:#0b5b89; color:#fff; }
