/*
Theme Name: Estudio Digital
Theme URI: https://example.com/
Author: Estudio digital
Description: Tema a medida para un estudio de soluciones digitales y soporte informático de una sola persona: selector de problemas, servicios con precio a la vista y captación de solicitudes. Sin dependencias externas y sin constructor visual.
Version: 2.0.0
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: estudio-digital
Tags: business, custom-menu, block-styles, wide-blocks, accessibility-ready
*/

/* ==========================================================================
   Índice
   1. Tokens            8. Persona y parte de trabajo
   2. Reinicio          9. Proceso
   3. Piezas comunes   10. Casos
   4. Etiqueta         11. Banda final y pie
   5. Botones          12. Páginas interiores y fichas
   6. Cabecera         13. Planes, servicios y precios
   7. Hero             14. Formulario
                       15. FAQ, listados, buscador
                       16. Preferencias del sistema
   ========================================================================== */

/* ==========================================================================
   1. Tokens
   Paleta «Teide»: lava enfriada, ceniza, basalto, toba y el azufre de las
   fumarolas. Los nombres de las variables describen la función, no el
   color: cambiar de paleta es cambiar solo estas ocho líneas. Los tonos de
   estado se derivan de ellas con color-mix().
   ========================================================================== */

:root {
	--ed-dominante: #2c2232; /* Lava: cabecera, hero, cabeceras de página, pie */
	--ed-fondo:     #f3f2ef; /* Ceniza: fondo general */
	--ed-texto:     #34303a; /* Basalto: texto */
	--ed-linea:     #dcd8dc; /* Toba: bordes y separadores */
	--ed-acento:    #e9dc55; /* Azufre: acción principal, precios y estados */
	--ed-verde:     #26734d; /* Solo resultados positivos y antes/después */
	--ed-rojo:      #b33b36; /* Solo resultados negativos y antes/después */
	--ed-blanco:    #ffffff; /* Superficies que se separan del fondo */

	/* Derivados de la paleta */
	--ed-dominante-2: color-mix(in srgb, var(--ed-dominante) 86%, var(--ed-fondo));
	--ed-acento-2:     color-mix(in srgb, var(--ed-acento) 86%, var(--ed-dominante));
	--ed-acento-3:     color-mix(in srgb, var(--ed-acento) 74%, var(--ed-dominante));
	--ed-acento-suave: color-mix(in srgb, var(--ed-acento) 22%, var(--ed-blanco));
	--ed-texto-2:      color-mix(in srgb, var(--ed-texto) 84%, var(--ed-fondo));
	--ed-linea-2:      color-mix(in srgb, var(--ed-linea) 45%, var(--ed-blanco));

	/* Texto y líneas sobre Lava */
	--ed-sobre-1:     var(--ed-fondo);
	--ed-sobre-2:     color-mix(in srgb, var(--ed-fondo) 78%, var(--ed-dominante));
	--ed-sobre-3:     color-mix(in srgb, var(--ed-fondo) 62%, var(--ed-dominante));
	--ed-sobre-linea: color-mix(in srgb, var(--ed-fondo) 16%, transparent);
	--ed-sobre-velo:  color-mix(in srgb, var(--ed-fondo) 6%, transparent);

	/* Sombras: mínimas, solo para despegar lo que flota */
	--ed-sombra:      0 1px 2px color-mix(in srgb, var(--ed-dominante) 8%, transparent);
	--ed-sombra-menu: 0 12px 28px -16px color-mix(in srgb, var(--ed-dominante) 40%, transparent);
	--ed-anillo:      0 0 0 4px color-mix(in srgb, var(--ed-acento) 55%, transparent);

	--ed-serif: "Platypi", Georgia, "Times New Roman", serif;
	--ed-sans:  "Manrope", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

	/* Escala de tercera mayor (1,25) sobre 17 px */
	--ed-t-0: .8125rem;
	--ed-t-1: .9375rem;
	--ed-t-2: 1.0625rem;
	--ed-t-3: 1.328rem;
	--ed-t-4: clamp(1.3rem, 1.15rem + .6vw, 1.66rem);
	--ed-t-5: clamp(1.6rem, 1.3rem + 1.2vw, 2.075rem);
	--ed-t-6: clamp(1.9rem, 1.45rem + 1.9vw, 2.6rem);
	--ed-t-7: clamp(2.1rem, 1.55rem + 2.5vw, 3.25rem);
	--ed-t-8: clamp(2.5rem, 1.6rem + 4vw, 4.05rem);

	/* Espaciado */
	--ed-1: .25rem;
	--ed-2: .5rem;
	--ed-3: .75rem;
	--ed-4: 1rem;
	--ed-5: 1.5rem;
	--ed-6: 2rem;
	--ed-7: 3rem;
	--ed-8: 4.5rem;

	--ed-seccion: clamp(3.5rem, 2.2rem + 5vw, 6.5rem);

	--ed-ancho:  82rem;
	--ed-gutter: clamp(.5rem, .3rem + 1vw, 1.25rem);
	--ed-medida: 40rem;
	--ed-cabecera: 4.5rem;

	--ed-r:    4px;
	--ed-r-lg: 6px;

	/* El sitio es claro: que los controles nativos y las barras de scroll
	   no se pinten en oscuro sobre las bandas de Lava. */
	color-scheme: light;
}

/* ==========================================================================
   2. Reinicio
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--ed-cabecera) + 1.5rem); }

body {
	margin: 0;
	background: var(--ed-fondo);
	color: var(--ed-texto);
	font-family: var(--ed-sans);
	font-size: var(--ed-t-2);
	font-weight: 450;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

img, svg, video { max-width: 100%; height: auto; display: block; }

h1, h2, h3, h4 {
	margin: 0 0 var(--ed-4);
	color: var(--ed-dominante);
	font-family: var(--ed-serif);
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -.012em;
	text-wrap: balance;
}

h1 { font-size: var(--ed-t-7); letter-spacing: -.02em; line-height: 1.08; }
h2 { font-size: var(--ed-t-5); }
h3 { font-size: var(--ed-t-3); }
h4 { font-size: var(--ed-t-2); }

p, ul, ol, dl, figure, table { margin: 0 0 var(--ed-4); }
p, li { text-wrap: pretty; }

a {
	color: var(--ed-dominante);
	text-decoration-thickness: 1px;
	text-underline-offset: .2em;
}
a:hover { text-decoration-thickness: 2px; }

strong, b { font-weight: 700; color: var(--ed-dominante); }

:focus-visible { outline: 3px solid var(--ed-dominante); outline-offset: 3px; border-radius: 2px; }

hr { border: 0; border-top: 1px solid var(--ed-linea); margin: var(--ed-7) 0; }

mark { background: var(--ed-acento-suave); color: inherit; padding: 0 .2em; }

.screen-reader-text {
	position: absolute !important;
	width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}

.ed-saltar {
	position: absolute; left: var(--ed-4); top: -5rem; z-index: 200;
	background: var(--ed-acento); color: var(--ed-dominante);
	padding: var(--ed-3) var(--ed-5);
	border-radius: var(--ed-r);
	font-weight: 700; text-decoration: none;
	transition: top 140ms ease;
}
.ed-saltar:focus { top: var(--ed-4); }

/* ==========================================================================
   3. Piezas comunes
   ========================================================================== */

.ed-contenedor {
	width: 100%;
	max-width: var(--ed-ancho);
	margin-inline: auto;
	padding-inline: var(--ed-gutter);
}

.ed-seccion { padding-block: var(--ed-seccion); }

.ed-acciones { display: flex; flex-wrap: wrap; gap: var(--ed-3); margin: 0; }

.ed-icono { flex-shrink: 0; }

.ed-enlace {
	display: inline-flex; align-items: center; gap: var(--ed-2);
	color: var(--ed-dominante);
	font-size: var(--ed-t-1); font-weight: 700;
	text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .22em;
}
.ed-enlace .ed-icono { width: 16px; height: 16px; transition: transform 160ms ease; }
.ed-enlace:hover .ed-icono { transform: translateX(3px); }

/* Contextos oscuros: el foco pasa a Azufre */
.ed-cabecera :focus-visible,
.ed-hero :focus-visible,
.ed-pagina__cab :focus-visible,
.ed-pie :focus-visible { outline-color: var(--ed-acento); }

/* ==========================================================================
   4. Etiqueta
   La pieza de azufre del sistema: la etiqueta que se cuelga de un equipo
   revisado. Solo para precios y estados comprobados. El agujero toma el
   color de la superficie sobre la que cuelga (--ed-agujero).
   ========================================================================== */

.ed-etiqueta,
.edig-plan__sello,
.ed-precio__sello {
	position: relative;
	display: inline-flex; align-items: center;
	padding: .32rem .75rem .32rem 1.35rem;
	background: var(--ed-acento);
	color: var(--ed-dominante);
	font-family: var(--ed-sans);
	font-size: var(--ed-t-0);
	font-weight: 750;
	line-height: 1.2;
	letter-spacing: .005em;
	white-space: nowrap;
	clip-path: polygon(.62rem 0, 100% 0, 100% 100%, .62rem 100%, 0 50%);
}

