/* =========================================================================
   Serdeweb — estilos de componente
   Los tokens (color, tipografía, espaciado) están en theme.json.
   ========================================================================= */

html {
	scroll-behavior: smooth;
	/* clip, no hidden: hidden rompería el position:sticky de la cabecera. */
	overflow-x: clip;
}

/* Secciones a sangre completa.
   Funciona aunque la sección esté anidada dentro de un contenedor con ancho
   limitado; si ya está a ancho de ventana, el cálculo da cero y no hace nada. */
.wp-block-group.alignfull {
	width: 100vw;
	max-width: 100vw;
	margin-inline: calc(50% - 50vw);
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
}

/* --- Ripple ------------------------------------------------------------ */

.ripple-host,
.ripple-host .wp-element-button,
.sdw-form .wp-element-button {
	position: relative;
	overflow: hidden;
}

.sdw-ripple-wave {
	position: absolute;
	border-radius: 50%;
	transform: scale(0);
	background: rgba(255, 255, 255, .3);
	animation: sdw-ripple 600ms cubic-bezier(.4, 0, .2, 1) forwards;
	pointer-events: none;
	z-index: 2;
}

.sdw-ripple-wave.is-light {
	background: rgba(0, 71, 179, .12);
}

@keyframes sdw-ripple {
	to { transform: scale(4); opacity: 0; }
}

@media (prefers-reduced-motion: reduce) {
	.sdw-ripple-wave { display: none; }
}

/* --- Cabecera ---------------------------------------------------------- */

.sdw-header {
	background: rgba(255, 255, 255, .88);
	backdrop-filter: blur(10px);
	border-bottom: 1px solid rgba(0, 0, 0, .06);
	transition: box-shadow .3s ease, background-color .3s ease;
}

.sdw-header.is-scrolled {
	background: rgba(255, 255, 255, .97);
	box-shadow: 0 1px 12px rgba(0, 0, 0, .06);
}

.sdw-header .wp-block-navigation a:hover {
	color: var(--wp--preset--color--primary);
}

/* Botón fantasma de la cabecera. */
.sdw-header .wp-block-button.is-style-outline .wp-element-button {
	padding: 9px 16px;
	font-size: var(--wp--preset--font-size--tiny);
}

/* --- Botón outline ----------------------------------------------------- */

.wp-block-button.is-style-outline .wp-element-button {
	background: transparent;
	color: var(--wp--preset--color--primary);
	border: 1px solid var(--wp--preset--color--primary);
}

.wp-block-button.is-style-outline .wp-element-button:hover {
	background: var(--wp--preset--color--primary);
	color: #fff;
}

/* --- Rejilla decorativa del hero --------------------------------------- */

.sdw-hero {
	position: relative;
	isolation: isolate;
}

.sdw-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	pointer-events: none;
	background-image:
		linear-gradient(rgba(0, 71, 179, .04) 1px, transparent 1px),
		linear-gradient(90deg, rgba(0, 71, 179, .04) 1px, transparent 1px);
	background-size: 60px 60px;
}

.sdw-hero::after {
	content: "";
	position: absolute;
	top: 22%;
	left: 30%;
	width: 24rem;
	height: 24rem;
	z-index: -1;
	border-radius: 50%;
	background: rgba(0, 71, 179, .07);
	filter: blur(140px);
	pointer-events: none;
}

/* --- Cifras ------------------------------------------------------------ */

.sdw-stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1px;
	background: rgba(0, 0, 0, .1);
	max-width: 600px;
	margin-inline: auto;
}

.sdw-stat {
	background: #fff;
	padding: 24px 16px;
	text-align: center;
}

.sdw-stat b {
	display: block;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 1.625rem;
	color: var(--wp--preset--color--primary);
	line-height: 1.2;
}

.sdw-stat span {
	display: block;
	margin-top: 4px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--tiny);
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

/* --- Antetítulo de sección --------------------------------------------- */

.sdw-eyebrow {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--tiny);
	letter-spacing: .3em;
	text-transform: uppercase;
	color: var(--wp--preset--color--secondary);
}

/* --- Tarjetas ---------------------------------------------------------- */

.sdw-card {
	transition:
		background-color .25s ease,
		border-color .25s ease,
		box-shadow .3s cubic-bezier(.4, 0, .2, 1);
}

.sdw-card:hover {
	background-color: #f0f4ff;
	border-color: rgba(0, 71, 179, .3);
	box-shadow: 0 10px 32px rgba(0, 71, 179, .12);
}

/* Barra de acento que crece en el borde superior de la tarjeta. */
.sdw-card::after {
	content: "";
	position: absolute;
	inset: -1px auto auto -1px;
	width: calc(100% + 2px);
	height: 2px;
	background: var(--wp--preset--color--primary);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .4s cubic-bezier(.4, 0, .2, 1);
	pointer-events: none;
}

.sdw-card:hover::after {
	transform: scaleX(1);
}

.sdw-card h3 {
	transition: color .2s ease;
}

.sdw-card:hover h3 {
	color: var(--wp--preset--color--primary);
}

/* --- Etiquetas --------------------------------------------------------- */

.sdw-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.sdw-tags li {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--tiny);
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--secondary);
	padding: 4px 8px;
	border: 1px solid rgba(0, 0, 0, .15);
	line-height: 1;
}

/* --- Proceso ----------------------------------------------------------- */

