/* estilos del front de Laboratorios Topp; breakpoints: 600px, 900px y 1200px (min-width) */

/* fuentes locales del tema */
@font-face {
	font-family: 'Montserrat';
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url('../fonts/montserrat-latin-wght-normal.woff2') format('woff2');
}

@font-face {
	font-family: 'Open Sans';
	font-style: normal;
	font-weight: 300 800;
	font-display: swap;
	src: url('../fonts/open-sans-latin-wght-normal.woff2') format('woff2');
}

/* variables de diseño; colores y fuentes se sobrescriben desde el panel */
:root {
	--color-principal: #008051;
	--color-secundario: #ee171e;
	--color-texto: #1f2933;
	--color-oscuro: #0d241b;
	--color-blanco: #ffffff;
	--color-negro: #000000;
	--color-fondo-suave: #f3f7f5;
	--color-borde: #d9e2de;
	--fuente-principal: 'Montserrat', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--fuente-parrafos: 'Open Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--radio: 8px;
	--radio-card: 10px;
	--ancho-contenedor: 1250px;
	--ancho-lectura: 760px;
	--espaciado-letras: 0.02em;
	--peso-encabezado: 700;
	--margen-lateral: 16px;
	--espacio-seccion: 56px;
	--color-vidrio: rgba(255, 255, 255, 0.14);
	--color-vidrio-borde: rgba(255, 255, 255, 0.28);
	--color-borde-oscuro: rgba(255, 255, 255, 0.25);
	--sombra: 0 6px 24px rgba(13, 36, 27, 0.08);
	--transicion: 0.2s ease;
}

/* reinicio y base del documento */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	margin: 0;
	overflow-x: clip;
	background: var(--color-blanco);
	color: var(--color-texto);
	font-family: var(--fuente-principal);
	font-size: 1rem;
	line-height: 1.6;
}

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

h1,
h2,
h3,
h4 {
	margin: 0 0 0.5em;
	color: var(--color-texto);
	font-weight: var(--peso-encabezado);
	letter-spacing: var(--espaciado-letras);
	line-height: 1.2;
}

h1 {
	font-size: clamp(2rem, 1.4rem + 2.6vw, 3.25rem);
}

h2 {
	font-size: clamp(1.6rem, 1.25rem + 1.5vw, 2.4rem);
}

h3 {
	font-size: 1.2rem;
}

p {
	margin: 0 0 1em;
}

a {
	color: var(--color-principal);
	text-underline-offset: 0.15em;
}

a:hover {
	text-decoration-thickness: 2px;
}

/* foco visible en todos los elementos interactivos */
:focus-visible {
	outline: 3px solid var(--color-principal);
	outline-offset: 3px;
	border-radius: 2px;
}

/* texto descriptivo con la fuente de párrafos */
.texto-descriptivo {
	font-family: var(--fuente-parrafos);
}

/* texto solo para lectores de pantalla */
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* enlace para saltar al contenido */
.enlace-salto {
	position: absolute;
	top: -100px;
	left: var(--margen-lateral);
	z-index: 1000;
	padding: 12px 20px;
	background: var(--color-oscuro);
	color: var(--color-blanco);
	font-weight: 600;
	border-radius: var(--radio);
}

.enlace-salto:focus {
	top: 12px;
}

/* contenedores y espaciado de secciones */
.contenedor {
	width: 100%;
	max-width: calc(var(--ancho-contenedor) + 2 * var(--margen-lateral));
	margin-inline: auto;
	padding-inline: var(--margen-lateral);
}

.contenedor--lectura {
	max-width: calc(var(--ancho-lectura) + 2 * var(--margen-lateral));
}

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

/* encabezado común de las secciones */
.encabezado-seccion {
	max-width: var(--ancho-lectura);
	margin: 0 auto 2rem;
	text-align: center;
}

.divisor {
	display: block;
	width: 56px;
	height: 4px;
	margin: 0.75rem auto 0;
	background: var(--color-secundario);
	border: 0;
	border-radius: var(--radio);
}

