/* ==========================================================================
   Senlleira — CSS de deseño (extraído do estático: css/senlleira.css + estilos en liña).
   Os valores son os da maqueta; os bloques propios levan o seu CSS en blocks/<bloque>/src/style.css.
   Puntos de corte do deseño: móbil < 640 px · tableta 640–1099 px · escritorio ≥ 1100 px.
   ========================================================================== */

/* ---------- Tokens (variables Figma do deseño) ---------- */
:root {
	--sl-green: rgb(111,165,44);
	--sl-green-hover: rgb(96,145,36);
	--sl-green-active: rgb(84,128,31);
	--sl-green-dark: rgb(79,110,75);
	--sl-terracotta: rgb(201,128,89);
	--sl-rose: rgb(191,106,106);
	--sl-error: rgb(155,79,79); /* rosa escurecido: ≥ 4,8:1 sobre branco, crema e o fondo do aviso (WCAG 1.4.3) */
	--sl-tan: rgb(214,170,114);
	--sl-sage: rgb(205,212,196);
	--sl-orange: rgb(221,121,3);
	--sl-sand: rgb(242,235,219);
	--sl-cream: rgb(248,243,237);
	--sl-white: rgb(255,255,255);
	--sl-black: rgb(0,0,0);
	--sl-placeholder: rgb(217,217,217);
	--sl-hero-overlay: linear-gradient(90deg, rgba(0,0,0,0.23) 0%, rgba(0,0,0,0) 100%);
	--sl-card-overlay: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.5) 100%);

	--sl-font-display: "Pompiere", "Pompiere fallback", "Helvetica Neue", Arial, sans-serif;
	--sl-font-body: "Montserrat", "Montserrat fallback", "Helvetica Neue", Arial, sans-serif;

	--sl-fs-hero: clamp(64px, 9.061vw, 137px);       --sl-lh-hero: clamp(48px, 6.217vw, 94px);
	--sl-fs-hero-sub: clamp(32px, 3.836vw, 58px);    --sl-lh-hero-sub: clamp(36px, 4.167vw, 63px);
	--sl-fs-h2: clamp(34px, 2.910vw, 44px);          --sl-lh-h2: 35px;
	--sl-fs-lead: clamp(22px, 1.918vw, 29px);        --sl-lh-lead: clamp(32px, 2.844vw, 43px);
	--sl-lh-intro: clamp(30px, 2.513vw, 38px);
	--sl-fs-tagline: clamp(24px, 2.116vw, 32px);     --sl-lh-tagline: clamp(36px, 5.159vw, 78px);
	--sl-fs-h3: clamp(25px, 1.918vw, 29px);          --sl-lh-h3: 31px;
	--sl-fs-number: clamp(96px, 9.722vw, 147px);
	--sl-fs-card: 34px;  --sl-lh-card: 35px;
	--sl-fs-card-sm: 31px; --sl-lh-card-sm: 40px;
	--sl-fs-button: 25px; --sl-lh-button: 30px;
	--sl-fs-nav: 19px;   --sl-lh-nav: 23px;
	--sl-fs-footer: 24px; --sl-lh-footer: 33px;
	--sl-fs-footer-nav: 25px; --sl-lh-footer-nav: 43px;
	--sl-fs-body: 16px;  --sl-lh-body: 26px;
	--sl-fs-hero-body: 17px; --sl-lh-hero-body: 25px;
	--sl-fs-legal: 14px; --sl-lh-legal: 23px;

	--sl-radius-button: 26.5px;
	--sl-radius-menu: 22.5px;
	--sl-radius-card: 24px;

	--sl-container: 1280px;
	/* Marxe esquerda que deixa sempre sitio ao logo da árbore fixo (139 px de ancho). */
	--sl-gutter-left: max(20px, calc(160px - max(0px, (100vw - var(--sl-container) - 40px) / 2)));
	--sl-gutter-mobile: 20px;

	--sl-ease: cubic-bezier(.2,.7,.2,1);
	--sl-admin-bar: 0px;
}
@media (max-width: 899px) { :root { --sl-gutter-left: 76px; } }
.admin-bar { --sl-admin-bar: 32px; }
@media (max-width: 782px) { .admin-bar { --sl-admin-bar: 46px; } }