.ed-etiqueta::before,
.edig-plan__sello::before,
.ed-precio__sello::before {
	content: "";
	position: absolute; left: .58rem; top: 50%;
	width: .34rem; height: .34rem; margin-top: -.17rem;
	border-radius: 50%;
	background: var(--ed-agujero, var(--ed-dominante));
}

.ed-etiqueta--grande {
	padding: .5rem 1.1rem .5rem 1.8rem;
	font-family: var(--ed-serif);
	font-size: var(--ed-t-3);
	font-weight: 600;
	letter-spacing: -.01em;
	clip-path: polygon(.85rem 0, 100% 0, 100% 100%, .85rem 100%, 0 50%);
}
.ed-etiqueta--grande::before { left: .8rem; width: .42rem; height: .42rem; margin-top: -.21rem; }

/* ==========================================================================
   5. Botones
   ========================================================================== */

.ed-btn, .edig-btn {
	display: inline-flex; align-items: center; justify-content: center;
	gap: var(--ed-2);
	padding: var(--ed-3) var(--ed-5);
	border: 1.5px solid transparent;
	touch-action: manipulation;
	border-radius: var(--ed-r);
	font-family: var(--ed-sans);
	font-size: var(--ed-t-1);
	font-weight: 700;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
	transition: background-color 140ms ease, border-color 140ms ease, color 140ms ease, transform 80ms ease;
}

/* Principal: Azufre con texto en Lava (contraste 10,7:1) */
.ed-btn--primario, .edig-btn--primary {
	background: var(--ed-acento); border-color: var(--ed-acento); color: var(--ed-dominante);
}
.ed-btn--primario:hover, .edig-btn--primary:hover {
	background: var(--ed-acento-2); border-color: var(--ed-acento-2); color: var(--ed-dominante);
}
.ed-btn--primario:active, .edig-btn--primary:active {
	background: var(--ed-acento-3); border-color: var(--ed-acento-3); color: var(--ed-dominante);
}

/* Oscuro: acción principal sobre fondos Azufre o Ceniza */
.ed-btn--oscuro {
	background: var(--ed-dominante); border-color: var(--ed-dominante); color: var(--ed-fondo);
}
.ed-btn--oscuro:hover { background: var(--ed-dominante-2); border-color: var(--ed-dominante-2); color: var(--ed-fondo); }
.ed-btn--oscuro:active { background: var(--ed-texto); border-color: var(--ed-texto); color: var(--ed-fondo); }

/* Secundario: discreto, borde Toba y texto Lava */
.ed-btn--contorno, .edig-btn--ghost {
	background: transparent; border-color: var(--ed-linea); color: var(--ed-dominante);
}
.ed-btn--contorno:hover, .edig-btn--ghost:hover { background: var(--ed-blanco); border-color: var(--ed-texto-2); color: var(--ed-dominante); }
.ed-btn--contorno:active, .edig-btn--ghost:active { background: var(--ed-linea-2); border-color: var(--ed-texto); color: var(--ed-dominante); }

/* Secundario sobre fondo oscuro */
.ed-btn--claro {
	background: transparent; border-color: var(--ed-sobre-linea); color: var(--ed-fondo);
}
.ed-btn--claro:hover { background: var(--ed-sobre-velo); border-color: var(--ed-sobre-3); color: var(--ed-fondo); }
.ed-btn--claro:active { background: var(--ed-sobre-linea); border-color: var(--ed-fondo); color: var(--ed-fondo); }

.ed-btn:active, .edig-btn:active { transform: translateY(1px); }

.ed-btn:focus-visible, .edig-btn:focus-visible { outline-offset: 3px; }

/* Desactivado: mismo aspecto para cualquier variante */
.ed-btn:disabled, .ed-btn[aria-disabled="true"],
.edig-btn:disabled, .edig-btn[aria-disabled="true"] {
	background: var(--ed-linea); border-color: var(--ed-linea); color: var(--ed-texto-2);
	cursor: not-allowed; transform: none;
}

.ed-btn--grande { padding: 1rem 1.75rem; font-size: var(--ed-t-2); }
.ed-btn--bloque { width: 100%; }

.ed-btn .ed-icono { width: 17px; height: 17px; }

/* ==========================================================================
   6. Cabecera
   ========================================================================== */

.ed-cabecera {
	position: sticky; top: 0; z-index: 100;
	background: var(--ed-dominante);
	border-bottom: 1px solid var(--ed-sobre-linea);
}

.admin-bar .ed-cabecera { top: 32px; }
@media (max-width: 782px) { .admin-bar .ed-cabecera { top: 0; } }

.ed-cabecera__inner {
	display: flex; align-items: center;
	gap: clamp(.75rem, .2rem + 1.2vw, 2rem);
	min-height: var(--ed-cabecera);
}

/* Marca */
.ed-marca { display: inline-flex; align-items: center; gap: .7rem; text-decoration: none; flex-shrink: 0; }

.ed-marca__mark {
	display: grid; place-items: center;
	min-width: 2.5rem; height: 2.5rem; padding-inline: .3rem;
	border-radius: var(--ed-r);
	background: var(--ed-acento);
	color: var(--ed-dominante);
	font-family: var(--ed-serif);
	font-size: 1.0625rem; font-weight: 700;
	letter-spacing: -.02em; line-height: 1;
	white-space: nowrap;
}

.ed-marca__texto { display: grid; line-height: 1.2; }
.ed-marca__nombre { color: var(--ed-sobre-1); font-size: 1rem; font-weight: 750; letter-spacing: -.01em; }
.ed-marca__tag { color: var(--ed-sobre-3); font-size: var(--ed-t-0); font-weight: 500; }
.ed-marca img { max-height: 2.75rem; width: auto; }

/* Navegación */
.ed-nav { margin-inline: auto; min-width: 0; flex: 0 1 auto; }

.ed-nav__lista {
	display: flex; align-items: center; flex-wrap: wrap;
	gap: clamp(1rem, .3rem + 1.2vw, 2rem);
	margin: 0; padding: 0; list-style: none;
}

.ed-nav a {
	position: relative; display: block;
	padding: .4rem 0;
	color: var(--ed-sobre-2);
	font-size: var(--ed-t-1); font-weight: 600;
	text-decoration: none;
	transition: color 140ms ease;
}
.ed-nav a::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -.15rem;
	height: 2px; background: var(--ed-acento);
	transform: scaleX(0); transform-origin: left; transition: transform 160ms ease;
}
.ed-nav a:hover { color: var(--ed-sobre-1); }
.ed-nav a:hover::after,
.ed-nav .current-menu-item > a::after,
.ed-nav .current_page_item > a::after,
.ed-nav .current-menu-ancestor > a::after { transform: scaleX(1); }
.ed-nav .current-menu-item > a,
.ed-nav .current_page_item > a,
.ed-nav .current-menu-ancestor > a { color: var(--ed-sobre-1); }

/* Submenú */
.ed-nav .menu-item-has-children { position: relative; padding-right: .95rem; }
.ed-nav .menu-item-has-children > a::before {
	content: ""; position: absolute; right: -.95rem; top: 50%;
	width: 6px; height: 6px; margin-top: -5px;
	border-right: 1.6px solid currentColor; border-bottom: 1.6px solid currentColor;
	transform: rotate(45deg);
}

.ed-nav .sub-menu {
	position: absolute; top: calc(100% + .9rem); left: -1rem;
	display: grid; min-width: 18rem;
	margin: 0; padding: var(--ed-2); list-style: none;
	background: var(--ed-blanco);
	border-radius: var(--ed-r-lg);
	box-shadow: var(--ed-sombra-menu);
	opacity: 0; visibility: hidden; transform: translateY(-4px);
	transition: opacity 150ms ease, transform 150ms ease, visibility 150ms;
}
.ed-nav .sub-menu::before { content: ""; position: absolute; left: 0; right: 0; top: -1rem; height: 1rem; }
.ed-nav li:hover > .sub-menu,
.ed-nav li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }

.ed-nav .sub-menu a { padding: .6rem .8rem; border-radius: var(--ed-r); color: var(--ed-dominante); font-weight: 600; }
.ed-nav .sub-menu a::after { display: none; }
.ed-nav .sub-menu a:hover,
.ed-nav .sub-menu .current-menu-item > a { background: var(--ed-fondo); color: var(--ed-dominante); }
.ed-nav .sub-menu :focus-visible { outline-color: var(--ed-dominante); }

.ed-cabecera__cta { flex-shrink: 0; }