/* etiqueta pequeña de categoría */
.etiqueta {
	margin: 0 0 0.5rem;
	color: var(--color-principal);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/* botones globales con relleno que sube de abajo hacia arriba; principal por defecto */
.boton,
.search-submit,
.comment-form .submit {
	--boton-fondo: var(--color-principal);
	--boton-texto: var(--color-blanco);
	--boton-relleno: var(--color-blanco);
	--boton-texto-hover: var(--color-principal);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5em;
	padding: 13px 20px;
	background-color: var(--boton-fondo);
	background-image: linear-gradient(to top, var(--boton-relleno) 50%, var(--boton-fondo) 50%);
	background-size: 100% 200%;
	background-position: 0 0;
	color: var(--boton-texto);
	font-family: var(--fuente-principal);
	font-size: 18px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: var(--espaciado-letras);
	text-decoration: none;
	border: 2px solid var(--color-principal);
	border-radius: var(--radio-card);
	cursor: pointer;
	transition: background-position 0.35s ease, color 0.35s ease;
}

.boton:hover,
.boton:focus-visible,
.search-submit:hover,
.search-submit:focus-visible,
.comment-form .submit:hover,
.comment-form .submit:focus-visible {
	background-position: 0 100%;
	color: var(--boton-texto-hover);
}

.boton:focus-visible,
.search-submit:focus-visible,
.comment-form .submit:focus-visible {
	outline: 3px solid var(--color-principal);
	outline-offset: 3px;
}

.boton--principal {
	--boton-fondo: var(--color-principal);
	--boton-texto: var(--color-blanco);
	--boton-relleno: var(--color-blanco);
	--boton-texto-hover: var(--color-principal);
}

.boton--blanco {
	--boton-fondo: var(--color-blanco);
	--boton-texto: var(--color-principal);
	--boton-relleno: var(--color-principal);
	--boton-texto-hover: var(--color-blanco);
}

.boton .icono {
	width: 1.1em;
	height: 1.1em;
}

/* panel translúcido reutilizable */
.efecto-vidrio {
	background: var(--color-vidrio);
	border: 1px solid var(--color-vidrio-borde);
	border-radius: var(--radio);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}

/* iconos svg */
.icono {
	flex-shrink: 0;
	width: 1.25em;
	height: 1.25em;
}

/* cabecera y navegación principal */
.cabecera {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--color-blanco);
	box-shadow: 0 1px 0 var(--color-borde);
}

.admin-bar .cabecera {
	top: var(--wp-admin--admin-bar--height, 0);
}

.cabecera__barra {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: 72px;
}

.cabecera__marca {
	display: inline-flex;
	align-items: center;
	color: var(--color-principal);
	text-decoration: none;
}

.cabecera__logo {
	width: auto;
	max-height: 52px;
}

.cabecera__nombre {
	font-size: 1.2rem;
	font-weight: 800;
	letter-spacing: var(--espaciado-letras);
}

.cabecera__boton-menu {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	padding: 0;
	background: transparent;
	color: var(--color-texto);
	border: 1px solid var(--color-borde);
	border-radius: var(--radio);
	cursor: pointer;
}

.cabecera__icono-cerrar,
.cabecera__boton-menu[aria-expanded='true'] .cabecera__icono-abrir {
	display: none;
}

.cabecera__boton-menu[aria-expanded='true'] .cabecera__icono-cerrar {
	display: block;
}

.navegacion {
	display: none;
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	padding: 8px var(--margen-lateral) 24px;
	background: var(--color-blanco);
	box-shadow: var(--sombra);
}

.navegacion--abierta {
	display: block;
}

.navegacion__lista,
.navegacion__lista .sub-menu {
	margin: 0;
	padding: 0;
	list-style: none;
}

.navegacion__lista a {
	display: block;
	padding: 12px 0;
	color: var(--color-texto);
	font-weight: 600;
	text-decoration: none;
}

.navegacion__lista .sub-menu a {
	padding-left: 16px;
	font-weight: 500;
}

.navegacion__lista a:hover,
.navegacion__lista .current-menu-item > a,
.navegacion__lista .current-menu-ancestor > a {
	color: var(--color-principal);
	border-bottom: 2px solid var(--color-secundario);
}

/* fondo de sección con imagen y capa */
.fondo-seccion {
	position: absolute;
	inset: 0;
	z-index: 0;
	overflow: hidden;
}

.fondo-seccion picture {
	display: block;
	height: 100%;
}

