/* V8 · visual editorial layer. */
.header-top { min-height:clamp(72px,6vw,96px); }
.header-top .idiomas { display:inline-flex; align-items:center; gap:.7em; border:0; border-radius:0; overflow:visible; flex:none; }
.header-top .idiomas__op { appearance:none; position:relative; border:0; display:inline-flex; align-items:center; justify-content:center; min-width:0; padding:0; font:400 16px/1.1 Poppins,Arial,sans-serif; letter-spacing:.18em; color:#17243a; background:transparent; cursor:pointer; transition:color 300ms ease; }
.header-top .idiomas__op + .idiomas__op::before { content:""; position:absolute; left:-.42em; top:.1em; bottom:.1em; width:1px; background:rgba(18,20,19,.32); }
.header-top .idiomas__op--activo { color:var(--ink); background:transparent; }
.header-top .idiomas__op--activo::after { content:""; position:absolute; left:0; right:.18em; bottom:-.42em; height:1px; background:var(--ink); }
.header-top .idiomas__op--inactivo { color:#17243a; background:transparent; }
.header-top .idiomas button.idiomas__op { font:400 16px/1.1 Poppins,Arial,sans-serif; letter-spacing:.18em; color:#17243a; }
.header-top>.corporate-return { margin-left:auto; }
.header-top>.idiomas { margin-left:0; }

/* Cabecera compartida: misma hamburguesa, selector y menú que la web principal. */
.header-top>.hamburguesa { order:3; flex:none; width:44px; height:44px; min-width:44px; min-height:44px; margin-left:auto; padding:9px; border:0; background:transparent; display:flex; flex-direction:column; justify-content:center; gap:6px; cursor:pointer; }
.header-top>.hamburguesa span { display:block; width:100%; height:1.5px; background:#0d0f11; transition:width 420ms cubic-bezier(.16,1,.3,1),transform 420ms cubic-bezier(.16,1,.3,1),opacity 300ms ease; transform-origin:right center; }
.header-top>.hamburguesa span:nth-child(2) { width:72%; margin-left:auto; }
.header-top>.hamburguesa:hover span:nth-child(2) { width:100%; }
.header-top>.hamburguesa:hover span:nth-child(1) { width:72%; margin-left:auto; }
.header-top>.idiomas { order:4; }
.menu { position:fixed; inset:0; z-index:200; width:100%; height:100%; display:flex; flex-direction:column; justify-content:flex-start; padding-block:64px; padding-inline:5vw; background:#17243a; transform:translateX(100%); visibility:hidden; transition:transform 520ms cubic-bezier(.16,1,.3,1),visibility 0s linear 520ms; overflow-x:hidden; overflow-y:auto; overscroll-behavior:contain; }
.menu::before { content:none; }
.menu.menu--abierto { transform:translateX(0); visibility:visible; transition-delay:0s; }
.menu__cerrar { position:absolute; top:2.5vw; right:5vw; width:44px; height:44px; min-width:44px; min-height:44px; padding:8px; border:0; color:#fff; background:transparent; cursor:pointer; }
.menu__cerrar svg { width:100%; height:100%; fill:none; stroke:#fff; stroke-width:1.4; stroke-linecap:round; }
.menu__lista { position:relative; flex-shrink:0; list-style:none; margin-block:auto; padding:0; max-width:min(80vw,740px); counter-reset:nav; }
.menu__lista li { counter-increment:nav; }
.menu__lista li + li { margin-top:.55vw; }
.menu__lista a { position:relative; display:flex; align-items:baseline; gap:1.4em; padding:.75vw 0; border-bottom:1px solid rgba(250,249,246,.2); color:#faf9f6; font:700 clamp(20px,2.05vw,34px)/1.2 var(--sans); letter-spacing:-.018em; text-transform:uppercase; transition:color 340ms ease,padding-left 460ms cubic-bezier(.16,1,.3,1); }
.menu__lista a::before { content:counter(nav,decimal-leading-zero); flex:none; font:400 10px/1 var(--sans); letter-spacing:.22em; color:#8bb8df; opacity:.75; transition:opacity 340ms ease; }
.menu__lista a::after { content:""; position:absolute; left:0; right:0; bottom:-1px; height:1px; background:#8bb8df; transform:scaleX(0); transform-origin:left center; transition:transform 560ms cubic-bezier(.16,1,.3,1); }
.menu__lista a:hover { color:#faf9f6; padding-left:1.1vw; }
.menu__lista a:hover::after,.menu__lista a:focus-visible::after { transform:scaleX(1); }
.menu__lista a:hover::before { opacity:1; }
.menu__lista a.is-activo { color:#8bb8df; }
body.menu-abierto { overflow:hidden; }

@media (prefers-reduced-motion:no-preference) {
  .menu__lista li { opacity:0; transform:translateY(14px); transition:opacity 520ms cubic-bezier(.16,1,.3,1),transform 520ms cubic-bezier(.16,1,.3,1); }
  .menu--abierto .menu__lista li { opacity:1; transform:none; }
  .menu--abierto .menu__lista li:nth-child(1) { transition-delay:110ms; }
  .menu--abierto .menu__lista li:nth-child(2) { transition-delay:165ms; }
  .menu--abierto .menu__lista li:nth-child(3) { transition-delay:220ms; }
  .menu--abierto .menu__lista li:nth-child(4) { transition-delay:275ms; }
  .menu--abierto .menu__lista li:nth-child(5) { transition-delay:330ms; }
  .menu--abierto .menu__lista li:nth-child(6) { transition-delay:385ms; }
}

/* Un sistema de leading por jerarquía, no el interlineado genérico del navegador. */
.home-heading h1,
.page-heading h1 { line-height:.88; }
.home-story>p { line-height:1.18; }
.route h2 { line-height:1.02; }
.route p:not(.eyebrow):not(.ticker):not(.source),
.site-footer p { line-height:1.42; }
.document,
.release-list a,
.stock-details dd { line-height:1.34; }

.route { position: relative; isolation: isolate; }
.content-section--single > div { grid-column: 1 / -1; }
.content-section--label-only { grid-template-columns: 1fr; }
.v8-ir-visual { position: relative; height: clamp(176px, 22vw, 310px); margin: clamp(1.5rem, 4vw, 4rem) 0; overflow: hidden; background: #e8e8e5; }
.v8-ir-visual::after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(18,20,19,.36), rgba(18,20,19,.02) 65%, rgba(18,20,19,.16)); pointer-events: none; }
.v8-ir-visual img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 54%; filter: saturate(.78) contrast(1.03); transform: scale(1.018); }
.v8-market-lockup { position:absolute; z-index:2; top:13%; right:5%; width:clamp(9rem,15vw,14rem); filter:drop-shadow(0 2px 10px rgba(0,22,47,.3)); }
.v8-market-lockup img { display:block; width:100%; height:auto; object-fit:contain; filter:none; transform:none; }
.route[data-route="profile"] .v8-ir-visual img { object-position: 50% 48%; }
.route[data-route="governance"] .v8-ir-visual img { object-position: 50% 92%; }
.route[data-route="financials"] .v8-ir-visual img { object-position: 50% 58%; }
.route[data-route="stock"] .v8-ir-visual img { object-position: 50% 54%; }
@media (prefers-reduced-motion: no-preference) {
  .v8-ir-visual { opacity: 0; transform: translateY(12px); transition: opacity 460ms ease, transform 620ms cubic-bezier(.16,1,.3,1); }
  .route:not([hidden]) .v8-ir-visual { opacity: 1; transform: none; }
  .route:not([hidden]) .v8-ir-visual img { animation: v8-ir-settle 1.1s cubic-bezier(.16,1,.3,1) both; }
  .primary-nav a { transition: color 180ms ease, border-color 180ms ease, transform 180ms ease; }
  .primary-nav a:hover { transform: translateY(-1px); }
  /* Cada cambio de capítulo se lee como una secuencia editorial única. Sólo
     usa opacity y transform: no cambia jerarquía, layout ni contenido. */
  .route.v8-route-entering > .home-heading,
  .route.v8-route-entering > .page-heading {
    animation: v8-ir-rise 680ms cubic-bezier(.16,1,.3,1) both;
  }
  .route.v8-route-entering > .v8-ir-visual {
    animation: v8-ir-rise 760ms 90ms cubic-bezier(.16,1,.3,1) both;
  }
  .route.v8-route-entering > .home-access,
  .route.v8-route-entering > .content-section,
  .route.v8-route-entering > .home-governance,
  .route.v8-route-entering > .v8-market-communications {
    animation: v8-ir-rise 720ms cubic-bezier(.16,1,.3,1) both;
  }
  .route.v8-route-entering > :nth-child(3) { animation-delay: 150ms; }
  .route.v8-route-entering > :nth-child(4) { animation-delay: 220ms; }
  .route.v8-route-entering > :nth-child(5) { animation-delay: 290ms; }
}
@keyframes v8-ir-settle { from { transform: scale(1.065); } to { transform: scale(1.018); } }
@keyframes v8-ir-rise {
  from { opacity: 0; transform: translate3d(0,18px,0); }
  to { opacity: 1; transform: none; }
}
@media (max-width: 600px) {
  .header-top>.idiomas { margin-left:auto; }
  .header-top>.hamburguesa { order:3; width:44px; height:44px; min-width:44px; min-height:44px; }
  .header-top>.idiomas { order:4; }
  .primary-nav {
    flex-wrap: wrap;
    gap: 0 22px;
    overflow: visible;
    padding-bottom: 4px;
  }
  .primary-nav a { min-height: 40px; }
  .primary-nav a[data-nav="presentation"] { color: #062847; }
  .v8-ir-visual { height: 170px; margin: 1.5rem 0 2.25rem; }
  .v8-market-lockup { top:12%; right:6%; gap:.45rem; }
  .menu__lista { max-width:100%; }
  .menu__lista a { font-size:19px; padding:11px 0; gap:1em; }
  .menu { padding-inline:24px; }
  .menu__cerrar { top:20px; right:24px; width:44px; height:44px; min-width:44px; min-height:44px; padding:8px; }
}
@media (prefers-reduced-motion: reduce) { .v8-ir-visual { transition: none; } .v8-ir-visual img { animation: none; } }

/*
 * Filas documentales: el título puede crecer hasta dos líneas sin empujar
 * el tipo de archivo ni la flecha fuera de la retícula. El mismo contrato
 * visual se aplica a Información financiera y Gobierno.
 */
.content-section .document,
.content-section .release-list .document {
  display:grid;
  grid-template-columns:minmax(0,1fr) max-content;
  align-items:center;
  column-gap:clamp(1.25rem,3vw,3rem);
  width:100%;
}
.content-section .document > span:first-child {
  min-width:0;
  max-width:58rem;
  text-wrap:pretty;
  overflow-wrap:anywhere;
}
.content-section .document-meta {
  display:grid;
  grid-template-columns:2.25rem 1rem;
  align-items:center;
  justify-content:end;
  column-gap:.75rem;
  min-width:4rem;
  white-space:nowrap;
  text-align:right;
}
.content-section .document-meta > span {
  margin-left:0;
  text-align:right;
}
.content-section .release-list li {
  display:block;
}
.content-section .release-list .document {
  padding:0;
  border-bottom:0;
}
/* Si el editor oculta una fila completa, la última fila que permanece visible
   debe cerrar el bloque igual que en Gobierno: sin separador ni aire residual. */
.content-section > div > .document:not([data-novus-hidden]):not(:has(~ .document:not([data-novus-hidden]))) {
  padding-bottom:0;
  border-bottom:0;
}
@media (max-width:600px) {
  .content-section .document,
  .content-section .release-list .document {
    grid-template-columns:minmax(0,1fr) 4rem;
    column-gap:1rem;
  }
  .content-section .release-list .document-meta {
    max-width:none;
    white-space:nowrap;
  }
}

/* Gobierno forma parte de la misma retícula de accesos, no de una fila aparte. */
.home-access article.home-governance { align-items:stretch; justify-content:flex-start; gap:0; padding-top:0; padding-bottom:0; }
.home-access article.home-governance > .text-link { margin-top:auto; }

/* Contacto · extensión editorial de Investor Relations. */
.route--contact { padding-bottom:clamp(4rem,8vw,8rem); }
.ir-contact { display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr); gap:clamp(3rem,8vw,8rem); padding:clamp(3rem,6vw,6rem) 0; border-bottom:1px solid var(--line); }
.ir-contact__context h2 { max-width:12ch; margin-bottom:1.5rem; font-size:clamp(2.2rem,4vw,4.5rem); line-height:.96; }
.ir-contact__context>p:not(.eyebrow) { max-width:30rem; color:var(--muted); }
.ir-contact__details { display:grid; gap:1.2rem; margin-top:clamp(2.5rem,5vw,5rem); padding-top:1.5rem; border-top:1px solid var(--line); }
.ir-contact__details p { display:flex; flex-direction:column; gap:.3rem; margin:0; font-family:var(--sans); font-size:.9rem; }
.ir-contact__details span { color:var(--muted); font-size:.65rem; letter-spacing:.12em; text-transform:uppercase; }
.ir-contact__form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem 2.25rem; align-content:start; }
.ir-contact__field--wide { grid-column:1/-1; }
.ir-contact__field label,.ir-contact__message-label label { display:block; margin:0 0 .55rem; color:var(--muted); font-size:.67rem; letter-spacing:.1em; text-transform:uppercase; }
.ir-contact__field label span { opacity:.72; text-transform:none; letter-spacing:0; }
.ir-contact__field input,.ir-contact__field textarea { width:100%; padding:.8rem 0; border:0; border-bottom:1px solid var(--line); border-radius:0; outline:0; color:var(--ink); background:transparent; font:400 1.05rem/1.55 var(--reading); transition:border-color 220ms ease; }
.ir-contact__field textarea { min-height:9rem; resize:vertical; }
.ir-contact__field input:focus,.ir-contact__field textarea:focus { border-color:var(--ink); }
.ir-contact__message-label { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.ir-contact__dictate { display:inline-flex; align-items:center; gap:.45rem; padding:.35rem 0; border:0; color:var(--muted); background:transparent; font:500 .65rem/1 var(--sans); letter-spacing:.09em; text-transform:uppercase; cursor:pointer; }
.ir-contact__dictate span { color:var(--accent); font-size:.55rem; }
.ir-contact__dictate.is-listening span { animation:ir-contact-pulse 1.1s ease-in-out infinite; }
.ir-contact__trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.ir-contact__consent { display:flex; align-items:flex-start; gap:.75rem; color:var(--muted); font-size:.75rem; line-height:1.5; cursor:pointer; }
.ir-contact__consent input { width:1rem; height:1rem; margin:.05rem 0 0; accent-color:var(--ink); }
.ir-contact__consent a { color:var(--ink); text-decoration:underline; text-underline-offset:.18em; }
.ir-contact__actions { display:flex; align-items:center; gap:1.5rem; min-height:3.4rem; }
.ir-contact__submit { display:inline-flex; align-items:center; justify-content:space-between; gap:3rem; min-width:min(100%,16rem); min-height:3.2rem; padding:.85rem 1.1rem; border:1px solid var(--ink); color:#fff; background:var(--ink); font:500 .72rem/1 var(--sans); letter-spacing:.08em; text-transform:uppercase; cursor:pointer; transition:color 220ms ease,background 220ms ease; }
.ir-contact__submit:hover,.ir-contact__submit:focus-visible { color:var(--ink); background:transparent; }
.ir-contact__submit:disabled { cursor:wait; opacity:.55; }
.ir-contact__status { min-height:1.4em; margin:0; color:var(--muted); font:400 .75rem/1.45 var(--sans); }
.ir-contact__status[data-state="success"] { color:#22613d; }
.ir-contact__status[data-state="error"] { color:#8a2d2d; }
@keyframes ir-contact-pulse { 50% { opacity:.25; transform:scale(.72); } }
@media (max-width:760px) {
  .ir-contact { grid-template-columns:1fr; gap:3.5rem; }
  .ir-contact__form { grid-template-columns:1fr; gap:1.6rem; }
  .ir-contact__field { grid-column:1; }
  .ir-contact__actions { align-items:flex-start; flex-direction:column; gap:1rem; }
  .ir-contact__submit { width:100%; }
}
