/* Vigilancia de Marcas — hoja de estilos del sitio. Documentación del sistema en docs/ARQUITECTURA.md. */
@font-face { font-family: "Articulat Respaldo"; src: local("Helvetica Neue"), local("HelveticaNeue"), local("Arial"), local("ArialMT"); font-weight: 200 500; size-adjust: 95.6%; }
@font-face { font-family: "Articulat Respaldo"; src: local("Helvetica Neue Bold"), local("HelveticaNeue-Bold"), local("Arial Bold"), local("Arial-BoldMT"); font-weight: 600 900; size-adjust: 96.5%; }

:root {
  
  --primary: #6211FF;        
  --primary-2: #550EE2;      
  --primary-3: #460BBA;      
  --primary-soft: #E7DDFF;   
  --primary-tint: #F3EFFF;   

  --ink: #302359;            
  --ink-2: #2B2A38;          
  --ink-3: #5A5A6E;          

  --line: #E5E5EE;           
  --line-strong: #D2D2E0;    

  --bg: #FAF9F7;             
  --bg-2: #F7F7FB;           
  --bg-3: #F3EFFF;           
  --paper: #F0EEE9;          
  --paper-line: #DCD7CB;

  --ok: #197857;             
  --warn: #8E6506;           
  --bad: #B22A2E;            
  --warn-dot: #F9BC0D;       
  --evidence: #7F6530;       
  --source: #1F6F88;         
  --neutral-0: #FFFFFF;      
  --champagne-300: #E6D3A6;  

--sans: "articulat-cf", "Articulat Respaldo", ui-sans-serif, system-ui, "Segoe UI", Helvetica, Arial, sans-serif;
  
  --serif: "mixta-pro", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;
  --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

--fs-display: clamp(2.5rem, 1.4rem + 4.6vw, 4.5rem);
  --fs-h1: clamp(2rem, 1.35rem + 2.7vw, 3.5rem);
  --fs-h2: clamp(1.5rem, 1.3rem + 0.85vw, 2rem);
  --fs-h3: clamp(1.1875rem, 1.12rem + 0.3vw, 1.375rem);
  --fs-lead: clamp(1.125rem, 1.05rem + 0.35vw, 1.25rem);
  --fs-body: 1rem; --fs-small: 1rem; --fs-meta: 0.75rem;

--r-sm: 6px;               
  --r-md: 6px;               
  --r-lg: 8px;               
  --r-xl: 12px;              
  --shadow-hairline: 0 1px 0 rgba(36, 35, 42, .06);
  --shadow-panel: 0 8px 24px rgba(24, 22, 36, .06);
  --shadow-hover: var(--shadow-panel);
  
  --shadow-parallel: -4px 4px 14px rgba(24, 22, 36, .10);
  --ring: 0 0 0 3px rgba(98, 17, 255, .30);

  --ease: cubic-bezier(.22, 1, .36, 1);
  --t: 190ms; --t-fast: 140ms;
  
  --t-tarjeta: 440ms; --t-control: 300ms;
  
  --t-barrido: 640ms;
  --ease-barrido: cubic-bezier(.65, 0, .35, 1);

  --site-menu-flujo: calc(clamp(10px, 1.1vw, 18px) + 62px);
  --max: 1240px; --gutter: clamp(24px, 7vw, 128px);
  --section: clamp(48px, 7vw, 96px); --section-sm: clamp(40px, 5vw, 64px);
}
@media (max-width: 640px) { :root { --fs-body: 0.9375rem; --fs-small: 0.9375rem; } }

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
body { margin: 0; font-family: var(--sans); font-size: var(--fs-body); line-height: 1.6; color: var(--ink-2); background: var(--bg); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img, svg { max-width: 100%; height: auto; display: block; }
a { color: var(--primary); text-decoration: none; }
a:hover { color: var(--primary-2); }
p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }
h1, h2, h3, h4 { margin: 0 0 .5em; font-family: var(--sans); color: var(--ink); line-height: 1.15; letter-spacing: -.015em; overflow-wrap: anywhere; font-weight: 700; }
h1 { font-size: var(--fs-h1); } h2 { font-size: var(--fs-h2); } h3 { font-size: var(--fs-h3); } h4 { font-size: var(--fs-lead); }
::selection { background: #D0BCFF; color: var(--ink); }

.serif { font-weight: 700; letter-spacing: -.015em; }
.display { font-weight: 800; font-size: var(--fs-display); line-height: 1.05; letter-spacing: -.03em; color: var(--ink); }
.lead { font-size: var(--fs-lead); line-height: 1.6; color: var(--ink-2); max-width: 40em; }
.small { font-size: var(--fs-small); }
.mono { font-family: var(--mono); font-variant-numeric: tabular-nums; letter-spacing: -.01em; white-space: nowrap; }
.nowrap { white-space: nowrap; }
.muted { color: var(--ink-3); }
.stack > * + * { margin-top: 32px; }
.mt-1 { margin-top: 16px; } .mt-2 { margin-top: 32px; } .mt-3 { margin-top: 48px; }
.actions { display: flex; flex-wrap: wrap; gap: 12px; }

:focus-visible { outline: none; box-shadow: var(--ring); border-radius: 4px; }
.skip-link { position: absolute; left: -999px; top: 8px; background: var(--ink); color: #fff; padding: 8px 16px; border-radius: var(--r-sm); z-index: 100; }
.skip-link:focus { left: 8px; }

.container { width: min(var(--max), calc(100% - 2 * var(--gutter))); margin-inline: auto; }
.narrow { width: min(var(--max), calc(100% - 2 * var(--gutter))); margin-inline: auto; }
.narrow > * { max-width: 860px; }
.section { padding-block: var(--section); }
.section-sm { padding-block: var(--section-sm); }
.tinted { background: var(--bg-2); }
.section-head { max-width: 44em; margin-bottom: clamp(32px, 4vw, 48px); }
.section-head .lead { margin-top: .5em; }
.pending-line { margin: 12px 0 0; }

.btn { max-width: 100%; display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 18px; border-radius: var(--r-sm); font-family: var(--sans); font-weight: 600; font-size: .875rem; letter-spacing: .01em; line-height: 1.2; border: 1px solid transparent; cursor: pointer; text-align: center; transition: background var(--t) var(--ease), color var(--t) var(--ease), border-color var(--t) var(--ease), transform var(--t-fast) var(--ease); }
.btn-primary { background: var(--primary); color: #fff; }
.btn-primary:hover { background: var(--primary-2); color: #fff; }
.btn-primary:active { background: var(--primary-3); transform: translateY(1px); }
.btn-secondary { background: var(--bg); color: var(--ink); border-color: var(--line-strong); }
.btn-secondary:hover { background: var(--bg-2); border-color: #A8A8BD; }
.btn-secondary:active { background: var(--primary-tint); transform: translateY(1px); }
.btn-lg { min-height: 48px; padding-inline: 22px; font-size: .9375rem; }
.btn:disabled { opacity: .5; cursor: not-allowed; transform: none; }
.link { font-weight: 600; }
.link::after { content: " →"; }

.proto-bar { background: var(--bg-3); color: var(--ink-2); font-size: var(--fs-meta); padding: 8px 0; }
.proto-bar .container { display: flex; flex-wrap: wrap; gap: 8px 20px; justify-content: space-between; align-items: center; }
@media (max-width: 640px) { .proto-extra { display: none; } }
.proto-bar button { background: none; border: 0; color: var(--ink-2); font: inherit; cursor: pointer; text-decoration: underline; padding: 8px 0; min-height: 44px; }
.proto-bar button:hover { color: var(--ink); }

.site-header {
  --menu-hueco: clamp(10px, 1.1vw, 18px);
  --menu-flujo: calc(var(--menu-hueco) + 62px);
  position: sticky; top: var(--menu-hueco); z-index: 40;
  margin-top: var(--menu-hueco);
  
  pointer-events: none;
}
.header-pastilla {
  pointer-events: auto;
  
  width: min(1120px, calc(100% - 2 * var(--gutter)));
  margin-inline: auto;
  display: grid; grid-template-columns: auto 1fr; align-items: center;
  gap: clamp(12px, 1.6vw, 32px);
  padding: 8px clamp(14px, 1.4vw, 22px);
  background: linear-gradient(165deg, #FCFBF9 0%, #F5F4F1 100%);
  border: 1px solid var(--line);
  border-radius: var(--r-xl);
  box-shadow: 0 1px 2px rgba(24,22,36,.05), 0 10px 30px rgba(24,22,36,.08);
  transition: background var(--t) var(--ease), border-color var(--t) var(--ease),
              box-shadow var(--t) var(--ease);
}

.brand { grid-column: 1; grid-row: 1; display: inline-flex; align-items: center; flex: none; }

.brand img { height: 30px; width: auto; filter: brightness(1) invert(0); transition: filter var(--t) var(--ease); }

.nav-caja { grid-column: 2; grid-row: 1; justify-self: end; display: flex; align-items: center; gap: clamp(10px, 1.4vw, 24px); }
.nav { display: flex; align-items: center; gap: clamp(0px, .5vw, 6px); }
.nav a {
  display: inline-flex; align-items: center; min-height: 44px;
  color: var(--ink-2); font-weight: 500; padding: 0 10px;
  border-radius: var(--r-sm); font-size: .875rem; white-space: nowrap;
  transition: color var(--t) var(--ease), background var(--t) var(--ease);
}
.nav a:hover { color: var(--ink); background: var(--bg-2); }
.nav a[aria-current="page"]:not(.btn) { color: var(--primary-3); background: var(--primary-tint); }
.nav .btn { margin-left: 8px; color: #fff; padding-inline: 16px; }
.nav .btn:hover { color: #fff; background: var(--primary-2); }
.nav-toggle { display: none; background: none; border: 1px solid var(--line-strong); border-radius: var(--r-sm); width: 44px; height: 44px; cursor: pointer; color: var(--ink); transition: color var(--t) var(--ease), border-color var(--t) var(--ease); }
.nav-toggle:hover { border-color: var(--primary); color: var(--primary); }

.site-header.es-vidrio .header-pastilla {
  background: rgba(22, 19, 34, .72);
  -webkit-backdrop-filter: blur(20px) saturate(1.6);
  backdrop-filter: blur(20px) saturate(1.6);
  border-color: rgba(255, 255, 255, .18);
  box-shadow: 0 18px 50px rgba(16, 13, 26, .28);
}
.es-vidrio .brand img { filter: brightness(0) invert(1); }
.es-vidrio .nav a { color: #fff; }
.es-vidrio .nav a:hover { color: #fff; background: rgba(255, 255, 255, .16); }
.es-vidrio .nav a[aria-current="page"]:not(.btn) { color: #fff; background: rgba(255, 255, 255, .20); }
.es-vidrio .nav-toggle { color: #fff; border-color: rgba(255, 255, 255, .34); }
.es-vidrio .nav-toggle:hover { color: #fff; border-color: #fff; }

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .site-header.es-vidrio .header-pastilla { background: rgba(22, 19, 34, .95); }
}

@media (max-width: 1199px) {
  .header-pastilla { width: auto; grid-template-columns: auto 1fr; gap: 12px; padding: 8px 12px 8px 16px; }
  .brand { grid-column: 1; }
  .nav-toggle { grid-column: 2; grid-row: 1; justify-self: end; display: inline-flex; align-items: center; justify-content: center; }
  .nav-caja { display: none; grid-column: 1 / -1; grid-row: 2; justify-self: stretch; align-items: stretch; flex-direction: column; gap: 4px; padding-top: 8px; margin-top: 4px; border-top: 1px solid var(--line); }
  .menu-abierto .nav-caja { display: flex; }
  .es-vidrio .nav-caja { border-top-color: rgba(255, 255, 255, .18); }
  .nav { flex-direction: column; align-items: stretch; gap: 2px; }
  .nav a { padding: 0 12px; font-size: 1rem; }
  .nav .btn { margin: 8px 0 0; }
}

.hero { padding-block: clamp(40px, 5vw, 72px) clamp(40px, 5vw, 64px); }
.hero-grid { display: grid; gap: clamp(32px, 4vw, 64px); align-items: end; }
@media (min-width: 1024px) { .hero-grid { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); } }
.hero .display { max-width: 12em; margin-bottom: .4em; }
.scenes { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
@media (min-width: 1024px) { .scenes { grid-template-columns: 1fr; } }
.scene { position: relative; background: var(--nacar); border: 1px solid var(--line); border-radius: var(--r-md); padding: 20px; box-shadow: var(--shadow-hairline); transition: border-color var(--t) var(--ease), box-shadow var(--t) var(--ease), transform var(--t-fast) var(--ease); }
.scene:hover { border-color: var(--primary); box-shadow: var(--shadow-panel); transform: translateY(-2px); }
.scene:focus-within { box-shadow: var(--ring); }
.scene .stretched:focus-visible { box-shadow: none; }
.scene .btn { margin-top: 4px; }
.stretched:hover { transform: none; }
.scene h2 { font-size: var(--fs-h3); font-weight: 700; margin: 0 0 8px; }
.scene p { color: var(--ink-2); font-size: var(--fs-small); margin: 0 0 12px; }
.stretched::before { content: ""; position: absolute; inset: 0; border-radius: inherit; }

.facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: clamp(24px, 3vw, 40px); }
.fact { border-top: 1px solid var(--line-strong); padding-top: 20px; }
.fact h3 { margin-bottom: .4em; }
.fact p { color: var(--ink-2); }
.fact .source { font-size: var(--fs-meta); color: var(--ink-3); margin-top: 16px; }

.thesis .display { max-width: 15em; font-size: var(--fs-h1); }
.pillars { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 20px; margin-top: clamp(32px, 5vw, 64px); }
.pillar { background: var(--nacar); border: 1px solid var(--line); border-radius: var(--r-md); padding: 24px; box-shadow: var(--shadow-hairline); }
.pillar h3 { font-size: var(--fs-h2); font-weight: 700; margin-bottom: .3em; }
.pillar p { color: var(--ink-2); font-size: var(--fs-small); }
.pillar p strong { color: var(--ink); font-weight: 600; }
.pillar.is-future { border-color: var(--primary-soft); background: var(--primary-tint); }
.pillar.is-future h3 { color: var(--primary-3); }

.doors { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 24px; }
.door { display: flex; flex-direction: column; gap: 12px; background: var(--nacar); border: 1px solid var(--line); border-radius: var(--r-lg); padding: clamp(24px, 3vw, 40px); }
.door h3 { font-size: var(--fs-h2); font-weight: 700; margin: 0; }
.door p { color: var(--ink-2); margin: 0; }
.door .btn { align-self: flex-start; margin-top: 8px; }
.door.is-invite { background: var(--primary-tint); border-color: var(--primary-soft); }

.steps { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 12px; counter-reset: step; list-style: none; padding: 0; margin: 0; }
.step { padding: 16px 8px 12px 0; border-top: 1px solid var(--line-strong); counter-increment: step; }
.step::before { content: counter(step); font-family: var(--mono); font-size: var(--fs-meta); color: var(--ink-3); display: block; margin-bottom: 8px; }
.step strong { display: block; font-weight: 600; margin-bottom: 4px; color: var(--ink); }
.step span { font-size: var(--fs-small); color: var(--ink-2); display: block; }
.step.is-final::before, .step.is-final strong { color: var(--primary-3); }
@media (max-width: 1024px) { .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 520px) { .steps { grid-template-columns: 1fr; } }
.steps-nav { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px; }
.steps-nav button { font: inherit; font-size: .875rem; font-weight: 600; background: var(--bg); color: var(--ink-2); border: 1px solid var(--line-strong); border-radius: 999px; padding: 10px 16px; min-height: 44px; cursor: pointer; transition: border-color var(--t) var(--ease), color var(--t) var(--ease), background var(--t) var(--ease); }
.steps-nav button:hover { border-color: var(--primary); color: var(--primary); }
.steps-nav button[aria-selected="true"] { background: var(--ink); color: #fff; border-color: var(--ink); }
.step-panel { background: var(--nacar); border: 1px solid var(--line); border-radius: var(--r-lg); padding: clamp(20px, 3vw, 32px); box-shadow: var(--shadow-hairline); }
.step-panel h3 { font-weight: 700; }
.step-panel .who { font-size: var(--fs-small); color: var(--ink-3); }

.product { background: var(--bg-2); border-radius: var(--r-lg); padding: clamp(16px, 2.5vw, 32px); min-width: 0; }
.tinted .product, .step-panel .product { background: transparent; padding: 0; }
.caption { font-size: var(--fs-meta); color: var(--ink-3); margin: 0 0 16px; }
.asunto { background: var(--nacar); border: 1px solid var(--line); border-radius: var(--r-md); padding: 20px; max-width: 560px; box-shadow: var(--shadow-hairline); }
.asunto + .asunto { margin-top: 16px; }
.step-panel .asunto { background: var(--bg-2); border-color: transparent; box-shadow: none; }
.asunto-head { display: flex; justify-content: space-between; gap: 8px 12px; align-items: baseline; flex-wrap: wrap; border-bottom: 1px solid var(--line); padding-bottom: 12px; margin-bottom: 16px; }
.step-panel .asunto-head { border-bottom-color: var(--line-strong); }
.asunto-head strong { font-size: 1rem; color: var(--ink); }
.status { display: inline-flex; align-items: center; gap: 8px; font-size: var(--fs-small); font-weight: 500; color: var(--ink-2); white-space: nowrap; }
.status::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--line-strong); flex: none; }
.status-ok::before { background: var(--ok); }
.status-primary::before { background: var(--primary); }
.status-warn::before { background: var(--warn-dot); }
.kv { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px 20px; font-size: var(--fs-small); margin: 0; }
.kv dt { color: var(--ink-3); margin: 0; }
.kv dd { margin: 0; color: var(--ink-2); }
@media (max-width: 420px) { .kv { grid-template-columns: 1fr; gap: 4px 0; } .kv dd { margin-bottom: 8px; } }

.historial { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 6px; }
.historial li {
  font-size: var(--fs-meta); color: var(--ink-3);
  padding-left: 18px; position: relative; line-height: 1.45;
}
.historial li::before {
  content: ""; position: absolute; left: 4px; top: .55em;
  width: 6px; height: 6px; border-radius: 50%; background: var(--primary-soft);
  box-shadow: 0 0 0 1px var(--primary-soft);
}
.historial li + li::after {
  content: ""; position: absolute; left: 6.5px; top: -6px; height: 8px;
  border-left: 1px solid var(--line-strong);
}
.relevo-note:empty { margin: 0; }
.relevo-note { color: var(--ink-2); }

.pending { display: inline-block; max-width: 100%; font-size: var(--fs-meta); font-weight: 600; color: var(--ink-3); }
.pending::before { content: ""; display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--warn-dot); margin-right: 8px; vertical-align: 1px; }

.rumbo {
  display: inline-block; font-size: var(--fs-meta); font-weight: 600;
  letter-spacing: .01em; padding: 3px 9px; border-radius: 4px;
  background: var(--primary-tint); color: var(--primary-3);
  vertical-align: baseline;
}
.espectro .rumbo, .lamina .rumbo, .sala .rumbo, .tablero .rumbo, .cta-final .rumbo {
  background: rgba(255, 255, 255, .14); color: #C4B5FD;
}

.sala .constancia .rumbo, .constancia .rumbo { background: var(--primary-tint); color: var(--primary-3); }

.pending { display: none; }
.js-revision .pending { display: inline-block; }

.solo-pendiente { display: none; }
.js-revision .solo-pendiente { display: block; }
.js-revision p:has(> .pending:only-child) { display: block; }
@supports not selector(:has(*)) { .pending-line { display: none; } .js-revision .pending-line { display: block; } }

.constancia { --constancia-relleno: clamp(20px, 3vw, 40px); background: var(--paper); border: 1px solid var(--paper-line); border-radius: var(--r-sm); padding: clamp(20px, 3vw, 40px); max-width: 640px; font-size: var(--fs-small); min-width: 0; box-shadow: var(--shadow-parallel); }
.constancia-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; border-bottom: 1px solid var(--paper-line); padding-bottom: 16px; margin-bottom: 16px; }
.constancia-head h3 { font-weight: 700; margin: 0 0 4px; font-size: var(--fs-h3); }
.folio { display: block; font-family: var(--mono); font-size: var(--fs-meta); color: var(--ink-3); font-variant-numeric: tabular-nums; }
.seal { width: 64px; height: 64px; border-radius: 50%; border: 1.5px solid var(--primary); display: grid; place-items: center; flex: none; background: #fff; }
.seal img { width: 42px; height: 42px; }
.constancia-foot { border-top: 1px solid var(--paper-line); margin-top: 20px; padding-top: 16px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 160px), 1fr)); gap: 12px 20px; }
.sig { display: flex; flex-direction: column; gap: 4px; font-size: var(--fs-meta); color: var(--ink-3); }
.sig strong { font-weight: 700; color: var(--ink); font-size: 1rem; }
.constancia-note { font-size: var(--fs-meta); color: var(--ink-3); margin-top: 16px; }

.constancia-banda {
  margin: calc(-1 * var(--constancia-relleno, 24px)) calc(-1 * var(--constancia-relleno, 24px)) 18px;
  padding: 9px clamp(16px, 2vw, 24px);
  background: var(--primary-tint); color: var(--primary-3);
  font-size: var(--fs-meta); font-weight: 600; letter-spacing: .01em;
  border-bottom: 1px solid var(--primary-soft);
  border-radius: var(--r-sm) var(--r-sm) 0 0;
}

.linea-rumbo {
  margin-top: clamp(16px, 2vw, 22px); max-width: 60ch;
  font-size: var(--fs-small); color: var(--ink-3);
}
.linea-rumbo .rumbo { margin-right: 8px; }
.espectro .linea-rumbo, .lamina .linea-rumbo, .sala .linea-rumbo { color: rgba(247, 247, 251, .74); }

.grid-2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: clamp(32px, 4vw, 64px); align-items: start; }
.grid-3 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: clamp(24px, 3vw, 40px); }
.grid-2 > *, .grid-3 > * { min-width: 0; }
.list-clean { list-style: none; padding: 0; margin: 0; }
.list-clean li { padding: 16px 0; border-top: 1px solid var(--line); }
.list-clean li:last-child { border-bottom: 1px solid var(--line); }
.list-clean strong { display: block; margin-bottom: 4px; color: var(--ink); }
.tinted .list-clean li { border-color: var(--line-strong); }
.actors { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); gap: 20px; }
.actor { padding: 24px; border: 1px solid var(--line); border-radius: var(--r-md); background: var(--nacar); box-shadow: var(--shadow-hairline); }
.actor h3 { font-size: var(--fs-lead); margin-bottom: .3em; }
.actor p { color: var(--ink-2); font-size: var(--fs-small); }

.voices { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: clamp(24px, 3vw, 40px); }
.voice { margin: 0; border-top: 1px solid var(--line-strong); padding-top: 20px; display: flex; flex-direction: column; gap: 16px; }
.voice blockquote { margin: 0; font-weight: 700; font-size: var(--fs-lead); line-height: 1.45; letter-spacing: -.015em; color: var(--ink); }
.voice figcaption { font-size: var(--fs-small); color: var(--ink-3); display: grid; gap: 8px; }
.voice figcaption strong { color: var(--ink); font-weight: 600; }
.commits { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 0 clamp(24px, 4vw, 64px); }
.commit { border-top: 1px solid var(--line); padding: 20px 0; }
.commit strong { font-weight: 700; font-size: var(--fs-lead); display: block; margin-bottom: 8px; line-height: 1.3; letter-spacing: -.015em; color: var(--ink); }
.commit p { color: var(--ink-2); font-size: var(--fs-small); }
.timeline { list-style: none; padding: 0; margin: 0; }
.timeline li { display: grid; grid-template-columns: minmax(140px, 220px) minmax(0, 1fr); gap: 8px 32px; padding: 20px 0; border-top: 1px solid var(--line); }
.timeline li:last-child { border-bottom: 1px solid var(--line); }
.tinted .timeline li { border-color: var(--line-strong); }
.timeline .when { font-weight: 700; font-size: var(--fs-lead); line-height: 1.3; letter-spacing: -.015em; color: var(--ink); }
.timeline .what { color: var(--ink-2); }
@media (max-width: 640px) { .timeline li { grid-template-columns: 1fr; } }

.table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.compare { width: 100%; border-collapse: collapse; font-size: var(--fs-small); min-width: 640px; }
.compare th, .compare td { text-align: left; padding: 16px 12px; border-top: 1px solid var(--line); vertical-align: top; }
.tinted .compare th, .tinted .compare td { border-top-color: var(--line-strong); }
.compare tbody th { color: var(--ink); font-weight: 600; width: 12em; }
.compare thead th { border-top: 0; font-weight: 600; color: var(--ink-3); font-size: var(--fs-small); }

.plans { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 24px; }
.plan { border: 1px solid var(--line); border-radius: var(--r-lg); padding: clamp(24px, 3vw, 40px); background: var(--bg); display: flex; flex-direction: column; gap: 16px; min-width: 0; box-shadow: var(--shadow-hairline); }
.plan h2 { margin: 0; font-weight: 700; }
.plan-for { color: var(--ink-2); margin: 0; }
.price { font-size: var(--fs-h1); font-weight: 800; line-height: 1; letter-spacing: -.03em; font-variant-numeric: tabular-nums; margin: 0; color: var(--ink); }
.price small { font-size: var(--fs-small); color: var(--ink-3); font-weight: 400; margin-left: 8px; letter-spacing: 0; }
.price-alt { color: var(--ink-2); font-size: var(--fs-small); margin: 0; }
.plan ul { list-style: none; padding: 0; margin: 0; }
.plan li { padding: 12px 0; border-top: 1px solid var(--line); font-size: var(--fs-small); display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.plan li > span:first-child { color: var(--ink-3); }
.plan li > span:last-child { font-variant-numeric: tabular-nums; text-align: right; }
.plan .btn { margin-top: auto; align-self: flex-start; }

.form { display: grid; gap: 20px; max-width: 560px; }
.field { display: grid; gap: 8px; }
.field label, .fieldset legend { font-weight: 600; font-size: var(--fs-small); color: var(--ink); }
.field input, .field select, .field textarea { font: inherit; font-size: 1rem; padding: 12px 14px; border: 1px solid var(--line-strong); border-radius: var(--r-sm); background: var(--bg); color: var(--ink-2); min-height: 44px; width: 100%; transition: border-color var(--t) var(--ease), box-shadow var(--t) var(--ease); }
.field textarea { min-height: 120px; resize: vertical; }
.field input:hover, .field select:hover, .field textarea:hover { border-color: #A8A8BD; }
.field input:focus, .field select:focus, .field textarea:focus { outline: none; border-color: var(--primary); box-shadow: var(--ring); }
.hint { font-size: var(--fs-meta); color: var(--ink-3); }
.fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.fieldset legend { padding: 0; margin-bottom: 8px; }
.choice { display: flex; gap: 12px; flex-wrap: wrap; }
.choice label { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border: 1px solid var(--line-strong); border-radius: var(--r-sm); cursor: pointer; font-weight: 500; font-size: var(--fs-small); min-height: 44px; background: var(--bg); }
.choice label:hover { border-color: var(--primary); }
.choice input, .check input { accent-color: var(--primary); width: 18px; height: 18px; flex: none; }
.check { display: flex; gap: 12px; align-items: flex-start; font-size: var(--fs-small); color: var(--ink-2); cursor: pointer; }
.check input { margin-top: 4px; }
.check:hover { color: var(--ink); }
.form-result { display: none; background: var(--primary-tint); border: 1px solid var(--primary-soft); border-radius: var(--r-lg); padding: 20px 24px; max-width: 560px; }
.form-result.is-visible { display: block; }
.form-result:focus { outline: none; }
.form-result:focus-visible { box-shadow: var(--ring); }
.form-result h2 { font-size: var(--fs-h3); font-weight: 700; }

.cta-final { background: radial-gradient(circle at 84% 12%, rgba(98, 17, 255, .22), transparent 42%), linear-gradient(135deg, #24232A 0%, #302359 100%); color: #F7F7FB; border-radius: var(--r-xl); padding: clamp(32px, 5vw, 64px); display: grid; gap: 20px; }
.cta-final h2 { color: #fff; font-weight: 800; letter-spacing: -.025em; max-width: 18em; margin: 0; }
.cta-final p { color: #C6C4D4; max-width: 40em; margin: 0; }
.cta-final .btn-primary { background: #fff; color: var(--ink); }
.cta-final .btn-primary:hover { background: var(--primary-soft); color: var(--ink); }
.cta-final .btn-secondary { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .45); }
.cta-final .btn-secondary:hover { background: rgba(255, 255, 255, .08); border-color: #fff; color: #fff; }
.site-footer { border-top: 1px solid var(--line); padding-block: 40px; font-size: var(--fs-small); color: var(--ink-2); }
.footer-row { display: flex; flex-wrap: wrap; gap: 20px 40px; justify-content: space-between; align-items: flex-start; }
.footer-brand img { height: 24px; width: auto; margin-bottom: 12px; }
.footer-brand p { margin: 0; }
.footer-links { display: flex; flex-wrap: wrap; gap: 4px 20px; }
.footer-links a { color: var(--ink-2); padding: 8px 0; }
.footer-links a:hover { color: var(--primary); }
.legal { font-size: var(--fs-meta); color: var(--ink-3); max-width: 64em; margin-top: 20px; }

.page-head { padding-block: clamp(40px, 5vw, 72px) clamp(32px, 4vw, 48px); }
.page-head .display { max-width: 14em; margin-bottom: .4em; }
.page-head .lead { margin-bottom: 1.4em; }
.aside-note { background: var(--bg-2); border-radius: var(--r-md); padding: 20px 24px; font-size: var(--fs-small); color: var(--ink-2); }
.aside-note strong { color: var(--ink); }
.tinted .aside-note { background: var(--bg); }

:root {

--fs-hero: clamp(2.5rem, 1.5rem + 3.4vw, 4rem);
  --fs-declara: clamp(1.75rem, 1rem + 3.1vw, 3.25rem);

--section-xl: clamp(72px, 9vw, 144px);
  --aire: clamp(36px, 4vw, 64px);

--riel: rgba(48, 35, 89, .07);
  --riel-fuerte: rgba(48, 35, 89, .16);

--noche: #110F1C;
  --noche-2: #181525;
  --noche-linea: rgba(255, 255, 255, .12);
  --noche-texto: #F7F7FB;
  --noche-tenue: rgba(247, 247, 251, .68);
}

.grano { position: relative; isolation: isolate; }
.grano::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  opacity: .5; mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.86' numOctaves='3'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23g)' opacity='.055'/%3E%3C/svg%3E");
}
.puntos { position: relative; isolation: isolate; }
.puntos::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background-image: radial-gradient(circle at 1px 1px, rgba(255,255,255,.14) 1px, transparent 0);
  background-size: 28px 28px;
  -webkit-mask-image: radial-gradient(ellipse 80% 60% at 50% 0%, #000 30%, transparent 75%);
  mask-image: radial-gradient(ellipse 80% 60% at 50% 0%, #000 30%, transparent 75%);
}

.rieles { position: relative; }
.rieles::before { content: none; }
.rieles-visibles::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0;
  width: min(var(--max), calc(100% - 2 * var(--gutter)));
  margin-inline: auto;
  background-image: repeating-linear-gradient(to right, var(--riel) 0 1px, transparent 1px calc(100% / 4));
  
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, rgba(0,0,0,.35) 42%, transparent 78%);
  mask-image: linear-gradient(to bottom, #000 0%, rgba(0,0,0,.35) 42%, transparent 78%);
}
.rieles > * { position: relative; z-index: 1; }
@media (max-width: 900px) { .rieles::before { display: none; } }

.hero-editorial {
  position: relative;
  padding-block: clamp(64px, 9vw, 152px) clamp(56px, 7vw, 120px);
  background: linear-gradient(180deg, #FFFFFF 0%, #F7F7FB 58%, #F0EEE9 100%);
  border-bottom: 1px solid var(--line);
  overflow: clip;
}

.hero-editorial::after {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0;
  background: radial-gradient(ellipse 60% 48% at 88% 6%, rgba(98,17,255,.10), transparent 62%);
}
.hero-editorial > * { position: relative; z-index: 1; }
.hero-titular {
  font-size: var(--fs-hero); font-weight: 800; line-height: 1;
  letter-spacing: -.025em; color: var(--ink); margin: 0;
  max-width: 13ch; text-wrap: balance;
}
.hero-bajada {
  font-size: clamp(1.0625rem, .98rem + .42vw, 1.375rem); line-height: 1.55;
  color: var(--ink-2); max-width: 46ch; margin: clamp(24px, 3vw, 40px) 0 0;
}
.hero-pie {
  display: flex; flex-wrap: wrap; align-items: center; gap: 12px 32px;
  margin-top: clamp(32px, 4vw, 56px); padding-top: 24px;
  border-top: 1px solid var(--riel-fuerte);
}
.hero-dato { font-family: var(--mono); font-size: var(--fs-meta); color: var(--ink-3); }
.hero-dato strong { color: var(--ink); font-weight: 500; }

.escenas { display: grid; gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; }
@media (min-width: 720px) { .escenas { grid-template-columns: 1fr 1fr; } }
.escena {
  position: relative; background: rgba(255,255,255,.72);
  backdrop-filter: blur(6px);
  padding: clamp(24px, 2.6vw, 36px);
  display: flex; flex-direction: column; gap: 10px;
  transition: background var(--t) var(--ease);
}
.escena:hover { background: var(--nacar-alto); }
.escena:focus-within { background: var(--nacar-alto); box-shadow: inset 0 0 0 2px var(--primary); }
.escena h2 { font-size: var(--fs-h3); font-weight: 700; margin: 0; letter-spacing: -.015em; }
.escena p { color: var(--ink-2); font-size: var(--fs-small); margin: 0; }
.escena .marca-puerta {
  font-family: var(--mono); font-size: var(--fs-meta); color: var(--ink-3);
  display: block; margin-bottom: 4px;
}
.escena .ir {
  margin-top: auto; padding-top: 12px; font-weight: 600; font-size: var(--fs-small);
  color: var(--primary-3); display: inline-flex; align-items: center; gap: 8px;
}
.escena .ir::after { content: "→"; transition: transform var(--t) var(--ease); }
.escena:hover .ir::after { transform: translateX(4px); }

.escenas-seccion { margin-top: clamp(-40px, -3vw, -24px); padding-bottom: var(--section-xl); position: relative; z-index: 2; }
.escenas { box-shadow: 0 12px 40px rgba(24,22,36,.07); background: var(--line); }

.declaracion { padding-block: var(--section-xl); background: var(--bg); }
.declaracion .frase {
  font-size: var(--fs-declara); font-weight: 800; line-height: 1.08;
  letter-spacing: -.03em; color: var(--ink); margin: 0; max-width: 20ch;
  text-wrap: balance;
}
.declaracion .frase em { font-style: italic; color: var(--primary); }
.declaracion .apoyo { margin-top: clamp(20px, 2.5vw, 32px); max-width: 52ch; color: var(--ink-2); font-size: var(--fs-lead); line-height: 1.6; }

.columnas { display: grid; gap: 1px; background: var(--riel-fuerte); margin-top: clamp(40px, 5vw, 72px); }
@media (min-width: 860px) { .columnas { grid-template-columns: repeat(3, 1fr); } }
.columna { background: var(--nacar); padding: clamp(24px, 2.6vw, 36px) clamp(20px, 2.2vw, 32px); }
.tinted .columna { background: var(--bg-2); }
.columna .indice { font-family: var(--mono); font-size: var(--fs-meta); color: var(--ink-3); display: block; margin-bottom: 16px; }
.columna h3 { font-size: clamp(1.25rem, 1.1rem + .6vw, 1.625rem); font-weight: 700; letter-spacing: -.02em; margin: 0 0 10px; }
.columna p { color: var(--ink-2); font-size: var(--fs-small); margin: 0; }
.columna p strong { color: var(--ink); font-weight: 600; }
.columna.es-destino { background: linear-gradient(165deg, #F3EFFF 0%, rgba(255, 255, 255, .5) 70%); }
.columna.es-destino h3 { color: var(--primary-3); }
.columna.es-destino .indice { color: var(--primary); }

.sala {
  background: radial-gradient(ellipse 70% 50% at 78% 4%, rgba(98,17,255,.20), transparent 58%),
              linear-gradient(165deg, var(--noche-2) 0%, var(--noche) 62%, #0C0A14 100%);
  color: var(--noche-texto);
  padding-block: var(--section-xl);
  border-block: 1px solid var(--noche-linea);
}
.sala h2, .sala h3 { color: #fff; }
.sala .lead, .sala p { color: var(--noche-tenue); }
.sala .caption { color: rgba(247,247,251,.5); }

.sala .asunto {
  background: rgba(255, 255, 255, .07); border-color: rgba(255, 255, 255, .14);
  -webkit-backdrop-filter: blur(18px) saturate(1.5);
  backdrop-filter: blur(18px) saturate(1.5);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12), 0 18px 44px rgba(10, 8, 18, .32);
}
.sala .asunto strong, .sala .asunto dd { color: #fff; }
.sala .asunto dt { color: rgba(247,247,251,.55); }
.sala .asunto-head { border-bottom-color: var(--noche-linea); }
.sala .status { color: var(--noche-tenue); }
.sala .mono { color: #C4B5FD; }
.sala .link { color: #C4B5FD; }
.sala .link:hover { color: #fff; }

.sala .product { background: transparent; padding: 0; }

.sala .constancia { box-shadow: 0 24px 64px rgba(0,0,0,.45); }
.sala .constancia h3 { color: var(--ink); }
.sala .constancia .mono { color: var(--ink-3); }
.sala .constancia dt { color: var(--ink-3); }
.sala .constancia dd, .sala .constancia strong { color: var(--ink-2); }
.sala .constancia .sig strong { color: var(--ink); }
.sala .constancia p { color: var(--ink-3); }

.sala .step { border-top-color: var(--noche-linea); }
.sala .step::before { color: rgba(247,247,251,.45); }
.sala .step strong { color: #fff; }
.sala .step span { color: var(--noche-tenue); }
.sala .step.is-final::before { color: #C4B5FD; }
.sala .step.is-final strong { color: #C4B5FD; }
.sala .pending { color: var(--noche-tenue); }
.sala .constancia .pending { color: var(--ink-3); }

.link { position: relative; text-decoration: none; }
.link::before {
  content: ""; position: absolute; left: 0; right: 0; bottom: -3px; height: 1px;
  background: currentColor; transform: scaleX(0); transform-origin: left;
  transition: transform var(--t) var(--ease);
}
.link:hover::before, .link:focus-visible::before { transform: scaleX(1); }

.js-motion [data-revelar] { opacity: 0; transform: translateY(14px); }
.js-motion [data-revelar].es-visible {
  opacity: 1; transform: none;
  transition: opacity 620ms var(--ease), transform 620ms var(--ease);
  transition-delay: var(--retraso, 0ms);
}

.js-motion .seal { transform: scale(.92); opacity: 0; }
.js-motion .constancia.es-visible .seal {
  transform: none; opacity: 1;
  transition: transform 520ms cubic-bezier(.34, 1.4, .64, 1) 260ms, opacity 320ms var(--ease) 260ms;
}
@media (prefers-reduced-motion: reduce) {
  .js-motion [data-revelar], .js-motion .seal { opacity: 1 !important; transform: none !important; }
}

.section { padding-block: var(--section-xl); }
.section-head { margin-bottom: var(--aire); }
.facts { gap: clamp(32px, 4vw, 64px); }
.fact { border-top-color: var(--riel-fuerte); }

.btn-primary {
  box-shadow: 0 1px 2px rgba(24,22,36,.14);
  transition: background var(--t) var(--ease), box-shadow var(--t) var(--ease), transform var(--t-fast) var(--ease);
}
.btn-primary:hover { box-shadow: 0 8px 18px -6px rgba(24,22,36,.30); transform: translateY(-2px); }
.btn-primary:active { transform: translateY(0); box-shadow: 0 1px 2px rgba(24,22,36,.14); }
.btn-secondary { transition: background var(--t) var(--ease), border-color var(--t) var(--ease), box-shadow var(--t) var(--ease), transform var(--t-fast) var(--ease); }
.btn-secondary:hover { box-shadow: var(--shadow-panel); transform: translateY(-2px); }
.btn-secondary:active { transform: translateY(0); box-shadow: none; }

.fact { position: relative; transition: transform var(--t) var(--ease); }
.fact::after {
  content: ""; position: absolute; top: -1px; left: 0; right: 0; height: 2px;
  background: var(--primary); transform: scaleX(0); transform-origin: left;
  transition: transform 420ms var(--ease);
}
.fact:hover::after { transform: scaleX(1); }
.fact:hover h3 { color: var(--primary-3); }
.fact h3 { transition: color var(--t) var(--ease); }

.columna { transition: background var(--t) var(--ease), transform var(--t) var(--ease); }
.columna:hover { background: var(--bg-2); transform: translateY(-3px); }
.tinted .columna:hover { background: var(--nacar-alto); }
.columna.es-destino:hover { background: linear-gradient(165deg, #EDE6FF 0%, #FFFFFF 70%); }
.columna .indice { transition: color var(--t) var(--ease); }
.columna:hover .indice { color: var(--primary); }

.door, .plan, .actor {
  transition: border-color var(--t) var(--ease), box-shadow var(--t) var(--ease), transform var(--t) var(--ease);
}
.door:hover, .plan:hover, .actor:hover {
  border-color: var(--line-strong); box-shadow: var(--shadow-panel); transform: translateY(-3px);
}
.door:hover h3 { color: var(--primary-3); }
.door h3 { transition: color var(--t) var(--ease); }

.list-clean li, .timeline li { transition: background var(--t) var(--ease); }
.list-clean li:hover, .timeline li:hover { background: var(--bg-2); }
.tinted .list-clean li:hover, .tinted .timeline li:hover { background: var(--nacar-alto); }
.compare tbody tr { transition: background var(--t) var(--ease); }
.compare tbody tr:hover { background: var(--bg-2); }
.tinted .compare tbody tr:hover { background: var(--nacar-alto); }

.step { transition: border-color var(--t) var(--ease); }
.step::before { transition: color var(--t) var(--ease), transform var(--t) var(--ease); }
.step:hover { border-top-color: var(--primary); }
.step:hover::before { color: var(--primary); transform: translateY(-2px); }
.sala .step:hover { border-top-color: #C4B5FD; }
.sala .step:hover::before { color: #C4B5FD; }

.nav a:not(.btn) { position: relative; }
.nav a:not(.btn)::after {
  content: ""; position: absolute; left: 8px; right: 8px; bottom: 6px; height: 1.5px;
  background: var(--primary); transform: scaleX(0); transform-origin: left;
  transition: transform 260ms var(--ease);
}
.nav a:not(.btn):hover::after { transform: scaleX(1); }
@media (max-width: 1199px) { .nav a:not(.btn)::after { display: none; } }
.footer-links a { position: relative; transition: color var(--t) var(--ease); }
.brand img { transition: opacity var(--t) var(--ease); }
.brand:hover img { opacity: .72; }

.escena { transition: background var(--t) var(--ease), transform var(--t) var(--ease); }
.escena:hover { background: var(--nacar-alto); transform: translateY(-2px); }
.escena h2 { transition: color var(--t) var(--ease); }
.escena:hover h2 { color: var(--primary-3); }

.constancia { transition: box-shadow 420ms var(--ease), transform 420ms var(--ease); }
.constancia:hover { box-shadow: -8px 8px 26px rgba(24,22,36,.16); transform: translateY(-2px); }
.sala .constancia:hover { box-shadow: 0 30px 72px rgba(0,0,0,.55), 0 0 0 1px rgba(196,181,253,.28); }

.js-motion [data-revelar] {
  opacity: 0; transform: translateY(28px); filter: blur(6px);
}
.js-motion [data-revelar].es-visible {
  opacity: 1; transform: none; filter: blur(0);
  transition: opacity 760ms var(--ease), transform 860ms var(--ease), filter 760ms var(--ease);
  transition-delay: var(--retraso, 0ms);
}

@keyframes entra-titular {
  from { opacity: 0; transform: translateY(32px); filter: blur(10px); }
  to   { opacity: 1; transform: none; filter: blur(0); }
}
@keyframes entra-suave {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: none; }
}
.js-motion .hero-titular { animation: entra-titular 1000ms var(--ease) both; }
.js-motion .hero-bajada { animation: entra-suave 820ms var(--ease) 180ms both; }
.js-motion .hero-pie { animation: entra-suave 820ms var(--ease) 340ms both; }
.js-motion .escenas { animation: entra-suave 900ms var(--ease) 460ms both; }

@media (prefers-reduced-motion: reduce) {
  .js-motion [data-revelar], .js-motion .seal,
  .js-motion .hero-titular, .js-motion .hero-bajada,
  .js-motion .hero-pie, .js-motion .escenas {
    opacity: 1 !important; transform: none !important; filter: none !important; animation: none !important;
  }
}

.steps-nav button[aria-selected="true"] { transition: background var(--t) var(--ease), box-shadow var(--t) var(--ease); }
.steps-nav button[aria-selected="true"]:hover { background: var(--primary-3); box-shadow: 0 6px 16px -6px rgba(24,22,36,.34); }

.app {
  --app-linea: rgba(255,255,255,.10);
  --app-tenue: rgba(247,247,251,.62);
  --app-dim: rgba(247,247,251,.40);
  display: grid; grid-template-columns: 208px minmax(0, 1fr);
  background: linear-gradient(168deg, #1B1729 0%, #14111F 46%, #100D1A 100%);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 12px; overflow: hidden;
  box-shadow: 0 2px 4px rgba(16,13,26,.30), 0 24px 48px -12px rgba(16,13,26,.45),
              0 48px 96px -24px rgba(16,13,26,.34);
  color: #F7F7FB;
  font-size: 13px; line-height: 1.45;
  min-width: 0;
}

.app-riel { border-right: 1px solid var(--app-linea); padding: 14px 0; background: rgba(0,0,0,.18); }
.app-marca { display: flex; align-items: center; gap: 8px; padding: 0 14px 14px; border-bottom: 1px solid var(--app-linea); margin-bottom: 10px; }
.app-marca img { width: 22px; height: 22px; }
.app-marca span { font-weight: 600; font-size: 12px; letter-spacing: -.01em; }
.app-nav { display: flex; flex-direction: column; gap: 1px; padding: 0 8px; }
.app-nav a, .app-nav span {
  display: flex; align-items: center; justify-content: space-between; gap: 8px;
  padding: 7px 10px; border-radius: 6px; color: var(--app-tenue);
  font-size: 12.5px; text-decoration: none;
}
.app-nav .es-activo { background: rgba(98,17,255,.22); color: #fff; box-shadow: inset 0 0 0 1px rgba(167,139,250,.30); }
.app-nav b { font-weight: 500; }
.app-nav .cuenta { font-family: var(--mono); font-size: 12px; color: var(--app-dim); }
.app-nav .es-activo .cuenta { color: #C4B5FD; }

.app-cuerpo { min-width: 0; display: flex; flex-direction: column; }
.app-barra {
  display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
  padding: 12px 16px; border-bottom: 1px solid var(--app-linea);
}
.app-titulo { font-size: 15px; font-weight: 600; letter-spacing: -.015em; margin: 0; }
.app-busca {
  margin-left: auto; display: flex; align-items: center; gap: 7px;
  padding: 5px 10px; border: 1px solid var(--app-linea); border-radius: 6px;
  color: var(--app-dim); font-size: 12px; background: rgba(255,255,255,.03);
}
.app-avatar {
  width: 27px; height: 27px; border-radius: 50%; display: grid; place-items: center;
  background: rgba(98,17,255,.30); color: #DDD2FF; font-size: 12px; font-weight: 600;
  box-shadow: inset 0 0 0 1px rgba(167,139,250,.35); flex: none;
}

.app-cifras { display: grid; grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)); border-bottom: 1px solid var(--app-linea); }
.app-cifra { padding: 12px 16px; border-right: 1px solid var(--app-linea); }
.app-cifra:last-child { border-right: 0; }
.app-cifra b { display: block; font-size: 22px; font-weight: 700; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.app-cifra span { display: block; font-size: 12px; color: var(--app-dim); margin-top: 1px; }
.app-cifra.es-alerta b { color: #C4B5FD; }

.app-tabla { width: 100%; border-collapse: collapse; font-size: 12.5px; }
.app-tabla th {
  text-align: left; font-weight: 500; color: var(--app-dim); font-size: 12px;
  letter-spacing: .04em; text-transform: uppercase;
  padding: 9px 16px; border-bottom: 1px solid var(--app-linea); white-space: nowrap;
}
.app-tabla td { padding: 9px 16px; border-bottom: 1px solid rgba(255,255,255,.055); vertical-align: middle; }
.app-tabla tr:last-child td { border-bottom: 0; }
.app-tabla .marca { font-weight: 600; color: #fff; }
.app-tabla .dato { font-family: var(--mono); font-size: 12px; color: var(--app-tenue); font-variant-numeric: tabular-nums; white-space: nowrap; }
.app-tabla .quien { color: var(--app-tenue); white-space: nowrap; }
.app-tabla tr.es-foco td { background: rgba(98,17,255,.12); }

.pastilla {
  display: inline-flex; align-items: center; gap: 6px; white-space: nowrap;
  padding: 3px 9px; border-radius: 999px; font-size: 12px; font-weight: 600;
  border: 1px solid currentColor;
}
.pastilla::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: currentColor; flex: none; }
.p-vigente { color: #7FD6AE; }
.p-atencion { color: #E8B04B; }
.p-critico  { color: #E89086; }
.p-evidencia { color: #DFC08A; }
.p-senal { color: #C4B5FD; }

.app-aviso {
  margin: 12px 16px 16px; padding: 12px 14px; border-radius: 8px;
  background: linear-gradient(135deg, rgba(98,17,255,.20) 0%, rgba(98,17,255,.05) 70%);
  border: 1px solid rgba(167,139,250,.28);
  display: grid; gap: 6px;
}
.app-aviso strong { font-size: 13px; color: #fff; }
.app-aviso p { margin: 0; color: var(--app-tenue); font-size: 12.5px; }
.app-aviso .fila { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.app-accion {
  display: inline-flex; align-items: center; gap: 6px; padding: 5px 11px; border-radius: 6px;
  background: var(--primary); color: #fff; font-size: 12px; font-weight: 600;
}

.app-rotulo { font-size: .8125rem; color: var(--ink-3); margin: 0 0 10px; }
.sala .app-rotulo { color: rgba(247,247,251,.5); }

.escenario { position: relative; min-width: 0; }
.escenario .app { transform: perspective(2000px) rotateY(-1.6deg) rotateX(.8deg); transform-origin: left center; }
@media (max-width: 1099px) { .escenario .app { transform: none; } }

.hero-editorial .hero-rejilla { display: grid; gap: clamp(32px, 4vw, 56px); align-items: center; }

@media (min-width: 1100px) {
  .hero-editorial .hero-rejilla { grid-template-columns: minmax(0, 0.86fr) minmax(0, 1.14fr); }
  
  .hero-editorial .escenario { margin-right: min(0px, calc(var(--max) / 2 - 50vw)); }
}

@media (max-width: 620px) {
  .app-tabla th:nth-child(4), .app-tabla td:nth-child(4),
  .app-tabla th:nth-child(5), .app-tabla td:nth-child(5) { display: none; }
  .app-tabla th, .app-tabla td { padding-inline: 12px; }
  .app-cifras { grid-template-columns: repeat(2, 1fr); }
  .app-cifra:nth-child(2n) { border-right: 0; }
  .app-cifra:nth-child(-n+2) { border-bottom: 1px solid var(--app-linea); }
}

.app-compacta { grid-template-columns: 172px minmax(0, 1fr); }

.app-campos { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 0; margin: 0; }
.app-campos dt {
  padding: 9px 10px 9px 16px; color: var(--app-dim); font-size: 12px;
  letter-spacing: .04em; text-transform: uppercase;
  border-bottom: 1px solid rgba(255,255,255,.055);
}
.app-campos dd {
  margin: 0; padding: 9px 16px 9px 0; font-size: 12.5px; color: var(--app-tenue);
  border-bottom: 1px solid rgba(255,255,255,.055);
}
.app-campos dd b { color: #fff; font-weight: 600; }
.app-campos dd .dato { font-family: var(--mono); font-size: 12px; color: #C4B5FD; font-variant-numeric: tabular-nums; white-space: nowrap; }
.app-campos dt:last-of-type, .app-campos dd:last-of-type { border-bottom: 0; }
@media (max-width: 480px) {
  .app-campos { grid-template-columns: 1fr; }
  .app-campos dt { border-bottom: 0; padding-bottom: 0; }
  .app-campos dd { padding: 2px 16px 10px; }
}
.app-nota:empty { display: none; }
.app-nota {
  margin: 0; padding: 10px 16px 14px; font-size: 12px; color: #C4B5FD;
  border-top: 1px solid rgba(167,139,250,.25); background: rgba(98,17,255,.10);
}

.escenario { container-type: inline-size; }

@container (max-width: 620px) {
  .app-tabla th:nth-child(4), .app-tabla td:nth-child(4),
  .app-tabla th:nth-child(5), .app-tabla td:nth-child(5) { display: none; }
  .app-tabla th, .app-tabla td { padding-inline: 12px; }
  .app-cifras { grid-template-columns: repeat(2, 1fr); }
  .app-riel { display: none; }
  .app { grid-template-columns: 1fr; }
}
@container (min-width: 621px) and (max-width: 860px) {
  .app-tabla th:nth-child(5), .app-tabla td:nth-child(5) { display: none; }
  .app-compacta { grid-template-columns: 150px minmax(0, 1fr); }
}

@supports not (container-type: inline-size) {
  @media (max-width: 860px) { .app, .app-compacta { grid-template-columns: 1fr; } .app-riel { display: none; } }
}

.app-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.app-scroll .app-tabla { min-width: 100%; }

.app-campos dd { min-width: 0; overflow-wrap: anywhere; }
.app-campos dd .dato { white-space: nowrap; }

.site-footer {
  background: linear-gradient(180deg, #1A1728 0%, #14111F 40%, #100D1A 100%);
  color: #F7F7FB;
  border-top: 0;
  padding-block: clamp(56px, 7vw, 104px) clamp(32px, 4vw, 48px);
  font-size: var(--fs-small);
  position: relative;
}

.site-footer::before {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse 52% 60% at 14% 0%, rgba(98,17,255,.18), transparent 62%);
}
.site-footer > * { position: relative; }

.pie-cima {
  display: grid; gap: clamp(32px, 4vw, 56px);
  padding-bottom: clamp(40px, 5vw, 64px);
  border-bottom: 1px solid rgba(255,255,255,.10);
}
@media (min-width: 900px) { .pie-cima { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); align-items: start; } }

.pie-marca img { height: 26px; width: auto; margin-bottom: 20px; }
.pie-declara {
  font-size: clamp(1.375rem, 1.1rem + 1.2vw, 2rem); font-weight: 700;
  line-height: 1.2; letter-spacing: -.025em; color: #fff; margin: 0;
  max-width: 18ch; text-wrap: balance;
}
.pie-apoyo { color: rgba(247,247,251,.66); margin: 16px 0 0; max-width: 42ch; }

.pie-columnas { display: grid; gap: 32px 24px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 640px) { .pie-columnas { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.pie-col h3 {
  font-size: .8125rem; font-weight: 600; color: rgba(247,247,251,.52);
  margin: 0 0 14px; letter-spacing: .02em;
}
.pie-col ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.pie-col a {
  color: rgba(247,247,251,.86); display: inline-block; padding: 6px 0;
  transition: color var(--t) var(--ease);
}
.pie-col a:hover { color: #fff; }
.pie-col a::before { background: #C4B5FD; }

.pie-alcance {
  display: flex; flex-wrap: wrap; gap: 10px 28px; align-items: baseline;
  padding-block: clamp(28px, 3vw, 40px);
  border-bottom: 1px solid rgba(255,255,255,.10);
}
.pie-alcance .que {
  font-family: var(--mono); font-size: .8125rem; color: #C4B5FD;
  letter-spacing: .02em;
}
.pie-alcance .cuando { font-family: var(--mono); font-size: .8125rem; color: rgba(247,247,251,.52); }

.pie-legal {
  display: grid; gap: 16px 40px; padding-top: clamp(24px, 3vw, 32px);
  color: rgba(247,247,251,.52); font-size: var(--fs-meta);
}
@media (min-width: 900px) { .pie-legal { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); align-items: start; } }
.pie-legal p { margin: 0; max-width: 72ch; }
.pie-legal .pendiente-pie { color: rgba(247,247,251,.66); }
.pie-legal a { color: rgba(247,247,251,.72); }
.pie-legal a:hover { color: #fff; }

.site-footer .pending { color: rgba(247,247,251,.62); }

.pie-logo { filter: brightness(0) invert(1); opacity: .96; height: 30px; }

@media (min-width: 900px) {
  .pie-cima { grid-template-columns: minmax(0, 1fr) minmax(0, 1.75fr); }
}
.pie-columnas { gap: 32px 32px; }

.vista { margin: 0; display: grid; gap: clamp(20px, 2.4vw, 32px); }
@media (min-width: 1000px) {
  .vista {
    grid-template-columns: minmax(0, 7.4fr) minmax(0, 3.2fr);
    align-items: end; gap: clamp(32px, 3.4vw, 64px);
  }
  
  .vista.es-espejo .vista-lienzo { order: 2; }
  .vista.es-espejo { grid-template-columns: minmax(0, 3.2fr) minmax(0, 7.4fr); }
}
.vista-lienzo { min-width: 0; }
.vista-lienzo img {
  display: block; width: 100%; height: auto;
  border-radius: var(--r-lg);
}
@media (max-width: 720px) {
  .vista-lienzo { margin-inline: calc(-1 * var(--gutter)); }
  .vista-lienzo img { border-radius: 0; }
}

.vista-pie { border-top: 1px solid var(--riel-fuerte); padding-top: 18px; }
.vista-pie strong, .vista-pie .vista-titulo {
  display: block; font-size: var(--fs-h3); font-weight: 700;
  color: var(--ink); letter-spacing: -.015em; line-height: 1.25;
  margin-bottom: .5em; text-wrap: balance;
}
.vista-pie p { margin: 0; color: var(--ink-2); font-size: var(--fs-small); line-height: 1.6; max-width: 46ch; }
.vista-pie p + p { margin-top: .7em; }

.vista-origen {
  display: block; margin-top: 16px; padding-top: 14px;
  border-top: 1px solid var(--line);
  font-family: var(--mono); font-size: var(--fs-meta); color: var(--ink-3);
  line-height: 1.5;
}

.sala .vista-pie { border-top-color: var(--noche-linea); }
.sala .vista-pie strong, .sala .vista-pie .vista-titulo { color: #fff; }
.sala .vista-pie p { color: var(--noche-tenue); }
.sala .vista-origen { border-top-color: var(--noche-linea); color: rgba(247,247,251,.5); }

.seccion-vista { padding-block: clamp(40px, 5.5vw, 88px); }
.seccion-vista.tinted { background: var(--bg-2); }

.espectro {
  position: relative; isolation: isolate; overflow: hidden;
  background-color: var(--noche); color: var(--noche-texto);
}
.espectro > * { position: relative; z-index: 2; }
.espectro::before { content: ""; position: absolute; inset: 0; z-index: 0; }
.espectro::after {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  
  mix-blend-mode: soft-light; opacity: .55;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='r'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23r)' opacity='.12'/%3E%3C/svg%3E");
}
.esp-1::before { background:
  radial-gradient(ellipse 88% 66% at 16% 4%, rgba(98,17,255,0.46), transparent 62%),
  radial-gradient(ellipse 74% 58% at 88% 34%, rgba(31,111,136,0.3), transparent 64%),
  radial-gradient(ellipse 96% 72% at 46% 112%, rgba(196,181,253,0.15), transparent 66%); }
.esp-2::before { background:
  radial-gradient(ellipse 82% 62% at 84% 8%, rgba(31,111,136,0.43), transparent 62%),
  radial-gradient(ellipse 78% 60% at 12% 42%, rgba(98,17,255,0.33), transparent 64%),
  radial-gradient(ellipse 90% 66% at 60% 108%, rgba(25,120,87,0.18), transparent 66%); }
.esp-3::before { background:
  radial-gradient(ellipse 84% 64% at 24% 100%, rgba(25,120,87,0.38), transparent 64%),
  radial-gradient(ellipse 76% 58% at 78% 12%, rgba(98,17,255,0.34), transparent 62%),
  radial-gradient(ellipse 92% 70% at 50% 46%, rgba(31,111,136,0.16), transparent 68%); }
.esp-4::before { background:
  radial-gradient(ellipse 86% 64% at 80% 96%, rgba(127,101,48,0.38), transparent 64%),
  radial-gradient(ellipse 80% 62% at 16% 10%, rgba(98,17,255,0.37), transparent 62%),
  radial-gradient(ellipse 94% 68% at 54% 50%, rgba(196,181,253,0.12), transparent 68%); }
.esp-5::before { background:
  radial-gradient(ellipse 90% 68% at 50% 4%, rgba(85,14,226,0.44), transparent 62%),
  radial-gradient(ellipse 72% 56% at 10% 88%, rgba(31,111,136,0.28), transparent 64%),
  radial-gradient(ellipse 84% 64% at 92% 70%, rgba(127,101,48,0.19), transparent 66%); }

.esp-6::before { background:
  radial-gradient(ellipse 86% 64% at 20% 8%, rgba(44,147,176,0.42), transparent 62%),
  radial-gradient(ellipse 78% 60% at 86% 44%, rgba(25,120,87,0.32), transparent 64%),
  radial-gradient(ellipse 92% 70% at 52% 110%, rgba(98,17,255,0.20), transparent 66%); }

.esp-7::before { background:
  radial-gradient(ellipse 104% 70% at 50% 104%, rgba(30,58,174,0.46), transparent 64%),
  radial-gradient(ellipse 76% 58% at 12% 12%, rgba(98,17,255,0.34), transparent 62%),
  radial-gradient(ellipse 82% 62% at 90% 26%, rgba(44,147,176,0.22), transparent 66%); }

.esp-8::before { background:
  linear-gradient(118deg, transparent 26%, rgba(163,18,196,0.40) 46%, transparent 64%),
  radial-gradient(ellipse 80% 60% at 88% 10%, rgba(98,17,255,0.36), transparent 62%),
  radial-gradient(ellipse 88% 66% at 14% 96%, rgba(196,181,253,0.14), transparent 66%); }

.esp-9::before { background:
  radial-gradient(ellipse 96% 62% at 76% 96%, rgba(127,101,48,0.44), transparent 64%),
  radial-gradient(ellipse 70% 52% at 88% 88%, rgba(249,188,13,0.18), transparent 60%),
  radial-gradient(ellipse 84% 64% at 14% 12%, rgba(70,11,186,0.38), transparent 62%); }

.esp-10::before { background:
  linear-gradient(74deg, rgba(196,85,46,0.38) 4%, transparent 42%),
  linear-gradient(64deg, transparent 18%, rgba(127,101,48,0.26) 34%, transparent 52%),
  radial-gradient(ellipse 88% 66% at 84% 82%, rgba(85,14,226,0.34), transparent 64%); }

.esp-11::before { background:
  radial-gradient(ellipse 92% 68% at 30% 0%, rgba(90,90,110,0.40), transparent 64%),
  radial-gradient(ellipse 76% 58% at 84% 70%, rgba(48,35,89,0.44), transparent 62%),
  radial-gradient(ellipse 60% 44% at 58% 40%, rgba(98,17,255,0.14), transparent 68%); }

.esp-12::before { background:
  linear-gradient(100deg, transparent 8%, rgba(98,17,255,0.34) 26%, rgba(163,18,196,0.24) 42%,
                  rgba(44,147,176,0.26) 62%, rgba(25,120,87,0.18) 78%, transparent 94%),
  radial-gradient(ellipse 100% 60% at 50% 108%, rgba(30,58,174,0.30), transparent 66%); }

.seccion-contacto { padding-block: clamp(48px, 6vw, 88px); }
.contacto-rejilla { display: grid; gap: clamp(24px, 3vw, 40px); align-items: start; }
@media (min-width: 900px) { .contacto-rejilla { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); } }
.contacto-hoja {
  background: var(--bg); border-radius: var(--r-lg);
  padding: clamp(24px, 3vw, 40px);
  box-shadow: 0 18px 48px rgba(12, 10, 20, .28);
  
  color: var(--ink-2);
}
.contacto-hoja .form { max-width: none; }
.contacto-lado { display: grid; gap: 14px; align-content: start; }

.contacto-lado .cristal { padding: clamp(20px, 2.2vw, 26px); display: grid; gap: 8px; }
.contacto-lado h2 { font-size: var(--fs-h3); color: #fff; }
.contacto-lado h3 { font-size: var(--fs-lead); color: #fff; }
.contacto-lado p { color: rgba(247, 247, 251, .80); font-size: var(--fs-small); }
.contacto-lado .link { color: #C4B5FD; }
.contacto-lado .link:hover { color: #fff; }

.cristal {
  background: rgba(255, 255, 255, .07);
  -webkit-backdrop-filter: blur(18px) saturate(1.5);
  backdrop-filter: blur(18px) saturate(1.5);
  border: 1px solid rgba(255, 255, 255, .14);
  border-radius: var(--r-xl);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12), 0 18px 44px rgba(10, 8, 18, .32);
  color: var(--noche-texto);
  transition: background var(--t) var(--ease), border-color var(--t) var(--ease),
              box-shadow var(--t) var(--ease), transform var(--t) var(--ease);
}
.cristal h2, .cristal h3, .cristal h4, .cristal strong { color: #fff; }
.cristal p { color: var(--noche-tenue); }
.cristal .mono, .cristal .caption { color: rgba(247, 247, 251, .62); }
.cristal .pending { color: rgba(247, 247, 251, .70); }

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .cristal { background: rgba(23, 20, 36, .84); }
}

.pliegos { display: grid; gap: 6px; }
.pliego { border: 1px solid var(--line); border-radius: var(--r-md); overflow: hidden; background: var(--nacar); transition: border-color var(--t) var(--ease); }
.pliego:hover { border-color: var(--line-strong); }
.pliego:has([aria-expanded="true"]) { border-color: var(--primary); }
.pliego-cabeza { margin: 0; }
.pliego-cabeza button {
  width: 100%; display: grid; grid-template-columns: auto minmax(0,1fr) auto;
  align-items: center; gap: 16px; min-height: 64px; padding: 14px clamp(16px, 2vw, 24px);
  background: none; border: 0; cursor: pointer; text-align: left; font: inherit;
  color: var(--ink); transition: background var(--t) var(--ease), color var(--t) var(--ease);
}
.pliego-cabeza button:hover { background: var(--bg-2); }
.pliego-num { font-family: var(--mono); font-size: var(--fs-meta); color: var(--ink-3); letter-spacing: .04em; transition: color var(--t) var(--ease); }
.pliego-titulo { font-weight: 600; font-size: var(--fs-h3); letter-spacing: -.01em; line-height: 1.25; }

.pliego-signo { position: relative; width: 16px; height: 16px; flex: none; }
.pliego-signo::before, .pliego-signo::after {
  content: ""; position: absolute; inset: 50% 0 auto; height: 1.5px; margin-top: -.75px;
  background: currentColor; transition: transform var(--t) var(--ease), opacity var(--t) var(--ease);
}
.pliego-signo::after { transform: rotate(90deg); }
[aria-expanded="true"] .pliego-signo::after { transform: rotate(0deg); opacity: 0; }
.pliego:has([aria-expanded="true"]) .pliego-cabeza button { background: var(--primary); color: #fff; }
.pliego:has([aria-expanded="true"]) .pliego-cabeza button:hover { background: var(--primary-2); }
.pliego:has([aria-expanded="true"]) .pliego-num { color: rgba(255,255,255,.9); }

.pliego-cuerpo { padding: 18px clamp(16px, 2vw, 24px) 22px; }
.pliego-cuerpo > :first-child { margin-top: 0; }
.pliego-cuerpo > :last-child { margin-bottom: 0; }
.pliego-cuerpo p { color: var(--ink-2); max-width: 62ch; margin: 0; }
.pliego-cuerpo p + p { margin-top: .7em; }

@supports not selector(:has(*)) {
  .pliego-cabeza button[aria-expanded="true"] { background: var(--primary); color: #fff; }
  .pliego-cabeza button[aria-expanded="true"] .pliego-num { color: rgba(255,255,255,.9); }
}

.carrusel-cabeza { display: flex; align-items: end; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-bottom: clamp(24px, 3vw, 36px); }
.carrusel-mandos { display: flex; gap: 8px; flex: none; }
.mando {
  width: 48px; height: 48px; border-radius: 50%; flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--bg); color: var(--ink); border: 1px solid var(--line-strong);
  cursor: pointer; transition: border-color var(--t) var(--ease), color var(--t) var(--ease), background var(--t) var(--ease), transform var(--t-fast) var(--ease);
}
.mando:hover:not(:disabled) { border-color: var(--primary); color: var(--primary); }
.mando:active:not(:disabled) { transform: translateY(1px); }
.mando:disabled { opacity: .35; cursor: not-allowed; }
.carrusel-pista {
  display: grid; grid-auto-flow: column; grid-auto-columns: min(400px, 82%);
  gap: clamp(12px, 1.4vw, 20px); margin: 0; padding: 4px 0 8px; list-style: none;
  overflow-x: auto; overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory; scroll-padding-left: 0;
  scrollbar-width: none;
}
.carrusel-pista::-webkit-scrollbar { display: none; }
.carrusel-pista:focus-visible { outline: 2px solid var(--primary); outline-offset: 4px; border-radius: var(--r-lg); }

@media (min-width: 1024px) {
  .carrusel-pista { margin-right: min(0px, calc(var(--max) / 2 - 50vw)); padding-right: var(--gutter); }
}
.modulo {
  scroll-snap-align: start; border-radius: var(--r-xl); min-height: 380px;
  display: flex; flex-direction: column; justify-content: space-between; gap: 32px;
  padding: clamp(22px, 2.4vw, 32px);
  transition: transform var(--t) var(--ease), box-shadow var(--t) var(--ease);
}
.modulo:hover { transform: translateY(-3px); box-shadow: 0 22px 54px rgba(16,13,26,.34); }
.modulo-num { display: block; margin-bottom: 12px; font-family: var(--mono); font-size: var(--fs-meta); color: rgba(247,247,251,.62); letter-spacing: .06em; }
.modulo h3 { font-size: clamp(1.375rem, 1.2rem + .6vw, 1.75rem); font-weight: 700; letter-spacing: -.02em; color: #fff; margin: 0 0 .5em; line-height: 1.15; }
.modulo p { color: rgba(247,247,251,.80); font-size: var(--fs-small); line-height: 1.6; margin: 0; max-width: 34ch; }
.modulo .pending { color: rgba(247,247,251,.66); }
.modulo-pie { display: flex; align-items: center; justify-content: space-between; gap: 16px; border-top: 1px solid rgba(255,255,255,.18); padding-top: 18px; }
.modulo-que { font-family: var(--mono); font-size: var(--fs-meta); color: rgba(247,247,251,.62); }

.modulo-ir { width: 40px; height: 40px; border-radius: 50%; flex: none; display: inline-flex; align-items: center; justify-content: center; background: rgba(255,255,255,.14); color: #fff; border: 1px solid rgba(255,255,255,.28); transition: background var(--t) var(--ease), border-color var(--t) var(--ease), color var(--t) var(--ease); }
.modulo:hover .modulo-ir { background: #fff; color: var(--ink); border-color: #fff; }
.modulo-ir::before { content: ""; position: absolute; inset: 0; border-radius: var(--r-xl); }
.modulo:focus-within { outline: 2px solid var(--primary); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) {
  .carrusel-pista { scroll-behavior: auto; }
  .modulo:hover { transform: none; }
}

.hero-vista {
  display: block; width: 100%; height: auto;
  border-radius: var(--r-lg);
  box-shadow: 0 2px 6px rgba(24,22,36,.05), 0 30px 68px rgba(24,22,36,.14);
}
@media (max-width: 720px) {
  .hero-editorial .escenario { margin-inline: calc(-1 * var(--gutter)); }
  .hero-vista { border-radius: 0; }
  .hero-editorial .app-rotulo { padding-inline: var(--gutter); }
}

.hero-editorial .escenario:has(.hero-vista) { margin-right: calc(-1 * var(--gutter)); }
@supports not selector(:has(*)) {
  .hero-editorial .escenario { margin-right: calc(-1 * var(--gutter)); }
}
@media (max-width: 720px) {
  .hero-editorial .escenario:has(.hero-vista) { margin-right: calc(-1 * var(--gutter)); }
}

.pliego:has([aria-expanded="true"]) .pliego-cuerpo { background: var(--primary-tint); }
.pliego:has([aria-expanded="true"]) .pliego-cuerpo p { color: var(--ink-2); }

.tablero { padding-block: clamp(56px, 7vw, 104px); }
.tablero-cima {
  display: flex; align-items: start; justify-content: space-between;
  gap: clamp(20px, 4vw, 64px); margin-bottom: clamp(40px, 5.5vw, 88px);
}
.tablero-titulo {
  margin: 0; color: #fff; max-width: 18ch;
  font-size: clamp(1.75rem, 1.1rem + 2.6vw, 3rem);
  font-weight: 800; line-height: 1.08; letter-spacing: -.03em; text-wrap: balance;
}
.tablero-mandos { display: flex; align-items: center; gap: 16px; flex: none; }
.tablero-folio {
  font-family: var(--mono); font-size: clamp(1.5rem, 1rem + 1.6vw, 2.25rem);
  color: rgba(247, 247, 251, .38); line-height: 1; letter-spacing: -.02em;
}

.tablero-pausa {
  width: 40px; height: 40px; border-radius: 50%; flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  background: rgba(255, 255, 255, .10); color: #fff;
  border: 1px solid rgba(255, 255, 255, .26); cursor: pointer;
  transition: background var(--t) var(--ease), border-color var(--t) var(--ease);
}
.tablero-pausa:hover { background: rgba(255, 255, 255, .20); border-color: #fff; }

.tablero-pausa { display: none; }
.tablero-pausa[data-estado] { display: inline-flex; }
.tablero-pausa [data-icono="play"] { display: none; }
.tablero-pausa[data-estado="pausado"] [data-icono="pausa"] { display: none; }
.tablero-pausa[data-estado="pausado"] [data-icono="play"] { display: block; }

.tablero-rejilla {
  display: grid; grid-template-columns: repeat(var(--tablero-cols, 4), minmax(0, 1fr));
  column-gap: clamp(16px, 2.2vw, 40px);
}
.tablero-3 { --tablero-cols: 3; }
.tablero-5 { --tablero-cols: 5; }
.tablero-panel {
  grid-row: 1; grid-column: 1 / -1; align-self: end;
  margin-bottom: clamp(24px, 3vw, 40px);
  visibility: hidden; opacity: 0;
  transform: translateY(8px);
  transition: opacity var(--t) var(--ease), transform var(--t) var(--ease),
              visibility 0s linear var(--t);
}
.tablero-panel[data-activo] {
  visibility: visible; opacity: 1; transform: none;
  transition-delay: 0s, 0s, 0s;
}
.tablero-panel h3 { color: #fff; font-size: var(--fs-h3); margin: 0 0 .6em; letter-spacing: -.015em; }
.tablero-panel p { color: rgba(247, 247, 251, .82); font-size: var(--fs-small); line-height: 1.6; margin: 0; max-width: 40ch; }
.tablero-panel p + p { margin-top: .7em; }
.tablero-panel .pending { color: rgba(247, 247, 251, .70); }
@media (min-width: 1000px) {
  .tablero-panel.en-1 { grid-column: 1; }
  .tablero-panel.en-2 { grid-column: 2; }
  .tablero-panel.en-3 { grid-column: 3; }
  .tablero-panel.en-4 { grid-column: 4; }
}

.tablero-lista {
  grid-row: 2; grid-column: 1 / -1;
  display: grid; grid-template-columns: repeat(var(--tablero-cols, 4), minmax(0, 1fr));
  column-gap: clamp(16px, 2.2vw, 40px); row-gap: 8px;
}
.tablero-rotulo {
  display: grid; gap: 14px; align-content: start;
  padding: 0; background: none; border: 0; cursor: pointer; text-align: left;
  font: inherit; font-size: clamp(1rem, .94rem + .26vw, 1.125rem);
  font-weight: 500; line-height: 1.3; letter-spacing: -.01em;
  
  color: rgba(247, 247, 251, .68);
  transition: color var(--t) var(--ease);
}
.tablero-rotulo:hover { color: #fff; }
.tablero-rotulo[aria-selected="true"] { color: #fff; }
.tablero-riel { display: block; height: 2px; background: rgba(255, 255, 255, .20); overflow: hidden; }
.tablero-riel i {
  display: block; height: 100%; background: #fff;
  transform: scaleX(0); transform-origin: left;
}
@media (max-width: 999px) {
  .tablero-lista { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 28px; }
}

@media (max-width: 599px) {
  .tablero-lista { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .tablero-rotulo[aria-selected="true"] .tablero-riel i { transform: scaleX(1); }
}

.commits.es-cristal { gap: clamp(14px, 1.6vw, 20px); }
.commits.es-cristal .commit { border-top: 0; padding: clamp(22px, 2.2vw, 30px); }

.lamina .pending, .tablero .pending { color: rgba(247, 247, 251, .72); }

.escenario-solo { max-width: 760px; margin-inline: auto; }

.lamina { padding-block: clamp(56px, 7vw, 104px); }
.lamina .section-head h2 { color: #fff; }
.lamina .section-head .lead { color: rgba(247, 247, 251, .78); }
.tabla-noche { width: 100%; border-collapse: collapse; }
.tabla-noche caption { text-align: left; color: rgba(247, 247, 251, .62); font-size: var(--fs-meta); padding-bottom: 14px; }

.tabla-noche thead th { color: rgba(247, 247, 251, .64); border-bottom-color: rgba(255, 255, 255, .20); }
.tabla-noche th, .tabla-noche td { text-align: left; vertical-align: top; padding: 20px 24px 20px 0; border-top: 1px solid rgba(255, 255, 255, .14); }
.tabla-noche tr:last-child th, .tabla-noche tr:last-child td { border-bottom: 1px solid rgba(255, 255, 255, .14); }
.tabla-noche th {
  width: 30%; color: #fff; font-weight: 600; font-size: var(--fs-small);
  letter-spacing: -.01em; padding-right: clamp(24px, 3vw, 56px);
}
.tabla-noche td { color: rgba(247, 247, 251, .80); font-size: var(--fs-small); line-height: 1.6; }
.tabla-noche td .mono { color: #C4B5FD; }
.tabla-noche .pending { color: rgba(247, 247, 251, .70); }

.tabla-noche tbody tr:hover { background: rgba(255, 255, 255, .04); }
@media (max-width: 720px) {
  .tabla-noche, .tabla-noche tbody, .tabla-noche tr, .tabla-noche th, .tabla-noche td { display: block; width: auto; }
  .tabla-noche tr { border-top: 1px solid rgba(255, 255, 255, .14); padding-block: 18px; }
  .tabla-noche tr:last-child { border-bottom: 1px solid rgba(255, 255, 255, .14); }
  .tabla-noche th, .tabla-noche td { border: 0; padding: 0; }
  .tabla-noche th { margin-bottom: 8px; }
}

.lamina-pie { margin-top: clamp(20px, 2.4vw, 28px); color: rgba(247, 247, 251, .72); font-size: var(--fs-small); max-width: 62ch; }

.pliego-titulo .pending { margin-top: 8px; letter-spacing: 0; }
.js-revision .pliego-titulo .pending { display: block; }
.pliego:has([aria-expanded="true"]) .pending { color: rgba(255,255,255,.88); }
@supports not selector(:has(*)) {
  .pliego-cabeza button[aria-expanded="true"] .pending { color: rgba(255,255,255,.88); }
}

@media (prefers-reduced-motion: no-preference) {
  .barrido { position: relative; isolation: isolate; overflow: hidden;
    transition: border-color var(--t-tarjeta) var(--ease-barrido),
                box-shadow var(--t-tarjeta) var(--ease-barrido); }
  
  .barrido::after {
    content: ""; position: absolute; z-index: -1;
    top: 26px; right: 26px; width: 36px; height: 36px; border-radius: 999px;
    background: var(--primary); transform: scale(0); transform-origin: center;
    transition: transform var(--t-barrido) cubic-bezier(.22, 1, .36, 1);
  }
  
  .barrido:hover::after, .barrido:focus-within::after { transform: scale(80); }
  .barrido:hover, .barrido:focus-within {
    border-color: var(--primary);
    box-shadow: 0 18px 40px -12px rgba(24, 22, 36, .34);
    
    transform: none;
  }
  .barrido h2, .barrido h3, .barrido p,
  .barrido .marca-puerta, .barrido .ir, .barrido .btn {
    transition: color 300ms var(--ease), background 300ms var(--ease),
                border-color 300ms var(--ease);
  }
  
  .barrido:hover h2, .barrido:hover h3, .barrido:hover p,
  .barrido:hover .marca-puerta, .barrido:hover .ir, .barrido:hover .btn,
  .barrido:focus-within h2, .barrido:focus-within h3, .barrido:focus-within p,
  .barrido:focus-within .marca-puerta, .barrido:focus-within .ir,
  .barrido:focus-within .btn { transition-delay: 90ms; }
  .barrido:hover h2, .barrido:hover h3,
  .barrido:focus-within h2, .barrido:focus-within h3 { color: #fff; }
  
  .escena.barrido:hover p, .barrido:hover .marca-puerta, .barrido:hover .ir,
  .escena.barrido:focus-within p, .barrido:focus-within .marca-puerta,
  .barrido:focus-within .ir { color: rgba(255, 255, 255, .90); }
  
  .barrido:hover .btn-primary, .barrido:focus-within .btn-primary {
    background: #fff; color: var(--primary-3); border-color: #fff;
  }
}

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .escena.barrido p {
    max-height: 0; opacity: 0; overflow: hidden;
    transition: max-height 320ms var(--ease), opacity 220ms var(--ease) 90ms,
                color 300ms var(--ease) 90ms, background 300ms var(--ease) 90ms;
  }
  .escena.barrido:hover p, .escena.barrido:focus-within p {
    max-height: 4.5em; opacity: 1;
  }
}

.nav a:hover, .btn:hover, .mando:hover:not(:disabled),
.pliego-cabeza button:hover, .tablero-rotulo:hover,
.tablero-pausa:hover, .field input:hover, .field select:hover,
.field textarea:hover { transition-duration: var(--t-control); }

.pliegos:has([aria-expanded="true"]) .pliego:not(:has([aria-expanded="true"])) { background: var(--bg-2); }
.tinted .pliegos:has([aria-expanded="true"]) .pliego:not(:has([aria-expanded="true"])) { background: var(--bg); }

.modulo-flecha { position: relative; display: block; width: 16px; height: 16px; overflow: hidden; }
.modulo-flecha svg { position: absolute; top: 0; left: 0; transition: transform var(--t-tarjeta) var(--ease-barrido); }
.modulo-flecha svg:first-child { left: -16px; }
.modulo:hover .modulo-flecha svg, .modulo:focus-within .modulo-flecha svg { transform: translateX(16px); }

.cta-final, .sala { position: relative; isolation: isolate; }
.cta-final > *, .sala > * { position: relative; z-index: 1; }
.cta-final::after, .sala::after {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  border-radius: inherit;
  mix-blend-mode: soft-light; opacity: .55;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='r'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23r)' opacity='.12'/%3E%3C/svg%3E");
}

.section:not(.tinted):not(.espectro):not(.sala):not(.lamina):not(.tablero):not(.rieles),
.section-sm:not(.tinted):not(.rieles),
.escenas-seccion, .seccion-vista:not(.tinted) {
  background-image:
    radial-gradient(ellipse 88% 64% at 6% 0%, rgba(98, 17, 255, .055), transparent 58%),
    
    radial-gradient(ellipse 76% 56% at 96% 62%, rgba(31, 111, 136, .04), transparent 62%);
}
.rieles {
  background-image:
    radial-gradient(ellipse 88% 64% at 6% 0%, rgba(98, 17, 255, .05), transparent 58%),
    radial-gradient(ellipse 76% 56% at 96% 84%, rgba(31, 111, 136, .035), transparent 62%),
    repeating-linear-gradient(to right, var(--riel) 0 1px, transparent 1px calc(100% / 4));
}

.tinted {
  background-image:
    radial-gradient(ellipse 84% 62% at 92% 4%, rgba(98, 17, 255, .06), transparent 60%),
    radial-gradient(ellipse 72% 54% at 4% 92%, rgba(127, 101, 48, .035), transparent 62%);
}

.esp-13::before { background:              
  radial-gradient(ellipse 92% 68% at 26% 4%, rgba(25, 120, 87, 0.42), transparent 62%),
  radial-gradient(ellipse 80% 60% at 86% 62%, rgba(12, 61, 45, 0.60), transparent 64%),
  radial-gradient(ellipse 86% 64% at 52% 108%, rgba(58, 163, 124, 0.14), transparent 66%); }
.esp-14::before { background:              
  radial-gradient(ellipse 96% 70% at 18% 0%, rgba(58, 58, 74, 0.52), transparent 62%),
  radial-gradient(ellipse 78% 58% at 88% 66%, rgba(26, 26, 36, 0.70), transparent 64%),
  radial-gradient(ellipse 70% 52% at 56% 104%, rgba(120, 120, 142, 0.14), transparent 66%); }

@property --esp15-c1 { syntax: '<color>'; inherits: false; initial-value: rgba(70, 11, 186, 0.50); }
@property --esp15-c2 { syntax: '<color>'; inherits: false; initial-value: rgba(35, 8, 92, 0.62); }
@property --esp15-c3 { syntax: '<color>'; inherits: false; initial-value: rgba(156, 107, 255, 0.14); }
.esp-15::before { background:              
  radial-gradient(ellipse 94% 70% at 22% 2%, var(--esp15-c1), transparent 62%),
  radial-gradient(ellipse 76% 58% at 86% 60%, var(--esp15-c2), transparent 64%),
  radial-gradient(ellipse 82% 62% at 54% 106%, var(--esp15-c3), transparent 66%); }

.columna, .step, .cristal { position: relative; }
.columna::after, .step::after, .cristal::after {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px;
  background: var(--primary); transform: scaleX(0); transform-origin: left;
  transition: transform 420ms var(--ease); pointer-events: none;
}
.columna::after { top: -1px; }          
.step::after { top: -1px; }             
.cristal::after { border-radius: var(--r-xl) var(--r-xl) 0 0; }
.columna:hover::after, .step:hover::after, .cristal:hover::after { transform: scaleX(1); }

.sala .step::after, .cristal::after, .espectro .columna::after { background: #C4B5FD; }

h1 em, h2 em, h3 em, .display em, .tablero-titulo em, .pie-declara em {
  font-style: normal; color: var(--primary);
}

.display em, .tablero-titulo em { font-style: italic; }
.sala em, .espectro em, .lamina em, .tablero em, .cta-final em, .site-footer em,
.sala h2 em, .cta-final h2 em { color: #C4B5FD; }

.site-footer { padding-block: clamp(64px, 8vw, 112px) clamp(40px, 5vw, 64px); }
.pie-cima { gap: clamp(40px, 5vw, 88px); padding-bottom: clamp(44px, 5vw, 76px); }
.pie-declara { max-width: 16ch; }
.pie-apoyo { margin-top: 20px; }
.pie-columnas { gap: clamp(32px, 4vw, 48px); }
.pie-col h3 { margin-bottom: 18px; }
.pie-col ul { gap: 4px; }
.pie-col a { padding: 9px 0; }
.pie-alcance { padding-block: clamp(36px, 4vw, 56px); gap: 12px 36px; }
.pie-legal { padding-top: clamp(32px, 4vw, 48px); gap: 20px 56px; line-height: 1.7; }

.linea { display: block; }
p, li, dd, figcaption, .lead, blockquote { text-wrap: pretty; }

@media (min-width: 900px) {
  .pie-cima { grid-template-columns: minmax(0, .86fr) minmax(0, 2.14fr); }
}

.proceso {
  display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr);
  gap: 0; flex-wrap: nowrap; margin-bottom: clamp(28px, 3.5vw, 44px);
}
.proceso button {
  position: relative; display: grid; gap: 12px; justify-items: center;
  padding: 0 6px; min-height: 44px; background: none; border: 0; border-radius: 0;
  cursor: pointer; font: inherit; font-size: .8125rem; font-weight: 500;
  line-height: 1.25; color: var(--ink-3); text-align: center;
  transition: color var(--t) var(--ease);
}

.proceso button::before {
  content: ""; position: absolute; z-index: 0; top: 13px; right: 50%; width: 100%; height: 2px;
  background: var(--primary); transition: background var(--t) var(--ease);
}
.proceso button:first-child::before { display: none; }
.proceso-num {
  position: relative; z-index: 1;
  width: 28px; height: 28px; border-radius: 50%; flex: none;
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--mono); font-size: .75rem; font-weight: 600;
  background: var(--primary); color: #fff; border: 2px solid var(--primary);
  transition: background var(--t) var(--ease), color var(--t) var(--ease),
              border-color var(--t) var(--ease), box-shadow var(--t) var(--ease);
}
.proceso button[aria-selected="true"] { color: var(--ink); font-weight: 700; }
.proceso button[aria-selected="true"] .proceso-num { box-shadow: 0 0 0 5px var(--primary-tint); }

.proceso button[aria-selected="true"] ~ button::before { background: var(--line-strong); }
.proceso button[aria-selected="true"] ~ button .proceso-num {
  background: var(--bg); color: var(--ink-3); border-color: var(--line-strong);
}
.proceso button:hover { color: var(--ink); }
.proceso button:hover .proceso-num { border-color: var(--primary); color: var(--primary); }
.proceso button[aria-selected="true"]:hover .proceso-num { color: #fff; }
.proceso button:focus-visible { box-shadow: none; }
.proceso button:focus-visible .proceso-num { box-shadow: var(--ring); }

@media (max-width: 860px) {
  .proceso { grid-auto-flow: row; grid-auto-columns: auto; gap: 2px; padding-left: 13px; }
  .proceso button {
    grid-auto-flow: column; grid-template-columns: 28px minmax(0, 1fr);
    justify-items: start; align-items: center; gap: 14px;
    padding: 6px 0 6px 0; text-align: left; margin-left: -13px;
  }
  .proceso button::before { top: -50%; right: auto; left: 13px; width: 2px; height: 100%; }
  .proceso-nombre { padding-top: 1px; }
}

.columnas .columna:nth-child(1) { background: linear-gradient(165deg, #EEF4F6 0%, rgba(255, 255, 255, .5) 72%); }
.columnas .columna:nth-child(2) { background: linear-gradient(165deg, #F2F1F7 0%, #FFFFFF 72%); }

.columnas .columna.es-destino { background: linear-gradient(165deg, #F4F2EE 0%, rgba(255, 255, 255, .5) 72%); }
.columnas .columna.es-destino h3 { color: var(--ink); }
.columnas .columna.es-destino .indice { color: var(--evidence); }
.columnas .columna.es-destino::after { background: var(--evidence); }
.columnas .columna:nth-child(1) .indice { color: var(--source); }
.columnas .columna:nth-child(1)::after { background: var(--source); }
.columnas .columna:hover { background-image: none; }
.columnas .columna:nth-child(1):hover { background: linear-gradient(165deg, #E6EFF2 0%, #FFFFFF 78%); }
.columnas .columna:nth-child(2):hover { background: linear-gradient(165deg, #ECEAF4 0%, #FFFFFF 78%); }
.columnas .columna.es-destino:hover { background: linear-gradient(165deg, #EFECE5 0%, #FFFFFF 78%); }

.proceso button,
.proceso button[aria-selected="true"],
.proceso button[aria-selected="true"]:hover {
  background: none; border: 0; box-shadow: none; padding: 0 6px;
}
.proceso button[aria-selected="true"],
.proceso button[aria-selected="true"]:hover { color: var(--ink); }
@media (max-width: 860px) {
  .proceso button,
  .proceso button[aria-selected="true"],
  .proceso button[aria-selected="true"]:hover { padding: 6px 0; }
}

.arco { list-style: none; margin: clamp(36px, 4.5vw, 64px) 0 0; padding: 0; display: grid; }
.arco-momento {
  position: relative;
  display: grid; gap: clamp(10px, 1.4vw, 16px);
  padding: clamp(24px, 3vw, 36px) 0 clamp(24px, 3vw, 36px) clamp(22px, 2.6vw, 40px);
}
@media (min-width: 860px) {
  .arco-momento {
    grid-template-columns: minmax(0, 3fr) minmax(0, 7.4fr);
    gap: clamp(28px, 3.4vw, 64px); align-items: start;
  }
}

.arco-momento::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 1px;
  background: var(--riel-fuerte); transform-origin: top;
}
.arco-momento::after {
  content: ""; position: absolute; left: -3.5px; top: clamp(24px, 3vw, 36px);
  width: 8px; height: 8px; border-radius: 50%; background: var(--primary);
}
.js-motion .arco-momento::before { transform: scaleY(0); transition: transform 620ms var(--ease); transition-delay: var(--retraso, 0ms); }
.js-motion .arco-momento.es-visible::before { transform: scaleY(1); }
.js-motion .arco-momento::after {
  opacity: 0; transform: scale(.3);
  transition: opacity 360ms var(--ease), transform 360ms var(--ease);
  transition-delay: calc(var(--retraso, 0ms) + 280ms);
}
.js-motion .arco-momento.es-visible::after { opacity: 1; transform: scale(1); }

.arco-marca { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; }
@media (min-width: 860px) { .arco-marca { flex-direction: column; gap: 6px; } }
.arco-num { font-family: var(--mono); font-size: var(--fs-meta); color: var(--ink-3); letter-spacing: .06em; }
.arco-verbo {
  font-size: clamp(1.125rem, 1rem + .5vw, 1.5rem); font-weight: 700;
  letter-spacing: -.02em; color: var(--primary); line-height: 1.1;
}
.arco-cuerpo h3 {
  font-size: var(--fs-h3); font-weight: 700; margin: 0 0 .45em;
  letter-spacing: -.015em; line-height: 1.25; color: var(--ink);
}
.arco-cuerpo p { margin: 0; color: var(--ink-2); font-size: var(--fs-small); max-width: 58ch; }

.facturacion {
  display: flex; align-items: center; gap: 16px 20px; flex-wrap: wrap;
  margin-bottom: clamp(24px, 3vw, 36px);
}
.facturacion-mando {
  display: inline-flex; padding: 4px; gap: 4px;
  background: var(--bg-2); border: 1px solid var(--line); border-radius: 999px;
}
.facturacion-mando button {
  min-height: 40px; padding: 0 20px; border: 0; border-radius: 999px;
  background: none; color: var(--ink-3); cursor: pointer;
  font: inherit; font-size: .875rem; font-weight: 600;
  transition: background var(--t) var(--ease), color var(--t) var(--ease);
}
.facturacion-mando button:hover { color: var(--ink); }
.facturacion-mando button[aria-checked="true"] {
  background: var(--ink); color: #fff;
}
.facturacion-nota { margin: 0; font-size: var(--fs-small); color: var(--ink-2); }

.plan {
  background:
    radial-gradient(ellipse 96% 72% at 6% 0%, rgba(25, 120, 87, .085), transparent 60%),
    radial-gradient(ellipse 72% 58% at 98% 100%, rgba(90, 90, 110, .07), transparent 64%),
    linear-gradient(165deg, #F6F5FA 0%, #FFFFFF 62%);
  gap: 20px;
}
.plan.es-mayor {
  background:
    radial-gradient(ellipse 96% 72% at 6% 0%, rgba(98, 17, 255, .10), transparent 60%),
    linear-gradient(165deg, #EDE6FF 0%, #FFFFFF 62%);
  border-color: var(--primary-soft);
}
.plan-cabeza { display: grid; gap: 6px; }
.plan h2 { font-size: clamp(1.5rem, 1.3rem + .9vw, 2rem); letter-spacing: -.025em; }
.plan-for { font-size: var(--fs-small); max-width: 34ch; }
.price { margin-top: 4px; }
.price-cifra { transition: opacity var(--t) var(--ease); }
.price-alt { color: var(--ink-3); }

.salto {
  display: inline-block; margin-left: 10px; padding: 2px 8px;
  border-radius: 999px; background: var(--primary-tint); color: var(--primary-3);
  
  font-family: var(--mono); font-size: .75rem; font-weight: 600; letter-spacing: .02em;
}
.plan-salto {
  margin: 4px 0 0; padding-top: 18px; border-top: 1px solid var(--primary-soft);
  font-size: var(--fs-small); color: var(--ink-2); line-height: 1.5;
}
.plan-salto strong { color: var(--primary-3); font-weight: 700; }

.tabla-limite th[scope="col"] {
  width: auto; border-top: 0; padding-top: 0; padding-bottom: 14px;
  color: rgba(247, 247, 251, .55); font-size: var(--fs-meta);
  font-weight: 600; letter-spacing: .07em; text-transform: uppercase;
}
.tabla-limite th[scope="row"] { width: 26%; }
.tabla-limite td { width: 37%; }
.tabla-limite tbody tr:hover, .tinted .tabla-limite tbody tr:hover { background: rgba(255, 255, 255, .04); }
.lamina .table-scroll { overflow-x: auto; }
.no-hace {
  display: inline-flex; align-items: center; gap: 10px; white-space: nowrap;
  font-family: var(--mono); font-size: .75rem; letter-spacing: .05em;
  color: rgba(247, 247, 251, .55);
}
.no-hace::before { content: ""; width: 16px; height: 1px; background: currentColor; flex: none; }

.seccion-cierre { padding-block: var(--section); }
.cta-final { gap: 24px; }
.cta-final h2 {
  font-size: clamp(1.75rem, 1.2rem + 2.2vw, 2.75rem);
  max-width: 20ch; margin: 0; letter-spacing: -.03em; line-height: 1.08; text-wrap: balance;
}
.cta-final p { max-width: 52ch; margin: 0; }
.cta-final .actions { margin-top: 8px; }

.constancia { font-size: .875rem; }
.constancia .constancia-head h3 { font-size: 1.0625rem; letter-spacing: -.015em; }
.constancia .kv { font-size: .84rem; gap: 9px 22px; }
.constancia .kv dt {
  font-size: .75rem; font-weight: 600; letter-spacing: .06em;
  text-transform: uppercase; color: var(--ink-3); padding-top: 2px;
}
.constancia .kv dd { font-size: .875rem; color: var(--ink-2); }
.constancia .sig {
  gap: 3px; font-size: .75rem; font-weight: 600;
  letter-spacing: .06em; text-transform: uppercase; color: var(--ink-3);
}
.constancia .sig strong {
  font-size: .875rem; font-weight: 700; letter-spacing: -.01em;
  text-transform: none; color: var(--ink);
}
.constancia .folio { font-size: .75rem; }

.btn-primary {
  background-image: linear-gradient(180deg, #7328FF 0%, var(--primary) 52%, var(--primary-2) 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .22), 0 1px 2px rgba(24, 22, 36, .18);
}
.btn-primary:hover {
  background-image: linear-gradient(180deg, var(--primary) 0%, var(--primary-2) 52%, var(--primary-3) 100%);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .20), 0 8px 18px -6px rgba(24, 22, 36, .34);
}
.btn-primary:active {
  background-image: linear-gradient(180deg, var(--primary-3) 0%, var(--primary-2) 100%);
  box-shadow: inset 0 1px 3px rgba(16, 8, 40, .34);
}
.btn-secondary {
  background-image: linear-gradient(180deg, #FFFFFF 0%, #FAFAFD 100%);
  border-color: var(--line-strong);
}
.btn-secondary:hover { background-image: linear-gradient(180deg, #FFFFFF 0%, var(--bg-2) 100%); border-color: #A8A8BD; }

.cta-final .btn-secondary, .espectro .btn-secondary, .lamina .btn-secondary {
  background-image: none; background: transparent;
}

.lamina .compare tbody th, .tabla-limite tbody th { color: #fff; }
.lamina .compare th, .lamina .compare td,
.lamina .compare thead th { border-top-color: rgba(255, 255, 255, .14); }
.lamina .compare td { color: rgba(247, 247, 251, .82); }

.carrusel-pista { display: flex; grid-auto-flow: unset; grid-auto-columns: unset; }
.modulo {
  flex: 0 0 min(400px, 82%);
  transition: flex-basis 520ms var(--ease-barrido),
              transform var(--t) var(--ease), box-shadow var(--t) var(--ease);
}
.modulo.es-abierta { flex-basis: min(720px, 92%); }
.modulo.es-abierta:hover { transform: none; }

.modulo-antesala {
  display: grid; gap: 14px; align-content: start;
  padding-top: 20px; margin-top: 4px;
  border-top: 1px solid rgba(255, 255, 255, .18);
}
.modulo-antesala p {
  margin: 0; color: rgba(247, 247, 251, .88); font-size: var(--fs-small);
  line-height: 1.55; max-width: 54ch;
}
.modulo-antesala strong { color: #fff; font-weight: 700; }
.modulo-ir-rotulo {
  font-family: var(--mono); font-size: var(--fs-meta);
  color: rgba(247, 247, 251, .62); letter-spacing: .05em;
}

.modulo-antesala[hidden] { display: none; }
.modulo.es-abierta .modulo-antesala {
  animation: antesala-entra 320ms var(--ease) 220ms both;
}
@keyframes antesala-entra {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: none; }
}

.modulo.es-abierta .modulo-flecha svg { transform: translateX(16px); }
.modulo.es-abierta .modulo-ir { background: #fff; color: var(--ink); border-color: #fff; }
@media (prefers-reduced-motion: reduce) {
  .modulo { transition: none; }
  .modulo.es-abierta .modulo-antesala { animation: none; }
}

.nucleo {
  display: grid; gap: clamp(28px, 3vw, 40px);
  margin-top: clamp(28px, 3.5vw, 48px);
}
@media (min-width: 1000px) {
  .nucleo {
    
    grid-template-columns: minmax(0, 5.2fr) minmax(160px, 3.6fr) minmax(0, 3.2fr);
    align-items: stretch; gap: 0;
  }
}
.nucleo-lista { margin: 0; display: grid; }
@media (min-width: 1000px) { .nucleo-lista { grid-template-rows: repeat(6, minmax(0, 1fr)); } }
.nucleo-item {
  display: grid; gap: 5px; align-content: center;
  padding: clamp(14px, 1.6vw, 20px) clamp(20px, 2.4vw, 32px) clamp(14px, 1.6vw, 20px) 0;
  border-top: 1px solid rgba(255, 255, 255, .12);
}
.nucleo-item:last-child { border-bottom: 1px solid rgba(255, 255, 255, .12); }
.nucleo-item dt { color: #fff; font-weight: 600; font-size: var(--fs-small); letter-spacing: -.01em; }

.nucleo-item dd { margin: 0; color: rgba(247, 247, 251, .78); font-size: var(--fs-small); line-height: 1.55; }
.nucleo-item .pending { color: rgba(247, 247, 251, .72); }

.nucleo-vectores { display: none; }
@media (min-width: 1000px) {
  .nucleo-vectores { display: block; width: 100%; height: 100%; overflow: visible; }
}
.nucleo-vectores path {
  fill: none; stroke: #C4B5FD; stroke-width: 1.4; opacity: .62;
  vector-effect: non-scaling-stroke;
}

.js-motion .nucleo-vectores path {
  stroke-dasharray: 1; stroke-dashoffset: 1;
  transition: stroke-dashoffset 900ms var(--ease);
}
.js-motion .nucleo.es-visible .nucleo-vectores path { stroke-dashoffset: 0; }
.js-motion .nucleo-vectores path:nth-child(1) { transition-delay: 0ms; }
.js-motion .nucleo-vectores path:nth-child(2) { transition-delay: 90ms; }
.js-motion .nucleo-vectores path:nth-child(3) { transition-delay: 180ms; }
.js-motion .nucleo-vectores path:nth-child(4) { transition-delay: 270ms; }
.js-motion .nucleo-vectores path:nth-child(5) { transition-delay: 360ms; }
.js-motion .nucleo-vectores path:nth-child(6) { transition-delay: 450ms; }

.nucleo-destino {
  display: grid; gap: 10px; align-content: center; justify-items: start;
  padding: clamp(22px, 2.4vw, 32px);
  border: 1px solid rgba(255, 255, 255, .16); border-radius: var(--r-xl);
  background: rgba(255, 255, 255, .06);
  -webkit-backdrop-filter: blur(18px) saturate(1.5);
  backdrop-filter: blur(18px) saturate(1.5);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .nucleo-destino { background: rgba(23, 20, 36, .84); }
}
.nucleo-punto {
  width: 10px; height: 10px; border-radius: 50%; background: #C4B5FD;
  box-shadow: 0 0 0 5px rgba(196, 181, 253, .18);
}
.js-motion .nucleo-punto { opacity: 0; transform: scale(.3); transition: opacity 420ms var(--ease) 900ms, transform 420ms var(--ease) 900ms; }
.js-motion .nucleo.es-visible .nucleo-punto { opacity: 1; transform: none; }
.nucleo-planes {
  margin: 0; color: #fff; font-weight: 700; letter-spacing: -.02em;
  font-size: clamp(1.25rem, 1.05rem + .7vw, 1.625rem); line-height: 1.15;
}
.nucleo-planes span { color: rgba(247, 247, 251, .42); margin-inline: 4px; }
.nucleo-dicho { margin: 0; color: rgba(247, 247, 251, .80); font-size: var(--fs-small); line-height: 1.55; }
@media (prefers-reduced-motion: reduce) {
  .nucleo-vectores path { stroke-dashoffset: 0 !important; }
  .nucleo-punto { opacity: 1 !important; transform: none !important; }
}

@media (min-width: 1000px) {
  .nucleo-destino { position: relative; }
  .nucleo-punto { position: absolute; left: -5px; top: 50%; transform: translateY(-50%); }
  .js-motion .nucleo-punto { transform: translateY(-50%) scale(.3); }
  .js-motion .nucleo.es-visible .nucleo-punto { transform: translateY(-50%) scale(1); }
}

.lamina h2, .lamina h3 { color: #fff; }
.lamina .lead { color: rgba(247, 247, 251, .82); }
.lamina p { color: rgba(247, 247, 251, .80); }
.lamina .narrow > * { max-width: 62ch; }

.jornada { margin-top: clamp(28px, 3.4vw, 48px); }
.jornada-pilas {
  position: relative; list-style: none; margin: 0; padding: 0 0 clamp(28px, 3.4vw, 44px);
  display: grid; gap: clamp(26px, 3vw, 40px);
}
@media (min-width: 880px) {
  .jornada-pilas { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(24px, 2.6vw, 44px); }
}

.jornada-pilas::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px;
  background: var(--riel-fuerte); transform-origin: left;
}
.js-motion .jornada-pilas::after {
  transform: scaleX(0); transition: transform 760ms var(--ease) 340ms;
}
.js-motion .jornada.es-visible .jornada-pilas::after { transform: scaleX(1); }

.jornada-pila { display: grid; gap: 10px; align-content: start; }

.jornada-rotulo {
  font-size: .75rem; font-weight: 600; letter-spacing: .07em;
  text-transform: uppercase; color: var(--ink-3);
}
.jornada-pila p {
  margin: 0; color: var(--ink);
  font-size: clamp(1.0625rem, 1rem + .35vw, 1.25rem);
  font-weight: 600; line-height: 1.35; letter-spacing: -.015em;
}

.jornada-peso {
  margin: clamp(26px, 3vw, 40px) 0 0;
  font-size: clamp(1.375rem, 1.1rem + 1.3vw, 2rem);
  font-weight: 400; line-height: 1.22; letter-spacing: -.025em;
  color: var(--ink-3); max-width: 26ch;
}

.jornada-peso strong { display: block; font-weight: 800; color: var(--ink); text-wrap: balance; }
.js-motion .jornada-peso {
  opacity: 0; transform: translateY(10px);
  transition: opacity 480ms var(--ease) 940ms, transform 480ms var(--ease) 940ms;
}
.js-motion .jornada.es-visible .jornada-peso { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .jornada-pilas::after { transform: scaleX(1) !important; }
  .jornada-peso { opacity: 1 !important; transform: none !important; }
}

.abre-oscuro { background: linear-gradient(var(--noche) 0 320px, var(--bg) 320px); }

.abre-oscuro .site-header { margin-bottom: calc(-1 * var(--menu-flujo)); }
.abre-oscuro .apertura .hero-editorial {
  padding-top: calc(var(--site-menu-flujo, 78px) + clamp(76px, 10vw, 168px));
}
.apertura { border-bottom: 0; }
.apertura .hero-editorial {
  background: none; border-bottom: 0;
  padding-block: clamp(76px, 10vw, 168px) clamp(60px, 8vw, 128px);
}
.apertura .hero-editorial::after { content: none; }
.apertura .hero-titular { color: #fff; }
.apertura .hero-titular em { color: #C4B5FD; font-style: italic; }
.apertura .hero-bajada { color: rgba(247, 247, 251, .82); }
.apertura .hero-pie { border-top-color: rgba(255, 255, 255, .20); }
.apertura .hero-dato { color: rgba(247, 247, 251, .64); }
.apertura .hero-dato strong { color: #fff; }

.apertura .hero-vista {
  border-radius: var(--r-lg);
  box-shadow: 0 30px 80px rgba(6, 4, 14, .55), 0 0 0 1px rgba(255, 255, 255, .10);
}

.apertura .escenas-seccion { background-image: none; padding-bottom: clamp(56px, 7vw, 104px); }
.apertura .escenas {
  background: rgba(255, 255, 255, .18);
  border-color: rgba(255, 255, 255, .18);
  box-shadow: 0 28px 70px rgba(6, 4, 14, .46);
}
.apertura .escena { background: rgba(255, 255, 255, .94); }
.apertura .escena:hover, .apertura .escena:focus-within { background: var(--nacar-alto); }

@media (prefers-reduced-motion: no-preference) {
  .apertura::before {
    animation: deriva-apertura 34s ease-in-out infinite alternate,
               deriva-color-apertura 48s ease-in-out infinite alternate;
    will-change: transform;
  }
}
@keyframes deriva-apertura {
  from { transform: scale(1.02) translate3d(0, 0, 0); }
  to   { transform: scale(1.10) translate3d(-2%, -1.2%, 0); }
}
@keyframes deriva-color-apertura {
  from {
    --esp15-c1: rgba(70, 11, 186, 0.50);
    --esp15-c2: rgba(35, 8, 92, 0.62);
    --esp15-c3: rgba(156, 107, 255, 0.14);
  }
  to {
    --esp15-c1: rgba(98, 17, 255, 0.46);   
    --esp15-c2: rgba(53, 13, 130, 0.58);
    --esp15-c3: rgba(196, 181, 253, 0.22); 
  }
}

.seccion-globo { padding-block: clamp(48px, 6vw, 96px); }
.globo-rejilla { display: grid; gap: clamp(24px, 3vw, 48px); align-items: center; }
@media (min-width: 900px) { .globo-rejilla { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); } }
.globo-lienzo { display: grid; place-items: center; }
.globo { width: 100%; max-width: 560px; display: grid; place-items: center; }
.globo canvas { display: block; max-width: 100%; }
.globo-dicho h2 { margin-bottom: .45em; }
.globo-dicho .lead { margin-bottom: 1em; }
.globo-lista { list-style: none; margin: clamp(20px, 2.4vw, 28px) 0 0; padding: 0; display: grid; gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: var(--r-md); overflow: hidden; }
.globo-lista li {
  display: flex; justify-content: space-between; align-items: baseline; gap: 16px;
  background: var(--nacar); padding: 9px 14px; font-size: var(--fs-small);
  transition: background var(--t) var(--ease), color var(--t) var(--ease);
}
.globo-pais { color: var(--ink-2); }

.globo-lista li { cursor: pointer; }
.globo-lista li:hover { background: var(--bg-2); }
.globo-lista li:focus-visible { outline: none; box-shadow: inset var(--ring); }
.globo-lista li[data-alfrente] { background: var(--primary-tint); }
.globo-lista li[data-alfrente] .globo-pais { color: var(--primary-3); font-weight: 600; }
.globo-nota { margin-top: 14px; font-size: var(--fs-meta); color: var(--ink-3); max-width: 52ch; }

.form-avance { display: flex; align-items: center; gap: 14px; margin-bottom: clamp(20px, 2.4vw, 28px); }
.form-avance-riel { flex: 1; height: 3px; border-radius: 999px; background: var(--line); overflow: hidden; }
.form-avance-riel i {
  display: block; height: 100%; background: linear-gradient(90deg, var(--primary), #9B6BFF);
  transform: scaleX(0); transform-origin: left; transition: transform 420ms var(--ease);
}
.form-avance-texto { font-family: var(--mono); font-size: var(--fs-meta); color: var(--ink-3); white-space: nowrap; }
.form-avance[data-completo="true"] .form-avance-texto { color: var(--ok); font-weight: 500; }

.field input:focus, .field select:focus, .field textarea:focus {
  box-shadow: var(--ring), 0 6px 18px rgba(98, 17, 255, .12);
}
@media (prefers-reduced-motion: no-preference) {
  .field input, .field select, .field textarea, .choice label {
    transition: border-color var(--t) var(--ease), box-shadow var(--t) var(--ease), transform var(--t-fast) var(--ease);
  }
  .field input:focus, .field select:focus, .field textarea:focus { transform: translateY(-1px); }
}
.choice label:has(input:checked) {
  border-color: var(--primary); background: var(--primary-tint); color: var(--primary-3); font-weight: 600;
}

:root {
  --fs-display: clamp(2.25rem, 1.3rem + 3vw, 3.5rem);     
  --fs-h1: clamp(1.875rem, 1.3rem + 2vw, 3rem);           
  --fs-lead: clamp(1.0625rem, 1rem + .3vw, 1.125rem);     
  --fs-meta: .8125rem;                                    
  --fs-hero: clamp(2.25rem, 1.4rem + 2.9vw, 3.5rem);      
  --fs-declara: clamp(1.625rem, 1rem + 2.4vw, 2.75rem);   
  --section-xl: clamp(56px, 6.5vw, 104px);                
  --section: clamp(48px, 5.5vw, 80px);                    
  --aire: clamp(28px, 3vw, 44px);                         
}
body { line-height: 1.5; }

.hero-titular, .display, .declaracion .frase, .tablero-titulo {
  font-family: var(--serif); font-weight: 400;
}

.lead, .declaracion .apoyo { font-size: var(--fs-lead); line-height: 1.5; max-width: 32em; }
.hero-bajada { font-size: var(--fs-lead); line-height: 1.5; max-width: 34em; }
.section-head { max-width: 40em; }
.section-head h2, .narrow > h2 { max-width: 30ch; text-wrap: balance; }
.section p:not([class]), .section-sm p:not([class]), .declaracion p:not([class]), .seccion-vista p:not([class]) { max-width: 62ch; }
.fact h3, .columna h3, .grid-3 h3, .arco-cuerpo h3, .actor h3, .pillar h3 { max-width: 30ch; }
.door h3 { max-width: 26ch; }

.hero-editorial { padding-block: clamp(56px, 7vw, 112px) clamp(48px, 6vw, 88px); }
.apertura .hero-editorial { padding-block: clamp(64px, 8vw, 128px) clamp(48px, 6vw, 96px); }
.abre-oscuro .apertura .hero-editorial { padding-top: calc(var(--site-menu-flujo, 78px) + clamp(56px, 7vw, 112px)); }
.tablero, .lamina { padding-block: clamp(48px, 6vw, 88px); }
.site-footer { padding-block: clamp(56px, 7vw, 96px) clamp(36px, 4vw, 56px); }

.espectro p:not(.lead), .sala p:not(.lead), .lamina p, .modulo p, .tablero-panel p { color: rgba(247, 247, 251, .88); }
.contacto-hoja p { color: var(--ink-2); }

.facts { display: grid; grid-template-columns: 1fr; gap: 0; border-top: 1px solid var(--riel-fuerte); }
.fact { border-top: 0; border-bottom: 1px solid var(--riel-fuerte); padding: 0; transform: none; }
.facts:not(.es-riel) .fact { padding-block: 20px 22px; }
.fact h3 { margin: 0; font-size: var(--fs-h3); font-weight: 600; letter-spacing: -.01em; line-height: 1.25; max-width: none; }
.facts:not(.es-riel) .fact h3 { margin-bottom: .4em; }
.fact-cabeza {
  width: 100%; display: grid; grid-template-columns: 2.5rem minmax(0, 1fr) auto; align-items: center; gap: 12px;
  padding: 18px 0; background: none; border: 0; text-align: left; font: inherit; color: var(--ink); cursor: pointer;
  transition: color var(--t) var(--ease);
}
.fact-cabeza:hover { color: var(--primary-3); }
.fact-cabeza:focus-visible { box-shadow: var(--ring); border-radius: 4px; }
.fact-num { font-family: var(--mono); font-size: var(--fs-meta); color: var(--ink-3); letter-spacing: .04em; }
.fact-cabeza[aria-expanded="true"] .fact-num { color: var(--primary); }
.fact-cabeza .pliego-signo { color: var(--ink-3); }
.fact-cuerpo { padding: 0 0 22px 2.5rem; padding-left: calc(2.5rem + 12px); }
.fact-cuerpo p { color: var(--ink-2); max-width: 56ch; margin: 0; }
.fact-cuerpo p + p { margin-top: .6em; }
.fact-cuerpo .source, .fact .source { font-size: var(--fs-meta); color: var(--ink-3); margin-top: 12px; }
@media (min-width: 960px) {
  .section:has(> .container > .facts) > .container,
  .section-sm:has(> .container > .facts) > .container {
    display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    column-gap: clamp(40px, 5vw, 96px); align-items: start;
  }
  .section:has(> .container > .facts) > .container > .section-head,
  .section-sm:has(> .container > .facts) > .container > .section-head {
    position: sticky; top: calc(var(--site-menu-flujo, 78px) + 24px); margin-bottom: 0;
  }
}

@media (min-width: 1100px) {
  .hero-editorial .hero-rejilla { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 5vw, 80px); }
}
.hero-editorial .escenario:has(.hero-vista),
.hero-editorial .escenario { margin-right: 0; }
@media (min-width: 721px) { .hero-editorial .escenario { margin-inline: 0; } }
.hero-vista { max-width: 620px; margin-inline: auto; }
.apertura .hero-vista { box-shadow: 0 18px 48px rgba(6, 4, 14, .42), 0 0 0 1px rgba(255, 255, 255, .10); }

.page-head {
  position: relative; overflow: clip;
  padding-block: clamp(48px, 6vw, 88px) clamp(40px, 5vw, 64px);
  background: linear-gradient(180deg, #FFFFFF 0%, #F7F7FB 62%, #F2F1F5 100%);
  border-bottom: 1px solid var(--line);
}
.page-head::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(ellipse 52% 60% at 92% 0%, rgba(98, 17, 255, .08), transparent 60%);
}
.page-head > .container { position: relative; z-index: 1; }
.page-head .display {
  font-size: var(--fs-h1); font-weight: 700; line-height: 1.06; letter-spacing: -.025em;
  /* La medida va en `em` —relativa a la propia letra del titular— y no en `ch`:
     `ch` es el ancho del cero en la fuente del CONTENEDOR, que aquí es la sans,
     mientras el titular se compone en la serif. Con 16ch la caja quedaba en
     598 px y «Que tu organización avance.» necesitaba 615: se partía por 17 px.
     15em deja que cursivas largas como «Un módulo para cada activo intangible»
     o «El poder que tu operación necesita» quepan sin partirse; `text-wrap:
     balance` reparte parejo cuando sí se parten. */
  max-width: 15em; margin: 0; text-wrap: balance;
}
.page-head .lead { max-width: 30em; margin: 20px 0 0; }
.page-head .actions { margin-top: 32px; }
.page-head .btn-lg { min-height: 44px; padding-inline: 18px; font-size: .875rem; }
.page-head .linea-rumbo { margin: 28px 0 0; font-size: var(--fs-meta); line-height: 1.6; color: var(--ink-3); max-width: 56ch; }
.page-head .linea-rumbo .rumbo { font-size: .75rem; }

.page-head > .container:has(.cabecera-indice) { display: grid; gap: clamp(32px, 4vw, 56px); align-items: start; }
@media (min-width: 1024px) {
  .page-head > .container:has(.cabecera-indice) { grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); column-gap: clamp(48px, 6vw, 112px); }
  .cabecera-indice { padding-top: 10px; }
}
.cabecera-indice-rotulo {
  display: flex; align-items: center; gap: 14px;
  font-family: var(--mono); font-size: var(--fs-meta); color: var(--ink-3); letter-spacing: .04em;
}
.cabecera-indice-rotulo::after { content: ""; flex: 1; height: 1px; background: var(--riel-fuerte); }
.cabecera-indice ol { list-style: none; margin: 8px 0 0; padding: 0; }
.cabecera-indice li { border-bottom: 1px solid var(--line); }
.cabecera-indice a {
  display: grid; grid-template-columns: 2.25rem minmax(0, 1fr) auto; align-items: baseline; gap: 10px;
  padding: 11px 0; color: var(--ink-2); font-size: var(--fs-small); line-height: 1.35;
  transition: color var(--t) var(--ease);
}
.cabecera-indice a:hover { color: var(--primary-3); }
.cabecera-indice .num { font-family: var(--mono); font-size: var(--fs-meta); color: var(--ink-3); }
.cabecera-indice .ir { color: var(--ink-3); transition: transform var(--t) var(--ease), color var(--t) var(--ease); }
.cabecera-indice a:hover .ir { transform: translateX(3px); color: var(--primary); }
[id] { scroll-margin-top: calc(var(--site-menu-flujo, 78px) + 24px); }

.metodo-resumen { display: grid; gap: 14px; align-content: start; padding-top: 8px; }
.metodo-etapas { font-family: var(--mono); font-size: var(--fs-meta); letter-spacing: .04em; color: #C4B5FD; white-space: normal; line-height: 1.9; margin: 0; }
.metodo-resumen p { margin: 0; max-width: 46ch; }
.metodo-enlaces { display: flex; flex-wrap: wrap; gap: 8px 24px; }
.metodo-resumen .link { color: #C4B5FD; }
.metodo-resumen .link:hover { color: #fff; }

.proxima { display: block; margin-top: 10px; font-size: var(--fs-meta); color: var(--ink-3); }
.tablero-panel .proxima, .espectro .proxima, .sala .proxima { color: rgba(247, 247, 251, .64); }
.step-panel .proxima { display: inline; margin: 0 0 0 6px; }
.constancia-banda {
  background: none; color: var(--ink-3); font-weight: 500; letter-spacing: .02em;
  border-bottom: 1px solid var(--line); border-radius: 0;
  font-family: var(--mono);
}

.asunto-head strong { font-size: 1.125rem; letter-spacing: -.01em; }
.asunto .kv, .constancia .kv { gap: 10px 20px; }

.asunto .kv dt { font-size: var(--fs-small); font-weight: 600; color: var(--ink-3); }
.sala .asunto .kv dt { color: rgba(247, 247, 251, .68); }

.door h3 { max-width: 30ch; text-wrap: balance; }

.aire-arriba { margin-top: clamp(56px, 7vw, 96px); }

.field select {
  appearance: none; -webkit-appearance: none; padding-right: 44px; cursor: pointer;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%2324232A' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M4 6l4 4 4-4'/></svg>");
  background-repeat: no-repeat; background-position: right 14px center; background-size: 16px 16px;
}
.field select:focus { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%236211FF' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'><path d='M4 6l4 4 4-4'/></svg>"); }

.espectro .escena p, .sala .escena p,
.espectro .constancia p, .sala .constancia p,
.espectro .step-panel p, .sala .step-panel p { color: var(--ink-2); }

.espectro .contacto-hoja p, .sala .contacto-hoja p { color: var(--ink-2); }
.espectro .contacto-hoja .hint, .espectro .contacto-hoja .legal { color: var(--ink-3); }

.avance {
  position: absolute; top: calc(100% + 6px); left: 50%;
  transform: translate(-50%, -4px);
  max-width: min(1120px, calc(100% - 2 * var(--gutter)));
  display: flex; align-items: center; gap: 14px;
  padding: 4px 6px 4px 14px;
  background: rgba(22, 19, 34, .78);
  -webkit-backdrop-filter: blur(20px) saturate(1.6);
  backdrop-filter: blur(20px) saturate(1.6);
  border: 1px solid rgba(255, 255, 255, .16);
  border-radius: var(--r-lg);
  box-shadow: 0 12px 32px rgba(16, 13, 26, .24);
  color: #fff;
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity var(--t) var(--ease), transform var(--t) var(--ease), visibility 0s linear var(--t);
}
.avance.es-visible {
  opacity: 1; visibility: visible; pointer-events: auto; transform: translate(-50%, 0);
  transition: opacity var(--t) var(--ease), transform var(--t) var(--ease), visibility 0s;
}
.menu-abierto .avance { display: none; }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .avance { background: rgba(22, 19, 34, .96); }
}
.avance-actual {
  margin: 0; display: flex; align-items: baseline; gap: 10px; min-width: 0;
  font-size: .8125rem; font-weight: 500; line-height: 1.3; color: #fff;
}
.avance-num { font-family: var(--mono); font-size: .75rem; color: #C4B5FD; white-space: nowrap; }
.avance-titulo { max-width: 36ch; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.avance-pasos {
  list-style: none; margin: 0; padding: 0 0 0 10px; display: flex; gap: 2px;
  border-left: 1px solid rgba(255, 255, 255, .16);
}
.avance-pasos a {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px;
  min-width: 32px; min-height: 40px; padding: 4px 4px 6px; border-radius: var(--r-sm);
  font-family: var(--mono); font-size: .75rem; color: rgba(247, 247, 251, .66);
  text-decoration: none;
  transition: color var(--t) var(--ease), background var(--t) var(--ease);
}
.avance-pasos a::after {
  content: ""; width: 20px; height: 3px; border-radius: 2px;
  background: rgba(255, 255, 255, .18);
  transition: background var(--t) var(--ease), width var(--t) var(--ease);
}
.avance-pasos a:hover { color: #fff; background: rgba(255, 255, 255, .12); }
.avance-pasos a:focus-visible { outline: none; box-shadow: 0 0 0 2px #C4B5FD; }
.avance-pasos a.es-vista { color: #C4B5FD; }
.avance-pasos a.es-vista::after { background: #9B6BFF; }
.avance-pasos a.es-actual { color: #fff; font-weight: 600; }
.avance-pasos a.es-actual::after { background: #9B6BFF; width: 26px; }

@media (max-width: 719px) {
  .avance {
    left: 12px; right: 12px; max-width: none; transform: translateY(-4px);
    flex-direction: column; align-items: stretch; gap: 4px; padding: 8px 12px 4px;
  }
  .avance.es-visible { transform: none; }
  .avance-titulo { max-width: none; }
  .avance-pasos { border-left: 0; padding: 0; gap: 3px; }
  .avance-pasos li { flex: 1; }
  .avance-pasos a { min-width: 0; min-height: 24px; padding: 0; }
  .avance-pasos a::after, .avance-pasos a.es-actual::after { width: 100%; }
  .avance-n { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
}
@media (prefers-reduced-motion: reduce) {
  .avance, .avance.es-visible { transition: none; }
}

.cabecera-indice a.es-vista .num { color: var(--primary); }
.cabecera-indice a.es-actual { color: var(--primary-3); }
.cabecera-indice a.es-actual .num { color: var(--primary); font-weight: 600; }

.hero-titular { font-size: clamp(2.7rem, 1.68rem + 3.48vw, 4.2rem); }                 
.page-head .display { font-size: clamp(2.0625rem, 1.43rem + 2.2vw, 3.3rem); font-weight: 400; } 
.declaracion .frase { font-size: clamp(1.7875rem, 1.1rem + 2.64vw, 3.025rem); }       
.tablero-titulo { font-size: clamp(1.925rem, 1.21rem + 2.86vw, 3.3rem); }             

#contenido :is(h2, h3, h4):not(.frase, .tablero-titulo),
#contenido :is(.pliego-titulo, .arco-verbo, .vista-pie strong, .nucleo-item dt),
.site-footer .pie-declara {
  font-family: var(--serif); font-weight: 400; letter-spacing: -.01em;
}
#contenido :is(h2, h3, h4, .vista-pie strong) em, .site-footer .pie-declara em { font-style: italic; }
.vista-pie strong em { color: var(--primary); }
.sala .vista-pie strong em, .espectro .vista-pie strong em { color: #C4B5FD; }

#contenido .arco-verbo { font-style: italic; }

#contenido h2 em { display: block; }
#contenido .escena h2 em { display: inline; }

#contenido { --fs-h2: clamp(1.65rem, 1.43rem + .935vw, 2.2rem); }

.escena h2 em { color: var(--primary); }
.escena.barrido:hover h2 em, .escena.barrido:focus-within h2 em { color: inherit; }

#contenido .voice blockquote {
  font-family: var(--serif); font-weight: 400; font-style: italic;
  font-size: clamp(1.25rem, 1.1rem + .6vw, 1.5rem); line-height: 1.35; letter-spacing: -.005em;
}
.sala .voice { border-top-color: var(--noche-linea); }
.sala .voice blockquote { color: #fff; }
.sala .voice figcaption { color: var(--noche-tenue); }
.sala .voice figcaption strong { color: #fff; font-weight: 500; }

#contenido :is(h2, h3, .pliego-titulo, dt).nombre { font-weight: 500; }

#contenido :is(h1, h2) em.entero,
#contenido :is(h3, h4, .display, .vista-titulo, .vista-pie strong, .pliego-titulo) em,
#contenido .escena h2 em { display: inline-block; }

#contenido :is(h1, h2, h3, h4, .pliego-titulo) .pending { font-family: var(--sans); font-style: normal; }

.pliego:has([aria-expanded="true"]) .pliego-titulo em,
.pliego-cabeza button[aria-expanded="true"] .pliego-titulo em { color: inherit; }

.site-footer .pie-declara { color: var(--neutral-0); }
.site-footer .pie-declara em { display: block; color: var(--champagne-300); }

#contenido .escena h2 { font-weight: 500; }
#contenido .escena .marca-puerta { font-weight: 400; }

#contenido h3:not(.arco-cuerpo h3),
#contenido .pliego-cabeza .pliego-titulo,
#contenido .cristal h2 { font-weight: 500; }
#contenido :is(.fact-num, .pliego-num) { font-weight: 400; }

.columna p strong { display: block; margin-bottom: 4px; }

.globo-dicho h2 { text-wrap: balance; }

p .linea { display: inline; }
@media (min-width: 1200px) { p .linea { display: block; } }

.pie-apoyo { font-size: .9375rem; margin-top: 1.75rem; max-width: 58ch; }
.pie-apoyo p { margin: 0; }
.pie-apoyo p + p { margin-top: 1.75rem; }
.pie-apoyo p:first-child { color: rgba(247, 247, 251, .86); }
.pie-apoyo .linea { display: inline; }
@media (min-width: 400px) { .pie-apoyo .linea { display: block; } }

.pie-marca .pie-logo { display: block; margin: 0 0 2.25rem -12.3px; }
@media (min-width: 900px) {
  .pie-cima { grid-template-columns: minmax(0, 1fr); gap: clamp(48px, 5vw, 72px); }
  
  .pie-alcance .cuando { margin-left: auto; }
}

@media (min-width: 1000px) {
  .pie-marca {
    display: grid; grid-template-columns: minmax(0, 1fr) auto;
    column-gap: clamp(40px, 5vw, 72px); align-items: start; align-items: first baseline;
  }
  .pie-marca .pie-logo { grid-column: 1 / -1; justify-self: start; }
  .site-footer .pie-marca .pie-declara { grid-column: 1; max-width: none; }
  .pie-marca .pie-apoyo { grid-column: 2; margin-top: 0; max-width: 27rem; text-align: right; }
}

p .idea { display: block; }
p .idea + .idea { margin-top: 1.5em; }

.pie-enlaces { display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: baseline; }
.pie-enlaces a { color: rgba(247,247,251,.72); }
.pie-enlaces a:hover { color: #fff; }
.pie-enlaces .pie-copy { color: rgba(247,247,251,.52); }
@media (min-width: 900px) { .pie-enlaces { justify-content: flex-end; } }

@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 400; font-display: swap; src: url("/sitio/fonts/ibm-plex-mono/ibm-plex-mono-400.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Mono"; font-style: italic; font-weight: 400; font-display: swap; src: url("/sitio/fonts/ibm-plex-mono/ibm-plex-mono-400-italica.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 500; font-display: swap; src: url("/sitio/fonts/ibm-plex-mono/ibm-plex-mono-500.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 600; font-display: swap; src: url("/sitio/fonts/ibm-plex-mono/ibm-plex-mono-600.woff2") format("woff2"); }
@font-face { font-family: "IBM Plex Mono"; font-style: normal; font-weight: 700; font-display: swap; src: url("/sitio/fonts/ibm-plex-mono/ibm-plex-mono-700.woff2") format("woff2"); }

@property --vdm-ang { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
@keyframes vdm-giro { to { --vdm-ang: 360deg; } }

:root {
  
  --mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --fs-body: 1.0625rem; --fs-small: 1.0625rem;              
  --fs-meta: .875rem;                                       
  --fs-h3: clamp(1.375rem, 1.25rem + .4vw, 1.625rem);       
  --fs-lead: clamp(1.1875rem, 1.1rem + .35vw, 1.3125rem);   

--ink-3: #434253;

--r-sm: 3px; --r-md: 3px; --r-lg: 4px; --r-xl: 6px;

--v-blue: #59B8D9;
  --v-blue-ink: #1F6F88;
  --v-blue-bg: #E2F2F8;
  --acento-noche: #9ED3E6;          
  --avance: linear-gradient(90deg, #1F6F88 0%, #59B8D9 100%);

--control-h: 44px;
  --control-borde: #C3C3D2;
  --control-tinta: #2B2A38;
  --control-tinta-hover: #1D1B2E;
  
  --ring: 0 0 0 3px rgba(31, 111, 136, .28);
}
@media (max-width: 640px) { :root { --fs-body: 1rem; --fs-small: 1rem; } }

.btn, .field input, .field textarea, .field select, .btn-secondary::after, .tablero-pausa::after {
  --giro: conic-gradient(from var(--vdm-ang), #2B2A38 0deg, #1F6F88 70deg, #59B8D9 120deg, #9ED3E6 160deg, #59B8D9 200deg, #2B2A38 280deg, #2B2A38 360deg);
  --giro-claro: conic-gradient(from var(--vdm-ang), #C3C3D2 0deg, #59B8D9 80deg, #1F6F88 130deg, #59B8D9 180deg, #C3C3D2 260deg, #C3C3D2 360deg);
  --giro-noche: conic-gradient(from var(--vdm-ang), rgba(255,255,255,.28) 0deg, #59B8D9 90deg, #9ED3E6 140deg, rgba(255,255,255,.28) 230deg, rgba(255,255,255,.28) 360deg);
  --giro-blanco: conic-gradient(from var(--vdm-ang), #FFFFFF 0deg, #59B8D9 90deg, #9ED3E6 140deg, #FFFFFF 230deg, #FFFFFF 360deg);
}
body { line-height: 1.55; }

.hero-titular { font-size: clamp(3rem, 1.8rem + 3.8vw, 4.75rem); letter-spacing: -.025em; }   
.page-head .display { font-size: clamp(2.375rem, 1.6rem + 2.6vw, 3.75rem); }                   
.declaracion .frase { font-size: clamp(2rem, 1.3rem + 2.2vw, 3rem); }                          
#contenido { --fs-h2: clamp(1.875rem, 1.5rem + 1.2vw, 2.5rem); }                               

.sala em, .espectro em, .lamina em, .tablero em, .cta-final em, .site-footer em,
.sala h2 em, .cta-final h2 em, .apertura .hero-titular em,
.sala .vista-pie strong em, .espectro .vista-pie strong em { color: var(--acento-noche); }
#contenido :is(h3, h4, .pliego-titulo, .vista-titulo, .vista-pie strong, .nucleo-item dt) em,
#contenido :is(.cristal, .plan, .form-result, .contacto-lado) :is(h2, h3) em { color: inherit; }

.fact-num, .pliego-num, .arco-num, .cabecera-indice-rotulo, .cabecera-indice .num,
.escena .marca-puerta, .columna .indice, .form-avance-texto, .hero-dato, .folio,
.constancia-banda, .vista-origen, .no-hace, .pie-alcance .que, .pie-alcance .cuando {
  font-size: var(--fs-meta); letter-spacing: 0;
}
.jornada-rotulo, .constancia .kv dt, .constancia .sig, .tabla-limite th[scope="col"], .pie-col h3 {
  font-family: var(--mono); font-size: var(--fs-meta); font-weight: 500;
  letter-spacing: 0; text-transform: none;
}
#contenido :is(.fact-num, .pliego-num), #contenido .escena .marca-puerta { font-weight: 500; }
.columna .indice { font-size: .9375rem; font-weight: 500; }

.link { color: var(--ink); font-weight: 600; }
.link:hover { color: var(--ink); }
.link::before { height: 2px; bottom: -3px; background: linear-gradient(90deg, #1F6F88, #59B8D9, #9ED3E6); }
:is(.sala, .espectro, .lamina, .tablero, .cta-final) .link,
.sala .link, .contacto-lado .link, .metodo-resumen .link { color: var(--acento-noche); }
:is(.sala, .espectro, .lamina, .tablero, .cta-final) .link:hover,
.sala .link:hover, .contacto-lado .link:hover, .metodo-resumen .link:hover { color: #fff; }
:is(.sala, .espectro, .lamina, .tablero, .cta-final) :is(.contacto-hoja, .constancia, .escena, .step-panel) .link { color: var(--ink); }
#contenido p a:not([class]) { color: var(--ink); text-decoration: underline; text-decoration-color: var(--v-blue); text-decoration-thickness: 1.5px; text-underline-offset: 3px; }
#contenido p a:not([class]):hover { color: var(--v-blue-ink); }
#contenido :is(.sala, .espectro, .lamina, .tablero, .cta-final) p a:not([class]) { color: var(--acento-noche); }
#contenido :is(.sala, .espectro, .lamina, .tablero, .cta-final) :is(.contacto-hoja, .constancia, .escena) p a:not([class]) { color: var(--ink); }

.btn, .btn-lg {
  min-height: var(--control-h); padding: 10px 20px; border-radius: var(--r-sm);
  font-size: .875rem; font-weight: 600; letter-spacing: .01em;
  border: 1px solid transparent;
  --f: var(--control-tinta); --edge: linear-gradient(var(--f), var(--f));
  background: linear-gradient(var(--f), var(--f)) padding-box, var(--edge) border-box;
  transition: transform var(--t-fast) var(--ease), box-shadow var(--t) var(--ease), color var(--t) var(--ease);
}
.btn-primary { --f: var(--control-tinta); color: #fff; box-shadow: none;
  background: linear-gradient(var(--f), var(--f)) padding-box, var(--edge) border-box; }
.btn-primary:hover, .nav .btn:hover {
  --f: var(--control-tinta-hover); --edge: var(--giro); color: #fff;
  background: linear-gradient(var(--f), var(--f)) padding-box, var(--edge) border-box;
  box-shadow: 0 10px 22px -12px rgba(31, 111, 136, .65); transform: none;
  animation: vdm-giro 2.4s linear infinite; transition-duration: var(--t-control);
}
.btn-primary:active {
  --f: #110F1C; background: linear-gradient(var(--f), var(--f)) padding-box, var(--edge) border-box;
  box-shadow: none; transform: translateY(1px);
}
.btn-secondary {
  --f: var(--nacar-alto); --edge: linear-gradient(var(--control-borde), var(--control-borde));
  color: var(--ink); border-color: transparent; box-shadow: none;
  background: linear-gradient(var(--f), var(--f)) padding-box, var(--edge) border-box;
}
.btn-secondary:hover {
  --f: var(--bg-2); --edge: var(--giro-claro); color: var(--ink); border-color: transparent;
  background: linear-gradient(var(--f), var(--f)) padding-box, var(--edge) border-box;
  box-shadow: none; transform: none;
  animation: vdm-giro 2.4s linear infinite; transition-duration: var(--t-control);
}
.btn-secondary:active {
  --f: #F1F2F6; background: linear-gradient(var(--f), var(--f)) padding-box, var(--edge) border-box;
  transform: translateY(1px);
}
.btn:disabled, .btn:disabled:hover {
  --f: #E5E5EE; --edge: linear-gradient(#E5E5EE, #E5E5EE); color: #5A5A6E; opacity: 1;
  background: linear-gradient(var(--f), var(--f)) padding-box, var(--edge) border-box;
  animation: none; box-shadow: none; transform: none; cursor: not-allowed;
}

:is(.cta-final, .espectro, .lamina, .sala, .tablero) .btn-primary:not(:is(.contacto-hoja, .escena, .constancia, .step-panel) *) {
  --f: #FFFFFF; --edge: linear-gradient(#FFFFFF, #FFFFFF); color: var(--ink);
  background: linear-gradient(var(--f), var(--f)) padding-box, var(--edge) border-box;
}
:is(.cta-final, .espectro, .lamina, .sala, .tablero) .btn-primary:not(:is(.contacto-hoja, .escena, .constancia, .step-panel) *):hover {
  --f: #F7F7FB; --edge: var(--giro-blanco); color: var(--ink);
  background: linear-gradient(var(--f), var(--f)) padding-box, var(--edge) border-box;
  box-shadow: 0 10px 26px -12px rgba(89, 184, 217, .55);
}

:is(.cta-final, .espectro, .lamina, .sala, .tablero) .btn-secondary:not(:is(.contacto-hoja, .escena, .constancia, .step-panel) *) {
  position: relative; color: #fff;
  background: transparent; border: 1px solid rgba(255,255,255,.28);
}
:is(.cta-final, .espectro, .lamina, .sala, .tablero) .btn-secondary:not(:is(.contacto-hoja, .escena, .constancia, .step-panel) *):hover {
  color: #fff; background: rgba(255,255,255,.06); border-color: transparent; animation: none;
}
:is(.cta-final, .espectro, .lamina, .sala, .tablero) .btn-secondary:not(:is(.contacto-hoja, .escena, .constancia, .step-panel) *)::after,
.tablero-pausa::after {
  content: ""; position: absolute; inset: -1px; border-radius: inherit; padding: 1px; pointer-events: none;
  background: var(--giro-noche);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  opacity: 0; transition: opacity var(--t) var(--ease);
}
:is(.cta-final, .espectro, .lamina, .sala, .tablero) .btn-secondary:not(:is(.contacto-hoja, .escena, .constancia, .step-panel) *):hover::after,
.tablero-pausa:hover::after {
  opacity: 1; transition-duration: var(--t-control); animation: vdm-giro 2.4s linear infinite;
}

.nav .btn { padding: 0 16px; }
.es-vidrio .nav a.btn-primary {
  --f: #FFFFFF; --edge: linear-gradient(#FFFFFF, #FFFFFF); color: var(--ink);
  background: linear-gradient(var(--f), var(--f)) padding-box, var(--edge) border-box;
}
.es-vidrio .nav a.btn-primary:hover {
  --f: #F7F7FB; --edge: var(--giro-blanco); color: var(--ink);
  background: linear-gradient(var(--f), var(--f)) padding-box, var(--edge) border-box;
}

.barrido:hover .btn-primary, .barrido:focus-within .btn-primary { animation: none; }

.nav a:not(.btn)::after { background: var(--ink); }
.es-vidrio .nav a:not(.btn)::after { background: var(--acento-noche); }
.nav-toggle { border-color: var(--control-borde); }
.nav-toggle:hover { border-color: var(--control-tinta); color: var(--control-tinta); }
.es-vidrio .nav-toggle:hover { border-color: #fff; color: #fff; }
.brand:hover img { opacity: .72; }

.field input, .field textarea, .field select {
  min-height: var(--control-h); border-radius: var(--r-sm); border: 1px solid transparent;
  --f: #FFFFFF; --edge: linear-gradient(var(--control-borde), var(--control-borde));
  background: linear-gradient(var(--f), var(--f)) padding-box, var(--edge) border-box;
  color: var(--ink);
}
.field :is(input, textarea, select):is(:hover, :focus) { border-color: transparent; }
.field :is(input, textarea, select):hover { --edge: linear-gradient(#7C7C93, #7C7C93); }
.field :is(input, textarea, select):focus {
  --edge: var(--giro-claro); box-shadow: var(--ring); transform: none;
  animation: vdm-giro 3.2s linear infinite;
}
.field input::placeholder, .field textarea::placeholder { color: #6C6C80; }

.field select, .field select:hover, .field select:focus {
  background:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%232B2A38' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M4 6l4 4 4-4'/></svg>") no-repeat right 14px center / 16px 16px,
    linear-gradient(var(--f), var(--f)) padding-box, var(--edge) border-box;
}
.choice label { border-color: var(--control-borde); border-radius: var(--r-sm); }
.choice label:hover { border-color: var(--control-tinta); }
.choice label:has(input:checked) { border-color: var(--control-tinta); background: var(--bg-2); color: var(--ink); }
.choice input, .check input { accent-color: var(--control-tinta); }
.form-avance-riel i { background: var(--avance); }
.form-result { background: var(--bg-2); border-color: var(--line-strong); }

.facturacion-mando { background: #fff; border-color: var(--control-borde); }
.facturacion-mando button { font-size: 1rem; font-weight: 500; color: var(--ink-2); }
.facturacion-mando button:hover { color: var(--ink); background: #F1F2F6; }
.facturacion-mando button[aria-checked="true"] { background: var(--control-tinta); color: #fff; }

.proceso button { font-size: 1rem; color: var(--ink-2); }
.proceso button::before { top: 16.25px; height: 1.5px; background: var(--ink); }
.proceso-num {
  width: 34px; height: 34px; border: 1.5px solid var(--ink);
  background: #fff; color: var(--ink);
  font-size: .875rem; font-weight: 500;
}
.proceso button[aria-selected="true"] { color: var(--ink); font-weight: 600; }
.proceso button[aria-selected="true"] .proceso-num { background: var(--ink); color: #fff; box-shadow: 0 0 0 4px var(--v-blue-bg); }
.proceso button[aria-selected="true"] ~ button::before { background: var(--line-strong); }
.proceso button[aria-selected="true"] ~ button .proceso-num { background: #fff; color: var(--ink-3); border-color: var(--line-strong); }
.proceso button:hover .proceso-num { border-color: var(--ink); color: var(--ink); }
.proceso button[aria-selected="true"]:hover .proceso-num { color: #fff; }
@media (max-width: 860px) {
  .proceso { padding-left: 17px; }
  .proceso button { grid-template-columns: 34px minmax(0, 1fr); margin-left: -17px; }
  .proceso button::before { top: -50%; right: auto; left: 16.25px; width: 1.5px; height: 100%; }
}

.fact::after { background: var(--ink); }
.fact:hover h3, .fact-cabeza:hover { color: var(--ink); }
.fact-cabeza { padding: 22px 0; }
.fact-cabeza[aria-expanded="true"] .fact-num { color: var(--ink); }
.fact-cuerpo { padding-bottom: 26px; }
.fact-cuerpo p { color: var(--ink-2); }

.pliegos { gap: 10px; }
.pliego { border-color: var(--line-strong); background: var(--nacar); }
.pliego:hover { border-color: #A8A8BD; }
.pliego:has([aria-expanded="true"]) { border-color: var(--ink); }
.pliego-cabeza button { padding: 20px 22px; }
.pliego:has([aria-expanded="true"]) .pliego-cabeza button { background: none; color: var(--ink); }
.pliego:has([aria-expanded="true"]) .pliego-cabeza button:hover { background: var(--bg-2); }
.pliego:has([aria-expanded="true"]) .pliego-num { color: var(--ink-3); }
.pliego:has([aria-expanded="true"]) .pliego-cuerpo { background: none; }
.pliego:has([aria-expanded="true"]) .pending { color: var(--ink-3); }
.pliego-cuerpo { padding: 0 22px 22px; }
.pliego-cuerpo p { max-width: 64ch; }
@supports not selector(:has(*)) {
  .pliego-cabeza button[aria-expanded="true"] { background: none; color: var(--ink); }
  .pliego-cabeza button[aria-expanded="true"] .pliego-num, .pliego-cabeza button[aria-expanded="true"] .pending { color: var(--ink-3); }
}

.columna { padding: 32px 28px; }
.columna p { font-size: var(--fs-body); line-height: 1.55; }
.columnas .columna:nth-child(2) .indice { color: var(--ink-3); }
.columnas .columna::after { background: var(--ink-3); }
.espectro .columna::after, .sala .step::after, .cristal::after { background: var(--acento-noche); }

.escena { padding: 32px; }
.escena .ir { font-size: 1rem; font-weight: 600; }
@media (prefers-reduced-motion: no-preference) { .barrido::after { transition-duration: 900ms; } }
.escena:focus-within { box-shadow: inset 0 0 0 2px var(--v-blue-ink); }

.constancia { --constancia-relleno: 32px; padding: var(--constancia-relleno); }
@media (max-width: 520px) { .constancia { --constancia-relleno: 22px; } }
.constancia-banda { padding: 14px var(--constancia-relleno); margin-bottom: 26px; font-weight: 500; letter-spacing: 0; }
.constancia .constancia-head h3 { font-size: var(--fs-h3); line-height: 1.2; }
.constancia .kv { font-size: var(--fs-body); gap: 10px 22px; }
.constancia .kv dt { color: var(--ink-3); padding-top: 3px; }
.constancia .kv dd { font-size: var(--fs-body); }
.constancia .sig { color: var(--ink-3); gap: 4px; }
.constancia .sig strong { font-family: var(--sans); font-size: var(--fs-body); font-weight: 600; }
.constancia .folio { font-size: var(--fs-meta); }
.constancia-note { font-size: var(--fs-meta); }
.seal { width: 76px; height: 76px; border-color: var(--ink); }
.seal img { width: 50px; height: 50px; }
.sala .constancia:hover { box-shadow: 0 30px 72px rgba(0,0,0,.55), 0 0 0 1px rgba(158, 211, 230, .28); }

.asunto { padding: 24px; }
.asunto-head strong { font-size: 1.125rem; font-weight: 600; }
.asunto .kv dt { font-size: var(--fs-meta); font-weight: 500; color: var(--ink-3); padding-top: 2px; }
.asunto .kv dd { font-size: var(--fs-body); font-weight: 500; color: var(--ink); }
.sala .asunto .kv dt { color: rgba(247, 247, 251, .68); }
.sala .asunto .kv dd { color: #fff; }
.status { font-size: .9375rem; }
.status-primary::before { background: var(--v-blue); }
.historial li { font-size: var(--fs-meta); }
.historial li::before { background: var(--line-strong); box-shadow: 0 0 0 1px var(--line-strong); }

.arco-verbo { color: var(--ink); }
.arco-momento::after { background: var(--ink); }

.plan {
  background:
    radial-gradient(ellipse 96% 72% at 6% 0%, rgba(31, 111, 136, .075), transparent 60%),
    linear-gradient(165deg, #EEF4F6 0%, rgba(255, 255, 255, .5) 62%);
}
.plan.es-mayor {
  background:
    radial-gradient(ellipse 96% 72% at 6% 0%, rgba(127, 101, 48, .085), transparent 60%),
    linear-gradient(165deg, #F4F2EE 0%, rgba(255, 255, 255, .5) 62%);
  border-color: var(--paper-line);
}
.price { font-family: var(--mono); font-weight: 700; letter-spacing: -.02em; }
.price small { font-family: var(--sans); }
.salto { background: var(--v-blue-bg); color: var(--v-blue-ink); font-size: .8125rem; letter-spacing: 0; }
.plan-salto { border-top-color: var(--line); }
.plan-salto strong { color: var(--ink); }
.jornada-peso strong { font-weight: 700; }

.cabecera-indice a { font-size: var(--fs-body); padding: 14px 0; }
.cabecera-indice a:hover { color: var(--ink); }
.cabecera-indice a:hover .ir { color: var(--ink); }
.cabecera-indice a.es-vista .num { color: var(--v-blue-ink); }
.cabecera-indice a.es-actual { color: var(--ink); font-weight: 600; }
.cabecera-indice a.es-actual .num { color: var(--ink); }
.avance-num, .avance-pasos a.es-vista { color: var(--acento-noche); }
.avance-pasos a.es-vista::after { background: var(--v-blue); }
.avance-pasos a.es-actual::after { background: #fff; box-shadow: 0 0 0 1px var(--acento-noche); }
.avance-pasos a:focus-visible { box-shadow: 0 0 0 2px var(--acento-noche); }
.avance-actual { font-size: .875rem; }

.sala .mono, .tabla-noche td .mono, .metodo-etapas { color: var(--acento-noche); }
.nucleo-vectores path { stroke: var(--acento-noche); }
.nucleo-punto { background: var(--acento-noche); box-shadow: 0 0 0 5px rgba(158, 211, 230, .18); }
.globo-lista li[data-alfrente] { background: var(--v-blue-bg); }
.globo-lista li[data-alfrente] .globo-pais { color: var(--v-blue-ink); }

.tablero-pausa {
  position: relative; width: var(--control-h); height: var(--control-h); border-radius: var(--r-sm);
  background: transparent; border: 1px solid rgba(255,255,255,.28);
}
.tablero-pausa:hover { background: rgba(255,255,255,.06); border-color: transparent; }

.site-footer {
  background: radial-gradient(circle at 84% 12%, rgba(98, 17, 255, .22), transparent 42%),
              linear-gradient(135deg, #24232A 0%, #302359 100%);
}
.site-footer::before { content: none; }
.pie-col h3 { color: rgba(247, 247, 251, .68); }
.pie-col a { color: #fff; }
.pie-col a:hover, .pie-legal a:hover, .pie-enlaces a:hover { color: var(--v-blue); }
.pie-col a::before { background: var(--v-blue); }
.pie-alcance .que { color: var(--acento-noche); }

.esp-1::before { background:
  radial-gradient(ellipse 66% 52% at 22% 6%, rgba(98,17,255,.46), transparent 62%),
  radial-gradient(ellipse 58% 48% at 84% 82%, rgba(31,111,136,.30), transparent 64%),
  radial-gradient(ellipse 50% 40% at 64% 24%, rgba(158,211,230,.15), transparent 66%); }
.esp-2::before { background:
  radial-gradient(ellipse 68% 54% at 78% 10%, rgba(31,111,136,.43), transparent 62%),
  radial-gradient(ellipse 60% 46% at 16% 78%, rgba(98,17,255,.33), transparent 64%),
  radial-gradient(ellipse 46% 38% at 52% 96%, rgba(37,177,112,.18), transparent 66%); }
.esp-3::before { background:
  radial-gradient(ellipse 64% 50% at 18% 84%, rgba(37,177,112,.38), transparent 62%),
  radial-gradient(ellipse 62% 50% at 82% 12%, rgba(98,17,255,.34), transparent 64%),
  radial-gradient(ellipse 48% 40% at 46% 40%, rgba(31,111,136,.16), transparent 66%); }
.esp-4::before { background:
  radial-gradient(ellipse 64% 50% at 80% 82%, rgba(127,101,48,.38), transparent 62%),
  radial-gradient(ellipse 62% 50% at 20% 10%, rgba(98,17,255,.37), transparent 64%),
  radial-gradient(ellipse 44% 36% at 56% 52%, rgba(158,211,230,.12), transparent 68%); }
.esp-5::before { background:
  radial-gradient(ellipse 70% 56% at 50% 2%, rgba(85,14,226,.44), transparent 60%),
  radial-gradient(ellipse 56% 46% at 12% 86%, rgba(31,111,136,.28), transparent 64%),
  radial-gradient(ellipse 50% 40% at 88% 70%, rgba(230,211,166,.19), transparent 66%); }
.esp-6::before { background:
  radial-gradient(ellipse 70% 52% at 26% 8%, rgba(44,147,176,.42), transparent 62%),
  radial-gradient(ellipse 60% 48% at 84% 76%, rgba(37,177,112,.32), transparent 64%),
  radial-gradient(ellipse 52% 42% at 58% 44%, rgba(98,17,255,.20), transparent 66%); }
.esp-7::before { background:
  radial-gradient(ellipse 84% 54% at 50% 104%, rgba(29,79,145,.46), transparent 62%),
  radial-gradient(ellipse 58% 46% at 20% 12%, rgba(98,17,255,.34), transparent 64%),
  radial-gradient(ellipse 50% 40% at 86% 28%, rgba(44,147,176,.22), transparent 66%); }
.esp-8::before { background:
  linear-gradient(118deg, rgba(29,107,87,.50) 0%, transparent 56%),
  radial-gradient(ellipse 62% 50% at 82% 88%, rgba(98,17,255,.36), transparent 64%),
  radial-gradient(ellipse 46% 38% at 34% 30%, rgba(158,211,230,.14), transparent 68%); }
.esp-9::before { background:
  radial-gradient(ellipse 66% 52% at 76% 10%, rgba(230,211,166,.44), transparent 62%),
  radial-gradient(ellipse 46% 38% at 30% 82%, rgba(249,188,13,.18), transparent 66%),
  radial-gradient(ellipse 64% 52% at 14% 26%, rgba(85,14,226,.38), transparent 64%); }
.esp-10::before { background:
  linear-gradient(74deg, rgba(196,85,46,.38) 0%, transparent 58%),
  linear-gradient(64deg, rgba(230,211,166,.26) 0%, transparent 62%),
  radial-gradient(ellipse 62% 50% at 84% 84%, rgba(85,14,226,.34), transparent 64%); }
.esp-11::before { background:
  radial-gradient(ellipse 68% 54% at 28% 12%, rgba(90,90,110,.40), transparent 62%),
  radial-gradient(ellipse 64% 52% at 80% 80%, rgba(48,35,89,.44), transparent 64%),
  radial-gradient(ellipse 44% 36% at 56% 46%, rgba(98,17,255,.14), transparent 68%); }
.esp-12::before { background:
  linear-gradient(100deg, rgba(98,17,255,.42) 0%, rgba(29,107,87,.34) 32%, rgba(44,147,176,.30) 64%, rgba(37,177,112,.26) 100%),
  radial-gradient(ellipse 80% 44% at 50% 104%, rgba(29,79,145,.34), transparent 64%); }
.esp-13::before { background:
  radial-gradient(ellipse 64% 50% at 22% 10%, rgba(37,177,112,.40), transparent 62%),
  radial-gradient(ellipse 58% 46% at 82% 78%, rgba(37,177,112,.26), transparent 64%),
  radial-gradient(ellipse 46% 38% at 54% 48%, rgba(37,177,112,.14), transparent 68%); }
.esp-14::before { background:
  radial-gradient(ellipse 64% 50% at 22% 10%, rgba(120,120,142,.40), transparent 62%),
  radial-gradient(ellipse 58% 46% at 82% 78%, rgba(120,120,142,.26), transparent 64%),
  radial-gradient(ellipse 46% 38% at 54% 48%, rgba(120,120,142,.14), transparent 68%); }

@media (prefers-reduced-motion: reduce) {
  .btn:hover, .field :is(input, textarea, select):focus,
  .btn-secondary::after, .tablero-pausa::after { animation: none !important; }
}

.hero-dato { font-family: var(--sans); font-size: var(--fs-meta); letter-spacing: 0; }
.hero-dato strong { font-weight: 500; }
@media (min-width: 720px) { .hero-dato { white-space: nowrap; } }

#contenido.seg-empresas {
  --seg-tinta: #7F6530;            
  --seg-luz: 230 211 166;          
  --seg-luz-tinta: 127 101 48;
  --seg-fondo: #F6F4EF;            
  --seg-fondo-hondo: #F0EEE9;      
  --seg-linea: #DCD7CB;            
}
#contenido.seg-firmas {
  --seg-tinta: #1F6F88;            
  --seg-luz: 158 211 230;          
  --seg-luz-tinta: 31 111 136;
  --seg-fondo: #F3F7F9;            
  --seg-fondo-hondo: #EAF2F5;
  --seg-linea: #CFDEE4;
}

#contenido:is(.seg-empresas, .seg-firmas) .page-head {
  background: linear-gradient(180deg, #FFFFFF 0%, var(--seg-fondo) 58%, var(--seg-fondo-hondo) 100%);
  border-bottom-color: var(--seg-linea);
}
#contenido:is(.seg-empresas, .seg-firmas) .page-head::after {
  background:
    radial-gradient(ellipse 52% 64% at 92% 0%, rgb(var(--seg-luz) / .55), transparent 62%),
    radial-gradient(ellipse 40% 50% at 100% 0%, rgb(var(--seg-luz-tinta) / .07), transparent 60%);
}

#contenido.seg-empresas .page-head::before,
#contenido.seg-empresas .tablero-claro::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0;
  opacity: .5; mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.86' numOctaves='3'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23g)' opacity='.055'/%3E%3C/svg%3E");
}
#contenido:is(.seg-empresas, .seg-firmas) .tinted {
  background-color: var(--seg-fondo);
  background-image:
    radial-gradient(ellipse 84% 62% at 92% 4%, rgb(var(--seg-luz) / .34), transparent 60%),
    radial-gradient(ellipse 72% 54% at 4% 96%, rgb(var(--seg-luz-tinta) / .035), transparent 62%);
}
#contenido:is(.seg-empresas, .seg-firmas) :is(.section, .section-sm, .seccion-vista):not(.tinted) {
  background-image:
    radial-gradient(ellipse 88% 64% at 6% 0%, rgb(var(--seg-luz-tinta) / .045), transparent 58%),
    radial-gradient(ellipse 76% 56% at 96% 84%, rgb(var(--seg-luz) / .14), transparent 62%);
}

#contenido:is(.seg-empresas, .seg-firmas) :is(.cabecera-indice a.es-vista .num, .cabecera-indice a.es-actual .num) { color: var(--seg-tinta); }
#contenido:is(.seg-empresas, .seg-firmas) .fact::after { background: var(--seg-tinta); }
#contenido:is(.seg-empresas, .seg-firmas) .fact-cabeza[aria-expanded="true"] .fact-num { color: var(--seg-tinta); }
#contenido:is(.seg-empresas, .seg-firmas) .historial li::before { background: var(--seg-tinta); box-shadow: 0 0 0 1px var(--seg-tinta); }
#contenido.seg-empresas .arco-momento::after { background: var(--seg-tinta); }
#contenido.seg-empresas .arco-num { color: var(--seg-tinta); }
#contenido.seg-empresas .door.is-invite { background: var(--seg-fondo-hondo); border-color: var(--seg-linea); }
#contenido.seg-firmas .jornada-rotulo { color: var(--seg-tinta); }
#contenido.seg-firmas .jornada-pilas::after { background: var(--seg-tinta); height: 1.5px; }
#contenido.seg-firmas .door { border-top: 2px solid var(--seg-tinta); }

#contenido .thesis { position: relative; isolation: isolate; overflow: hidden; }
#contenido .thesis > .container { position: relative; z-index: 1; }
.trama { display: block; pointer-events: none; }
.trama-tesis {
  position: absolute; top: 0; right: 0; width: 50%; height: 100%; z-index: 0;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 62%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 62%);
}
#contenido.seg-empresas .trama-tesis { opacity: .42; }
#contenido.seg-firmas .trama-tesis { opacity: .4; }
@media (max-width: 999px) {
  #contenido .thesis:has(.trama-tesis) { padding-bottom: calc(var(--section-xl) + 72px); }
  .trama-tesis {
    top: auto; bottom: 0; width: 100%; height: 96px;
    -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 70%);
    mask-image: linear-gradient(180deg, transparent 0%, #000 70%);
  }
}

#contenido .tablero-claro {
  position: relative; isolation: isolate; overflow: hidden;
  color: var(--ink-2);
  border-block: 1px solid var(--seg-linea, var(--line));
}
#contenido .tablero-claro > .container { position: relative; z-index: 1; }
#contenido.seg-empresas .tablero-claro {
  background:
    radial-gradient(ellipse 70% 70% at 8% 0%, rgb(var(--seg-luz) / .62), transparent 62%),
    linear-gradient(180deg, var(--seg-fondo) 0%, var(--seg-fondo-hondo) 100%);
}
#contenido.seg-firmas .tablero-claro {
  background:
    radial-gradient(ellipse 70% 70% at 92% 0%, rgb(var(--seg-luz) / .55), transparent 62%),
    linear-gradient(180deg, var(--seg-fondo) 0%, var(--seg-fondo-hondo) 100%);
}
#contenido .tablero-claro .tablero-titulo { color: var(--ink); }
#contenido .tablero-claro .tablero-titulo em { color: var(--primary); }
#contenido .tablero-claro .tablero-panel h3 { color: var(--ink); }
#contenido .tablero-claro .tablero-panel p { color: var(--ink-2); }
#contenido .tablero-claro :is(.proxima, .pending) { color: var(--ink-3); }
#contenido .tablero-claro .tablero-rotulo { color: var(--ink-3); }
#contenido .tablero-claro .tablero-rotulo:hover,
#contenido .tablero-claro .tablero-rotulo[aria-selected="true"] { color: var(--ink); }
#contenido .tablero-claro .tablero-riel { background: rgba(48, 35, 89, .14); }
#contenido .tablero-claro .tablero-riel i { background: var(--seg-tinta, var(--ink)); }
#contenido .tablero-claro .tablero-pausa { background: #fff; border-color: var(--control-borde); color: var(--ink); }
#contenido .tablero-claro .tablero-pausa:hover { background: var(--bg-2); border-color: transparent; }
#contenido .tablero-claro .tablero-pausa::after { background: var(--giro-claro); }

.cierre-claro {
  position: relative; isolation: isolate; overflow: hidden;
  display: grid; gap: 24px;
  padding: clamp(32px, 5vw, 64px);
  border-radius: var(--r-xl);
  border: 1px solid var(--seg-linea, var(--line));
  background:
    radial-gradient(ellipse 60% 90% at 88% 0%, rgb(var(--seg-luz, 158 211 230) / .55), transparent 64%),
    linear-gradient(135deg, #FFFFFF 0%, var(--seg-fondo, #F7F7FB) 55%, var(--seg-fondo-hondo, #F2F1F5) 100%);
  box-shadow: 0 1px 0 rgba(48, 35, 89, .04), 0 28px 56px -40px rgba(48, 35, 89, .34);
  color: var(--ink-2);
}
.cierre-claro > :not(.trama) { position: relative; z-index: 1; }
.cierre-claro h2 {
  font-size: clamp(1.75rem, 1.2rem + 2.2vw, 2.75rem); line-height: 1.08;
  max-width: 20ch; margin: 0; text-wrap: balance;
}
.cierre-claro p { max-width: 52ch; margin: 0; color: var(--ink-2); }
.cierre-claro .actions { margin-top: 8px; }
.trama-cierre {
  position: absolute; top: 0; right: 0; width: 44%; height: 100%; z-index: 0; opacity: .4;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 64%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 64%);
}
@media (max-width: 860px) { .trama-cierre { display: none; } }

.filo { position: relative; isolation: isolate; overflow: hidden; }
.filo[data-tono="champana"] { --filo-acc: 230 211 166; }
.filo[data-tono="vblue"] { --filo-acc: 158 211 230; }
.filo > :is(.filo-halo, .filo-canto, .filo-barrido, .filo-linea) { position: absolute; pointer-events: none; }
.filo > .filo-halo {
  inset: 0; z-index: -1;
  background: radial-gradient(180px circle at var(--filo-mx, 50%) var(--filo-my, 50%), rgb(var(--filo-acc) / .2), transparent 65%);
  opacity: var(--filo-hov, 0); transition: opacity 880ms cubic-bezier(.22, .61, .36, 1);
}
.filo > .filo-canto {
  inset: 0; border-radius: inherit; padding: 1px;
  background: radial-gradient(110px circle at var(--filo-mx, 50%) var(--filo-my, 50%), rgb(var(--filo-acc) / .95), transparent 70%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  opacity: var(--filo-hov, 0); transition: opacity 880ms cubic-bezier(.22, .61, .36, 1);
}
.filo > .filo-barrido {
  top: 0; left: 0; width: 40%; height: 1px;
  background: linear-gradient(90deg, transparent, rgb(var(--filo-acc) / .95), transparent);
  transform: translateX(calc(var(--filo-x, 260) * 1%));
}
.filo > .filo-linea {
  top: 0; left: 15%; width: 70%; height: 1px;
  background: linear-gradient(90deg, transparent, rgb(var(--filo-acc) / .8), transparent);
  opacity: var(--filo-revela, 1);
}
.btn-primary.filo, .btn-primary.filo:hover {
  --edge: linear-gradient(var(--f), var(--f));
  background: linear-gradient(var(--f), var(--f)) padding-box, var(--edge) border-box;
  animation: none;
}
.btn-primary.filo { box-shadow: 0 12px 28px -16px rgba(36, 35, 42, .55); }
.btn-primary.filo:hover { box-shadow: 0 14px 30px -14px rgba(36, 35, 42, .60); }

.camino-seccion { overflow: clip; }
.camino {
  --camino-desvio: 44px;                                   
  --camino-anio: clamp(2.75rem, 1.9rem + 2.6vw, 4.5rem);   
  position: relative; margin-top: clamp(28px, 4vw, 56px);
  padding-bottom: clamp(96px, 9vw, 150px);                 
}
.camino-trazo { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; z-index: 0; }
.camino-trazo path { fill: none; vector-effect: non-scaling-stroke; stroke-linecap: round; }

.camino-ruta { stroke: rgba(48, 35, 89, .16); stroke-width: 1; stroke-dasharray: 2 7; }
.camino-luz { stroke: url(#camino-tinta); stroke-width: 2; }

.camino-hilo { stroke: url(#camino-tinta); stroke-width: 2.5; stroke-dasharray: .01 9; opacity: .55; }
.camino-futuro {
  stroke: var(--camino-futuro, #7F6530); stroke-width: 1.5; stroke-dasharray: .01 8; opacity: 0;
  transition: opacity 880ms var(--ease) 200ms;
  -webkit-mask-image: linear-gradient(180deg, #000 20%, transparent 100%);
}
.camino.es-completo .camino-futuro { opacity: .7; }
.camino-punta { color: #6211FF; opacity: 0; transition: opacity 320ms var(--ease); }
.camino-nucleo { fill: currentColor; }
.camino-halo { fill: currentColor; opacity: .16; transform-box: fill-box; transform-origin: center; }
@media (prefers-reduced-motion: no-preference) {
  .camino-halo { animation: camino-respira 3.2s ease-in-out infinite; }
}
@keyframes camino-respira { 0%, 100% { transform: scale(.72); } 50% { transform: scale(1); } }

.camino-lista { position: relative; z-index: 1; list-style: none; margin: 0; padding: 0; display: grid; }
.camino-hito { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: clamp(168px, 15vw, 212px); }
.camino-texto { grid-column: 1; justify-self: end; text-align: right; padding-right: calc(var(--camino-desvio) + 56px); }
.camino-hito:nth-child(even) .camino-texto { grid-column: 2; justify-self: start; text-align: left; padding: 0 0 0 calc(var(--camino-desvio) + 56px); }
.camino-cuando {
  display: block; font-family: var(--serif); font-weight: 300; font-size: var(--camino-anio);
  line-height: 1; letter-spacing: -.02em; color: var(--camino-color, var(--ink));
  transition: color 880ms var(--ease);
}
.camino-cuando.es-cualidad { font-style: italic; }
.camino-que { display: block; margin-top: 14px; max-width: 30ch; color: var(--ink-2); font-size: var(--fs-body); line-height: 1.5; }
.camino-hito:nth-child(odd) .camino-que { margin-left: auto; }

.camino-marca {
  position: absolute; z-index: 2; top: calc(var(--camino-anio) * .52);
  left: calc(50% - var(--camino-desvio)); width: 13px; height: 13px; margin: -6.5px 0 0 -6.5px;
  border-radius: 50%; background: #fff; border: 1.5px solid var(--camino-color, var(--ink));
  transition: background 440ms var(--ease), box-shadow 440ms var(--ease);
}
.camino-hito:nth-child(even) .camino-marca { left: calc(50% + var(--camino-desvio)); }
.camino-hito.es-alcanzado .camino-marca { background: var(--camino-color, var(--ink)); }

.camino-marca.es-ciclo { box-shadow: 0 0 0 4px #fff, 0 0 0 5.5px var(--camino-color, var(--ink)); }

.camino-marca.es-hilo { border-style: dashed; }

.camino-marca::after {
  content: ""; position: absolute; inset: -1.5px; border-radius: 50%;
  border: 1px solid var(--camino-color, var(--ink)); opacity: 0; pointer-events: none;
}
@media (prefers-reduced-motion: no-preference) {
  .camino.es-vivo .camino-hito.es-alcanzado .camino-marca::after { animation: camino-toca 900ms var(--ease) both; }
  .camino.es-vivo .camino-hito.es-alcanzado .camino-marca.es-hoy::after { animation: camino-toca 900ms var(--ease) both, camino-presente 3.2s ease-in-out 900ms infinite; }
}
@keyframes camino-toca { from { opacity: .6; transform: scale(1); } to { opacity: 0; transform: scale(3.2); } }
@keyframes camino-presente { 0%, 100% { opacity: 0; transform: scale(1); } 40% { opacity: .5; transform: scale(2.2); } }

.js-motion .camino.es-vivo .camino-texto {
  transition: opacity 760ms var(--ease), transform 860ms var(--ease), filter 760ms var(--ease);
}
.js-motion .camino.es-vivo .camino-hito:not(.es-alcanzado) .camino-texto { opacity: 0; transform: translateY(18px); filter: blur(6px); }
.js-motion .camino.es-vivo .camino-hito:not(.es-alcanzado) .camino-marca { background: #fff; }

.camino:not(.es-vivo) .camino-lista::before {
  content: ""; position: absolute; top: 0; bottom: 0; left: 50%; width: 1px; background: var(--riel-fuerte);
}

@media (max-width: 860px) {
  .camino { --camino-desvio: 7px; --camino-anio: clamp(2.5rem, 1.9rem + 3vw, 3rem); padding-bottom: 150px; }
  .camino-hito { grid-template-columns: minmax(0, 1fr); min-height: 0; padding-bottom: 48px; }
  .camino-texto, .camino-hito:nth-child(even) .camino-texto { grid-column: 1; justify-self: stretch; text-align: left; padding: 0 0 0 64px; }
  .camino-hito:nth-child(odd) .camino-que { margin-left: 0; }
  .camino-marca { left: calc(24px - var(--camino-desvio)); }
  .camino-hito:nth-child(even) .camino-marca { left: calc(24px + var(--camino-desvio)); }
  .camino:not(.es-vivo) .camino-lista::before { left: 24px; }
}

.site-footer {
  --pie-acento: #E6D3A6;             
  position: relative; isolation: isolate; overflow: hidden;
  background: #110F1C; color: var(--noche-texto);
  border-top: 0; font-size: var(--fs-body);
  padding-block: clamp(64px, 8vw, 120px) clamp(28px, 3vw, 40px);
}

.site-footer::before { content: none; }
.site-footer::after {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  mix-blend-mode: soft-light; opacity: .55;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='r'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23r)' opacity='.12'/%3E%3C/svg%3E");
}
.site-footer > .container { position: relative; z-index: 1; }

.pie-alto { display: grid; }
.pie-frase { display: grid; align-content: space-between; gap: clamp(40px, 6vw, 88px); }
.pie-inicio { display: inline-block; justify-self: start; }
.pie-marca-logo { display: block; height: 32px; width: auto; transition: opacity var(--t) var(--ease); }
.pie-inicio:hover .pie-marca-logo { opacity: .72; }
.site-footer .pie-declara {
  margin: 0; max-width: 17ch; color: var(--neutral-0);
  font-family: var(--serif); font-weight: 400; letter-spacing: -.02em;
  font-size: clamp(2.25rem, 1.2rem + 3vw, 3.75rem); line-height: 1.04; text-wrap: balance;
}
.site-footer .pie-declara em { display: block; font-style: italic; color: var(--pie-acento); }

body:has(#contenido.seg-firmas) .site-footer { --pie-acento: #9ED3E6; }

.pie-trama {
  --trama-tinta: var(--pie-acento);
  position: absolute; top: 0; right: 0; bottom: 0; z-index: 0;
  width: min(66%, 1000px); height: 100%; opacity: .17;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 70%), linear-gradient(180deg, #000 50%, rgba(0, 0, 0, .4) 100%);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(90deg, transparent 0%, #000 70%), linear-gradient(180deg, #000 50%, rgba(0, 0, 0, .4) 100%);
  mask-composite: intersect;
}

.pie-mapa {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 32px;
  margin-top: clamp(56px, 7vw, 96px); padding-top: clamp(32px, 4vw, 48px);
  border-top: 1px solid rgba(255, 255, 255, .12);
}
@media (min-width: 760px) { .pie-mapa { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.pie-grupo h3 {
  margin: 0 0 18px; font-family: var(--mono); font-size: var(--fs-meta); font-weight: 500;
  letter-spacing: 0; color: rgba(247, 247, 251, .6);
}
.pie-grupo ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.pie-grupo a {
  position: relative; display: inline-flex; align-items: baseline; gap: 6px; padding: 5px 0;
  color: rgba(247, 247, 251, .88); text-decoration: none;
  transition: color var(--t) var(--ease);
}
.pie-grupo a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 2px; height: 1px;
  background: linear-gradient(90deg, #59B8D9, #9ED3E6);
  transform: scaleX(0); transform-origin: left; transition: transform var(--t) var(--ease);
}
.pie-grupo a:hover { color: #fff; transition-duration: var(--t-control); }
.pie-grupo a:hover::after, .pie-grupo a:focus-visible::after { transform: scaleX(1); transition-duration: var(--t-control); }
.pie-sale { flex: none; align-self: center; opacity: .6; transition: transform var(--t) var(--ease), opacity var(--t) var(--ease); }
.pie-grupo a:hover .pie-sale { opacity: 1; transform: translate(2px, -2px); }

.pie-base {
  display: grid; gap: 20px 56px; align-items: end;
  margin-top: clamp(48px, 6vw, 80px); padding-top: 24px;
  border-top: 1px solid rgba(255, 255, 255, .12);
  font-size: var(--fs-meta); line-height: 1.6; color: rgba(247, 247, 251, .6);
}
@media (min-width: 900px) { .pie-base { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); } }
.pie-aviso { margin: 0; max-width: 70ch; }
.pie-cierre { display: grid; gap: 8px; justify-items: start; }
@media (min-width: 900px) { .pie-cierre { justify-items: end; text-align: right; } }
.pie-vinculos, .pie-firma { margin: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 18px; }
@media (min-width: 900px) { .pie-vinculos, .pie-firma { justify-content: flex-end; } }
.pie-vinculos a, .pie-arriba { color: rgba(247, 247, 251, .74); text-decoration: none; transition: color var(--t) var(--ease); }
.pie-vinculos a:hover, .pie-arriba:hover { color: var(--v-blue); transition-duration: var(--t-control); }
.pie-copy { color: rgba(247, 247, 251, .56); }
.pie-arriba { display: inline-flex; align-items: center; gap: 6px; font-family: var(--mono); }
.pie-arriba svg { transition: transform var(--t) var(--ease); }
.pie-arriba:hover svg { transform: translateY(-3px); }
.site-footer .pending { color: rgba(247, 247, 251, .62); }

@media (max-width: 899px) {
  .site-footer .pie-declara { max-width: 16ch; }
  .pie-trama {
    width: 100%; opacity: .14;
    -webkit-mask-image: linear-gradient(200deg, #000 0%, transparent 75%);
    mask-image: linear-gradient(200deg, #000 0%, transparent 75%);
  }
}

.seccion-cierre { position: relative; isolation: isolate; padding-bottom: 0; }
.seccion-cierre::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 44%; z-index: 0;
  background: #110F1C;
}
.seccion-cierre > .container { position: relative; z-index: 1; }
.seccion-cierre .cta-final { box-shadow: 0 0 0 1px rgba(255, 255, 255, .08), 0 30px 60px -30px rgba(6, 4, 14, .7); }
.seccion-cierre .cierre-claro { border-color: rgba(255, 255, 255, .5); box-shadow: 0 30px 70px -30px rgba(6, 4, 14, .75); }

body:has(.seccion-cierre) .site-footer { padding-top: clamp(56px, 7vw, 104px); }

#contenido:is(.seg-empresas, .seg-firmas) :is(.trama-tesis, .trama-cierre) { --trama-tinta: var(--seg-tinta); }
#contenido:is(.seg-empresas, .seg-firmas) :is(.thesis, .cierre-claro) :is(h2, h3) em { color: var(--seg-tinta); }

:root {
  --grano-papel-canal: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23g)' opacity='.08'/%3E%3C/svg%3E");
  --grano-papel-pieza: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23g)' opacity='.06'/%3E%3C/svg%3E");
  --borde-luz-papel: rgba(127, 101, 48, .14) 0deg 22deg, #E6D3A6 46deg, rgba(127, 101, 48, .7) 62deg, rgba(31, 111, 136, .4) 86deg, rgba(127, 101, 48, .14) 124deg, rgba(48, 35, 89, .10) 220deg, rgba(127, 101, 48, .14) 360deg;
}
.sello-vdm {
  --sello-t: 136px;
  position: relative; display: inline-block; flex: none;
  width: var(--sello-t); height: var(--sello-t); border-radius: 50%;
  background: var(--grano-papel-pieza), radial-gradient(circle at 50% 28%, rgba(255, 255, 255, .95), rgba(255, 250, 240, .72) 60%, rgba(240, 238, 233, .62));
  -webkit-backdrop-filter: blur(14px) saturate(1.3); backdrop-filter: blur(14px) saturate(1.3);
  box-shadow: inset 0 1px 0 #FFFFFF, inset 0 -8px 16px -10px rgba(230, 211, 166, .6), 0 10px 22px -10px rgba(48, 35, 89, .22), 0 1px 2px rgba(48, 35, 89, .08);
  transform: scale(var(--sello-s, 1)) rotate(calc(var(--sello-r, 0) * 1deg));
  opacity: var(--sello-o, 1); cursor: pointer;
}
.sello-vdm-borde {
  position: absolute; inset: 0; border-radius: 50%; padding: 2px; pointer-events: none;
  background: conic-gradient(from calc(var(--sello-ang, 60) * 1deg), var(--borde-luz-papel));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
}
.sello-vdm-grabado { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.sello-vdm-leyenda { font-family: var(--mono); font-weight: 500; font-size: 8.6px; letter-spacing: 2.4px; fill: #434253; }
.sello-vdm-marca { font-family: var(--serif); font-weight: 500; font-size: 24px; letter-spacing: .5px; fill: #302359; }
.constancia-head { align-items: center; }

.constancia:has(.sello-vdm) { background-image: radial-gradient(ellipse 58% 44% at 100% 0%, rgba(230, 211, 166, .28), transparent 72%); }
@media (max-width: 520px) { .sello-vdm { --sello-t: 96px; } }

.arco { margin-top: clamp(32px, 4vw, 52px); }
.arco-momento { padding: 20px 0 20px 30px; gap: 8px; }
@media (min-width: 860px) {
  .arco-momento { grid-template-columns: minmax(0, 11rem) minmax(0, 1fr); gap: 28px; }
}
.arco-momento::after { top: 27px; }
.arco-cuerpo h3 { margin-bottom: .35em; }
.arco-cuerpo p { max-width: 60ch; }
@media (min-width: 1100px) {
  .arco {
    position: relative; grid-template-columns: repeat(4, minmax(0, 1fr));
    column-gap: clamp(24px, 2.4vw, 40px); padding-top: 34px;
  }
  .arco::before {
    content: ""; position: absolute; left: 0; right: 0; top: 4px; height: 1px;
    background: var(--seg-tinta, var(--riel-fuerte)); opacity: .5; transform-origin: left;
  }
  .js-motion .arco::before { transform: scaleX(0); transition: transform 1200ms var(--ease) 120ms; }
  .js-motion .arco:has(.es-visible)::before { transform: scaleX(1); }
  .arco-momento { display: flex; flex-direction: column; gap: 14px; padding: 0; }
  .arco-momento::before { display: none; }
  .arco-momento::after { left: 0; top: -33.5px; }
  .arco-marca { flex-direction: row; align-items: baseline; gap: 10px; }
  .arco-verbo { font-size: 1.375rem; }
  .arco-cuerpo h3 { font-size: clamp(1.1875rem, 1rem + .35vw, 1.3125rem); line-height: 1.25; margin: 0 0 .5em; max-width: none; }
  .arco-cuerpo p { font-size: 1rem; line-height: 1.5; }
}

#contenido.seg-vision {
  --vis-hondo: #9A3F1F;             
  --vis-medio: #B24B28;
  --vis-tinta: #C4552E;             
  --vis-claro: #F0B39A;             
  --vis-luz: 196 85 46;
  --vis-luz-honda: 154 63 31;
  --vis-fondo: #FBF4F0;
  --vis-fondo-hondo: #F5E9E2;
  --vis-linea: #ECD8CD;
  --camino-futuro: #C4552E;
}
#contenido.seg-vision :is(h1, h2) em {
  color: var(--vis-hondo);
  background-image: linear-gradient(100deg, #9A3F1F 0%, #C4552E 100%);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
#contenido.seg-vision :is(.sala, .seccion-rumbo, .cta-final) :is(h1, h2) em {
  color: var(--vis-claro);
  background-image: linear-gradient(100deg, #E0896A 0%, #F4C9B5 100%);
}
#contenido.seg-vision :is(h1, h2) em::selection { -webkit-text-fill-color: var(--ink); }

#contenido.seg-vision .page-head {
  background: linear-gradient(180deg, #FFFFFF 0%, var(--vis-fondo) 60%, var(--vis-fondo-hondo) 100%);
  border-bottom-color: var(--vis-linea);
}
#contenido.seg-vision .page-head::after {
  background:
    radial-gradient(ellipse 52% 64% at 92% 0%, rgb(var(--vis-luz) / .16), transparent 62%),
    radial-gradient(ellipse 40% 50% at 100% 0%, rgb(var(--vis-luz-honda) / .08), transparent 60%);
}
#contenido.seg-vision :is(.section, .section-sm, .seccion-vista):not(.tinted):not(.seccion-rumbo):not(.seccion-cierre) {
  background-image:
    radial-gradient(ellipse 88% 64% at 6% 0%, rgb(var(--vis-luz-honda) / .05), transparent 58%),
    radial-gradient(ellipse 76% 56% at 96% 84%, rgb(var(--vis-luz) / .07), transparent 62%);
}
#contenido.seg-vision .tinted {
  background-color: var(--vis-fondo);
  background-image: radial-gradient(ellipse 84% 62% at 92% 4%, rgb(var(--vis-luz) / .12), transparent 60%);
}
#contenido.seg-vision :is(.cabecera-indice a.es-vista .num, .cabecera-indice a.es-actual .num) { color: var(--vis-hondo); }
#contenido.seg-vision .fact::after { background: var(--vis-tinta); }
#contenido.seg-vision .fact-cabeza[aria-expanded="true"] .fact-num { color: var(--vis-hondo); }

#contenido.seg-vision .sala {
  background:
    radial-gradient(ellipse 70% 55% at 80% 0%, rgb(var(--vis-luz) / .26), transparent 60%),
    radial-gradient(ellipse 60% 60% at 0% 100%, rgb(var(--vis-luz-honda) / .30), transparent 62%),
    linear-gradient(165deg, #1E1310 0%, #110F1C 62%, #0B0A12 100%);
}

#contenido.seg-vision .seccion-cierre {
  background: radial-gradient(ellipse 46% 80% at 84% 40%, rgb(var(--vis-luz) / .24), transparent 64%), #110F1C;
  padding-top: clamp(24px, 3vw, 40px);
}
#contenido.seg-vision .seccion-cierre::after { content: none; }
#contenido.seg-vision .cta-final {
  background: rgba(255, 255, 255, .05);
  -webkit-backdrop-filter: blur(18px) saturate(1.4); backdrop-filter: blur(18px) saturate(1.4);
  border: 1px solid rgba(255, 255, 255, .14);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12), 0 30px 60px -30px rgba(0, 0, 0, .6);
}
body:has(#contenido.seg-vision) .site-footer { --pie-acento: #F0B39A; }
body:has(#contenido.seg-vision) .pie-trama { --trama-tinta-2: #C4552E; }
body:has(#contenido.seg-vision) .site-footer .pie-declara em {
  background-image: linear-gradient(100deg, #F0B39A 0%, #C4552E 100%);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}

.nav a[aria-current="page"]:not(.btn) { color: var(--ink); background: #EEEEF4; }

.seccion-rumbo { padding-block: clamp(72px, 8vw, 128px) clamp(56px, 6vw, 96px); }
.seccion-rumbo::before { background:
  radial-gradient(ellipse 55% 60% at 96% 4%, rgba(158, 211, 230, .26), transparent 62%),
  radial-gradient(ellipse 70% 60% at 62% 34%, rgba(44, 147, 176, .20), transparent 64%),
  radial-gradient(ellipse 60% 50% at 2% 62%, rgba(29, 107, 87, .30), transparent 62%); }
#contenido .seccion-rumbo .section-head h2 { color: #fff; }
#contenido .seccion-rumbo .lead { color: rgba(247, 247, 251, .82); }
.trama-rumbo {
  position: absolute; top: 0; right: 0; width: 58%; height: 64%; z-index: 1; opacity: .22;
  transform: scaleX(-1);                      
  -webkit-mask-image: radial-gradient(ellipse 80% 90% at 0% 0%, #000 25%, transparent 72%);
  mask-image: radial-gradient(ellipse 80% 90% at 0% 0%, #000 25%, transparent 72%);
}
.trayectoria { position: relative; margin-top: clamp(16px, 2vw, 32px); }
.trayectoria-trazo { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; z-index: 0; }
.trayectoria-trazo path { fill: none; vector-effect: non-scaling-stroke; stroke-linecap: round; stroke-linejoin: round; }
.trayectoria-ruta { stroke: rgba(158, 211, 230, .22); stroke-width: 1; stroke-dasharray: 2 8; }
.trayectoria-luz { stroke: url(#rumbo-tinta); stroke-width: 2.5; filter: drop-shadow(0 0 6px rgba(158, 211, 230, .5)); }
.trayectoria-flecha { stroke: #9ED3E6; stroke-width: 2.5; opacity: 0; transition: opacity 440ms var(--ease); }
.trayectoria.es-completa .trayectoria-flecha { opacity: 1; }
@media (prefers-reduced-motion: no-preference) {
  .trayectoria.es-completa .trayectoria-flecha { animation: rumbo-adelante 1.8s ease-in-out infinite; }
  .trayectoria-halo { animation: camino-respira 3.2s ease-in-out infinite; }
}
@keyframes rumbo-adelante { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(6px); } }
.trayectoria-punta { color: #9ED3E6; opacity: 0; transition: opacity 320ms var(--ease); }
.trayectoria-nucleo { fill: #FFFFFF; }
.trayectoria-halo { fill: currentColor; opacity: .24; transform-box: fill-box; transform-origin: center; }

#contenido .trayectoria-hoy {
  position: relative; z-index: 1; margin: 0; display: inline-flex; align-items: center; gap: 12px;
  font-family: var(--mono); font-size: var(--fs-meta); color: rgba(247, 247, 251, .8);
}
.trayectoria-marca { width: 12px; height: 12px; border-radius: 50%; background: #1D6B57; box-shadow: 0 0 0 4px rgba(29, 107, 87, .35); flex: none; }
.trayectoria-etapas { position: relative; z-index: 1; list-style: none; margin: 0; padding: 0; display: grid; gap: 22px; }
.etapa { position: relative; }
.etapa-marca {
  position: absolute; z-index: 2; left: 0; top: 36px; width: 12px; height: 12px; margin: -6px 0 0 -6px;
  border-radius: 50%; background: #110F1C; border: 1.5px solid rgba(158, 211, 230, .55);
  transition: background 440ms var(--ease), border-color 440ms var(--ease), box-shadow 440ms var(--ease);
}
.etapa.es-alcanzada .etapa-marca { background: #9ED3E6; border-color: #9ED3E6; box-shadow: 0 0 0 5px rgba(158, 211, 230, .18); }
.etapa-cristal {
  position: relative; display: grid; gap: 10px; padding: 26px 26px 28px 30px;
  background: rgba(255, 255, 255, .06);
  -webkit-backdrop-filter: blur(16px) saturate(1.4); backdrop-filter: blur(16px) saturate(1.4);
  border: 1px solid rgba(255, 255, 255, .14); border-radius: var(--r-xl);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12), 0 24px 48px -24px rgba(6, 4, 14, .6);
  transition: border-color 880ms var(--ease), background 880ms var(--ease), box-shadow 880ms var(--ease),
              opacity 760ms var(--ease), transform 860ms var(--ease), filter 760ms var(--ease);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) { .etapa-cristal { background: rgba(23, 26, 36, .9); } }
.etapa.es-alcanzada .etapa-cristal {
  border-color: rgba(158, 211, 230, .34); background: rgba(255, 255, 255, .08);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .16), 0 30px 60px -24px rgba(44, 147, 176, .35);
}
.etapa-num { font-family: var(--mono); font-size: var(--fs-meta); color: #9ED3E6; }
#contenido .etapa-cuando {
  margin: 0; font-family: var(--serif); font-weight: 300; line-height: 1.05; letter-spacing: -.02em; color: #FFFFFF;
  font-size: clamp(1.75rem, 1.2rem + 1.2vw, 2.375rem);
}

#contenido .etapa:nth-child(2) .etapa-cuando { font-size: clamp(1.875rem, 1.25rem + 1.4vw, 2.625rem); }
#contenido .etapa:nth-child(3) .etapa-cuando { font-size: clamp(2.25rem, 1.4rem + 2vw, 3.375rem); }
#contenido .etapa-que { margin: 0; color: rgba(247, 247, 251, .86); font-size: 1rem; line-height: 1.55; }
.js-motion .trayectoria.es-viva .etapa:not(.es-alcanzada) .etapa-cristal { opacity: 0; transform: translateY(20px); filter: blur(6px); }

@media (min-width: 1100px) {
  .trayectoria {
    display: grid; grid-template-columns: minmax(0, .5fr) minmax(0, 3fr); align-items: end;
    column-gap: clamp(16px, 2vw, 32px); padding-top: clamp(120px, 10vw, 164px);
  }
  #contenido .trayectoria-hoy { grid-column: 1; margin-bottom: 36px; }
  .trayectoria-etapas { grid-column: 2; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: start; gap: clamp(20px, 2.4vw, 36px); }
  
  .etapa:nth-child(1) { margin-top: 240px; }
  .etapa:nth-child(2) { margin-top: 160px; }
  .etapa:nth-child(3) { margin-top: 0; }
}
@media (max-width: 1099px) {
  .trayectoria { padding: 8px 0 170px 44px; }
  #contenido .trayectoria-hoy { margin: 0 0 28px -44px; }
  .etapa-marca { left: -38px; }
}

.seccion-rumbo .vista { margin-top: clamp(56px, 7vw, 96px); }
.seccion-rumbo .vista-pie { border-top-color: rgba(255, 255, 255, .14); }
#contenido .seccion-rumbo .vista-pie strong { color: #fff; }
#contenido .seccion-rumbo .vista-pie p { color: rgba(247, 247, 251, .84); }

.nucleo-seccion { position: relative; }

.nucleo { position: relative; }
.trama-nucleo {
  --trama-tinta: #E6D3A6;
  position: absolute; top: 0; right: 0; width: 46%; height: 100%; z-index: 1; opacity: .2;
  -webkit-mask-image: radial-gradient(ellipse 70% 70% at 78% 58%, #000 25%, transparent 72%);
  mask-image: radial-gradient(ellipse 70% 70% at 78% 58%, #000 25%, transparent 72%);
}
#contenido .nucleo-seccion h2 em { color: #E6D3A6; }
.nucleo-trazos { display: none; }
@media (min-width: 1000px) {
  .nucleo-trazos { display: block; width: 100%; height: 100%; overflow: visible; }
}
.nucleo-trazos path { fill: none; vector-effect: non-scaling-stroke; stroke-linecap: round; stroke-linejoin: round; }
.nucleo-linea { stroke: rgba(230, 211, 166, .26); stroke-width: 1; transition: stroke 440ms var(--ease); }
.nucleo-linea.es-activa { stroke: rgba(230, 211, 166, .5); }
.nucleo-nodo { fill: #110F1C; stroke: rgba(230, 211, 166, .5); stroke-width: 1; transition: fill 440ms var(--ease), stroke 440ms var(--ease); }
.nucleo-nodo.es-activo { fill: #E6D3A6; stroke: #E6D3A6; }
.nucleo-luz { stroke: #E6D3A6; stroke-width: 1.75; opacity: 0; filter: drop-shadow(0 0 4px rgba(230, 211, 166, .6)); }
.nucleo-luz.corre { opacity: 1; stroke-dasharray: .18 1.4; animation: nucleo-pasada 1280ms cubic-bezier(.22, .61, .36, 1) 2 both; }
.nucleo-luz.queda { opacity: .85; stroke-dasharray: none; filter: none; transition: opacity 880ms var(--ease); }
@keyframes nucleo-pasada { from { stroke-dashoffset: .18; } to { stroke-dashoffset: -1.2; } }

.nucleo-punto { background: #E6D3A6; box-shadow: 0 0 0 5px rgba(230, 211, 166, .18); }
.nucleo-punto::after {
  content: ""; position: absolute; inset: -1px; border-radius: 50%;
  border: 1px solid #E6D3A6; opacity: 0; pointer-events: none;
}
.nucleo-punto.recibe::after { animation: camino-toca 880ms var(--ease) both; }

.nucleo.es-vivo .nucleo-item { transition: opacity 440ms var(--ease); }
.nucleo.es-vivo .nucleo-item dd { transition: color 440ms var(--ease); }
.nucleo.es-vivo .nucleo-item.es-activo dd { color: rgba(247, 247, 251, .94); }
@media (prefers-reduced-motion: reduce) {
  .nucleo-luz { display: none; }
}

.plan .deslizador { margin-top: auto; }
.deslizador {
  --des-alto: 88px; --des-inset: 8px; --des-pieza: 148px;
  --des-brillo: #1F6F88;
  position: relative; isolation: isolate;
  width: 100%; max-width: 420px; container-type: inline-size;
}
.deslizador[data-tono="champana"] { --des-brillo: #7F6530; }

.deslizador::before {
  content: ""; position: absolute; z-index: -1; pointer-events: none;
  top: -64px; right: -24px; bottom: -8px; left: 28%;
  
  background: radial-gradient(closest-side at 70% 42%, rgba(230, 211, 166, .28), rgba(230, 211, 166, 0));
}
.deslizador-canal {
  position: relative; height: var(--des-alto); border-radius: 999px; user-select: none; -webkit-user-select: none;
  background: var(--grano-papel-canal), linear-gradient(180deg, rgba(240, 238, 233, .78), rgba(247, 247, 251, .58));
  -webkit-backdrop-filter: blur(16px) saturate(1.3); backdrop-filter: blur(16px) saturate(1.3);
  box-shadow: inset 0 1px 3px rgba(48, 35, 89, .10), inset 0 0 0 1px rgba(48, 35, 89, .08), inset 0 -1px 0 rgba(255, 255, 255, .8);
}

.deslizador-canal::after {
  content: ""; position: absolute; left: 24px; right: 24px; bottom: 4px; height: 1px; border-radius: 1px; pointer-events: none;
  background: linear-gradient(90deg, transparent, rgb(31 111 136 / .7), transparent);
  opacity: 0; transition: opacity 880ms cubic-bezier(.22, .61, .36, 1);
}
.deslizador[data-estado="hecho"] .deslizador-canal::after { opacity: 1; }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .deslizador-canal { background: var(--grano-papel-canal), #F0EEE9; }
}
.deslizador-texto {
  position: absolute; inset: 0; display: flex; align-items: center; justify-content: flex-end;
  padding: 0 26px 0 calc(var(--des-pieza) + 2 * var(--des-inset) + 12px);
  font-size: 1rem; font-weight: 500; white-space: nowrap;
  color: #5A5A6E; -webkit-text-fill-color: transparent;
  background-image: linear-gradient(90deg, #5A5A6E 0% 40%, var(--des-brillo) 50%, #5A5A6E 60% 100%);
  background-size: 300% 100%; background-repeat: no-repeat;
  background-position: calc((100 - var(--des-brillo-x, 100)) * 1%) 0;
  -webkit-background-clip: text; background-clip: text;
  opacity: calc(1 - var(--des-avance, 0) * 1.7);
  transition: opacity 440ms ease;
}
.deslizador-hecho {
  position: absolute; inset: 0; display: flex; align-items: center; padding: 0 30px;
  font-family: var(--mono); font-size: var(--fs-meta); font-weight: 500; color: #434253;
  opacity: 0; transition: opacity 660ms ease 200ms;
}
.deslizador :is(.corto, .minimo) { display: none; }
@container (max-width: 403px) {
  .deslizador-texto .largo { display: none; }
  .deslizador-texto .corto { display: inline; }
}
@container (max-width: 353px) {
  .deslizador-canal { --des-pieza: 112px; }
  .deslizador-hecho .largo { display: none; }
  .deslizador-hecho .corto { display: inline; }
}
@container (max-width: 317px) {
  .deslizador-canal { --des-pieza: 96px; }
  .deslizador-texto .corto { display: none; }
  .deslizador-texto .minimo { display: inline; }
}
.deslizador[data-estado="hecho"] .deslizador-texto { opacity: 0; }
.deslizador[data-estado="hecho"] .deslizador-hecho { opacity: 1; }
.deslizador-pieza {
  position: absolute; top: var(--des-inset); left: var(--des-inset);
  width: var(--des-pieza); height: calc(var(--des-alto) - 2 * var(--des-inset));
  display: grid; place-items: center; border-radius: 999px;
  background: var(--grano-papel-pieza), linear-gradient(180deg, rgba(255, 255, 255, .90), rgba(255, 251, 243, .64));
  -webkit-backdrop-filter: blur(12px) saturate(1.3); backdrop-filter: blur(12px) saturate(1.3);
  box-shadow: inset 0 1px 0 #FFFFFF, inset 0 -6px 12px -8px rgba(230, 211, 166, .6), 0 6px 14px -6px rgba(48, 35, 89, .22), 0 1px 2px rgba(48, 35, 89, .08);
  color: #302359; text-decoration: none;
  cursor: grab; touch-action: none; -webkit-user-drag: none; -webkit-tap-highlight-color: transparent;
}
.deslizador-pieza:hover { color: #302359; }
.deslizador[data-estado="arrastre"] .deslizador-pieza { cursor: grabbing; }
.deslizador-pieza:focus-visible { outline: none; box-shadow: var(--ring), inset 0 1px 0 #FFFFFF, 0 6px 14px -6px rgba(48, 35, 89, .22); }
.deslizador-borde {
  position: absolute; inset: 0; border-radius: 999px; padding: 1.5px; pointer-events: none;
  background: conic-gradient(from calc(var(--des-ang, 0) * 1deg), var(--borde-luz-papel));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
}
.deslizador-flecha { grid-area: 1 / 1; width: 34px; height: 34px; color: rgba(43, 42, 56, .72); transition: opacity 440ms ease; }
.deslizador-sello {
  grid-area: 1 / 1; display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--serif); font-weight: 500; font-size: 1.5rem; letter-spacing: .02em; color: #302359;
  opacity: 0; transform: scale(.7);
  transition: opacity 440ms ease 180ms, transform 700ms cubic-bezier(.34, 1.4, .64, 1) 180ms;
}
.deslizador-sello svg { color: #7F6530; }
.deslizador[data-estado="hecho"] .deslizador-flecha { opacity: 0; }
.deslizador[data-estado="hecho"] .deslizador-sello { opacity: 1; transform: scale(1); }
@container (max-width: 353px) { .deslizador-sello { font-size: 1.25rem; gap: 6px; } }

.noche-continua > .seccion-rumbo { z-index: auto; }   
.seccion-rumbo::before { content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.seccion-rumbo > .container { position: relative; z-index: 2; }
#contenido.seg-vision .noche-continua .seccion-cierre { background: none; }
#contenido.seg-vision .noche-continua::before {
  background: radial-gradient(ellipse 46% 420px at 84% calc(100% - 290px), rgb(var(--vis-luz) / .24), transparent 64%);
}

:root { --ring: 0 0 0 3px rgba(31, 111, 136, .28); }
.form-avance-riel i { background: linear-gradient(90deg, #1F6F88 0%, #59B8D9 100%); }

#contenido.seg-empresas { --seg-tinta-noche: #E6D3A6; }
#contenido.seg-firmas { --seg-tinta-noche: #9ED3E6; }
#contenido:is(.seg-empresas, .seg-firmas) :is(h1, h2):not(.vista-titulo, .pliego-titulo, :is(.cristal, .plan, .form-result, .contacto-lado, .escena) *) em {
  color: var(--seg-tinta);
}
#contenido:is(.seg-empresas, .seg-firmas) :is(.espectro, .sala, .lamina, .tablero:not(.tablero-claro), .cta-final) :is(h1, h2):not(.vista-titulo, .pliego-titulo) em {
  color: var(--seg-tinta-noche);
}

.site-header.sobre-noche .header-pastilla {
  background: linear-gradient(180deg, rgba(255, 255, 255, .07), rgba(255, 255, 255, .03));
  -webkit-backdrop-filter: blur(12px) saturate(1.4);
  backdrop-filter: blur(12px) saturate(1.4);
  border-color: rgba(255, 255, 255, .14);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .10);
  transition:
    background 480ms cubic-bezier(.22, 1, .36, 1),
    border-color 480ms cubic-bezier(.22, 1, .36, 1),
    box-shadow 480ms cubic-bezier(.22, 1, .36, 1),
    -webkit-backdrop-filter 480ms cubic-bezier(.22, 1, .36, 1),
    backdrop-filter 480ms cubic-bezier(.22, 1, .36, 1);
}
.site-header.sobre-noche .nav a:not(.btn) { color: rgba(255, 255, 255, .86); }
.site-header.sobre-noche .nav a:not(.btn):hover { background: rgba(255, 255, 255, .10); color: #fff; }
.site-header.sobre-noche .nav a[aria-current="page"]:not(.btn) { background: rgba(255, 255, 255, .16); color: #fff; }
.site-header.sobre-noche .nav a:not(.btn)::after { background: var(--acento-noche); }

.site-header.sobre-noche.es-vidrio .header-pastilla {
  background: rgba(22, 19, 34, .72);
  -webkit-backdrop-filter: blur(20px) saturate(1.6);
  backdrop-filter: blur(20px) saturate(1.6);
  border-color: rgba(255, 255, 255, .18);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 10px 30px rgba(10, 8, 18, .35);
}
.site-header.sobre-noche.es-vidrio .nav a:not(.btn) { color: #fff; }
.site-header.sobre-noche.es-vidrio .nav a:not(.btn):hover { background: rgba(255, 255, 255, .12); }
.site-header.sobre-noche.es-vidrio .nav a[aria-current="page"]:not(.btn) { background: rgba(255, 255, 255, .20); }

.site-header.sobre-noche .brand img { filter: brightness(0) invert(1); }

.site-header.sobre-noche .nav a.btn-primary,
.site-header.sobre-noche.es-vidrio .nav a.btn-primary {
  --f: #FFFFFF; --edge: linear-gradient(#FFFFFF, #FFFFFF);
  background: linear-gradient(var(--f), var(--f)) padding-box, var(--edge) border-box;
  color: #1D1B2E; box-shadow: none; animation: none;
}
.site-header.sobre-noche .nav a.btn-primary::before { content: none; }
.site-header.sobre-noche .nav a.btn-primary:hover,
.site-header.sobre-noche.es-vidrio .nav a.btn-primary:hover {
  --f: #F0EEE9; --edge: linear-gradient(#F0EEE9, #F0EEE9);
  background: linear-gradient(var(--f), var(--f)) padding-box, var(--edge) border-box;
  color: #1D1B2E; box-shadow: none; animation: none;
}
.site-header.sobre-noche .nav a.btn-primary:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(158, 211, 230, .55); }

.site-header.sobre-noche .nav-toggle { color: #fff; border-color: rgba(255, 255, 255, .34); }
.site-header.sobre-noche .nav-toggle:hover { color: #fff; border-color: #fff; }
.site-header.sobre-noche.menu-abierto .header-pastilla {
  background: rgba(22, 19, 34, .72);
  -webkit-backdrop-filter: blur(20px) saturate(1.6);
  backdrop-filter: blur(20px) saturate(1.6);
  border-color: rgba(255, 255, 255, .18);
}
@media (max-width: 1199px) { .site-header.sobre-noche .nav-caja { border-top-color: rgba(255, 255, 255, .18); } }

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .site-header.sobre-noche .header-pastilla { background: rgba(22, 19, 34, .55); }
  .site-header.sobre-noche:is(.es-vidrio, .menu-abierto) .header-pastilla { background: rgba(22, 19, 34, .95); }
}
@media (prefers-reduced-motion: reduce) {
  .site-header.sobre-noche .header-pastilla { transition: none; }
}

body.abre-oscuro:has(.contacto-noche) { background: var(--noche); }
.contacto-noche::before { background:
  radial-gradient(ellipse 55% 60% at 96% 4%, rgba(158, 211, 230, .26), transparent 62%),
  radial-gradient(ellipse 70% 60% at 62% 34%, rgba(44, 147, 176, .20), transparent 64%),
  radial-gradient(ellipse 60% 50% at 2% 62%, rgba(29, 107, 87, .30), transparent 62%); }
.contacto-noche .page-head {
  background: none; border-bottom: 0;
  padding-top: calc(var(--site-menu-flujo, 78px) + clamp(48px, 6vw, 88px));
  padding-bottom: clamp(24px, 3vw, 40px);
}
.contacto-noche .page-head::after { content: none; }
#contenido .contacto-noche .page-head .display { color: #fff; }
#contenido .contacto-noche .page-head .display em { color: var(--acento-noche); }
#contenido .contacto-noche .page-head .lead { color: rgba(247, 247, 251, .82); }
.contacto-noche .seccion-contacto { padding-top: clamp(8px, 1.5vw, 24px); padding-bottom: clamp(64px, 8vw, 112px); }

.cta-final.cta-espectro {
  background:
    radial-gradient(circle at 84% 12%, rgba(44, 147, 176, .30), transparent 46%),
    radial-gradient(circle at 8% 100%, rgba(29, 107, 87, .26), transparent 50%),
    linear-gradient(135deg, #1A1924 0%, #14202A 100%);
}

.seccion-globo { --trama-tinta: #1F6F88; }
#contenido .seccion-globo h2 em { color: var(--trama-tinta); }
.globo-lista li {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline;
  gap: 8px 16px; padding: 11px 16px 12px;
}
.globo-pais { color: var(--ink); font-weight: 500; }
.globo-lista li[data-alfrente] { background: var(--v-blue-bg); box-shadow: inset 2px 0 0 #1F6F88; }
.globo-lista li[data-destino][data-alfrente] { background: #F6F4EF; box-shadow: inset 2px 0 0 #7F6530; }
.globo-lista li[data-destino][data-alfrente] .globo-pais { color: #7F6530; }

.section-sm.seccion-cierre:not(.tinted):not(.rieles) { background-image: none; }

.seccion-cierre .cta-final.cta-espectro { box-shadow: inset 0 0 0 1px rgba(158, 211, 230, .18), 0 30px 60px -30px rgba(6, 4, 14, .7); }   

@media (min-width: 900px) {
  .pie-trama {
    -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 70%), linear-gradient(180deg, transparent 0, #000 clamp(80px, 9vw, 140px), #000 50%, rgba(0, 0, 0, .4) 100%);
    mask-image: linear-gradient(90deg, transparent 0%, #000 70%), linear-gradient(180deg, transparent 0, #000 clamp(80px, 9vw, 140px), #000 50%, rgba(0, 0, 0, .4) 100%);
  }
}

.contacto-noche::before { background:
  radial-gradient(ellipse 60% 44% at 94% 0%, rgba(158, 211, 230, .34), transparent 64%),
  radial-gradient(ellipse 70% 46% at 58% 30%, rgba(44, 147, 176, .28), transparent 66%),
  radial-gradient(ellipse 64% 50% at 0% 64%, rgba(29, 107, 87, .44), transparent 64%),
  radial-gradient(ellipse 60% 30% at 100% 76%, rgba(44, 147, 176, .22), transparent 66%); }   
.contacto-noche .cristal {
  background: rgba(255, 255, 255, .035);
  -webkit-backdrop-filter: blur(12px) saturate(1.4); backdrop-filter: blur(12px) saturate(1.4);
}

.field label, .fieldset legend, .field :is(input, textarea, select),
.choice label, .choice label:has(input:checked) { color: #2B2A38; }

@media (max-width: 1199px) { .header-pastilla { margin-inline: var(--menu-hueco, 10px); } }

.globo-pais { color: var(--ink-2); }

.contacto-noche .seccion-contacto {
  padding-top: calc(var(--site-menu-flujo, 78px) + clamp(40px, 5vw, 80px));
  padding-bottom: clamp(80px, 9vw, 136px);
}
.contacto-rejilla {
  gap: clamp(36px, 4vw, 48px);
  grid-template-areas: "voz" "hoja" "lado";
}
.contacto-voz { grid-area: voz; }
.contacto-hoja { grid-area: hoja; }
.contacto-lado { grid-area: lado; }
@media (min-width: 900px) { .contacto-rejilla { grid-template-columns: minmax(0, 1fr); } }
@media (min-width: 1024px) {
  .contacto-rejilla {
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    grid-template-rows: auto 1fr;
    grid-template-areas: "voz hoja" "lado hoja";
    column-gap: clamp(56px, 6vw, 104px); row-gap: clamp(40px, 4.5vw, 64px);
  }
}
#contenido .contacto-voz .display {
  font-size: clamp(2.375rem, 1.6rem + 2.6vw, 3.75rem); line-height: 1.06; letter-spacing: -.025em;
  /* Misma lección: no `ch` para un titular en serif. En Contacto la columna
     es estrecha (es la mitad del grid con el formulario al lado); el titular
     ocupará varios renglones, pero al menos usa toda la columna y los
     renglones quedan balanceados por `text-wrap: balance`. */
  max-width: 100%; margin: 0; color: #fff; text-wrap: balance;
}
#contenido .contacto-voz .display em { color: var(--acento-noche); }
.contacto-voz .lead { margin: 20px 0 0; max-width: 24em; color: rgba(247, 247, 251, .82); }

.contacto-lado { display: grid; gap: 0; align-content: start; }
.contacto-nota { display: grid; gap: 8px; padding-block: 24px; border-top: 1px solid rgba(255, 255, 255, .14); }
.contacto-nota:last-child { padding-bottom: 0; }
#contenido .contacto-lado h2 {
  font-size: clamp(1.3125rem, 1.2rem + .45vw, 1.5rem); line-height: 1.25; font-weight: 500;
  color: #fff; margin: 0;
}
#contenido .contacto-lado h2 em { display: inline-block; }
.contacto-lado p { margin: 0; max-width: 44ch; font-size: var(--fs-small); line-height: 1.6; color: rgba(247, 247, 251, .74); }

@property --acceso-ang { syntax: "<angle>"; inherits: false; initial-value: 210deg; }
@keyframes acceso-giro { from { --acceso-ang: 210deg; } to { --acceso-ang: 570deg; } }
.acceso-clientes {
  position: relative; isolation: isolate;
  display: inline-flex; align-items: center; gap: 12px; justify-self: start;
  min-height: 56px; margin-top: 16px; padding: 0 22px 0 18px; border-radius: 999px;
  color: #fff; font-weight: 600; font-size: 1rem; letter-spacing: .005em; text-decoration: none;
  background: var(--grano-noche-pieza), linear-gradient(180deg, rgba(255, 250, 240, .16), rgba(230, 211, 166, .06));
  -webkit-backdrop-filter: blur(14px) saturate(1.4); backdrop-filter: blur(14px) saturate(1.4);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .28), inset 0 -8px 16px -10px rgba(230, 211, 166, .26), 0 14px 30px -14px rgba(4, 3, 10, .7);
  transition: transform var(--t-fast) var(--ease), box-shadow var(--t) var(--ease), background var(--t) var(--ease);
}
.acceso-clientes-borde {
  position: absolute; inset: 0; border-radius: inherit; padding: 1.5px; pointer-events: none; z-index: -1;
  background: conic-gradient(from var(--acceso-ang), var(--borde-luz-noche));
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
}
.acceso-clientes-icono { flex: none; color: #E6D3A6; }
.acceso-clientes-sale { flex: none; margin-left: 6px; opacity: .72; transition: transform var(--t) var(--ease), opacity var(--t) var(--ease); }
.acceso-clientes:hover {
  color: #fff;
  background: var(--grano-noche-pieza), linear-gradient(180deg, rgba(255, 250, 240, .22), rgba(230, 211, 166, .09));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .34), inset 0 -8px 16px -10px rgba(230, 211, 166, .32), 0 18px 36px -14px rgba(4, 3, 10, .75);
}
.acceso-clientes:hover .acceso-clientes-borde { animation: acceso-giro 2.4s linear infinite; }
.acceso-clientes:hover .acceso-clientes-sale { transform: translate(2px, -2px); opacity: 1; }
.acceso-clientes:active { transform: translateY(1px); }
.acceso-clientes:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(158, 211, 230, .55), inset 0 1px 0 rgba(255, 255, 255, .28); }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .acceso-clientes { background: rgba(38, 34, 50, .92); }
}
@media (prefers-reduced-motion: reduce) {
  .acceso-clientes:hover .acceso-clientes-borde { animation: none; }
}

.contacto-noche .contacto-hoja {
  position: relative; isolation: isolate;
  padding: clamp(24px, 3.4vw, 48px);
  border-radius: var(--r-xl);
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23g)' opacity='.10'/%3E%3C/svg%3E"),
    linear-gradient(180deg, rgba(255, 255, 255, .075) 0%, rgba(255, 255, 255, .03) 100%);
  -webkit-backdrop-filter: blur(18px) saturate(1.4); backdrop-filter: blur(18px) saturate(1.4);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .13), inset 0 1px 0 rgba(255, 255, 255, .16),
              0 40px 80px -40px rgba(4, 3, 10, .8);
  color: var(--noche-texto);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .contacto-noche .contacto-hoja { background: rgba(23, 20, 36, .88); }
}
.contacto-noche .form { gap: 22px; }
.form-par { display: grid; gap: 22px; }
@media (min-width: 640px) { .form-par { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; } }
.form-envio { display: grid; gap: 20px; align-items: center; padding-top: 22px; border-top: 1px solid rgba(255, 255, 255, .12); }
@media (min-width: 640px) { .form-envio { grid-template-columns: minmax(0, 1fr) auto; gap: 24px; } }
.form-envio .actions { margin: 0; }

.contacto-noche .form-avance { margin-bottom: clamp(24px, 2.8vw, 32px); }
.contacto-noche .form-avance-riel { height: 2px; background: rgba(255, 255, 255, .12); }
.contacto-noche .form-avance-riel i { background: linear-gradient(90deg, #59B8D9 0%, #9ED3E6 100%); }
.contacto-noche .form-avance-texto { color: rgba(247, 247, 251, .62); }
.contacto-noche .form-avance[data-completo="true"] .form-avance-texto { color: var(--acento-noche); font-weight: 500; }

.contacto-noche :is(.field label, .fieldset legend) { color: rgba(247, 247, 251, .86); font-weight: 500; font-size: var(--fs-small); }
.contacto-noche .field label .muted { color: rgba(247, 247, 251, .56); font-weight: 400; }
.espectro.contacto-noche .contacto-hoja :is(.hint, p) { color: rgba(247, 247, 251, .66); }
.contacto-noche .contacto-hoja .pending { color: rgba(247, 247, 251, .70); }

.contacto-noche .field :is(input, textarea, select),
.contacto-noche .field :is(input, textarea, select):is(:hover, :focus) {
  color: #fff; caret-color: var(--acento-noche);
  background: linear-gradient(180deg, rgba(255, 255, 255, .035), rgba(255, 255, 255, .07));
  border: 1px solid rgba(255, 255, 255, .18);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .06);
  transition: border-color var(--t) var(--ease), box-shadow var(--t) var(--ease), background var(--t) var(--ease);
}
.contacto-noche .field :is(input, textarea, select):hover { border-color: rgba(255, 255, 255, .34); }
.contacto-noche .field :is(input, textarea, select):focus {
  outline: none;
  background: linear-gradient(180deg, rgba(255, 255, 255, .05), rgba(255, 255, 255, .09));
  border-image: conic-gradient(from var(--vdm-ang), rgba(255, 255, 255, .30) 0deg, #59B8D9 90deg, #9ED3E6 140deg, rgba(255, 255, 255, .30) 230deg, rgba(255, 255, 255, .30) 360deg) 1;
  box-shadow: 0 0 0 3px rgba(158, 211, 230, .20);
  transition-duration: var(--t-control);
  animation: vdm-giro 3.2s linear infinite;
}
.contacto-noche .field :is(input, textarea)::placeholder { color: rgba(247, 247, 251, .42); }
.contacto-noche .field select,
.contacto-noche .field select:is(:hover, :focus) {
  background:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%23F7F7FB' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'><path d='M4 6l4 4 4-4'/></svg>") no-repeat right 14px center / 16px 16px,
    linear-gradient(180deg, rgba(255, 255, 255, .035), rgba(255, 255, 255, .07));
}

.contacto-noche .field select option { color: var(--ink); background: #fff; }

.contacto-noche .field input:-webkit-autofill {
  -webkit-text-fill-color: #fff; caret-color: #fff;
  -webkit-box-shadow: 0 0 0 1000px #1E2130 inset; transition: background-color 9999s 0s;
}

.contacto-noche .choice { gap: 10px; }
.contacto-noche .choice label {
  color: rgba(247, 247, 251, .88); font-weight: 500;
  background: rgba(255, 255, 255, .04); border: 1px solid rgba(255, 255, 255, .18);
  transition: border-color var(--t) var(--ease), background var(--t) var(--ease), color var(--t) var(--ease);
}
.contacto-noche .choice label:hover { border-color: rgba(255, 255, 255, .36); color: #fff; }
.contacto-noche .choice label:has(input:checked) {
  color: #fff; font-weight: 500;
  background: rgba(158, 211, 230, .10); border-color: rgba(158, 211, 230, .62);
}
.contacto-noche :is(.choice, .check) input {
  appearance: none; -webkit-appearance: none; margin: 0; flex: none;
  width: 18px; height: 18px; display: grid; place-items: center; cursor: pointer;
  border: 1.5px solid rgba(247, 247, 251, .55); background: transparent;
  transition: border-color var(--t) var(--ease), background var(--t) var(--ease), box-shadow var(--t) var(--ease);
}
.contacto-noche .choice input { border-radius: 50%; }
.contacto-noche .choice input:checked { border-color: var(--acento-noche); background: radial-gradient(circle, var(--acento-noche) 0 4px, transparent 4.5px); }
.contacto-noche .check input { border-radius: 3px; margin-top: 2px; }
.contacto-noche .check input:checked {
  border-color: var(--acento-noche);
  background: var(--acento-noche) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%231D1B2E' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6 9 17l-5-5'/></svg>") no-repeat center / 12px 12px;
}
.contacto-noche :is(.choice, .check) input:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(158, 211, 230, .45); }
.contacto-noche .check { color: rgba(247, 247, 251, .82); }
.contacto-noche .check:hover { color: #fff; }

.contacto-noche .contacto-hoja .btn-primary {
  --f: #FFFFFF; --edge: linear-gradient(#FFFFFF, #FFFFFF); color: var(--ink);
  background: linear-gradient(var(--f), var(--f)) padding-box, var(--edge) border-box;
}
.contacto-noche .contacto-hoja .btn-primary:hover {
  --f: #F7F7FB; --edge: var(--giro-blanco); color: var(--ink);
  background: linear-gradient(var(--f), var(--f)) padding-box, var(--edge) border-box;
  box-shadow: 0 10px 26px -12px rgba(89, 184, 217, .55);
}
.contacto-noche .contacto-hoja .btn-primary:disabled { --f: rgba(255, 255, 255, .72); --edge: linear-gradient(transparent, transparent); color: var(--ink); }
.contacto-noche .contacto-hoja .btn-secondary {
  position: relative; color: #fff; background: transparent; border: 1px solid rgba(255, 255, 255, .28);
}
.contacto-noche .contacto-hoja .btn-secondary:hover { color: #fff; background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .5); animation: none; }

.contacto-noche .form-result { background: none; border: 0; padding: 0; max-width: none; }
#contenido .contacto-noche .form-result h2 { color: #fff; font-size: clamp(1.5rem, 1.25rem + .9vw, 1.875rem); }
.contacto-noche .form-result .kv dt { color: rgba(247, 247, 251, .6); }
.contacto-noche .form-result .kv dd { color: #fff; }
@media (prefers-reduced-motion: reduce) {
  .contacto-noche .field :is(input, textarea, select):focus { animation: none; }
}

#contenido .noche-apertura > section { background: none; border: 0; }
.noche-apertura > .page-head { padding-top: calc(var(--site-menu-flujo, 78px) + clamp(48px, 6vw, 88px)); }
.noche-apertura > .page-head::after { content: none; }
#contenido .noche-apertura :is(h1, h2) { color: #fff; }
#contenido .noche-apertura :is(h1, h2) em { color: var(--acento-noche); }
#contenido .noche-apertura .lead { color: rgba(247, 247, 251, .82); }
.noche-apertura .pending { color: rgba(247, 247, 251, .70); }
.noche-apertura .rumbo { background: rgba(255, 255, 255, .12); color: var(--acento-noche); }
.noche-apertura .page-head .linea-rumbo { color: rgba(247, 247, 251, .66); }

.noche-apertura .cabecera-indice-rotulo { color: rgba(247, 247, 251, .62); }
.noche-apertura .cabecera-indice-rotulo::after { background: rgba(255, 255, 255, .20); }
.noche-apertura .cabecera-indice li { border-bottom-color: rgba(255, 255, 255, .12); }
#contenido .noche-apertura .cabecera-indice a { color: rgba(247, 247, 251, .84); }
#contenido .noche-apertura .cabecera-indice a:hover,
#contenido .noche-apertura .cabecera-indice a.es-actual { color: #fff; }
#contenido .noche-apertura .cabecera-indice :is(.num, .ir) { color: rgba(247, 247, 251, .52); }
#contenido .noche-apertura .cabecera-indice a:hover .ir { color: #fff; }
#contenido .noche-apertura .cabecera-indice a.es-vista .num { color: var(--acento-noche); }
#contenido .noche-apertura .cabecera-indice a.es-actual .num { color: #fff; }

.papel-continuo {
  position: relative; background-color: #F4F3EF;
  background-image:
    radial-gradient(ellipse 60% 720px at 6% 0, rgba(255, 255, 255, .62), transparent 70%),
    radial-gradient(ellipse 62% 960px at 100% 22%, rgba(158, 211, 230, .26), transparent 70%),
    radial-gradient(ellipse 60% 960px at 0 52%, rgba(230, 211, 166, .30), transparent 70%),
    radial-gradient(ellipse 62% 960px at 100% 82%, rgba(158, 211, 230, .20), transparent 70%),
    linear-gradient(174deg, #F8F7F4 0%, #F3F2EE 36%, #F6F5F1 62%, #F1F0EC 100%);
}
#contenido .papel-continuo > section:not(.rieles):not(.seccion-cierre) { background-image: none; }
#contenido .papel-continuo > .seccion-cierre { background: none; }

#contenido .noche-cierre > section { background: none; border: 0; }
.noche-cierre > .seccion-cierre { padding-top: clamp(24px, 3vw, 40px); padding-bottom: clamp(88px, 10vw, 144px); }

.noche-cierre > .seccion-cierre:first-child { padding-top: clamp(88px, 10vw, 144px); }
.noche-cierre > .seccion-cierre::after { content: none; }
#contenido .noche-cierre .cta-final {
  background: rgba(255, 255, 255, .05);
  -webkit-backdrop-filter: blur(18px) saturate(1.4); backdrop-filter: blur(18px) saturate(1.4);
  border: 1px solid rgba(255, 255, 255, .14);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .12), 0 30px 60px -30px rgba(0, 0, 0, .6);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  #contenido .noche-cierre .cta-final { background: rgba(23, 20, 36, .86); }
}
#contenido .noche-cierre :is(h2, h3):not(:is(.constancia, .escena) *) { color: #fff; }
#contenido .noche-cierre .lead { color: rgba(247, 247, 251, .82); }
.noche-cierre .pending { color: rgba(247, 247, 251, .70); }

.noche-cierre .constancia { color: var(--ink-2); box-shadow: 0 24px 64px rgba(0, 0, 0, .45); }
.noche-cierre .constancia .mono, .noche-cierre .constancia dt, .noche-cierre .constancia .pending { color: var(--ink-3); }
.noche-cierre .constancia :is(dd, strong) { color: var(--ink-2); }
.noche-cierre .constancia .sig strong { color: var(--ink); }

.material-continuo { position: relative; isolation: isolate; }

body:has(#contenido > .material-continuo:first-child) .site-header { margin-bottom: calc(-1 * var(--menu-flujo)); }
#contenido > .material-continuo:first-child > .page-head:first-child { padding-top: calc(var(--site-menu-flujo, 78px) + clamp(48px, 6vw, 88px)); }
#contenido .material-continuo > section { position: relative; z-index: 1; background: none; border-block: 0; }
#contenido .material-continuo > .page-head::after { content: none; }

#contenido:not(.seg-empresas):not(.seg-firmas):not(.seg-vision) .material-continuo {
  background-color: #F7F7FB;
  background-image:
    radial-gradient(ellipse 52% 640px at 92% 0, rgba(98, 17, 255, .08), transparent 60%),
    radial-gradient(ellipse 60% 1100px at 0 38%, rgba(31, 111, 136, .05), transparent 64%),
    radial-gradient(ellipse 56% 1000px at 100% 74%, rgba(98, 17, 255, .035), transparent 64%),
    linear-gradient(180deg, var(--perla-tope) 0, #F7F7FB 640px, #F7F7FB calc(100% - 700px), #F2F1F5 100%);
}
.noche-cierre.esp-11::before { background:
  radial-gradient(ellipse 60% 560px at 24% 0, rgba(90, 90, 110, .40), transparent 62%),
  radial-gradient(ellipse 54% 520px at 82% 44%, rgba(48, 35, 89, .44), transparent 64%),
  radial-gradient(ellipse 40% 380px at 56% 30%, rgba(98, 17, 255, .12), transparent 68%); }

:root {
  --grano-noche-canal: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23g)' opacity='.14'/%3E%3C/svg%3E");
  --grano-noche-pieza: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23g)' opacity='.10'/%3E%3C/svg%3E");
  --borde-luz-noche: rgba(255, 255, 255, .20) 0deg 22deg, rgba(255, 246, 228, .95) 48deg, #E6D3A6 62deg, rgba(158, 211, 230, .6) 86deg, rgba(255, 255, 255, .20) 124deg, rgba(255, 255, 255, .12) 220deg, rgba(255, 255, 255, .20) 360deg;
}
#contenido .noche-apertura.esp-9 :is(h1, h2) em { color: #E6D3A6; }

.noche-apertura .facturacion-mando { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .16); }
.noche-apertura .facturacion-mando button { color: rgba(247, 247, 251, .80); }
.noche-apertura .facturacion-mando button:hover { color: #fff; background: rgba(255, 255, 255, .08); }
.noche-apertura .facturacion-mando button[aria-checked="true"] { background: #fff; color: var(--ink); }
.noche-apertura .facturacion-mando button:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(158, 211, 230, .55); }
#contenido .noche-apertura .facturacion-nota { color: rgba(247, 247, 251, .74); }

.noche-apertura .plan {
  color: var(--noche-texto);
  background:
    radial-gradient(ellipse 96% 72% at 6% 0%, rgba(158, 211, 230, .05), transparent 60%),
    linear-gradient(180deg, rgba(255, 255, 255, .075) 0%, rgba(255, 255, 255, .03) 100%);
  -webkit-backdrop-filter: blur(18px) saturate(1.4); backdrop-filter: blur(18px) saturate(1.4);
  border: 1px solid rgba(255, 255, 255, .14);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .14), 0 30px 60px -30px rgba(4, 3, 10, .7);
}
.noche-apertura .plan.es-mayor {
  background:
    radial-gradient(ellipse 96% 72% at 6% 0%, rgba(230, 211, 166, .06), transparent 60%),
    linear-gradient(180deg, rgba(255, 255, 255, .075) 0%, rgba(255, 255, 255, .03) 100%);
  border-color: rgba(230, 211, 166, .30);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .noche-apertura .plan { background: rgba(23, 20, 36, .86); }
}
#contenido .noche-apertura .plan h2 { color: #fff; }
#contenido .noche-apertura :is(.plan-for, .plan-salto) { color: rgba(247, 247, 251, .78); }
#contenido .noche-apertura .price { color: #fff; }
#contenido .noche-apertura .price small { color: rgba(247, 247, 251, .64); }
#contenido .noche-apertura .price-alt { color: rgba(247, 247, 251, .64); }
.noche-apertura .plan li { border-top-color: rgba(255, 255, 255, .12); }
.noche-apertura .plan li > span:first-child { color: rgba(247, 247, 251, .68); }
.noche-apertura .plan li > span:last-child { color: #fff; }
.noche-apertura .salto { background: rgba(158, 211, 230, .14); color: var(--acento-noche); }
.noche-apertura .plan-salto { border-top-color: rgba(255, 255, 255, .12); }
.noche-apertura .plan-salto strong { color: #fff; }
#contenido .noche-apertura .small.muted { color: rgba(247, 247, 251, .64); }

.noche-apertura .deslizador { --des-brillo: #9ED3E6; }
.noche-apertura .deslizador[data-tono="champana"] { --des-brillo: #E6D3A6; }
.noche-apertura .deslizador::before { content: none; }
.noche-apertura .deslizador-canal {
  background: var(--grano-noche-canal), linear-gradient(180deg, rgba(255, 255, 255, .035), rgba(255, 255, 255, .075));
  -webkit-backdrop-filter: blur(18px) saturate(1.5); backdrop-filter: blur(18px) saturate(1.5);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .14), inset 0 0 0 1px rgba(255, 255, 255, .12), 0 18px 44px -16px rgba(10, 8, 18, .55);
}
.noche-apertura .deslizador-canal::after { background: linear-gradient(90deg, transparent, rgb(158 211 230 / .85), transparent); }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .noche-apertura .deslizador-canal { background: var(--grano-noche-canal), rgba(23, 20, 36, .84); }
}
.noche-apertura .deslizador-texto {
  color: rgba(247, 247, 251, .74);
  background-image: linear-gradient(90deg, rgba(247, 247, 251, .74) 0% 40%, var(--des-brillo) 50%, rgba(247, 247, 251, .74) 60% 100%);
}
.noche-apertura .deslizador-hecho { color: rgba(247, 247, 251, .80); }
.noche-apertura .deslizador-pieza, .noche-apertura .deslizador-pieza:hover {
  color: #fff;
  background: var(--grano-noche-pieza), linear-gradient(180deg, rgba(255, 250, 240, .20), rgba(230, 211, 166, .09));
  -webkit-backdrop-filter: blur(14px) saturate(1.4); backdrop-filter: blur(14px) saturate(1.4);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .34), inset 0 -8px 16px -10px rgba(230, 211, 166, .30), 0 10px 24px -10px rgba(10, 8, 18, .70);
}
.noche-apertura .deslizador-pieza:focus-visible { box-shadow: 0 0 0 3px rgba(158, 211, 230, .55), inset 0 1px 0 rgba(255, 255, 255, .34); }
.noche-apertura .deslizador-borde { background: conic-gradient(from calc(var(--des-ang, 0) * 1deg), var(--borde-luz-noche)); }
.noche-apertura .deslizador-flecha { color: rgba(247, 247, 251, .86); }
.noche-apertura .deslizador-sello { color: #fff; }
.noche-apertura .deslizador-sello svg { color: #E6D3A6; }

.noche-apertura.esp-9::before { background:
  radial-gradient(ellipse 72% 760px at 90% 0, rgba(230, 211, 166, .22), transparent 68%),
  radial-gradient(ellipse 64% 820px at 84% calc(100% - 520px), rgba(230, 211, 166, .18), transparent 68%),
  radial-gradient(ellipse 60% 820px at 6% calc(100% - 420px), rgba(85, 14, 226, .12), transparent 68%); }
@media (max-width: 999px) {
  .noche-apertura.esp-9::before { background:
    radial-gradient(ellipse 110% 560px at 90% 0, rgba(230, 211, 166, .20), transparent 68%),
    radial-gradient(ellipse 110% 760px at 80% calc(100% - 360px), rgba(230, 211, 166, .16), transparent 68%); }
}

.noche-cierre .grid-2 { align-items: stretch; }
.noche-cierre .grid-2 > .facts { display: flex; flex-direction: column; }
.noche-cierre .grid-2 > .facts > .fact { flex: 1; }

.motor-vistas { margin-top: clamp(36px, 4.5vw, 64px); align-items: start; }

.motor-vistas .vista { grid-template-columns: minmax(0, 1fr); gap: 16px; }
.motor-vistas .vista-pie { padding: 0; border: 0; }
.motor-vistas .vista-pie p { max-width: 56ch; margin: 6px 0 0; }

:is(.noche-apertura, .noche-cierre) .facts { border-top-color: rgba(255, 255, 255, .16); }
:is(.noche-apertura, .noche-cierre) .fact { border-bottom-color: rgba(255, 255, 255, .16); }
:is(.noche-apertura, .noche-cierre) .fact::after { background: var(--acento-noche); }
:is(.noche-apertura, .noche-cierre) :is(.fact-cabeza, .fact-cabeza:hover), :is(.noche-apertura, .noche-cierre) .fact:hover h3 { color: #fff; }
:is(.noche-apertura, .noche-cierre) .fact-num { color: rgba(247, 247, 251, .56); }
#contenido :is(.noche-apertura, .noche-cierre) .fact-cabeza[aria-expanded="true"] .fact-num { color: var(--acento-noche); }
:is(.noche-apertura, .noche-cierre) .fact-cabeza .pliego-signo { color: rgba(247, 247, 251, .62); }
#contenido :is(.noche-apertura, .noche-cierre) .fact h3 { color: #fff; }
:is(.noche-apertura, .noche-cierre) .fact-cabeza:focus-visible { box-shadow: 0 0 0 3px rgba(158, 211, 230, .45); }
.espectro:is(.noche-apertura, .noche-cierre) :is(.fact p, .fact-cuerpo p) { color: rgba(247, 247, 251, .80); }
:is(.noche-apertura, .noche-cierre) :is(.fact .source, .fact-cuerpo .source) { color: rgba(247, 247, 251, .56); }

#contenido.seg-vision .material-continuo {
  background-color: var(--vis-fondo);
  background-image:
    radial-gradient(ellipse 52% 640px at 92% 0, rgb(var(--vis-luz) / .16), transparent 62%),
    radial-gradient(ellipse 40% 480px at 100% 0, rgb(var(--vis-luz-honda) / .08), transparent 60%),
    radial-gradient(ellipse 60% 1100px at 0 36%, rgb(var(--vis-luz-honda) / .06), transparent 64%),
    radial-gradient(ellipse 60% 1100px at 100% 72%, rgb(var(--vis-luz) / .08), transparent 64%),
    linear-gradient(180deg, var(--perla-tope) 0, var(--vis-fondo) 600px, var(--vis-fondo) calc(100% - 800px), var(--vis-fondo-hondo) 100%);
}
#contenido.seg-vision .material-continuo > section:is(.page-head, .section, .section-sm):not(.tinted):not(.seccion-rumbo):not(.seccion-cierre) {
  background: none; border-block: 0;
}

#contenido .papel-continuo > section:not(.seccion-cierre) { background-color: transparent; }
#contenido .papel-continuo > .rieles { background-image: repeating-linear-gradient(to right, var(--riel) 0 1px, transparent 1px calc(100% / 4)); }

.seccion-como .product { background: transparent; padding: 0; }
.seccion-como .metodo-resumen p { color: var(--ink-2); }
.seccion-como .metodo-resumen .link { color: var(--ink); }
.seccion-como .metodo-resumen .link:hover { color: var(--ink); }

#contenido:is(.seg-empresas, .seg-firmas) .material-continuo {
  background-color: var(--seg-fondo);
  background-image:
    radial-gradient(ellipse 52% 620px at 94% 0, rgb(var(--seg-luz) / .55), transparent 62%),
    radial-gradient(ellipse 40% 460px at 100% 0, rgb(var(--seg-luz-tinta) / .07), transparent 60%),
    radial-gradient(ellipse 62% 1100px at 0 28%, rgb(var(--seg-luz) / .18), transparent 64%),
    radial-gradient(ellipse 60% 1000px at 100% 50%, rgb(var(--seg-luz) / .30), transparent 64%),
    radial-gradient(ellipse 60% 1100px at 0 82%, rgb(var(--seg-luz) / .16), transparent 64%),
    linear-gradient(180deg, var(--perla-tope) 0, var(--seg-fondo) 620px, var(--seg-fondo) calc(100% - 700px), var(--seg-fondo-hondo) 100%);
}
#contenido.seg-empresas .material-continuo::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; z-index: 0;
  opacity: .5; mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.86' numOctaves='3'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23g)' opacity='.055'/%3E%3C/svg%3E");
}
#contenido:is(.seg-empresas, .seg-firmas) .material-continuo > section:is(.page-head, .section, .section-sm, .seccion-vista, .tablero) {
  background: none; border-block: 0;
}

#contenido:is(.seg-empresas, .seg-firmas) .noche-cierre > section:is(.section, .section-sm) { background: none; }
#contenido:is(.seg-empresas, .seg-firmas) .material-continuo > section:is(.page-head, .tablero)::before,
#contenido:is(.seg-empresas, .seg-firmas) .material-continuo > .page-head::after { content: none; }
#contenido.seg-empresas .noche-cierre::before { background:
  radial-gradient(ellipse 58% 520px at 88% 0, rgba(230, 211, 166, .20), transparent 62%),
  radial-gradient(ellipse 50% 560px at 6% 38%, rgba(127, 101, 48, .34), transparent 64%),
  radial-gradient(ellipse 44% 420px at 64% 62%, rgba(230, 211, 166, .10), transparent 66%); }
#contenido.seg-firmas .noche-cierre::before { background:
  radial-gradient(ellipse 58% 520px at 88% 0, rgba(158, 211, 230, .20), transparent 62%),
  radial-gradient(ellipse 50% 560px at 6% 40%, rgba(44, 147, 176, .26), transparent 64%),
  radial-gradient(ellipse 44% 400px at 64% 60%, rgba(29, 107, 87, .24), transparent 66%); }

.caso { margin-top: clamp(40px, 5vw, 72px); }
.caso-pasos { list-style: none; margin: 0; padding: 0; }
.caso-paso { position: relative; display: grid; grid-template-columns: 44px minmax(0, 1fr); column-gap: clamp(18px, 2vw, 28px); padding-bottom: clamp(36px, 5vw, 56px); }
.caso-paso:last-child { padding-bottom: 0; }

.caso-paso::before {
  content: ""; position: absolute; left: 21px; top: 44px; bottom: 0; width: 2px; border-radius: 1px;
  background: var(--line-strong); transition: background 440ms var(--ease);
}
.caso-paso:last-child::before { content: none; }
.caso-paso.es-pasado::before { background: var(--ink); }

.caso-paso::after {
  content: ""; position: absolute; left: 20px; top: 44px; width: 4px; height: 56px; border-radius: 2px;
  opacity: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(158, 211, 230, 0), #59B8D9 55%, #9ED3E6);
  filter: drop-shadow(0 0 6px rgba(89, 184, 217, .55));
}
.caso-paso:last-child::after { content: none; }
.caso-paso.corre::after { animation: caso-luz 1280ms cubic-bezier(.22, .61, .36, 1) both; }
@keyframes caso-luz {
  from { top: 44px; opacity: 0; }
  14% { opacity: 1; }
  86% { opacity: 1; }
  to { top: calc(100% - 56px); opacity: 0; }
}

.caso-estacion {
  position: relative; z-index: 1; width: 44px; height: 44px; border-radius: 50%;
  display: grid; place-items: center; background: var(--bg);
  border: 1.5px solid var(--line-strong); color: var(--ink-3);
  font-family: var(--mono); font-size: .875rem; font-weight: 500;
  transition: background 440ms var(--ease), border-color 440ms var(--ease), color 440ms var(--ease), box-shadow 440ms var(--ease);
}
.caso-estacion::after {
  content: ""; position: absolute; inset: -1.5px; border-radius: 50%;
  border: 1px solid #59B8D9; opacity: 0; pointer-events: none;
}
.caso-paso.es-pasado .caso-estacion { background: var(--ink); border-color: var(--ink); color: #fff; }
.caso-paso.es-actual .caso-estacion { border-color: #1F6F88; color: var(--ink); box-shadow: 0 0 0 6px rgba(89, 184, 217, .16); }
@media (prefers-reduced-motion: no-preference) {
  .caso.es-vivo .caso-paso.es-actual .caso-estacion::after { animation: camino-toca 900ms var(--ease) 1000ms both; }
}

.caso-texto { padding-top: 7px; min-width: 0; }
#contenido .caso-nombre { font-size: var(--fs-h3); line-height: 1.2; margin: 0; color: var(--ink); transition: color 440ms var(--ease); }
.caso-quien { margin: 8px 0 0; font-family: var(--mono); font-size: var(--fs-meta); color: var(--ink-3); }
.caso-que { margin: 12px 0 0; max-width: 46ch; color: var(--ink-2); transition: color 440ms var(--ease); }
.caso-rumbo { margin: 14px 0 0; font-size: var(--fs-meta); color: var(--ink-3); max-width: 46ch; }
.caso.es-vivo .caso-paso:not(.es-actual) :is(.caso-nombre, .caso-que) { color: var(--ink-3); }

.caso-escena { margin-top: clamp(36px, 5vw, 56px); display: none; }
.ejemplo-inline { margin-top: 20px; max-width: 620px; }

@media (min-width: 1000px) {
  .caso.es-vivo {
    display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
    column-gap: clamp(56px, 6vw, 104px); align-items: start;
  }
  .caso.es-vivo .caso-paso { min-height: 38vh; }
  .caso.es-vivo .caso-paso:last-child { min-height: 66vh; }
  .caso.es-vivo .ejemplo-inline { display: none; }
  .caso.es-vivo .caso-escena {
    position: sticky; top: calc(var(--site-menu-flujo, 78px) + 72px);
    margin-top: 0; display: grid;
  }
  .caso.es-vivo .caso-escena > * { grid-area: 1 / 1; }
  .caso.es-vivo .ejemplo-escena {
    align-self: start; opacity: 0; visibility: hidden; transform: translateY(18px);
    transition: opacity 420ms var(--ease), transform 560ms var(--ease), visibility 0s linear 560ms;
  }
  .caso.es-vivo .ejemplo-escena.es-actual {
    opacity: 1; visibility: visible; transform: none;
    transition: opacity 520ms var(--ease) 120ms, transform 640ms var(--ease) 120ms, visibility 0s;
  }
  /* Si el ejemplo termina en la constancia, ésta ocupa el escenario en la última etapa. */
  .caso.es-vivo .caso-constancia {
    opacity: 0; visibility: hidden; transform: translateY(24px) scale(.985);
    transition: opacity 520ms var(--ease), transform 640ms var(--ease), visibility 0s linear 640ms;
  }
  .caso.es-vivo.en-ultima .caso-constancia {
    opacity: 1; visibility: visible; transform: none;
    transition: opacity 640ms var(--ease) 160ms, transform 760ms var(--ease) 160ms, visibility 0s;
  }
  .caso.es-vivo.en-ultima:has(.caso-constancia) .ejemplo-escena { opacity: 0; visibility: hidden; transform: translateY(-12px) scale(.97); pointer-events: none; }
}
.caso-constancia { margin: 0; }
@media (prefers-reduced-motion: reduce) {
  .caso-paso.corre::after { animation: none; }
  .caso.es-vivo .caso-constancia, .caso.es-vivo .ejemplo-escena { transition: none; }
}

.registro { position: relative; display: grid; gap: clamp(28px, 4vw, 40px); margin-top: clamp(28px, 3.6vw, 48px); }
@media (min-width: 1000px) {
  .registro { grid-template-columns: minmax(0, 4fr) minmax(120px, 2.4fr) minmax(0, 6fr); gap: 0; align-items: stretch; }
}
.registro-papeles { list-style: none; margin: 0; padding: 0; display: grid; }
@media (min-width: 1000px) { .registro-papeles { grid-template-rows: repeat(3, minmax(0, 1fr)); } }
.registro-papel {
  display: grid; align-content: center; gap: 2px; padding: 18px 12px 18px 0;
  border-top: 1px solid var(--line); cursor: default;
}
.registro-papel:last-child { border-bottom: 1px solid var(--line); }
.registro-quien, .registro-hace {
  font-family: var(--serif); font-size: var(--fs-h3); line-height: 1.2; letter-spacing: -.01em;
  transition: color 440ms var(--ease);
}
.registro-quien { font-weight: 500; color: var(--ink); }
.registro-hace { font-weight: 500; font-style: italic; color: var(--ink-3); }
.registro.es-vivo .registro-papel:not(.es-activo) .registro-quien { color: var(--ink-3); }
.registro-papel.es-activo .registro-hace { color: #1F6F88; }

.registro-trazos { display: none; }
@media (min-width: 1000px) { .registro-trazos { display: block; width: 100%; height: 100%; overflow: visible; } }
.registro-trazos path { fill: none; vector-effect: non-scaling-stroke; stroke-linecap: round; stroke-linejoin: round; }
.registro-linea { stroke: rgba(48, 35, 89, .18); stroke-width: 1; transition: stroke 440ms var(--ease); }
.registro-linea.es-activa { stroke: rgba(31, 111, 136, .5); }
.registro-nodo { fill: #fff; stroke: rgba(48, 35, 89, .32); stroke-width: 1; transition: fill 440ms var(--ease), stroke 440ms var(--ease); }
.registro-nodo.es-activo { fill: #1F6F88; stroke: #1F6F88; }
.registro-luz { stroke: #59B8D9; stroke-width: 2; opacity: 0; filter: drop-shadow(0 0 4px rgba(89, 184, 217, .6)); }
.registro-luz.corre { opacity: 1; stroke-dasharray: .18 1.4; animation: nucleo-pasada 1280ms cubic-bezier(.22, .61, .36, 1) 2 both; }
.registro-luz.queda { opacity: .9; stroke: #1F6F88; stroke-width: 1.5; stroke-dasharray: none; filter: none; transition: opacity 880ms var(--ease); }

.registro-asunto {
  align-self: center; display: grid;
  padding: clamp(20px, 2.4vw, 30px);
  background: var(--nacar); border: 1px solid var(--line); border-radius: var(--r-xl);
  box-shadow: 0 1px 0 rgba(48, 35, 89, .04), 0 36px 72px -40px rgba(48, 35, 89, .32);
}
.registro-cabeza {
  display: flex; justify-content: space-between; align-items: baseline; gap: 6px 16px; flex-wrap: wrap;
  padding-bottom: 14px; border-bottom: 1px solid var(--line);
}
.registro-cabeza strong { font-size: 1.0625rem; font-weight: 600; color: var(--ink); letter-spacing: -.01em; }
.registro-parte { position: relative; padding: 16px 0 16px 18px; border-bottom: 1px solid var(--line); }
.registro-parte:last-child { border-bottom: 0; padding-bottom: 4px; }
.registro-parte::before {
  content: ""; position: absolute; left: 0; top: 16px; bottom: 16px; width: 2px; border-radius: 1px;
  background: var(--line-strong); transition: background 440ms var(--ease);
}
.registro-parte:last-child::before { bottom: 4px; }
.registro-firma { display: block; margin-bottom: 8px; font-family: var(--mono); font-size: .8125rem; color: var(--ink-3); transition: color 440ms var(--ease); }
.registro-parte .kv dd { color: var(--ink-2); transition: color 440ms var(--ease); }
.registro-parte.es-activa::before { background: #59B8D9; }
.registro-parte.es-activa .registro-firma { color: #1F6F88; }
.registro-parte.es-activa .kv dd { color: var(--ink); }

.seccion-como .metodo-resumen {
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 12px 40px;
  margin-top: clamp(32px, 4vw, 52px); padding-top: 22px; border-top: 1px solid var(--line);
}
.seccion-como .metodo-resumen p { max-width: 58ch; }
@media (prefers-reduced-motion: reduce) {
  .registro-luz { display: none; }
}

.vista { align-items: center; }
.vista-lienzo { margin-inline: 0; }
.producto-pantalla,
.apertura .producto-pantalla.hero-vista {
  min-width: 0; overflow: hidden; background: #fff; color: var(--ink-2);
  border: 1px solid var(--control-borde); border-radius: var(--r-xl);
  box-shadow: none; filter: none;
}
:is(.apertura, .espectro, .sala) .producto-pantalla,
.apertura .producto-pantalla.hero-vista {
  border-color: rgba(255, 255, 255, .22);
  box-shadow: 0 30px 80px -30px rgba(4, 3, 10, .72);
}
.producto-barra {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  min-height: 48px; padding: 2px 6px 2px 16px;
  background: linear-gradient(180deg, #F9F8F6 0%, #F2F1EE 100%); border-bottom: 1px solid var(--line);
}
.producto-titulo {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 12px; min-width: 0;
  font: 500 .8125rem/1.35 var(--sans); color: var(--ink);
}
.producto-muestra { font-family: var(--mono); font-size: .75rem; font-weight: 400; color: var(--ink-3); white-space: nowrap; }
.producto-ampliar {
  flex: none; display: inline-flex; align-items: center; gap: 8px;
  min-height: 40px; padding: 0 12px; border: 0; border-radius: var(--r-sm);
  background: none; color: var(--ink-2); font: 500 .8125rem/1 var(--sans); cursor: pointer;
  transition: background var(--t) var(--ease), color var(--t) var(--ease);
}
.producto-ampliar:hover { background: #EEEEF4; color: var(--ink); transition-duration: var(--t-control); }
.producto-ampliar:focus-visible { outline: none; box-shadow: var(--ring); }
.producto-lienzo { cursor: zoom-in; background: #fff; }

.producto-pantalla .producto-lienzo img {
  display: block; width: 100%; height: auto;
  border-radius: 0; box-shadow: none; filter: none;
}

.producto-dialogo {
  position: fixed; inset: 0; margin: auto; padding: 0;
  width: min(1440px, calc(100vw - 48px)); max-width: none; max-height: calc(100dvh - 48px);
  overflow: auto; background: #fff; color: var(--ink-2);
  border: 1px solid var(--control-borde); border-radius: var(--r-xl);
  box-shadow: 0 40px 100px -30px rgba(4, 3, 10, .6);
}
.producto-dialogo::backdrop { background: rgba(17, 15, 28, .82); }
body:has(.producto-dialogo[open]) { overflow: hidden; }
.producto-dialogo-panel { width: 100%; }
.producto-dialogo-barra {
  position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between;
  gap: 12px; padding: 10px 12px 10px 20px; background: #F7F7FB; border-bottom: 1px solid var(--line);
  font: 500 .9375rem/1.4 var(--sans); color: var(--ink);
}
.producto-dialogo-barra small { margin-left: 10px; font-family: var(--mono); font-size: .75rem; color: var(--ink-3); }
.producto-dialogo-acciones { display: flex; gap: 8px; flex-shrink: 0; }
.producto-dialogo-acciones button {
  min-height: 44px; padding: 0 16px; border: 1px solid var(--control-borde); border-radius: var(--r-sm);
  background: #fff; color: var(--ink); font: 500 .875rem/1 var(--sans); cursor: pointer;
  transition: background var(--t) var(--ease), border-color var(--t) var(--ease), color var(--t) var(--ease);
}
.producto-dialogo-acciones button:hover { background: var(--bg-2); border-color: var(--control-tinta); }
.producto-dialogo-acciones button[aria-pressed="true"] { background: var(--control-tinta); border-color: var(--control-tinta); color: #fff; }
.producto-dialogo-acciones button:focus-visible,
.producto-dialogo-lienzo:focus-visible { outline: none; box-shadow: var(--ring); }
.producto-dialogo-lienzo { overflow: auto; max-height: calc(100dvh - 185px); overscroll-behavior: contain; }
.producto-dialogo-lienzo img { display: block; width: 100%; height: auto; max-height: calc(100dvh - 185px); object-fit: contain; background: #fff; }
.producto-dialogo-lienzo.con-detalle img { width: 1536px; max-width: none; max-height: none; }
.producto-dialogo .producto-dialogo-nota { margin: 0; padding: 12px 20px; border-top: 1px solid var(--line); color: var(--ink-3); font: 400 .8125rem/1.5 var(--sans); }
@media (max-width: 720px) {
  .producto-barra { padding-left: 12px; }
  .producto-titulo { display: grid; gap: 0; }
  .hero-editorial .escenario:has(.producto-pantalla) { margin-inline: 0; }
  .producto-dialogo { width: calc(100vw - 20px); max-height: calc(100dvh - 20px); }
  .producto-dialogo-barra { flex-wrap: wrap; padding: 10px 12px; }
  .producto-dialogo-barra > span { width: 100%; }
  .producto-dialogo-acciones { width: 100%; justify-content: space-between; }
  .producto-dialogo-lienzo, .producto-dialogo-lienzo img { max-height: calc(100dvh - 215px); }
  .producto-dialogo-lienzo.con-detalle img { max-height: none; }
}

@keyframes demo-entra { from { opacity: 0; transform: translateY(10px); filter: blur(4px); } to { opacity: 1; transform: none; filter: none; } }
@keyframes demo-cambia { from { opacity: .15; } to { opacity: 1; } }
@keyframes demo-relevo { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes demo-estampa { 0% { transform: scale(.6); } 60% { transform: scale(1.12); } 100% { transform: scale(1); } }
@keyframes demo-queda {
  0% { background-color: rgb(var(--seg-luz) / .5); border-left-color: var(--seg-tinta); }
  100% { background-color: rgb(var(--seg-luz) / 0); border-left-color: rgb(var(--seg-luz-tinta) / .2); }
}

.cartera { display: grid; gap: clamp(28px, 3.4vw, 44px); }
.cartera-fila > * { background: rgb(var(--seg-luz) / .16); }
.cartera-fila > th { box-shadow: inset 2px 0 0 var(--seg-tinta); }
.cartera-fila .status.cambia, .firmas .asunto-head .status.cambia { animation: demo-cambia 520ms var(--ease) both; }

.firmas {
  position: relative; display: grid; gap: 22px;
  padding: clamp(24px, 3vw, 40px);
  background: var(--nacar); border: 1px solid var(--line); border-radius: var(--r-xl);
  box-shadow: 0 1px 0 rgba(48, 35, 89, .04), 0 36px 72px -40px rgba(48, 35, 89, .30);
}
.firmas .asunto-head { margin: 0; }
.firmas > .kv { margin: 0; }
.firmas-riel { position: relative; isolation: isolate; list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 16px; }
.firmas-paso { display: grid; gap: 4px; justify-items: start; align-content: start; }
.firmas-estacion {
  display: grid; place-items: center; width: 44px; height: 44px; margin-bottom: 12px; border-radius: 50%;
  background: var(--bg); border: 1.5px dashed var(--line-strong);
  transition: background 440ms var(--ease), border-color 440ms var(--ease), box-shadow 440ms var(--ease);
}
.firmas-paso.es-siguiente .firmas-estacion { border-style: solid; border-color: var(--seg-tinta); box-shadow: 0 0 0 6px rgb(var(--seg-luz) / .3); }
.firmas-paso.es-hecho .firmas-estacion { border-style: solid; border-color: var(--ink); background: var(--ink); box-shadow: none; }
.firmas-paso.es-hecho .firmas-estacion::after {
  content: ""; width: 18px; height: 18px; background: #fff;
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6 9 17l-5-5'/></svg>") center / contain no-repeat;
  mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6 9 17l-5-5'/></svg>") center / contain no-repeat;
}
.firmas-paso.es-nuevo .firmas-estacion { animation: demo-estampa 620ms cubic-bezier(.34, 1.4, .64, 1) both; }
.firmas-quien { font-family: var(--mono); font-size: var(--fs-meta); color: var(--ink-3); }
.firmas-que { font-family: var(--serif); font-weight: 500; font-size: clamp(1.1875rem, 1.1rem + .35vw, 1.3125rem); line-height: 1.2; color: var(--ink); }
.firmas-firma {
  margin-top: 6px; font-size: .9375rem; line-height: 1.45; color: var(--ink-2);
  visibility: hidden; opacity: 0; transform: translateY(8px);
  transition: opacity 360ms var(--ease), transform 360ms var(--ease), visibility 0s linear 360ms;
}
.firmas-paso.es-hecho .firmas-firma {
  visibility: visible; opacity: 1; transform: none;
  transition: opacity 520ms var(--ease) 160ms, transform 620ms var(--ease) 160ms, visibility 0s;
}
.firmas-nota { margin: 0; min-height: 3.2em; max-width: 52ch; color: var(--ink-2); }
.firmas-nota.cambia { animation: demo-entra 520ms var(--ease) both; }
.firmas-accion { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.firmas-accion .constancia-note { margin: 0; }
@media (min-width: 721px) {
  .firmas-riel { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  
  .firmas-riel::before, .firmas-riel::after {
    content: ""; position: absolute; z-index: -1; top: 21px; left: 22px; height: 2px; border-radius: 1px;
  }
  .firmas-riel::before { width: calc((100% - 32px) * 2 / 3 + 32px); background: var(--line-strong); }
  .firmas-riel::after {
    width: 0; background: linear-gradient(90deg, var(--ink) 0 calc(100% - 44px), #59B8D9 calc(100% - 14px), #9ED3E6 100%);
    box-shadow: 0 0 10px rgba(89, 184, 217, .45);
    transition: width 1280ms cubic-bezier(.22, .61, .36, 1);
  }
  .cartera[data-paso="2"] .firmas-riel::after { width: calc((100% - 32px) / 3 + 16px); }
  .cartera[data-paso="3"] .firmas-riel::after { width: calc((100% - 32px) * 2 / 3 + 32px); }
  
  .firmas-sello { position: absolute; right: clamp(20px, 3vw, 40px); top: 96px; z-index: 2; line-height: 0; }
  .firmas > .kv { max-width: calc(100% - 184px); }
}
@media (max-width: 720px) {
  .firmas-paso { position: relative; grid-template-columns: 44px minmax(0, 1fr); column-gap: 16px; padding-bottom: 22px; }
  .firmas-paso > :not(.firmas-estacion) { grid-column: 2; }
  .firmas-estacion { grid-row: 1 / span 4; margin: 0; }
  .firmas-paso:not(:last-child)::before {
    content: ""; position: absolute; z-index: -1; left: 21px; top: 44px; bottom: 0; width: 2px; border-radius: 1px;
    background: var(--line-strong); transition: background 440ms var(--ease);
  }
  .firmas-paso:has(+ .es-hecho)::before { background: var(--ink); }
  
  .firmas-sello { justify-self: start; line-height: 0; }
  .firmas-sello:not(.es-hecho) { display: none; }
}

.relevo { display: grid; gap: clamp(28px, 4vw, 56px); align-items: start; }
@media (min-width: 1000px) { .relevo { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); } }
.relevo-expediente {
  display: grid; gap: 20px; padding: clamp(24px, 3vw, 36px);
  background: var(--nacar); border: 1px solid var(--line); border-radius: var(--r-xl);
  box-shadow: 0 1px 0 rgba(48, 35, 89, .04), 0 36px 72px -40px rgba(48, 35, 89, .30);
}
.relevo-expediente .asunto-head { margin: 0; }
.relevo-cuenta { font-family: var(--mono); font-size: var(--fs-meta); color: var(--ink-3); }
.relevo-cuenta.cambia { color: var(--seg-tinta); animation: demo-cambia 520ms var(--ease) both; }
.relevo-responsable {
  display: flex; align-items: center; gap: 16px; padding: 16px 18px; border-radius: var(--r-lg);
  background: rgb(var(--seg-luz) / .2); border: 1px solid rgb(var(--seg-luz-tinta) / .16);
}
.relevo-siglas {
  flex: none; display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%;
  background: var(--bg); border: 1.5px solid var(--seg-tinta); color: var(--seg-tinta);
  font: 600 1rem/1 var(--sans); letter-spacing: .02em;
}
.relevo-siglas.cambia { animation: demo-relevo 620ms var(--ease) both; }
.relevo-quien { display: grid; gap: 2px; min-width: 0; }
.relevo-rotulo { font-family: var(--mono); font-size: var(--fs-meta); color: var(--ink-3); }
.relevo-nombre { font-size: 1.0625rem; font-weight: 600; color: var(--ink); }
.relevo-nombre.cambia { animation: demo-relevo 620ms var(--ease) 60ms both; }
.relevo-datos { margin: 0; }
.relevo-datos dd[data-queda] { padding: 2px 0 2px 10px; border-left: 2px solid rgb(var(--seg-luz-tinta) / .2); border-radius: 0 2px 2px 0; }
.relevo-datos dd.se-queda { animation: demo-queda 1400ms var(--ease) both; }
.relevo-antes { display: grid; gap: 10px; padding-top: 18px; border-top: 1px solid var(--line); }
.relevo-cadena { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.relevo-cadena li {
  display: inline-flex; align-items: center; gap: 8px; padding: 4px 12px 4px 4px; border-radius: 999px;
  background: var(--bg); border: 1px solid var(--line-strong); font-size: .875rem; color: var(--ink-2);
  animation: demo-entra 520ms var(--ease) both;
}
.historial-siglas {
  display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%;
  background: var(--bg-2); color: var(--ink-3); font: 600 .75rem/1 var(--sans);
}
.relevo-cadena:not([hidden]) + .relevo-nadie { display: none; }
.relevo-nadie { font-size: .9375rem; color: var(--ink-3); }
.relevo-nota { margin: 0; min-height: 3.2em; color: var(--ink-2); }
.relevo-nota.cambia { animation: demo-entra 520ms var(--ease) both; }
.relevo-lado .relevo-accion { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 20px; margin-top: 22px; }
.relevo-pasos { list-style: none; margin: 0; padding: 0; display: flex; gap: 6px; }
.relevo-pasos li { width: 24px; height: 3px; border-radius: 2px; background: var(--line-strong); transition: background 440ms var(--ease); }
.relevo-pasos li.es-siguiente { background: rgb(var(--seg-luz-tinta) / .45); }
.relevo-pasos li.es-hecho { background: var(--seg-tinta); }
@media (prefers-reduced-motion: reduce) {
  :is(.cartera, .relevo) * { animation: none !important; transition: none !important; }
}

.hero-acciones { margin-top: clamp(22px, 2.6vw, 30px); }
.apertura .hero-pie { margin-top: clamp(22px, 2.6vw, 30px); }

.apertura .lamina.similitudes { padding-top: clamp(8px, 1.5vw, 24px); }
.similitudes-acciones { margin-top: clamp(22px, 2.6vw, 30px); }

.motor-rejilla {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr));
  gap: clamp(16px, 2vw, 24px);
}
.motor-paso { padding: clamp(22px, 2.4vw, 32px); display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.motor-cabeza { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.motor-num { font-family: var(--mono); font-size: var(--fs-meta); letter-spacing: .06em; color: rgba(247, 247, 251, .62); }
.motor-paso h3 { margin: 0; font-size: clamp(1.375rem, 1.2rem + .6vw, 1.75rem); letter-spacing: -.02em; line-height: 1.15; }
.motor-paso p { margin: 0; font-size: var(--fs-small); line-height: 1.6; }

.motor-tarjeta { background: var(--nacar); border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--shadow-hairline); }
.motor-claro .motor-num { color: var(--ink-3); }
.motor-lista { margin: 0; padding: 0 0 0 1.1em; display: grid; gap: 8px; color: var(--ink-2); font-size: var(--fs-small); line-height: 1.55; }
.motor-lista li::marker { color: var(--ink-3); }
.motor-pie { margin: clamp(20px, 2.4vw, 28px) 0 0; color: var(--ink-3); font-size: var(--fs-small); max-width: 62ch; }

.novedad {
  display: inline-flex; align-items: center; white-space: nowrap;
  font-family: var(--mono); font-size: var(--fs-meta); letter-spacing: .06em; text-transform: uppercase;
  padding: 3px 9px; border-radius: 999px;
  border: 1px solid var(--line-strong); color: var(--ink-2); background: transparent;
}
.novedad.es-nuevo { border-color: var(--v-blue); color: var(--v-blue-ink); background: var(--v-blue-bg); }
.novedad.es-planes { border-style: dashed; }
:is(.cristal, .lamina) .novedad { border-color: rgba(255, 255, 255, .30); color: rgba(247, 247, 251, .86); }
:is(.cristal, .lamina) .novedad.es-nuevo { border-color: #9ED3E6; color: #fff; background: rgba(89, 184, 217, .20); }

.tabla-novedades tbody th { width: auto; font-weight: 500; }
.tabla-novedades td:nth-child(2) { width: 12em; color: var(--ink-2); }
.tabla-novedades td:nth-child(3) { width: 11em; }
.novedades-pie { margin: clamp(18px, 2vw, 24px) 0 0; color: var(--ink-2); font-size: var(--fs-small); }
.novedades .metodo-enlaces { margin-top: 10px; }
.modulo-seccion + .modulo-seccion { padding-top: 0; }
.modulos-lista {
  margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap: 0 clamp(24px, 3vw, 48px);
}
.modulos-item { padding: 18px 0 20px; border-top: 1px solid var(--line); min-width: 0; }
.modulos-item dt { margin: 0 0 6px; color: var(--ink); font-family: var(--serif); font-weight: 500; font-size: clamp(1.1875rem, 1.1rem + .35vw, 1.375rem); line-height: 1.25; letter-spacing: -.01em; }
.modulos-item dd { margin: 0; color: var(--ink-2); font-size: var(--fs-small); line-height: 1.6; max-width: 46ch; }

.campo-trampa { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.form-error { margin: 12px 0 0; font-size: var(--fs-small); color: var(--warn); }
.form-error:focus { outline: none; }
.contacto-noche .form-error { color: #F9D27A; }
.contacto-noche .form-result [data-modo] > p { margin-top: .5em; }

.contacto-noche .contacto-hoja .check .link { color: var(--acento-noche); }
.contacto-noche .contacto-hoja .check .link:hover { color: #fff; }
.contacto-novedades { margin: 14px 0 0; }

.hero-texto { container-type: inline-size; min-width: 0; }
.hero-titular:has(.linea) { max-width: none; }
.hero-titular .linea { white-space: nowrap; }
@supports (width: 1cqi) {
  .hero-titular:has(.linea) { font-size: min(clamp(3rem, 1.8rem + 3.8vw, 4.75rem), calc(100cqi / 8)); }
}

#contenido.seg-vision .trayectoria-ruta { stroke: rgba(240, 179, 154, .24); }
#contenido.seg-vision .trayectoria-luz { filter: drop-shadow(0 0 6px rgba(240, 179, 154, .45)); }
#contenido.seg-vision .trayectoria-flecha { stroke: var(--vis-claro); }
#contenido.seg-vision .trayectoria-punta { color: var(--vis-claro); }
#contenido.seg-vision .trayectoria-marca { background: var(--vis-hondo); box-shadow: 0 0 0 4px rgba(154, 63, 31, .35); }
#contenido.seg-vision .etapa-marca { border-color: rgba(240, 179, 154, .55); }
#contenido.seg-vision .etapa.es-alcanzada .etapa-marca { background: var(--vis-claro); border-color: var(--vis-claro); box-shadow: 0 0 0 5px rgba(240, 179, 154, .18); }
#contenido.seg-vision .etapa.es-alcanzada .etapa-cristal { border-color: rgba(240, 179, 154, .34); box-shadow: inset 0 1px 0 rgba(255, 255, 255, .16), 0 30px 60px -24px rgba(196, 85, 46, .35); }
#contenido.seg-vision .etapa-num { color: var(--vis-claro); }
#contenido.seg-vision .camino-punta { color: var(--vis-tinta); }

.tabla-limite .tarea-grupo th {
  width: auto; padding: 30px 0 10px; border-top: 0;
  font-family: var(--mono); font-size: var(--fs-meta); font-weight: 500;
  letter-spacing: .06em; text-transform: uppercase; color: rgba(247, 247, 251, .66);
}
.tabla-limite tbody:first-of-type .tarea-grupo th { padding-top: 6px; }
.tabla-limite tbody tr.tarea-grupo:hover { background: none; }
@media (max-width: 720px) {
  .tabla-limite .tarea-grupo { border-top: 0; padding-block: 22px 0; }
}

.tabla-fuentes td:last-child { width: 24%; }
.fuentes .lamina-pie .link { color: var(--acento-noche); }
.fuentes .lamina-pie .link:hover { color: #fff; }

.tabla-noche.tabla-fuentes tbody th { color: #fff; }

.limites-lista { grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); }

.cabecera-con-mapa > .container { display: grid; row-gap: clamp(40px, 6vw, 64px); }
@media (min-width: 1100px) {
  .cabecera-con-mapa > .container { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: clamp(32px, 4vw, 64px); align-items: start; }
}
.mapa-vertical {
  --notas: 180px; --guia: 12px;
  container-type: size; height: 290px;
  display: flex; justify-content: center;
}
@media (min-width: 700px) { .mapa-vertical { --notas: 216px; --guia: 20px; height: 460px; } }
@media (min-width: 1100px) { .mapa-vertical { --notas: 232px; height: clamp(480px, 41vw, 600px); justify-content: flex-end; } }
.mapa-dibujo {
  position: relative; flex: none; margin-right: var(--notas);
  width: min(calc(100cqh * var(--proporcion)), calc(100cqw - var(--notas)));
  height: min(100cqh, calc((100cqw - var(--notas)) / var(--proporcion)));
}
.mapa-dibujo > svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.mapa-dibujo path { vector-effect: non-scaling-stroke; }
.mapa-esquina { fill: none; stroke: rgba(247, 247, 251, .42); stroke-width: 1; }
.mapa-arista { fill: none; stroke: rgba(247, 247, 251, .2); stroke-width: 1; }
.mapa-guia { fill: none; stroke: rgba(247, 247, 251, .34); stroke-width: 1; }
.mapa-plano { fill: rgba(255, 255, 255, .03); stroke: rgba(247, 247, 251, .55); stroke-width: 1; }
.mapa-plano.es-marcas { fill: rgba(158, 211, 230, .08); stroke: #9ED3E6; stroke-width: 1.25; }
.mapa-publicacion { fill: rgba(247, 247, 251, .34); }
.mapa-reticula { fill: none; stroke: rgba(247, 247, 251, .1); stroke-width: 1; }
.mapa-celda { fill: #9ED3E6; }
.mapa-celda.es-medio { fill-opacity: .62; }
.mapa-celda.es-bajo { fill-opacity: .34; }
.mapa-foco { fill: none; stroke: #9ED3E6; stroke-width: 1; }
.mapa-barrido { fill: none; stroke: #9ED3E6; stroke-width: 1.25; opacity: 0; }
.mapa-punto { fill: rgba(158, 211, 230, .45); }
.mapa-traza { fill: none; stroke: rgba(158, 211, 230, .55); stroke-width: 1; stroke-dasharray: 1.5 4; }
.mapa-origen, .mapa-llegada, .mapa-nodo { fill: #9ED3E6; }
.es-medio > .mapa-llegada { fill-opacity: .72; }
.es-bajo > .mapa-llegada { fill-opacity: .48; }
.mapa-notas { position: absolute; top: 0; bottom: 0; left: 100%; width: var(--notas); margin: 0; padding: 0; list-style: none; }
.mapa-notas li { position: absolute; left: 0; right: 0; margin-top: -9px; padding-left: calc(var(--guia) + 10px); display: grid; gap: 6px; }
.mapa-notas li::before { content: ""; position: absolute; left: 0; top: 9px; width: var(--guia); height: 1px; background: rgba(247, 247, 251, .34); }
.mapa-nota-verbo {
  font-family: var(--mono); font-size: var(--fs-meta); line-height: 18px; letter-spacing: .08em;
  text-transform: uppercase; color: rgba(247, 247, 251, .62);
}
.mapa-nota-num { color: #9ED3E6; margin-right: 6px; }
.mapa-nota-dice { font-size: .9375rem; line-height: 1.4; color: rgba(247, 247, 251, .92); text-wrap: pretty; }
.mapa-nota-dice > span { display: block; }
@media (max-width: 699px) { .mapa-nota-dice { font-size: .875rem; } }
@media (prefers-reduced-motion: no-preference) {
  .mapa-barrido { animation: mapa-barre 5.6s ease-in-out infinite; }
  .mapa-traza { animation: mapa-fluye 1.4s linear infinite; }
}
@keyframes mapa-barre {
  0% { transform: translate(0, 0); opacity: 0; }
  12%, 88% { opacity: .9; }
  100% { transform: translate(var(--bx), var(--by)); opacity: 0; }
}
@keyframes mapa-fluye { to { stroke-dashoffset: -5.5; } }
.cabecera-con-mapa .lead { text-wrap: pretty; }
@media (min-width: 1200px) { .cabecera-con-mapa .lead .linea { text-wrap: balance; } }

.pliegos-preguntas .pliego-cabeza button { grid-template-columns: auto minmax(0, 1fr) auto auto; }
.pliego-area {
  font-family: var(--mono); font-size: var(--fs-meta); letter-spacing: .06em; text-transform: uppercase;
  color: var(--ink-3); white-space: nowrap;
}
.globo-rotulo { margin: clamp(18px, 2vw, 24px) 0 0; font-family: var(--mono); font-size: var(--fs-meta); letter-spacing: .02em; color: var(--ink-3); }
.globo-rotulo + .globo-lista { margin-top: 10px; }
.globo-dicho .lead { text-wrap: pretty; }

#contenido.seg-cobertura .papel-continuo .section-head h2 em { color: var(--v-blue-ink); }

@media (max-width: 720px) {
  .compare.tabla-noche { min-width: 0; }
  .tabla-noche :is(th, td), .tabla-noche.tabla-fuentes td:last-child, .tabla-limite :is(th[scope="row"], td) { width: auto; }
  .tabla-noche thead, .tabla-noche thead tr { display: block; }
  .tabla-noche thead tr { padding-bottom: 14px; }
  .tabla-noche thead th {
    display: inline; padding: 0; white-space: nowrap;
    font-family: var(--mono); font-size: var(--fs-meta); font-weight: 400; letter-spacing: .02em; text-transform: none;
  }
  
  .tabla-noche thead th + th::before { content: "· "; }
  .tabla-noche thead th:not(:last-child)::after { content: " "; white-space: normal; }
  
  .tabla-noche thead th, .tabla-noche tr:last-child :is(th, td) { border: 0; }
}

:root {
  --perla-tope: #F9F8F6;
  --nacar: linear-gradient(162deg, rgba(255, 255, 255, .82) 0%, rgba(255, 255, 255, .54) 52%, rgba(255, 255, 255, .34) 100%);
  --nacar-alto: #FCFBF9;
}

:is(.papel-continuo, .material-continuo) .producto-pantalla {
  box-shadow: 0 1px 2px rgba(48, 35, 89, .05), 0 40px 80px -44px rgba(48, 35, 89, .34);
}

.aprende { display: grid; gap: clamp(36px, 4.4vw, 72px); align-items: center; }
.aprende-texto .lead { margin-top: 18px; max-width: 34ch; }
.aprende-lista { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--riel-fuerte); }
.aprende-lista li {
  display: grid; grid-template-columns: 2.75rem minmax(0, 1fr); column-gap: 6px;
  padding: 18px 0; border-bottom: 1px solid var(--line);
}
.aprende-num { grid-row: span 2; padding-top: 5px; font-family: var(--mono); font-size: var(--fs-meta); color: var(--ink-3); }
.aprende-lista h3 { margin: 0; font-size: 1.1875rem; line-height: 1.3; color: var(--ink); }
.aprende-lista p { margin: 4px 0 0; color: var(--ink-2); font-size: var(--fs-small); line-height: 1.55; }

.aprende-vista { position: relative; margin: 0; width: 100%; max-width: 620px; }
@media (min-width: 1000px) {
  .aprende { grid-template-columns: minmax(0, 5fr) minmax(0, 6.4fr); row-gap: clamp(56px, 5.6vw, 88px); }
  .aprende-vista { max-width: none; }
  .aprende-lista { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: clamp(28px, 3.4vw, 56px); }
  
  .aprende-lista li { grid-row: span 2; grid-template-rows: subgrid; row-gap: 0; border-bottom: 0; }
}
.aprende-vista::before {
  content: ""; position: absolute; inset: -14% -8% -16% -10%; z-index: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 58% 52% at 30% 36%, rgba(158, 211, 230, .42), transparent 70%),
    radial-gradient(ellipse 54% 50% at 76% 72%, rgba(230, 211, 166, .46), transparent 70%);
}
.aprende-vista .producto-pantalla { position: relative; z-index: 1; }
@media (max-width: 720px) { .aprende-vista::before { inset: -8% -4%; } }

/* Confirmación de la solicitud: el horario se puede elegir en el momento. */
.form-avance[hidden] { display: none; }
.form-result-agenda { display: grid; gap: 10px; justify-items: start; margin-top: clamp(24px, 3vw, 32px); padding-top: clamp(20px, 2.4vw, 28px); border-top: 1px solid var(--line-strong); }
.form-result-agenda h3 { margin: 0; }
.form-result-agenda p { margin: 0; max-width: 40em; }
.form-result-agenda .btn { margin-top: 6px; gap: 10px; }
@media (max-width: 480px) { .form-result-agenda .btn { justify-self: stretch; justify-content: center; } }
#contenido .contacto-noche .form-result-agenda h3 { color: #fff; }
.contacto-noche .form-result-agenda { border-top-color: rgba(255, 255, 255, .14); }
.form-result-agenda + .kv { margin-top: clamp(24px, 3vw, 32px); }

/* Botón de WhatsApp en Contacto: la etiqueta y el número, en dos renglones,
   para que el botón no se ensanche en pantallas angostas. */
.acceso-doble { display: grid; gap: 1px; line-height: 1.2; text-align: left; }
/* WhatsApp y correo, lado a lado; si no caben, uno debajo del otro. */
.contacto-canales { display: flex; flex-wrap: wrap; gap: 0 12px; }
.acceso-doble > small { font-size: .8125rem; font-weight: 500; letter-spacing: .02em; font-variant-numeric: tabular-nums; color: rgba(247, 247, 251, .78); }

/* Pie: la flecha de salida va atada a la última palabra (o al número de
   WhatsApp); si no caben junto al resto, pasan juntos al renglón de abajo. */
.pie-grupo .pie-nobr { white-space: nowrap; }
.pie-grupo .pie-nobr .pie-sale { display: inline-block; margin-left: 6px; vertical-align: middle; }

/* ── 2-oct-2026 · Revisión de la landing ───────────────────────────────── */

/* «Toma el control»: el cierre de Inicio con más punch. Violeta de marca
   encendido, un haz de V Blue arriba a la derecha y un toque de lavanda abajo.
   El texto va en blanco pleno: sobre el violeta el gris del CTA oscuro no
   llega a 4.5:1. El remate en cursiva, en champaña claro (≥ 4.5:1). */
.cta-final.cta-control {
  background:
    radial-gradient(circle at 94% 2%, rgba(89, 184, 217, .50), transparent 34%),
    radial-gradient(circle at 4% 108%, rgba(196, 181, 253, .32), transparent 54%),
    linear-gradient(135deg, #460BBA 0%, #6211FF 56%, #7C3DFF 100%);
}
.seccion-cierre .cta-final.cta-control { box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .22), 0 30px 70px -30px rgba(70, 11, 186, .8); }
.cta-final.cta-control p { color: #fff; }
.cta-final.cta-control h2 em, #contenido .cta-final.cta-control h2 em { color: var(--champagne-300); }

/* «Saber, es poder demostrarlo»: el panel real, a todo el ancho de la
   sección y sin pie de foto (la vista base reserva una columna para él). */
.declaracion .vista-panel { display: block; margin-top: clamp(28px, 3.4vw, 48px); margin-bottom: clamp(36px, 4.4vw, 64px); }

/* Medios de pago del pie. Los logos son a color y de fondo transparente, y
   los de Inbursa, HSBC y Openpay son oscuros: van sobre una placa clara. */
.pie-pagos {
  display: flex; flex-wrap: wrap; align-items: stretch; gap: 12px 16px;
  margin-top: clamp(32px, 4vw, 48px);
}
.pie-pago {
  display: grid; gap: 10px; align-content: center; justify-items: start;
  padding: 14px 18px 16px; border-radius: var(--r-md);
  background: #FFFFFF; color: var(--ink-2);
}
.pie-pago-rotulo { margin: 0; font-size: .8125rem; line-height: 1.3; color: var(--ink-2); }
.pie-pago img { display: block; height: 30px; width: auto; max-width: 100%; }
.pie-pago-openpay { margin-left: auto; }
.pie-pago-openpay img { height: 40px; }
.pie-pago-openpay a { font-size: .8125rem; color: var(--primary-3); text-underline-offset: 3px; }
.pie-pago-openpay a:hover { color: var(--primary); }
@media (max-width: 899px) {
  .pie-pago { flex: 1 1 100%; }
  .pie-pago-openpay { margin-left: 0; }
}
.pie-texto { display: grid; gap: 10px; }
.pie-texto p { margin: 0; }
.pie-marcas { color: rgba(247, 247, 251, .72); }

/* ── 2-oct-2026 · Renders, ejemplo de principio a fin y membresía ───────── */

/* Renders isométricos (cristal sobre noche): la capa editorial. Un marco oscuro
   con el mismo radio que las vistas del producto. */
.render {
  margin: 0; min-width: 0; overflow: hidden; background: #050507;
  border: 1px solid rgba(255, 255, 255, .08); border-radius: var(--r-xl);
  box-shadow: 0 30px 70px -40px rgba(4, 3, 10, .75);
}
.render img { display: block; width: 100%; height: auto; }

/* Motor VDM®: el encabezado lleva su render a la derecha. */
.page-head > .container:has(.cabecera-render) { display: grid; gap: clamp(32px, 4vw, 56px); align-items: center; }
.cabecera-render { min-width: 0; }
@media (min-width: 1000px) {
  .page-head > .container:has(.cabecera-render) { grid-template-columns: minmax(0, 6fr) minmax(0, 6fr); column-gap: clamp(40px, 5vw, 80px); }
}

/* Motor VDM®: cada tarjeta abre con su render, a ras del borde. */
.motor-paso { --motor-pad: clamp(22px, 2.4vw, 32px); padding: var(--motor-pad); }
.motor-paso > .producto-pantalla.producto-compacta {
  margin: calc(-1 * var(--motor-pad)) calc(-1 * var(--motor-pad)) 6px;
  border: 0; border-bottom: 1px solid var(--line);
  border-radius: calc(var(--r-lg) - 1px) calc(var(--r-lg) - 1px) 0 0; box-shadow: none;
}
/* Variante compacta de la vista del producto: la barra solo lleva «Vista de
   ejemplo» y «Ampliar». */
.producto-compacta .producto-barra { min-height: 38px; padding: 0 4px 0 12px; }
.producto-compacta .producto-ampliar { min-height: 34px; padding: 0 10px; }

/* Inicio: «Más precisión» lleva el comparativo a la derecha. */
.lamina-rejilla { display: grid; gap: clamp(28px, 4vw, 48px); align-items: center; }
.lamina-rejilla .section-head { margin-bottom: 0; }
.lamina-render { border-color: rgba(255, 255, 255, .14); }
@media (min-width: 1000px) {
  .lamina-rejilla { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); column-gap: clamp(40px, 5vw, 80px); }
}

/* ── 6-oct-2026 · Renders nuevos ───────────────────────────────────────── */

/* Motor VDM®: el render de cada tarjeta va a ras del borde, como iba la vista. */
.motor-paso > .render {
  margin: calc(-1 * var(--motor-pad)) calc(-1 * var(--motor-pad)) 6px;
  border: 0; border-bottom: 1px solid var(--line);
  border-radius: calc(var(--r-lg) - 1px) calc(var(--r-lg) - 1px) 0 0; box-shadow: none;
}
/* Render a todo lo ancho (Módulos, Keywords) y los del
   ejemplo de principio a fin: recortados en franja, para que no se coman la
   sección ni el escenario fijo. El motivo de cada render va al centro. */
.render:is(.modulo-render, .ejemplo-render) img { height: 100%; object-fit: cover; }
.modulo-render { aspect-ratio: 21 / 9; margin-bottom: clamp(28px, 3.6vw, 48px); border-color: var(--line); box-shadow: none; }
.ejemplo-render { aspect-ratio: 16 / 7; margin-bottom: 16px; border-color: var(--line); box-shadow: none; }
/* En el escenario fijo, la franja cede alto para que la escena más alta
   (~500 px) quepa bajo el menú en la ventana. */
@media (min-width: 1000px) {
  .caso.es-vivo .caso-escena .ejemplo-render { aspect-ratio: auto; height: clamp(96px, calc(100vh - 700px), 260px); }
}
/* Inicio, «Cada quien…»: la imagen completa, sin recorte, centrada y con tope de
   ancho para que no ocupe toda la pantalla. */
.como-render { max-width: 880px; margin: 0 auto clamp(28px, 3.6vw, 48px); border-color: var(--line); box-shadow: none; }
@media (max-width: 599px) {
  .modulo-render { aspect-ratio: 4 / 3; }
}

/* Pie: la membresía y los medios de pago comparten renglón. El logo de la
   AMPPI trae el lema en blanco, hecho para fondo oscuro: va sin placa. */
.pie-sellos { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px clamp(24px, 3.4vw, 48px); margin-top: clamp(32px, 4vw, 48px); }
.pie-sellos .pie-pagos { margin-top: 0; flex: 0 1 auto; }
.pie-sellos .pie-pago img { height: 26px; }
.pie-sellos .pie-pago-openpay { margin-left: 0; }
.pie-sellos .pie-pago-openpay img { height: 40px; }
.pie-miembro { display: grid; gap: 10px; align-content: center; justify-items: start; }
.pie-miembro .pie-pago-rotulo { color: rgba(247, 247, 251, .72); }
.pie-miembro img { display: block; height: 76px; width: auto; max-width: 100%; }
@media (max-width: 899px) { .pie-miembro img { height: 64px; } }

/* ── Un ejemplo, de principio a fin: las escenas ───────────────────────────
   HTML y SVG, sin imágenes: el texto se lee y escala. Vocabulario del
   producto; el semáforo del manual (≥ 80 % alto, 65–79 % medio, < 65 % bajo). */
.ejemplo-escena { min-width: 0; }
.ej-ventana {
  min-width: 0; overflow: hidden; background: #fff; color: var(--ink-2);
  border: 1px solid var(--line-strong); border-radius: var(--r-xl);
  box-shadow: 0 1px 2px rgba(48, 35, 89, .05), 0 40px 80px -44px rgba(48, 35, 89, .34);
}
.ej-barra {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 2px 16px;
  min-height: 48px; padding: 8px 16px;
  background: linear-gradient(180deg, #F9F8F6 0%, #F2F1EE 100%); border-bottom: 1px solid var(--line);
}
.ej-barra-titulo { font: 500 .8125rem/1.35 var(--sans); color: var(--ink); }
.ej-muestra { font-family: var(--mono); font-size: .8125rem; color: var(--ink-3); }
.ej-cuerpo { display: grid; gap: clamp(14px, 1.6vw, 20px); padding: clamp(16px, 2vw, 24px); }
.ej-rotulo { font-family: var(--mono); font-size: .8125rem; letter-spacing: .02em; color: var(--ink-3); }
.ej-meta { font-size: .8125rem; color: var(--ink-3); }
.ej-nota { margin: 0; font-size: .875rem; line-height: 1.5; color: var(--ink-3); }
.ej-nombre { display: block; font-size: 1.125rem; font-weight: 600; line-height: 1.2; letter-spacing: -.01em; color: var(--ink); }
.ej-par-etiqueta { font-family: var(--mono); font-size: .8125rem; color: var(--ink-3); }

.ej-logo {
  display: inline-grid; place-items: center; flex: none; width: 56px; height: 56px; padding: 9px;
  border: 1px solid var(--line-strong); border-radius: var(--r-lg); background: #F7F7FB; color: var(--ink);
}
.ej-logo svg { width: 100%; height: 100%; }
.ej-logo-grande { width: 96px; height: 96px; padding: 14px; }
.ej-logo-chico, .ej-logo-mini { width: 52px; height: 52px; padding: 8px; }
.ej-logo-mini svg { width: 56%; height: 56%; }
.ej-borroso svg { filter: blur(1.2px) contrast(.8); opacity: .8; }

.ej-dial { position: relative; width: 108px; height: 108px; flex: none; }
.ej-dial svg { width: 100%; height: 100%; }
.ej-dial-pista { fill: none; stroke: var(--line); stroke-width: 7; }
.ej-dial-arco { fill: none; stroke-width: 7; stroke-linecap: round; stroke-dasharray: var(--c); stroke-dashoffset: var(--off); }
.ej-dial.es-alto .ej-dial-arco { stroke: var(--bad); }
.ej-dial.es-medio .ej-dial-arco { stroke: var(--warn-dot); }
.ej-dial.es-bajo .ej-dial-arco { stroke: var(--ok); }
.ej-dial-valor { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; line-height: 1.1; }
.ej-dial-valor strong { font-size: 1.5rem; font-weight: 700; letter-spacing: -.02em; color: var(--ink); font-variant-numeric: tabular-nums; }
.ej-dial-valor small { font-size: .8125rem; color: var(--ink-3); }
.ej-nivel { display: inline-flex; align-items: center; gap: 7px; padding: 4px 11px 4px 9px; border-radius: 999px; font-size: .8125rem; font-weight: 600; white-space: nowrap; }
.ej-nivel::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.ej-nivel.es-alto { color: #8F1F23; background: rgba(178, 42, 46, .10); }
.ej-nivel.es-medio { color: #6B4B00; background: rgba(249, 188, 13, .22); }
.ej-nivel.es-bajo { color: #14633F; background: rgba(25, 120, 87, .12); }
.ej-resultado { display: grid; gap: 8px; justify-items: center; align-content: start; text-align: center; }
.ej-resultado .ej-nota { max-width: 22ch; }

/* 1 · Tu marca, vigilada */
.ej-marca { display: flex; align-items: center; gap: 14px; }
.ej-marca > div { display: grid; gap: 2px; }
.ej-sws { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.ej-sws li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 14px; border: 1px solid var(--line); border-radius: var(--r-md); font-size: .9375rem; color: var(--ink-2); }
.ej-sw { display: inline-flex; align-items: center; gap: 10px; font-size: .8125rem; font-weight: 600; color: var(--ink); }
.ej-sw-pista { position: relative; width: 36px; height: 20px; border-radius: 999px; background: var(--primary); }
.ej-sw-perilla { position: absolute; top: 2px; right: 2px; width: 16px; height: 16px; border-radius: 50%; background: #fff; }
.ej-campo { display: grid; gap: 8px; justify-items: start; }
.ej-campo-caja { display: inline-flex; align-items: baseline; gap: 8px; min-width: 140px; padding: 9px 14px; border: 1px solid var(--line-strong); border-radius: var(--r-md); background: #fff; font-size: .9375rem; color: var(--ink-3); }
.ej-campo-caja strong { font-family: var(--mono); font-size: 1rem; color: var(--ink); }

/* 2 · Se publica una solicitud */
.ej-lectura { margin: 0; font-size: .9375rem; color: var(--ink-2); }
.ej-gaceta { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; position: relative; }
.ej-gaceta::after {
  content: ""; position: absolute; left: -4px; right: -4px; top: 0; height: 40px; border-radius: 10px; opacity: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(89, 184, 217, 0), rgba(89, 184, 217, .30), rgba(89, 184, 217, 0));
}
.ej-sol { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: 4px 12px; padding: 10px 14px; border: 1px solid var(--line); border-radius: var(--r-md); background: #fff; }
.ej-sol-nombre { font-weight: 500; letter-spacing: -.005em; color: var(--ink-3); }
.ej-sol.es-coincide { padding: 14px; border-color: #59B8D9; background: var(--v-blue-bg); box-shadow: 0 0 0 4px rgba(89, 184, 217, .16); }
.ej-sol.es-coincide .ej-sol-nombre { font-weight: 600; font-size: 1.0625rem; color: var(--ink); }
.ej-sol-detalle { grid-column: 1 / -1; font-size: .9375rem; color: var(--ink-2); }
.ej-sol-chips { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px; }
.ej-chip { display: inline-flex; align-items: baseline; gap: 6px; padding: 3px 10px; border: 1px solid var(--line-strong); border-radius: 999px; background: #fff; font-size: .8125rem; color: var(--ink-2); }
.ej-chip strong { font-variant-numeric: tabular-nums; color: var(--ink); }

/* 3 · Cómo suena */
.ej-dos { grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: clamp(16px, 2.4vw, 28px); }
.ej-mapa { display: grid; gap: 12px; align-content: start; min-width: 0; }
.ej-par { display: grid; gap: 6px; }
.ej-letras { display: flex; flex-wrap: wrap; gap: 4px; }
.ej-letra { width: 28px; height: 34px; display: grid; place-items: center; border: 1px solid var(--line-strong); border-radius: 6px; background: #F7F7FB; font: 600 .9375rem/1 var(--mono); color: var(--ink-3); }
.ej-letra.coincide { background: var(--v-blue-bg); border-color: #59B8D9; color: #0E4A5E; }
.ej-espacio { width: 12px; }

/* 4 · Cómo se ve */
.ej-logos { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }
.ej-ficha { margin: 0; display: grid; gap: 8px; justify-items: center; text-align: center; }
.ej-ficha figcaption { display: grid; gap: 1px; }
.ej-ficha strong { font-size: .9375rem; color: var(--ink); }
.ej-vs { color: var(--ink-3); font-size: 1.5rem; line-height: 1; }
.ej-logos .ej-resultado { margin-left: auto; }
.ej-etiquetas { display: grid; gap: 8px; }
.ej-fila { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.ej-fila .ej-par-etiqueta { flex: none; width: 100px; }
.ej-etiqueta { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border: 1px solid var(--line-strong); border-radius: 999px; background: #F7F7FB; font-size: .8125rem; color: var(--ink-2); }
.ej-etiqueta.es-comun { background: rgba(25, 120, 87, .12); border-color: rgba(25, 120, 87, .5); color: #14633F; font-weight: 600; }
.ej-copia { display: grid; gap: 10px; padding-top: 14px; border-top: 1px solid var(--line); }
.ej-copias { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; }
.ej-copias figure { margin: 0; display: grid; justify-items: center; gap: 6px; }
.ej-copias figcaption { font-size: .8125rem; color: var(--ink-3); }
.ej-copias .ej-nota { max-width: 20ch; }

/* 5 · Por qué se parecen */
.ej-expedientes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.ej-exp { display: grid; gap: 4px; padding: 12px 14px; border: 1px solid var(--line); border-radius: var(--r-md); background: #FBFBFD; }
.ej-ia { display: grid; gap: 8px; padding: 14px 16px; border: 1px solid #59B8D9; border-radius: var(--r-md); background: var(--v-blue-bg); }
.ej-ia-rotulo { display: inline-flex; align-items: center; gap: 7px; font-size: .8125rem; font-weight: 600; color: #0E4A5E; }
.ej-ia ul { margin: 0; padding: 0 0 0 1.1em; display: grid; gap: 4px; font-size: .9375rem; line-height: 1.5; color: var(--ink-2); }
.ej-opinion { display: grid; gap: 8px; }
.ej-opinion-fila { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; font-size: .9375rem; color: var(--ink-2); }
.ej-botones { display: inline-flex; flex-wrap: wrap; gap: 8px; }
.ej-boton { display: inline-flex; align-items: center; min-height: 32px; padding: 0 12px; border: 1px solid var(--line-strong); border-radius: var(--r-sm); background: #fff; color: var(--ink-2); font-size: .8125rem; font-weight: 500; }
.ej-boton.es-marcado { background: var(--ink); border-color: var(--ink); color: #fff; }

/* 6 · Decides con tu equipo */
.ej-asunto { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px; padding-bottom: 14px; border-bottom: 1px solid var(--line); }
.ej-kv { gap: 10px 18px; }
.ej-kv dd { color: var(--ink); }
.ej-acciones { display: grid; gap: 8px; padding-top: 14px; border-top: 1px solid var(--line); }

@media (max-width: 720px) {
  .ej-muestra { font-size: .75rem; }
  .ej-dos { grid-template-columns: minmax(0, 1fr); }
  .ej-expedientes { grid-template-columns: minmax(0, 1fr); }
  .ej-logos .ej-resultado { margin-left: 0; width: 100%; grid-auto-flow: column; justify-content: start; justify-items: start; align-items: center; }
}

/* Movimiento: sólo en el escenario fijo, y sólo en la escena actual. */
@media (prefers-reduced-motion: no-preference) {
  .caso.es-vivo .ejemplo-escena.es-actual .ej-letra.coincide { animation: ej-enciende 460ms var(--ease) both; animation-delay: calc(360ms + var(--i) * 120ms); }
  .caso.es-vivo .ejemplo-escena.es-actual .ej-dial-arco { animation: ej-arco 1000ms var(--ease) 300ms both; }
  .caso.es-vivo .ejemplo-escena.es-actual .ej-gaceta::after { animation: ej-barrido 1400ms var(--ease-barrido) 250ms both; }
  .caso.es-vivo .ejemplo-escena.es-actual .ej-sol.es-coincide { animation: ej-resalta 700ms var(--ease) 1150ms both; }
  .caso.es-vivo .ejemplo-escena.es-actual .ej-etiqueta.es-comun { animation: ej-resalta 700ms var(--ease) 700ms both; }
  .caso.es-vivo .ejemplo-escena.es-actual .ej-boton.es-marcado { animation: ej-marca 520ms var(--ease) 600ms both; }
}
@keyframes ej-enciende { from { background: #F7F7FB; border-color: var(--line-strong); color: var(--ink-3); transform: translateY(3px); } }
@keyframes ej-arco { from { stroke-dashoffset: var(--c); } }
@keyframes ej-barrido { from { top: 0; opacity: 0; } 15% { opacity: 1; } 85% { opacity: 1; } to { top: calc(100% - 40px); opacity: 0; } }
@keyframes ej-resalta { from { background: #fff; border-color: var(--line-strong); box-shadow: none; } }
@keyframes ej-marca { from { background: #fff; border-color: var(--line-strong); color: var(--ink-2); } }

/* ─────────────────────────────────────────────────────────────────────────
   Revisión del 3-oct-2026 · un documento por página
   ───────────────────────────────────────────────────────────────────────── */

/* Prosa editorial. Cada párrafo es una idea, y el paso entre ideas supera el
   doble del interlineado para que la lectura respire. */
.prosa p { margin: 0; }
.prosa p + p { margin-top: 1.6em; }

/* El dicho: la frase que abre o cierra un bloque. Pesa más que el cuerpo y
   menos que un h2, así que no compite con el título de la sección. */
.seccion-dicho {
  margin: 0 0 clamp(28px, 3vw, 40px);
  font-size: var(--fs-h3); font-weight: 600; line-height: 1.3;
  letter-spacing: -.01em; color: var(--ink); max-width: 480px; text-wrap: balance;
}
.seccion-cierre-dicho {
  margin: clamp(28px, 3vw, 40px) 0 0;
  font-size: var(--fs-lead); font-weight: 600; line-height: 1.4;
  letter-spacing: -.015em; color: var(--ink); max-width: 520px; text-wrap: balance;
}
.seccion-dicho em, .seccion-cierre-dicho em { font-style: normal; color: var(--primary); }
#contenido.seg-vision :is(.seccion-dicho, .seccion-cierre-dicho) em { color: var(--vis-hondo); }
#contenido.seg-empresas :is(.seccion-dicho, .seccion-cierre-dicho) em { color: var(--emp-hondo, var(--primary)); }
#contenido.seg-firmas :is(.seccion-dicho, .seccion-cierre-dicho) em { color: var(--fir-hondo, var(--primary)); }

/* La semblanza de cada fundador, bajo su frase y sobre su nombre. */
.voice-bio { margin: 0; color: var(--ink-3); font-size: var(--fs-small); line-height: 1.55; }

/* El camino, ahora como relato: cada año trae lo que ocurrió, la frase que le
   da sentido y el cuerpo. El número y el título siguen al eje —alineados a la
   línea central—, y la prosa se lee de izquierda a derecha en los dos lados:
   un párrafo de tres renglones alineado a la derecha no se lee. */
.es-relato .camino-que {
  margin-top: 12px; max-width: 380px;
  color: var(--ink); font-size: var(--fs-h3); font-weight: 600;
  line-height: 1.25; letter-spacing: -.01em;
}
.es-relato .camino-lema {
  display: block; margin-top: 10px; max-width: 380px;
  font-family: var(--serif); font-style: italic; font-size: var(--fs-lead);
  line-height: 1.4; color: var(--vis-tinta, var(--ink-3));
}
.es-relato .camino-cuerpo { margin-top: 16px; max-width: 420px; text-align: left; }
.es-relato .camino-cuerpo p { margin: 0; color: var(--ink-3); font-size: var(--fs-small); line-height: 1.55; }
.es-relato .camino-cuerpo p + p { margin-top: .9em; }
.es-relato .camino-hito { min-height: 0; padding-bottom: clamp(40px, 5vw, 72px); }
.es-relato .camino-hito:nth-child(odd) :is(.camino-que, .camino-lema, .camino-cuerpo) { margin-left: auto; }
@media (max-width: 860px) {
  .es-relato .camino-hito:nth-child(odd) :is(.camino-que, .camino-lema, .camino-cuerpo) { margin-left: 0; }
  .es-relato :is(.camino-que, .camino-lema, .camino-cuerpo) { max-width: none; }
}

/* ── Módulos: la nota destacada que cierra Procedimientos. ── */
.modulo-nota {
  margin-top: clamp(28px, 3vw, 40px); padding: clamp(20px, 2.4vw, 32px);
  background: var(--bg-2); border: 1px solid var(--line); border-radius: var(--r-lg);
}
.modulo-nota h3 { margin: 0 0 10px; font-size: var(--fs-lead); font-weight: 700; letter-spacing: -.015em; }
.modulo-nota p { margin: 0; color: var(--ink-2); max-width: 70ch; }

/* ── Cobertura: quién debe intervenir, junto al límite que le toca. ── */
.limite-quien { font-weight: 400; color: var(--ink-3); }

/* ── Planes: el resumen de los dos planes en el encabezado y la frase que
      invita a comparar. ── */
.planes-resumen {
  margin: clamp(28px, 3vw, 40px) 0 0; display: grid; gap: clamp(20px, 2.4vw, 32px);
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
}
.planes-resumen-item { border-top: 1px solid var(--riel-fuerte, rgba(247,247,251,.22)); padding-top: 16px; }
.planes-resumen dt { font-size: var(--fs-lead); font-weight: 700; letter-spacing: -.015em; margin-bottom: 8px; }
.planes-resumen dt span { font-weight: 400; }
.planes-resumen dd { margin: 0; font-size: var(--fs-small); line-height: 1.55; }
.planes-invita { margin: clamp(28px, 3vw, 40px) 0 0; font-weight: 600; max-width: 560px; }

/* ── Planes: el poder de cada plan, donde antes iba el núcleo compartido.
      Corporativo pesa más, y se ve. ── */
.poderes { display: grid; gap: clamp(20px, 2.4vw, 32px); grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
.poder {
  display: flex; flex-direction: column; gap: 14px;
  padding: clamp(24px, 3vw, 40px); border-radius: var(--r-lg);
  border: 1px solid rgba(247, 247, 251, .16); background: rgba(247, 247, 251, .035);
}
.poder.es-mayor { border-color: rgba(230, 211, 166, .42); background: rgba(230, 211, 166, .07); }
.poder h3 { margin: 0; font-size: var(--fs-h3); font-weight: 700; letter-spacing: -.015em; }
.poder p { margin: 0; font-size: var(--fs-small); line-height: 1.55; }
.poder-para { margin-top: auto; padding-top: 6px; color: rgba(247, 247, 251, .7); font-style: italic; }

/* ── Firmas: una tabla por especialidad, con el mismo peso las tres. Marcas
      tiene vistas reales del producto y patentes y derechos de autor no;
      igualar el formato evita que la ausencia de captura se lea como un
      módulo más flojo. ── */
.especialidades { display: grid; gap: clamp(40px, 5vw, 72px); }
.especialidad { display: grid; gap: 14px; }
.especialidad h3 { margin: 0; font-size: var(--fs-h3); font-weight: 700; letter-spacing: -.015em; max-width: 44ch; }
.especialidad > p { margin: 0; color: var(--ink-2); max-width: 70ch; }
.especialidad-tabla { margin-top: 6px; }
.especialidad-tabla tbody th { width: auto; }
.especialidad-pie { margin: 0; font-size: var(--fs-meta); color: var(--ink-3); }

/* ── Firmas: los datos de cada ejemplo, dentro de su panel. ── */
.ejemplo-datos { margin-top: 18px; }
.tablero-panel .especialidad-pie { margin-top: 14px; color: rgba(247, 247, 251, .62); }
.tablero-claro .tablero-panel .especialidad-pie { color: var(--ink-3); }

/* ── Solicitar demo: el asterisco de los campos obligatorios y su nota. ── */
.obligatorio { color: var(--acento-noche, #9ED3E6); font-weight: 700; margin-left: 2px; }
.form-obligatorios { margin: 14px 0 0; font-size: var(--fs-meta); color: var(--ink-3); }
.contacto-hoja .form-obligatorios { color: var(--ink-3); }
.contacto-baja { margin: clamp(20px, 2.4vw, 28px) 0 0; }
.hint p { margin: 0; }
.hint p + p { margin-top: .6em; }

/* ── Correcciones tras ver las páginas en Chrome (3-oct-2026) ── */

/* En un teléfono, una tabla de cinco columnas dentro de un contenedor con
   desplazamiento se lee cortada y nada avisa de que se puede correr. Cada fila
   pasa a ser un bloque y cada dato lleva el rótulo de su columna. Sólo las
   tablas de especialidad: son las únicas que se leen dato por dato. */
@media (max-width: 680px) {
  .especialidad-tabla { min-width: 0; }
  .especialidad-tabla thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .especialidad-tabla tr { display: block; border-top: 1px solid var(--line); padding: 16px 0; }
  .especialidad-tabla tr:first-child { border-top: 0; }
  .especialidad-tabla :is(th, td) { display: block; border: 0; padding: 0; width: auto; }
  .especialidad-tabla tbody th { font-size: var(--fs-lead); margin-bottom: 10px; }
  .especialidad-tabla td { display: grid; grid-template-columns: minmax(0, 7.5em) minmax(0, 1fr); gap: 4px 14px; padding: 3px 0; }
  .especialidad-tabla td::before { content: attr(data-rotulo); color: var(--ink-3); font-size: var(--fs-meta); }
}

/* El lema de cada año del camino cabía justo: al partirse dejaba «En» o «las»
   colgando al final del renglón. Más medida, y reparto parejo si parte. */
.es-relato .camino-lema { max-width: 460px; text-wrap: balance; }

/* Corporativo tiene que verse mayor, no igual: el documento pide que el plan
   grande se exponencie, no que se minimice. */
.poder.es-mayor {
  border-color: rgba(230, 211, 166, .6);
  background: rgba(230, 211, 166, .1);
  box-shadow: 0 0 0 1px rgba(230, 211, 166, .2), 0 18px 48px -24px rgba(0, 0, 0, .7);
}

/* En Contacto, el párrafo que sigue al lead venía pegado a él. */
.contacto-voz .lead + p { margin-top: 1em; }

/* ── Contraste medido, no supuesto (3-oct-2026) ──
   El lema del camino iba en la terracota del DS: 4.12:1 sobre el papel, por
   debajo del 4.5 que pide AA. Pasa a la terracota honda. */
.es-relato .camino-lema { color: var(--vis-hondo, #9A3F1F); }

/* Los dichos heredaban la tinta oscura también en las secciones de noche: en
   Cobertura «El seguimiento también se anticipa» quedaba en 1.36:1, ilegible.
   Sobre fondo oscuro van en claro, y su acento en el de la noche. */
#contenido :is(.espectro, .sala, .lamina, .noche-continua) :is(.seccion-dicho, .seccion-cierre-dicho) { color: #F7F7FB; }
#contenido :is(.espectro, .sala, .lamina, .noche-continua) :is(.seccion-dicho, .seccion-cierre-dicho) em { color: var(--acento-noche, #C4B5FD); }

/* La tarjeta de Corporativo ya no cierra con una frase propia: lo que la
   cerraba era una nota de posicionamiento del documento, no texto para el
   cliente. El «Para…» vuelve a ser el último renglón y se ancla abajo, para
   que las dos tarjetas lo alineen aunque midan distinto. */
.poder.es-mayor .poder-para { margin-top: auto; }

/* La tarjeta de cierre de Inicio tenía ~489 px vacíos a la derecha de un
   bloque morado a sangre. El intento previo con `TramaViva` (`canvas` que
   redibuja 30 fps) colgó el navegador y hubo que revertirlo. Esta versión
   es estática: una trama diagonal como SVG dentro de un pseudo-elemento,
   con máscara de gradiente para desvanecerse hacia el texto. Cero JS, cero
   lienzo, cero animación — es un fondo que el navegador dibuja una vez. */
.cta-control { position: relative; isolation: isolate; }
.cta-control > * { position: relative; z-index: 1; max-width: 34ch; }
.cta-control::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  border-radius: inherit;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 320'><g stroke='%23F0DFB8' stroke-width='1.4' stroke-linecap='round' opacity='.42'><line x1='-80' y1='400' x2='400' y2='-80'/><line x1='-40' y1='400' x2='400' y2='-40'/><line x1='0' y1='400' x2='400' y2='0'/><line x1='40' y1='400' x2='400' y2='40'/><line x1='80' y1='400' x2='400' y2='80'/><line x1='120' y1='400' x2='400' y2='120'/><line x1='160' y1='400' x2='400' y2='160'/><line x1='200' y1='400' x2='400' y2='200'/><line x1='240' y1='400' x2='400' y2='240'/><line x1='280' y1='400' x2='400' y2='280'/><line x1='320' y1='400' x2='400' y2='320'/></g></svg>");
  background-size: 360px 360px;
  background-position: right -30px top -20px;
  background-repeat: no-repeat;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, transparent 42%, #000 68%);
          mask-image: linear-gradient(90deg, transparent 0%, transparent 42%, #000 68%);
}