.sdw-step {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 24px;
	padding-block: 28px;
	padding-inline-start: 20px;
	border-bottom: 1px solid var(--wp--preset--color--linea);
	transition: background-color .3s ease;
}

.sdw-step:last-child {
	border-bottom: 0;
}

/* Marca vertical que se despliega al pasar por encima. */
.sdw-step::before {
	content: "";
	position: absolute;
	inset-block: 0;
	inset-inline-start: 0;
	width: 2px;
	background: var(--wp--preset--color--primary);
	transform: scaleY(0);
	transform-origin: top;
	transition: transform .4s cubic-bezier(.4, 0, .2, 1);
}

.sdw-step:hover::before {
	transform: scaleY(1);
}

.sdw-step:hover {
	background-color: rgba(255, 255, 255, .6);
}

.sdw-step__n {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 2.75rem;
	font-weight: 800;
	color: rgba(0, 0, 0, .08);
	line-height: 1;
	min-width: 56px;
	transition: color .35s ease;
}

.sdw-step:hover .sdw-step__n {
	color: rgba(0, 71, 179, .22);
}

.sdw-step h3 {
	margin: 0 0 8px;
	font-size: 1.25rem;
	transition: color .2s ease;
}

.sdw-step:hover h3 {
	color: var(--wp--preset--color--primary);
}

.sdw-step p {
	margin: 0;
	color: var(--wp--preset--color--secondary);
}

/* --- Marquee ----------------------------------------------------------- */

.sdw-marquee {
	overflow: hidden;
}

.sdw-marquee__track {
	display: flex;
	width: max-content;
	white-space: nowrap;
	animation: sdw-scroll 28s linear infinite;
}

.sdw-marquee__track span {
	margin: 0 28px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--wp--preset--color--secondary);
}

@keyframes sdw-scroll {
	from { transform: translateX(0); }
	to   { transform: translateX(-50%); }
}

@media (prefers-reduced-motion: reduce) {
	.sdw-marquee__track { animation: none; }
}

/* --- Testimonios ------------------------------------------------------- */

.sdw-quote-mark {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 1.875rem;
	line-height: 1;
	color: var(--wp--preset--color--primary);
	opacity: .4;
}

.sdw-author {
	display: flex;
	align-items: center;
	gap: 12px;
}

.sdw-author img {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	object-fit: cover;
	flex: none;
}

.sdw-author b {
	display: block;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--small);
}

.sdw-author span {
	display: block;
	margin-top: 2px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--tiny);
	letter-spacing: .15em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

/* --- Formulario -------------------------------------------------------- */

.sdw-form {
	display: grid;
	gap: 16px;
}

.sdw-form__row {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(2, 1fr);
}

@media (max-width: 600px) {
	.sdw-form__row { grid-template-columns: 1fr; }
}

.sdw-field {
	display: flex;
	flex-direction: column;
}

.sdw-field label {
	margin-bottom: 6px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--tiny);
	letter-spacing: .15em;
	text-transform: uppercase;
	color: var(--wp--preset--color--secondary);
}

.sdw-field input,
.sdw-field select,
.sdw-field textarea {
	width: 100%;
	padding: 12px 16px;
	background: #fff;
	border: 1px solid rgba(0, 0, 0, .15);
	border-radius: 2px;
	color: var(--wp--preset--color--contrast);
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--small);
	transition: border-color .2s ease, box-shadow .2s ease;
}

.sdw-field textarea {
	resize: vertical;
	min-height: 140px;
}

.sdw-field input:focus,
.sdw-field select:focus,
.sdw-field textarea:focus {
	outline: none;
	border-color: var(--wp--preset--color--primary);
	box-shadow: 0 0 0 1px var(--wp--preset--color--primary);
}

.sdw-field input::placeholder,
.sdw-field textarea::placeholder {
	color: #9ca3af;
}

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

.sdw-form button[type="submit"] {
	width: 100%;
	padding: 16px 28px;
	background: var(--wp--preset--color--primary);
	color: #fff;
	border: 1px solid var(--wp--preset--color--primary);
	border-radius: 2px;
	cursor: pointer;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 700;
	letter-spacing: .1em;
	transition: background-color .2s ease;
	position: relative;
	overflow: hidden;
}

.sdw-form button[type="submit"]:hover {
	background: var(--wp--preset--color--primary-dark);
}

.sdw-notice {
	margin: 0 0 8px;
	padding: 16px 20px;
	border: 1px solid;
	border-radius: 2px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--small);
}

.sdw-notice--ok {
	border-color: rgba(0, 71, 179, .25);
	background: #eef3ff;
	color: var(--wp--preset--color--primary);
}

.sdw-notice--err {
	border-color: rgba(185, 28, 28, .25);
	background: #fef2f2;
	color: #b91c1c;
}

/* --- Pie --------------------------------------------------------------- */

.sdw-footer {
	border-top: 1px solid var(--wp--preset--color--linea);
}

.sdw-footer a {
	text-decoration: none;
}

/* --- Texto largo --------------------------------------------------------
   Estilos del contenido convertido desde Elementor: servicios, proyectos y
   artículos. Es donde vive el SEO, así que se cuida el ritmo de lectura.
   ----------------------------------------------------------------------- */

.wp-block-post-content > * {
	margin-block: 0 1.25em;
}