/* Botón de menú */
.ed-nav-toggle {
	display: none; align-items: center; gap: var(--ed-2);
	margin-left: auto;
	padding: var(--ed-2) var(--ed-3);
	background: transparent;
	touch-action: manipulation;
	border: 1.5px solid color-mix(in srgb, var(--ed-fondo) 30%, transparent);
	border-radius: var(--ed-r);
	font: inherit; font-size: var(--ed-t-1); font-weight: 700;
	color: var(--ed-sobre-1);
	cursor: pointer;
}
.ed-nav-toggle .ed-icono { width: 20px; height: 20px; }
.ed-nav-toggle .ed-icono--cerrar { display: none; }
.ed-nav-toggle[aria-expanded="true"] .ed-icono--menu { display: none; }
.ed-nav-toggle[aria-expanded="true"] .ed-icono--cerrar { display: block; }

@media (max-width: 60rem) {
	.ed-cabecera__inner { flex-wrap: wrap; }
	.ed-nav-toggle { display: inline-flex; order: 3; }
	.ed-cabecera__cta { order: 2; margin-left: auto; }
	.ed-cabecera__cta .ed-btn { padding: .6rem 1rem; font-size: var(--ed-t-0); }
	.ed-marca__tag { display: none; }

	.ed-nav {
		order: 4; flex-basis: 100%; margin-inline: 0;
		display: none;
		padding-block: var(--ed-2) var(--ed-5);
		border-top: 1px solid var(--ed-sobre-linea);
		max-height: calc(100vh - var(--ed-cabecera));
		overflow-y: auto;
		overscroll-behavior: contain;
	}
	.ed-nav.is-abierta { display: block; }

	.ed-nav__lista { flex-direction: column; align-items: stretch; gap: 0; }
	.ed-nav__lista > li { border-bottom: 1px solid var(--ed-sobre-linea); }
	.ed-nav__lista > li:last-child { border-bottom: 0; }

	.ed-nav a { padding: .9rem 0; font-size: var(--ed-t-2); }
	.ed-nav a::after { display: none; }
	.ed-nav .menu-item-has-children { padding-right: 0; }
	.ed-nav .menu-item-has-children > a::before { right: .3rem; }

	.ed-nav .sub-menu {
		position: static; opacity: 1; visibility: visible; transform: none;
		min-width: 0; margin: 0 0 var(--ed-3);
		padding: 0 0 0 var(--ed-4);
		background: transparent; border-left: 2px solid var(--ed-acento);
		border-radius: 0; box-shadow: none;
	}
	.ed-nav .sub-menu::before { display: none; }
	.ed-nav .sub-menu a { padding: .55rem 0; color: var(--ed-sobre-2); font-size: var(--ed-t-1); }
	.ed-nav .sub-menu a:hover { background: transparent; color: var(--ed-sobre-1); }
	.ed-nav .sub-menu :focus-visible { outline-color: var(--ed-acento); }
}

/* En móvil caben marca, botón y menú en una sola fila */
@media (max-width: 30rem) {
	.ed-cabecera__inner { gap: .5rem; }
	.ed-marca__texto { display: none; }
	.ed-nav-toggle { padding: var(--ed-2); }
	.ed-nav-toggle span { display: none; }
}

/* ==========================================================================
   7. Hero: selector de problemas
   Rediseño: lista de tarjetas sobre un casi-negro tintado a Lava, con badge
   de icono circular, precio en pastilla de azufre y flecha. La variante clara
   de la 404 reutiliza las piezas base de .ed-triage, que se conservan tal cual.
   ========================================================================== */

