/* ==========================================================================
   Placas Federales Express — estilos del tema
   Colores y tipografías viven en theme.json (variables --wp--preset--*).
   Aquí solo van los detalles que theme.json no cubre.
   ========================================================================== */

:root {
	--pfe-azul-ruta: var(--wp--preset--color--azul-ruta);
	--pfe-azul-acero: var(--wp--preset--color--azul-acero);
	--pfe-blanco: var(--wp--preset--color--blanco);
	--pfe-dorado: var(--wp--preset--color--dorado-senal);
	--pfe-gris: var(--wp--preset--color--gris-asfalto);
	--pfe-gris-claro: var(--wp--preset--color--gris-claro);
	--pfe-linea: #D8DDE0;
	--pfe-error: #B42318;
	--pfe-radio: var(--wp--custom--radio, 8px);
	--pfe-radio-chico: var(--wp--custom--radio-chico, 6px);
	--pfe-titulos: var(--wp--preset--font-family--barlow-condensed);
	--pfe-texto: var(--wp--preset--font-family--inter);
}

html { scroll-padding-top: 96px; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }

:where(a, button, input, select, textarea, summary):focus-visible {
	outline: 3px solid var(--pfe-dorado);
	outline-offset: 3px;
}

/* Las secciones van pegadas, sin huecos blancos entre ellas */
.wp-site-blocks > * + *,
.is-root-container > * + *,
.pfe-main > * { margin-block-start: 0; margin-block-end: 0; }

/* --------------------------------------------------------------------------
   Encabezado
   -------------------------------------------------------------------------- */
.wp-site-blocks > header.wp-block-template-part {
	position: sticky;
	top: var(--wp-admin--admin-bar--height, 0px);
	z-index: 100;
}
.pfe-encabezado {
	padding-block: 0.75rem;
	box-shadow: 0 1px 0 rgba(255, 255, 255, 0.08);
}
.pfe-encabezado__fila { gap: 1.5rem; }
.pfe-encabezado__acciones { gap: 1.75rem; }
.pfe-logo img { max-height: 56px; width: auto; }
.pfe-menu .wp-block-navigation-item__content { text-decoration: none; padding-block: 0.35rem; }
.pfe-menu .wp-block-navigation-item__content:hover { text-decoration: underline; text-decoration-color: var(--pfe-dorado); text-underline-offset: 6px; text-decoration-thickness: 2px; }
.pfe-encabezado__boton .wp-block-button__link { padding: 0.7rem 1.1rem; font-size: 0.9375rem; }
@media (max-width: 781px) {
	.wp-block-buttons.pfe-encabezado__boton { display: none; }
}

/* Espacio para el logo mientras no se sube el original */
.pfe-logo-pendiente {
	display: inline-flex;
	align-items: center;
	min-height: 52px;
	min-width: 180px;
	padding: 0.4rem 0.8rem;
	border: 2px dashed var(--pfe-dorado);
	border-radius: var(--pfe-radio-chico);
	color: var(--pfe-blanco);
	font-size: 0.8125rem;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;
	max-width: 220px;
}
.pfe-logo-texto {
	font-family: var(--pfe-titulos);
	font-weight: 700;
	font-size: 1.5rem;
	line-height: 1;
	color: var(--pfe-blanco);
	text-decoration: none;
}

/* --------------------------------------------------------------------------
   Secciones
   -------------------------------------------------------------------------- */
.pfe-seccion {
	padding-block: var(--wp--preset--spacing--60);
}
.pfe-cabeza { margin-bottom: var(--wp--preset--spacing--50); }
.pfe-cabeza > * + * { margin-top: 0.85rem; }
.pfe-intro {
	font-size: var(--wp--preset--font-size--mediano);
	color: var(--pfe-gris);
	line-height: 1.6;
}
.pfe-nota-seccion {
	margin-top: var(--wp--preset--spacing--50);
	color: var(--pfe-gris);
}