/* Jerarquía por espacio, no solo por tamaño: el aire antes de un titular
   es lo que hace que se lea como el principio de algo. */
.wp-block-post-content > h2 {
	margin-block: 2.5em .6em;
	font-size: clamp(1.5rem, 3vw, 2rem);
	padding-top: 1.75rem;
	border-top: 1px solid var(--wp--preset--color--linea);
}

.wp-block-post-content > h2:first-child {
	margin-top: 0;
	padding-top: 0;
	border-top: 0;
}

.wp-block-post-content > h3 {
	margin-block: 1.9em .5em;
	font-size: 1.25rem;
}

.wp-block-post-content > h4 {
	margin-block: 1.6em .4em;
	font-size: 1.0625rem;
	color: var(--wp--preset--color--secondary);
}

/* Entradilla: el primer párrafo tras el titular entra más grande. */
.wp-block-post-content > h2:first-child + p,
.wp-block-post-content > p:first-child {
	font-size: 1.0625rem;
	color: var(--wp--preset--color--secondary);
}

.wp-block-post-content strong {
	color: var(--wp--preset--color--contrast);
	font-weight: 600;
}

/* Listas con marcador propio, en el azul de marca. */
.wp-block-post-content ul {
	list-style: none;
	padding-left: 0;
}

.wp-block-post-content ul li {
	position: relative;
	padding-left: 26px;
	margin-bottom: .6em;
}

.wp-block-post-content ul li::before {
	content: "";
	position: absolute;
	left: 6px;
	top: .62em;
	width: 6px;
	height: 6px;
	background: var(--wp--preset--color--primary);
	transform: rotate(45deg);
}

.wp-block-post-content ol {
	padding-left: 22px;
}

.wp-block-post-content ol li {
	margin-bottom: .6em;
	padding-left: 6px;
}

.wp-block-post-content ol li::marker {
	font-family: var(--wp--preset--font-family--mono);
	font-weight: 700;
	color: var(--wp--preset--color--primary);
}

/* Preguntas frecuentes (los acordeones convertidos). */
.wp-block-details {
	border: 1px solid var(--wp--preset--color--linea);
	border-radius: 2px;
	margin-bottom: 8px;
	background: #fff;
	transition: border-color .25s ease, box-shadow .25s ease;
}

.wp-block-details[open] {
	border-color: rgba(0, 71, 179, .3);
	box-shadow: 0 6px 20px rgba(0, 71, 179, .07);
}

.wp-block-details summary {
	cursor: pointer;
	padding: 18px 20px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: .9375rem;
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
	list-style: none;
	position: relative;
	padding-right: 48px;
}

.wp-block-details summary::-webkit-details-marker {
	display: none;
}

.wp-block-details summary::after {
	content: "+";
	position: absolute;
	right: 20px;
	top: 50%;
	translate: 0 -50%;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 1.25rem;
	line-height: 1;
	color: var(--wp--preset--color--primary);
	transition: rotate .3s cubic-bezier(.4, 0, .2, 1);
}

.wp-block-details[open] summary::after {
	rotate: 45deg;
}

.wp-block-details > *:not(summary) {
	margin: 0 20px 16px;
}

.wp-block-details summary:hover {
	color: var(--wp--preset--color--primary);
}

/* Tablas: las fichas técnicas de los proyectos vienen así. */
.wp-block-table {
	margin-block: 1.75em;
	overflow-x: auto;
}

.wp-block-table table {
	border-collapse: collapse;
	width: 100%;
	font-size: .9375rem;
}

.wp-block-table td,
.wp-block-table th {
	border: 0;
	border-bottom: 1px solid var(--wp--preset--color--linea);
	padding: 12px 16px 12px 0;
	text-align: left;
	vertical-align: top;
}

.wp-block-table tr td:first-child {
	font-family: var(--wp--preset--font-family--mono);
	font-size: .8125rem;
	letter-spacing: .05em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
	white-space: nowrap;
	padding-right: 32px;
	width: 1%;
}

.wp-block-post-content figure.wp-block-image {
	margin-block: 2em;
}

.wp-block-post-content figure.wp-block-image img {
	border: 1px solid var(--wp--preset--color--linea);
	border-radius: 2px;
}

.wp-block-post-content blockquote {
	margin: 2em 0;
	padding: 4px 0 4px 24px;
	border-left: 2px solid var(--wp--preset--color--primary);
	font-size: 1.0625rem;
	color: var(--wp--preset--color--secondary);
}

/* --- Migas de pan ------------------------------------------------------ */

.sdw-migas {
	font-family: var(--wp--preset--font-family--mono);
	font-size: var(--wp--preset--font-size--tiny);
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

.sdw-migas a {
	color: var(--wp--preset--color--muted);
	text-decoration: none;
}

.sdw-migas a:hover {
	color: var(--wp--preset--color--primary);
}

/* --- Franja de llamada a la acción ------------------------------------- */

.sdw-cta {
	position: relative;
	overflow: hidden;
}

.sdw-cta::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image:
		linear-gradient(rgba(255, 255, 255, .06) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, .06) 1px, transparent 1px);
	background-size: 48px 48px;
}

.sdw-cta > * {
	position: relative;
}

.sdw-cta .wp-block-button__link {
	background: #fff;
	color: var(--wp--preset--color--primary);
	border-color: #fff;
}

.sdw-cta .wp-block-button__link:hover {
	background: rgba(255, 255, 255, .88);
	color: var(--wp--preset--color--primary);
}