/* imagen de fondo a cover y centrada; doble clase para ganar a .woocommerce img { height: auto } */
.fondo-seccion picture,
.fondo-seccion .fondo-seccion__imagen {
	width: 100%;
	max-width: none;
	height: 100%;
	object-fit: cover;
	object-position: center center;
}

/* video de fondo que aparece al empezar a reproducirse */
.fondo-seccion__video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	opacity: 0;
	transition: opacity 0.6s ease;
}

.fondo-seccion__video--activo {
	opacity: 1;
}

.fondo-seccion__capa {
	position: absolute;
	inset: 0;
	background: var(--color-oscuro);
}

/* banner principal de la home: solo fondo, color secundario de respaldo */
.banner-principal {
	position: relative;
	min-height: min(80vh, 640px);
	background: var(--color-secundario);
	isolation: isolate;
}

/* sección de cards cuadradas con imagen de fondo; usa --radio-card (10px) */
.cards {
	padding-block: var(--espacio-seccion);
}

.cards__rejilla {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.card {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border-radius: var(--radio-card);
	text-decoration: none;
	isolation: isolate;
}

.card__imagen {
	position: absolute;
	inset: 0;
	z-index: -3;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

/* overlay negro con la intensidad del panel */
.card__capa {
	position: absolute;
	inset: 0;
	z-index: -2;
	background: var(--color-negro);
	opacity: var(--card-overlay, 0.5);
}

/* capa extra que sube de abajo hacia arriba en hover */
.card--enlace::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: -1;
	background: var(--color-negro);
	opacity: 0.85;
	transform: scaleY(0);
	transform-origin: bottom;
	transition: transform 0.4s ease;
}

.card--enlace:hover::after,
.card--enlace:focus-visible::after {
	transform: scaleY(1);
}

.card__titulo {
	margin: 0;
	padding: 16px;
	color: var(--card-color-titulo, var(--color-blanco));
	font-size: clamp(25px, 4vw, 30px);
	font-weight: var(--peso-encabezado);
	letter-spacing: var(--espaciado-letras);
	line-height: 1.1;
	text-align: center;
	text-shadow: 0 2px 10px var(--color-negro);
	overflow-wrap: anywhere;
	transition: color 0.3s ease;
}

.card--enlace:hover .card__titulo,
.card--enlace:focus-visible .card__titulo {
	color: var(--color-secundario);
}

/* sección productos: subtítulo, título y botón centrados */
.productos {
	padding-block: var(--espacio-seccion);
	text-align: center;
}

.productos__subtitulo {
	margin: 0 0 0.25em;
	color: var(--color-secundario);
	font-family: var(--fuente-principal);
	font-size: 32px;
	font-weight: 300;
	line-height: 1.2;
}

.productos__titulo {
	margin: 0 0 1.5rem;
	color: var(--color-principal);
	font-family: var(--fuente-principal);
	font-size: 40px;
	font-weight: 800;
	overflow-wrap: anywhere;
}

/* sección experiencia: intro, contadores e imagen inferior */
.experiencia {
	padding-block: var(--espacio-seccion);
}

.experiencia__fila {
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
	align-items: start;
}

.experiencia__subtitulo {
	margin: 0 0 0.25em;
	color: var(--color-secundario);
	font-size: 32px;
	font-weight: 300;
	line-height: 1.2;
}

.experiencia__titulo {
	margin: 0;
	color: var(--color-negro);
	font-size: 40px;
	font-weight: 600;
	overflow-wrap: anywhere;
}

/* sección novedades de la home: cabecera 50/50 y 2 últimas entradas */
.novedades {
	padding-block: var(--espacio-seccion);
}

.novedades__cabecera,
.novedades__posts {
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
}

.novedades__cabecera {
	align-items: center;
	margin-bottom: 40px;
}

.novedades__accion {
	display: flex;
	justify-content: center;
}

.novedades__subtitulo {
	margin: 0 0 0.25em;
	color: var(--color-secundario);
	font-size: 32px;
	font-weight: 300;
	line-height: 1.2;
}

.novedades__titulo {
	margin: 0;
	color: var(--color-negro);
	font-size: 40px;
	font-weight: 600;
	overflow-wrap: anywhere;
}

/* tarjeta de entrada compartida por novedades de la home y el listado */
.card-post__imagen {
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: var(--radio-card);
}

.card-post__titulo {
	margin: 16px 0;
	font-size: 20px;
	font-weight: 600;
}

.card-post__titulo a {
	color: var(--color-negro);
	text-decoration: none;
}

.card-post__titulo a:hover {
	color: var(--color-principal);
	text-decoration: underline;
}

/* listado de novedades: encabezado y rejilla de 1, 2 o 3 columnas */
.nv-listado {
	padding-block: var(--espacio-seccion);
}

.nv-listado__encabezado {
	margin-bottom: 40px;
}

.nv-listado__subtitulo {
	margin: 0 0 0.25em;
	color: var(--color-secundario);
	font-size: 32px;
	font-weight: 300;
	line-height: 1.2;
}

.nv-listado__titulo {
	margin: 0;
	color: var(--color-negro);
	font-size: 40px;
	font-weight: 400;
	overflow-wrap: anywhere;
}

.nv-listado__rejilla {
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
}

.experiencia__numero {
	margin: 0;
	color: var(--color-secundario);
	font-size: 80px;
	font-weight: var(--peso-encabezado);
	line-height: 1;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}

.experiencia__texto {
	margin: 0.5rem 0 0;
	color: var(--color-principal);
	font-size: 14px;
	font-weight: 600;
}

.experiencia__imagen {
	width: 100%;
	height: auto;
	margin-top: 48px;
	border-radius: var(--radio-card);
}

/* sobre nosotros: intro en dos columnas */
.sn-intro {
	padding-block: var(--espacio-seccion);
}

.sn-intro__fila {
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
}

.sn-intro__subtitulo {
	margin: 0 0 0.25em;
	color: var(--color-secundario);
	font-size: 32px;
	font-weight: 300;
	line-height: 1.2;
}

.sn-intro__titulo {
	margin: 0;
	color: var(--color-negro);
	font-size: 40px;
	font-weight: 400;
	overflow-wrap: anywhere;
}

.sn-intro__texto {
	font-size: 16px;
}

.sn-intro__texto > :last-child {
	margin-bottom: 0;
}

/* sobre nosotros: misión y visión con fondo y cards blancas */
.sn-mv {
	position: relative;
	padding-block: var(--espacio-seccion);
	background: var(--color-secundario);
	isolation: isolate;
}

.sn-mv__rejilla {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
}

.sn-mv__card {
	padding: 32px;
	background: var(--color-blanco);
	border-radius: var(--radio-card);
}

.sn-mv__titulo {
	margin: 0 0 0.4em;
	color: var(--color-negro);
	font-size: 45px;
	font-weight: 400;
	overflow-wrap: anywhere;
}

.sn-mv__texto {
	margin: 0;
	font-size: 16px;
}

/* sobre nosotros: acordeón con cabecera de ojo */
.sn-acordeon {
	padding-block: var(--espacio-seccion);
}

.sn-acordeon__titulo {
	margin-bottom: 1.5rem;
}

.acordeon__item {
	margin-bottom: 12px;
	overflow: hidden;
	border: 1px solid var(--color-principal);
	border-radius: var(--radio-card);
}

.acordeon__cabecera {
	margin: 0;
	font-size: 16px;
}

.acordeon__boton {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	width: 100%;
	padding: 16px 20px;
	background: var(--color-blanco);
	color: var(--color-principal);
	font-family: var(--fuente-principal);
	font-size: 16px;
	font-weight: 600;
	text-align: left;
	border: 0;
	cursor: pointer;
	transition: background-color 0.3s ease, color 0.3s ease;
}

.acordeon__boton:focus-visible {
	outline: 3px solid var(--color-oscuro);
	outline-offset: -5px;
}

.acordeon__boton[aria-expanded='true'] {
	background: var(--color-principal);
	color: var(--color-blanco);
}

.acordeon__boton .icono--ojo,
.acordeon__boton[aria-expanded='true'] .icono--ojo-cerrado {
	display: none;
}

.acordeon__boton[aria-expanded='true'] .icono--ojo {
	display: block;
}

.acordeon__contenido {
	margin: 0;
	padding: 16px 20px 20px;
	background: var(--color-blanco);
	font-size: 18px;
}

/* plegado animado solo cuando el js está activo */
.acordeon--js .acordeon__panel {
	display: grid;
	grid-template-rows: 0fr;
	visibility: hidden;
	transition: grid-template-rows 0.3s ease, visibility 0.3s;
}

.acordeon--js .acordeon__item--abierto .acordeon__panel {
	grid-template-rows: 1fr;
	visibility: visible;
}

.acordeon__interior {
	min-height: 0;
	overflow: hidden;
}

/* sobre nosotros: banner cta de 360px */
.sn-cta {
	position: relative;
	display: flex;
	align-items: center;
	height: 360px;
	overflow: hidden;
	background: var(--color-principal);
	isolation: isolate;
}

.sn-cta__contenido {
	position: relative;
	z-index: 1;
	text-align: left;
}

.sn-cta__subtitulo {
	margin: 0 0 0.25em;
	color: var(--color-blanco);
	font-size: 32px;
	font-weight: 300;
	line-height: 1.2;
	text-shadow: 0 2px 12px var(--color-negro);
}

.sn-cta__titulo {
	margin: 0;
	color: var(--color-blanco);
	font-size: 40px;
	font-weight: 400;
	text-shadow: 0 2px 12px var(--color-negro);
	overflow-wrap: anywhere;
}

/* contacto: encabezado en una columna */
.co-encabezado {
	padding-top: var(--espacio-seccion);
}

.co-encabezado__subtitulo {
	margin: 0 0 0.25em;
	color: var(--color-secundario);
	font-size: 32px;
	font-weight: 300;
	line-height: 1.2;
}

.co-encabezado__titulo {
	margin: 0;
	color: var(--color-negro);
	font-size: 40px;
	font-weight: 400;
	overflow-wrap: anywhere;
}

/* contacto: mapa a ancho completo y card del formulario; en móvil uno debajo del otro */
.co-mapa {
	padding-top: var(--espacio-seccion);
	padding-bottom: 120px;
}

.co-mapa__fila {
	position: relative;
	display: grid;
	gap: 24px;
}

.co-mapa__mapa iframe {
	display: block;
	width: 100%;
	height: 350px;
	border: 0;
}

.co-mapa__form {
	padding: 32px 24px;
	background: var(--color-principal);
	color: var(--color-blanco);
	border-radius: var(--radio-card);
}

.co-mapa__fila--sin-mapa .co-mapa__form {
	width: 100%;
	max-width: 560px;
	margin-inline: auto;
}

.co-mapa__titulo {
	margin: 0 0 1rem;
	color: var(--color-blanco);
	font-size: 25px;
	font-weight: 600;
	overflow-wrap: anywhere;
}

/* solo colores del contenedor: textos y enlaces blancos, campos con texto oscuro y foco blanco */
.co-mapa__form a {
	color: var(--color-blanco);
}

.co-mapa__form input,
.co-mapa__form textarea,
.co-mapa__form select {
	color: var(--color-texto);
}

.co-mapa__form :focus-visible {
	outline-color: var(--color-blanco);
}

/* productos: bloques alternados 50/50; en móvil imagen arriba y contenido debajo */
.pr-sec {
	display: grid;
	grid-template-columns: 1fr;
	background: var(--color-blanco);
}

.pr-sec__media {
	position: relative;
	aspect-ratio: 16 / 10;
}

.pr-sec__imagen {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.pr-sec__contenido {
	padding: 48px var(--margen-lateral);
}

.pr-sec__titulo {
	margin: 0 0 0.4em;
	color: var(--color-principal);
	font-family: var(--fuente-principal);
	font-size: 50px;
	font-weight: 400;
	line-height: 1.1;
	overflow-wrap: anywhere;
}

.pr-sec__texto {
	margin: 0 0 1.5rem;
	color: var(--color-negro);
	font-size: 20px;
}

/* bloques impares: fondo principal y textos blancos */
.pr-sec--invertido {
	background: var(--color-principal);
}

.pr-sec--invertido .pr-sec__titulo,
.pr-sec--invertido .pr-sec__texto {
	color: var(--color-blanco);
}

.pr-sec--invertido :focus-visible {
	outline-color: var(--color-blanco);
}

/* tienda: migas de pan y buscador encima del grid */
.tienda__cabecera {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
	align-items: center;
	margin-bottom: 32px;
}

.tienda .woocommerce-breadcrumb {
	margin: 0;
	color: var(--color-texto);
	font-size: 0.95rem;
}

.tienda .woocommerce-breadcrumb a {
	color: var(--color-principal);
}

/* ficha de producto: los relacionados empiezan debajo de la galería y el resumen flotantes */
.tienda--producto .related.products {
	clear: both;
	padding-top: 2rem;
}

/* tienda: grid nativo de woocommerce convertido a 1, 2 o 3 columnas */
.woocommerce .tienda ul.products {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	margin: 0 0 2rem;
}

.woocommerce .tienda ul.products::before,
.woocommerce .tienda ul.products::after {
	display: none;
}

.woocommerce .tienda ul.products li.product {
	width: auto;
	margin: 0;
	float: none;
}

/* card de producto: borde gris claro, imagen y nombre enlazados */
.woocommerce .tienda ul.products li.card-producto {
	border: 1px solid var(--color-borde);
	border-radius: var(--radio-card);
}

.card-producto__enlace {
	display: block;
	height: 100%;
	padding: 16px;
	color: var(--color-texto);
	text-decoration: none;
}

.woocommerce .tienda ul.products li.product .card-producto__imagen {
	width: 100%;
	height: auto;
	margin: 0 0 12px;
}

.woocommerce .tienda ul.products li.product .card-producto__titulo {
	margin: 0;
	padding: 0;
	color: var(--color-texto);
	font-size: 1rem;
	font-weight: 600;
}

/* sección cuenta con nosotros: imagen con overlay del color principal y texto grande */
.cuenta-nosotros {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 420px;
	padding-block: var(--espacio-seccion);
	background: var(--color-principal);
	isolation: isolate;
}

.cuenta-nosotros .fondo-seccion__capa {
	background: var(--color-principal);
}

.cuenta-nosotros__contenido {
	position: relative;
	z-index: 1;
}

.cuenta-nosotros__texto {
	margin: 0;
	color: var(--color-blanco);
	font-family: var(--fuente-principal);
	font-size: clamp(40px, 7vw, 96px);
	font-weight: 800;
	line-height: 1.05;
	text-shadow: 0 2px 16px var(--color-oscuro);
	overflow-wrap: anywhere;
}

/* banner secundario de las vistas internas */
.banner-secundario {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 360px;
	padding-block: 48px;
	background: var(--color-secundario);
	color: var(--color-blanco);
	isolation: isolate;
}

/* overlay negro sobre la imagen destacada */
.banner-secundario .fondo-seccion__capa {
	background: var(--color-negro);
}

.banner-secundario__contenido {
	position: relative;
	z-index: 1;
	text-align: left;
}

.banner-secundario__titulo {
	margin: 0;
	color: var(--color-titulo-banner, var(--color-blanco));
	text-shadow: 0 2px 12px var(--color-negro);
	overflow-wrap: anywhere;
	font-size: clamp(1.75rem, 1.3rem + 2vw, 2.75rem);
	font-weight: var(--peso-encabezado);
	letter-spacing: var(--espaciado-letras);
	line-height: 1.2;
}

.banner-secundario__descripcion {
	max-width: 60ch;
	margin: 0.75rem 0 0;
}

/* secciones de ancho completo dentro del contenido de lectura */
.contenido-entrada .seccion--ancho-completo {
	width: 100vw;
	margin-inline: calc(50% - 50vw);
}

/* contenido de páginas y entradas */
.contenido-entrada {
	font-family: var(--fuente-parrafos);
}

.contenido-entrada h2,
.contenido-entrada h3,
.contenido-entrada h4 {
	margin-top: 1.6em;
	font-family: var(--fuente-principal);
}

.contenido-entrada img {
	border-radius: var(--radio);
}

.contenido-entrada > * + * {
	margin-top: 1em;
}

/* single de entradas */
.entrada__meta,
.tarjeta__meta {
	color: var(--color-texto);
	font-size: 0.875rem;
	opacity: 0.8;
}

/* rejilla de tarjetas */
.rejilla {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
}

/* tarjeta reutilizable de entradas */
.tarjeta {
	position: relative;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	background: var(--color-blanco);
	border: 1px solid var(--color-borde);
	border-radius: var(--radio);
	transition: box-shadow var(--transicion), transform var(--transicion);
}

.tarjeta:hover {
	box-shadow: var(--sombra);
	transform: translateY(-2px);
}

.tarjeta__imagen img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	background: var(--color-fondo-suave);
}

.tarjeta__cuerpo {
	padding: 20px;
}

.tarjeta__titulo {
	margin-bottom: 0.4em;
}

.tarjeta__enlace {
	color: var(--color-texto);
	text-decoration: none;
}

/* toda la tarjeta es clicable a través del enlace del título */
.tarjeta__enlace::after {
	content: '';
	position: absolute;
	inset: 0;
}

.tarjeta__enlace:focus-visible {
	outline: none;
}

.tarjeta:focus-within {
	outline: 3px solid var(--color-principal);
	outline-offset: 3px;
}

.tarjeta__texto {
	margin: 0;
	font-size: 0.95rem;
}

.tarjeta--compacta {
	flex-direction: row;
	align-items: center;
}

.tarjeta--compacta .tarjeta__imagen {
	flex: 0 0 96px;
}

.tarjeta--compacta .tarjeta__cuerpo {
	padding: 12px 16px;
}

/* paginación nativa */
.paginacion {
	margin-top: 2.5rem;
}

.paginacion ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.paginacion .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 0 12px;
	color: var(--color-principal);
	font-weight: 600;
	text-decoration: none;
	border: 1px solid var(--color-borde);
	border-radius: var(--radio);
}

