/* Tipografías alojadas en este servidor (licencia SIL OFL, textos en /fonts/). Variables: un archivo por familia cubre todos los pesos. */
@font-face {
  font-family: "Outfit";
  src: url("fonts/outfit-latin-wght-normal.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Inter";
  src: url("fonts/inter-latin-wght-normal.woff2") format("woff2");
  font-weight: 100 900;
  font-style: normal;
  font-display: swap;
}
/* Acceso · home · estilos v1 · 2026-10-02
   Consume solo variables de acceso-tokens-v2.css (importar antes). Sin hexadecimales sueltos salvo blanco del botón.
   Tipografía: Outfit (display, h1, h2, cifras, nombres de producto) e Inter (todo lo demás). */

/* Fuentes: Outfit e Inter se cargan desde Google Fonts en el <head> de cada página. */

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }

body {
  margin: 0;
  font-family: var(--ac-font-text);
  font-size: var(--ac-size-body);
  line-height: var(--ac-lh-body);
  color: var(--ac-text);
  background: var(--ac-page);
  text-rendering: optimizeLegibility;
}

h1, h2, h3, h4, p, li, a, summary { overflow-wrap: anywhere; }
p, ul, ol, h1, h2, h3, h4 { margin: 0; }
p + p { margin-top: var(--ac-space-4); }
img, svg { display: block; max-width: 100%; }

h1, h2 {
  font-family: var(--ac-font-brand);
  font-weight: 700;
  line-height: var(--ac-lh-heading);
  letter-spacing: var(--ac-ls-heading);
}
h1 { font-size: var(--ac-size-display); line-height: var(--ac-lh-display); font-weight: 800; }
h2 { font-size: var(--ac-size-h2); }
h3 { font-family: var(--ac-font-text); font-size: var(--ac-size-h4); font-weight: 600; line-height: var(--ac-lh-heading); }

a {
  color: var(--ac-link);
  text-decoration-thickness: 0.08em;
  text-underline-offset: 0.18em;
}
a:hover { color: var(--ac-link-hover); }

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

.container { width: min(var(--ac-container), 100% - 2 * var(--ac-gutter)); margin-inline: auto; }
.measure { max-width: var(--ac-measure); }

.skip-link {
  position: absolute; top: var(--ac-space-4); left: var(--ac-space-4); z-index: 1000;
  padding: var(--ac-space-3) var(--ac-space-4);
  color: #FFFFFF; background: var(--ac-navy);
  border-radius: var(--ac-radius-pill); font-weight: 600;
  transform: translateY(-200%);
}
.skip-link:focus { transform: translateY(0); }
.top-anchor { position: absolute; top: 0; left: 0; width: 1px; height: 1px; }

/* ---------- Botones ---------- */
.site-nav .button { white-space: nowrap; }
.button {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: var(--ac-target); padding: var(--ac-space-3) var(--ac-space-6);
  color: var(--ac-button-text); background: var(--ac-button-bg);
  border: var(--ac-border-w-strong) solid var(--ac-button-bg);
  border-radius: var(--ac-radius-pill);
  font-family: var(--ac-font-text); font-size: var(--ac-size-ui); font-weight: 600; line-height: var(--ac-lh-ui);
  text-align: center; text-decoration: none; cursor: pointer;
  transition: background var(--ac-motion) var(--ac-ease), border-color var(--ac-motion) var(--ac-ease);
}
.button:hover { color: var(--ac-button-text); background: var(--ac-button-hover); border-color: var(--ac-button-hover); }
.button:active { background: var(--ac-button-active); border-color: var(--ac-button-active); }
.ac-inverse .button:active { background: var(--ac-light); border-color: var(--ac-light); }

/* ---------- Cabecera ---------- */
.site-header {
  position: sticky; top: 0; z-index: 100;
  background: var(--ac-page);
  border-bottom: var(--ac-border-w) solid var(--ac-border);
}
.header-inner {
  width: min(1240px, 100% - 2 * var(--ac-gutter));
  min-height: 80px; margin-inline: auto;
  display: flex; align-items: center; justify-content: space-between; gap: var(--ac-space-6);
}
.logo-link { display: inline-flex; align-items: center; min-width: var(--ac-target); min-height: var(--ac-target); flex-shrink: 0; }
.logo-link img { width: 140px; height: auto; }

.site-nav > ul { display: flex; align-items: center; gap: var(--ac-space-4); margin: 0; padding: 0; list-style: none; }
.site-nav a:not(.button) {
  display: inline-flex; align-items: center; min-height: var(--ac-target);
  color: var(--ac-text); font-size: var(--ac-size-ui); font-weight: 600; text-decoration: none; white-space: nowrap;
}
.site-nav a:not(.button):hover { color: var(--ac-link); }
.site-nav a[aria-current="page"] { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.3em; }

.menu-toggle {
  display: none; align-items: center; gap: var(--ac-space-2);
  min-height: var(--ac-target); padding: var(--ac-space-2) var(--ac-space-4);
  color: var(--ac-button-text); background: var(--ac-button-bg);
  border: var(--ac-border-w-strong) solid var(--ac-button-bg); border-radius: var(--ac-radius-pill);
  font-family: var(--ac-font-text); font-size: var(--ac-size-ui); font-weight: 600; cursor: pointer;
}
.menu-toggle:hover { background: var(--ac-button-hover); border-color: var(--ac-button-hover); }
.menu-toggle-icon { position: relative; width: 1rem; height: .75rem; border-top: 2px solid currentColor; }
.menu-toggle-icon::before, .menu-toggle-icon::after { content: ""; position: absolute; left: 0; width: 1rem; border-top: 2px solid currentColor; }
.menu-toggle-icon::before { top: .25rem; }
.menu-toggle-icon::after { top: .5rem; }

/* Selector de idioma */
.language-switcher { position: relative; }
.language-toggle {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--ac-space-1);
  min-width: var(--ac-target); min-height: var(--ac-target); padding: 0 var(--ac-space-3);
  color: var(--ac-text); background: transparent;
  border: var(--ac-border-w-strong) solid transparent; border-radius: var(--ac-radius-pill);
  font-family: var(--ac-font-text); font-size: var(--ac-size-ui); font-weight: 600; cursor: pointer;
}
.language-toggle:hover { color: var(--ac-link); }
.language-menu {
  position: absolute; top: calc(100% + var(--ac-space-2)); right: 0; z-index: 200;
  min-width: 9rem; margin: 0; padding: var(--ac-space-2); list-style: none;
  background: var(--ac-page); border: var(--ac-border-w) solid var(--ac-border);
  border-radius: var(--ac-radius-card); box-shadow: var(--ac-shadow-float);
}
.language-menu[hidden] { display: none; }
.language-menu a {
  display: flex; align-items: center; min-height: var(--ac-target); padding: var(--ac-space-2) var(--ac-space-3);
  color: var(--ac-text); border-radius: var(--ac-radius-tag); font-weight: 600; text-decoration: none;
}
.language-menu a:hover { color: #FFFFFF; background: var(--ac-navy); }
.language-menu a[aria-current="page"] { color: var(--ac-blue); background: var(--ac-surface-2); }
.language-menu a[aria-current="page"]:hover { color: #FFFFFF; background: var(--ac-navy); }

/* ---------- Secciones ---------- */
/* La cabecera fija mide unos 81 px: el foco y los enlaces internos no quedan tapados al desplazarse (también con Mayús + Tab). */
html { scroll-padding-top: var(--ac-space-24); }
section { scroll-margin-top: 96px; }
.band { padding-block: clamp(3rem, 7vw, var(--ac-space-24)); }
.band--tint { background: var(--ac-surface-2); }
.band h2 { max-width: 24ch; }
.band .lead { margin-top: var(--ac-space-4); max-width: var(--ac-measure); font-size: var(--ac-size-lead); }
.band .link-row { margin-top: var(--ac-space-8); }

.pendiente {
  display: inline-block; margin-top: var(--ac-space-4); padding: var(--ac-space-1) var(--ac-space-3);
  color: var(--ac-warning); background: var(--ac-warning-bg);
  border: var(--ac-border-w) dashed var(--ac-warning); border-radius: var(--ac-radius-tag);
  font-size: var(--ac-size-small); line-height: var(--ac-lh-ui);
}

/* ---------- Hero (inverso) ---------- */
#hero { padding-block: clamp(4rem, 9vw, 7.5rem); }
#hero .eyebrow {
  margin-bottom: var(--ac-space-4);
  color: var(--ac-accent); font-size: var(--ac-size-eyebrow); font-weight: 600;
  letter-spacing: var(--ac-ls-eyebrow); text-transform: uppercase;
}
#hero h1 { max-width: 22ch; }
#hero .entradilla { margin-top: var(--ac-space-6); max-width: 60ch; font-size: var(--ac-size-lead); }
#hero .metodologia-linea {
  margin-top: var(--ac-space-6); max-width: 60ch; padding-left: var(--ac-space-4);
  border-left: 3px solid var(--ac-sky); color: var(--ac-text-muted);
}
#hero .button-group { margin-top: var(--ac-space-12); }

/* ---------- Hero de la home: compacto, con ilustración y fondo ---------- */
#hero.hero--home {
  padding-block: clamp(2rem, 4vw, 3.5rem);
  background: var(--ac-ink) linear-gradient(135deg, var(--ac-ink) 0%, var(--ac-navy) 55%, var(--ac-blue) 100%);
}
.hero--home .eyebrow { color: var(--ac-light); }
.hero-grid {
  display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
  align-items: center; gap: clamp(1.5rem, 4vw, 3rem);
}
.hero--home h1 { font-size: clamp(2rem, 1.4rem + 2vw, 2.75rem); max-width: 20ch; }
.hero--home .entradilla { margin-top: var(--ac-space-4); font-size: var(--ac-size-body); }
.hero--home .metodologia-linea { margin-top: var(--ac-space-4); }
.hero--home .button-group { margin-top: var(--ac-space-6); }
.hero--home .hero-media img {
  width: min(100%, 520px); height: auto; margin-inline: auto;
  filter: drop-shadow(0 20px 36px rgba(0, 28, 51, .35));
}

/* ---------- Metodología: etapas con detalle ---------- */
#hero .indice { display: flex; flex-wrap: wrap; gap: var(--ac-space-2); margin: var(--ac-space-8) 0 0; padding: 0; list-style: none; }
#hero .indice a {
  display: inline-flex; align-items: center; gap: var(--ac-space-2); min-height: var(--ac-target); padding: 0 var(--ac-space-4);
  color: var(--ac-text); border: var(--ac-border-w-strong) solid var(--ac-sky); border-radius: var(--ac-radius-pill);
  font-family: var(--ac-font-brand); font-weight: 700; text-decoration: none;
}
#hero .indice a:hover { background: var(--ac-surface); }
#hero .indice .n, #hero .indice .prefijo { color: var(--ac-sky); }

/* Tarjetas de etapa (metodología): radio 0, glow decorativo, número por fuera */
.ec-grid { position: relative; display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--ac-space-8); }
.ec-grid::before {
  content: ""; position: absolute; top: 1.5rem; bottom: 1.5rem; left: 1.25rem; width: 2px; margin-left: -1px;
  background: var(--ac-sky);
}
.ec-item { position: relative; min-width: 0; padding-left: 4.5rem; }
.ec-num {
  position: absolute; z-index: 1; top: 1.5rem; left: 0; display: grid; place-items: center;
  width: 2.5rem; height: 2.5rem;
  color: var(--ac-blue); background: var(--ac-page); border: 2px solid var(--ac-sky); border-radius: 50%;
  font-family: var(--ac-font-brand); font-weight: 700; line-height: 1;
}
.ec {
  display: flex; flex-direction: row; align-items: flex-start; gap: clamp(1.5rem, 4vw, 3.5rem);
  padding: clamp(1.5rem, 3vw, 2.25rem);
  background: var(--ac-page); border: var(--ac-border-w) solid var(--ac-blue); border-radius: var(--ac-radius-etapa);
  box-shadow: var(--ac-shadow-glow);
  transition: box-shadow var(--ac-motion) var(--ac-ease);
}
.ec:hover { box-shadow: 0 0 32px rgba(0, 143, 204, .42); }
.ec--destacada {
  background: linear-gradient(135deg, var(--ac-ink) 0%, var(--ac-navy) 55%, var(--ac-blue) 100%);
}
.ec .ec-lado { flex: 0 0 min(300px, 34%); }
.ec .ec-cuerpo { flex: 1 1 auto; min-width: 0; }
.ec-top { display: flex; align-items: center; gap: var(--ac-space-3); margin-bottom: var(--ac-space-6); }
.ec-icono-caja {
  display: grid; place-items: center; width: 3.5rem; height: 3.5rem; flex: none;
  background: var(--ac-surface-2); border-radius: 0;
}
.ec--destacada .ec-icono-caja { background: rgba(255, 255, 255, .12); }
.ec-icono {
  width: 2rem; height: 2rem; object-fit: contain;
  filter: brightness(0) saturate(100%) invert(23%) sepia(89%) saturate(1674%) hue-rotate(181deg) brightness(83%) contrast(102%);
}
.ec--destacada .ec-icono { filter: brightness(0) invert(1); }
.ec-icono[src*="diagnostica"] { transform: scale(1.3); }
.ec-icono[src*="valida"] { transform: scale(.75); }
.ec-icono[src*="audita"] { transform: scale(.82); }
.ec-icono[src*="guia"] { transform: scale(.73); }
.ec-icono[src*="cumple"] { transform: scale(1.25); }
.ec-tag {
  margin-left: auto; padding: var(--ac-space-1) var(--ac-space-3);
  color: var(--ac-ink); background: var(--ac-light); border-radius: 0;
  font-size: var(--ac-size-small); font-weight: 700; line-height: var(--ac-lh-ui);
}
.ec h2 { max-width: none; font-size: var(--ac-size-h3); color: var(--ac-ink); }
.ec--destacada h2 { color: #FFFFFF; }
.ec h2 .prefijo { color: var(--ac-blue); }
.ec--destacada h2 .prefijo { color: var(--ac-sky); }
.ec-meta {
  display: inline-block; margin-top: var(--ac-space-3); padding: var(--ac-space-1) var(--ac-space-3);
  color: var(--ac-text-muted); background: var(--ac-surface-2); border-radius: 0;
  font-size: var(--ac-size-small); font-weight: 600; line-height: var(--ac-lh-ui);
}
.ec--destacada .ec-meta { color: var(--ac-light); background: rgba(255, 255, 255, .1); }
.ec-texto { font-size: var(--ac-size-lead); line-height: 1.45; }
.ec-amp { margin-top: var(--ac-space-4); }
.faq ul { margin: 0; padding: 0 var(--ac-space-4) var(--ac-space-4) calc(var(--ac-space-4) + 1.25rem); max-width: var(--ac-measure); }
.faq li + li { margin-top: var(--ac-space-2); }
.ec .faq { max-width: none; margin-top: var(--ac-space-6); }
.ec .faq details { background: var(--ac-surface); border-radius: 0; }
.ec--destacada .faq details { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .18); }
.ec--destacada .faq summary::after { color: var(--ac-sky); }
.ec .link-row { margin-top: var(--ac-space-6); }
.ec--destacada .button { margin-top: var(--ac-space-6); }
@media (max-width: 900px) {
  .ec { flex-direction: column; gap: var(--ac-space-6); }
  .ec .ec-lado { flex: none; }
}
@media (max-width: 480px) {
  .ec-item { padding-left: 3.5rem; }
}
@media (forced-colors: active) { .ec { box-shadow: none; border-color: CanvasText; } }