/* ---------- Base ---------- */
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--sl-white); color: var(--sl-black); font-family: var(--sl-font-body); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
*, *::before, *::after { box-sizing: border-box; }
a { color: var(--sl-terracotta); text-decoration: none; }
a:hover { color: var(--sl-green); }
:focus-visible { outline: 2px solid var(--sl-green); outline-offset: 3px; }
img { display: block; max-width: 100%; height: auto; }
button { font: inherit; }
.wp-site-blocks > * { margin-block: 0; }
.wp-site-blocks { padding: 0; }
main { position: relative; overflow-x: clip; }
.screen-reader-text { border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; word-wrap: normal !important; }
.screen-reader-text:focus { clip: auto; clip-path: none; height: auto; width: auto; z-index: 100000; background: #fff; padding: 12px 18px; left: 8px; top: 8px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; } }

/* ---------- Contedor: .container de Bootstrap axustado ao deseño ----------
   1280 px de contido + marxes; a esquerda sempre deixa sitio ao logo fixo. */
.container, .sl-wrap {
	width: 100%;
	max-width: calc(var(--sl-container) + 40px);
	margin-inline: auto;
	padding-left: var(--sl-gutter-left);
	padding-right: 20px;
}
.sl-wrap--estreito {
	width: 100%;
	margin-inline: auto;
	max-width: calc(819px + 2 * var(--sl-gutter-left));
	padding-left: var(--sl-gutter-left);
	padding-right: var(--sl-gutter-left);
}

/* ---------- Tipografía (clases que levan os bloques nativos dos modelos) ---------- */
:is(.sl-h1, .is-style-titulo-paxina) { margin: 0; font-family: var(--sl-font-display); font-weight: 400; font-size: clamp(48px, 4.762vw, 72px); line-height: clamp(56px, 5.556vw, 84px); text-transform: uppercase; color: var(--sl-terracotta); }
/* Móbil estreito: as palabras longas (CAMPAMENTOS, ANIVERSARIOS) non cabían a 48 px entre marxes de 76 px */
@media (max-width: 479px) {
	:is(.sl-h1, .is-style-titulo-paxina) { font-size: clamp(36px, 13vw, 48px); }
	.sl-cab-paxina .sl-wrap--estreito { padding-right: 20px; }
}
:is(.sl-subtitulo, .is-style-subtitulo) { margin: 22px 0 0; font-family: var(--sl-font-display); font-size: clamp(20px, 1.587vw, 24px); line-height: clamp(32px, 2.579vw, 39px); text-transform: uppercase; color: var(--sl-black); text-wrap: pretty; }
:is(.sl-subtitulo-grande, .is-style-subtitulo-grande) { margin: 22px 0 0; font-family: var(--sl-font-display); font-size: clamp(28px, 2.4vw, 36px); line-height: clamp(38px, 3.2vw, 48px); text-transform: uppercase; color: var(--sl-black); }
:is(.sl-subtitulo-grande, .is-style-subtitulo-grande) + :is(.sl-subtitulo, .is-style-subtitulo) { margin-top: 0; }
:is(.sl-h2, .is-style-titulo-seccion) { margin: 0; font-family: var(--sl-font-display); font-weight: 400; font-size: var(--sl-fs-h2); line-height: 1.1; text-transform: uppercase; color: var(--sl-terracotta); }
:is(.sl-h3, .is-style-titulo-pequeno) { margin: 0; font-family: var(--sl-font-display); font-weight: 400; font-size: var(--sl-fs-h3); line-height: var(--sl-lh-h3); text-transform: uppercase; color: var(--sl-terracotta); }
:is(.sl-titular, .is-style-titular) { margin: 0; font-family: var(--sl-font-display); font-weight: 400; font-size: clamp(44px, 3.902vw, 59px); line-height: clamp(48px, 4.233vw, 64px); text-transform: uppercase; color: var(--sl-green); }
:is(.sl-lead, .is-style-entradilla) { margin: 0; font-family: var(--sl-font-display); font-size: clamp(22px, 1.7vw, 26px); line-height: 1.35; color: var(--sl-black); text-wrap: pretty; }
:is(.sl-texto, .is-style-texto), :is(.sl-texto, .is-style-texto) p { font-family: var(--sl-font-body); font-size: var(--sl-fs-body); line-height: var(--sl-lh-body); color: var(--sl-black); text-wrap: pretty; }
p:is(.sl-texto, .is-style-texto) { margin: 0; }
:is(.sl-texto, .is-style-texto) strong, :is(.sl-lead, .is-style-entradilla) strong { font-weight: 500; }
/* Cores da paleta como texto (o selector de cor nativo de título e parágrafo). */
.has-verde-color { color: var(--sl-green) !important; }
.has-terracota-color { color: var(--sl-terracotta) !important; }
.has-rosa-color { color: var(--sl-rose) !important; }
.has-branco-color { color: var(--sl-white) !important; }
.has-negro-color { color: var(--sl-black) !important; }
.has-area-color { color: var(--sl-tan) !important; }
.has-laranxa-color { color: var(--sl-orange) !important; }
mark.has-inline-color { background: transparent; }

/* ---------- Botóns (core/button e .sl-boton) ---------- */
.wp-block-buttons { display: flex; flex-wrap: wrap; gap: 16px; margin: 0; }
.wp-block-button { display: inline-flex; margin: 0; }
.wp-block-button__link, .sl-boton {
	display: inline-flex; justify-content: center; align-items: flex-start;
	min-width: 193px; height: 48px; padding: 9px 28px 0; box-sizing: border-box;
	border: 0; border-radius: var(--sl-radius-button);
	background: var(--sl-green); color: var(--sl-white);
	font-family: var(--sl-font-display); font-weight: 400; font-size: var(--sl-fs-button); line-height: var(--sl-lh-button);
	white-space: nowrap; text-decoration: none; cursor: pointer;
	transition: background-color .25s var(--sl-ease), color .25s var(--sl-ease), transform .25s var(--sl-ease);
}
.wp-block-button__link:hover, .sl-boton:hover { background: var(--sl-green-hover); color: var(--sl-white); transform: translateY(-1px); }
.wp-block-button__link:active, .sl-boton:active { background: var(--sl-green-active); transform: translateY(0); }
.wp-block-button.is-style-contorno .wp-block-button__link, .sl-boton--contorno {
	padding-top: 8px; border: 1px solid var(--sl-green); background: transparent; color: var(--sl-green);
}
.wp-block-button.is-style-contorno .wp-block-button__link:hover, .sl-boton--contorno:hover { background: var(--sl-green); color: var(--sl-white); }
.wp-block-button.is-style-contorno .wp-block-button__link:active { background: var(--sl-green-active); color: var(--sl-white); }

/* ---------- Ondas ---------- */
.sl-onda { display: block; width: 100%; height: auto; aspect-ratio: 1512 / 111; }
.sl-onda--invertida { transform: scaleY(-1); }

/* ---------- Distintivo de contido de exemplo ---------- */
.sl-exemplo {
	display: inline-block; margin: 0 0 10px; padding: 3px 10px; border: 1px dashed var(--sl-terracotta); border-radius: 999px;
	background: rgba(255,255,255,.85); color: var(--sl-terracotta);
	font-family: var(--sl-font-body); font-size: 11px; line-height: 16px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase;
}

/* ==========================================================================
   CABECEIRA: logo da árbore fixo + menú en pílula (core/navigation)
   ========================================================================== */
.sl-logo {
	position: fixed; z-index: 51; left: 1px; top: var(--sl-admin-bar);
	width: 138.135px; height: 344px; overflow: hidden;
	transform-origin: 0 0; transition: transform .3s var(--sl-ease);
}
.sl-logo__in { position: absolute; inset: 0; transform-origin: 30% 0; transition: transform .5s var(--sl-ease); }
.sl-logo img { position: absolute; left: -97.139px; top: 10.695px; width: 200.352px; height: 344px; max-width: none; transform: rotate(180deg); }
.sl-logo:hover .sl-logo__in, .sl-logo:focus-visible .sl-logo__in { transition: transform .6s cubic-bezier(.34,1.56,.64,1); transform: translateX(12px) rotate(-4deg); }
@media (prefers-reduced-motion: reduce) { .sl-logo:hover .sl-logo__in, .sl-logo:focus-visible .sl-logo__in { transform: translateX(12px); } }
@media (max-width: 1099px) { .sl-logo { transform: scale(.45); } }
/* Móbil: marxes iguais aos dous lados (20 px). O logo deixa de ser fixo e queda arriba de todo,
   así o contido non lle pasa por debaixo ao baixar e non fai falta reservarlle a marxe esquerda. */
@media (max-width: 639px) {
	:root { --sl-gutter-left: 20px; }
	.sl-logo { position: absolute; }
	/* As cabeceiras de páxina están á altura do logo: só elas gardan sitio para el (chega ata 47 px) */
	.sl-cab-paxina__texto .sl-wrap--estreito { padding-left: 56px; }
}

.sl-cabeceira {
	position: fixed; z-index: 50; left: 0; right: 0; top: calc(39px + var(--sl-admin-bar)); height: 45px;
	pointer-events: none; transition: transform .45s var(--sl-ease);
}
.sl-cabeceira.is-oculta { transform: translateY(-150px); }
.sl-cabeceira nav.wp-block-navigation { position: absolute; top: 0; left: 50%; transform: translateX(calc(-50% - 26.14px)); pointer-events: auto; gap: 0; }
.sl-cabeceira .wp-block-navigation__container {
	display: flex; flex-wrap: nowrap; align-items: center; gap: 32.3px;
	height: 45px; margin: 0; padding: 0 47.8px; list-style: none;
	border-radius: var(--sl-radius-menu); background: var(--sl-white); box-shadow: 0 4px 12px rgba(32,30,29,0.07);
}
.sl-cabeceira .wp-block-navigation-item { position: relative; margin: 0; }
.sl-cabeceira .wp-block-navigation-item__content,
.sl-cabeceira .wp-block-navigation-submenu__toggle {
	display: block; padding: 0; border: 0; background: transparent; cursor: pointer;
	font-family: var(--sl-font-display); font-size: var(--sl-fs-nav); line-height: var(--sl-lh-nav);
	text-transform: uppercase; white-space: nowrap; color: var(--sl-terracotta); text-decoration: none; transition: color .2s;
}
.sl-cabeceira .wp-block-navigation-item__content:hover,
.sl-cabeceira .wp-block-navigation-submenu__toggle:hover,
.sl-cabeceira .wp-block-navigation-submenu__toggle[aria-expanded="true"],
.sl-cabeceira .current-menu-item > .wp-block-navigation-item__content { color: var(--sl-green); }
.sl-cabeceira .wp-block-navigation__submenu-icon { display: none; }
/* Despregable de servizos */
.sl-cabeceira .wp-block-navigation .has-child .wp-block-navigation__submenu-container {
	position: absolute; left: 50%; top: calc(100% + 19px); z-index: 2;
	display: block; width: 280px; min-width: 0; height: auto; margin: 0; padding: 14px 0;
	border: 0; border-radius: 22px; background: var(--sl-white); box-shadow: 0 12px 32px rgba(0,0,0,0.10);
	text-align: center; list-style: none;
	opacity: 0; visibility: hidden; transform: translate(-50%, -6px);
	transition: opacity .25s var(--sl-ease), transform .3s var(--sl-ease), visibility .3s;
}
.sl-cabeceira .wp-block-navigation .has-child .wp-block-navigation__submenu-container::before { content: ""; position: absolute; left: 0; right: 0; bottom: 100%; height: 22px; } /* ponte do hover (gotcha 120) */
.sl-cabeceira .wp-block-navigation .has-child:hover > .wp-block-navigation__submenu-container,
.sl-cabeceira .wp-block-navigation .has-child:focus-within > .wp-block-navigation__submenu-container,
.sl-cabeceira .wp-block-navigation .has-child .wp-block-navigation-submenu__toggle[aria-expanded="true"] ~ .wp-block-navigation__submenu-container {
	opacity: 1; visibility: visible; transform: translate(-50%, 0); width: 280px; height: auto; min-width: 0;
}
.sl-cabeceira .wp-block-navigation__submenu-container .wp-block-navigation-item { width: 100%; }
.sl-cabeceira .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 10px 24px; text-align: center; }
.sl-cabeceira .wp-block-navigation__responsive-container-open { display: none; }