.ed-hero {
	/* Casi negro, pero tirando a Lava: la marca, no un #111 neutro. */
	--hero-bg:       color-mix(in srgb, var(--ed-dominante) 60%, #000);
	--hero-card:     color-mix(in srgb, var(--ed-dominante) 84%, #000);
	--hero-card-2:   color-mix(in srgb, var(--ed-dominante) 72%, #000);
	--hero-linea:    color-mix(in srgb, var(--ed-fondo) 9%, transparent);
	--hero-apagado:  color-mix(in srgb, var(--ed-fondo) 52%, var(--hero-bg));

	background: var(--hero-bg);
	color: var(--ed-sobre-2);
	padding-block: clamp(2.5rem, 1.2rem + 5vw, 5.5rem) clamp(3rem, 1.5rem + 5vw, 6rem);
}

.ed-hero__grid {
	display: grid;
	gap: clamp(2rem, 1rem + 3vw, 4rem);
}

@media (min-width: 64rem) {
	.ed-hero__grid {
		grid-template-columns: minmax(0, 4.5fr) minmax(0, 7.5fr);
		gap: clamp(3rem, 1rem + 4vw, 5rem);
		align-items: start;
	}
	.ed-hero__cab { position: sticky; top: calc(var(--ed-cabecera) + 2rem); }
}

/* Eyebrow: raya + rótulo en azufre (pedido en el mockup). */
.ed-hero__eyebrow {
	display: flex; align-items: center; gap: .75rem;
	margin: 0 0 var(--ed-5);
	color: var(--ed-acento);
	font-size: var(--ed-t-0);
	font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
}
.ed-hero__eyebrow::before { content: ""; width: 2.25rem; height: 2px; background: var(--ed-acento); }

.ed-hero__titulo {
	margin-bottom: var(--ed-5);
	color: #fff;
	font-size: var(--ed-t-8);
	font-weight: 600;
	line-height: 1.02;
	letter-spacing: -.03em;
}

.ed-hero__entrada {
	max-width: 34ch;
	margin-bottom: var(--ed-6);
	color: var(--ed-sobre-2);
	font-size: var(--ed-t-3);
	line-height: 1.5;
}

/* Línea de persona: divisor corto en azufre e icono. */
.ed-hero__persona {
	position: relative;
	display: flex; align-items: center; gap: var(--ed-3);
	max-width: 38ch; margin: 0;
	padding-top: var(--ed-5);
	color: var(--ed-sobre-3);
	font-size: var(--ed-t-1); line-height: 1.5;
}
.ed-hero__persona::before { content: ""; position: absolute; top: 0; left: 0; width: 3rem; height: 2px; background: var(--ed-acento); }
.ed-hero__persona-icono { flex-shrink: 0; display: grid; place-items: center; width: 2.25rem; height: 2.25rem; color: var(--ed-acento); }
.ed-hero__persona-icono svg { width: 22px; height: 22px; }

/* --------- Lista de tarjetas (solo en el hero) --------- */
.ed-hero .ed-triage { display: grid; gap: var(--ed-3); border: 0; }
.ed-hero .ed-triage li { border: 0; }

.ed-hero .ed-triage__fila {
	display: grid;
	grid-template-columns: 3.25rem minmax(0, 1fr) auto 1.25rem;
	align-items: center;
	gap: clamp(.9rem, .5rem + 1vw, 1.5rem);
	padding: clamp(.85rem, .6rem + .6vw, 1.15rem) clamp(1rem, .7rem + .8vw, 1.5rem);
	background: var(--hero-card);
	border: 1px solid var(--hero-linea);
	border-radius: 14px;
	color: #fff; text-decoration: none;
	transition: background-color 160ms ease, border-color 160ms ease;
}

.ed-hero .ed-triage__icono {
	display: grid; place-items: center;
	width: 3.25rem; height: 3.25rem;
	border-radius: 12px;
	background: var(--hero-card-2);
	border: 1px solid var(--hero-linea);
	color: var(--ed-acento);
}
.ed-hero .ed-triage__icono svg { width: 24px; height: 24px; }

.ed-hero .ed-triage__texto { display: grid; gap: .1rem; min-width: 0; }
.ed-hero .ed-triage__problema {
	font-family: var(--ed-serif);
	font-size: clamp(1.2rem, 1.05rem + .5vw, 1.5rem);
	font-weight: 500; line-height: 1.2; letter-spacing: -.01em;
	color: #fff;
}
.ed-hero .ed-triage__servicio { color: var(--hero-apagado); font-size: var(--ed-t-0); font-weight: 600; }

/* Precio en pastilla de azufre, con punto, como el mockup. */
.ed-hero .ed-triage__precio {
	display: inline-flex; align-items: center; gap: .5rem;
	padding: .45rem .85rem;
	background: var(--ed-acento); color: var(--ed-dominante);
	border-radius: 999px;
	font-size: var(--ed-t-0); font-weight: 750; line-height: 1.2; white-space: nowrap;
}
.ed-hero .ed-triage__precio::before { content: ""; width: .4rem; height: .4rem; border-radius: 50%; background: var(--ed-dominante); }

.ed-hero .ed-triage__flecha { width: 20px; height: 20px; color: var(--hero-apagado); transition: transform 160ms ease, color 160ms ease; }

.ed-hero .ed-triage__fila:hover,
.ed-hero .ed-triage__fila:focus-visible {
	background: var(--hero-card-2);
	border-color: color-mix(in srgb, var(--ed-acento) 40%, var(--hero-linea));
}
.ed-hero .ed-triage__fila:hover .ed-triage__flecha,
.ed-hero .ed-triage__fila:focus-visible .ed-triage__flecha { transform: translateX(4px); color: var(--ed-acento); }
.ed-hero .ed-triage__fila:hover .ed-triage__problema { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .2em; }
.ed-hero .ed-triage__fila:focus-visible { outline-offset: 3px; }

/* Entrada: una sola secuencia al cargar, dentro de no-preference para que con
   movimiento reducido la página ya esté montada. */
@media (prefers-reduced-motion: no-preference) {
	.ed-hero__eyebrow { opacity: 0; animation: ed-entra 420ms cubic-bezier(.22, .61, .36, 1)        forwards; }
	.ed-hero__titulo  { opacity: 0; animation: ed-entra 420ms cubic-bezier(.22, .61, .36, 1)  60ms  forwards; }
	.ed-hero__entrada { opacity: 0; animation: ed-entra 420ms cubic-bezier(.22, .61, .36, 1) 120ms  forwards; }
	.ed-hero__persona { opacity: 0; animation: ed-entra 420ms cubic-bezier(.22, .61, .36, 1) 200ms  forwards; }

	.ed-hero .ed-triage li {
		opacity: 0;
		transform: translateY(14px);
		animation: ed-entra 420ms cubic-bezier(.22, .61, .36, 1) forwards;
	}
	.ed-hero .ed-triage li:nth-child(1) { animation-delay: 120ms; }
	.ed-hero .ed-triage li:nth-child(2) { animation-delay: 200ms; }
	.ed-hero .ed-triage li:nth-child(3) { animation-delay: 280ms; }
	.ed-hero .ed-triage li:nth-child(4) { animation-delay: 360ms; }
	.ed-hero .ed-triage li:nth-child(5) { animation-delay: 440ms; }
	.ed-hero .ed-triage li:nth-child(6) { animation-delay: 520ms; }
	.ed-hero .ed-triage li:nth-child(n + 7) { animation-delay: 600ms; }

	.ed-hero__otro { opacity: 0; animation: ed-entra 420ms cubic-bezier(.22, .61, .36, 1) 680ms forwards; }
}

@keyframes ed-entra {
	to { opacity: 1; transform: none; }
}

.ed-hero__otro { margin: var(--ed-6) 0 0; color: var(--ed-sobre-2); font-size: var(--ed-t-1); }
.ed-hero__otro a { color: var(--ed-acento); font-weight: 700; }

/* --------- Piezas base de .ed-triage, que reutiliza la 404 --------- */
.ed-triage {
	--ed-agujero: var(--ed-dominante);
	margin: 0; padding: 0; list-style: none;
	border-top: 1px solid var(--ed-sobre-linea);
}
.ed-triage li { border-bottom: 1px solid var(--ed-sobre-linea); }
.ed-triage__fila {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto 1.25rem;
	align-items: center;
	gap: clamp(.75rem, .4rem + 1vw, 1.5rem);
	padding: clamp(.8rem, .6rem + .4vw, 1.05rem) .25rem;
	color: var(--ed-sobre-1);
	text-decoration: none;
	touch-action: manipulation;
	transition: background-color 160ms ease, padding 160ms ease;
}
.ed-triage__texto { display: grid; gap: .15rem; min-width: 0; }
.ed-triage__problema {
	font-family: var(--ed-serif);
	font-size: clamp(1.25rem, 1.05rem + .6vw, 1.55rem);
	font-weight: 500; line-height: 1.2; letter-spacing: -.01em;
}
.ed-triage__servicio { color: var(--ed-sobre-3); font-size: var(--ed-t-0); font-weight: 600; }
.ed-triage__flecha { width: 20px; height: 20px; color: var(--ed-sobre-3); transition: transform 160ms ease, color 160ms ease; }

/* Variante clara (404) */
.ed-triage--claro { --ed-agujero: var(--ed-fondo); border-top-color: var(--ed-linea); }
.ed-triage--claro li { border-bottom-color: var(--ed-linea); }
.ed-triage--claro .ed-triage__fila { color: var(--ed-dominante); }
.ed-triage--claro .ed-triage__fila:hover,
.ed-triage--claro .ed-triage__fila:focus-visible { background: var(--ed-blanco); padding-inline: .9rem .6rem; }
.ed-triage--claro .ed-triage__servicio,
.ed-triage--claro .ed-triage__flecha { color: var(--ed-texto-2); }
.ed-triage--claro .ed-triage__fila:hover .ed-triage__flecha { color: var(--ed-dominante); }

@media (max-width: 34rem) {
	.ed-triage--claro .ed-triage__fila { grid-template-columns: minmax(0, 1fr) 1.25rem; row-gap: .6rem; }
	.ed-triage--claro .ed-triage__precio { grid-row: 2; justify-self: start; }
	.ed-triage--claro .ed-triage__flecha { grid-row: 1; grid-column: 2; }

	/* Hero en móvil: el icono ocupa dos filas, el precio baja bajo el texto. */
	.ed-hero .ed-triage__fila { grid-template-columns: 3rem minmax(0, 1fr) 1.25rem; row-gap: .5rem; column-gap: .9rem; }
	.ed-hero .ed-triage__icono { grid-row: span 2; width: 2.75rem; height: 2.75rem; align-self: start; }
	.ed-hero .ed-triage__icono svg { width: 21px; height: 21px; }
	.ed-hero .ed-triage__precio { grid-column: 2; justify-self: start; }
	.ed-hero .ed-triage__flecha { grid-row: 1; grid-column: 3; align-self: start; margin-top: .5rem; }
}

/* ==========================================================================
   8. Persona y parte de trabajo
   ========================================================================== */

.ed-persona { background: var(--ed-fondo); }

.ed-persona__grid { display: grid; gap: clamp(2.5rem, 1.5rem + 3vw, 4rem); align-items: start; }

@media (min-width: 64rem) {
	.ed-persona__grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(3rem, 1rem + 5vw, 6rem); }
}

.ed-persona h2 { font-size: var(--ed-t-6); max-width: 22ch; margin-bottom: var(--ed-5); }

.ed-persona__entrada {
	max-width: 50ch;
	margin-bottom: var(--ed-6);
	color: var(--ed-texto);
	font-size: var(--ed-t-3);
	line-height: 1.55;
}

.ed-compromisos { margin: 0 0 var(--ed-6); padding: 0; list-style: none; max-width: 46rem; }
.ed-compromisos li {
	display: grid; gap: .25rem var(--ed-6);
	padding-block: var(--ed-4);
	border-top: 1px solid var(--ed-linea);
}
.ed-compromisos li:last-child { border-bottom: 1px solid var(--ed-linea); }

@media (min-width: 40rem) {
	.ed-compromisos li { grid-template-columns: 15rem minmax(0, 1fr); }
}

.ed-compromisos h3 {
	margin: 0;
	font-family: var(--ed-sans);
	font-size: var(--ed-t-2);
	font-weight: 750;
	letter-spacing: 0;
	line-height: 1.45;
}
.ed-compromisos p { margin: 0; font-size: var(--ed-t-1); line-height: 1.6; }

.ed-persona__firma {
	margin: 0 0 var(--ed-6);
	color: var(--ed-dominante);
	font-family: var(--ed-serif);
	font-size: var(--ed-t-4);
	font-weight: 500;
}

.ed-persona__media { position: relative; }

.ed-retrato { margin: 0; border-radius: var(--ed-r-lg); overflow: hidden; background: var(--ed-linea); }
.ed-retrato img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }

.ed-persona__grid--foto .ed-parte {
	width: min(100%, 24rem);
	margin: -6rem 0 0 auto;
	margin-right: clamp(-1rem, -3vw, 0rem);
}

/* El parte: una hoja de trabajo, no una tarjeta más */
.ed-parte {
	--ed-agujero: var(--ed-blanco);
	position: relative;
	margin: 0;
	padding: clamp(1.25rem, 1rem + 1vw, 2rem);
	background: var(--ed-blanco);
	border-radius: 0 0 var(--ed-r-lg) var(--ed-r-lg);
	border: 1px solid var(--ed-linea);
	border-top: 5px solid var(--ed-dominante);
}

.ed-parte__sello {
	position: absolute; top: -.95rem; right: 1.5rem;
	transform: rotate(-5deg);
	transform-origin: left center;
}

.ed-parte__cab { display: grid; gap: .2rem; margin-bottom: var(--ed-5); padding-right: 6rem; }
.ed-parte__titulo { color: var(--ed-dominante); font-family: var(--ed-serif); font-size: var(--ed-t-4); font-weight: 600; line-height: 1.15; }
.ed-parte__sub { color: var(--ed-texto-2); font-size: var(--ed-t-0); font-weight: 600; }

.ed-parte__lista { margin: 0; }
.ed-parte__fila { padding-block: .85rem; border-top: 1px dashed var(--ed-linea); }
.ed-parte__fila dt { color: var(--ed-dominante); font-size: var(--ed-t-1); font-weight: 750; }
.ed-parte__fila dd { margin: .1rem 0 0; color: var(--ed-texto); font-size: var(--ed-t-1); line-height: 1.5; }

/* ==========================================================================
   9. Proceso
   En la portada: cinco tarjetas pastel con badge de icono, número de color y
   flechas (mockup). La versión dentro de una página se conserva como lista
   vertical. El estilo de tarjetas va acotado a .ed-proceso.
   ========================================================================== */

.ed-proceso { background: var(--ed-blanco); }

.ed-proceso__cab {
	display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between;
	gap: var(--ed-3) var(--ed-6);
	margin-bottom: var(--ed-7);
}
.ed-proceso__cab h2 { margin: 0; font-size: var(--ed-t-6); }
.ed-proceso__cab p { margin: 0; max-width: 42ch; }

.edig-proceso {
	display: grid;
	gap: var(--ed-6) var(--ed-5);
	margin: 0; padding: 0; list-style: none;
	grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
}

.edig-proceso__paso { padding-top: var(--ed-4); border-top: 2px solid var(--ed-dominante); }

.edig-proceso__cab { display: block; margin-bottom: var(--ed-3); }
.edig-proceso__cab .ed-icono { display: none; }

.edig-proceso__num {
	display: block;
	color: var(--ed-dominante);
	font-family: var(--ed-serif);
	font-size: 2.75rem;
	font-weight: 400;
	line-height: 1;
	font-variant-numeric: lining-nums;
}

.edig-proceso__titulo {
	margin: 0 0 var(--ed-2);
	font-family: var(--ed-sans);
	font-size: var(--ed-t-2);
	font-weight: 750;
	letter-spacing: 0;
	line-height: 1.35;
}
.edig-proceso__paso p { margin: 0; font-size: var(--ed-t-1); line-height: 1.6; }

/* Dentro de una página: lista vertical, que la columna es estrecha */
.ed-contenido .edig-proceso { grid-template-columns: 1fr; gap: 0; margin-bottom: var(--ed-6); }
.ed-contenido .edig-proceso__paso {
	display: grid; grid-template-columns: 3.25rem minmax(0, 1fr); column-gap: var(--ed-3);
	padding-block: var(--ed-4); border-top: 1px solid var(--ed-linea);
}
.ed-contenido .edig-proceso__cab { grid-row: span 2; margin: 0; }
.ed-contenido .edig-proceso__num { font-size: 2rem; }
.ed-contenido .edig-proceso__titulo { margin: .2rem 0 .1rem; }

/* --------------------------------------------------------------------------
   Portada: tarjetas pastel (mockup). Paleta propia de la sección.
   -------------------------------------------------------------------------- */
.ed-proceso {
	--p-azul:  #2f6fed; --p-azul-bg:  #eef4fe; --p-azul-badge:  #dbe8fd;
	--p-mora:  #6d4df0; --p-mora-bg:  #f3f0ff; --p-mora-badge:  #e6dfff;
	--p-verde: #109f6d; --p-verde-bg: #e8f8f0; --p-verde-badge: #d1f0e1;
	--p-ambar: #cf7a08; --p-ambar-bg: #fff4e6; --p-ambar-badge: #ffe6c7;
	--p-tinta: #0f2742; /* navy de titulares */
	--p-texto: #4a5568; /* gris de cuerpo */
}

/* Encabezado: raya azul + título navy en sans pesada. */
.ed-proceso .ed-proceso__cab h2 {
	font-family: var(--ed-sans);
	font-size: clamp(2rem, 1.4rem + 2.4vw, 3.1rem);
	font-weight: 800; letter-spacing: -.02em; line-height: 1.05;
	color: var(--p-tinta);
}
.ed-proceso .ed-proceso__cab h2::before {
	content: ""; display: block;
	width: 3.5rem; height: 5px; border-radius: 3px;
	background: var(--p-azul); margin-bottom: var(--ed-4);
}
.ed-proceso .ed-proceso__cab p { color: var(--p-texto); font-size: var(--ed-t-3); line-height: 1.5; }

@media (min-width: 64rem) {
	.ed-proceso .edig-proceso { grid-template-columns: repeat(5, 1fr); gap: var(--ed-5); align-items: stretch; }
}

.ed-proceso .edig-proceso__paso {
	position: relative;
	padding: clamp(1.25rem, 1rem + 1vw, 1.75rem) clamp(1.1rem, .9rem + .6vw, 1.5rem) clamp(1.5rem, 1.2rem + 1vw, 2rem);
	border: 0; border-radius: 18px;
	background: var(--paso-bg, var(--p-azul-bg));
}
.ed-proceso .edig-proceso__paso:nth-child(1) { --paso: var(--p-azul);  --paso-bg: var(--p-azul-bg);  --paso-badge: var(--p-azul-badge); }
.ed-proceso .edig-proceso__paso:nth-child(2) { --paso: var(--p-mora);  --paso-bg: var(--p-mora-bg);  --paso-badge: var(--p-mora-badge); }
.ed-proceso .edig-proceso__paso:nth-child(3) { --paso: var(--p-verde); --paso-bg: var(--p-verde-bg); --paso-badge: var(--p-verde-badge); }
.ed-proceso .edig-proceso__paso:nth-child(4) { --paso: var(--p-ambar); --paso-bg: var(--p-ambar-bg); --paso-badge: var(--p-ambar-badge); }
.ed-proceso .edig-proceso__paso:nth-child(5) { --paso: var(--p-azul);  --paso-bg: var(--p-azul-bg);  --paso-badge: var(--p-azul-badge); }

/* Badge de icono con número superpuesto. */
.ed-proceso .edig-proceso__cab {
	position: relative;
	display: inline-grid; place-items: center;
	width: 4rem; height: 4rem;
	margin-bottom: var(--ed-5);
	border-radius: 50%;
	background: var(--paso-badge);
}
.ed-proceso .edig-proceso__cab .ed-icono { display: block; width: 30px; height: 30px; color: var(--paso); }
.ed-proceso .edig-proceso__num {
	position: absolute; top: -5px; right: -5px;
	display: grid; place-items: center;
	width: 1.55rem; height: 1.55rem;
	border-radius: 50%;
	background: var(--paso); color: #fff;
	border: 2px solid var(--paso-bg);
	font-family: var(--ed-sans); font-size: .82rem; font-weight: 700; line-height: 1;
}
.ed-proceso .edig-proceso__titulo { margin: 0 0 var(--ed-3); color: var(--p-tinta); font-size: var(--ed-t-3); font-weight: 750; line-height: 1.2; }
.ed-proceso .edig-proceso__paso p { color: var(--p-texto); font-size: var(--ed-t-1); line-height: 1.6; }

/* Flecha entre tarjetas (solo en fila, escritorio). */
@media (min-width: 64rem) {
	.ed-proceso .edig-proceso__paso:not(:last-child)::after {
		content: "";
		position: absolute; z-index: 1;
		top: calc(clamp(1.25rem, 1rem + 1vw, 1.75rem) + 2rem);
		right: calc(var(--ed-5) / -2);
		transform: translate(50%, -50%);
		width: 20px; height: 20px;
		background: #9aa4b2;
		-webkit-mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M4.5 12h15M13.5 6l6 6-6 6"/></svg>') center/contain no-repeat;
		        mask: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="black" stroke-width="2.2" stroke-linecap="round" stroke-linejoin="round"><path d="M4.5 12h15M13.5 6l6 6-6 6"/></svg>') center/contain no-repeat;
	}
}

/* ==========================================================================
   10. Casos
   ========================================================================== */

.ed-casos { background: var(--ed-fondo); }

.edig-casos {
	display: grid; gap: var(--ed-5);
	grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
}

.edig-caso {
	position: relative;
	display: flex; flex-direction: column;
	background: var(--ed-blanco);
	border: 1px solid var(--ed-linea);
	border-radius: var(--ed-r-lg);
	overflow: hidden;
}
.edig-caso__imagen { aspect-ratio: 4 / 3; background: var(--ed-linea-2); overflow: hidden; }
.edig-caso__imagen img { width: 100%; height: 100%; object-fit: cover; }
.edig-caso__imagen--vacia { display: grid; place-items: center; color: var(--ed-texto-2); }
.edig-caso__imagen--vacia .ed-icono { width: 34px; height: 34px; }

.edig-caso__cuerpo { padding: var(--ed-4) var(--ed-5) var(--ed-5); }
.edig-caso__titulo { margin: 0 0 var(--ed-1); font-size: var(--ed-t-3); }
.edig-caso__titulo a { text-decoration: none; }
.edig-caso__titulo a::after { content: ""; position: absolute; inset: 0; }
.edig-caso:hover .edig-caso__titulo a { text-decoration: underline; }
.edig-caso__cat { margin: 0; color: var(--ed-texto-2); font-size: var(--ed-t-0); font-weight: 700; }
.edig-caso__texto { margin: var(--ed-2) 0 0; font-size: var(--ed-t-1); }

.edig-caso--ejemplo { border-style: dashed; }

.edig-vacio { color: var(--ed-texto-2); }
.edig-vacio--casos {
	padding: var(--ed-4) var(--ed-5);
	background: var(--ed-blanco);
	border: 1px dashed var(--ed-linea);
	border-radius: var(--ed-r-lg);
	font-size: var(--ed-t-1);
}

.edig-metrica {
	display: flex; flex-wrap: wrap; gap: var(--ed-6);
	margin: var(--ed-4) 0 var(--ed-2);
	padding: var(--ed-4) var(--ed-5);
	background: var(--ed-blanco);
	border: 1px solid var(--ed-linea);
	border-radius: var(--ed-r-lg);
}
.edig-metrica dt { font-size: var(--ed-t-0); font-weight: 700; color: var(--ed-texto-2); }
.edig-metrica dd { margin: 0; font-family: var(--ed-serif); font-size: var(--ed-t-5); font-weight: 600; color: var(--ed-dominante); line-height: 1.1; }
.edig-metrica__antes { color: var(--ed-rojo) !important; }
.edig-metrica__despues { color: var(--ed-verde) !important; }
.edig-metrica__pie { font-size: var(--ed-t-0); color: var(--ed-texto-2); }

/* ==========================================================================
   11. Banda final y pie
   ========================================================================== */

.ed-cta {
	background: var(--ed-acento);
	color: var(--ed-dominante);
	padding-block: clamp(3rem, 2rem + 4vw, 5.5rem);
}

.ed-cta__inner {
	display: grid; gap: var(--ed-6);
	align-items: end;
}

@media (min-width: 56rem) {
	.ed-cta__inner { grid-template-columns: minmax(0, 1fr) auto; gap: var(--ed-8); }
}

.ed-cta h2 { margin: 0 0 var(--ed-3); font-size: var(--ed-t-8); letter-spacing: -.03em; line-height: 1; }
.ed-cta p { margin: 0; max-width: 38ch; color: var(--ed-dominante); font-size: var(--ed-t-3); line-height: 1.45; }

.ed-cta__acciones { display: grid; gap: var(--ed-4); justify-items: start; }
.ed-cta .ed-directo { color: var(--ed-dominante); }
.ed-cta .ed-directo a { color: var(--ed-dominante); }
.ed-cta .edig-pendiente { background: transparent; border-bottom-color: var(--ed-dominante); }

.ed-directo { margin: 0; padding: 0; list-style: none; font-size: var(--ed-t-1); font-weight: 600; }
.ed-directo li { margin: 0 0 .2rem; }
.ed-directo__horario { font-weight: 450; }

.ed-pie {
	position: relative;
	background: var(--ed-dominante);
	color: var(--ed-sobre-3);
	font-size: var(--ed-t-1);
	overflow: hidden;
}

.ed-pie__montana {
	position: absolute; right: 0; bottom: 3.5rem; width: min(40%, 28rem);
	color: color-mix(in srgb, var(--ed-fondo) 5%, transparent);
	pointer-events: none;
}

.ed-pie__inner { position: relative; z-index: 1; }

.ed-pie a { color: var(--ed-sobre-2); text-decoration: none; }
.ed-pie a:hover { color: var(--ed-sobre-1); text-decoration: underline; }

.ed-pie__grid {
	display: grid; gap: var(--ed-6);
	grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
	padding-block: var(--ed-8) var(--ed-6);
}

@media (min-width: 64rem) {
	.ed-pie__grid { grid-template-columns: 1.6fr 1fr 1fr 1.1fr; }
}

.ed-pie__descriptor { margin: var(--ed-4) 0 0; max-width: 30ch; color: var(--ed-sobre-3); }

.ed-pie h2 {
	margin-bottom: var(--ed-4);
	color: var(--ed-sobre-1);
	font-family: var(--ed-sans);
	font-size: var(--ed-t-1);
	font-weight: 750;
	letter-spacing: 0;
}
.ed-pie ul { margin: 0; padding: 0; list-style: none; }
.ed-pie li { margin-bottom: var(--ed-2); }

.ed-pie .edig-pendiente { background: color-mix(in srgb, var(--ed-acento) 14%, transparent); color: var(--ed-acento); border-bottom-color: var(--ed-acento); }

.ed-social { display: flex; gap: var(--ed-2); margin-top: var(--ed-4); }
.ed-social a {
	display: grid; place-items: center;
	width: 2.25rem; height: 2.25rem;
	border-radius: 50%;
	border: 1px solid var(--ed-sobre-linea);
	color: var(--ed-sobre-2);
}
.ed-social a:hover { background: var(--ed-acento); border-color: var(--ed-acento); color: var(--ed-dominante); }
.ed-social .ed-icono { width: 17px; height: 17px; }

.ed-pie__legal {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
	gap: var(--ed-4);
	padding-block: var(--ed-5);
	border-top: 1px solid var(--ed-sobre-linea);
	font-size: var(--ed-t-0);
}
.ed-pie__legal p { margin: 0; }
.ed-pie__legal ul { display: flex; flex-wrap: wrap; gap: var(--ed-2) var(--ed-5); }
.ed-pie__legal li { margin: 0; }

/* ==========================================================================
   12. Páginas interiores y fichas
   ========================================================================== */

.ed-pagina__cab {
	background: var(--ed-dominante);
	color: var(--ed-sobre-2);
	padding-block: clamp(2rem, 1.2rem + 3vw, 4rem) clamp(2.25rem, 1.4rem + 3.5vw, 4.5rem);
}
.ed-pagina__cab h1 { max-width: 20ch; margin-bottom: var(--ed-4); color: var(--ed-sobre-1); }

.ed-entradilla {
	max-width: 56ch; margin: 0;
	color: var(--ed-sobre-2);
	font-size: var(--ed-t-3);
	line-height: 1.5;
}

.ed-migas { margin-bottom: var(--ed-5); color: var(--ed-sobre-3); font-size: var(--ed-t-0); font-weight: 600; }
.ed-migas a { color: var(--ed-sobre-2); text-decoration: none; }
.ed-migas a:hover { color: var(--ed-sobre-1); text-decoration: underline; }
.ed-migas ol { display: flex; flex-wrap: wrap; gap: var(--ed-2); margin: 0; padding: 0; list-style: none; }
.ed-migas li:not(:last-child)::after { content: "/"; margin-left: var(--ed-2); color: var(--ed-sobre-3); }

.ed-pagina__cuerpo {
	display: grid;
	gap: var(--ed-7);
	padding-block: clamp(2.5rem, 1.5rem + 4vw, 5rem);
	align-items: start;
}

@media (min-width: 64rem) {
	.ed-pagina__cuerpo { grid-template-columns: minmax(0, 1fr) 19.5rem; gap: clamp(2.5rem, 1rem + 3vw, 4rem); }
	.ed-pagina--legal .ed-pagina__cuerpo { grid-template-columns: minmax(0, var(--ed-medida)); }
	.ed-pagina__lateral { position: sticky; top: calc(var(--ed-cabecera) + 1.5rem); }
	.admin-bar .ed-pagina__lateral { top: calc(var(--ed-cabecera) + 1.5rem + 32px); }
}

/* En móvil la ficha sube, justo bajo la cabecera de la página, salvo en contacto */
@media (max-width: 63.99rem) {
	.ed-pagina--servicio .ed-pagina__lateral,
	.ed-pagina--general .ed-pagina__lateral { order: -1; }
	.ed-pagina--servicio .ed-indice,
	.ed-pagina--general .ed-directo { display: none; }
}

/* Contenido editorial */
.ed-contenido { min-width: 0; }
.ed-contenido > * { max-width: var(--ed-medida); }
.ed-contenido > .edig-planes,
.ed-contenido > .edig-form-wrap,
.ed-contenido > .edig-casos,
.ed-contenido > .edig-servicios,
.ed-contenido > .edig-proceso,
.ed-contenido > .ed-precios__lista,
.ed-contenido > .alignwide,
.ed-contenido > .alignfull,
.ed-contenido > .ed-destacada { max-width: none; }

.ed-contenido > p:first-child:not(.ed-aviso-legal) {
	margin-bottom: var(--ed-6);
	color: var(--ed-dominante);
	font-family: var(--ed-serif);
	font-size: var(--ed-t-4);
	font-weight: 500;
	line-height: 1.35;
	letter-spacing: -.01em;
}
.ed-contenido > p:first-child strong { font-weight: inherit; }

.ed-contenido > h2 {
	margin: var(--ed-8) 0 var(--ed-4);
	padding-top: var(--ed-5);
	border-top: 1px solid var(--ed-linea);
}
.ed-contenido > h2:first-child { margin-top: 0; }
.ed-contenido > h3 {
	margin: var(--ed-6) 0 var(--ed-2);
	font-family: var(--ed-sans);
	font-size: var(--ed-t-2);
	font-weight: 750;
	letter-spacing: 0;
	line-height: 1.4;
}
.ed-contenido > h3 + p { margin-top: 0; }

.ed-contenido ul:not([class*="edig-"]):not(.ed-directo) { padding: 0; list-style: none; }
.ed-contenido ul:not([class*="edig-"]):not(.ed-directo) > li { position: relative; margin-bottom: var(--ed-3); padding-left: 1.5rem; }
.ed-contenido ul:not([class*="edig-"]):not(.ed-directo) > li::before {
	content: ""; position: absolute; left: 0; top: .8em;
	width: .7rem; height: 2px; background: var(--ed-dominante);
}
.ed-contenido ol { padding-left: 1.4rem; }
.ed-contenido ol > li { margin-bottom: var(--ed-3); }
.ed-contenido ol > li::marker { color: var(--ed-dominante); font-family: var(--ed-serif); font-weight: 600; }

.ed-contenido table { width: 100%; border-collapse: collapse; font-size: var(--ed-t-1); }
.ed-contenido th, .ed-contenido td { padding: var(--ed-3); border-bottom: 1px solid var(--ed-linea); text-align: left; }
.ed-contenido th { color: var(--ed-dominante); }

.ed-destacada { margin: 0 0 var(--ed-6); border-radius: var(--ed-r-lg); overflow: hidden; }

.ed-aviso-legal {
	padding: var(--ed-4) var(--ed-5);
	background: var(--ed-acento-suave);
	border-left: 4px solid var(--ed-acento);
	font-size: var(--ed-t-1);
}

.edig-pendiente { background: var(--ed-acento-suave); color: var(--ed-dominante); border-bottom: 1px dashed var(--ed-dominante); font-size: .95em; }

/* Ficha lateral */
.ed-ficha {
	--ed-agujero: var(--ed-blanco);
	padding: var(--ed-5);
	background: var(--ed-blanco);
	border: 1px solid var(--ed-linea);
	border-radius: var(--ed-r-lg);
}

.ed-ficha__precio { margin: 0 0 var(--ed-3); }
.ed-ficha__titulo { margin: 0 0 var(--ed-3); color: var(--ed-dominante); font-family: var(--ed-serif); font-size: var(--ed-t-3); font-weight: 600; line-height: 1.2; }
.ed-ficha__resumen { margin: 0 0 var(--ed-4); font-size: var(--ed-t-1); line-height: 1.55; }
.ed-ficha__accion { margin: 0 0 var(--ed-3); }
.ed-ficha__nota { margin: 0; color: var(--ed-texto-2); font-size: var(--ed-t-0); line-height: 1.5; }
.ed-ficha .ed-directo { margin-top: var(--ed-4); padding-top: var(--ed-4); border-top: 1px solid var(--ed-linea); }

.ed-ficha__pasos { margin: 0 0 var(--ed-4); padding-left: 1.3rem; font-size: var(--ed-t-1); }
.ed-ficha__pasos li { margin-bottom: var(--ed-2); }
.ed-ficha__pasos li::marker { font-family: var(--ed-serif); font-weight: 600; color: var(--ed-dominante); }

.ed-indice { margin-top: var(--ed-5); padding-top: var(--ed-4); border-top: 1px solid var(--ed-linea); }
.ed-indice__titulo { margin: 0 0 var(--ed-2); color: var(--ed-dominante); font-size: var(--ed-t-0); font-weight: 750; }
.ed-indice ol { margin: 0; padding: 0; list-style: none; font-size: var(--ed-t-0); }
.ed-indice li { margin: 0; }
.ed-indice a { display: block; padding: .3rem 0; color: var(--ed-texto); text-decoration: none; line-height: 1.4; }
.ed-indice a:hover { color: var(--ed-dominante); text-decoration: underline; }

/* ==========================================================================
   13. Planes, servicios y precios
   ========================================================================== */

.edig-planes {
	display: grid; gap: var(--ed-4);
	grid-template-columns: repeat(auto-fit, minmax(14.5rem, 1fr));
	align-items: stretch;
	margin-bottom: var(--ed-5);
}

.edig-plan {
	--ed-agujero: var(--ed-blanco);
	display: flex; flex-direction: column;
	padding: var(--ed-5);
	background: var(--ed-blanco);
	border: 1px solid var(--ed-linea);
	border-radius: var(--ed-r-lg);
}

.edig-plan--destacado {
	border: 2px solid var(--ed-dominante);
	padding: calc(var(--ed-5) - 1px);
}

.edig-plan__sello { align-self: flex-start; margin: 0 0 var(--ed-3); }

.edig-plan__titulo {
	margin: 0 0 var(--ed-3);
	font-family: var(--ed-sans);
	font-size: var(--ed-t-2);
	font-weight: 750;
	letter-spacing: 0;
}

.edig-plan__precio { display: flex; align-items: baseline; flex-wrap: wrap; gap: .3rem; margin: 0 0 var(--ed-2); }
.edig-plan__prefijo, .edig-plan__periodo { color: var(--ed-texto-2); font-size: var(--ed-t-1); font-weight: 600; }
.edig-plan__importe {
	color: var(--ed-dominante);
	font-family: var(--ed-serif);
	font-size: clamp(2rem, 1.6rem + 1.2vw, 2.5rem);
	font-weight: 600;
	letter-spacing: -.02em;
	line-height: 1;
}
.edig-plan__importe--texto { font-size: var(--ed-t-4); }

.edig-plan__nota { margin: 0 0 var(--ed-4); color: var(--ed-texto-2); font-size: var(--ed-t-0); }
.edig-plan__intro { margin-bottom: var(--ed-3); font-size: var(--ed-t-1); }
.edig-plan__intro p:last-child { margin-bottom: 0; }

.edig-plan__subtitulo { margin: var(--ed-4) 0 var(--ed-2); color: var(--ed-dominante); font-size: var(--ed-t-0); font-weight: 750; }

.edig-lista { margin: 0; padding: 0; list-style: none; font-size: var(--ed-t-1); }
.edig-lista li { position: relative; padding-left: 1.4rem; margin-bottom: var(--ed-2); line-height: 1.5; }
.edig-lista li::before { position: absolute; left: 0; top: 0; font-weight: 800; }
.edig-lista--si li::before { content: "+"; color: var(--ed-dominante); }
.edig-lista--no li::before { content: "–"; color: var(--ed-texto-2); }
.edig-lista--no li { color: var(--ed-texto-2); }

.edig-plan__respuesta { margin: var(--ed-4) 0 0; font-size: var(--ed-t-0); }
.edig-plan__cta { margin: auto 0 0; padding-top: var(--ed-5); }
.edig-plan__cta .edig-btn { width: 100%; }

/* Listado de servicios: filas, no tarjetas */
.edig-servicios { display: grid; margin-bottom: var(--ed-5); border-top: 1px solid var(--ed-linea); }

.edig-servicio {
	position: relative;
	display: grid;
	grid-template-columns: 2.5rem minmax(0, 1fr);
	column-gap: var(--ed-4);
	padding-block: var(--ed-4);
	border-bottom: 1px solid var(--ed-linea);
}

.edig-servicio__icono {
	grid-row: span 3;
	display: grid; place-items: center;
	width: 2.5rem; height: 2.5rem;
	border: 1px solid var(--ed-linea);
	border-radius: var(--ed-r);
	background: var(--ed-blanco);
	color: var(--ed-dominante);
}
.edig-servicio__icono .ed-icono { width: 20px; height: 20px; }

.edig-servicio__titulo { margin: 0 0 .15rem; font-size: var(--ed-t-3); }
.edig-servicio__titulo a { text-decoration: none; }
.edig-servicio__titulo a::after { content: ""; position: absolute; inset: 0; }
.edig-servicio:hover .edig-servicio__titulo a { text-decoration: underline; }
.edig-servicio__texto { margin: 0 0 var(--ed-2); font-size: var(--ed-t-1); }
.edig-servicio__enlace { margin: 0; }
.edig-servicio__enlace .ed-enlace { font-size: var(--ed-t-0); }

/* Fila de precios (shortcode heredado) */
.ed-precios__lista { display: grid; gap: var(--ed-4); grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
.ed-precio {
	--ed-agujero: var(--ed-blanco);
	position: relative;
	display: flex; flex-direction: column;
	padding: var(--ed-5);
	background: var(--ed-blanco);
	border: 1px solid var(--ed-linea);
	border-radius: var(--ed-r-lg);
}
.ed-precio__sello { position: absolute; top: -.8rem; right: var(--ed-4); }
.ed-precio__icono { display: none; }
.ed-precio__titulo { margin: 0 0 var(--ed-1); font-size: var(--ed-t-3); }
.ed-precio__importe { margin: 0 0 var(--ed-2); color: var(--ed-dominante); font-weight: 750; }
.ed-precio__texto { margin: 0 0 var(--ed-4); font-size: var(--ed-t-1); }
.ed-precio__enlace { margin-top: auto; }
.ed-precio__enlace a::after { content: ""; position: absolute; inset: 0; }

/* ==========================================================================
   14. Formulario
   ========================================================================== */

.edig-form-wrap { scroll-margin-top: calc(var(--ed-cabecera) + 1.5rem); }
.edig-form__titulo { margin-bottom: var(--ed-5); }

.edig-form {
	padding: clamp(1.25rem, .8rem + 2vw, 2.25rem);
	background: var(--ed-blanco);
	border: 1px solid var(--ed-linea);
	border-top: 5px solid var(--ed-dominante);
	border-radius: 0 0 var(--ed-r-lg) var(--ed-r-lg);
}

.edig-form__grid { display: grid; gap: 0 var(--ed-5); grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }

.edig-field { margin-bottom: var(--ed-5); }
.edig-field label { display: block; margin-bottom: var(--ed-2); color: var(--ed-dominante); font-size: var(--ed-t-1); font-weight: 700; }

.edig-field input[type="text"],
.edig-field input[type="email"],
.edig-field input[type="tel"],
.edig-field input[type="url"],
.edig-field input[type="search"],
.edig-field select,
.edig-field textarea {
	width: 100%;
	padding: .75rem .9rem;
	background: var(--ed-blanco);
	border: 1.5px solid var(--ed-linea);
	border-bottom: 2px solid var(--ed-texto-2);
	border-radius: var(--ed-r);
	font: inherit;
	font-size: var(--ed-t-2);
	color: var(--ed-dominante);
	line-height: 1.4;
	transition: border-color 140ms ease, box-shadow 140ms ease;
}

.edig-field textarea { resize: vertical; min-height: 8rem; }

.edig-field input:focus-visible,
.edig-field select:focus-visible,
.edig-field textarea:focus-visible {
	border-color: var(--ed-dominante);
	box-shadow: var(--ed-anillo);
	outline: none;
}

.edig-field input:hover:not(:focus):not(:disabled),
.edig-field select:hover:not(:focus):not(:disabled),
.edig-field textarea:hover:not(:focus):not(:disabled) { border-color: var(--ed-texto-2); }

.edig-field input:disabled,
.edig-field select:disabled,
.edig-field textarea:disabled { background: var(--ed-linea-2); color: var(--ed-texto-2); cursor: not-allowed; }

.edig-field [aria-invalid="true"] { border-color: var(--ed-rojo); }

.edig-field select {
	appearance: none;
	background-image: linear-gradient(45deg, transparent 50%, var(--ed-dominante) 50%), linear-gradient(135deg, var(--ed-dominante) 50%, transparent 50%);
	background-position: calc(100% - 1.2rem) 55%, calc(100% - .8rem) 55%;
	background-size: 6px 6px, 6px 6px;
	background-repeat: no-repeat;
	padding-right: 2.5rem;
}

.edig-req { color: var(--ed-dominante); }
.edig-opt { font-weight: 450; color: var(--ed-texto-2); }
.edig-help { display: block; margin-top: var(--ed-2); font-size: var(--ed-t-0); color: var(--ed-texto-2); }

/* El error del campo, junto al campo. El resumen de arriba sigue estando
   para quien llega con un lector de pantalla. */
.edig-error {
	display: block;
	margin-top: var(--ed-2);
	color: var(--ed-rojo);
	font-size: var(--ed-t-0);
	font-weight: 700;
	line-height: 1.45;
}

.edig-field--check label {
	display: grid; grid-template-columns: auto 1fr; gap: var(--ed-3);
	align-items: start;
	font-weight: 450; font-size: var(--ed-t-0); line-height: 1.55; color: var(--ed-texto);
}
.edig-field--check input { margin-top: .15rem; width: 1.15rem; height: 1.15rem; accent-color: var(--ed-dominante); }

.edig-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.edig-form__submit { margin: var(--ed-5) 0 0; }
.edig-form__submit .edig-btn { width: 100%; padding-block: 1rem; font-size: var(--ed-t-2); }
.edig-form__garantia { margin: var(--ed-3) 0 0; color: var(--ed-texto-2); font-size: var(--ed-t-0); text-align: center; }

.edig-alert { margin-bottom: var(--ed-5); padding: var(--ed-4) var(--ed-5); border-radius: var(--ed-r); border-left: 4px solid; }
.edig-alert p:last-child, .edig-alert ul:last-child { margin-bottom: 0; }
.edig-alert ul { padding-left: 1.2rem; }
.edig-alert--ok { background: color-mix(in srgb, var(--ed-verde) 9%, var(--ed-blanco)); border-left-color: var(--ed-verde); color: var(--ed-dominante); }
.edig-alert--error { background: color-mix(in srgb, var(--ed-rojo) 8%, var(--ed-blanco)); border-left-color: var(--ed-rojo); color: var(--ed-dominante); }

/* ==========================================================================
   15. FAQ, listados, buscador y paginación
   ========================================================================== */

.ed-faq { max-width: var(--ed-medida); }
.ed-faq details { border-top: 1px solid var(--ed-linea); }
.ed-faq details:last-child { border-bottom: 1px solid var(--ed-linea); }
.ed-faq summary {
	display: flex; justify-content: space-between; align-items: center; gap: var(--ed-4);
	padding: var(--ed-4) 0;
	color: var(--ed-dominante); font-weight: 750;
	cursor: pointer; list-style: none;
}
.ed-faq summary::-webkit-details-marker { display: none; }
.ed-faq summary::after {
	content: ""; flex-shrink: 0; width: 9px; height: 9px;
	border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
	transform: rotate(45deg) translateY(-2px); transition: transform 160ms ease;
}
.ed-faq details[open] summary::after { transform: rotate(225deg) translateY(-2px); }
.ed-faq__respuesta { padding: 0 0 var(--ed-4); }
.ed-faq__respuesta p:last-child { margin-bottom: 0; }

.ed-listado { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--ed-linea); max-width: 48rem; }
.ed-listado__item { padding-block: var(--ed-5); border-bottom: 1px solid var(--ed-linea); }
.ed-listado__item h2 { margin-bottom: var(--ed-2); font-size: var(--ed-t-4); }
.ed-listado__item h2 a { text-decoration: none; }
.ed-listado__item h2 a:hover { text-decoration: underline; }
.ed-listado__item p { margin: 0; }

.ed-404 > * { max-width: 52rem; }
/* El texto corrido se queda en la medida de lectura. Los 52rem son para la
   fila del listado (titular y descripción alineados), no para el párrafo:
   a ese ancho la descripción pasaba de 75 caracteres por línea. */
.ed-404 > p,
.ed-listado__item p { max-width: var(--ed-medida); }
.ed-404__bloque + .ed-404__bloque { margin-top: var(--ed-8); }
.ed-404 h2 { margin-bottom: var(--ed-5); font-size: var(--ed-t-5); }
.ed-404 .ed-listado { max-width: none; }
.ed-404 .ed-listado__item h3 { margin: 0 0 var(--ed-1); font-size: var(--ed-t-4); }
.ed-404 .ed-listado__item h3 a { text-decoration: none; }
.ed-404 .ed-listado__item h3 a:hover { text-decoration: underline; }
.ed-404__nota { margin: var(--ed-5) 0 0; font-size: var(--ed-t-1); }
.ed-404__nota a { font-weight: 700; }

.ed-buscador { display: flex; align-items: flex-end; gap: var(--ed-3); max-width: 30rem; }
.ed-buscador .edig-field { flex: 1; margin-bottom: 0; }
.ed-buscador .ed-btn { padding-block: .85rem; }

.navigation.pagination { margin-top: var(--ed-7); }
.nav-links { display: flex; flex-wrap: wrap; gap: var(--ed-2); }
.nav-links .page-numbers {
	display: grid; place-items: center;
	min-width: 2.5rem; height: 2.5rem; padding-inline: .6rem;
	border: 1px solid var(--ed-linea); border-radius: var(--ed-r);
	color: var(--ed-dominante); text-decoration: none; font-weight: 700; font-size: var(--ed-t-1);
}
.nav-links .page-numbers.current { background: var(--ed-dominante); border-color: var(--ed-dominante); color: var(--ed-fondo); }
.nav-links a.page-numbers:hover { border-color: var(--ed-dominante); }

/* ==========================================================================
   16. Preferencias del sistema
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
	}
}

@media (prefers-contrast: more) {
	:root {
		--ed-texto-2: var(--ed-texto);
		--ed-linea: color-mix(in srgb, var(--ed-linea) 50%, var(--ed-texto));
		--ed-sobre-3: var(--ed-sobre-2);
		--ed-sobre-linea: color-mix(in srgb, var(--ed-fondo) 40%, transparent);
	}
}

@media print {
	.ed-cabecera, .ed-pie, .ed-cta, .edig-form-wrap, .ed-pagina__lateral { display: none !important; }
	body { background: #fff; color: #000; font-size: 11pt; }
	.ed-hero, .ed-pagina__cab { background: #fff; color: #000; }
	.ed-hero__titulo, .ed-pagina__cab h1 { color: #000; }
}