/* ---------- Acceso360: recorrido por etapas (estética de index-acceso360) ---------- */
#acceso360 h2 { max-width: 42rem; }
#acceso360 h2 .prefijo, .etapa h3 .prefijo { color: var(--ac-blue); }
#acceso360 .lead { margin-bottom: var(--ac-space-8); }

.etapas {
  position: relative;
  display: grid; grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: .75rem; margin: 0; padding: 0; list-style: none;
}
.etapas::before {
  content: ""; position: absolute; top: 1.25rem; right: 8%; left: 8%;
  height: 2px; background: var(--ac-sky);
}
.etapa { position: relative; min-width: 0; padding-top: 5rem; }
.etapa-num {
  position: absolute; z-index: 1; top: 0; left: 50%;
  display: grid; place-items: center; width: 2.5rem; height: 2.5rem;
  transform: translateX(-50%);
  color: var(--ac-blue); background: var(--ac-page);
  border: 2px solid var(--ac-sky); border-radius: 50%;
  font-family: var(--ac-font-brand); font-weight: 700; line-height: 1;
}
.etapa-card {
  display: flex; flex-direction: column; align-items: flex-start;
  height: 100%; min-height: 24rem; padding: var(--ac-space-6) 1.25rem;
  background: var(--ac-page);
  border: var(--ac-border-w) solid var(--ac-blue);
  border-radius: var(--ac-radius-etapa);
  box-shadow: var(--ac-shadow-glow);
}
.etapa-icono {
  width: 2.5rem; height: 2.5rem; margin-bottom: var(--ac-space-4);
  object-fit: contain; object-position: left center;
  filter: brightness(0) saturate(100%) invert(23%) sepia(89%) saturate(1674%) hue-rotate(181deg) brightness(83%) contrast(102%);
}
.etapa-icono[src*="diagnostica"] { transform: scale(1.3); transform-origin: left center; }
.etapa-icono[src*="valida"] { transform: scale(.75); transform-origin: left center; }
.etapa-icono[src*="audita"] { transform: scale(.82); transform-origin: left center; }
.etapa-icono[src*="gu%C3%ADa"], .etapa-icono[src*="guia"] { transform: scale(.73); transform-origin: left center; }
.etapa-icono[src*="cumple"] { transform: scale(1.25); transform-origin: left center; }

.etapa h3 {
  margin-bottom: var(--ac-space-3);
  font-family: var(--ac-font-brand); font-weight: 700; letter-spacing: var(--ac-ls-heading);
  font-size: var(--ac-size-ui); color: var(--ac-ink); white-space: nowrap;
}
.etapa p { font-size: var(--ac-size-small); line-height: var(--ac-lh-ui); }
.etapa .meta {
  width: 100%; margin-top: auto; padding-top: var(--ac-space-3);
  border-top: var(--ac-border-w-strong) solid var(--ac-sky);
  color: var(--ac-text-muted); font-weight: 600;
}
.etapa .texto { margin-bottom: var(--ac-space-6); }
@media (min-width: 901px) {
  /* misma altura en las cinco tarjetas: la línea y el texto de criterios arrancan alineados */
  .etapa .meta { min-height: 5.25rem; }
}

.etapas-siguiente {
  display: flex; align-items: center; flex-wrap: wrap; gap: var(--ac-space-6) var(--ac-space-8);
  margin-top: var(--ac-space-8); padding-top: var(--ac-space-6);
  border-top: var(--ac-border-w-strong) solid var(--ac-border);
}
.etapas-siguiente .link-row { margin-top: 0; }

/* ---------- Etapa 0: diagnóstico ---------- */
.diag-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--ac-space-6); margin-top: var(--ac-space-8);
}
.card {
  padding: var(--ac-space-6);
  background: var(--ac-surface);
  border: var(--ac-border-w) solid var(--ac-border);
  border-radius: var(--ac-radius-card);
}
.card h3 { margin-bottom: var(--ac-space-3); }
.card p { line-height: var(--ac-lh-body); }
.card ul { margin: var(--ac-space-4) 0 0; padding-left: 1.25rem; }
.card li + li { margin-top: var(--ac-space-1); }

.tramos { display: flex; flex-wrap: wrap; gap: var(--ac-space-2); margin: var(--ac-space-4) 0 0; padding: 0; list-style: none; }
.tramos li {
  padding: var(--ac-space-1) var(--ac-space-3);
  background: var(--ac-page); border: var(--ac-border-w) solid var(--ac-border);
  border-left-width: 4px; border-radius: var(--ac-radius-tag);
  font-size: var(--ac-size-small); line-height: var(--ac-lh-ui);
}
.tramos .bajo { border-left-color: var(--ac-risk-low); }
.tramos .medio { border-left-color: var(--ac-risk-medium); }
.tramos .alto { border-left-color: var(--ac-risk-high); }
.tramos .critico { border-left-color: var(--ac-risk-critical); }

.nota {
  margin-top: var(--ac-space-8); padding: var(--ac-space-4) var(--ac-space-6);
  background: var(--ac-page); border: var(--ac-border-w) solid var(--ac-border);
  border-left: 4px solid var(--ac-blue); border-radius: var(--ac-radius-card);
  max-width: var(--ac-measure);
}

/* ---------- Landing AccesoDiagnostica ---------- */
#hero .button-group .button + .button { margin-left: var(--ac-space-4); }
.form-frame { margin-top: var(--ac-space-8); max-width: 44rem; }
.band--form .lead + .form-frame { margin-top: var(--ac-space-8); }

/* ---------- Ley ---------- */
.ley-grid {
  display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(260px, .8fr);
  gap: var(--ac-space-12); align-items: start;
}
.ley-grid .texto p { max-width: var(--ac-measure); }
.dato {
  padding: var(--ac-space-8);
  border: var(--ac-border-w) solid var(--ac-border); border-radius: var(--ac-radius-card);
}
.dato .cifra {
  display: block; margin-bottom: var(--ac-space-3);
  color: var(--ac-accent); font-family: var(--ac-font-brand); font-weight: 800;
  font-size: clamp(2.25rem, 5vw, 3.25rem); line-height: 1; letter-spacing: var(--ac-ls-heading); white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.dato h3 { color: var(--ac-text); }
.dato .fuente { margin-top: var(--ac-space-2); color: var(--ac-text-muted); font-size: var(--ac-size-small); font-weight: 600; }
.dato .detalle { margin-top: var(--ac-space-6); }

/* ---------- Preguntas frecuentes ---------- */
.faq { margin-top: var(--ac-space-8); max-width: 48rem; }
.faq details {
  background: var(--ac-surface); border: var(--ac-border-w) solid var(--ac-border);
  border-radius: var(--ac-radius-card);
}
.faq details + details { margin-top: var(--ac-space-2); }
.faq summary {
  display: flex; align-items: center; justify-content: space-between; gap: var(--ac-space-4);
  min-height: var(--ac-target); padding: var(--ac-space-3) var(--ac-space-4);
  font-weight: 600; cursor: pointer; list-style: none;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: "+"; content: "+" / ""; flex: none; color: var(--ac-blue); font-family: var(--ac-font-brand); font-size: 1.5rem; line-height: 1; }
.faq details[open] summary::after { content: "\2212"; content: "\2212" / ""; }
.faq details > p { padding: 0 var(--ac-space-4) var(--ac-space-4); max-width: var(--ac-measure); }

/* ---------- Cierre (inverso) ---------- */
#main-cta { padding-block: clamp(3rem, 7vw, 5rem); }
#main-cta .lead { max-width: 56ch; }
#main-cta .button { margin-top: var(--ac-space-8); }

/* ---------- Pie (inverso) ---------- */
.site-footer { padding-top: clamp(3rem, 6vw, var(--ac-space-16)); }
.footer-inner {
  width: min(var(--ac-container), 100% - 2 * var(--ac-gutter)); margin-inline: auto;
  display: grid; grid-template-columns: minmax(240px, 1.3fr) minmax(180px, .9fr) minmax(220px, 1fr);
  gap: var(--ac-space-12); align-items: start;
}
.footer-brand img { width: 140px; height: auto; margin-bottom: var(--ac-space-4); }
.footer-brand .lema { font-family: var(--ac-font-brand); font-weight: 700; font-size: var(--ac-size-h4); }
.footer-brand .lockup { margin-top: var(--ac-space-2); color: var(--ac-text-muted); }
.footer-nav h2, .footer-contact h2 {
  margin-bottom: var(--ac-space-4); font-family: var(--ac-font-text);
  font-size: var(--ac-size-ui); font-weight: 600; letter-spacing: 0;
}
.footer-nav ul { margin: 0; padding: 0; list-style: none; }
.footer-nav a, .footer-nav button, .footer-contact a, .footer-bottom a, .footer-bottom button {
  display: inline-flex; align-items: center; min-height: var(--ac-target);
}
.footer-redes-titulo { margin-top: var(--ac-space-6); }
.redes { display: flex; flex-wrap: wrap; gap: var(--ac-space-2) var(--ac-space-6); margin: 0; padding: 0; list-style: none; }
.redes a { gap: var(--ac-space-2); }
.redes svg { flex: none; width: 1.5rem; height: 1.5rem; }
.footer-legal ul { display: flex; flex-wrap: wrap; gap: 0 var(--ac-space-6); margin: 0; padding: 0; list-style: none; }
.footer-legal a, .footer-legal button { font-size: var(--ac-size-small); }
/* El botón «Gestionar cookies» se ve y se comporta como los enlaces del pie */
.boton-enlace {
  padding: 0; margin: 0; border: 0; background: none; cursor: pointer;
  color: var(--ac-link); font: inherit; text-align: left;
  text-decoration: underline; text-decoration-thickness: 0.08em; text-underline-offset: 0.18em;
}
.boton-enlace:hover { color: var(--ac-link-hover); }
.footer-bottom {
  width: min(var(--ac-container), 100% - 2 * var(--ac-gutter)); margin: var(--ac-space-12) auto 0;
  padding-block: var(--ac-space-4);
  display: flex; align-items: center; justify-content: space-between; gap: var(--ac-space-4); flex-wrap: wrap;
  border-top: var(--ac-border-w) solid var(--ac-border);
  font-size: var(--ac-size-small);
}

/* ---------- Responsive ---------- */
@media (max-width: 1200px) {
  .menu-toggle { display: inline-flex; }
  .header-inner { min-height: 72px; gap: var(--ac-space-4); flex-wrap: wrap; padding-block: var(--ac-space-2); }
  .site-nav { display: none; flex-basis: 100%; }
  .site-nav.is-open { display: block; max-height: calc(100dvh - 72px); overflow-y: auto; }
  .site-nav > ul { flex-direction: column; align-items: flex-start; gap: var(--ac-space-1); padding-block: var(--ac-space-4); }
  .site-nav > ul > li { width: 100%; }
  .site-nav a:not(.button) { width: 100%; }
  .site-nav .button { margin-top: var(--ac-space-2); }
  .ley-grid { grid-template-columns: 1fr; gap: var(--ac-space-8); }
  .footer-inner { grid-template-columns: 1fr; gap: var(--ac-space-8); }
}
@media (max-width: 900px) {
  .hero-grid { grid-template-columns: 1fr; }
  .hero--home .hero-media img { width: min(100%, 420px); }
  .etapas { grid-template-columns: minmax(0, 1fr); }
  .etapas::before { top: 1.25rem; right: auto; bottom: 1.25rem; left: 1.25rem; width: 2px; height: auto; }
  .etapa { padding-top: 0; padding-left: 4rem; }
  .etapa-num { left: 1.25rem; }
  .etapa-card { min-height: 0; }
  .etapas-siguiente { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 480px) {
  .logo-link img { width: 112px; }
  .button { width: 100%; }
  .etapa { padding-left: 3.5rem; }
  .etapa-card { padding: var(--ac-space-4); }
  .etapa h3 { white-space: normal; }
}

/* ---------- Preferencias del sistema ---------- */
@media (forced-colors: active) {
  .etapa-card { box-shadow: none; border-color: CanvasText; }
  .etapa-num { border-color: CanvasText; }
  .etapa-icono { filter: none; }
}

/* ---------- Soluciones, Sobre Acceso y landing (copy v1) ---------- */
.band h2 .prefijo, .card h3 .prefijo { color: var(--ac-blue); }
.band .sol-lista { margin: var(--ac-space-6) 0 0; padding-left: 1.25rem; max-width: var(--ac-measure); }
.sol-lista li + li { margin-top: var(--ac-space-3); }
.sol-lista + .link-row { margin-top: var(--ac-space-6); }
.band .link-row { margin-top: var(--ac-space-6); }
.sol-etapas { margin-top: var(--ac-space-6); }
.sol-etapas .meta { margin-top: var(--ac-space-3); color: var(--ac-text-muted); font-size: var(--ac-size-small); font-weight: 600; }
#hero .indice--largo a { white-space: normal; padding-block: var(--ac-space-2); font-family: var(--ac-font-text); font-weight: 600; }
#hero .indice--largo .prefijo { color: inherit; }
#hero .destacada {
  margin-top: var(--ac-space-6); max-width: 60ch; padding-left: var(--ac-space-4);
  border-left: 3px solid var(--ac-sky); font-family: var(--ac-font-brand); font-size: var(--ac-size-h4); font-weight: 700;
}

/* Landing: hero con formulario */
#hero.hero--form { padding-block: clamp(2.5rem, 5vw, 4rem); background: linear-gradient(135deg, var(--ac-ink) 0%, var(--ac-navy) 55%, var(--ac-blue) 100%); }
.hero--form .hero-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; }
.hero--form h1 { font-size: clamp(2rem, 1.4rem + 2vw, 2.75rem); max-width: 18ch; }
.hero--form .eyebrow { color: var(--ac-light); }
.form-card {
  padding: clamp(1.25rem, 3vw, 2rem); color: var(--ac-ink); background: #FFFFFF;
  border: var(--ac-border-w) solid var(--ac-light); border-radius: var(--ac-radius-card); box-shadow: var(--ac-shadow-float);
}
.form-card h2 { font-size: var(--ac-size-h3); margin-bottom: var(--ac-space-4); }
.form-card a { color: var(--ac-blue); }
.form-nota { margin-top: var(--ac-space-4); color: var(--ac-navy); font-size: var(--ac-size-small); line-height: var(--ac-lh-ui); }