/* Fondos oscuros: títulos y textos en blanco */
.pfe-oscuro :is(h1, h2, h3, h4, h5, h6) { color: inherit; }
.pfe-oscuro .pfe-intro,
.pfe-oscuro p { color: #DCE4EA; }
.pfe-oscuro a:not(.wp-block-button__link):not(.pfe-boton) { color: var(--pfe-blanco); }
.pfe-oscuro a:not(.wp-block-button__link):not(.pfe-boton):hover { color: var(--pfe-blanco); text-decoration-color: var(--pfe-dorado); }
.pfe-oscuro .pfe-caja-formulario p { color: var(--pfe-gris); }

/* --------------------------------------------------------------------------
   Estilo de bloque: Carriles (líneas paralelas de carretera)
   -------------------------------------------------------------------------- */
.is-style-pfe-carriles { position: relative; }
.is-style-pfe-carriles::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 14px;
	pointer-events: none;
	background:
		linear-gradient(rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0.16)) top / 100% 2px no-repeat,
		linear-gradient(rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0.16)) bottom / 100% 2px no-repeat,
		repeating-linear-gradient(90deg, var(--pfe-dorado) 0 44px, transparent 44px 80px) center / 100% 3px no-repeat;
	opacity: 0.85;
}

/* --------------------------------------------------------------------------
   Portada
   -------------------------------------------------------------------------- */
.pfe-portada.wp-block-cover {
	padding-block: clamp(4rem, 9vw, 7rem) clamp(5rem, 10vw, 8rem);
	align-items: center;
}
.pfe-portada .wp-block-cover__background.has-background-dim {
	background: linear-gradient(90deg, rgba(20, 43, 69, 0.95) 0%, rgba(20, 43, 69, 0.85) 42%, rgba(20, 43, 69, 0.35) 78%, rgba(20, 43, 69, 0.2) 100%) !important;
	opacity: 1 !important;
}
.pfe-portada::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 14px;
	z-index: 1;
	pointer-events: none;
	background:
		linear-gradient(rgba(255, 255, 255, 0.22), rgba(255, 255, 255, 0.22)) top / 100% 2px no-repeat,
		repeating-linear-gradient(90deg, var(--pfe-dorado) 0 44px, transparent 44px 80px) bottom / 100% 4px no-repeat;
}
.pfe-portada h1 { margin: 0 0 1.25rem; max-width: 19ch; }
.pfe-portada__lead {
	font-size: var(--wp--preset--font-size--mediano);
	color: #DCE4EA;
	max-width: 36em;
	margin: 0 0 2rem;
}
.pfe-portada__botones { gap: 0.75rem; }
.pfe-portada__nota {
	margin-top: 1.75rem;
	font-size: var(--wp--preset--font-size--pequeno);
	color: #B9C7D3;
	max-width: 36em;
}
@media (max-width: 781px) {
	.pfe-portada.wp-block-cover { min-height: 0 !important; }
	.pfe-portada .wp-block-cover__background.has-background-dim {
		background: linear-gradient(180deg, rgba(20, 43, 69, 0.78) 0%, rgba(20, 43, 69, 0.92) 55%, rgba(20, 43, 69, 0.96) 100%) !important;
	}
	.pfe-portada .wp-block-cover__image-background { object-position: 70% 50% !important; }
	.pfe-portada__botones .wp-block-button { width: 100%; }
	.pfe-portada__botones .wp-block-button__link { width: 100%; }
}

/* --------------------------------------------------------------------------
   Botones
   -------------------------------------------------------------------------- */
.wp-block-button.is-style-pfe-contorno .wp-block-button__link {
	background: transparent;
	color: var(--pfe-blanco);
	box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.75);
}
.wp-block-button.is-style-pfe-contorno .wp-block-button__link:hover {
	background: rgba(255, 255, 255, 0.1);
	color: var(--pfe-blanco);
	box-shadow: inset 0 0 0 2px var(--pfe-blanco);
}

