/* Páginas de la web (plantillas pagina-texto y pagina-landing): formularios, portadas, franjas, tarjetas, vídeos.
   Prefijo as-p- para no chocar con las clases de la tienda (as-rejilla, as-tarjetas, as-destacado…). */
/* Formularios: en tema.css (el pie lleva formulario en todas las páginas). */
.as-entradilla { font-size: 1.125rem; color: var(--as-suave); }
.as-caja-datos { background: var(--as-bloque); border-radius: 10px; padding: 4px 22px 8px; margin: 1.5rem 0 2rem; }
.as-caja-datos h2 { margin-top: 1rem !important; }

/* Páginas de diseño (plantilla pagina-landing, herramientas/landing_a_bloques.py).
   Lenguaje visual de la web original: portada alta con título grande en mayúsculas, títulos de sección con serifa,
   franjas con sus colores (gris #F6F6F6, antracita #515454, ciruela #6F4A53), tarjetas-foto con el nombre encima,
   iconos de línea y botones perfilados en mayúsculas. */
.as-landing { --as-serif: var(--wp--preset--font-family--serifa, Unna, Georgia, serif); --as-gris-texto: #515454; }
.as-main.as-landing { padding-top: 0 !important; padding-bottom: 0; }
.as-landing .wp-block-post-content > * { margin-block-start: 0; }
.as-landing p, .as-landing li { color: var(--as-gris-texto); line-height: 1.75; }

/* Portada */
.as-portada-pagina { color: #fff; min-height: clamp(420px, 68vh, 680px) !important; padding: 64px var(--as-margen) !important; }
.as-portada-pagina h1, .as-portada-pagina > .wp-block-cover__inner-container > h2 {
	color: #fff; font-family: var(--as-titulos); font-weight: 800; text-transform: uppercase; letter-spacing: .01em; line-height: 1.02;
	font-size: clamp(2.3rem, 6.2vw, 4.6rem); max-width: 14ch; margin-inline: auto; text-wrap: balance; text-shadow: 0 2px 24px rgba(0, 0, 0, .25);
}
.as-portada-pagina p, .as-portada-pagina h2, .as-portada-pagina h3 { color: #fff; text-align: center; }
.as-portada-pagina p { font-size: 1.125rem; max-width: 60ch; margin-inline: auto; }
.as-portada-pagina .wp-block-image { margin-inline: auto; text-align: center; }
.as-portada-pagina .wp-block-image img { max-width: 260px; border-radius: 0; }
.as-portada-pagina .wp-block-buttons { justify-content: center; }

/* Franjas */
.as-p-franja { padding: clamp(52px, 8vw, 104px) var(--as-margen) !important; }
.as-p-franja > h2, .as-p-franja > .wp-block-heading:first-child { text-align: center; }
.as-landing h2 {
	font-family: var(--as-serif); font-weight: 400; color: var(--as-gris-texto); letter-spacing: 0;
	font-size: clamp(1.9rem, 3.6vw, 2.8rem); line-height: 1.15; margin-bottom: .7em;
}
.as-p-franja > h2::after, .as-bloque-formulario > h2::after { content: ""; display: block; width: 56px; height: 1px; background: currentColor; opacity: .45; margin: 22px auto 0; }
.as-landing h3 { font-size: 1.125rem; font-weight: 600; color: var(--as-texto); margin: .6em 0 .35em; }
.as-landing .wp-block-column > h2 { text-align: left; }
.as-p-franja .wp-block-columns { gap: clamp(24px, 5vw, 64px); align-items: center; margin-block: 1.75rem; }
.as-p-franja .wp-block-columns .wp-block-columns { align-items: stretch; }
.as-p-franja .wp-block-image img { border-radius: 4px; height: auto; }
.as-p-destacado { font-family: var(--as-serif); font-size: 1.35rem; text-align: center; color: var(--as-gris-texto); }

/* Fondos originales: oscuros con texto blanco */
.as-p-oscuro, .as-p-oscuro p, .as-p-oscuro li, .as-p-oscuro h2, .as-p-oscuro h3, .as-p-oscuro strong, .as-p-oscuro .as-p-destacado { color: #fff !important; }
.as-p-oscuro a:not(.wp-block-button__link) { color: #fff; }
.as-p-caja { padding: clamp(24px, 4vw, 44px) !important; border-radius: 4px; }

/* Botones perfilados, como en la web original */
.as-landing .wp-block-button__link {
	background: transparent !important; color: var(--as-texto) !important; border: 1px solid currentColor !important; border-radius: 0 !important;
	text-transform: uppercase; letter-spacing: .09em; font-size: .78rem !important; font-weight: 700; padding: 14px 30px !important;
	transition: background .2s, color .2s;
}
.as-landing .wp-block-button__link:hover { background: var(--as-texto) !important; color: #fff !important; }
.as-landing .as-p-oscuro .wp-block-button__link, .as-portada-pagina .wp-block-button__link, .as-p-cta .wp-block-button__link { color: #fff !important; }
.as-landing .as-p-oscuro .wp-block-button__link:hover, .as-portada-pagina .wp-block-button__link:hover, .as-p-cta .wp-block-button__link:hover { background: #fff !important; color: var(--as-texto) !important; }
.as-p-franja .wp-block-buttons { justify-content: center; margin-top: 1.75rem; }
.as-p-franja .wp-block-column .wp-block-buttons { justify-content: flex-start; }
.as-p-boton-claro .wp-block-button__link { background: #fff !important; color: var(--as-texto) !important; border-color: #fff !important; }

/* Tarjetas-foto (call-to-action de Elementor) */
.as-p-cta { min-height: clamp(220px, 26vw, 320px) !important; border-radius: 4px; overflow: hidden; padding: 28px !important; }
.as-p-cta .wp-block-cover__image-background { transition: transform .5s ease; }
.as-p-cta:hover .wp-block-cover__image-background { transform: scale(1.05); }
.as-p-cta h3 { color: #fff !important; font-size: clamp(1.5rem, 2.6vw, 2.1rem); font-weight: 800; text-transform: uppercase; line-height: 1.05; margin: 0 0 16px; text-shadow: 0 2px 18px rgba(0, 0, 0, .3); }
.as-p-rejilla:has(> .as-p-cta) { grid-template-columns: repeat(auto-fill, minmax(min(100%, 440px), 1fr)); gap: 24px; }

/* Rejillas de tarjetas e iconos */
.as-p-rejilla { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 28px; margin-block: 2rem; }
.as-p-rejilla > * { margin: 0 !important; }
.as-p-tarjeta { text-align: center; padding: 8px 12px; display: flex; flex-direction: column; align-items: center; }
.as-p-tarjeta h3 { margin-top: .4em; }
.as-p-tarjeta p { font-size: .95rem; }
.as-p-tarjeta > .wp-block-buttons { margin-top: auto; padding-top: 12px; justify-content: center !important; }
.as-p-tarjeta > .wp-block-image:not(.as-p-icono) { width: 100%; margin: 0 0 12px; }
.as-p-tarjeta > .wp-block-image:not(.as-p-icono) img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
.as-p-icono { margin: 0 auto 6px !important; }
.as-p-icono img { width: auto !important; height: 64px !important; object-fit: contain; border-radius: 0 !important; }
.as-p-oscuro .as-p-icono img { filter: invert(1) brightness(2); }
.as-p-iconos { gap: clamp(20px, 4vw, 56px) !important; align-items: center; margin-block: 1.5rem; }
.as-p-iconos .as-p-icono { margin: 0 !important; }
.as-p-iconos .as-p-icono img { height: 52px !important; opacity: .85; }

/* Formulario y otros */
.as-bloque-formulario { background: #F6F6F6; padding: clamp(52px, 8vw, 96px) var(--as-margen) !important; scroll-margin-top: calc(var(--as-barra-alto, 72px) + 16px); }
.as-bloque-formulario > h2 { text-align: center; }
.as-bloque-formulario .as-form { margin-inline: auto; }
.as-landing .wp-block-embed { margin-block: 1rem; }
.as-landing .wp-block-details { border-bottom: 1px solid var(--as-borde); padding: 12px 0; }
.as-landing .wp-block-details summary { font-weight: 700; cursor: pointer; }
.as-landing .as-marcas { margin-top: 1rem; }
.as-p-rejilla--iconos .as-p-tarjeta { text-align: center; }
.as-p-rejilla--iconos .wp-block-image img { width: 64px; object-fit: contain; }
.as-p-rejilla--iconos a { color: var(--as-texto); font-weight: 700; text-decoration: none; }
@media (max-width: 781px) {
	.as-p-franja .wp-block-columns .wp-block-columns { flex-wrap: wrap !important; }
	.as-p-franja .wp-block-columns .wp-block-columns > .wp-block-column { flex-basis: calc(50% - 20px) !important; }
	.as-landing .wp-block-column > h2 { text-align: center; }
}
/* Vídeo de YouTube ligero: miniatura y el reproductor (youtube-nocookie) solo al pulsar. */
.as-video { position: relative; display: block; aspect-ratio: 16 / 9; border-radius: 8px; overflow: hidden; background: #000; cursor: pointer; border: 0; padding: 0; width: 100%; }
.as-video img { width: 100%; height: 100%; object-fit: cover; opacity: .85; transition: opacity .2s; }
.as-video:hover img { opacity: 1; }
.as-video::after { content: ""; position: absolute; left: 50%; top: 50%; width: 68px; height: 48px; margin: -24px 0 0 -34px; border-radius: 12px; background: #c00 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='M8 5v14l11-7z'/%3E%3C/svg%3E") center / 28px no-repeat; }
.as-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.as-tabla { overflow-x: auto; }
.as-tabla table { border-collapse: collapse; width: 100%; font-size: .95rem; background: #fff; }
.as-tabla th { background: var(--as-texto); color: #fff; text-align: left; }
.as-tabla th, .as-tabla td { padding: 12px 14px; border: 1px solid var(--as-borde); vertical-align: top; }
/* Ajustes tras comparar con la web original */
.as-landing .as-p-franja.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
.as-landing .as-bloque-formulario.is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) { max-width: min(1140px, 100%); }
.as-landing .as-p-franja > .wp-block-columns, .as-landing .as-p-franja > p { max-width: min(1040px, 100%); }
.as-p-franja > .as-p-icono, .as-p-caja > .as-p-icono { display: flex; justify-content: center; }
.as-p-franja > .as-p-icono + h2 { margin-top: 10px; }
.as-landing .wp-block-button__link { white-space: nowrap; }
@media (max-width: 480px) { .as-landing .wp-block-button__link { white-space: normal; } }
/* Logos sueltos (p. ej. «HYDRA·VACUUM»): se ven enteros, no a 64 px de alto */
.as-p-franja > .as-p-icono img, .wp-block-column > .as-p-icono img, .as-p-caja > .as-p-icono img { height: auto !important; max-height: 88px; max-width: min(340px, 100%); width: auto !important; }
.as-p-franja > .as-p-icono:has(img[src*="icono"]) img, .wp-block-column > .as-p-icono:has(img[src*="icono"]) img { height: 64px !important; }
.as-p-ancla { display: block; scroll-margin-top: calc(var(--as-barra-alto, 72px) + 16px); }
/* Columna que solo lleva un icono (icono | texto): estrecha, pegada al texto */
.as-landing .wp-block-columns > .wp-block-column:has(> .wp-block-image:only-child img[src*="icono"]) { flex: 0 0 72px !important; }
.as-landing .wp-block-columns:has(> .wp-block-column > .wp-block-image:only-child img[src*="icono"]) { align-items: flex-start; gap: 20px; margin-block: .75rem; }
.as-landing .wp-block-column > .wp-block-image:only-child img[src*="icono"] { width: 56px; height: auto; border-radius: 0; }
/* Bloque foto + panel de color (portada de la web) */
.as-p-split { gap: 0 !important; align-items: stretch !important; margin-block: clamp(24px, 4vw, 44px) !important; max-width: min(1100px, 100%) !important; }
.as-p-split > .wp-block-column { flex-basis: 50% !important; }
.as-p-split .wp-block-image { margin: 0; height: 100%; }
.as-p-split .wp-block-image a { display: block; height: 100%; }
.as-p-split .wp-block-image img { width: 100%; height: 100%; min-height: 320px; object-fit: cover; border-radius: 0 !important; }
.as-p-panel { display: flex; flex-direction: column; justify-content: center; padding: clamp(32px, 5vw, 64px) !important; }
.as-p-panel h2 { text-align: left; margin-top: 0; }
.as-p-panel .wp-block-buttons { justify-content: flex-start !important; }
@media (min-width: 782px) { .as-p-split--invertido { flex-direction: row-reverse; } }
.as-p-logos .as-p-icono img { height: 44px !important; }
.as-p-subtitulo { font-family: var(--as-serif) !important; font-weight: 400 !important; font-size: clamp(1.5rem, 2.6vw, 2rem) !important; text-align: center; color: var(--as-gris-texto) !important; margin-top: 2.5rem !important; }
/* Contraste (auditoría herramientas/contraste.js, WCAG AA) */
.as-p-medio p, .as-p-medio li, .as-p-medio h2, .as-p-medio h3, .as-p-medio .as-p-destacado { color: var(--as-texto) !important; }
/* Texto sobre foto: velo del 50 % + entradilla en tamaño «grande» + botones con fondo propio. */
.as-portada-pagina p { font-size: 1.2rem; font-weight: 700; text-shadow: 0 1px 12px rgba(0, 0, 0, .35); }
.as-portada-pagina .wp-block-button__link, .as-p-cta .wp-block-button__link { background: rgba(28, 25, 23, .55) !important; border-color: rgba(255, 255, 255, .9) !important; }
.as-portada-pagina .as-p-boton-claro .wp-block-button__link { background: #fff !important; color: var(--as-texto) !important; }
.as-p-cta h3, .as-portada-pagina h1 { text-shadow: 0 2px 20px rgba(0, 0, 0, .45); }
/* Botones de las páginas de texto (Muchas gracias, legales): WEB-08 */
.as-pagina-texto .wp-block-button__link { background: var(--as-texto) !important; color: #fff !important; border: 1px solid var(--as-texto) !important; }
.as-pagina-texto .is-style-outline .wp-block-button__link { background: transparent !important; color: var(--as-texto) !important; }
.as-pagina-texto .wp-block-button__link:hover { background: var(--as-acento) !important; border-color: var(--as-acento) !important; color: #fff !important; }
/* Secciones que en Elementor tenían foto de fondo: texto en limpio + foto recortada hacia la persona */
.as-p-texto-foto { gap: 0 !important; align-items: stretch !important; max-width: min(1140px, 100%) !important; }
.as-p-texto-foto > .wp-block-column:not(.as-p-col-foto) { padding: clamp(8px, 3vw, 40px) clamp(0px, 3vw, 48px); }
.as-p-col-foto { min-height: 380px; }
.as-p-foto-lado { margin: 0; height: 100%; }
.as-p-foto-lado img { width: 100%; height: 100% !important; min-height: 380px; object-fit: cover; border-radius: 4px !important; }
.as-p-foto-izq img { object-position: left center; }
.as-p-foto-der img { object-position: right center; }
@media (max-width: 781px) { .as-p-col-foto, .as-p-foto-lado img { min-height: 280px; } .as-p-texto-foto > .as-p-col-foto { order: -1; } }
.as-p-split .as-p-caja { height: 100%; display: flex; flex-direction: column; justify-content: center; border-radius: 0; margin: 0 !important; box-sizing: border-box; }
.as-p-split .as-p-caja > * { max-width: 520px !important; }
.as-p-caja .wp-block-image img[src*="icono"], .as-p-panel .wp-block-image img[src*="icono"] { width: auto !important; height: 64px !important; object-fit: contain; }
.as-p-caja .wp-block-image:has(img[src*="icono"]) { text-align: center; margin-bottom: 8px; }
/* Preguntas frecuentes */
.as-faq .wp-block-details { border: 1px solid var(--as-borde); border-radius: 8px; padding: 0; margin: 0 0 10px; background: #fff; }
.as-faq .wp-block-details summary { padding: 16px 44px 16px 18px; font-weight: 700; cursor: pointer; list-style: none; position: relative; }
.as-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.as-faq .wp-block-details summary::after { content: "+"; position: absolute; right: 18px; top: 50%; transform: translateY(-50%); font-size: 1.4rem; font-weight: 400; color: var(--as-acento); }
.as-faq .wp-block-details[open] summary::after { content: "−"; }
.as-faq .wp-block-details > :not(summary) { padding: 0 18px 16px; margin: 0; }
.as-faq h2 { margin-top: 2rem; }
/* Registro de clientes ([as_registro]) */
.as-registro__ya { margin: 0 0 1rem; }
.as-registro__pestanas { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border: 1px solid var(--as-borde-fuerte); border-radius: 999px; padding: 4px; margin: 0 0 1.25rem; max-width: 460px; }
.as-registro__pestanas button { font: inherit; font-weight: 700; padding: 12px 16px; border: 0; border-radius: 999px; background: transparent; color: var(--as-texto); cursor: pointer; }
.as-registro__pestanas button[aria-selected="true"] { background: var(--as-texto); color: #fff; }
.as-registro__pestanas button:focus-visible { outline: 2px solid var(--as-acento); outline-offset: 2px; }
.as-registro__info { background: var(--as-bloque); border-radius: 8px; padding: 12px 16px; margin: 0 0 1rem; }
.as-registro__info p { margin: 0; }
.as-registro[data-tipo="particular"] .as-registro__solo-pro, .as-registro[data-tipo="profesional"] .as-registro__solo-particular { display: none; }
.as-registro__aviso { background: var(--as-bloque); padding: 16px; border-radius: 8px; }

/* Franja con vídeo de fondo ([as_video_fondo], inc/video.php) */
.as-video-fondo { position: relative; overflow: hidden; min-height: clamp(320px, 42vw, 560px); display: grid; align-items: end; background: #1C1917; color: #fff; margin-block: 0; }
.as-video-fondo__poster, .as-video-fondo__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.as-video-fondo__video { opacity: 0; transition: opacity .8s; }
.as-video-fondo__video.is-listo { opacity: 1; }
.as-video-fondo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(20, 16, 14, .78) 0%, rgba(20, 16, 14, .35) 45%, rgba(20, 16, 14, 0) 70%); pointer-events: none; }
.as-video-fondo__texto { position: relative; z-index: 1; max-width: var(--as-ancho); width: 100%; margin: 0 auto; box-sizing: border-box; padding: clamp(28px, 5vw, 72px) var(--as-margen); }
.as-video-fondo:not(.as-video-fondo--portada) .as-video-fondo__texto p { color: #fff; text-shadow: 0 1px 12px rgba(0, 0, 0, .35); margin: 0 0 20px; max-width: 18ch; font-family: var(--as-serif, Georgia, serif); font-size: clamp(1.9rem, 1.2rem + 2.4vw, 3.2rem); line-height: 1.08; }
.as-video-fondo__boton { display: inline-block; background: #fff; color: #1C1917 !important; border-radius: 999px; padding: 13px 28px; font-weight: 700; text-decoration: none !important; }
.as-video-fondo__boton:hover { background: var(--as-acento-claro); }
@media (max-width: 599px) { .as-video-fondo::after { background: linear-gradient(0deg, rgba(20, 16, 14, .82) 0%, rgba(20, 16, 14, .2) 70%); } }
.as-p-sin-margen { padding: 0 !important; margin-block-end: 0; }

/* Textos de los puntos de las imágenes interactivas de Elementor (hotspot): pie bajo la imagen. */
.as-p-puntos { list-style: none; padding: 0; margin: 12px 0 0; text-align: center; font-size: .9rem; line-height: 1.5; color: var(--as-suave); }
.as-p-puntos li + li { margin-top: 10px; }
.as-p-puntos strong { color: var(--as-texto); letter-spacing: .04em; }
.as-p-oscuro .as-p-puntos, .as-p-medio .as-p-puntos { color: inherit; }
.as-p-oscuro .as-p-puntos strong, .as-p-medio .as-p-puntos strong { color: inherit; }
.wp-block-video video { width: 100%; border-radius: 8px; background: #000; }

/* Franjas con foto a todo el ancho (landing_a_bloques.franja_imagen): la persona a un lado y el texto sobre la parte
   lisa. El velo es del color de esa parte de la foto y se desvanece hacia la persona (mask): se funde sin cortes. */
.as-p-foto-fondo.wp-block-cover { padding: clamp(64px, 8vw, 112px) var(--as-margen); align-items: center; margin-block: 0; }
.as-p-foto-fondo > .wp-block-cover__inner-container { max-width: var(--as-ancho); width: 100%; margin: 0 auto; }
.as-p-foto-fondo > .wp-block-cover__inner-container > * { max-width: min(560px, 44%) !important; margin-left: 0 !important; margin-right: auto !important; }
.as-p-foto-izq > .wp-block-cover__inner-container > * { margin-left: auto !important; margin-right: 0 !important; }
.as-p-foto-fondo > .wp-block-cover__background {
	opacity: 1 !important;
	-webkit-mask-image: linear-gradient(to right, #000 0%, #000 42%, rgba(0, 0, 0, .8) 52%, transparent 68%);
	mask-image: linear-gradient(to right, #000 0%, #000 42%, rgba(0, 0, 0, .8) 52%, transparent 68%);
}
.as-p-foto-izq > .wp-block-cover__background {
	-webkit-mask-image: linear-gradient(to left, #000 0%, #000 42%, rgba(0, 0, 0, .8) 52%, transparent 68%);
	mask-image: linear-gradient(to left, #000 0%, #000 42%, rgba(0, 0, 0, .8) 52%, transparent 68%);
}
.as-p-foto-fondo.is-light .wp-block-cover__inner-container { color: var(--as-texto); }
@media (max-width: 781px) {
	.as-p-foto-fondo.wp-block-cover { display: block; padding: 0; min-height: 0 !important; }
	.as-p-foto-fondo > .wp-block-cover__image-background { position: relative; display: block; height: min(72vw, 420px); }
	.as-p-foto-fondo > .wp-block-cover__background { top: calc(min(72vw, 420px) - 64px); -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 64px); mask-image: linear-gradient(to bottom, transparent 0, #000 64px); }
	.as-p-foto-fondo > .wp-block-cover__inner-container { padding: 8px var(--as-margen) 48px; box-sizing: border-box; }
	.as-p-foto-fondo > .wp-block-cover__inner-container > * { max-width: none !important; margin-left: 0 !important; }
}

/* ------------------------------------------------------------------ Pulido de landings (28/09): jerarquía y detalle */

/* Portada: la foto manda (velo más ligero y degradado hacia abajo, donde está el título). */
.as-portada-pagina > .wp-block-cover__background { opacity: 1 !important; background: linear-gradient(180deg, rgba(20, 16, 14, .28) 0%, rgba(20, 16, 14, .5) 40%, rgba(20, 16, 14, .5) 70%, rgba(20, 16, 14, .62) 100%) !important; }
.as-portada-pagina h1 { text-shadow: 0 2px 30px rgba(0, 0, 0, .45); }

/* Franja-titular: franja oscura con solo un titular (y quizá un botón), como las bandas negras de la web original. */
.as-p-franja.as-p-oscuro:not(:has(p, ul, figure, .wp-block-columns, .as-p-rejilla)) { padding-block: clamp(22px, 3vw, 34px) !important; }
.as-p-franja.as-p-oscuro:not(:has(p, ul, figure, .wp-block-columns, .as-p-rejilla)) > .wp-block-heading {
	margin: 0 auto; font-family: var(--as-titulos); font-weight: 800; text-transform: uppercase; letter-spacing: .03em;
	font-size: clamp(1.05rem, 1.7vw, 1.4rem); line-height: 1.25;
}
.as-p-franja.as-p-oscuro:not(:has(p, ul, figure, .wp-block-columns, .as-p-rejilla)) > h2::after { display: none; }
.as-p-franja.as-p-oscuro:not(:has(p, ul, figure, .wp-block-columns, .as-p-rejilla)) .wp-block-buttons { margin-top: 14px; }

/* Título de franja oscura con rejilla (servicios): en mayúsculas y con aire. */
.as-p-franja.as-p-oscuro > h3.wp-block-heading:first-child {
	text-align: center; font-weight: 800; text-transform: uppercase; letter-spacing: .03em; font-size: clamp(1.1rem, 1.8vw, 1.45rem); margin-bottom: 2.25rem;
}

/* Tarjetas de la rejilla: título más grande que el texto (antes casi iguales) y el icono encima. */
.as-landing .as-p-rejilla .as-p-tarjeta h3 { font-size: clamp(1.2rem, 1.5vw, 1.45rem); font-weight: 600; line-height: 1.25; margin: .2em 0 .6em; }
.as-landing .as-p-rejilla .as-p-tarjeta p { font-size: .95rem; }
.as-p-icono-fa { display: flex; justify-content: center; margin: 0 0 16px; color: var(--as-acento); }
.as-p-icono-fa svg { width: auto; height: 38px; }
.as-p-oscuro .as-p-icono-fa, .as-p-medio .as-p-icono-fa { color: var(--as-acento-claro); }
.as-p-tarjeta:has(.as-p-icono-fa) { text-align: center; }

/* Franjas con foto: titular grande con serifa, entradilla y texto cómodo. */
.as-p-foto-fondo .wp-block-cover__inner-container > .wp-block-heading:first-child,
.as-p-foto-fondo .wp-block-cover__inner-container > h2 + h3 {
	font-family: var(--as-serif); font-weight: 400; text-transform: none; letter-spacing: 0; line-height: 1.08;
	font-size: clamp(2rem, 1.3rem + 2.2vw, 3.1rem); margin: 0 0 .45em; color: inherit;
}
/* «Mejoramos juntas tu negocio» + «Servicio de…»: el primero pasa a antetítulo. */
.as-p-foto-fondo .wp-block-cover__inner-container > h2.wp-block-heading:has(+ h3) {
	font-family: var(--as-titulos); font-size: .8rem; font-weight: 800; text-transform: uppercase; letter-spacing: .18em; margin-bottom: 14px; color: var(--as-acento);
}
.as-p-foto-fondo.as-p-oscuro .wp-block-cover__inner-container > h2.wp-block-heading:has(+ h3) { color: var(--as-acento-claro); }
.as-p-foto-fondo .wp-block-cover__inner-container > .wp-block-heading + p { font-size: clamp(1.1rem, 1rem + .4vw, 1.3rem); line-height: 1.5; color: var(--as-texto); margin-bottom: 1.1em; }
.as-p-foto-fondo.as-p-oscuro .wp-block-cover__inner-container > .wp-block-heading + p { color: #fff; }
.as-p-foto-fondo p { font-size: 1rem; color: #3A3B3B; }
.as-p-foto-fondo.as-p-oscuro p { color: #fff; }
.as-p-foto-fondo.as-p-medio p { color: #2B2A28; }
.as-p-foto-fondo .wp-block-buttons { justify-content: flex-start !important; margin-top: 1.75rem; }
.as-portada-larga h1 { font-size: clamp(2rem, 4.6vw, 3.6rem) !important; max-width: 20ch !important; }
.as-portada-pagina h1 + .wp-block-image, .as-portada-pagina h1 + figure { margin-top: clamp(20px, 3vw, 36px); }
/* Franja que solo lleva un botón (resto de Elementor): pegada a la anterior, sin hueco. */
.as-p-franja:has(> .wp-block-buttons:only-child) { padding-top: 0 !important; margin-top: calc(-1 * clamp(24px, 4vw, 52px)); }

/* Portada: cabecera con el vídeo corporativo ([as_video_fondo titulo="…"]). */
.as-video-fondo--portada { min-height: clamp(560px, 86vh, 820px); align-items: center; }
.as-video-fondo--portada::after { background: linear-gradient(90deg, rgba(14, 11, 10, .82) 0%, rgba(14, 11, 10, .6) 38%, rgba(14, 11, 10, .12) 72%), linear-gradient(0deg, rgba(14, 11, 10, .35), rgba(14, 11, 10, 0) 40%); }
.as-video-fondo--portada .as-video-fondo__texto { padding-block: clamp(72px, 10vw, 120px); }
.as-video-fondo--portada h1 {
	margin: 0 0 20px; max-width: 13ch; color: #fff; font-family: var(--as-titulos); font-weight: 800; text-transform: uppercase;
	font-size: clamp(2.4rem, 1.4rem + 4.2vw, 5rem); line-height: .98; letter-spacing: -.005em; text-wrap: balance;
}
.as-video-fondo .as-video-fondo__antetitulo { margin: 0 0 18px; font-family: var(--as-titulos); font-size: .8rem; font-weight: 800; letter-spacing: .2em; text-transform: uppercase; color: #fff; text-shadow: 0 1px 10px rgba(0, 0, 0, .5); }
.as-video-fondo .as-video-fondo__entradilla { margin: 0 0 32px; max-width: 44ch; font-family: inherit; font-size: clamp(1.05rem, 1rem + .35vw, 1.3rem); line-height: 1.5; color: #fff; }
.as-video-fondo__botones { display: flex; flex-wrap: wrap; gap: 12px; }
.as-video-fondo__boton--linea { background: transparent !important; color: #fff !important; box-shadow: inset 0 0 0 1.5px #fff; }
.as-video-fondo__boton--linea:hover { background: #fff !important; color: #1C1917 !important; }
@media (max-width: 599px) {
	.as-video-fondo--portada { min-height: 640px; align-items: end; }
	.as-video-fondo--portada::after { background: linear-gradient(0deg, rgba(14, 11, 10, .88) 0%, rgba(14, 11, 10, .55) 55%, rgba(14, 11, 10, .15) 100%); }
	.as-video-fondo--portada .as-video-fondo__texto { padding-block: 48px; }
}

/* Portada: bloques foto + panel de color a sangre (de borde a borde), más altos y sin huecos entre ellos. */
.home .as-main { overflow-x: clip; }
.home .as-p-split {
	width: 100vw; max-width: none !important; margin-left: calc(50% - 50vw) !important; margin-right: 0 !important; margin-block: 0 !important;
}
.home .as-p-split .wp-block-image img { min-height: clamp(360px, 38vw, 560px); }
.home .as-p-split .as-p-panel { padding: clamp(40px, 6vw, 96px) clamp(28px, 7vw, 120px) !important; }
.home .as-p-split .as-p-panel h2 { font-size: clamp(2.2rem, 1.4rem + 2.4vw, 3.4rem); }
.home .as-p-split .as-p-panel p { font-size: 1.05rem; max-width: 46ch; }

/* Fichas y landings: sección «foto + texto» con la foto a sangre en su mitad (landing_a_bloques: as-p-split--foto). */
.as-landing .as-p-split--foto { width: 100vw; max-width: none !important; margin-left: calc(50% - 50vw) !important; margin-right: 0 !important; margin-block: 0 !important; }
.as-landing .as-main, .as-main.as-landing { overflow-x: clip; }
.as-p-franja:has(> .as-p-split--foto:only-child) { padding-block: 0 !important; }
.as-p-split--foto .as-p-col-foto .wp-block-image img { min-height: clamp(360px, 40vw, 600px); }
.as-p-split--foto .as-p-col-texto { padding: clamp(40px, 6vw, 96px) clamp(24px, 6vw, 104px) !important; }
.as-p-split--foto .as-p-col-texto > * { max-width: 560px; }
.as-p-split--foto.as-p-split--invertido .as-p-col-texto > * { margin-left: auto; }
@media (max-width: 781px) { .as-p-split--foto .as-p-col-foto .wp-block-image img { min-height: 300px; } }
/* Rejilla de tarjetas-foto con número impar: la última ocupa toda la fila (sin hueco al lado). */
@media (min-width: 900px) { .as-p-rejilla > .as-p-cta:last-child:nth-child(odd) { grid-column: 1 / -1; min-height: clamp(220px, 22vw, 300px) !important; } }

/* Portadas de página: el título abajo a la izquierda (no encima de la cara), con el velo más oscuro en esa zona. */
.as-portada-pagina.wp-block-cover { align-items: flex-end; justify-content: flex-start; }
.as-portada-pagina > .wp-block-cover__inner-container { max-width: var(--as-ancho); width: 100%; margin: 0 auto; }
.as-portada-pagina h1, .as-portada-pagina > .wp-block-cover__inner-container > h2 { text-align: left !important; margin-left: 0 !important; max-width: 16ch; }
.as-portada-pagina p, .as-portada-pagina h2, .as-portada-pagina h3 { text-align: left !important; margin-left: 0 !important; }
.as-portada-pagina .wp-block-image { text-align: left !important; margin-left: 0 !important; }
.as-portada-pagina .wp-block-buttons { justify-content: flex-start !important; }
.as-portada-pagina > .wp-block-cover__background { background: linear-gradient(20deg, rgba(20, 16, 14, .78) 0%, rgba(20, 16, 14, .5) 35%, rgba(20, 16, 14, .12) 70%) !important; }
.as-portada-pagina .wp-block-image img { max-width: 200px; }

/* Dos franjas con foto seguidas: una banda negra fina entre ellas, como en la web original (sin texto). */
.as-p-foto-fondo + .as-p-foto-fondo,
.as-p-foto-fondo + .as-p-franja:has(> .as-p-split--foto:only-child),
.as-p-franja:has(> .as-p-split--foto:only-child) + .as-p-foto-fondo,
.as-p-franja:has(> .as-p-split--foto:only-child) + .as-p-franja:has(> .as-p-split--foto:only-child) {
	border-top: clamp(28px, 4vw, 48px) solid #000;
}