/* Landing: vista previa del diagnóstico */
.vista-diag { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: var(--ac-space-6); margin-top: var(--ac-space-8); align-items: start; }
.ir { padding: var(--ac-space-6); background: var(--ac-surface); border: var(--ac-border-w) solid var(--ac-border); border-left: 6px solid var(--ac-risk-high); border-radius: var(--ac-radius-card); }
.ir-label { color: var(--ac-text-muted); font-weight: 600; }
.ir-num { font-family: var(--ac-font-brand); font-weight: 800; font-size: clamp(3rem, 7vw, 4.5rem); line-height: 1; color: var(--ac-ink); font-variant-numeric: tabular-nums; }
.ir-tramo { font-size: var(--ac-size-h3); color: var(--ac-risk-high); }
.ir-texto { margin-top: var(--ac-space-4); font-size: var(--ac-size-small); }
.ficha { padding: var(--ac-space-6); background: var(--ac-page); border: var(--ac-border-w) solid var(--ac-border); border-radius: var(--ac-radius-card); }
.ficha h3 { margin-bottom: var(--ac-space-2); }
.ficha-meta { margin-bottom: var(--ac-space-4); color: var(--ac-text-muted); font-size: var(--ac-size-small); font-weight: 600; }
.pasos { margin: var(--ac-space-6) 0 0; padding-left: 1.5rem; max-width: var(--ac-measure); }
.pasos li + li { margin-top: var(--ac-space-3); }
.band p + p { margin-top: var(--ac-space-4); }
@media (max-width: 900px) {
  .hero--form .hero-grid, .vista-diag { grid-template-columns: 1fr; }
}
/* Contacto: tarjetas de soluciones bajo la entradilla en escritorio y bajo el formulario en móvil */
.hero--contacto .hero-copy { grid-area: copia; }
.hero--contacto .form-card { grid-area: formulario; }
.hero--contacto .atajos { grid-area: atajos; align-self: start; margin-top: 0; }
@media (min-width: 901px) {
  .hero--contacto .hero-grid { grid-template-areas: "copia formulario" "atajos formulario"; grid-template-rows: auto 1fr; }
}
@media (max-width: 900px) {
  .hero--contacto .hero-grid { grid-template-areas: "copia" "formulario" "atajos"; }
}

/* ---------- Soluciones: atajos y tarjetas de solución (look de producto) ---------- */
.sol-pila { display: grid; gap: var(--ac-space-8); }
.sol .ec-lado { flex: 0 0 min(300px, 34%); }
.sol-nombre { display: block; font-family: var(--ac-font-brand); font-size: var(--ac-size-h2); font-weight: 700; letter-spacing: var(--ac-ls-heading); line-height: var(--ac-lh-heading); color: var(--ac-ink); }
.sol-sub { display: block; margin-top: var(--ac-space-2); font-family: var(--ac-font-text); font-size: var(--ac-size-body); font-weight: 600; letter-spacing: 0; color: var(--ac-text-muted); }
.sol .ec-cuerpo .sol-lista { margin-top: var(--ac-space-4); }
.sol .sol-lista li::marker { color: var(--ac-blue); }

#hero .atajos { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: var(--ac-space-3); margin: var(--ac-space-8) 0 0; padding: 0; list-style: none; }
#hero a.atajo {
  position: relative; display: flex; flex-direction: column; gap: var(--ac-space-3); height: 100%;
  padding: var(--ac-space-4); color: var(--ac-text); text-decoration: none;
  background: rgba(255, 255, 255, .06); border: var(--ac-border-w) solid var(--ac-sky); border-radius: var(--ac-radius-etapa);
  transition: background var(--ac-motion) var(--ac-ease), box-shadow var(--ac-motion) var(--ac-ease);
}
#hero a.atajo:hover { background: rgba(255, 255, 255, .14); box-shadow: 0 0 24px rgba(102, 185, 255, .35); }
.atajo-icono { width: 2.25rem; height: 2.25rem; filter: brightness(0) invert(1); }
.atajo-necesidad { flex: 1 1 auto; font-size: var(--ac-size-small); line-height: var(--ac-lh-ui); color: var(--ac-light); }
.atajo-nombre { font-family: var(--ac-font-brand); font-size: var(--ac-size-h4); font-weight: 700; letter-spacing: var(--ac-ls-heading); color: #FFFFFF; }
.atajo-nombre .prefijo { color: var(--ac-sky); }
.atajo-flecha { position: absolute; top: var(--ac-space-4); right: var(--ac-space-4); color: var(--ac-sky); font-size: var(--ac-size-h4); line-height: 1; }

/* ---------- Sobre Acceso: cita, dos columnas, tarjetas con icono ---------- */
.hero--quote .hero-grid { align-items: center; }
.hero--quote h1 { max-width: 20ch; }
.cita {
  position: relative; margin: 0; padding: 3.5rem var(--ac-space-6) var(--ac-space-6);
  background: rgba(255, 255, 255, .06); border: var(--ac-border-w) solid var(--ac-sky); border-radius: var(--ac-radius-etapa);
  box-shadow: 0 0 32px rgba(102, 185, 255, .28);
  font-family: var(--ac-font-brand); font-size: clamp(1.5rem, 1rem + 1.5vw, 2rem); font-weight: 700; line-height: 1.25; letter-spacing: var(--ac-ls-heading);
}
.cita::before { content: "\201C"; position: absolute; top: -.1em; left: var(--ac-space-4); color: var(--ac-sky); font-size: 5rem; line-height: 1; }
.dos-col { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: var(--ac-space-12); align-items: start; }
.dos-col h2 { max-width: none; }
.dos-col-texto { padding-left: var(--ac-space-6); border-left: 3px solid var(--ac-sky); }
.dos-col-texto .lead { margin-top: 0; }
.ic-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--ac-space-6); margin-top: var(--ac-space-8); }
.ic-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ic-card {
  display: flex; flex-direction: column; gap: var(--ac-space-4); padding: clamp(1.25rem, 3vw, 2rem);
  background: var(--ac-page); border: var(--ac-border-w) solid var(--ac-blue); border-radius: var(--ac-radius-etapa); box-shadow: var(--ac-shadow-glow);
}
.ic-card p { font-size: var(--ac-size-body); }
.ic-card strong { color: var(--ac-blue); }
.enlaces-grandes { display: flex; flex-wrap: wrap; gap: var(--ac-space-4); margin-top: var(--ac-space-8); }
.enlace-grande {
  display: inline-flex; align-items: center; justify-content: space-between; gap: var(--ac-space-8); min-height: 3.5rem;
  padding: var(--ac-space-3) var(--ac-space-6); color: var(--ac-ink); background: var(--ac-page);
  border: var(--ac-border-w) solid var(--ac-blue); border-radius: var(--ac-radius-etapa); box-shadow: var(--ac-shadow-glow);
  font-family: var(--ac-font-brand); font-weight: 700; text-decoration: none;
}
.enlace-grande:hover { color: var(--ac-blue); box-shadow: 0 0 32px rgba(0, 143, 204, .42); }
.ir-nota { margin-top: var(--ac-space-3); color: var(--ac-text-muted); font-size: var(--ac-size-small); }
.card .ir { margin-top: var(--ac-space-4); }
@media (max-width: 900px) {
  .dos-col, .ic-grid--2 { grid-template-columns: 1fr; }
  .sol .ec-lado { flex: none; }
}

/* ---------- Metodología: línea de tiempo en el hero ---------- */
#hero .linea-tiempo {
  position: relative; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--ac-space-3);
  margin: var(--ac-space-12) 0 0; padding: 0; list-style: none;
}
#hero .linea-tiempo::before { content: ""; position: absolute; top: 1.25rem; left: 10%; right: 10%; height: 2px; background: var(--ac-sky); }
#hero .linea-tiempo a {
  position: relative; display: flex; flex-direction: column; align-items: center; gap: var(--ac-space-3); min-height: var(--ac-target);
  color: var(--ac-text); text-align: center; text-decoration: none;
}
#hero .linea-tiempo a:hover .lt-nombre { text-decoration: underline; text-underline-offset: .2em; }
.lt-num {
  position: relative; z-index: 1; display: grid; place-items: center; width: 2.5rem; height: 2.5rem;
  color: #FFFFFF; background: var(--ac-ink); border: 2px solid var(--ac-sky); border-radius: 50%;
  font-family: var(--ac-font-brand); font-weight: 700; line-height: 1;
}
.lt-icono { width: 2.5rem; height: 2.5rem; object-fit: contain; filter: brightness(0) invert(1); }
.lt-icono[src*="diagnostica"] { transform: scale(1.3); }
.lt-icono[src*="valida"] { transform: scale(.75); }
.lt-icono[src*="audita"] { transform: scale(.82); }
.lt-icono[src*="guia"] { transform: scale(.73); }
.lt-icono[src*="cumple"] { transform: scale(1.25); }
.lt-nombre { font-family: var(--ac-font-brand); font-size: var(--ac-size-h4); font-weight: 700; letter-spacing: var(--ac-ls-heading); }
.lt-nombre .prefijo { color: var(--ac-sky); }
@media (max-width: 900px) {
  #hero .linea-tiempo { grid-template-columns: 1fr; gap: var(--ac-space-4); margin-top: var(--ac-space-8); }
  #hero .linea-tiempo::before { top: 1.25rem; bottom: 1.25rem; left: 1.25rem; right: auto; width: 2px; height: auto; }
  #hero .linea-tiempo a { flex-direction: row; justify-content: flex-start; text-align: left; }
  .lt-icono { width: 2rem; height: 2rem; }
}
@media (forced-colors: active) { .lt-num { border-color: CanvasText; } }

/* Sobre Acceso: declaración destacada en el hero, sin formato de cita */
#hero .destacada {
  margin-top: var(--ac-space-8); max-width: 28ch; padding-left: var(--ac-space-6);
  border-left: 4px solid var(--ac-sky);
  font-family: var(--ac-font-brand); font-size: clamp(1.75rem, 1.2rem + 2vw, 2.5rem); font-weight: 500; line-height: 1.2; letter-spacing: var(--ac-ls-heading);
  color: var(--ac-sky);
}
.atajo-nombre { margin-top: var(--ac-space-1); }