/* Icono de WhatsApp en botones que abren WhatsApp */
.wp-block-button__link.pfe-wa,
.pfe-boton.pfe-wa,
.pfe-barra-movil__wa {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.55rem;
}
.wp-block-button__link.pfe-wa::before,
.pfe-boton.pfe-wa::before,
.pfe-barra-movil__wa::before {
	content: "";
	width: 1.15em;
	height: 1.15em;
	flex: none;
	background-color: currentColor;
	-webkit-mask: url("../img/whatsapp.svg") center / contain no-repeat;
	mask: url("../img/whatsapp.svg") center / contain no-repeat;
}

/* Botón propio (formulario) con el mismo aspecto que los botones del editor */
.pfe-boton {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 0;
	border-radius: var(--pfe-radio-chico);
	background: var(--pfe-dorado);
	color: var(--pfe-azul-ruta);
	font-family: var(--pfe-texto);
	font-weight: 600;
	font-size: 1rem;
	line-height: 1.2;
	padding: 0.95rem 1.5rem;
	text-decoration: none;
	cursor: pointer;
}
.pfe-boton:hover { background: #C4933A; color: var(--pfe-azul-ruta); }
.pfe-boton:disabled { opacity: 0.7; cursor: wait; }

/* --------------------------------------------------------------------------
   Servicios (tarjetas)
   -------------------------------------------------------------------------- */
.pfe-rejilla { gap: 1.25rem; }
.is-style-pfe-tarjeta {
	background: var(--pfe-gris-claro);
	border-radius: var(--pfe-radio);
	padding: clamp(1.5rem, 3vw, 2rem);
	border-top: 3px solid var(--pfe-azul-acero);
}
.is-style-pfe-tarjeta > * { margin-block: 0; }
.is-style-pfe-tarjeta > * + * { margin-top: 0.75rem; }
.is-style-pfe-tarjeta h3 { font-size: 1.5rem; line-height: 1.1; margin-top: 1.1rem; }
.is-style-pfe-tarjeta p { color: var(--pfe-gris); }
.pfe-icono { margin: 0; }
.pfe-icono img { width: 44px; height: 44px; display: block; }

/* --------------------------------------------------------------------------
   Proceso en tres pasos
   -------------------------------------------------------------------------- */
.pfe-pasos { counter-reset: pfe-paso; gap: clamp(1.5rem, 3vw, 2.5rem); }
.pfe-paso {
	counter-increment: pfe-paso;
	position: relative;
	padding-top: 4.5rem;
}
.pfe-paso > * { margin-block: 0; }
.pfe-paso > * + * { margin-top: 0.6rem; }
.pfe-paso::before {
	content: counter(pfe-paso);
	position: absolute;
	top: 0;
	left: 0;
	width: 3rem;
	height: 3rem;
	border-radius: 50%;
	display: grid;
	place-items: center;
	background: var(--pfe-dorado);
	color: var(--pfe-azul-ruta);
	font-family: var(--pfe-titulos);
	font-weight: 700;
	font-size: 1.6rem;
	z-index: 1;
}
/* Tramo de carretera entre pasos */
.pfe-paso:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 1.5rem;
	left: 3.75rem;
	right: calc(-1 * clamp(1.5rem, 3vw, 2.5rem) + 0.75rem);
	height: 3px;
	transform: translateY(-50%);
	background: repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.45) 0 16px, transparent 16px 28px);
}
.pfe-paso h3 { font-size: 1.625rem; }
@media (max-width: 781px) {
	.pfe-pasos.is-layout-grid { grid-template-columns: 1fr !important; gap: 0; }
	.pfe-paso { padding: 0 0 2rem 4.5rem; min-height: 3rem; }
	.pfe-paso:not(:last-child)::after {
		top: 3.75rem;
		bottom: 0.75rem;
		left: 1.5rem;
		right: auto;
		width: 3px;
		height: auto;
		transform: translateX(-50%);
		background: repeating-linear-gradient(180deg, rgba(255, 255, 255, 0.45) 0 14px, transparent 14px 24px);
	}
}

/* --------------------------------------------------------------------------
   Atención / confianza
   -------------------------------------------------------------------------- */
