@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url(/fonts/manrope-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 200 800;
  font-display: swap;
  src: url(/fonts/manrope-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
:root {
  --paper: #F4F3F0;
  --ink: #101418;
  --gold: #C7A45A;
  --soft-on-paper: #555A61;
  --soft-on-ink: #A4A7AB;
  --m: clamp(16px, 1.7vw, 28px);
  --nav-h: 56px;
  --t-display: clamp(42px, 5.8vw, 100px);
  --t-display-2: clamp(32px, 4vw, 64px);
  --t-enunciado: clamp(22px, 2.15vw, 34px);
  --t-texto: clamp(16px, 1.12vw, 18px);
  --t-pie: 14px;
  --tr: 0.34;
  --tr-nombre: calc(var(--tr) * 1em);
  --em-nombre: calc(7.283 + var(--tr) * 12);
  --em-ever: calc(2.3422 + var(--tr) * 3);
  --em-holdings: calc(4.7408 + var(--tr) * 7);
  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-expo: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-in-out: cubic-bezier(0.76, 0, 0.24, 1);
  --t-press: 140ms;
  --t-hover: 180ms;
  --t-ui: 240ms;
}
.f-paper, html[data-invertir] .f-ink {
  --bg: var(--paper); --fg: var(--ink); --soft: var(--soft-on-paper);
  --rule: rgba(16, 20, 24, 0.16); --accent: var(--ink); --on-accent: var(--paper); --tone: rgba(16, 20, 24, 0.045);
  background-color: var(--bg); color: var(--fg);
}
.f-ink, html[data-invertir] .f-paper {
  --bg: var(--ink); --fg: var(--paper); --soft: var(--soft-on-ink);
  --rule: rgba(244, 243, 240, 0.16); --accent: var(--gold); --on-accent: var(--ink); --tone: rgba(244, 243, 240, 0.06);
  background-color: var(--bg); color: var(--fg);
}
*, *::before, *::after { box-sizing: border-box; }
html {
  background: var(--paper);
  color: var(--ink);
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-padding-top: calc(var(--nav-h) + 16px);
}
html[data-invertir] { background: var(--ink); }
body {
  margin: 0;
  font-family: 'Manrope', ui-sans-serif, system-ui, sans-serif;
  font-size: var(--t-texto);
  line-height: 1.55;
  font-weight: 400;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-variant-numeric: tabular-nums;
  overflow-x: clip;
}
img, video, svg { display: block; max-width: 100%; }
img, video { height: auto; }
a { color: inherit; }
button { font: inherit; color: inherit; }
h1, h2, h3, p, ul, ol, figure { margin: 0; }
ul, ol { padding: 0; list-style: none; }
::selection { background: var(--accent, var(--ink)); color: var(--on-accent, var(--paper)); }
:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }
.vh { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.saltar { position: fixed; left: var(--m); top: 8px; z-index: 100; padding: 10px 14px; background: var(--ink); color: var(--paper); text-decoration: none; transform: translateY(-150%); }
.saltar:focus { transform: none; }
.display {
  font-size: var(--t-display);
  font-weight: 400;
  line-height: 0.92;
  letter-spacing: -0.045em;
  text-wrap: balance;
}
.display-2 {
  font-size: var(--t-display-2);
  font-weight: 400;
  line-height: 0.98;
  letter-spacing: -0.04em;
  text-wrap: balance;
}
.linea { display: block; }
.cabecera, main > section, .pie {
  --grid: var(--rule);
  background-image: linear-gradient(var(--grid), var(--grid)), linear-gradient(var(--grid), var(--grid)), linear-gradient(var(--grid), var(--grid)), linear-gradient(var(--grid), var(--grid)); 
  background-size: 1px 100%, 1px 100%, 1px 100%, 100% 1px;
  background-position: calc(var(--m) + (100% - 2 * var(--m)) / 8) 0, 50% 0, calc(var(--m) + (100% - 2 * var(--m)) * 7 / 8) 0, 0 50%;
  background-repeat: no-repeat;
  background-attachment: scroll, scroll, scroll, fixed;
}
.holding { --grid: var(--rule); }
.boton {
  display: inline-flex; align-items: center; gap: 12px;
  min-height: 48px; padding: 0 22px;
  background: var(--accent); color: var(--on-accent);
  font-size: var(--t-texto); font-weight: 500; letter-spacing: 0; text-decoration: none;
  transition: transform var(--t-press) var(--ease-out), background-color var(--t-hover) ease;
}
.boton:active { transform: scale(0.97); }
.boton:focus-visible { outline-color: var(--fg); }
@media (hover: hover) and (pointer: fine) {
  .boton:hover { background: color-mix(in oklab, var(--accent) 86%, var(--fg)); }
}
.cabecera { container-type: inline-size; padding: clamp(10px, 1.6vw, 22px) var(--m) clamp(8px, 1vw, 14px); }
.nombre {
  font-weight: 300;
  text-transform: uppercase;
  letter-spacing: var(--tr-nombre);
  font-size: calc((100cqi - 2 * var(--m)) / var(--em-nombre));
  line-height: 0.74;
  white-space: nowrap;
  padding-top: 0.04em;
}
.nombre__a, .nombre__b { display: inline-block; letter-spacing: var(--tr-nombre); }
.nombre__b .ult { letter-spacing: 0; }
.barra { position: sticky; top: 0; z-index: 50; container-type: inline-size; }
.barra__fila {
  display: grid; grid-template-columns: repeat(8, 1fr); align-items: center;
  height: var(--nav-h); padding: 0 var(--m);
  border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); 
}
.lockup { grid-column: 1 / span 2; display: inline-flex; align-items: flex-end; gap: calc(1.3 * var(--cap)); --cap: 10.5px; color: inherit; text-decoration: none; justify-self: start; }
.lockup__iso { display: block; width: calc(2.5553 * var(--cap)); height: calc(2.294 * var(--cap)); flex: none; }
.lockup__iso svg { width: 100%; height: 100%; overflow: visible; }
.lockup__txt {
  font-weight: 300; text-transform: uppercase; letter-spacing: 0.34em; margin-right: -0.34em;
  font-size: calc(var(--cap) / 0.72); line-height: 1; white-space: nowrap;
  text-box: trim-both cap alphabetic;
}
.barra__links { grid-column: 3 / span 5; display: grid; grid-template-columns: repeat(5, 1fr); align-self: stretch; }
.barra__links li { position: relative; display: flex; align-items: center; }
.barra__links li::before { content: ''; position: absolute; left: 0; bottom: -1px; width: 1px; height: 7px; background: currentColor; opacity: 0.55; } 
.barra__links a, .barra__idioma { font-size: var(--t-pie); text-decoration: none; padding: 6px 0 6px 10px; }
.barra__links a { position: relative; }
.barra__fin { grid-column: 8; justify-self: end; display: flex; align-items: center; gap: 18px; }
.barra__idioma { padding-right: 0; font-weight: 500; }
.invertir {
  appearance: none; background: none; border: 0; padding: 6px 0; cursor: pointer;
  font-size: var(--t-pie); color: inherit; white-space: nowrap;
  text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 0.28em; text-decoration-thickness: 1px;
  transition: text-decoration-color var(--t-hover) ease;
}
@media (hover: hover) and (pointer: fine) { .invertir:hover { text-decoration-color: currentColor; } }
.menu .invertir { margin-top: 20px; font-size: var(--t-texto); text-decoration-color: currentColor; display: block; }
@media (hover: hover) and (pointer: fine) {
  .barra__links a, .barra__idioma { text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 0.28em; text-decoration-thickness: 1px; transition: text-decoration-color var(--t-hover) ease; }
  .barra__links a:hover, .barra__idioma:hover { text-decoration-color: currentColor; }
}
.barra__menu { display: none; }
.barra__progreso { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--fg); transform-origin: 0 50%; transform: scaleX(0); opacity: 0; } 
@supports (animation-timeline: scroll()) { @media screen {
  .barra__progreso { opacity: 1; animation: progreso linear both; animation-timeline: scroll(root block); }
  @keyframes progreso { from { transform: scaleX(0); } to { transform: scaleX(1); } }
  .lockup__txt { animation: llega linear both; animation-timeline: scroll(root block); animation-range: 0 22vh; }
  @keyframes llega { from { opacity: 0; } }
} }
.menu { position: fixed; inset: var(--menu-top, var(--nav-h)) 0 0 0; padding: 32px var(--m); overflow-y: auto; }
.menu ul { display: grid; gap: 4px; }
.menu a { font-size: clamp(34px, 9vw, 48px); letter-spacing: -0.035em; text-decoration: none; line-height: 1.15; }
.menu__idioma { display: inline-block; margin-top: 32px; font-size: var(--t-texto) !important; text-decoration: underline !important; }
.portada {
  position: relative; container-type: inline-size; overflow: clip;
  display: grid; grid-template-columns: repeat(8, 1fr); align-content: start;
  grid-template-rows: auto 1fr auto;
  min-height: calc(100svh - var(--nav-h) - 9.2cqi); padding: 0 var(--m) clamp(28px, 4.5vh, 56px);
}
.portada__diagonal { position: absolute; left: 0; bottom: clamp(170px, 24vh, 230px); width: 100%; height: calc(100cqi * 0.6822); pointer-events: none; }
.portada__diagonal line { stroke: var(--rule); stroke-width: 1; }
.portada__lema { grid-column: 2 / span 2; margin-top: clamp(40px, 9vh, 110px); padding-left: 10px; font-size: var(--t-pie); line-height: 1.45; }
.portada__cuerpo { grid-column: 5 / span 4; margin-top: clamp(40px, 9vh, 110px); padding-left: 10px; position: relative; }
.portada__lead { font-size: var(--t-enunciado); line-height: 1.3; letter-spacing: -0.018em; max-width: 36ch; text-wrap: pretty; }
@media (min-width: 1180px) { .portada__lead { line-height: 1.16; } }
.portada__cuerpo .boton { margin-top: clamp(28px, 4vh, 44px); }
.sectores { grid-column: 1 / -1; grid-row: 3; display: grid; grid-template-columns: repeat(8, 1fr); margin-top: clamp(48px, 8vh, 96px); position: relative; }
.sectores__i--software { grid-column: 1 / span 3; }
.sectores__i--energia { grid-column: 4 / span 3; }
.sectores__i--robotica { grid-column: 7 / span 2; }
.sectores a { display: block; text-decoration: none; padding: 0 16px 0 10px; }
.sectores__i--software a { padding-left: 0; }
.sectores__t { display: block; font-size: var(--t-display); line-height: 0.9; letter-spacing: -0.045em; transition: transform var(--t-ui) var(--ease-out); }
.sectores__d { display: block; margin-top: 16px; max-width: 30ch; color: var(--soft); font-size: var(--t-pie); line-height: 1.45; }
@media (hover: hover) and (pointer: fine) {
  .sectores a:hover .sectores__t { transform: translateX(6px); }
}
.grupo { position: relative; view-timeline: --grupo block; }
.grupo__escena {
  container-type: inline-size;
  display: grid; grid-template-columns: repeat(8, 1fr); grid-template-rows: auto auto; align-content: center; column-gap: 0;
  padding: clamp(80px, 12vh, 140px) var(--m);
}
.grupo__cab { grid-column: 1 / span 3; grid-row: 1; align-self: end; padding-right: 24px; }
.grupo__pie { grid-column: 1 / span 3; grid-row: 2; align-self: start; padding-right: 24px; }
.grupo__iso { --icap: clamp(22px, 2.2vw, 32px); display: block; width: calc(2.5553 * var(--icap)); height: calc(2.294 * var(--icap)); margin-bottom: clamp(24px, 4vh, 40px); color: var(--fg); }
.grupo__iso svg { width: 100%; height: 100%; overflow: visible; }
.grupo__t { max-width: 14ch; }
.grupo__p { margin-top: 28px; max-width: 34ch; }
.grupo__orion { margin-top: 28px; max-width: 36ch; color: var(--soft); font-size: var(--t-pie); }
.leyenda { margin-top: 40px; display: grid; }
.leyenda__sector { border-top: 1px solid var(--rule); padding: 4px 0; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 0 16px; transition: filter var(--t-ui) ease; } 
.leyenda__sector:last-child { border-bottom: 1px solid var(--rule); } 
.leyenda__boton { appearance: none; background: none; border: 0; padding: 0; min-height: 44px; display: inline-flex; align-items: center; text-align: left; cursor: pointer; color: var(--accent); font-size: var(--t-texto); font-weight: 500; align-self: center; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 0.3em; text-decoration-thickness: 1px; transition: text-decoration-color var(--t-hover) ease; }
.leyenda__boton[aria-pressed='true'] { text-decoration-color: currentColor; }
@media (hover: hover) and (pointer: fine) { .leyenda__boton:hover { text-decoration-color: currentColor; } }
.leyenda__cabeza { align-self: center; color: var(--fg); }
.carta { grid-column: 4 / span 5; grid-row: 1 / span 2; align-self: center; position: relative; width: 100%; aspect-ratio: var(--ar); max-height: calc(100svh - var(--nav-h) - 48px); margin-left: auto; overflow: clip; }
.carta__lienzo { position: absolute; inset: 0; }
.carta__svg { width: 100%; height: 100%; overflow: hidden; }
.carta__todo { transform-box: view-box; transform-origin: var(--ox) var(--oy); }
.carta__svg .e { fill: var(--fg); }
.carta__svg .b5 { opacity: 0.42; }
.carta__svg .b4 { opacity: 0.68; }
.carta__svg .b3 { opacity: 0.9; }
.carta__svg .halo { fill: var(--fg); opacity: 0.09; }
.carta__lineas line { stroke: var(--fg); stroke-opacity: 0.32; stroke-width: 1; vector-effect: non-scaling-stroke; fill: none; }
.carta__anillos .anillo { fill: none; stroke: var(--accent); stroke-width: 1.2; vector-effect: non-scaling-stroke; transform-box: fill-box; transform-origin: center; transition: stroke-width var(--t-ui) ease, opacity var(--t-ui) ease; }
.carta__m43 { fill: none; stroke: var(--fg); stroke-opacity: 0.55; stroke-width: 1; stroke-dasharray: 2 3; vector-effect: non-scaling-stroke; }
.carta__etq { position: absolute; transform: translate(clamp(16px, 2vw, 26px), -50%); white-space: nowrap; line-height: 1.15; padding: 2px 6px; margin-left: -6px; background: var(--bg); pointer-events: none; transition: filter var(--t-ui) ease; }
.carta__etq b { display: block; font-weight: 500; color: var(--accent); font-size: var(--t-texto); }
.carta__etq i { display: block; font-style: normal; color: var(--soft); font-size: var(--t-pie); }
.carta__etq--m43 { transform: translate(14px, -10%); background: none; }
.carta__zoom { position: absolute; left: var(--zx); top: var(--zy); transform: translate(clamp(22px, 2.6vw, 36px), -50%); white-space: nowrap; line-height: 1.15; padding: 3px 8px; margin-left: -8px; background: var(--bg); pointer-events: none; opacity: 0; transition: filter var(--t-ui) ease; }
.carta__zoom b { display: block; font-weight: 500; color: var(--accent); font-size: var(--t-enunciado); letter-spacing: -0.02em; }
.carta__zoom i { display: block; font-style: normal; color: var(--fg); font-size: var(--t-texto); }
.carta__zoom--m43 { transform: translate(18px, -50%); background: none; }
.carta__zoom--m43 i { color: var(--soft); font-size: var(--t-pie); }
.grupo[data-activo] .leyenda__sector:not(.es-activo),
.grupo[data-activo] .carta__etq:not(.es-activo):not(.carta__etq--m43),
.grupo[data-activo] .carta__zoom:not(.es-activo):not(.carta__zoom--m43) { filter: opacity(0.32); }
.grupo[data-activo] .anillo:not(.es-activo) { stroke-opacity: 0.3; }
.grupo[data-activo] .anillo.es-activo { stroke-width: 2.4; }
@media (min-width: 1024px) and (min-height: 680px) {
  .grupo { height: 240vh; }
  .grupo__escena { position: sticky; top: var(--nav-h); height: calc(100svh - var(--nav-h)); padding-top: 0; padding-bottom: 0; }
}
.companias { container-type: inline-size; padding: clamp(96px, 15vh, 190px) var(--m) clamp(72px, 10vh, 120px); }
.companias__cab { display: grid; grid-template-columns: repeat(8, 1fr); align-items: end; }
.companias__t { grid-column: 1 / span 4; }
.companias__p { grid-column: 5 / span 3; padding-left: 10px; max-width: 40ch; }
.companias__cuerpo { display: grid; grid-template-columns: repeat(8, 1fr); margin-top: clamp(56px, 9vh, 110px); }
.tabla { grid-column: 1 / span 5; width: 100%; border-collapse: collapse; }
.sector__cab th { position: sticky; top: var(--nav-h); z-index: 3; background: var(--bg); text-align: left; font-weight: 400; padding: 56px 0 18px; border-bottom: 1px solid var(--rule); } 
main > .companias { background-size: 0 0, 0 0, 0 0, 100% 1px; }
.sector:first-of-type .sector__cab th { padding-top: 0; }
.sector__t { color: var(--accent); }
.sector__p { margin-top: 12px; color: var(--soft); max-width: 52ch; }
.fila { transition: background-color var(--t-hover) ease; }
.fila th, .fila td { text-align: left; vertical-align: baseline; border-top: 1px solid var(--rule); padding: 18px 16px 20px 0; font-weight: 400; } 
.fila__nombre { width: 30%; font-size: var(--t-enunciado); letter-spacing: -0.02em; line-height: 1.15; }
.fila__rel { width: 16%; font-size: var(--t-pie); color: var(--soft); }
.fila--n1 .fila__nombre { padding-left: clamp(16px, 2vw, 32px); }
.fila__marca { display: block; font-size: var(--t-pie); letter-spacing: 0; color: var(--soft); margin-top: 6px; }
.fila__desc { width: 36%; }
.fila__sitio { width: 18%; white-space: nowrap; font-size: var(--t-pie); padding-right: 0 !important; }
.fila__link { text-decoration: underline; text-decoration-color: var(--rule); text-underline-offset: 0.3em; text-decoration-thickness: 1px; transition: text-decoration-color var(--t-hover) ease; }
.fila__suave { color: var(--soft); }
.fila.es-activa { background-color: var(--tone); }
@media (hover: hover) and (pointer: fine) {
  .fila__link:hover { text-decoration-color: currentColor; }
}
.vistas { grid-column: 6 / span 3; position: sticky; top: calc(var(--nav-h) + 12vh); align-self: start; display: grid; padding-left: clamp(24px, 3vw, 48px); }
.vista { grid-area: 1 / 1; opacity: 0; transition: opacity 320ms var(--ease-out); }
.vista.es-activa { opacity: 1; }
.vista img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; object-position: top; background: var(--tone); filter: grayscale(1) contrast(1.04); transition: filter 420ms var(--ease-out); }
.vistas:hover .vista img { filter: none; }
.vista figcaption { margin-top: 10px; font-size: var(--t-pie); color: var(--soft); }
.cadena { container-type: inline-size; display: grid; grid-template-columns: repeat(8, 1fr); padding: clamp(80px, 13vh, 160px) var(--m) clamp(96px, 14vh, 180px); }
.cadena__cab { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(8, 1fr); align-items: end; }
.cadena__t { grid-column: 1 / span 4; }
.cadena__p { grid-column: 5 / span 3; padding-left: 10px; max-width: 38ch; }
.cadena__cuerpo { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(8, 1fr); margin-top: clamp(64px, 10vh, 120px); }
.pasos { grid-column: 1 / -1; grid-row: 1; display: grid; gap: clamp(28px, 4.5vh, 52px); }
.paso { margin-left: calc((100cqi - 2 * var(--m)) / 8 * var(--i)); padding-left: 10px; border-left: 1px solid var(--rule); } 
.paso__t { font-size: var(--t-display-2); line-height: 1; letter-spacing: -0.04em; }
.paso__d { margin-top: 12px; color: var(--soft); max-width: 36ch; }
.paso:last-child .paso__t { color: var(--fg); }
.cadena__foto { grid-column: 1 / span 3; grid-row: 1; align-self: end; padding-right: 24px; position: relative; z-index: 1; }
.marco { overflow: clip; background: var(--tone); }
.marco img { width: 100%; aspect-ratio: 2 / 1; object-fit: cover; }
.cadena__foto figcaption { margin-top: 10px; font-size: var(--t-pie); color: var(--soft); }
.holding { container-type: inline-size; padding: clamp(32px, 6vh, 72px) var(--m); }
.panel { display: grid; grid-template-columns: repeat(8, 1fr); align-items: stretch; padding: clamp(28px, 4vw, 56px) clamp(20px, 3vw, 48px); overflow: clip; }
.panel__izq { grid-column: 1 / span 5; display: flex; flex-direction: column; gap: clamp(32px, 5vh, 56px); padding-right: clamp(16px, 4vw, 72px); }
.panel__izq .boton { align-self: stretch; margin-top: auto; }
.panel__foto { grid-column: 6 / span 3; }
.chaflan { clip-path: polygon(0 0, 66% 0, 100% 23%, 100% 100%, 0 100%); background: #0b0e11; }
.panel__video { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 38% 50%; }
.panel__foto figcaption { padding-top: 10px; font-size: var(--t-pie); color: var(--soft); text-wrap: pretty; display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.panel__pausa { appearance: none; background: none; border: 0; padding: 4px 0; min-height: 32px; cursor: pointer; color: var(--fg); font-size: var(--t-pie); text-decoration: underline; text-underline-offset: 0.3em; text-decoration-thickness: 1px; text-decoration-color: var(--rule); flex: none; }
figcaption { text-wrap: pretty; }
.acc__h { font-weight: 400; }
.acc__item { border-top: 1px solid var(--rule); } 
.acc__item:last-child { border-bottom: 1px solid var(--rule); } 
.acc__boton { appearance: none; background: none; border: 0; width: 100%; font-weight: 400; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 22px 0; text-align: left; cursor: pointer; font-size: var(--t-enunciado); letter-spacing: -0.02em; line-height: 1.15; }
.acc__signo { position: relative; flex: none; width: 16px; height: 16px; }
.acc__signo::before, .acc__signo::after { content: ''; position: absolute; left: 0; top: 50%; width: 16px; height: 1px; background: currentColor; transition: transform var(--t-ui) var(--ease-out); } 
.acc__signo::after { transform: rotate(90deg); }
.acc__boton[aria-expanded='true'] .acc__signo::after { transform: rotate(0deg); }
.acc__panel { display: grid; grid-template-rows: 1fr; }
.js .acc__panel { grid-template-rows: 0fr; transition: grid-template-rows 320ms var(--ease-out); }
.js .acc__item.es-abierto .acc__panel { grid-template-rows: 1fr; }
.js .acc__item:not(.es-abierto) .acc__panel > div { visibility: hidden; transition: visibility 0s linear 320ms; }
.acc__panel > div { overflow: hidden; }
.acc__panel p { max-width: 44ch; }
.acc__alcance { margin: 14px 0 26px; font-size: var(--t-pie); line-height: 1.6; }
.acc__alcance span { color: var(--soft); }
.contacto { container-type: inline-size; padding: clamp(96px, 15vh, 190px) var(--m) clamp(64px, 10vh, 120px); }
.contacto__cab { display: grid; grid-template-columns: repeat(8, 1fr); align-items: end; }
.contacto__t { grid-column: 1 / span 4; }
.contacto__p { grid-column: 5 / span 3; padding-left: 10px; }
.ciudades { margin-top: clamp(56px, 8vh, 96px); }
.ciudad { display: grid; grid-template-columns: repeat(8, 1fr); align-items: baseline; border-top: 1px solid var(--rule); padding: 18px 0 20px; } 
.ciudad__n { grid-column: 1 / span 4; justify-self: start; font-size: var(--t-display-2); line-height: 1; letter-spacing: -0.04em; }
.ciudad__dato { grid-column: 5 / span 4; padding-left: 10px; color: var(--soft); min-height: 1.5em; }
.correo { border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); } 
.correo__a { display: flex; align-items: baseline; justify-content: space-between; gap: 24px; padding: 18px 0 22px; text-decoration: none; font-size: var(--t-display-2); line-height: 1.05; letter-spacing: -0.04em; }
.correo__txt { overflow-wrap: anywhere; }
.correo__flecha { flex: none; display: inline-grid; place-items: center; width: calc(var(--t-display-2) * 0.9); height: calc(var(--t-display-2) * 0.9); background: var(--accent); color: var(--on-accent); font-size: var(--t-enunciado); letter-spacing: 0; transition: transform var(--t-ui) var(--ease-out); align-self: center; }
@media (hover: hover) and (pointer: fine) {
  .correo__a:hover .correo__flecha { transform: translateX(6px); }
  .correo__a:hover .correo__txt { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 0.12em; }
}
.pie { container-type: inline-size; padding: clamp(56px, 9vh, 96px) var(--m) 20px; }
.pie__fila { display: grid; grid-template-columns: repeat(8, 1fr); align-items: start; gap: 32px 0; }
.pie__grupo { grid-column: 1 / span 3; }
.pie__h { font-size: var(--t-pie); font-weight: 400; color: var(--soft); }
.pie__grupo ul { margin-top: 12px; columns: 2; column-gap: 24px; font-size: var(--t-pie); line-height: 1.9; }
.pie__grupo a, .pie__meta a, .pie__arriba { text-decoration: underline; text-decoration-color: var(--rule); text-underline-offset: 0.3em; text-decoration-thickness: 1px; }
.pie__creditos { grid-column: 5 / span 3; padding-left: 10px; font-size: var(--t-pie); color: var(--soft); max-width: 46ch; }
.pie__arriba { grid-column: 8; justify-self: end; font-size: var(--t-pie); }
.pie__nombre {
  margin-top: clamp(80px, 16vh, 200px);
  font-weight: 300; text-transform: uppercase; white-space: nowrap;
  letter-spacing: var(--tr-nombre);
  font-size: calc((100cqi - 2 * var(--m)) / var(--em-nombre)); line-height: 0.74;
}
.pie__nombre .nombre__b .ult { letter-spacing: 0; }
.pie__meta { margin-top: clamp(20px, 3vh, 32px); padding-top: 14px; border-top: 1px solid var(--rule); display: flex; justify-content: space-between; align-items: baseline; gap: 16px; font-size: var(--t-pie); color: var(--soft); } 
.pie__meta .invertir { color: var(--fg); padding: 0; text-decoration-color: var(--rule); } 
@media (max-width: 1023px) {
  .portada { min-height: auto; }
  .portada__diagonal { display: none; }
  .sectores { margin-top: clamp(72px, 10vh, 120px); }
  .barra__links { display: none; }
  .barra__fin { grid-column: 6 / span 2; }
  .barra__menu { display: inline-block; grid-column: 8; justify-self: end; appearance: none; background: none; border: 0; padding: 8px 0; font-size: var(--t-pie); font-weight: 500; cursor: pointer; }
  .grupo__cab, .grupo__pie { grid-column: 1 / -1; padding-right: 0; }
  .grupo__cab { grid-row: 1; }
  .carta { grid-column: 1 / -1; grid-row: 2; margin-top: 40px; max-height: none; }
  .grupo__pie { grid-row: 3; margin-top: 32px; }
  .grupo__t { max-width: 12ch; }
  .leyenda { max-width: 640px; }
  .carta__todo { transform: scale(2.1); }
  .carta__etq { display: none; }
  .carta__zoom { opacity: 1; left: var(--mx); top: var(--my); transform: translate(calc(-100% - 14px), -50%); text-align: right; margin-left: 0; }
  .carta__zoom b { font-size: var(--t-texto); }
  .carta__zoom i { display: none; }
  .carta__zoom--m43 i { display: block; }
  .carta__zoom--m43 { transform: translate(calc(-100% - 10px), -50%); }
  .companias__t, .cadena__t, .contacto__t { grid-column: 1 / -1; }
  .companias__p, .cadena__p, .contacto__p { grid-column: 1 / -1; padding-left: 0; margin-top: 20px; }
  .tabla { grid-column: 1 / -1; }
  .vistas { display: none; }
  .panel__izq { grid-column: 1 / -1; padding-right: 0; }
  .panel__foto { grid-column: 1 / -1; width: min(100%, 420px); margin-top: 48px; }
  .pie__grupo { grid-column: 1 / span 4; }
  .pie__creditos { grid-column: 5 / span 4; }
  .pie__arriba { grid-column: 1 / -1; justify-self: start; }
}
@media (max-width: 760px) {
  :root { --nav-h: 52px; }
  .cabecera, main > section, .pie { background-image: none; }
  .barra__fila { display: flex; align-items: center; gap: 20px; }
  .lockup { --cap: 9.4px; margin-right: auto; }
  .nombre, .pie__nombre { white-space: normal; line-height: 0.8; }
  .nombre__a .ult { letter-spacing: 0; }
  .nombre__a { display: block; font-size: calc((100cqi - 2 * var(--m)) / var(--em-ever)); }
  .nombre__b { display: block; font-size: calc((100cqi - 2 * var(--m)) / var(--em-holdings)); margin-top: 0.12em; }
  .portada { padding-bottom: 72px; }
  .portada__lema { grid-column: 1 / -1; padding-left: 0; margin-top: 40px; }
  .portada__cuerpo { grid-column: 1 / -1; padding-left: 0; margin-top: 28px; }
  .tabla, .tabla tbody, .tabla tr, .tabla th, .tabla td { display: block; width: auto; }
  .sector__cab th { padding-top: 88px; position: static; border-bottom: 0; }
  .sector:first-of-type .sector__cab th { padding-top: 0; }
  .fila { border-top: 1px solid var(--rule); padding: 16px 0 18px; } 
  .fila th, .fila td { border: 0; padding: 0; }
  .fila--n1 { padding-left: 16px; }
  .fila--n1 .fila__nombre { padding-left: 0; }
  .fila__rel { margin-top: 4px; }
  .fila__desc { margin-top: 8px; }
  .fila__sitio { margin-top: 8px; }
  .fila__sitio:empty { display: none; }
  .paso { margin-left: calc(6vw * var(--i)); }
  .cadena__foto { grid-column: 1 / -1; grid-row: 2; margin-top: 56px; padding-right: 0; }
  .sectores { grid-template-columns: 1fr; row-gap: 28px; }
  .sectores__i--software, .sectores__i--energia, .sectores__i--robotica { grid-column: 1 / -1; }
  .sectores a { padding: 0; }
  .panel { padding: 24px 18px; }
  .ciudad { grid-template-columns: 1fr; gap: 6px; }
  .ciudad__n, .ciudad__dato { grid-column: 1; padding-left: 0; }
  .correo__a { font-size: clamp(22px, 7vw, 32px); }
  .pie__grupo, .pie__creditos { grid-column: 1 / -1; padding-left: 0; }
  .pie__nombre .nombre__a { display: block; font-size: calc((100cqi - 2 * var(--m)) / var(--em-ever)); }
  .pie__nombre .nombre__b { display: block; font-size: calc((100cqi - 2 * var(--m)) / var(--em-holdings)); margin-top: 0.12em; }
  .pie__meta { flex-direction: column; gap: 4px; }
}
@media screen and (prefers-reduced-motion: no-preference) {
  html { scroll-behavior: smooth; }
  .cabecera { overflow: clip; }
  .nombre__a, .nombre__b { animation: sube 1200ms var(--ease-expo); }
  .nombre__b { animation-delay: 70ms; animation-fill-mode: backwards; }
  .portada__lema, .portada__lead, .portada__cuerpo .boton { animation: entra 1000ms var(--ease-expo); }
  @keyframes sube { from { transform: translateY(0.42em); } }
  @keyframes entra { from { transform: translateY(22px); } }
  .menu:not([hidden]) li { animation: entra 420ms var(--ease-out); }
  .menu li:nth-child(2) { animation-delay: 50ms; } .menu li:nth-child(3) { animation-delay: 100ms; }
  .menu li:nth-child(4) { animation-delay: 150ms; } .menu li:nth-child(5) { animation-delay: 200ms; }
}
@supports (animation-timeline: view()) {
  @media screen and (prefers-reduced-motion: no-preference) {
    .companias__t, .cadena__t, .contacto__t, .panel__t .linea, .grupo__t {
      animation: sube-scroll linear both; animation-timeline: view(); animation-range: entry 10% entry 90%;
    }
    .companias__p, .cadena__p, .contacto__p, .grupo__p, .ciudad, .correo, .paso, .fila {
      animation: entra-scroll linear both; animation-timeline: view(); animation-range: entry 5% entry 75%;
    }
    @keyframes sube-scroll { from { opacity: 0; transform: translateY(0.3em); } }
    @keyframes entra-scroll { from { opacity: 0; transform: translateY(24px); } }
    .obturador { animation: obturador linear both; animation-timeline: view(); animation-range: entry 0% cover 45%; }
    .obturador img { animation: asienta linear both; animation-timeline: --obra; animation-range: entry 0% cover 60%; }
    .cadena__foto { view-timeline: --obra block; }
    @keyframes obturador { from { clip-path: inset(100% 0 0 0); } to { clip-path: inset(0 0 0 0); } }
    @keyframes asienta { from { transform: scale(1.12); } to { transform: scale(1); } }
    .panel__video { animation: deriva linear both; animation-timeline: view(); animation-range: cover 0% cover 100%; }
    @keyframes deriva { from { transform: scale(1.08) translateY(-3%); } to { transform: scale(1.08) translateY(3%); } }
    .pie__nombre { animation: sube-scroll linear both; animation-timeline: view(); animation-range: entry 0% entry 100%; }
    @media (min-width: 1024px) and (min-height: 680px) {
      .carta__fondo { animation: fondo-carta linear both; animation-timeline: --grupo; animation-range: contain 0% contain 88%; }
      .carta__brillantes, .carta__m43 { animation: aparece-carta linear both; animation-timeline: --grupo; animation-range: contain -6% contain 10%; }
      .carta__lineas line { stroke-dasharray: 1 1; animation: traza linear both; animation-timeline: --grupo; animation-range: contain 4% contain 28%; }
      .carta__anillos .anillo { animation: anillo linear both; animation-timeline: --grupo; animation-range: contain 26% contain 38%; }
      .carta__etq { animation: rotulo-vida linear both; animation-timeline: --grupo; animation-range: contain 30% contain 70%; }
      .carta__etq--m43 { animation-range: contain 40% contain 70%; }
      .carta__todo { animation: acerca linear both; animation-timeline: --grupo; animation-range: contain 64% contain 88%; }
      .carta__zoom { animation: zoom-rotulo linear both; animation-timeline: --grupo; animation-range: contain 86% contain 96%; }
      .leyenda__sector { animation: entra-scroll linear both; animation-timeline: --grupo; animation-range: contain 34% contain 46%; }
      .leyenda__sector:nth-child(2) { animation-range: contain 38% contain 50%; }
      .leyenda__sector:nth-child(3) { animation-range: contain 42% contain 54%; }
      .grupo__orion { animation: aparece-carta linear both; animation-timeline: --grupo; animation-range: contain 50% contain 62%; }
      .grupo__iso, .grupo__t, .grupo__p { animation: sube-scroll linear both; animation-timeline: --grupo; animation-range: contain -10% contain 6%; }
    }
    @keyframes aparece-carta { from { opacity: 0; } }
    @keyframes fondo-carta { 0% { opacity: 0; } 20% { opacity: 1; } 72% { opacity: 1; } 100% { opacity: 0.3; } }
    @keyframes rotulo-vida { 0% { opacity: 0; } 30% { opacity: 1; } 80% { opacity: 1; } 100% { opacity: 0; } }
    @keyframes acerca { from { transform: none; } to { transform: scale(2.6); } }
    @keyframes zoom-rotulo { from { opacity: 0; } to { opacity: 1; } }
    @keyframes traza { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
    @keyframes anillo { from { opacity: 0; transform: scale(0.4); } }
  }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition-duration: 1ms !important; }
}
@media print {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .saltar, .barra, .vistas, .panel__pausa, .invertir, .portada__diagonal { display: none !important; }
  .f-paper, .f-ink, html[data-invertir] .f-paper, html[data-invertir] .f-ink {
    --bg: #fff; --fg: #101418; --soft: #555A61; --accent: #101418; --on-accent: #fff; --rule: rgba(16, 20, 24, 0.25); --tone: transparent;
    background: #fff; color: #101418;
  }
  .cabecera, main > section, .pie { background-image: none; }
  .grupo { height: auto; }
  .grupo__escena { position: static; height: auto; }
  .sector__cab th { position: static; }
  .boton { border: 1px solid #101418; } 
  section, .panel, .fila, .paso, .ciudad { break-inside: avoid; }
}