/* Móbil (< 640 px): botón «Menú» e panel lateral. WordPress corta a 600 px; o deseño, a 640. */
@media (max-width: 639px) {
	.sl-cabeceira nav.wp-block-navigation { left: auto; right: var(--sl-gutter-mobile); top: -19px; transform: none; }
	.sl-cabeceira .wp-block-navigation__responsive-container-open:not(.always-shown) {
		display: flex; align-items: center; gap: 10px; height: 45px; padding: 0 22px; border: 0;
		border-radius: var(--sl-radius-menu); background: var(--sl-white); color: var(--sl-terracotta);
		font-family: var(--sl-font-display); font-size: var(--sl-fs-nav); line-height: var(--sl-lh-nav); text-transform: uppercase;
		cursor: pointer; box-shadow: 0 4px 12px rgba(32,30,29,0.07);
	}
	.sl-cabeceira .wp-block-navigation__responsive-container-open::after {
		content: ""; width: 16px; height: 11.5px;
		background: linear-gradient(var(--sl-terracotta) 0 0) 0 0 / 100% 1.5px no-repeat,
			linear-gradient(var(--sl-terracotta) 0 0) 0 5px / 100% 1.5px no-repeat,
			linear-gradient(var(--sl-terracotta) 0 0) 0 10px / 100% 1.5px no-repeat;
	}
	.sl-cabeceira .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
}
.sl-cabeceira .wp-block-navigation__responsive-container.is-menu-open {
	position: fixed; inset: 0; z-index: 90; display: flex; justify-content: flex-end; padding: 0;
	background: rgba(32,30,29,0.35); animation: sl-velo .35s var(--sl-ease);
}
.sl-cabeceira .is-menu-open .wp-block-navigation__responsive-close { width: auto; max-width: none; margin: 0; }
.sl-cabeceira .is-menu-open .wp-block-navigation__responsive-dialog {
	position: relative; display: flex; flex-direction: column; gap: 40px;
	width: min(320px, 84vw); height: 100dvh; margin: 0; padding: calc(28px + var(--sl-admin-bar)) 32px 40px;
	background: var(--sl-white); box-shadow: -12px 0 40px rgba(0,0,0,0.12); overflow-y: auto;
	animation: sl-panel .45s cubic-bezier(.22,.61,.36,1);
}
.sl-cabeceira .is-menu-open .wp-block-navigation__responsive-container-close {
	position: static; align-self: flex-end; display: flex; align-items: center; gap: 10px; height: 45px; padding: 0; border: 0; background: transparent;
	color: var(--sl-terracotta); font-family: var(--sl-font-display); font-size: var(--sl-fs-nav); line-height: var(--sl-lh-nav); text-transform: uppercase; cursor: pointer;
}
.sl-cabeceira .is-menu-open .wp-block-navigation__responsive-container-close::after {
	content: ""; width: 18px; height: 18px; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M5 5l14 14M19 5L5 19'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M5 5l14 14M19 5L5 19'/%3E%3C/svg%3E") center / contain no-repeat;
}
.sl-cabeceira .is-menu-open .wp-block-navigation__responsive-container-content { display: block; padding: 0; }
.sl-cabeceira .is-menu-open .wp-block-navigation__container {
	flex-direction: column; align-items: flex-start; gap: 18px; height: auto; padding: 0; background: none; box-shadow: none; border-radius: 0;
}
.sl-cabeceira .is-menu-open .wp-block-navigation-item__content,
.sl-cabeceira .is-menu-open .wp-block-navigation-submenu__toggle { font-size: 28px; line-height: 1.3; white-space: normal; text-align: left; pointer-events: none; }
.sl-cabeceira .is-menu-open a.wp-block-navigation-item__content { pointer-events: auto; }
.sl-cabeceira .is-menu-open .wp-block-navigation .has-child .wp-block-navigation__submenu-container,
.sl-cabeceira .is-menu-open .has-child .wp-block-navigation__submenu-container {
	position: static; display: flex; flex-direction: column; gap: 12px; width: auto; margin: 14px 0 0; padding: 0 0 0 16px;
	box-shadow: none; border-radius: 0; background: none; text-align: left;
	opacity: 1; visibility: visible; transform: none;
}
.sl-cabeceira .is-menu-open .wp-block-navigation__submenu-container::before { display: none; }
.sl-cabeceira .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0; font-size: 20px; line-height: 1.3; text-align: left; }
@keyframes sl-velo { from { background: rgba(32,30,29,0); } }
@keyframes sl-panel { from { transform: translateX(105%); } }