.pfe-confianza { gap: clamp(2rem, 5vw, 4.5rem); }
.pfe-foto img { border-radius: var(--pfe-radio); width: 100%; height: auto; display: block; aspect-ratio: 4 / 3; object-fit: cover; }
.pfe-confianza h2 { margin-top: 1rem; }

.is-style-pfe-palomitas { list-style: none; padding-left: 0; margin-top: 1.5rem; }
.is-style-pfe-palomitas li {
	position: relative;
	padding: 0.85rem 0 0.85rem 2.25rem;
	border-top: 1px solid var(--pfe-linea);
}
.is-style-pfe-palomitas li:last-child { border-bottom: 1px solid var(--pfe-linea); }
.is-style-pfe-palomitas li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 1.05rem;
	width: 1.25rem;
	height: 1.25rem;
	background-color: var(--pfe-azul-acero);
	-webkit-mask: url("../img/palomita.svg") center / contain no-repeat;
	mask: url("../img/palomita.svg") center / contain no-repeat;
}

/* --------------------------------------------------------------------------
   Preguntas frecuentes
   -------------------------------------------------------------------------- */
.pfe-preguntas { margin-top: var(--wp--preset--spacing--50); }
.pfe-preguntas > * { margin-block: 0; }
.pfe-pregunta:last-child { border-bottom: 1px solid var(--pfe-linea); }
.pfe-pregunta summary {
	list-style: none;
	cursor: pointer;
	position: relative;
	padding: 1.2rem 3rem 1.2rem 0;
	font-weight: 600;
	font-size: 1.125rem;
	line-height: 1.4;
}
.pfe-pregunta summary::-webkit-details-marker { display: none; }
.pfe-pregunta summary::after {
	content: "";
	position: absolute;
	right: 0.5rem;
	top: 1.45rem;
	width: 0.65rem;
	height: 0.65rem;
	border-right: 2.5px solid var(--pfe-azul-acero);
	border-bottom: 2.5px solid var(--pfe-azul-acero);
	transform: rotate(45deg);
	transition: transform 0.2s ease;
}
.pfe-pregunta[open] summary::after { transform: rotate(-135deg); top: 1.75rem; }
.pfe-pregunta > p { margin: 0 0 1.25rem; color: var(--pfe-gris); max-width: 44em; }

/* --------------------------------------------------------------------------
   Solicitar revisión + formulario
   -------------------------------------------------------------------------- */
.pfe-solicitar__columnas { gap: clamp(2rem, 5vw, 4rem); }
.pfe-solicitar h2 { margin-top: 0; }
.pfe-solicitar__dato { margin-top: 1.5rem; font-size: 0.9375rem; }
.pfe-caja-formulario {
	border-radius: var(--pfe-radio);
	padding: clamp(1.5rem, 4vw, 2.5rem);
}
.pfe-caja-formulario h3 { margin-top: 0; margin-bottom: 1.25rem; }