/* Línea de tiempo en versión clara (Soluciones) */
.linea-tiempo--clara {
  position: relative; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--ac-space-3);
  margin: var(--ac-space-8) 0 0; padding: 0; list-style: none;
}
.linea-tiempo--clara::before { content: ""; position: absolute; top: 1.25rem; left: 10%; right: 10%; height: 2px; background: var(--ac-sky); }
.linea-tiempo--clara a {
  position: relative; display: flex; flex-direction: column; align-items: center; gap: var(--ac-space-3); min-height: var(--ac-target);
  color: var(--ac-ink); text-align: center; text-decoration: none;
}
.linea-tiempo--clara a:hover .lt-nombre { text-decoration: underline; text-underline-offset: .2em; }
.linea-tiempo--clara .lt-num { color: var(--ac-blue); background: var(--ac-page); }
.linea-tiempo--clara .lt-icono { filter: brightness(0) saturate(100%) invert(23%) sepia(89%) saturate(1674%) hue-rotate(181deg) brightness(83%) contrast(102%); }
.linea-tiempo--clara .lt-nombre .prefijo { color: var(--ac-blue); }
@media (max-width: 900px) {
  .linea-tiempo--clara { grid-template-columns: 1fr; gap: var(--ac-space-4); }
  .linea-tiempo--clara::before { top: 1.25rem; bottom: 1.25rem; left: 1.25rem; right: auto; width: 2px; height: auto; }
  .linea-tiempo--clara a { flex-direction: row; justify-content: flex-start; text-align: left; }
}

.ic-card .ic-intro { margin-top: calc(-1 * var(--ac-space-2)); color: var(--ac-text-muted); font-size: var(--ac-size-small); font-weight: 600; }
.ic-lista { margin: calc(-1 * var(--ac-space-2)) 0 0; padding-left: 1.25rem; }
.ic-lista li + li { margin-top: var(--ac-space-2); }
.ic-lista li::marker { color: var(--ac-blue); }

/* Formulario provisional «¿Está obligada mi web?» */
.ley-form {
  display: grid; gap: var(--ac-space-4); margin-top: var(--ac-space-8); padding: clamp(1.25rem, 3vw, 2rem);
  background: var(--ac-page); border: var(--ac-border-w) solid var(--ac-blue); border-radius: var(--ac-radius-etapa); box-shadow: var(--ac-shadow-glow);
}
.ley-form h3 { font-family: var(--ac-font-brand); font-size: var(--ac-size-h3); }
.ley-form p { margin: 0; }
.ley-form .campo { display: grid; gap: var(--ac-space-1); }
.ley-form label { font-weight: 600; }
.ley-form input[type="url"], .ley-form input[type="email"], .ley-form select {
  min-height: var(--ac-target); padding: var(--ac-space-2) var(--ac-space-3); color: var(--ac-ink); background: var(--ac-page);
  border: var(--ac-border-w-strong) solid var(--ac-border-strong); border-radius: var(--ac-radius-field); font: inherit;
}
.ley-form .campo--check { grid-template-columns: auto 1fr; align-items: center; gap: var(--ac-space-3); }
.ley-form .campo--check input { width: 1.5rem; height: 1.5rem; accent-color: var(--ac-blue); }
.ley-form .campo--check label { font-weight: 400; }
.ley-form .ayuda { color: var(--ac-text-muted); font-size: var(--ac-size-small); }
.ley-form .button { justify-self: start; }
.ley-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ley-form > * { grid-column: 1 / -1; }
.ley-form > .campo:nth-of-type(3), .ley-form > .campo:nth-of-type(4) { grid-column: auto; }
@media (max-width: 600px) { .ley-form > .campo:nth-of-type(3), .ley-form > .campo:nth-of-type(4) { grid-column: 1 / -1; } }

/* ---------- Opciones para mostrar Acceso360 ---------- */
.op-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--ac-space-12); align-items: center; margin-top: var(--ac-space-8); }
.ciclo { position: relative; width: min(100%, 460px); aspect-ratio: 1; margin-inline: auto; }
.ciclo::before { content: ""; position: absolute; inset: 12%; border: 2px solid var(--ac-sky); border-radius: 50%; }
.ciclo-centro { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-family: var(--ac-font-brand); font-size: var(--ac-size-h2); font-weight: 700; color: var(--ac-ink); }
.ciclo-centro .prefijo, .ciclo-nombre .prefijo, .escalon-nombre .prefijo, .tab-nombre .prefijo { color: var(--ac-blue); }
.ciclo-nodo { position: absolute; transform: translate(-50%, -50%); display: grid; justify-items: center; gap: var(--ac-space-2); padding: var(--ac-space-1); color: var(--ac-ink); background: transparent; border: 0; font: inherit; cursor: pointer; }
.ciclo-nodo .lt-num, .tab .lt-num, .escalon .lt-num { color: var(--ac-blue); background: var(--ac-page); }
.ciclo-nodo[aria-pressed="true"] .lt-num, .tab[aria-pressed="true"] .lt-num { color: #FFFFFF; background: var(--ac-blue); border-color: var(--ac-blue); }
.ciclo-nombre { font-family: var(--ac-font-brand); font-size: var(--ac-size-small); font-weight: 700; background: var(--ac-page); padding-inline: var(--ac-space-1); }
.op-panel { padding: clamp(1.25rem, 3vw, 2rem); background: var(--ac-page); border: var(--ac-border-w) solid var(--ac-blue); border-radius: var(--ac-radius-etapa); box-shadow: var(--ac-shadow-glow); }
.op-panel h3 { font-family: var(--ac-font-brand); font-size: var(--ac-size-h3); margin-bottom: var(--ac-space-2); }
.op-panel .meta { margin-bottom: var(--ac-space-4); color: var(--ac-text-muted); font-size: var(--ac-size-small); font-weight: 600; }
.op-panel .link-row { margin-top: var(--ac-space-4); }
.escalera { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); align-items: end; gap: var(--ac-space-3); margin: var(--ac-space-8) 0 0; padding: 0; list-style: none; }
.escalon a { display: grid; align-content: start; gap: var(--ac-space-3); min-height: var(--h); padding: var(--ac-space-4); color: var(--ac-ink); text-decoration: none; background: var(--ac-page); border: var(--ac-border-w) solid var(--ac-blue); border-radius: var(--ac-radius-etapa); box-shadow: var(--ac-shadow-glow); }
.escalon a:hover { box-shadow: 0 0 32px rgba(0, 143, 204, .42); }
.escalon-nombre { font-family: var(--ac-font-brand); font-weight: 700; font-size: var(--ac-size-h4); }
.barra { display: block; height: .75rem; background: var(--ac-surface-2); border: var(--ac-border-w) solid var(--ac-sky); }
.barra > span { display: block; height: 100%; background: var(--ac-blue); }
.barra-texto { color: var(--ac-text-muted); font-size: var(--ac-size-small); font-weight: 600; }
.tabs-fila { display: flex; flex-wrap: wrap; gap: var(--ac-space-2); margin-top: var(--ac-space-8); }
.tab { display: inline-flex; align-items: center; gap: var(--ac-space-2); min-height: var(--ac-target); padding: var(--ac-space-2) var(--ac-space-4) var(--ac-space-2) var(--ac-space-2); color: var(--ac-ink); background: var(--ac-page); border: var(--ac-border-w-strong) solid var(--ac-sky); border-radius: var(--ac-radius-pill); font: inherit; cursor: pointer; }
.tab[aria-pressed="true"] { border-color: var(--ac-blue); box-shadow: var(--ac-shadow-glow); }
.tab-nombre { font-family: var(--ac-font-brand); font-weight: 700; }
.op-panel--tab { margin-top: var(--ac-space-4); }
@media (max-width: 900px) {
  .op-grid { grid-template-columns: 1fr; }
  .escalera { grid-template-columns: 1fr; align-items: stretch; }
  .escalon a { min-height: 0; }
}

/* ---------- Metodología: selector de etapas (pestañas) ---------- */
.tabs-etapas { display: none; }
.js .tabs-etapas { position: relative; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--ac-space-3); margin-bottom: var(--ac-space-8); }
.js .tabs-etapas::before { content: ""; position: absolute; top: 1.25rem; left: 10%; right: 10%; height: 2px; background: var(--ac-sky); }
.tab-etapa {
  position: relative; display: flex; flex-direction: column; align-items: center; gap: var(--ac-space-3);
  min-height: var(--ac-target); padding: 0 var(--ac-space-2) var(--ac-space-3); color: var(--ac-ink); background: transparent;
  border: 0; border-bottom: 4px solid transparent; font: inherit; text-align: center; cursor: pointer;
}
.tab-etapa .lt-num { color: var(--ac-blue); background: var(--ac-page); }
.tab-etapa .lt-icono { filter: brightness(0) saturate(100%) invert(23%) sepia(89%) saturate(1674%) hue-rotate(181deg) brightness(83%) contrast(102%); }
.tab-etapa .lt-nombre .prefijo { color: var(--ac-blue); }
.tab-etapa:hover .lt-nombre { text-decoration: underline; text-underline-offset: .2em; }
.tab-etapa[aria-selected="true"] { border-bottom-color: var(--ac-blue); }
.tab-etapa[aria-selected="true"] .lt-num { color: #FFFFFF; background: var(--ac-blue); border-color: var(--ac-blue); }
.tab-panel { margin-top: var(--ac-space-6); }
.tab-panel[hidden] { display: none; }
.tab-panel h2 { font-size: var(--ac-size-h3); }
@media (max-width: 900px) {
  .js .tabs-etapas { grid-template-columns: 1fr; gap: 0; }
  .js .tabs-etapas::before { top: 1.25rem; bottom: 1.25rem; left: 1.25rem; right: auto; width: 2px; height: auto; }
  .tab-etapa { flex-direction: row; justify-content: flex-start; padding: var(--ac-space-2) var(--ac-space-2) var(--ac-space-2) 0; border-bottom: 0; border-left: 4px solid transparent; text-align: left; }
  .tab-etapa[aria-selected="true"] { border-left-color: var(--ac-blue); background: var(--ac-surface-2); }
  .tab-etapa .lt-icono { width: 2rem; height: 2rem; }
}

/* ===== Ficha (etapa y solución): cabecera oscura + cuerpo en dos columnas ===== */
.fe { background: var(--ac-page); border: var(--ac-border-w) solid var(--ac-blue); border-radius: var(--ac-radius-etapa); box-shadow: var(--ac-shadow-glow); }
.fe-cab {
  display: flex; align-items: center; flex-wrap: wrap; gap: var(--ac-space-4); padding: var(--ac-space-6) clamp(1.25rem, 3vw, 2rem);
  color: #FFFFFF; background: linear-gradient(135deg, var(--ac-ink) 0%, var(--ac-navy) 55%, var(--ac-blue) 100%);
}
.fe-icono { display: grid; place-items: center; flex: none; width: 3.5rem; height: 3.5rem; background: rgba(255, 255, 255, .12); }
.fe-icono img { width: 2rem; height: 2rem; object-fit: contain; filter: brightness(0) invert(1); }
.fe-icono img[src*="diagnostica"] { transform: scale(1.3); }
.fe-icono img[src*="valida"] { transform: scale(.75); }
.fe-icono img[src*="audita"] { transform: scale(.82); }
.fe-icono img[src*="guia"] { transform: scale(.73); }
.fe-icono img[src*="cumple"] { transform: scale(1.25); }
.fe-titulos { flex: 1 1 14rem; min-width: 0; }
.fe h2 { max-width: none; color: #FFFFFF; font-size: var(--ac-size-h2); }
.fe h2 .prefijo { color: var(--ac-sky); }
.fe-sub { display: block; margin-top: var(--ac-space-1); font-family: var(--ac-font-text); font-size: var(--ac-size-body); font-weight: 600; letter-spacing: 0; color: var(--ac-light); }
.fe-meta { margin-top: var(--ac-space-1); color: var(--ac-light); font-size: var(--ac-size-small); font-weight: 600; }
.fe-tag { margin-left: auto; padding: var(--ac-space-1) var(--ac-space-3); color: var(--ac-ink); background: var(--ac-light); font-size: var(--ac-size-small); font-weight: 700; }
.fe-cuerpo { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: var(--ac-space-8) var(--ac-space-12); align-items: start; padding: clamp(1.25rem, 3vw, 2rem); }
.fe-lead { font-size: var(--ac-size-lead); line-height: 1.45; }
.fe-amp { margin-top: var(--ac-space-4); color: var(--ac-text-muted); }
.fe-texto .link-row { margin-top: var(--ac-space-6); }
.fe .faq { max-width: none; margin: 0; }
.fe .faq details { background: transparent; border: 0; border-top: var(--ac-border-w) solid var(--ac-border); border-radius: 0; }
.fe .faq details + details { margin-top: 0; }
.fe .faq details:last-child { border-bottom: var(--ac-border-w) solid var(--ac-border); }
.fe .faq summary { padding-inline: 0; font-family: var(--ac-font-brand); font-size: var(--ac-size-h4); font-weight: 700; }
.fe .faq details > p, .fe .faq details > ul { padding-inline: 0; }
.fe .faq details > ul { padding-left: 1.25rem; }
.fe .sol-lista { margin: 0; padding-left: 1.25rem; max-width: none; }
.fe .sol-lista li::marker { color: var(--ac-blue); }
.etapas-md { display: grid; grid-template-columns: minmax(0, 17rem) minmax(0, 1fr); gap: var(--ac-space-8) var(--ac-space-12); align-items: start; }
.tab-panel { margin-top: 0; }
.tab-panel[hidden] { display: none; }

/* Línea de tiempo vertical, siempre */
.js .tabs-etapas { display: flex; flex-direction: column; gap: var(--ac-space-1); margin: 0; position: relative; grid-template-columns: none; }
.js .tabs-etapas::before { top: 1.25rem; bottom: 1.25rem; left: 1.25rem; right: auto; width: 2px; height: auto; }
.tab-etapa { flex-direction: row; justify-content: flex-start; gap: var(--ac-space-3); padding: var(--ac-space-2) var(--ac-space-3) var(--ac-space-2) 0; border: 0; text-align: left; }
.tab-etapa[aria-selected="true"] { background: var(--ac-surface-2); box-shadow: inset 4px 0 0 var(--ac-blue); border: 0; }
.tab-etapa .lt-icono { width: 2rem; height: 2rem; }
.tab-etapa[aria-selected="true"] .lt-nombre { text-decoration: underline; text-underline-offset: .25em; }
.sol360 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--ac-space-12); align-items: start; }
.linea-tiempo--clara { grid-template-columns: 1fr; gap: var(--ac-space-3); margin: 0; }
.linea-tiempo--clara::before { top: 1.25rem; bottom: 1.25rem; left: 1.25rem; right: auto; width: 2px; height: auto; }
.linea-tiempo--clara a { flex-direction: row; justify-content: flex-start; text-align: left; gap: var(--ac-space-4); }
.linea-tiempo--clara .lt-icono { width: 2rem; height: 2rem; }