/* ==========================================================================
   PÉ DE PÁXINA — grella con fillos planos (os bloques internos do pé)
   Escritorio: medidas da maqueta a 1512 px; entre 1100 e 1399 px as columnas encollen sen solaparse.
   ========================================================================== */
.sl-pe { background: var(--sl-white); padding: 36px 0 27px; }
.sl-pe__in {
	position: relative;
	width: min(var(--sl-container), calc(100% - 20px - var(--sl-gutter-left)));
	margin-left: max(var(--sl-gutter-left), calc((100% - var(--sl-container)) / 2));
	min-height: 438.864px;
	display: grid;
	grid-template-columns: minmax(0, 426.427px) minmax(16px, 75px) clamp(200px, 20vw, 291.7px) minmax(16px, 85px) 177px 48px 177px;
	grid-template-rows: 232px 55.848px auto;
	grid-template-areas:
		"datos . marca . navp . navs"
		"datos . marca . redes redes redes"
		"logos logos marca legal legal legal legal";
	justify-content: space-between;
}
.sl-pe__in::before { content: ""; position: absolute; left: 0; right: 0; top: 287.848px; height: 1px; background: var(--sl-terracotta); }
.sl-pe__in > .wp-block-senlleira-datos-contacto { grid-area: datos; padding: 52px 0 0; margin-left: 5px; }
.sl-pe__in > .wp-block-senlleira-marca { grid-area: marca; position: relative; z-index: 1; align-self: start; }
.sl-pe__in > .sl-nav-pe-principal { grid-area: navp; padding-top: 54px; align-self: start; }
.sl-pe__in > .sl-nav-pe-servizos { grid-area: navs; padding-top: 59px; align-self: start; }
.sl-pe__in > .wp-block-senlleira-redes { grid-area: redes; align-self: start; }
.sl-pe__in > .wp-block-senlleira-logos-financiacion { grid-area: logos; padding-top: 16.8px; align-self: start; }
.sl-pe__in > .sl-nav-legal { grid-area: legal; justify-self: end; padding-top: 16.8px; align-self: start; }