.pfe-form { display: grid; gap: 1.1rem; }
.pfe-form__fila { display: grid; grid-template-columns: 1fr 1fr; gap: 1.1rem; }
@media (max-width: 640px) { .pfe-form__fila { grid-template-columns: 1fr; } }
.pfe-campo { display: grid; gap: 0.4rem; align-content: start; }
.pfe-campo label { font-weight: 500; font-size: 0.9375rem; color: var(--pfe-azul-ruta); }
.pfe-opcional { font-weight: 400; color: var(--pfe-gris); }
.pfe-campo input,
.pfe-campo select,
.pfe-campo textarea {
	width: 100%;
	font: inherit;
	font-size: 1rem;
	color: var(--pfe-azul-ruta);
	background: var(--pfe-blanco);
	border: 1.5px solid #B8C2CA;
	border-radius: var(--pfe-radio-chico);
	padding: 0.8rem 0.9rem;
	min-height: 48px;
}
.pfe-campo textarea { resize: vertical; min-height: 110px; }
.pfe-campo :is(input, select, textarea):focus { border-color: var(--pfe-azul-acero); outline: 3px solid rgba(49, 90, 120, 0.25); outline-offset: 0; }
.pfe-campo [aria-invalid="true"] { border-color: var(--pfe-error); }
.pfe-campo__error { margin: 0; color: var(--pfe-error); font-size: 0.875rem; font-weight: 500; }
.pfe-form__pie { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin-top: 0.25rem; }
.pfe-form__aviso { margin: 0; font-size: 0.8125rem; color: var(--pfe-gris); }
.pfe-form__aviso a { color: var(--pfe-azul-acero); }
.pfe-form-errores {
	border-left: 4px solid var(--pfe-error);
	background: #FEF3F2;
	padding: 0.75rem 1rem;
	border-radius: 4px;
	color: var(--pfe-azul-ruta);
}
.pfe-form-errores p { margin: 0.2rem 0; color: var(--pfe-azul-ruta) !important; }
.pfe-form-exito {
	border-left: 4px solid var(--pfe-azul-acero);
	background: var(--pfe-gris-claro);
	padding: 1.25rem 1.25rem 1rem;
	border-radius: 4px;
}
.pfe-form-exito p { color: var(--pfe-azul-ruta) !important; margin: 0 0 0.75rem; }
.pfe-form-exito__titulo { font-family: var(--pfe-titulos); font-size: 1.6rem; font-weight: 700; line-height: 1.1; }
.pfe-trampa { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* --------------------------------------------------------------------------
   Pie de página
   -------------------------------------------------------------------------- */
.pfe-pie { padding-block: calc(var(--wp--preset--spacing--50) + 14px) var(--wp--preset--spacing--40); font-size: 0.9375rem; }
.pfe-pie__columnas { gap: 2rem; }
.pfe-pie__marca { font-family: var(--pfe-titulos); font-weight: 700; font-size: 1.6rem; line-height: 1.1; color: var(--pfe-blanco) !important; margin-top: 0; }
.pfe-pie__titulo { font-family: var(--pfe-texto); font-size: 0.875rem; font-weight: 600; text-transform: none; letter-spacing: 0; margin: 0 0 0.6rem; color: #B9C7D3 !important; }
.pfe-pie p { line-height: 1.8; }
.pfe-pie__aclaracion {
	margin-top: var(--wp--preset--spacing--50);
	padding-top: 1.25rem;
	border-top: 1px solid rgba(255, 255, 255, 0.14);
	font-size: 0.875rem;
	color: #B9C7D3 !important;
	max-width: 60em;
}
.pfe-pie__aclaracion strong { color: var(--pfe-blanco); }

/* --------------------------------------------------------------------------
   Páginas internas
   -------------------------------------------------------------------------- */
.pfe-pagina { padding-block: var(--wp--preset--spacing--60); }

/* --------------------------------------------------------------------------
   Barra de contacto fija en celular (no tapa contenido: el body le deja espacio)
   -------------------------------------------------------------------------- */
.pfe-barra-movil { display: none; }
@media (max-width: 781px) {
	body.pfe-con-barra { padding-bottom: calc(72px + env(safe-area-inset-bottom)); }
	.pfe-barra-movil {
		display: grid;
		grid-template-columns: 1fr 1.15fr;
		gap: 0.6rem;
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 200;
		padding: 0.6rem 0.75rem calc(0.6rem + env(safe-area-inset-bottom));
		background: var(--pfe-blanco);
		box-shadow: 0 -1px 0 var(--pfe-linea), 0 -6px 20px rgba(20, 43, 69, 0.08);
	}
	.pfe-barra-movil a {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 48px;
		border-radius: var(--pfe-radio-chico);
		font-family: var(--pfe-texto);
		font-weight: 600;
		font-size: 1rem;
		text-decoration: none;
	}
	.pfe-barra-movil__revision { color: var(--pfe-azul-ruta); box-shadow: inset 0 0 0 2px var(--pfe-azul-ruta); }
	.pfe-barra-movil__wa { background: var(--pfe-dorado); color: var(--pfe-azul-ruta); }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition: none !important; animation: none !important; }
}