/* Enlaces como botón con flecha */
.link-row a {
  display: inline-flex; align-items: center; justify-content: space-between; gap: var(--ac-space-8); min-height: 3.5rem;
  padding: var(--ac-space-3) var(--ac-space-6); color: var(--ac-ink); background: var(--ac-page);
  border: var(--ac-border-w) solid var(--ac-blue); border-radius: var(--ac-radius-etapa); box-shadow: var(--ac-shadow-glow);
  font-family: var(--ac-font-brand); font-weight: 700; text-decoration: none;
}
.link-row a::after { content: "\2192" / ""; }
.link-row a:hover { color: var(--ac-blue); box-shadow: 0 0 32px rgba(0, 143, 204, .42); }

/* Índice de Riesgo Acceso, con el estilo de los nombres de producto */
.ira { font-family: var(--ac-font-brand); font-weight: 700; letter-spacing: var(--ac-ls-heading); }
.ira .prefijo { color: var(--ac-blue); }
.ac-inverse .ira .prefijo, .fe-cab .ira .prefijo { color: var(--ac-sky); }
@media (max-width: 900px) {
  .fe-cuerpo, .etapas-md, .sol360 { grid-template-columns: 1fr; }
}

/* ===== Metodología: ficha minimalista (Outfit solo en el nombre; el resto en Inter) ===== */
.tab-panel .fe-cab { padding-block: var(--ac-space-4); }
.tab-panel .fe-lead { font-size: var(--ac-size-body); line-height: var(--ac-lh-body); font-weight: 600; }
.tab-panel .fe-amp { margin-top: var(--ac-space-3); color: var(--ac-text); }
.tab-panel .faq summary { font-family: var(--ac-font-text); font-size: var(--ac-size-ui); font-weight: 600; letter-spacing: 0; }
.tab-panel .faq summary::after { font-family: var(--ac-font-text); font-weight: 400; }
.tab-panel .faq details > p, .tab-panel .faq details > ul { font-size: var(--ac-size-ui); }

/* ===== Metodología: recorrido vertical con etapas que se quedan fijas arriba al avanzar ===== */
.recorrido { --strip: 3.5rem; --sangria: 3.5rem; position: relative; }
.recorrido::before { content: ""; position: absolute; z-index: 0; top: 1.5rem; bottom: 0; left: 1.25rem; width: 2px; background: var(--ac-sky); }
.paso-cab {
  position: sticky; z-index: 5; top: calc(var(--hdr, 80px) + var(--i) * var(--strip));
  display: flex; align-items: center; gap: var(--ac-space-3); height: var(--strip); margin: 0;
  background: var(--ac-page); border-bottom: var(--ac-border-w) solid var(--ac-border);
  font-family: var(--ac-font-brand); scroll-margin-top: calc(var(--hdr, 80px) + var(--i) * var(--strip));
}
.paso-cab::before { content: ""; position: absolute; left: 1.25rem; top: 0; bottom: 0; width: 2px; background: var(--ac-sky); }
.paso-cab .lt-num { position: relative; z-index: 1; flex: none; color: var(--ac-blue); background: var(--ac-page); }
.paso-icono { flex: none; width: 2rem; height: 2rem; object-fit: contain; filter: brightness(0) saturate(100%) invert(23%) sepia(89%) saturate(1674%) hue-rotate(181deg) brightness(83%) contrast(102%); }
.paso-icono[src*="diagnostica"] { transform: scale(1.3); }
.paso-icono[src*="valida"] { transform: scale(.75); }
.paso-icono[src*="audita"] { transform: scale(.82); }
.paso-icono[src*="guia"] { transform: scale(.73); }
.paso-icono[src*="cumple"] { transform: scale(1.25); }
.paso-nombre { font-size: var(--ac-size-h3); font-weight: 700; letter-spacing: var(--ac-ls-heading); color: var(--ac-ink); }
.paso-nombre .prefijo { color: var(--ac-blue); }
.paso-cuerpo {
  position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: var(--ac-space-8) var(--ac-space-12); align-items: start;
  margin: var(--ac-space-4) 0 var(--ac-space-12) var(--sangria); padding: clamp(1.25rem, 3vw, 2rem);
  background: var(--ac-page); border: var(--ac-border-w) solid var(--ac-blue); border-radius: var(--ac-radius-etapa); box-shadow: var(--ac-shadow-glow);
}
.paso-meta { margin-bottom: var(--ac-space-3); color: var(--ac-text-muted); font-size: var(--ac-size-small); font-weight: 600; }
@media (max-width: 900px) {
  .recorrido { --strip: 3rem; --sangria: 3rem; }
  .paso-cuerpo { grid-template-columns: 1fr; }
  .paso-nombre { font-size: var(--ac-size-h4); }
}
@media (forced-colors: active) { .paso-cuerpo { box-shadow: none; border-color: CanvasText; } }

/* Acordeones y texto dentro de la tarjeta de etapa */
.paso-cuerpo .faq { max-width: none; margin: 0; }
.paso-cuerpo .faq details { background: transparent; border: 0; border-top: var(--ac-border-w) solid var(--ac-border); border-radius: 0; }
.paso-cuerpo .faq details + details { margin-top: 0; }
.paso-cuerpo .faq details:last-child { border-bottom: var(--ac-border-w) solid var(--ac-border); }
.paso-cuerpo .faq summary { padding-inline: 0; font-family: var(--ac-font-text); font-size: var(--ac-size-ui); font-weight: 600; letter-spacing: 0; }
.paso-cuerpo .faq summary::after { font-family: var(--ac-font-text); font-weight: 400; }
.paso-cuerpo .faq details > p, .paso-cuerpo .faq details > ul { padding-inline: 0; font-size: var(--ac-size-ui); }
.paso-cuerpo .faq details > ul { padding-left: 1.25rem; }
.paso-cuerpo .fe-lead { font-size: var(--ac-size-body); line-height: var(--ac-lh-body); font-weight: 600; }
.paso-cuerpo .fe-amp { margin-top: var(--ac-space-3); color: var(--ac-text); }
.paso-cuerpo .link-row { margin-top: var(--ac-space-6); }

/* El nombre de la etapa queda dentro de la tarjeta, como su cabecera; el número queda fuera, sobre la línea */
.paso-cab { display: block; padding-left: var(--sangria); border-bottom: 0; }
.paso-cab .lt-num { position: absolute; left: 0; top: 50%; transform: translateY(-50%); }
.paso-caja {
  display: flex; align-items: center; gap: var(--ac-space-3); height: 100%; padding: 0 clamp(1.25rem, 3vw, 2rem);
  background: var(--ac-page); border: var(--ac-border-w) solid var(--ac-blue);
  box-shadow: var(--ac-shadow-glow); clip-path: inset(-30px -30px 0 -30px);
}
.paso-cuerpo { margin-top: 0; border-top: 0; }

/* Pila de etapas recorridas: un solo bloque fijo que sale entero al terminar la sección */
.recorrido > .paso-cab { position: relative; top: auto; }
.pila { position: sticky; z-index: 10; top: var(--hdr, 80px); height: calc(5 * var(--strip)); pointer-events: none; }
.pila + .paso-cab { margin-top: calc(-5 * var(--strip)); }
.pila .paso-cab { position: absolute; top: calc(var(--i) * var(--strip)); left: 0; right: 0; visibility: hidden; color: inherit; text-decoration: none; }
.pila .paso-cab[data-on] { visibility: visible; pointer-events: auto; }

/* Línea de tiempo de Soluciones: sin enlaces, solo informativa */
.linea-tiempo--clara .tl-item { position: relative; display: flex; align-items: center; justify-content: flex-start; gap: var(--ac-space-4); min-height: var(--ac-target); color: var(--ac-ink); text-align: left; }

/* Cabecera de etapa: icono siempre visible y alcance en una línea a la derecha */
.paso-icono { display: block; }
.paso-alcance { margin-left: auto; color: var(--ac-text-muted); font-family: var(--ac-font-text); font-size: var(--ac-size-small); font-weight: 600; line-height: 1.3; text-align: right; }
.paso-meta { display: none; }
.paso-nombre { white-space: nowrap; }
.paso-alcance { flex: 0 1 auto; }
@media (max-width: 900px) {
  .paso-alcance { display: none; }
  .paso-meta { display: block; }
}

/* Página de opciones de hero */
.op-hero-etiqueta { padding-block: var(--ac-space-2); background: var(--ac-surface-2); border-top: var(--ac-border-w) solid var(--ac-border); }
.op-hero-etiqueta p { font-size: var(--ac-size-small); font-weight: 700; letter-spacing: var(--ac-ls-eyebrow); text-transform: uppercase; color: var(--ac-text-muted); }
.faq .pasos { margin: 0; padding: 0 var(--ac-space-4) var(--ac-space-4) calc(var(--ac-space-4) + 1.25rem); }

/* ===== Por qué 360: diagrama del ciclo y texto ===== */
.p360 { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--ac-space-12); align-items: center; margin-top: var(--ac-space-8); }
.c360-fig { margin: 0; }
.c360-svg { display: block; width: 100%; height: auto; max-width: 520px; margin-inline: auto; }
.c360-arco { fill: none; stroke: var(--ac-sky); stroke-width: 3; stroke-linecap: round; }
.c360-arco--vuelta { stroke: var(--ac-blue); stroke-width: 4; }
.c360-punta { fill: var(--ac-sky); }
.c360-punta--vuelta { fill: var(--ac-blue); }
.c360-nodo { fill: var(--ac-page); stroke: var(--ac-blue); stroke-width: 2.5; }
.c360-num { fill: var(--ac-blue); font-family: var(--ac-font-brand); font-size: 20px; font-weight: 700; }
.c360-nombre { fill: var(--ac-ink); font-family: var(--ac-font-brand); font-size: 19px; font-weight: 700; }
.c360-prefijo { fill: var(--ac-blue); }
.c360-centro { fill: var(--ac-ink); font-family: var(--ac-font-brand); font-size: 30px; font-weight: 700; }
.p360-bloques { display: grid; gap: 0; }
.p360-bloque { padding-block: var(--ac-space-4); border-top: var(--ac-border-w) solid var(--ac-border); }
.p360-bloque:last-child { border-bottom: var(--ac-border-w) solid var(--ac-border); }
.p360-bloque h3 { margin-bottom: var(--ac-space-2); font-size: var(--ac-size-h4); }
.p360 + .link-row { margin-top: var(--ac-space-8); }
@media (max-width: 900px) {
  .p360 { grid-template-columns: 1fr; gap: var(--ac-space-8); }
}
@media (max-width: 600px) {
  .c360-nombre { font-size: 28px; }
  .c360-nombre .c360-prefijo { display: none; }
  .c360-num { font-size: 22px; }
}