.sl-pe .wp-block-navigation { display: block; }
.sl-pe .wp-block-navigation__container { display: flex; flex-direction: column; align-items: flex-start; gap: 0; margin: 0; padding: 0; list-style: none; }
.sl-pe .wp-block-navigation-item { margin: 0; }
.sl-pe .wp-block-navigation-item__content { display: block; padding: 0; color: var(--sl-terracotta); text-decoration: none; transition: color .2s; }
.sl-pe .wp-block-navigation-item__content:hover { color: var(--sl-green); }
.sl-pe .sl-nav-pe-principal .wp-block-navigation-item__content { font-family: var(--sl-font-display); font-size: var(--sl-fs-footer-nav); line-height: var(--sl-lh-footer-nav); }
.sl-pe .sl-nav-pe-servizos .wp-block-navigation-item__content { font-family: var(--sl-font-display); font-size: 20px; line-height: 32px; }
.sl-pe .sl-nav-legal .wp-block-navigation__container { flex-direction: row; align-items: center; gap: 21px; min-height: 35px; }
.sl-pe .sl-nav-legal .wp-block-navigation-item__content { font-family: var(--sl-font-body); font-size: var(--sl-fs-legal); line-height: var(--sl-lh-legal); }
.sl-pe .wp-block-navigation__responsive-container-open { display: none !important; }
.sl-pe .wp-block-navigation__responsive-container { display: block !important; position: static !important; padding: 0 !important; background: none !important; }
.sl-pe .wp-block-navigation__responsive-container-content { display: block !important; padding: 0 !important; }

@media (max-width: 1099px) {
	.sl-pe__in {
		width: auto; min-height: 0; margin: 0; padding: 0 var(--sl-gutter-mobile) 0 var(--sl-gutter-left);
		grid-template-columns: max-content max-content 1fr;
		grid-template-rows: none;
		grid-template-areas:
			"marca marca marca"
			"datos datos datos"
			"navp navs ."
			"linea linea linea"
			"redes legal legal"
			"logos logos logos";
		column-gap: 48px; row-gap: 28px; justify-content: stretch;
	}
	.sl-pe__in::before { position: static; grid-area: linea; height: 1px; }
	.sl-pe__in > .wp-block-senlleira-marca { width: 180px; justify-self: center; }
	.sl-pe__in > .wp-block-senlleira-datos-contacto, .sl-pe__in > .wp-block-senlleira-logos-financiacion { padding: 0; }
	.sl-pe__in > .sl-nav-pe-principal, .sl-pe__in > .sl-nav-pe-servizos { padding: 0; min-width: 160px; }
	.sl-pe .sl-nav-pe-principal .wp-block-navigation-item__content { line-height: 40px; }
	.sl-pe .sl-nav-pe-servizos .wp-block-navigation-item__content { font-size: 22px; line-height: 34px; }
	.sl-pe__in > .wp-block-senlleira-redes { align-self: center; }
	.sl-pe__in > .sl-nav-legal { padding: 0; align-self: center; }
	.sl-pe .sl-nav-legal .wp-block-navigation__container { flex-wrap: wrap; gap: 6px 18px; min-height: 0; }
}
@media (max-width: 639px) {
	.sl-pe__in {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas: "marca" "datos" "navp" "navs" "linea" "redes" "legal" "logos";
		row-gap: 28px;
	}
	.sl-pe__in > .sl-nav-pe-servizos { margin-top: -8px; }
	.sl-pe__in > .sl-nav-legal { justify-self: start; margin-top: -12px; }
}

/* ==========================================================================
   CONTACT FORM 7 (etiqueta fixa enriba, como no deseño)
   ========================================================================== */
.sl-form { display: flex; flex-direction: column; gap: 22px; }
.sl-form__fila { display: flex; flex-wrap: wrap; gap: 22px; }
.sl-form__campo { display: flex; flex-direction: column; gap: 8px; margin: 0; }
.sl-form__fila > .sl-form__campo { flex: 1 1 220px; }
.sl-form__etiqueta { font-family: var(--sl-font-display); font-size: 22px; line-height: 26px; text-transform: uppercase; color: var(--sl-terracotta); }
.sl-form .wpcf7-form-control-wrap { display: block; }
.sl-form input[type="text"], .sl-form input[type="email"], .sl-form input[type="tel"], .sl-form select, .sl-form textarea {
	width: 100%; height: 48px; padding: 0 22px; border: 1px solid rgba(201,128,89,0.35); border-radius: var(--sl-radius-button);
	background: var(--sl-white); font-family: var(--sl-font-body); font-size: 16px; color: var(--sl-black); outline: none; transition: border-color .2s;
}
.sl-form select { cursor: pointer; }
.sl-form textarea { height: auto; padding: 16px 22px; border-radius: var(--sl-radius-card); line-height: 26px; resize: vertical; }
.sl-form input:focus-visible, .sl-form select:focus-visible, .sl-form textarea:focus-visible { border-color: var(--sl-green); outline: 2px solid var(--sl-green); outline-offset: 2px; }
.sl-form .wpcf7-not-valid { border-color: var(--sl-rose) !important; }
.sl-form .wpcf7-not-valid-tip { margin-top: 6px; font-family: var(--sl-font-body); font-size: 14px; line-height: 20px; color: var(--sl-error); }
.sl-form__aceptacion .wpcf7-list-item { display: flex; margin: 0; }
.sl-form__aceptacion label { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; font-family: var(--sl-font-body); font-size: 14px; line-height: 23px; color: var(--sl-black); }
.sl-form__aceptacion input[type="checkbox"] { margin: 3px 0 0; width: 18px; height: 18px; accent-color: var(--sl-green); flex: 0 0 auto; }
.sl-form__aceptacion a { color: var(--sl-terracotta); text-decoration: underline; }
.sl-form .wpcf7-acceptance:not(.optional) .wpcf7-list-item-label::after { content: " *"; }
.sl-form .wpcf7-submit {
	width: 193px; height: 48px; padding: 9px 0 0; border: 0; border-radius: var(--sl-radius-button); background: var(--sl-green); color: var(--sl-white);
	font-family: var(--sl-font-display); font-size: var(--sl-fs-button); line-height: var(--sl-lh-button); cursor: pointer;
	transition: background-color .25s var(--sl-ease), transform .25s var(--sl-ease);
}
.sl-form .wpcf7-submit:hover { background: var(--sl-green-hover); transform: translateY(-1px); }
.sl-form .wpcf7-submit:active { background: var(--sl-green-active); transform: translateY(0); }
.sl-form .wpcf7-spinner { margin: 12px 0 0 12px; }
.sl-form .wpcf7-response-output {
	margin: 0 !important; padding: 14px 22px !important; border-radius: var(--sl-radius-card); border: 1px solid var(--sl-tan) !important;
	background: var(--sl-white); font-family: var(--sl-font-body); font-size: 15px; line-height: 24px;
}
.sl-form.sent .wpcf7-response-output { border-color: var(--sl-green) !important; color: var(--sl-green-dark); }
.sl-form:is(.invalid, .unaccepted, .failed, .spam, .aborted) .wpcf7-response-output { border-color: var(--sl-rose) !important; color: var(--sl-error); }
.sl-form .cf-turnstile, .sl-form .sct-turnstile { margin: 0; }
/* Estados de CF7 (§5d). O deseño non trae cores de éxito/erro: sácanse da súa paleta
   (verde e rosa) — diferenza deliberada anotada no reporte. */