.paginacion .page-numbers.current,
.paginacion a.page-numbers:hover {
	background: var(--color-principal);
	border-color: var(--color-principal);
	color: var(--color-blanco);
}

/* formulario de búsqueda */
.search-form {
	display: flex;
	gap: 8px;
	margin-bottom: 2rem;
}

.search-form label {
	flex: 1;
}

.search-field,
.comment-form input[type='text'],
.comment-form input[type='email'],
.comment-form input[type='url'],
.comment-form textarea {
	width: 100%;
	padding: 12px 14px;
	color: var(--color-texto);
	font: inherit;
	border: 1px solid var(--color-borde);
	border-radius: var(--radio);
}

/* comentarios */
.comentarios {
	margin-top: 3rem;
	padding-top: 2rem;
	border-top: 1px solid var(--color-borde);
}

.comentarios__lista {
	padding-left: 0;
	list-style: none;
}

.comentarios__responder {
	font-size: 1.25rem;
	font-weight: var(--peso-encabezado);
}

/* pie de página */
.pie {
	background: var(--color-oscuro);
	color: var(--color-blanco);
}

.pie a {
	color: var(--color-blanco);
}

.pie__columnas {
	display: grid;
	gap: 32px;
	padding-block: 48px;
}

.pie__titulo {
	margin-bottom: 0.75rem;
	font-weight: var(--peso-encabezado);
	letter-spacing: var(--espaciado-letras);
}