/* ===== Sobre Acceso: una barrera en la vida diaria ===== */
.caso { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: var(--ac-space-6); align-items: stretch; margin-top: var(--ac-space-8); }
.caso-card { padding: clamp(1.25rem, 3vw, 2rem); background: var(--ac-page); border: var(--ac-border-w) solid var(--ac-blue); border-radius: var(--ac-radius-etapa); box-shadow: var(--ac-shadow-glow); }
.caso-etiqueta { display: inline-block; margin-bottom: var(--ac-space-3); padding: var(--ac-space-1) var(--ac-space-3); color: var(--ac-ink); background: var(--ac-light); font-size: var(--ac-size-small); font-weight: 700; }
.caso-card h3 { margin-bottom: var(--ac-space-3); font-family: var(--ac-font-brand); font-size: var(--ac-size-h3); }
.caso-frase { display: flex; flex-direction: column; justify-content: center; gap: var(--ac-space-4); padding: clamp(1.5rem, 4vw, 2.5rem); background: linear-gradient(135deg, var(--ac-ink) 0%, var(--ac-navy) 55%, var(--ac-blue) 100%); border-radius: var(--ac-radius-etapa); }
.caso-destacada { font-family: var(--ac-font-brand); font-size: clamp(1.75rem, 1.2rem + 2vw, 2.5rem); font-weight: 700; line-height: 1.15; letter-spacing: var(--ac-ls-heading); color: #FFFFFF; }
.caso-cierre { color: var(--ac-sky); font-size: var(--ac-size-lead); font-weight: 600; }
.dos-parrafos { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--ac-space-8); margin-top: var(--ac-space-6); }
.dos-parrafos p { font-size: var(--ac-size-body); }
.dos-parrafos p + p { margin-top: 0; }
.datos-eu { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ac-space-6); margin: var(--ac-space-8) 0 0; padding: 0; list-style: none; }
.dato-card { display: flex; flex-direction: column; gap: var(--ac-space-3); padding: clamp(1.25rem, 3vw, 2rem); background: var(--ac-page); border: var(--ac-border-w) solid var(--ac-blue); border-radius: var(--ac-radius-etapa); box-shadow: var(--ac-shadow-glow); }
.dato-card p { margin: 0; }
.dato-num { font-family: var(--ac-font-brand); font-size: clamp(2.25rem, 1.5rem + 2.5vw, 3.25rem); font-weight: 800; line-height: 1.05; letter-spacing: var(--ac-ls-heading); color: var(--ac-blue); font-variant-numeric: tabular-nums; }
.dato-fuente { margin-top: auto; color: var(--ac-text-muted); font-size: var(--ac-size-small); font-weight: 600; }
.dato-card .pendiente { align-self: flex-start; margin-top: auto; }
.eu-cierre { max-width: 40rem; margin-top: var(--ac-space-8); font-family: var(--ac-font-brand); font-size: var(--ac-size-h3); font-weight: 700; line-height: 1.25; color: var(--ac-ink); }
@media (max-width: 900px) {
  .caso, .dos-parrafos { grid-template-columns: 1fr; }
  .datos-eu { grid-template-columns: 1fr; }
}

/* Por qué 360: el diagrama arriba y los cuatro bloques en tarjetas debajo */
.p360 { display: block; }
.p360 .c360-fig { max-width: 560px; margin: 0 auto; }
.p360-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ac-space-6); margin-top: var(--ac-space-12); }
.p360-card { padding: clamp(1.25rem, 3vw, 2rem); background: var(--ac-page); border: var(--ac-border-w) solid var(--ac-blue); border-radius: var(--ac-radius-etapa); box-shadow: var(--ac-shadow-glow); }
.p360-card h3 { margin-bottom: var(--ac-space-3); font-family: var(--ac-font-brand); font-size: var(--ac-size-h3); }
@media (max-width: 900px) { .p360-cards { grid-template-columns: 1fr; margin-top: var(--ac-space-8); } }

/* Sobre Acceso: imagen en el hero */
.hero--imagen .hero-grid { align-items: center; }
.hero--imagen .hero-media img { display: block; width: min(100%, 440px); height: auto; margin-inline: auto; }
.hero--imagen .hero-media .pendiente { margin-top: var(--ac-space-2); }
@media (max-width: 900px) { .hero--imagen .hero-media img { width: min(100%, 340px); } }

.hero--imagen .hero-media .destacada, .hero--imagen .hero-media .pendiente { max-width: 440px; margin-inline: auto; }
.hero--imagen .hero-media .destacada { margin-top: var(--ac-space-6); }

/* Sobre Acceso: columna de la imagen más compacta, para que no supere mucho a la del texto */
.hero--imagen .hero-media img { width: min(100%, 300px); }
.hero--imagen .hero-media .destacada, .hero--imagen .hero-media .pendiente { max-width: 300px; }
.hero--imagen .hero-media .destacada { margin-top: var(--ac-space-4); padding-left: var(--ac-space-4); font-size: var(--ac-size-h3); line-height: 1.2; }
.hero--imagen .hero-media .pendiente { font-size: 12px; }
@media (max-width: 900px) { .hero--imagen .hero-media img { width: min(100%, 280px); } }

.hero--imagen .hero-media img { width: min(100%, 240px); }
.hero--imagen .hero-media .destacada, .hero--imagen .hero-media .pendiente { max-width: 280px; }
.hero--imagen .hero-media .destacada { margin-top: var(--ac-space-3); font-size: var(--ac-size-h4); }
.hero--imagen .hero-media .pendiente { margin-top: var(--ac-space-2); padding-block: 2px; }
@media (max-width: 900px) { .hero--imagen .hero-media img { width: min(100%, 240px); } }

/* la frase del hero de Sobre Acceso: más compacta y con mayor especificidad que #hero .destacada */
#hero.hero--imagen .hero-media .destacada { max-width: 280px; margin: var(--ac-space-3) auto 0; padding-left: var(--ac-space-4); font-size: var(--ac-size-h4); line-height: 1.2; }