.sl-form:is(.invalid, .unaccepted, .spam, .failed, .aborted) .wpcf7-response-output { background: rgba(191,106,106,.08); }
.sl-form.sent .wpcf7-response-output { background: rgba(111,165,44,.08); }
.sl-form .wpcf7-not-valid { scroll-margin-top: calc(110px + var(--sl-admin-bar)); }
.sl-form.submitting .wpcf7-submit { opacity: .6; pointer-events: none; } /* evita envíos dobres */

/* Ventá de grazas dos formularios */
.form-gracias {
	width: min(520px, calc(100vw - 40px)); max-height: calc(100dvh - 40px); padding: 48px 40px 40px; border: 0;
	border-radius: var(--sl-radius-card); background: var(--sl-cream); color: var(--sl-black); text-align: center;
	box-shadow: 0 24px 64px rgba(32,30,29,.18);
}
.form-gracias[open] { display: flex; flex-direction: column; align-items: center; gap: 18px; animation: sl-aparecer .3s var(--sl-ease); }
.form-gracias::backdrop { background: rgba(32,30,29,.35); }
.form-gracias .wp-block-buttons { justify-content: center; }
.form-gracias__cerrar {
	position: absolute; top: 14px; right: 14px; width: 40px; height: 40px; border: 0; border-radius: 50%; background: var(--sl-white); cursor: pointer; color: var(--sl-terracotta);
}
.form-gracias__cerrar::before {
	content: ""; position: absolute; inset: 11px; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M5 5l14 14M19 5L5 19'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M5 5l14 14M19 5L5 19'/%3E%3C/svg%3E") center / contain no-repeat;
}
.form-gracias__cerrar:hover { color: var(--sl-green); }
@keyframes sl-aparecer { from { opacity: 0; transform: translateY(8px); } }
@media (max-width: 639px) { .form-gracias { padding: 48px 24px 32px; } }

/* ==========================================================================
   TEXTO LEGAL (contido nativo dentro de senlleira/seccion clase sl-legal)
   ========================================================================== */
.sl-legal .sl-seccion__contido { display: flex; flex-direction: column; gap: 16px; }
.sl-legal .sl-seccion__contido > * { max-width: 820px; }
.sl-legal h2 { margin: 32px 0 0; font-family: var(--sl-font-display); font-weight: 400; font-size: var(--sl-fs-h3); line-height: var(--sl-lh-h3); text-transform: uppercase; color: var(--sl-green); }
.sl-legal h2:first-child { margin-top: 0; }
.sl-legal h3 { margin: 16px 0 0; font-family: var(--sl-font-display); font-weight: 400; font-size: 22px; line-height: 1.2; text-transform: uppercase; color: var(--sl-terracotta); }
.sl-legal p, .sl-legal li, .sl-legal td, .sl-legal th { font-family: var(--sl-font-body); font-size: var(--sl-fs-body); line-height: var(--sl-lh-body); color: var(--sl-black); text-wrap: pretty; }
.sl-legal p { margin: 0; }
.sl-legal strong { font-weight: 500; }
.sl-legal ul, .sl-legal ol { margin: 0; padding-left: 22px; display: flex; flex-direction: column; gap: 6px; }
.sl-legal a { color: var(--sl-terracotta); text-decoration: underline; text-underline-offset: 2px; }
.sl-legal a:hover { color: var(--sl-green); }
.sl-legal table { width: 100%; border-collapse: collapse; margin: 8px 0; }
.sl-legal th, .sl-legal td { padding: 10px 12px; border-bottom: 1px solid rgba(201,128,89,.25); text-align: left; vertical-align: top; font-size: 14px; line-height: 22px; }
.sl-legal th { font-weight: 500; background: var(--sl-cream); }
/* Documento de cookies de Complianz co estilo do sitio */
.sl-legal #cmplz-document, .sl-legal .cmplz-document { max-width: 820px; font-family: var(--sl-font-body); }
.sl-legal .cmplz-document h2, .sl-legal .cmplz-document h3 { font-family: var(--sl-font-display); font-weight: 400; text-transform: uppercase; }
.sl-legal .cmplz-document h2 { font-size: var(--sl-fs-h3); line-height: var(--sl-lh-h3); color: var(--sl-green); }
.sl-legal .cmplz-document h3 { font-size: 22px; color: var(--sl-terracotta); }
.sl-legal .cmplz-document details { margin: 8px 0; padding: 12px 18px; border-radius: var(--sl-radius-card); background: var(--sl-cream); }
.sl-legal .cmplz-document summary { cursor: pointer; font-family: var(--sl-font-display); font-size: 22px; color: var(--sl-terracotta); text-transform: uppercase; }
@media (max-width: 639px) { .sl-legal table { display: block; overflow-x: auto; } }

/* ==========================================================================
   COMPLIANZ: banner de cookies co estilo do sitio
   ========================================================================== */