/* logo de la columna 1 del footer */
.pie__logo {
	width: auto;
	max-height: 56px;
	margin-bottom: 1rem;
}

.pie__menu ul,
.pie__redes {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pie__menu li {
	margin-bottom: 8px;
}

.pie__redes {
	display: flex;
	gap: 8px;
	margin-top: 1rem;
}

.pie__red {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1px solid var(--color-borde-oscuro);
	border-radius: var(--radio);
}

.pie__red:hover {
	background: var(--color-principal);
	border-color: var(--color-principal);
}

.pie__red:focus-visible,
.pie a:focus-visible {
	outline-color: var(--color-blanco);
}

/* copyright centrado a ancho completo */
.pie__legal {
	padding-block: 16px;
	font-size: 0.875rem;
	text-align: center;
	border-top: 1px solid var(--color-borde-oscuro);
}

.pie__legal p {
	margin: 0;
}

/* tablet: desde 600px */
@media (min-width: 600px) {
	:root {
		--margen-lateral: 24px;
	}

	.woocommerce .tienda ul.products {
		grid-template-columns: repeat(2, 1fr);
	}

	.rejilla {
		grid-template-columns: repeat(2, 1fr);
	}

	.cards__rejilla--2,
	.cards__rejilla--3,
	.cards__rejilla--4 {
		grid-template-columns: repeat(2, 1fr);
	}

	.experiencia__fila {
		grid-template-columns: repeat(2, 1fr);
	}

	.novedades__posts,
	.nv-listado__rejilla {
		grid-template-columns: 1fr 1fr;
	}

	.experiencia__intro {
		grid-column: 1 / -1;
	}
}

/* escritorio: desde 900px */
@media (min-width: 900px) {
	:root {
		--espacio-seccion: 80px;
	}

	.cabecera__boton-menu {
		display: none;
	}

	.navegacion {
		display: block;
		position: static;
		padding: 0;
		background: transparent;
		box-shadow: none;
	}

	.navegacion__lista {
		display: flex;
		gap: 28px;
	}

	.navegacion__lista > li {
		position: relative;
	}

	.navegacion__lista .sub-menu {
		display: none;
		position: absolute;
		top: 100%;
		left: -16px;
		min-width: 220px;
		padding: 8px 0;
		background: var(--color-blanco);
		border-radius: var(--radio);
		box-shadow: var(--sombra);
	}

	.navegacion__lista li:hover > .sub-menu,
	.navegacion__lista li:focus-within > .sub-menu {
		display: block;
	}

	.navegacion__lista .sub-menu a {
		padding: 8px 16px;
	}

	.rejilla {
		grid-template-columns: repeat(3, 1fr);
	}

	.cards__rejilla--3 {
		grid-template-columns: repeat(3, 1fr);
	}

	.cards__rejilla--4 {
		grid-template-columns: repeat(4, 1fr);
	}

	.banner-secundario {
		min-height: 350px;
		padding-block: 72px;
	}

	.pie__columnas {
		grid-template-columns: repeat(3, 1fr);
	}

	.cuenta-nosotros__texto {
		width: 60%;
		margin-left: auto;
	}

	.experiencia__fila {
		grid-template-columns: 1.3fr repeat(3, 1fr);
	}

	.experiencia__intro {
		grid-column: auto;
	}

	.experiencia__fila--sin-intro {
		grid-template-columns: repeat(var(--columnas, 3), 1fr);
	}

	.novedades__cabecera {
		grid-template-columns: 1fr 1fr;
	}

	.sn-intro__fila,
	.sn-mv__rejilla {
		grid-template-columns: 1fr 1fr;
	}

	.nv-listado__rejilla {
		grid-template-columns: repeat(3, 1fr);
	}

	/* productos: dos columnas, alto mínimo 480px y el contenido alineado al contenedor */
	.pr-sec {
		grid-template-columns: 1fr 1fr;
		min-height: 480px;
	}

	.pr-sec__media {
		aspect-ratio: auto;
	}

	.pr-sec__contenido {
		display: flex;
		align-items: center;
		padding: 64px max(var(--margen-lateral), calc((100vw - var(--ancho-contenedor)) / 2)) 64px 64px;
	}

	.pr-sec__interior {
		max-width: calc(var(--ancho-contenedor) / 2 - 64px);
	}

	.pr-sec--invertido .pr-sec__media {
		order: 2;
	}

	.pr-sec--invertido .pr-sec__contenido {
		justify-content: flex-end;
		padding: 64px 64px 64px max(var(--margen-lateral), calc((100vw - var(--ancho-contenedor)) / 2));
	}

	.tienda__cabecera {
		grid-template-columns: 1fr 1fr;
	}

	.woocommerce .tienda ul.products {
		grid-template-columns: repeat(3, 1fr);
	}

	.co-mapa__fila--con-mapa {
		display: block;
	}

	.co-mapa__fila--con-mapa .co-mapa__mapa iframe {
		height: 550px;
	}

	/* capa del contenedor sobre el mapa; la card se alinea a su derecha y puede sobresalir */
	.co-mapa__fila--con-mapa .co-mapa__capa {
		position: absolute;
		top: 50%;
		right: 0;
		left: 0;
		display: flex;
		justify-content: flex-end;
		transform: translateY(-50%);
		pointer-events: none;
	}

	.co-mapa__fila--con-mapa .co-mapa__form {
		width: 40%;
		padding: 40px 32px;
		pointer-events: auto;
	}
}

/* escritorio amplio: desde 1200px */
@media (min-width: 1200px) {
	.rejilla--cuatro {
		grid-template-columns: repeat(4, 1fr);
	}
}

/* animaciones desactivadas para quien lo prefiera */
@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}

	.tarjeta:hover {
		transform: none;
	}

	.boton,
	.search-submit,
	.comment-form .submit {
		transition: none;
	}

	.acordeon__boton,
	.acordeon--js .acordeon__panel {
		transition: none;
	}

	.card--enlace::after {
		transition: none;
	}
}