/* Sobre Acceso: tamaño intermedio de la imagen del hero */
.hero--imagen .hero-media img { width: min(100%, 320px); }
#hero.hero--imagen .hero-media .destacada { max-width: 320px; }
@media (max-width: 900px) { .hero--imagen .hero-media img { width: min(100%, 280px); } #hero.hero--imagen .hero-media .destacada { max-width: 280px; } }

/* Sobre Acceso: la frase destacada ocupa todo el ancho, bajo el texto y la imagen */
#hero.hero--imagen .hero-grid > .destacada { grid-column: 1 / -1; max-width: none; margin: var(--ac-space-4) 0 0; padding-left: var(--ac-space-6); font-size: clamp(1.75rem, 1.2rem + 2vw, 2.5rem); line-height: 1.2; }
.hero--imagen .hero-media img { width: min(100%, 340px); }

/* Sobre Acceso: frase algo más pequeña y menos margen entre los elementos del hero */
#hero.hero--imagen { padding-block: clamp(1.75rem, 3.5vw, 2.5rem); }
.hero--imagen .hero-grid { row-gap: var(--ac-space-2); }
#hero.hero--imagen .hero-grid > .destacada { margin-top: 0; padding-left: var(--ac-space-4); font-size: clamp(1.375rem, 1rem + 1.4vw, 1.875rem); line-height: 1.2; }

/* Metodología: diagrama circular en el hero, con colores para fondo oscuro */
.hero--ciclo .hero-grid { align-items: center; }
.hero--ciclo .hero-media .c360-svg { max-width: 460px; }
.hero--ciclo .c360-arco { stroke: var(--ac-sky); }
.hero--ciclo .c360-arco--vuelta { stroke: #FFFFFF; }
.hero--ciclo .c360-punta { fill: var(--ac-sky); }
.hero--ciclo .c360-punta--vuelta { fill: #FFFFFF; }
.hero--ciclo .c360-nodo { fill: var(--ac-ink); stroke: var(--ac-sky); }
.hero--ciclo .c360-num { fill: #FFFFFF; }
.hero--ciclo .c360-nombre, .hero--ciclo .c360-centro { fill: #FFFFFF; }
.hero--ciclo .c360-prefijo { fill: var(--ac-sky); }

/* Diagrama del ciclo: logos en los nodos, número como insignia y letra mayor */
.c360-nombre { font-size: 23px; }
.c360-num { font-size: 13px; fill: #FFFFFF; }
.c360-badge { fill: var(--ac-blue); }
.c360-ico { filter: brightness(0) saturate(100%) invert(23%) sepia(89%) saturate(1674%) hue-rotate(181deg) brightness(83%) contrast(102%); transform-box: fill-box; transform-origin: center; }
.c360-ico--diagnostica { transform: scale(1.3); }
.c360-ico--valida { transform: scale(.8); }
.c360-ico--audita { transform: scale(.85); }
.c360-ico--guia { transform: scale(.78); }
.c360-ico--cumple { transform: scale(1.25); }
.hero--ciclo .c360-ico { filter: brightness(0) invert(1); }
.hero--ciclo .c360-badge { fill: #FFFFFF; }
.hero--ciclo .c360-num { fill: var(--ac-ink); }
.hero--ciclo .hero-media .c360-svg { max-width: 540px; }
@media (max-width: 600px) { .c360-nombre { font-size: 31px; } .c360-num { font-size: 15px; } }

/* Diagrama del ciclo: el número dentro del círculo y el logo junto al nombre */
.c360-num { font-size: 22px; font-weight: 700; fill: var(--ac-blue); }
.hero--ciclo .c360-num { fill: #FFFFFF; }
@media (max-width: 600px) { .c360-num { font-size: 28px; } }

.c360-ico--diagnostica { transform: scale(1.2); }
.c360-ico--valida { transform: scale(1.45); }
.c360-ico--audita { transform: scale(1.35); }
.c360-ico--guia { transform: scale(1.5); }
.c360-ico--cumple { transform: scale(1.15); }

.c360-ico--diagnostica { transform: scale(1.6); }
.c360-ico--valida { transform: scale(1.2); }
.c360-ico--audita { transform: scale(1.2); }
.c360-ico--guia { transform: scale(1.25); }
.c360-ico--cumple { transform: scale(1.4); }

/* Metodología: columna de texto más ancha y titular sin límite de caracteres, para que no se parta tanto */
.hero--ciclo .hero-grid { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
#hero.hero--ciclo h1 { max-width: none; }
@media (max-width: 900px) { .hero--ciclo .hero-grid { grid-template-columns: 1fr; } }

/* Metodología: versión simple del ciclo en el hero (solo Acceso360 y flechas) */
.c360s-svg { display: block; width: min(100%, 380px); height: auto; margin-inline: auto; }
.c360s-arco { fill: none; stroke: var(--ac-sky); stroke-width: 5; stroke-linecap: round; }
.c360s-punta { fill: var(--ac-sky); }
.c360s-centro { fill: #FFFFFF; font-family: var(--ac-font-brand); font-size: 50px; font-weight: 700; letter-spacing: -0.02em; }
.c360s-prefijo { fill: var(--ac-sky); }
@media (max-width: 900px) { .c360s-svg { width: min(100%, 300px); } }

/* Sobre Acceso: tres pasos (caso, no es aislado, es sistémico) sobre una misma línea */
.escalera-v { position: relative; display: grid; gap: var(--ac-space-12); margin: var(--ac-space-12) 0 0; padding: 0; list-style: none; }
.escalera-v::before { content: ""; position: absolute; top: 1.25rem; bottom: 1.5rem; left: 1.25rem; width: 2px; margin-left: -1px; background: var(--ac-sky); }
.escalon-v { position: relative; min-width: 0; padding-left: 4rem; }
.ev-num {
  position: absolute; z-index: 1; top: 0; left: 0; display: grid; place-items: center; width: 2.5rem; height: 2.5rem;
  color: var(--ac-blue); background: var(--ac-page); border: 2px solid var(--ac-sky); border-radius: 50%;
  font-family: var(--ac-font-brand); font-weight: 700; line-height: 1;
}
.ev-titulo { margin-bottom: var(--ac-space-4); font-family: var(--ac-font-brand); font-size: var(--ac-size-h2); font-weight: 700; letter-spacing: var(--ac-ls-heading); line-height: var(--ac-lh-heading); }
.paso-card { padding: clamp(1.25rem, 3vw, 2rem); background: var(--ac-page); border: var(--ac-border-w) solid var(--ac-blue); border-radius: var(--ac-radius-etapa); box-shadow: var(--ac-shadow-glow); }
.escalon-v .caso { margin-top: 0; }
.escalon-v .dos-parrafos { margin-top: 0; }
.escalon-v .datos-eu { margin-top: 0; }
@media (max-width: 480px) { .escalon-v { padding-left: 3.25rem; } }

/* Sobre Acceso: etiquetas que ordenan los bloques de la página */
.grupo-etiqueta {
  display: inline-block; margin-bottom: var(--ac-space-4); padding-bottom: var(--ac-space-2);
  color: var(--ac-blue); border-bottom: 2px solid var(--ac-sky);
  font-size: var(--ac-size-eyebrow); font-weight: 700; letter-spacing: var(--ac-ls-eyebrow); text-transform: uppercase;
}

/* Metodología: etapas como línea de tiempo vertical, sin tarjetas ni cabeceras fijas (como en Soluciones) */
.recorrido { --sangria: 4rem; display: grid; gap: var(--ac-space-16); }
.recorrido::before { top: 1.25rem; bottom: 1.25rem; }
.paso-v { position: relative; padding-left: var(--sangria); min-width: 0; }
.paso-v > .lt-num { position: absolute; z-index: 1; top: 0; left: 0; transform: none; color: var(--ac-blue); background: var(--ac-page); }
.paso-v-cab { display: flex; align-items: center; gap: var(--ac-space-3); min-height: 2.5rem; }
.paso-v .paso-icono { flex: none; width: 2.5rem; height: 2.5rem; }
.paso-v .paso-nombre { margin: 0; white-space: nowrap; }
.paso-v .paso-meta { display: block; margin: var(--ac-space-2) 0 0; }
.paso-v-cuerpo { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--ac-space-6); max-width: 52rem; margin-top: var(--ac-space-6); }
@media (max-width: 480px) { .recorrido { --sangria: 3.25rem; } }
.paso-v .faq { max-width: none; margin: 0; }
.paso-v .faq { max-width: none; margin: 0; }
.paso-v .faq details { background: transparent; border: 0; border-top: var(--ac-border-w) solid var(--ac-border); border-radius: 0; }
.paso-v .faq details + details { margin-top: 0; }
.paso-v .faq details:last-child { border-bottom: var(--ac-border-w) solid var(--ac-border); }
.paso-v .faq summary { padding-inline: 0; font-family: var(--ac-font-text); font-size: var(--ac-size-ui); font-weight: 600; letter-spacing: 0; }
.paso-v .faq summary::after { font-family: var(--ac-font-text); font-weight: 400; }
.paso-v .faq details > p, .paso-v .faq details > ul { padding-inline: 0; font-size: var(--ac-size-ui); }
.paso-v .faq details > ul { padding-left: 1.25rem; }
.paso-v .fe-lead { font-size: var(--ac-size-body); line-height: var(--ac-lh-body); font-weight: 600; }
.paso-v .fe-amp { margin-top: var(--ac-space-3); color: var(--ac-text); }
.paso-v .link-row { margin-top: var(--ac-space-6); }
.paso-v { margin-top: 0; border-top: 0; }

/* Metodología: cada etapa con una tarjeta (nombre, texto y etiqueta) y el detalle desplegable al lado, fuera de la tarjeta */
.paso-v-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: var(--ac-space-8); align-items: start; }
.paso-tarjeta { display: flex; flex-direction: column; align-items: flex-start; }
.paso-tarjeta .paso-icono { width: 2.5rem; height: 2.5rem; margin-bottom: var(--ac-space-4); transform-origin: left center; }
.paso-tarjeta .paso-nombre, .paso-tarjeta .paso-nombre .prefijo, .paso-tarjeta .paso-texto { color: var(--ac-ink); }
.paso-tarjeta .paso-nombre { margin: 0 0 var(--ac-space-3); font-size: var(--ac-size-h3); }
.paso-tarjeta .paso-texto { margin: 0 0 var(--ac-space-6); font-size: var(--ac-size-body); line-height: var(--ac-lh-body); }
.paso-tarjeta .paso-meta {
  display: block; width: 100%; margin: auto 0 0; padding-top: var(--ac-space-3);
  border-top: var(--ac-border-w-strong) solid var(--ac-sky);
  color: var(--ac-text-muted); font-size: var(--ac-size-small); font-weight: 600; line-height: 1.4;
}
.paso-lado { min-width: 0; }
.paso-lado .fe-amp { margin-top: 0; }
.paso-lado .faq { margin-top: var(--ac-space-4); }
@media (max-width: 900px) { .paso-v-grid { grid-template-columns: 1fr; } }
.paso-tarjeta .paso-texto--amp { margin-top: calc(-1 * var(--ac-space-3)); }
.paso-lado .faq:first-child { margin-top: 0; }
.paso-tarjeta .prefijo, .paso-tarjeta strong { color: inherit; }

/* Soluciones: tarjeta con nombre, texto y etiqueta, y la lista de servicios al lado, fuera de la tarjeta */
.sol-pila { gap: var(--ac-space-12); }
.sol-v { scroll-margin-top: 6rem; }
.sol-v h2.paso-nombre { max-width: none; }
.sol-v .paso-lado .sol-lista { margin: 0; padding-left: 1.25rem; max-width: none; }
.sol-v .paso-lado .sol-lista li::marker { color: var(--ac-blue); }
.sol-v .paso-lado .link-row { margin-top: var(--ac-space-6); }

/* Soluciones: botón bajo la tarjeta, etiqueta destacada y separadores entre servicios */
.sol-grid { grid-template-areas: "tarjeta lista" "enlace lista"; grid-template-rows: auto 1fr; row-gap: var(--ac-space-6); }
.sol-grid > .paso-tarjeta { grid-area: tarjeta; }
.sol-grid > .sol-lista { grid-area: lista; }
.sol-grid > .sol-enlace { grid-area: enlace; }
.sol-enlace .link-row { margin: 0; }
.sol-v .paso-tarjeta .paso-meta { font-size: var(--ac-size-eyebrow); font-weight: 700; letter-spacing: var(--ac-ls-eyebrow); text-transform: uppercase; line-height: 1.5; }
.sol-v .sol-lista { margin: 0; padding-left: 1.25rem; max-width: none; list-style: disc; }
.sol-v .sol-lista li { margin: 0; padding: 0; border: 0; }
.sol-v .sol-lista li + li { margin-top: var(--ac-space-3); }
.sol-pila { gap: 0; }
.sol-v { padding-block: var(--ac-space-12); }
.sol-v:first-child { padding-top: 0; }
.sol-v:last-child { padding-bottom: 0; }
.sol-v + .sol-v { border-top: var(--ac-border-w-strong) solid var(--ac-sky); }
@media (max-width: 900px) { .sol-grid { grid-template-areas: "tarjeta" "lista" "enlace"; grid-template-rows: auto; } }

/* Móvil: sin imágenes en las cabeceras */
@media (max-width: 900px) {
  .hero--home .hero-media, .hero--imagen .hero-media, .hero--ciclo .hero-media { display: none; }
}

/* Móvil estrecho: la columna única de las etapas no empuja el ancho */
@media (max-width: 900px) { .paso-v-grid { grid-template-columns: minmax(0, 1fr); } .paso-v .link-row a, .paso-lado .link-row a { max-width: 100%; } }

/* Soluciones: bloques sin tarjeta (como Acceso360) y lista con viñeta de marca */
.sol-v.sol360 { align-items: start; }
.sol-v .grupo-etiqueta { margin-bottom: var(--ac-space-3); }
.sol-v h2 { margin-bottom: var(--ac-space-4); }
.sol-v .sol-lista { margin: 0; padding: 0; max-width: none; list-style: none; border: 0; }
.sol-v .sol-lista li { position: relative; margin: 0; padding: 0 0 0 1.75rem; border: 0; font-weight: 400; }
.sol-v .sol-lista li + li { margin-top: var(--ac-space-4); }
.sol-v .sol-lista li::before {
  content: ""; position: absolute; left: 0; top: .4em; width: .875rem; height: .875rem;
  background: var(--ac-blue); border: 2px solid var(--ac-sky); border-radius: 50%; box-sizing: border-box;
}
.sol-v .sol-lista strong { font-weight: 400; }

/* Soluciones: nombres de etapa con enlace a su sección de Metodología */
.linea-tiempo--clara a.tl-item { text-decoration: none; }
.linea-tiempo--clara a.tl-item:hover .lt-nombre { text-decoration: underline; text-underline-offset: .2em; }

.paso-v { scroll-margin-top: 6rem; }
.paso-nombre[id^="etapa-"] { scroll-margin-top: 12rem; }

/* Metodología: tarjeta ancha por etapa y los detalles debajo, en dos columnas con desplegables */
.recorrido .paso-v-grid { grid-template-columns: minmax(0, 1fr); gap: var(--ac-space-6); }
.paso-tarjeta { display: grid; grid-template-columns: 3rem minmax(0, 1fr); column-gap: var(--ac-space-4); align-items: center; }
.paso-tarjeta .paso-icono { grid-column: 1; grid-row: 1; margin: 0; }
.paso-tarjeta .paso-nombre { grid-column: 2; grid-row: 1; margin: 0; }
.paso-tarjeta .paso-texto { grid-column: 1 / -1; max-width: 62rem; margin: var(--ac-space-4) 0 0; }
.paso-tarjeta .paso-texto--amp { margin-top: var(--ac-space-3); }
.paso-tarjeta .paso-meta { grid-column: 1 / -1; margin-top: var(--ac-space-6); }
.recorrido .paso-lado .faq { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ac-space-4); align-items: start; margin-top: 0; }
.recorrido .paso-lado .faq details + details { margin-top: 0; }
.recorrido .paso-lado .link-row { margin: 0 0 var(--ac-space-4); }
@media (max-width: 900px) { .recorrido .paso-lado .faq { grid-template-columns: minmax(0, 1fr); } }
.recorrido .paso-lado .faq details, .recorrido .paso-lado .faq details:last-child { padding-inline: var(--ac-space-4); background: var(--ac-page); border: var(--ac-border-w) solid var(--ac-blue); border-radius: 0; }
.recorrido .paso-lado .faq summary { min-height: var(--ac-target); font-weight: 700; }
@media (max-width: 600px) {
  .paso-tarjeta { grid-template-columns: minmax(0, 1fr); }
  .paso-tarjeta .paso-icono { grid-row: auto; margin-bottom: var(--ac-space-3); }
  .paso-tarjeta .paso-nombre { grid-column: 1; grid-row: auto; white-space: normal; overflow-wrap: anywhere; }
}
.paso-tarjeta .link-row { grid-column: 1 / -1; margin: var(--ac-space-4) 0 0; }
/* Metodología: los desplegables van dentro de la tarjeta de cada etapa */
.paso-tarjeta .faq { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ac-space-4); align-items: start; width: 100%; max-width: none; margin: var(--ac-space-6) 0 0; }
.paso-tarjeta .faq details, .paso-tarjeta .faq details:last-child { margin: 0; padding-inline: var(--ac-space-4); background: var(--ac-page); border: var(--ac-border-w) solid var(--ac-blue); border-radius: 0; }
.paso-tarjeta .faq details + details { margin-top: 0; }
.paso-tarjeta .faq summary { min-height: var(--ac-target); padding-inline: 0; color: var(--ac-ink); font-family: var(--ac-font-text); font-size: var(--ac-size-ui); font-weight: 700; }
.paso-tarjeta .faq details > p, .paso-tarjeta .faq details > ul, .paso-tarjeta .faq details li { color: var(--ac-ink); font-size: var(--ac-size-ui); }
.paso-tarjeta .faq details > p, .paso-tarjeta .faq details > ul { padding-inline: 0; }
.paso-tarjeta .faq details > ul { padding-left: 1.25rem; }
@media (max-width: 900px) { .paso-tarjeta .faq { grid-template-columns: minmax(0, 1fr); } }

/* Sobre Acceso: tres pasos en tarjetas, una al lado de la otra, unidas por una línea con los números */
.tres-pasos { position: relative; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ac-space-6); margin: var(--ac-space-8) 0 0; padding: 0; list-style: none; }
.tres-pasos::before { content: ""; position: absolute; top: 1.25rem; left: 16.66%; right: 16.66%; height: 2px; background: var(--ac-sky); }
.tp { position: relative; min-width: 0; padding-top: 4.5rem; }
.tp-num {
  position: absolute; z-index: 1; top: 0; left: 50%; display: grid; place-items: center; width: 2.5rem; height: 2.5rem; transform: translateX(-50%);
  color: var(--ac-blue); background: var(--ac-page); border: 2px solid var(--ac-sky); border-radius: 50%;
  font-family: var(--ac-font-brand); font-weight: 700; line-height: 1;
}
.tp-card { display: flex; flex-direction: column; gap: var(--ac-space-4); height: 100%; padding: clamp(1.25rem, 2vw, 1.75rem); color: var(--ac-ink); background: var(--ac-page); border: var(--ac-border-w) solid var(--ac-blue); border-radius: var(--ac-radius-etapa); box-shadow: var(--ac-shadow-glow); }
.tp-card h3 { margin: 0; color: var(--ac-ink); font-family: var(--ac-font-brand); font-size: var(--ac-size-h3); line-height: 1.2; }
.tp-card p { margin: 0; font-size: var(--ac-size-ui); line-height: var(--ac-lh-ui); }
.tp-card .caso-etiqueta { align-self: flex-start; }
.tp-destacada { display: flex; flex-direction: column; gap: var(--ac-space-3); margin-top: auto; padding: var(--ac-space-5, 1.25rem); background: linear-gradient(135deg, var(--ac-ink) 0%, var(--ac-navy) 55%, var(--ac-blue) 100%); }
.tp-destacada .caso-destacada { font-size: clamp(1.375rem, 1.1rem + .8vw, 1.75rem); line-height: 1.15; }
.tp-destacada .caso-cierre { font-size: var(--ac-size-ui); }
.tp-datos { display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.tp-datos li { display: grid; gap: var(--ac-space-1); padding: var(--ac-space-4) 0; border-top: var(--ac-border-w) solid var(--ac-border); }
.tp-datos li:first-child { padding-top: 0; border-top: 0; }
.tp-datos .dato-num { font-size: clamp(1.75rem, 1.4rem + 1vw, 2.25rem); }
.tp-datos .pendiente { margin-top: var(--ac-space-1); align-self: start; }
.tp-datos .dato-fuente { margin-top: var(--ac-space-1); }
.tres-pasos + .eu-cierre { max-width: none; text-align: center; margin-inline: auto; }
@media (max-width: 1000px) {
  .tres-pasos { grid-template-columns: minmax(0, 1fr); gap: var(--ac-space-8); }
  .tres-pasos::before { top: 1.25rem; bottom: 1.5rem; left: 1.25rem; right: auto; width: 2px; height: auto; margin-left: -1px; }
  .tp { padding: 0 0 0 4rem; }
  .tp-num { left: 0; transform: none; }
  .tres-pasos + .eu-cierre { text-align: left; }
}
.tp-card p + p, .tp-datos li p + p { margin-top: 0; }
.tp-datos li { gap: var(--ac-space-2); padding: var(--ac-space-3) 0; }
.tp-datos .dato-num { font-size: clamp(1.5rem, 1.2rem + .8vw, 1.875rem); }
.tp-card .pendiente, .tp-card .dato-fuente { margin-top: 0; }
.tp-destacada .caso-destacada { font-size: clamp(1.125rem, 1rem + .4vw, 1.375rem); }
.tp-destacada { padding: var(--ac-space-4); }
.tp-datos li { padding: var(--ac-space-2) 0; }
.tp-datos .dato-num { font-size: clamp(1.375rem, 1.1rem + .6vw, 1.625rem); }
.tp-card .pendiente { padding-block: 0; font-size: var(--ac-size-small); }

/* Sobre Acceso: destacados minimalistas (sin caja azul) e ilustraciones mínimas en las tarjetas */
.tp-destacada, .tp-destacada.ac-inverse { margin-top: auto; padding: 0 0 0 var(--ac-space-4); background: none; border: 0; border-left: 3px solid var(--ac-blue); }
.tp-destacada .caso-destacada { color: var(--ac-blue); font-family: var(--ac-font-brand); font-size: clamp(1.125rem, 1rem + .4vw, 1.375rem); font-weight: 700; line-height: 1.2; letter-spacing: var(--ac-ls-heading); }
.tp-ilu { display: block; width: 100%; max-width: 11rem; height: auto; color: var(--ac-blue); }
.tp-ilu .tp-ilu-suave { stroke: var(--ac-sky); }
.tp-iconos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ac-space-3); margin: 0; padding: 0; list-style: none; }
.tp-iconos li { display: flex; flex-direction: column; align-items: center; gap: var(--ac-space-1); color: var(--ac-ink); font-size: var(--ac-size-small); font-weight: 600; text-align: center; }
.tp-iconos svg { width: 2rem; height: 2rem; color: var(--ac-blue); }

/* Sobre Acceso: marco tintado para las ilustraciones, debajo del texto */
.tp-ilu-caja { display: grid; place-items: center; padding: var(--ac-space-4); background: var(--ac-surface-2); }
.tp-ilu-caja .tp-ilu { max-width: 12rem; }
.tp-ilu-caja .tp-iconos { width: 100%; }

/* Sobre Acceso: gráfico de puntos del último cuadro */
.tp-card > .dato-num { font-family: var(--ac-font-brand); font-size: clamp(2.25rem, 1.7rem + 1.6vw, 3rem); font-weight: 800; line-height: 1; letter-spacing: var(--ac-ls-heading); color: var(--ac-blue); }
.tp-puntos { display: block; width: 100%; max-width: 11rem; height: auto; }
.tp-punto { fill: var(--ac-blue); stroke: var(--ac-blue); stroke-width: 1.5; }
.tp-punto--ok { fill: none; }
.tp-card .dato-fuente { margin: 0; color: var(--ac-text-muted); font-size: var(--ac-size-small); font-weight: 600; }
.tp-card .dato-fuente a { color: var(--ac-blue); text-decoration: underline; text-underline-offset: .2em; }

/* Contacto: formulario en la cabecera y accesos por necesidad */
.contacto-directo { margin-top: var(--ac-space-6); color: var(--ac-light); font-size: var(--ac-size-ui); }
.contacto-directo a { color: #FFFFFF; font-weight: 600; text-underline-offset: .2em; }
.form-pendiente { display: grid; gap: var(--ac-space-3); padding: var(--ac-space-6); background: var(--ac-surface-2); border: var(--ac-border-w) dashed var(--ac-blue); }
.form-pendiente p { margin: 0; color: var(--ac-ink); font-size: var(--ac-size-ui); }
.contacto-atajos { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: var(--ac-space-4); margin: var(--ac-space-8) 0 0; padding: 0; list-style: none; }
a.contacto-atajo { display: flex; flex-direction: column; gap: var(--ac-space-3); height: 100%; padding: var(--ac-space-5, 1.25rem); color: var(--ac-ink); text-decoration: none; background: var(--ac-page); border: var(--ac-border-w) solid var(--ac-blue); border-radius: var(--ac-radius-etapa); box-shadow: var(--ac-shadow-glow); }
.contacto-atajo-icono { width: 2.5rem; height: 2.5rem; object-fit: contain; object-position: left center; filter: brightness(0) saturate(100%) invert(23%) sepia(89%) saturate(1674%) hue-rotate(181deg) brightness(83%) contrast(102%); }
.contacto-atajo-nombre { font-family: var(--ac-font-brand); font-size: var(--ac-size-h4); font-weight: 700; letter-spacing: var(--ac-ls-heading); }
.contacto-atajo-nombre .prefijo { color: var(--ac-blue); }
.contacto-atajo-necesidad { color: var(--ac-ink); font-size: var(--ac-size-ui); line-height: var(--ac-lh-ui); }
a.contacto-atajo:hover .contacto-atajo-nombre { text-decoration: underline; text-underline-offset: .2em; }
#por-donde-empezar .nota { margin-top: var(--ac-space-8); }

/* Partners: formulario con etiquetas visibles y mensajes de error */
.partners-cab { max-width: 46rem; }
.partners-cab .lead { margin-top: var(--ac-space-4); }
.form-partners { max-width: 46rem; margin-top: var(--ac-space-8); }
.form-oblig { margin: 0 0 var(--ac-space-6); color: var(--ac-text-muted); font-size: var(--ac-size-small); font-weight: 600; }
.campo { display: grid; gap: var(--ac-space-2); margin-bottom: var(--ac-space-6); }
.campo label { color: var(--ac-ink); font-weight: 600; line-height: 1.4; }
.campo input[type="text"], .campo input[type="email"], .campo input[type="url"], .campo textarea {
  width: 100%; min-height: var(--ac-target); padding: var(--ac-space-3) var(--ac-space-4); color: var(--ac-ink); background: #FFFFFF;
  border: 2px solid var(--ac-navy); border-radius: 0; font: inherit; line-height: 1.4;
}
.campo textarea { resize: vertical; min-height: 9rem; }
.campo [aria-invalid="true"] { border-color: #A4001B; box-shadow: inset 0 0 0 1px #A4001B; }
.campo-error { margin: 0; color: #A4001B; font-size: var(--ac-size-small); font-weight: 600; line-height: 1.4; }
.casilla-fila { display: flex; align-items: flex-start; gap: var(--ac-space-3); }
.casilla-fila input[type="checkbox"] { flex: none; width: 1.5rem; height: 1.5rem; margin: .1rem 0 0; accent-color: var(--ac-blue); }
.casilla-fila label { font-weight: 400; }
.form-partners .button { margin-top: var(--ac-space-2); cursor: pointer; }
.confirmacion { padding: var(--ac-space-6); background: var(--ac-surface-2); border-left: 3px solid var(--ac-blue); }
.confirmacion h2 { margin: 0 0 var(--ac-space-3); font-size: var(--ac-size-h3); }
.confirmacion p { margin: 0; color: var(--ac-ink); }

/* Partners: foto con bordes redondeados en la cabecera (se oculta en móvil) */
.hero--partners .hero-media img { display: block; width: min(100%, 520px); height: auto; margin-inline: auto; border-radius: 1.5rem; box-shadow: var(--ac-shadow-float); }
.hero--partners .hero-grid { align-items: center; }
@media (max-width: 900px) { .hero--partners .hero-media { display: none; } }

/* Sobre Acceso: título, dibujo y texto; el 91 % junto al gráfico alargado */
.tp-iconos { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.tp-ilu-caja--dato { padding: var(--ac-space-4); }
.tp-dato-linea { display: flex; align-items: center; gap: var(--ac-space-4); width: 100%; }
.tp-dato-linea .dato-num { flex: none; margin: 0; font-family: var(--ac-font-brand); font-size: clamp(1.75rem, 1.4rem + 1vw, 2.25rem); font-weight: 800; line-height: 1; letter-spacing: var(--ac-ls-heading); color: var(--ac-blue); }
.tp-puntos--ancho { flex: 1 1 auto; min-width: 0; max-width: none; }
.tp-iconos { gap: var(--ac-space-2); }
.tp-iconos li { min-width: 0; font-size: .8125rem; overflow-wrap: normal; word-break: normal; hyphens: none; }
.tp-ilu-caja .tp-iconos { padding-inline: 0; }
/* Sobre Acceso: títulos, marcos y destacados con la misma medida en las tres tarjetas */
.tp-card h3 { min-height: 1.2em; }
.tp-ilu-caja { height: 6.75rem; box-sizing: border-box; }
.tp-card > p:not(.dato-fuente) { flex: 0 0 auto; }
.tp-card > .tp-destacada { margin-top: auto; min-height: 6.25rem; display: flex; align-items: center; box-sizing: border-box; }
#acceso360 .grupo-etiqueta { margin-bottom: var(--ac-space-3); }
#acceso360 h2 { margin-bottom: var(--ac-space-4); }
.faq .resumen-texto { flex: 1 1 auto; min-width: 0; }
#pilares.band { padding-block: clamp(2.5rem, 4vw, 3.5rem); }
/* Inicio, sección de la ley: el título llega al ancho del texto y la tarjeta del formulario es de borde redondeado */
#ley .ley-grid .texto h2 { max-width: var(--ac-measure); }
.ley-form { background: #FFFFFF; border: var(--ac-border-w) solid var(--ac-light); border-radius: var(--ac-radius-card); box-shadow: var(--ac-shadow-float); }

/* Diagnóstico: "Qué incluye" bajo la entradilla en escritorio y bajo el formulario en móvil */
.hero--diag .hero-copy { grid-area: copia; }
.hero--diag .form-card { grid-area: formulario; }
.hero--diag .diag-incluye { grid-area: incluye; align-self: start; }
.diag-incluye h2 { margin: 0 0 var(--ac-space-4); font-size: var(--ac-size-h3); color: #FFFFFF; }
.incluye-lista { display: grid; gap: var(--ac-space-3); margin: 0; padding: 0; list-style: none; }
.incluye-item { padding: var(--ac-space-4); background: rgba(255, 255, 255, .06); border: var(--ac-border-w) solid var(--ac-sky); border-radius: var(--ac-radius-etapa); }
.incluye-item h3 { margin: 0 0 var(--ac-space-2); font-size: var(--ac-size-h4); color: #FFFFFF; }
.incluye-item p { margin: 0; color: var(--ac-light); font-size: var(--ac-size-small); line-height: var(--ac-lh-ui); }
@media (min-width: 901px) {
  .hero--diag .hero-grid { grid-template-areas: "copia formulario" "incluye formulario"; grid-template-rows: auto 1fr; }
}
@media (max-width: 900px) {
  .hero--diag .hero-grid { grid-template-areas: "copia" "formulario" "incluye"; }
}

/* Fuente de la cifra del titular de Inicio */
.hero-fuente { margin: var(--ac-space-4) 0 0; color: var(--ac-light); font-size: var(--ac-size-small); }
.hero-fuente a { color: #FFFFFF; text-underline-offset: .2em; }

/* Banner de cookies: con zoom alto o ventanas muy bajas no pierde el texto; se desplaza dentro del propio banner */
html #cc-main .cm { max-height: calc(100vh - 2rem); max-height: calc(100dvh - 2rem); overflow-y: auto; }
/* El banner no oscurece la página (no es modal): su borde lo separa del contenido, con contraste suficiente (WCAG 1.4.11) */
html #cc-main .cm { border: var(--ac-border-w-strong) solid var(--ac-blue); box-shadow: var(--ac-shadow-float); }

/* Páginas legales: declaración de accesibilidad y políticas */
#hero.hero--legal { padding-block: clamp(2.5rem, 5vw, 4rem); background: linear-gradient(135deg, var(--ac-ink) 0%, var(--ac-navy) 55%, var(--ac-blue) 100%); }
.hero--legal h1 { font-size: clamp(2rem, 1.4rem + 2vw, 2.75rem); max-width: 22ch; }
.hero--legal .eyebrow { color: var(--ac-light); }
.legal { max-width: 46rem; }
.legal h2 { margin: var(--ac-space-12) 0 var(--ac-space-4); font-size: var(--ac-size-h3); }
.legal h2:first-child { margin-top: 0; }
.legal h3 { margin: var(--ac-space-8) 0 var(--ac-space-3); }
.legal p { margin: 0 0 var(--ac-space-4); max-width: none; }
.legal ul { margin: 0 0 var(--ac-space-4); padding-left: var(--ac-space-6); }
.legal li + li { margin-top: var(--ac-space-2); }
.tabla-scroll { margin: 0 0 var(--ac-space-6); overflow-x: auto; }
.tabla-legal { width: 100%; min-width: 40rem; border-collapse: collapse; font-size: var(--ac-size-ui); line-height: var(--ac-lh-ui); }
.tabla-legal th, .tabla-legal td { padding: var(--ac-space-3) var(--ac-space-4); text-align: left; vertical-align: top; border: var(--ac-border-w) solid var(--ac-border); }
.tabla-legal thead th { background: var(--ac-surface-2); font-weight: 700; }
.tabla-legal tbody th { font-weight: 600; }
.tabla-legal code { font-family: var(--ac-font-mono); overflow-wrap: anywhere; }