/* --- Planes de precio -------------------------------------------------- */

.sdw-plan {
	display: flex;
	flex-direction: column;
	height: 100%;
}

.sdw-plan--destacado {
	border-color: var(--wp--preset--color--primary) !important;
	box-shadow: 0 12px 36px rgba(0, 71, 179, .12);
}

.sdw-plan__precio {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 2.25rem;
	font-weight: 800;
	color: var(--wp--preset--color--primary);
	line-height: 1;
}

.sdw-plan__precio small {
	display: block;
	margin-top: 6px;
	font-size: var(--wp--preset--font-size--tiny);
	font-weight: 400;
	letter-spacing: .15em;
	text-transform: uppercase;
	color: var(--wp--preset--color--muted);
}

.sdw-plan__lista {
	list-style: none;
	margin: 0 0 8px;
	padding: 0;
	font-size: .875rem;
	color: var(--wp--preset--color--secondary);
}

.sdw-plan__lista li {
	position: relative;
	padding-left: 22px;
	margin-bottom: .55em;
	line-height: 1.6;
}

.sdw-plan__lista li::before {
	content: "";
	position: absolute;
	left: 2px;
	top: .45em;
	width: 9px;
	height: 5px;
	border-left: 1.5px solid var(--wp--preset--color--primary);
	border-bottom: 1.5px solid var(--wp--preset--color--primary);
	rotate: -45deg;
}

.sdw-badge {
	display: inline-block;
	padding: 4px 10px;
	background: var(--wp--preset--color--primary);
	color: #fff;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .15em;
	text-transform: uppercase;
}

/* --- Entradas al hacer scroll ------------------------------------------
   Retirado a propósito. La versión anterior arrancaba las tarjetas en
   opacity:0 esperando al scroll, y en cualquier contexto donde la línea de
   tiempo no resuelve (captura de página completa, navegador sin soporte
   parcial) el contenido se quedaba invisible. Una página tiene que verse
   entera en reposo; el movimiento ya lo aportan los estados hover.
   ----------------------------------------------------------------------- */

/* --- Foco visible global ----------------------------------------------- */

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 2px;
}

/* =========================================================================
   Páginas de servicio — secciones declaradas
   Cada tipo de sección tiene su dibujo. Ver mu-plugins/serdeweb-layout.php
   ====================================================================== */

:root {
	--sdw-alert: #b8320a;
	--sdw-alert-bg: #fdf0ea;
	--sdw-console: #0b1118;
	--sdw-console-line: #1d2836;
	--sdw-max: 1240px;
}

/* --- Envoltorio de sección ---------------------------------------------- */

.sdw-sec {
	padding-block: clamp(56px, 7vw, 100px);
}