.cmplz-cookiebanner { font-family: var(--sl-font-body) !important; border-radius: var(--sl-radius-card) !important; }
.cmplz-cookiebanner .cmplz-title { font-family: var(--sl-font-display) !important; font-size: 26px !important; text-transform: uppercase; color: var(--sl-terracotta) !important; }
.cmplz-cookiebanner .cmplz-btn {
	height: 44px !important; border-radius: var(--sl-radius-button) !important;
	font-family: var(--sl-font-display) !important; font-size: 22px !important; font-weight: 400 !important;
}
.cmplz-cookiebanner .cmplz-btn.cmplz-accept { background: var(--sl-green) !important; border-color: var(--sl-green) !important; color: #fff !important; }
.cmplz-cookiebanner .cmplz-btn.cmplz-deny, .cmplz-cookiebanner .cmplz-btn.cmplz-view-preferences, .cmplz-cookiebanner .cmplz-btn.cmplz-save-preferences { background: transparent !important; border: 1px solid var(--sl-green) !important; color: var(--sl-green) !important; }
.cmplz-cookiebanner .cmplz-link, .cmplz-cookiebanner a { color: var(--sl-terracotta) !important; }
#cmplz-manage-consent .cmplz-manage-consent { font-family: var(--sl-font-display) !important; background: var(--sl-white) !important; color: var(--sl-terracotta) !important; border-radius: 14px 14px 0 0 !important; }
/* Móbil vertical: banner máis baixo (Aceptar e Rexeitar na mesma liña, texto e ligazóns máis compactos) */
@media (max-width: 767px) {
	.cmplz-cookiebanner.cmplz-show { padding: 12px 16px !important; grid-gap: 8px !important; border-radius: var(--sl-radius-card) var(--sl-radius-card) 0 0 !important; }
	.cmplz-cookiebanner.cmplz-show .cmplz-header { position: absolute !important; top: 10px; right: 10px; }
	.cmplz-cookiebanner.cmplz-show .cmplz-message { font-size: 14px !important; line-height: 1.4 !important; margin: 0 !important; padding-right: 30px; }
	.cmplz-cookiebanner.cmplz-show .cmplz-buttons { flex-direction: row !important; flex-wrap: wrap !important; gap: 8px !important; }
	.cmplz-cookiebanner.cmplz-show .cmplz-buttons .cmplz-btn { flex: 1 1 40% !important; width: auto !important; height: 44px !important; min-height: 44px !important; padding: 0 12px !important; font-size: 20px !important; line-height: 1 !important; }
	.cmplz-cookiebanner.cmplz-show .cmplz-buttons .cmplz-btn.cmplz-view-preferences { flex-basis: 100% !important; }
	.cmplz-cookiebanner.cmplz-show .cmplz-documents ul { flex-wrap: wrap; gap: 4px 14px; }
	.cmplz-cookiebanner.cmplz-show .cmplz-documents .cmplz-link { font-size: 13px !important; line-height: 24px; white-space: nowrap; }
}
/* Móbil horizontal: Complianz reducía todo cun zoom de 0,6 e os botóns quedaban en 16 px */
@media (max-height: 400px) {
	.cmplz-cookiebanner.cmplz-show { zoom: 1 !important; height: auto !important; max-height: calc(100vh - 16px) !important; overflow-y: auto !important; width: min(720px, calc(100vw - 20px)) !important; min-width: 0 !important; right: 10px !important; bottom: 8px !important; padding: 10px 16px !important; gap: 8px !important; border-radius: var(--sl-radius-card) !important; }
	.cmplz-cookiebanner.cmplz-show .cmplz-header { position: absolute !important; top: 8px; right: 8px; max-height: none !important; margin-bottom: 0 !important; }
	.cmplz-cookiebanner.cmplz-show .cmplz-title { display: none !important; }
	.cmplz-cookiebanner.cmplz-show .cmplz-close, .cmplz-cookiebanner.cmplz-show .cmplz-documents, .cmplz-cookiebanner.cmplz-show .cmplz-information { zoom: 1 !important; }
	.cmplz-cookiebanner.cmplz-show .cmplz-body { flex: 0 1 auto !important; margin-top: 0 !important; }
	.cmplz-cookiebanner.cmplz-show .cmplz-message { width: auto !important; font-size: 13px !important; line-height: 1.4 !important; margin: 0 !important; padding-right: 30px; }
	.cmplz-cookiebanner.cmplz-show .cmplz-buttons { flex-direction: row !important; flex-wrap: nowrap !important; gap: 8px !important; }
	.cmplz-cookiebanner.cmplz-show .cmplz-buttons .cmplz-btn, .cmplz-cookiebanner.cmplz-show .cmplz-buttons .cmplz-btn.cmplz-view-preferences { zoom: 1 !important; flex: 1 1 0 !important; width: auto !important; height: 44px !important; min-height: 44px !important; padding: 0 12px !important; font-size: 20px !important; line-height: 1 !important; }
	.cmplz-cookiebanner.cmplz-show .cmplz-documents .cmplz-link { font-size: 13px !important; line-height: 24px; }
}

/* ==========================================================================
   BUSCA (resultados)
   ========================================================================== */
.sl-resultados { display: flex; flex-direction: column; gap: 16px; margin: 0; padding: 0; list-style: none; }
.sl-resultados .wp-block-post-template { display: flex; flex-direction: column; gap: 16px; margin: 0; padding: 0; list-style: none; }
.wp-block-query-pagination { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin-top: 40px; font-family: var(--sl-font-display); font-size: 22px; }
.wp-block-query-pagination a, .wp-block-query-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 4px 14px 0; border-radius: 22px; background: var(--sl-white); color: var(--sl-terracotta); }
.wp-block-query-pagination .page-numbers.current { background: var(--sl-green); color: #fff; }

/* ==========================================================================
   PÁXINA DE ERRO (wp_die) — tamén a usan as plantillas estáticas de erro
   ========================================================================== */
.sl-erro { display: grid; min-height: 100vh; place-items: center; padding: 40px 20px; background: var(--sl-cream); }
.sl-erro__caixa { max-width: 560px; display: flex; flex-direction: column; align-items: center; gap: 24px; text-align: center; }
.sl-erro__marca { width: 120px; height: auto; }
.sl-erro__titulo { margin: 0; font-family: var(--sl-font-display); font-weight: 400; font-size: clamp(40px, 5vw, 56px); line-height: 1.1; text-transform: uppercase; color: var(--sl-terracotta); }
.sl-erro__texto { font-family: var(--sl-font-body); font-size: 16px; line-height: 26px; }

/* ==========================================================================
   Animacións de aparición desactivadas no editor (gotcha 16)
   ========================================================================== */
.editor-styles-wrapper .sl-cabeceira, .editor-styles-wrapper .sl-logo { position: relative; top: auto; }

/* ==========================================================================
   FICHA DE ACTUALIDADE (o deseño non a trae: linguaxe das cabeceiras interiores)
   ========================================================================== */
.sl-ficha .sl-cab-paxina__texto { padding: 137px var(--sl-gutter-left) 48px; text-align: center; }
.sl-ficha .wp-block-post-date { margin-top: 12px; }
.sl-ficha__corpo { display: flex; flex-direction: column; align-items: center; gap: 40px; padding-bottom: 110px; }
.sl-ficha__imaxe { width: min(100%, 820px); margin: 0; }
.sl-ficha__imaxe img { width: 100%; height: auto; border-radius: var(--sl-radius-card); }
.sl-ficha__contido { width: min(100%, 820px); display: flex; flex-direction: column; gap: 16px; }
.sl-ficha__contido > * { margin: 0; }
.sl-ficha__contido p, .sl-ficha__contido li { font-family: var(--sl-font-body); font-size: var(--sl-fs-body); line-height: var(--sl-lh-body); }
.sl-ficha .sl-exemplo { margin-bottom: 14px; }
@media (max-width: 1099px) { .sl-ficha .sl-cab-paxina__texto { padding-top: 140px; } }
.sl-form.init .wpcf7-response-output, .sl-form.resetting .wpcf7-response-output, .sl-form.submitting .wpcf7-response-output { display: none; }

/* O CSS do bloque Navegación pon color: inherit con máis especificidade: cor do deseño en cabeceira e pé. */
.sl-cabeceira .wp-block-navigation, .sl-pe .wp-block-navigation { color: var(--sl-terracotta); }
.sl-cabeceira .wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content,
.sl-pe .wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content { color: var(--sl-terracotta); }
.sl-cabeceira .wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content:hover,
.sl-cabeceira .wp-block-navigation .wp-block-navigation-submenu__toggle[aria-expanded="true"],
.sl-pe .wp-block-navigation .wp-block-navigation-item__content.wp-block-navigation-item__content:hover { color: var(--sl-green); }
.sl-cabeceira .wp-block-navigation .current-menu-item > .wp-block-navigation-item__content.wp-block-navigation-item__content { color: var(--sl-terracotta); }
.sl-lh-46 { line-height: 46px !important; }
/* O estilo «Contorno» por riba dos estilos de elemento de theme.json. */
.wp-block-button.is-style-contorno .wp-block-button__link.wp-element-button { background: transparent; color: var(--sl-green); border: 1px solid var(--sl-green); padding-top: 8px; }
.wp-block-button.is-style-contorno .wp-block-button__link.wp-element-button:hover { background: var(--sl-green); color: var(--sl-white); }
/* Pé entre 1100 e 1399 px: o deseño non resolve este tramo (LEEME). Columnas fixas e máis estreitas
   para que o enderezo teña ancho e nada se solape. */
@media (min-width: 1100px) and (max-width: 1399px) {
	.sl-pe__in { grid-template-columns: minmax(0, 1fr) 16px clamp(180px, 16vw, 240px) 16px 150px 24px 160px; }
	.sl-pe .sl-nav-legal .wp-block-navigation__container { flex-wrap: wrap; justify-content: flex-end; gap: 4px 21px; }
}

/* Panel móbil: á dereita, sen os axustes do despregable de escritorio; o logo queda debaixo. */
.sl-cabeceira .is-menu-open .wp-block-navigation__responsive-close { display: flex; justify-content: flex-end; width: 100%; height: 100%; }
.sl-cabeceira .is-menu-open ul.wp-block-navigation__container { position: static; transform: none; }
.sl-cabeceira .is-menu-open .has-child .wp-block-navigation__submenu-container { position: static !important; left: auto !important; transform: none !important; width: auto !important; opacity: 1 !important; visibility: visible !important; }
.sl-cabeceira .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 0; }
.has-modal-open .sl-logo { z-index: 1; }
/* Despregable de escritorio: elementos centrados como no deseño. */
.sl-cabeceira .wp-block-navigation__submenu-container .wp-block-navigation-item { display: flex; justify-content: center; }
.sl-cabeceira .wp-block-navigation__submenu-container .wp-block-navigation-item__content { width: 100%; }
.sl-cabeceira .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item { justify-content: flex-start; }
.sl-cabeceira .wp-block-navigation__responsive-container.is-menu-open { background-color: rgba(32,30,29,0.35) !important; }
.sl-cabeceira .is-menu-open .wp-block-navigation-item { padding: 0 !important; margin: 0 !important; }
.sl-cabeceira .is-menu-open ul.wp-block-navigation__container { gap: 18px !important; }
.sl-cabeceira .is-menu-open .wp-block-navigation__submenu-container { gap: 12px !important; margin-top: 14px !important; }
.sl-cabeceira .wp-block-navigation__submenu-container .wp-block-navigation-item__content.wp-block-navigation-item__content { text-align: center !important; }
.sl-cabeceira .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content.wp-block-navigation-item__content { text-align: left !important; }
.sl-cabeceira .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 0 !important; }
.sl-cabeceira .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content.wp-block-navigation-item__content { padding: 0 !important; }