.sdw-sec--claro { background: #fff; }
.sdw-sec--gris  { background: #f3f6fa; }

.sdw-sec__in {
	max-width: var(--sdw-max);
	margin-inline: auto;
	padding-inline: 24px;
}

.sdw-sec__in--estrecha { max-width: 820px; }

.sdw-sec__cab { margin-bottom: clamp(28px, 4vw, 48px); }

.sdw-sec__cab h2 {
	margin: 10px 0 0;
	font-family: var(--wp--preset--font-family--mono);
	font-size: clamp(1.6rem, 3.4vw, 2.3rem);
	font-weight: 800;
	line-height: 1.14;
	letter-spacing: -.02em;
	color: var(--wp--preset--color--contrast);
	text-wrap: balance;
}

.sdw-sec__entrada {
	margin: 16px 0 0;
	max-width: 62ch;
	font-size: 1.0625rem;
	line-height: 1.75;
	color: var(--wp--preset--color--secondary);
}

.sdw-sec p { margin-block: 0 1em; }
.sdw-sec p:last-child { margin-bottom: 0; }

/* --- Rejilla de tarjetas ------------------------------------------------ */

.sdw-rejilla {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 1px;
	background: var(--wp--preset--color--linea);
	border: 1px solid var(--wp--preset--color--linea);
}

.sdw-tarjeta {
	background: #fff;
	padding: 28px 26px 30px;
	transition: background-color .25s ease;
}

.sdw-sec--gris .sdw-tarjeta { background: #fff; }
.sdw-tarjeta:hover { background: #e9eefb; }

.sdw-tarjeta h3 {
	margin: 0 0 8px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 1.0625rem;
	font-weight: 600;
	letter-spacing: -.01em;
	color: var(--wp--preset--color--contrast);
}

.sdw-tarjeta__txt p {
	margin: 0;
	font-size: .9rem;
	line-height: 1.7;
	color: var(--wp--preset--color--secondary);
}

/* --- Icono -------------------------------------------------------------- */

.sdw-ico {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	margin-bottom: 16px;
	border: 1px solid rgba(0, 71, 179, .22);
	background: rgba(0, 71, 179, .05);
	color: var(--wp--preset--color--primary);
	transition: background-color .25s ease, border-color .25s ease, color .25s ease;
}

.sdw-ico svg { width: 21px; height: 21px; display: block; }
.sdw-ico--neutro { color: var(--wp--preset--color--muted); border-color: var(--wp--preset--color--linea); background: transparent; }

.sdw-tarjeta:hover .sdw-ico,
.sdw-paso:hover .sdw-ico {
	background: var(--wp--preset--color--primary);
	border-color: var(--wp--preset--color--primary);
	color: #fff;
}

/* --- Pasos numerados ---------------------------------------------------- */

.sdw-pasos {
	list-style: none;
	margin: 0;
	padding: 0;
	border-top: 1px solid var(--wp--preset--color--linea);
}

.sdw-paso {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr);
	gap: 20px;
	align-items: start;
	padding: 26px 0 26px 18px;
	border-bottom: 1px solid var(--wp--preset--color--linea);
	position: relative;
	transition: background-color .22s ease;
}

.sdw-paso::before {
	content: "";
	position: absolute;
	inset-block: 0;
	inset-inline-start: 0;
	width: 2px;
	background: var(--wp--preset--color--primary);
	transform: scaleY(0);
	transform-origin: top;
	transition: transform .35s cubic-bezier(.4, 0, .2, 1);
}

.sdw-paso:hover::before { transform: scaleY(1); }
.sdw-paso:hover { background: rgba(0, 71, 179, .04); }

.sdw-paso__n {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 2rem;
	font-weight: 800;
	line-height: 1;
	color: rgba(16, 23, 34, .14);
	font-variant-numeric: tabular-nums;
	transition: color .3s ease;
}

.sdw-paso:hover .sdw-paso__n { color: rgba(0, 71, 179, .42); }

.sdw-paso__txt h3 {
	margin: 0 0 4px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 1.0625rem;
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
}

.sdw-paso__txt p {
	margin: 0;
	font-size: .9375rem;
	color: var(--wp--preset--color--secondary);
}

/* --- Listas con marca --------------------------------------------------- */

.sdw-checks ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 2px 32px;
}

.sdw-checks li {
	position: relative;
	padding: 10px 0 10px 30px;
	font-size: .9375rem;
	line-height: 1.6;
	color: var(--wp--preset--color--secondary);
	border-bottom: 1px solid var(--wp--preset--color--linea);
}

.sdw-checks li::before {
	content: "";
	position: absolute;
	left: 4px;
	top: 1.15em;
	width: 10px;
	height: 6px;
	border-left: 1.5px solid var(--wp--preset--color--primary);
	border-bottom: 1.5px solid var(--wp--preset--color--primary);
	rotate: -45deg;
}

/* --- Promesa ------------------------------------------------------------ */

.sdw-promesa-grid {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
	gap: clamp(28px, 4vw, 56px);
	align-items: center;
}

.sdw-promesa {
	border: 1px solid var(--wp--preset--color--linea);
	border-left: 3px solid var(--sdw-alert);
	background: #fff;
	padding: 30px 28px;
}

.sdw-promesa__frase {
	margin: 0;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 1.25rem;
	font-weight: 600;
	line-height: 1.4;
	letter-spacing: -.02em;
	color: var(--wp--preset--color--contrast);
}

.sdw-promesa__nota {
	margin: 16px 0 0;
	font-size: .9375rem;
	color: var(--wp--preset--color--secondary);
}

/* --- FAQ ---------------------------------------------------------------- */

.sdw-faq details {
	border: 1px solid var(--wp--preset--color--linea);
	background: #fff;
	margin-bottom: 8px;
	transition: border-color .2s ease, box-shadow .2s ease;
}

.sdw-faq details[open] {
	border-color: rgba(0, 71, 179, .38);
	box-shadow: 0 8px 26px -14px rgba(0, 71, 179, .5);
}

.sdw-faq summary {
	list-style: none;
	cursor: pointer;
	padding: 17px 52px 17px 20px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: .9375rem;
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
	position: relative;
}

.sdw-faq summary::-webkit-details-marker { display: none; }

.sdw-faq summary::after {
	content: "+";
	position: absolute;
	right: 20px;
	top: 50%;
	translate: 0 -50%;
	font-size: 1.25rem;
	color: var(--wp--preset--color--primary);
	transition: rotate .3s cubic-bezier(.4, 0, .2, 1);
}

.sdw-faq details[open] summary::after { rotate: 45deg; }

.sdw-faq details p {
	margin: 0 20px 18px;
	font-size: .9375rem;
	color: var(--wp--preset--color--secondary);
}

/* --- Cierre ------------------------------------------------------------- */

.sdw-cta {
	background: var(--wp--preset--color--primary);
	color: #fff;
	position: relative;
	overflow: hidden;
	text-align: center;
}

.sdw-cta::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image:
		linear-gradient(to right, rgba(255, 255, 255, .07) 1px, transparent 1px),
		linear-gradient(to bottom, rgba(255, 255, 255, .07) 1px, transparent 1px);
	background-size: 52px 52px;
}

.sdw-cta > * { position: relative; }

.sdw-cta h2 {
	margin: 0 0 14px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: clamp(1.6rem, 3.4vw, 2.3rem);
	font-weight: 800;
	line-height: 1.15;
	color: #fff;
	text-wrap: balance;
}

.sdw-cierre__txt {
	max-width: 56ch;
	margin: 0 auto clamp(28px, 4vw, 44px);
	color: #d3e2ff;
}

.sdw-cta .sdw-form { text-align: left; }
.sdw-cta .sdw-field label { color: #cfe0ff; }
.sdw-cta .sdw-notice { color: var(--wp--preset--color--contrast); }

/* --- Adaptación --------------------------------------------------------- */

@media (max-width: 860px) {
	.sdw-promesa-grid { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
	.sdw-paso { grid-template-columns: 50px minmax(0, 1fr); gap: 14px; padding-left: 14px; }
	.sdw-paso__n { font-size: 1.5rem; }
}

/* --- Cabecera de servicio ----------------------------------------------- */

.sdw-servicio-hero { position: relative; overflow: hidden; }

.sdw-servicio-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background-image:
		linear-gradient(to right, rgba(0, 71, 179, .07) 1px, transparent 1px),
		linear-gradient(to bottom, rgba(0, 71, 179, .07) 1px, transparent 1px);
	background-size: 64px 64px;
	mask-image: radial-gradient(120% 90% at 20% 0%, #000 30%, transparent 78%);
}

.sdw-servicio-hero > * { position: relative; }

.sdw-alerta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 6px 12px;
	background: var(--sdw-alert-bg);
	color: var(--sdw-alert);
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.sdw-garantia-linea {
	display: flex;
	align-items: flex-start;
	gap: 9px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12.5px;
	line-height: 1.6;
	color: var(--wp--preset--color--secondary);
}

.sdw-garantia-linea b { color: var(--wp--preset--color--contrast); font-weight: 600; }

/* --- Consola de diagnóstico --------------------------------------------- */

.sdw-consola {
	background: var(--sdw-console);
	border: 1px solid var(--sdw-console-line);
	font-family: var(--wp--preset--font-family--mono);
	box-shadow: 0 24px 60px -30px rgba(8, 24, 60, .55);
}

.sdw-consola__barra {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 11px 14px;
	border-bottom: 1px solid var(--sdw-console-line);
}

.sdw-consola__punto { width: 9px; height: 9px; border-radius: 50%; background: #2b3a4d; }
.sdw-consola__punto--vivo { background: #d9544d; }

.sdw-consola__titulo {
	margin-left: 6px;
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #8b9bb0;
}

.sdw-consola__cuerpo { padding: 18px 16px 20px; }

.sdw-consola__pregunta { margin: 0 0 14px; font-size: 12px; line-height: 1.6; color: #9fb1c7; }
.sdw-consola__pregunta b { color: #e6eef9; font-weight: 500; }

.sdw-sintomas {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
	max-height: 320px;
	overflow-y: auto;
	color: #c3d0e0;
}

.sdw-sintomas li { margin: 0; padding: 0; color: inherit; }

.sdw-sintoma {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	width: 100%;
	padding: 9px 10px;
	background: transparent;
	border: 0;
	border-left: 2px solid transparent;
	color: #c3d0e0;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12.5px;
	line-height: 1.45;
	text-align: left;
	cursor: pointer;
	transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}

.sdw-sintoma:hover { background: #121b26; color: #eef4fb; }

.sdw-sintoma[aria-pressed="true"] {
	background: #101c2c;
	border-left-color: #ff9a70;
	color: #fff;
}

.sdw-sintoma__marca { flex: none; width: 15px; color: #5a6b81; font-size: 12px; }
.sdw-sintoma[aria-pressed="true"] .sdw-sintoma__marca { color: #ff9a70; }

.sdw-consola__pie {
	margin-top: 16px;
	padding-top: 14px;
	border-top: 1px solid var(--sdw-console-line);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
}

.sdw-consola__cuenta { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: #9fb1c7; }
.sdw-consola__cuenta b { color: #ff9a70; }

.sdw-consola__enviar {
	padding: 10px 16px;
	background: #1f6bff;
	border: 0;
	color: #fff;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .06em;
	text-decoration: none;
	transition: background-color .18s ease;
}

.sdw-consola__enviar:hover { background: #4a89ff; color: #fff; }

/* --- Barra fija de móvil ------------------------------------------------ */

.sdw-dock {
	position: fixed;
	inset: auto 0 0 0;
	z-index: 90;
	display: none;
	gap: 8px;
	padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px));
	background: rgba(255, 255, 255, .95);
	backdrop-filter: blur(10px);
	border-top: 1px solid var(--wp--preset--color--linea);
}

.sdw-dock a {
	flex: 1;
	text-align: center;
	padding: 13px 10px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	text-decoration: none;
	border: 1px solid var(--wp--preset--color--primary);
}

.sdw-dock__ghost { background: #fff; color: var(--wp--preset--color--primary); }
.sdw-dock__solid { background: var(--wp--preset--color--primary); color: #fff; }

@media (max-width: 620px) {
	body.single-servicio .sdw-dock { display: flex; }
	body.single-servicio { padding-bottom: 76px; }
}

/* =========================================================================
   Accesibilidad
   Contrastes verificados sobre blanco y sobre #f3f6fa. Mínimo 4.5:1.
   ====================================================================== */

/* WordPress genera .has-<slug>-color por cada color de la paleta. Un slug
   que choque con una clase del núcleo pinta el texto de ese color: pasó con
   un slug llamado «border» y dejó las tarjetas a 1.26:1. */
.wp-block-column.has-border-color,
.wp-block-group.has-border-color { color: inherit; }

.sdw-tags li,
.sdw-eyebrow { font-size: max(11px, var(--wp--preset--font-size--tiny)); }

.sdw-cta a:focus-visible,
.sdw-cta button:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}

@media (max-width: 782px) {
	.wp-element-button,
	.sdw-dock a,
	.sdw-faq summary {
		min-height: 44px;
		display: flex;
		align-items: center;
	}

	.wp-element-button { justify-content: center; }
}

/* =========================================================================
   Navegación y pie
   ====================================================================== */

/* --- Submenú de servicios ----------------------------------------------- */

.sdw-header .wp-block-navigation .wp-block-navigation__submenu-container {
	min-width: 300px;
	padding: 6px;
	border: 1px solid var(--wp--preset--color--linea);
	background: #fff;
	box-shadow: 0 20px 50px -24px rgba(8, 24, 60, .45);
}

.sdw-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	display: block;
	padding: 10px 12px;
	text-transform: none;
	letter-spacing: 0;
	font-size: .875rem;
	font-weight: 600;
	color: var(--wp--preset--color--contrast);
	transition: background-color .18s ease, color .18s ease;
}

.sdw-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
	background: #eef3fd;
	color: var(--wp--preset--color--primary);
}

.sdw-header .wp-block-navigation-item__description {
	display: block;
	margin-top: 2px;
	font-family: var(--wp--preset--font-family--sans);
	font-size: .8125rem;
	font-weight: 400;
	line-height: 1.5;
	letter-spacing: 0;
	color: var(--wp--preset--color--secondary);
	text-transform: none;
}

/* El enlace activo se distingue sin depender solo del color. */
.sdw-header .wp-block-navigation .current-menu-item > a,
.sdw-header .wp-block-navigation a[aria-current="page"] {
	color: var(--wp--preset--color--primary);
	box-shadow: inset 0 -2px 0 var(--wp--preset--color--primary);
}

/* --- Pie ---------------------------------------------------------------- */

.sdw-footer {
	background: #0e1520;
	color: #9fb1c7;
	border-top: 0;
}

.sdw-pie {
	display: grid;
	grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr));
	gap: clamp(28px, 4vw, 56px);
}

.sdw-pie__logo {
	font-family: var(--wp--preset--font-family--mono);
	font-size: 1.25rem;
	font-weight: 800;
	color: #fff;
	text-decoration: none;
	letter-spacing: -.03em;
}

.sdw-pie__logo span { color: #3f5c8f; }

.sdw-pie__claim {
	margin: 14px 0 20px;
	max-width: 34ch;
	font-size: .9375rem;
	line-height: 1.7;
	color: #92a5bd;
}

.sdw-pie__cta {
	display: inline-block;
	padding: 11px 18px;
	border: 1px solid #3a5d9a;
	color: #cfe0ff;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	text-decoration: none;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease;
}

.sdw-pie__cta:hover {
	background: #1f6bff;
	border-color: #1f6bff;
	color: #fff;
}

.sdw-pie__col h2 {
	margin: 0 0 14px;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: #6d82a0;
}

.sdw-pie__col ul {
	list-style: none;
	margin: 0;
	padding: 0;
}

.sdw-pie__col li { margin-bottom: 9px; }

.sdw-pie__col a {
	font-size: .9rem;
	color: #b6c6da;
	text-decoration: none;
	transition: color .18s ease;
}

.sdw-pie__col a:hover { color: #fff; text-decoration: underline; }

.sdw-pie__linea {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 24px;
	justify-content: space-between;
	margin-top: clamp(32px, 4vw, 52px);
	padding-top: 22px;
	border-top: 1px solid #1d2b3e;
}

.sdw-pie__linea p {
	margin: 0;
	font-family: var(--wp--preset--font-family--mono);
	font-size: 11px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #6d82a0;
}

@media (max-width: 860px) {
	.sdw-pie { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.sdw-pie__marca { grid-column: 1 / -1; }
}

@media (max-width: 520px) {
	.sdw-pie { grid-template-columns: 1fr; }
}

/* El enlace del submenú apila etiqueta y descripción: por defecto el núcleo
   las pone en la misma línea y el texto se estrangula en dos columnas. */
.sdw-header .wp-block-navigation__submenu-container li { width: 100%; }

.sdw-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 3px;
	width: 100%;
}

.sdw-header .wp-block-navigation__submenu-container .wp-block-navigation-item__label {
	white-space: normal;
	line-height: 1.3;
}

/* El botón de envío queda azul sobre azul dentro de la banda de cierre. */
.sdw-cta .sdw-form button[type="submit"] {
	background: #fff;
	color: var(--wp--preset--color--primary);
	border-color: #fff;
}

.sdw-cta .sdw-form button[type="submit"]:hover {
	background: #dfe9fc;
	border-color: #dfe9fc;
	color: var(--wp--preset--color--primary-dark);
}

.sdw-cta .sdw-field input,
.sdw-cta .sdw-field select,
.sdw-cta .sdw-field textarea {
	border-color: rgba(255, 255, 255, .35);
}

.sdw-cta .sdw-field input:focus,
.sdw-cta .sdw-field select:focus,
.sdw-cta .sdw-field textarea:focus {
	border-color: #fff;
	box-shadow: 0 0 0 2px rgba(255, 255, 255, .5);
}

/* =========================================================================
   Marca y navegación principal
   ====================================================================== */

.sdw-brand {
	display:inline-flex;
	align-items:center;
	min-width:0;
	min-height:44px;
	text-decoration:none;
}

.sdw-brand img {
	display:block;
	width:clamp(172px,17vw,220px);
	height:auto;
}

.sdw-brand:focus-visible {
	outline:2px solid var(--wp--preset--color--primary);
	outline-offset:4px;
}

.sdw-pie__logo {
	display:inline-flex;
	align-items:center;
	min-height:44px;
}

.sdw-pie__logo img {
	display:block;
	width:min(100%,230px);
	height:auto;
}

@media (min-width:782px) {
	.sdw-header > .wp-block-group { position:relative; }
	.sdw-header .wp-block-navigation,
	.sdw-header .wp-block-navigation__container,
	.sdw-header .wp-block-navigation-item.has-child { position:static; }

	.sdw-header .wp-block-navigation .wp-block-navigation__submenu-container {
		display:grid;
		grid-template-columns:repeat(3,minmax(0,1fr));
		gap:8px;
		left:50%;
		right:auto;
		top:calc(100% + 1px);
		width:min(820px,calc(100vw - 48px));
		min-width:0;
		height:auto;
		padding:12px;
		transform:translateX(-50%);
		border:1px solid var(--wp--preset--color--linea);
		border-radius:14px;
		background:var(--wp--preset--color--base);
		box-shadow:0 22px 50px -24px color-mix(in srgb,var(--wp--preset--color--contrast) 45%,transparent);
		overflow:visible;
		counter-reset:sdw-service;
		z-index:100;
	}

	.sdw-header .wp-block-navigation__submenu-container > .wp-block-navigation-item {
		width:auto;
		min-width:0;
		counter-increment:sdw-service;
	}

	.sdw-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		position:relative;
		display:flex;
		min-height:92px;
		justify-content:center;
		gap:5px;
		padding:16px 16px 16px 54px;
		border:1px solid transparent;
		border-radius:9px;
		background:var(--wp--preset--color--surface);
	}

	.sdw-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content::before {
		content:counter(sdw-service,decimal-leading-zero);
		position:absolute;
		top:17px;
		left:16px;
		color:var(--wp--preset--color--primary);
		font:600 1rem/1.35 var(--wp--preset--font-family--mono);
	}

	.sdw-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:is(:hover,:focus-visible) {
		border-color:var(--wp--preset--color--primary);
		background:var(--wp--preset--color--base);
		text-decoration:none;
	}

	.sdw-header .wp-block-navigation__submenu-container .wp-block-navigation-item__description {
		font-size:1rem;
		line-height:1.45;
	}
}

@media (max-width:781px) {
	.sdw-brand img { width:172px; }
	.sdw-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content { min-height:44px; }
}

/* =========================================================================
   Ajustes finales de navegación

   El bloque Navigation escribe width/left/right como estilos inline al abrir
   el submenú. Los !important de esta sección se limitan a neutralizar esos
   valores del núcleo; el resto de la presentación continúa en los tokens.
   ====================================================================== */

.sdw-footer.alignfull {
	width:100%;
	max-width:100%;
	margin-inline:0;
}

.sdw-header .wp-block-navigation-submenu__toggle {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-width:44px;
	min-height:44px;
	padding:10px;
}

@media (min-width:782px) {
	.sdw-header .wp-block-navigation .wp-block-navigation-item.has-child > .wp-block-navigation__submenu-container {
		position:absolute !important;
		display:grid !important;
		grid-template-columns:repeat(3,minmax(0,1fr)) !important;
		box-sizing:border-box;
		left:50% !important;
		right:auto !important;
		top:calc(100% + 1px) !important;
		width:min(820px,calc(100vw - 48px)) !important;
		min-width:0 !important;
		max-width:calc(100vw - 48px) !important;
		transform:translateX(-50%) !important;
	}

	/* El núcleo recompone el shorthand de padding al abrir; se reserva la
	   columna de la numeración para que nunca invada la etiqueta. */
	.sdw-header .wp-block-navigation .wp-block-navigation-item.has-child > .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		padding:16px 16px 16px 54px !important;
	}

	.sdw-header .wp-block-navigation .wp-block-navigation-item.has-child:hover > .wp-block-navigation__submenu-container,
	.sdw-header .wp-block-navigation .wp-block-navigation-item.has-child:focus-within > .wp-block-navigation__submenu-container,
	.sdw-header .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container {
		display:grid !important;
		grid-template-columns:repeat(3,minmax(0,1fr)) !important;
		height:auto !important;
		visibility:visible !important;
		opacity:1 !important;
		overflow:visible !important;
	}
}

@media (max-width:781px) {
	.sdw-header .wp-block-navigation__responsive-container.is-menu-open {
		box-sizing:border-box;
		height:100vh;
		height:100dvh;
		max-height:100vh;
		max-height:100dvh;
		padding:16px 20px 32px;
		overflow-x:hidden;
		overflow-y:auto;
		overscroll-behavior:contain;
	}

	.sdw-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
		position:sticky;
		top:0;
		z-index:3;
		display:flex;
		align-items:center;
		justify-content:center;
		width:44px;
		height:44px;
		margin-left:auto;
		border:1px solid var(--wp--preset--color--linea);
		border-radius:8px;
		background:var(--wp--preset--color--base);
	}

	.sdw-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
		min-height:calc(100dvh - 60px);
		padding-top:12px;
		padding-bottom:24px;
	}

	.sdw-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.has-child > .wp-block-navigation__submenu-container {
		position:static !important;
		width:100% !important;
		min-width:0 !important;
		max-width:100% !important;
		transform:none !important;
	}
}
