/* =====================================================================================================
   Carnicería Quintana · tema a código (Karibu Media)

   ESCALA FLUIDA. Todo se mide en rem y 1rem depende del ancho de la pantalla, así que la web se ve igual de
   proporcionada en cualquier pantalla de cada tipo:
     - ordenador (desde 1025 px): 1rem = 16 px en una pantalla de 1920 px, y ahí se queda en pantallas más anchas
       (como la web de Elementor: a 2560 px los textos, la cabecera y las tarjetas miden lo mismo que a 1920);
     - tablet (768-1024 px):      1rem = 16 px a 768 px;
     - móvil (hasta 767 px):      1rem = 16 px a 390 px.
   Por eso no hay tamaños en px salvo bordes finos.
   ===================================================================================================== */

/* ---------- Fuentes (las mismas archivos que ya había en la web, servidos desde el propio dominio) ---------- */
@font-face { font-family: "Barlow Condensed"; font-weight: 400; font-style: normal; font-display: swap; src: url("/wp-content/uploads/2025/03/BarlowCondensed-Regular.woff2") format("woff2"); }
@font-face { font-family: "Barlow Condensed"; font-weight: 500; font-style: normal; font-display: swap; src: url("/wp-content/uploads/2025/03/BarlowCondensed-Medium.woff2") format("woff2"); }
@font-face { font-family: "Barlow Condensed"; font-weight: 700; font-style: normal; font-display: swap; src: url("/wp-content/uploads/2025/03/BarlowCondensed-Bold.woff2") format("woff2"); }
@font-face { font-family: "Barlow Condensed"; font-weight: 400; font-style: italic; font-display: swap; src: url("/wp-content/uploads/2025/03/BarlowCondensed-Italic.woff2") format("woff2"); }
@font-face { font-family: "Germania One"; font-weight: 400; font-style: normal; font-display: swap; src: url("/wp-content/uploads/2025/03/GermaniaOne-Regular.woff2") format("woff2"); }
@font-face { font-family: "Vujahday Script"; font-weight: 400; font-style: normal; font-display: swap; src: url("/wp-content/uploads/2025/03/VujahdayScript-Regular.woff2") format("woff2"); }

/* ---------- Escala ---------- */
html { font-size: calc(100vw / 24.375); }
@media (min-width: 768px) { html { font-size: calc(100vw / 48); } }
@media (min-width: 1025px) { html { font-size: clamp(10px, calc(100vw / 120), 16px); } }

/* ---------- Colores y medidas ---------- */
:root {
	--granate: #7b1d3f;
	--granate-oscuro: #5e1530;
	--amarillo: #f9bb00;
	--negro: #1d1d1b;
	--claro: #ededed;
	--blanco: #ffffff;
	--gris: #545d5c;
	--gris-claro: #d9d6d0;
	--linea: rgba(29, 29, 27, .14);
	--f-texto: "Barlow Condensed", "Arial Narrow", Arial, sans-serif;
	--f-titulo: "Germania One", Georgia, serif;
	--f-script: "Vujahday Script", cursive;
	--texto: 1.15rem;           /* móvil 18,4 px */
	--texto-peq: 1rem;
	--titulo: 1.625rem;         /* móvil 26 px */
	--ancho: 100%;
	--margen: 1.25rem;
	--hueco: 3rem;              /* separación entre secciones */
	--radio: 1.5rem;
	--cab: 7.8rem;              /* alto de la cabecera (para la portada) */
}
@media (min-width: 768px) {
	:root { --texto: 1.15rem; --texto-peq: 1rem; --titulo: 1.9rem; --margen: 1.5rem; --hueco: 3.5rem; --cab: 6.6rem; }
}
@media (min-width: 1025px) {
	:root { --texto: 1.3rem; --texto-peq: 1.125rem; --titulo: 2.375rem; --ancho: 100rem; --margen: 2.5rem; --hueco: 4rem; --cab: 9.6rem; }
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: var(--cab); }
body { margin: 0; background: var(--claro); color: var(--negro); font-family: var(--f-texto); font-weight: 500; font-size: var(--texto); line-height: 1.6; -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img, svg, video, iframe { max-width: 100%; }
img { height: auto; display: block; }
a { color: var(--granate); text-decoration-thickness: .06em; text-underline-offset: .15em; }
a:hover { color: var(--negro); }
p { margin: 0 0 1em; }
h1, h2, h3, h4, h5, h6 { font-family: var(--f-titulo); font-weight: 400; line-height: 1.15; margin: 0 0 .5em; color: var(--negro); }
strong, b { font-weight: 700; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: .15rem solid var(--amarillo); outline-offset: .15rem; }
.icono { width: 1em; height: 1em; flex: none; vertical-align: -.125em; }
.oculto, .screen-reader-text { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.saltar { position: absolute; left: -999rem; top: 0; z-index: 1000; background: var(--negro); color: var(--claro); padding: .5rem 1rem; }
.saltar:focus { left: 1rem; }
.trampa { position: absolute; left: -999rem; }
.solo-movil { display: block; }
.solo-pc { display: none; }
@media (min-width: 1025px) { .solo-movil { display: none; } .solo-pc { display: block; } }

.contenido { display: block; min-height: 50vh; }
.seccion { width: min(var(--ancho), 100% - 2 * var(--margen)); margin: var(--hueco) auto; }
.seccion > :last-child { margin-bottom: 0; }
.titulo-seccion { font-size: var(--titulo); text-align: center; margin: 0 0 .9em; }
.titulo-bloque { font-size: var(--titulo); margin: 0 0 .6em; }
/* Franja granate con el título (tienda, categorías, carrito, checkout): baja, para que se vea enseguida lo importante. */
.titulo-pagina { background: var(--granate); color: var(--blanco); text-align: center; font-size: 2.3rem; line-height: 1.05; margin: 0; padding: .8rem var(--margen) .9rem; }
@media (min-width: 1025px) { .titulo-pagina { font-size: 3.4rem; padding: .9rem var(--margen) 1rem; } }
.titulo-pagina + .seccion, .cabecera-archivo + .seccion { margin-top: 1.6rem; }
@media (min-width: 1025px) { .titulo-pagina + .seccion, .cabecera-archivo + .seccion { margin-top: 1.8rem; } }
/* Título sin franja (contacto), como en la web de siempre. */
.titulo-simple { text-align: center; font-size: 2.3rem; margin: 1.4rem var(--margen) 0; }
@media (min-width: 1025px) { .titulo-simple { font-size: 3.25rem; margin-top: 1.2rem; } }
.titulo-pagina { font-family: var(--f-titulo); }

/* ---------- Botones ---------- */
.boton { display: inline-flex; align-items: center; justify-content: center; gap: .55em; font-family: var(--f-texto); font-weight: 700; font-size: 1.125rem; line-height: 1.2; text-decoration: none; border: 0; cursor: pointer; transition: background-color .2s, color .2s, transform .2s; }
.boton .icono { font-size: 1.05em; }
.boton-granate { background: var(--granate); color: var(--amarillo); border-radius: 2em; padding: .5em 1.7em; }
.boton-granate:hover { background: var(--negro); color: var(--amarillo); }
.boton-claro { background: var(--granate); color: var(--claro); border: .19rem solid var(--granate); border-radius: 2em; padding: .62em 2em; }
.boton-claro:hover { background: var(--negro); border-color: var(--negro); color: var(--claro); }
.boton-amarillo { background: var(--amarillo); color: var(--negro); border-radius: .06rem; padding: .45em 2.6em; }
.boton-amarillo:hover { background: var(--claro); color: var(--negro); }
/* Antes en amarillo sobre gris claro (apenas se leía): ahora en granate con la flecha en amarillo oscuro. */
.boton-enlace { background: none; color: var(--granate); padding: .2em 0; }
.boton-enlace .icono { color: var(--granate); transition: transform .2s; }
.boton-enlace:hover { color: var(--negro); }
.boton-enlace:hover .icono { transform: translateX(.3em); }

/* =====================================================================================================
   CABECERA
   ===================================================================================================== */
/* Transparente arriba del todo; al bajar, fondo claro con una sombra suave (clase .solida, la pone el JavaScript). */
.cabecera { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 50; background: transparent; transition: background-color .3s, box-shadow .3s; }
.cabecera.solida { background: var(--claro); }
/* Portada: la cabecera va encima del vídeo, en blanco, hasta que se baja. */
.home .cabecera { position: fixed; left: 0; right: 0; }
.home .cabecera:not(.solida) .menu-lista a, .home .cabecera:not(.solida) .icono-enlace { color: var(--claro); }
.home .cabecera:not(.solida) .menu-lista a:hover { color: var(--amarillo); }
.home .cabecera:not(.solida) .logo-img { filter: brightness(0) invert(1); }
.logo-img { transition: filter .3s; }
.barra-superior { background: var(--granate); color: var(--claro); }
.barra-lista { list-style: none; margin: 0; padding: 0; display: flex; justify-content: center; font-size: 1.15rem; line-height: 2.8rem; }
.barra-lista li { display: none; align-items: center; gap: .45em; }
.barra-lista li.barra-movil { display: flex; }
.barra-lista .icono { color: var(--amarillo); font-size: 1.15em; }
@media (min-width: 768px) {
	.barra-lista { display: grid; grid-template-columns: repeat(3, 1fr); line-height: 2.2rem; font-size: 1.15rem; }
	.barra-lista li { display: flex; justify-content: center; }
	.barra-lista li.barra-movil { display: none; }
}
@media (min-width: 1025px) { .barra-lista { line-height: 2.08rem; font-size: 1.3rem; } }

.cabecera-principal { position: relative; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; min-height: 4.9rem; padding: 0 1rem; }
.menu-escritorio { display: none; }
.logo { grid-column: 2; display: block; }
.logo-img { width: 6.3rem; }
.menu-boton { grid-column: 1; justify-self: start; display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border-radius: 50%; border: 0; background: var(--granate); color: var(--claro); font-size: 1.55rem; padding: 0; cursor: pointer; }
.menu-boton .cerrar { display: none; }
.menu-boton[aria-expanded="true"] .abrir { display: none; }
.menu-boton[aria-expanded="true"] .cerrar { display: block; }
.cabecera-iconos { grid-column: 3; justify-self: end; display: flex; align-items: center; gap: .9rem; }
.icono-enlace { position: relative; color: var(--granate); display: flex; font-size: 1.8rem; }
.icono-enlace:hover { color: var(--negro); }
.carrito-enlace { color: var(--negro); font-size: 2.1rem; }
.carrito-cantidad { position: absolute; top: -.45rem; right: -.55rem; min-width: 1.05rem; height: 1.05rem; padding: 0 .2rem; border-radius: 1rem; background: var(--granate); color: var(--claro); font: 700 .65rem/1.05rem var(--f-texto); text-align: center; }
.carrito-cantidad[data-cantidad="0"] { opacity: .85; }

.menu-movil { position: absolute; left: 0; right: 0; top: 100%; background: var(--claro); border-top: .19rem solid var(--granate); box-shadow: 0 1rem 2rem rgba(0, 0, 0, .18); padding: 1rem var(--margen) 1.5rem; }
.menu-movil[hidden] { display: none; }
.menu-movil-lista, .menu-movil-extra { list-style: none; margin: 0; padding: 0; text-align: center; }
.menu-movil-lista a { display: block; font: 1.5rem/1 var(--f-titulo); color: var(--negro); text-decoration: none; text-transform: uppercase; padding: .9rem 0; }
.menu-movil-lista a:hover, .menu-movil-lista .current-menu-item > a { color: var(--granate); }
.menu-movil-extra { display: flex; justify-content: center; gap: 2rem; border-top: 1px solid var(--linea); margin-top: .5rem; padding-top: 1rem; }
.menu-movil-extra a { display: inline-flex; align-items: center; gap: .4em; color: var(--granate); text-decoration: none; font-weight: 700; }

@media (min-width: 1025px) {
	.cabecera-principal { grid-template-columns: 1fr 10rem 1fr; column-gap: 5rem; min-height: 7.5rem; width: min(100rem, 100%); margin: 0 auto; padding: 0; }
	.menu-boton, .menu-movil { display: none !important; }
	.menu-escritorio { display: block; }
	.menu-izquierda { grid-column: 1; justify-self: end; }
	.menu-derecha { grid-column: 3; justify-self: start; }
	.logo { grid-column: 2; justify-self: center; }
	.logo-img { width: 10rem; }
	.cabecera-iconos { position: absolute; right: 0; top: 50%; transform: translateY(-50%); gap: 1.3rem; }
	.icono-enlace { font-size: 2rem; }
	.carrito-enlace { font-size: 1.75rem; }
	.carrito-cantidad { top: -.65rem; right: -.75rem; }
	.menu-lista { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; }
	.menu-lista li { display: flex; align-items: center; }
	.menu-lista li + li::before { content: ""; width: .12rem; height: .9rem; background: var(--granate); }
	.menu-lista a { font: 1.5rem/1.2 var(--f-titulo); text-transform: uppercase; color: var(--negro); text-decoration: none; padding: .31rem .95rem; }
	.menu-lista a:hover, .menu-lista .current-menu-item > a, .menu-lista .current-page-ancestor > a { color: var(--granate); }
}

/* =====================================================================================================
   PIE
   ===================================================================================================== */
.pie { background: var(--negro); color: var(--claro); border-top: .19rem solid var(--amarillo); margin-top: var(--hueco); font-size: 1.125rem; line-height: 1.5; }
.pie a { color: var(--claro); }
.pie a:hover { color: var(--amarillo); }
.pie h2 { color: var(--claro); font-size: 1.28rem; margin: 0 0 .7rem; }
.pie-interior { width: min(var(--ancho), 100% - 2 * var(--margen)); margin: 0 auto; padding: 1.3rem 0 2rem; text-align: center; }
.pie-logo { display: inline-block; }
.pie-logo img { width: 7.3rem; }
/* Accesos a las categorías: antes en granate sobre negro y a 18 px fijos (casi no se veían). */
.pie-categorias ul { list-style: none; margin: 1.2rem 0 0; padding: 0; display: grid; gap: .2rem; }
.pie-categorias a { display: inline-block; padding: .35rem 0; color: var(--amarillo); font-size: 1.2rem; font-weight: 500; text-decoration: underline; text-decoration-color: rgba(249, 187, 0, .45); }
.pie-categorias a:hover { color: var(--claro); text-decoration-color: currentColor; }
.pie-newsletter { margin: 2rem 0; display: grid; gap: 1rem; }
.pie-newsletter h2 { color: var(--amarillo); font-size: 1.28rem; line-height: 1.3; }
.pie-newsletter p { margin: 0 0 .5rem; }
.pie-columnas { display: grid; gap: 2rem; margin: 2rem 0; }
.pie-lista { list-style: none; margin: 0; padding: 0; }
.pie-lista a { display: inline-flex; align-items: center; gap: .45rem; text-decoration: none; padding: .2rem 0; }
.punto { width: .45rem; height: .45rem; border-radius: 50%; background: var(--granate); flex: none; }
.pie-contacto { list-style: none; margin: 1rem 0 0; padding: 0; display: grid; gap: .3rem; }
.pie-contacto a { display: inline-flex; align-items: center; gap: .45rem; text-decoration: none; font-weight: 500; }
.pie-contacto .icono { color: var(--granate); font-size: 1.15em; }
.pie-redes { list-style: none; margin: 1.6rem 0; padding: 0; display: flex; justify-content: center; gap: 1.2rem; }
.pie-redes a { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%; background: var(--granate); color: var(--claro); font-size: 1.15rem; }
.pie-redes a:hover { background: var(--amarillo); color: var(--negro); }
.pie-copy { margin: 0 0 .4rem; }
.pie-copy .separador { display: none; }
.pie-copy a { display: block; text-decoration: none; }
.pie-autor { margin: 0 0 1rem; }
.pie-autor a { color: var(--amarillo); text-decoration: none; font-weight: 500; }
.pie-ue { width: 12.2rem; margin: 0 auto; }

/* Móvil: el orden de la web de siempre (hostelería y redes antes que la cuenta y la información legal). */
@media (max-width: 767px) {
	.pie-interior { display: flex; flex-direction: column; }
	.pie-columnas { display: contents; }
	.pie-logo { order: 1; align-self: center; }
	.pie-categorias { order: 2; }
	.pie-categorias a { font-size: 1.05rem; padding: .3rem 0; }
	.pie-newsletter { order: 3; }
	.pie-hosteleria { order: 4; border-block: 1px solid var(--amarillo); padding: 1.2rem .5rem; margin: 0 1.5rem 1.5rem; }
	.pie-redes { order: 5; margin: 0 0 1.4rem; }
	.pie-cuenta { order: 6; margin-bottom: 1rem; }
	.pie-legal { order: 7; margin-bottom: 1.4rem; }
	.pie-copy { order: 8; }
	.pie-autor { order: 9; }
	.pie-ue { order: 10; align-self: center; }
}
@media (min-width: 768px) {
	.pie-logo img { width: 8rem; }
	.pie-categorias ul { grid-template-columns: repeat(7, auto); justify-content: space-between; gap: 1rem; }
	.pie-categorias a { font-size: 1.05rem; }
	.pie-newsletter { grid-template-columns: 1fr 1fr; gap: 2rem; text-align: left; align-items: start; }
	.pie-columnas { grid-template-columns: 1fr 2.5fr 1fr; gap: 0; text-align: left; align-items: center; }
	.pie-hosteleria { text-align: center; border-inline: .12rem solid var(--amarillo); padding: 0 1.2rem; }
	.pie-legal { text-align: right; }
	.pie-legal .pie-lista a { flex-direction: row; }
	.pie-copy .separador { display: inline; }
	.pie-copy a { display: inline; }
	.pie-ue { width: 15rem; }
}
@media (min-width: 1025px) {
	.pie { font-size: 1.125rem; }
	.pie h2 { font-size: 1.5rem; }
	.pie-interior { padding: 2.5rem 0 2rem; }
	.pie-logo img { width: 10rem; }
	.pie-categorias ul { margin-top: 1.25rem; }
	.pie-categorias a { font-size: 1.25rem; }
	.pie-newsletter { margin: 2.5rem auto; width: 97.5rem; gap: 1.25rem; }
	.pie-newsletter h2 { font-size: 1.5rem; }
	.pie-columnas { width: calc(100% + 2 * var(--margen) - 3.75rem); margin: 2.5rem 0 2.5rem calc(-1 * var(--margen) + 1.25rem); grid-template-columns: 22.5rem 1fr 22.5rem; }
	.pie-cuenta { padding-left: 1.2rem; }
	.pie-hosteleria { padding: 0 2rem; }
	.pie-hosteleria h2 { font-size: 1.5rem; }
	.pie-redes { margin: 2rem 0 1.4rem; gap: 1.9rem; }
	.pie-ue { width: 18rem; }
}

/* ---------- Formularios ---------- */
.formulario { display: grid; gap: .8rem; text-align: left; }
.formulario input[type="email"], .formulario input[type="text"], .formulario textarea { width: 100%; border: .06rem solid transparent; border-radius: 0; background: var(--claro); color: var(--negro); padding: .75rem 1.25rem; font-size: 1.125rem; }
.formulario input:focus, .formulario textarea:focus { outline: none; border-color: var(--amarillo); background: var(--blanco); }
.casilla { display: flex; gap: .55rem; align-items: flex-start; font-size: 1.05rem; line-height: 1.4; cursor: pointer; }
.casilla input { width: 1.1rem; height: 1.1rem; margin: .15rem 0 0; accent-color: var(--granate); flex: none; }
.formulario .boton { justify-self: center; }
.formulario-mensaje { margin: 0; min-height: 1.4em; font-weight: 700; text-align: center; }
.formulario-mensaje.ok { color: var(--amarillo); }
.formulario-mensaje.error { color: #ff8a8a; }
.formulario.enviando .boton { opacity: .6; pointer-events: none; }
@media (min-width: 1025px) {
	.formulario-newsletter input[type="email"] { padding: 1.25rem 1.9rem; }
	.formulario-newsletter .boton { min-width: 10rem; }
}

/* =====================================================================================================
   PORTADA
   ===================================================================================================== */
/* Ocupa toda la pantalla (la cabecera va encima). El vídeo se recorta como una foto de fondo: en ordenador el
   horizontal (16:9) y en el móvil el vertical (9:16), siempre cubriendo todo el hueco y centrado. */
.portada { position: relative; display: grid; place-items: center; min-height: 88svh; overflow: hidden; background: #0d0d0c; color: var(--claro); text-align: center; }
.portada-fondo { position: absolute; inset: 0; container-type: size; }
.portada-fondo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
/* Vídeo propio: cubre todo el hueco como una foto de fondo y aparece fundido cuando ya se está reproduciendo. */
/* Sin fundido propio: el vídeo ya empieza con su fundido desde negro, igual que el fondo. */
.portada-fondo { background: #000; }
.portada-fondo video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
/* Capa negra al 60 % encima del vídeo para que el texto se lea bien (va por encima porque ::after se pinta el último). */
.portada-fondo::after { content: ""; position: absolute; inset: 0; z-index: 1; background: rgba(0, 0, 0, .6); }
.portada-texto { position: relative; z-index: 2; padding: calc(var(--cab) + 1rem) var(--margen) 2rem; }
@media (min-width: 768px) {
	.portada { min-height: 100svh; }
}
.portada-marca { font: 2.5rem/1.05 var(--f-titulo); margin: 0 0 1.4rem; }
.portada-lema { font: 2rem/1.05 var(--f-script); color: var(--claro); margin: 0 0 2.2rem; }
.portada .boton-claro { font-size: 1.125rem; }
@media (min-width: 768px) {
	.portada-marca { font-size: 3.5rem; }
	.portada-lema { font-size: 2.6rem; }
}
@media (min-width: 1025px) {
	.portada-marca { font-size: 5rem; margin-bottom: 2.2rem; }
	.portada-lema { font-size: 3.25rem; margin-bottom: 3.5rem; }
}

/* ---------- Carrusel (sin librerías: desplazamiento nativo con imán) ---------- */
.carrusel { position: relative; }
.carrusel-pista { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none; overscroll-behavior-x: contain; }
.carrusel-pista::-webkit-scrollbar { display: none; }
.carrusel-diapo { flex: 0 0 100%; scroll-snap-align: start; min-width: 0; }
.carrusel-flecha { position: absolute; top: 50%; transform: translateY(-50%); display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border: 0; border-radius: 50%; background: rgba(237, 237, 237, .9); color: var(--granate); font-size: 1.6rem; cursor: pointer; z-index: 2; padding: 0; }
.carrusel-flecha:hover { color: var(--negro); }
.carrusel-flecha.anterior { left: .3rem; }
.carrusel-flecha.siguiente { right: .3rem; }
.carrusel-puntos { display: flex; justify-content: center; gap: .75rem; margin-top: 1.4rem; }
.carrusel-puntos button { width: .65rem; height: .65rem; padding: 0; border: 0; border-radius: 50%; background: var(--negro); cursor: pointer; }
.carrusel-puntos button[aria-selected="true"] { background: var(--granate); transform: scale(1.15); }
.carrusel-contador { text-align: center; margin: 1rem 0 0; }

/* ---------- Destacados ---------- */
.destacados { width: 100%; padding: 0 var(--margen); }
.destacado { display: grid; gap: 1.2rem; align-content: start; text-align: center; padding-bottom: .5rem; }
.destacado-imagen img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.destacado-titulo { font-size: var(--titulo); margin: 0 0 .5em; }
.destacado-texto p { margin: 0 0 .55em; }
.destacado-botones { display: grid; justify-items: center; gap: .65rem; margin-top: 1rem; }
.destacados .carrusel-flecha { top: 30%; }
@media (min-width: 768px) {
	.destacados .carrusel-flecha { top: 50%; }
	.destacado { grid-template-columns: 1.15fr 1fr; gap: 2.5rem; align-items: center; text-align: left; padding: 0 3.4rem; }
	.destacado-botones { justify-items: start; }
}
@media (min-width: 1025px) {
	.destacados { padding: 0 2.4rem; }
	.destacado { grid-template-columns: 51.3rem 38rem; column-gap: 10.7rem; justify-content: center; min-height: 46.9rem; padding: 0; }
	.destacados .carrusel-puntos { margin-top: 0; }
	.destacado-titulo { font-size: 2.375rem; }
	.destacado-botones { gap: 1.4rem; margin-top: 1.9rem; }
	.destacados .carrusel-flecha { width: 3.9rem; height: 3.9rem; font-size: 3rem; background: none; }
	.destacados .carrusel-flecha.anterior { left: 0; }
	.destacados .carrusel-flecha.siguiente { right: 0; }
}

/* ---------- La ganadería como legado / Apostamos por nuestra tierra ---------- */
.legado, .tierra { display: grid; gap: 1.6rem; }
.legado p, .tierra p { text-align: left; }
.legado-lateral img, .tierra-lateral img { width: 100%; aspect-ratio: 1; object-fit: cover; margin-bottom: 1.2rem; }
.legado-principal img, .tierra-principal img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.con-marco { border: .62rem solid var(--blanco); }
@media (min-width: 768px) {
	.legado { grid-template-columns: 1.6fr 1fr; align-items: start; gap: 2.5rem; }
	.legado-lateral { padding-top: 0; }
	.tierra { grid-template-columns: 1fr 1.6fr; align-items: start; gap: 2.5rem; }
}
@media (min-width: 1025px) {
	.legado { grid-template-columns: 59.5rem 30rem; column-gap: 10.5rem; }
	.legado-principal { padding-top: 0; }
	.tierra { grid-template-columns: 30rem 59.5rem; column-gap: 10.5rem; }
	.tierra-principal { padding-top: 6.9rem; }
	.con-marco { border-width: .19rem; }
}
/* Móvil: la segunda foto, algo más estrecha, monta un poco sobre la primera (a la izquierda en "legado" y a la
   derecha en "tierra") y el texto va justificado al ancho de esa segunda foto, como en la web de siempre. */
@media (max-width: 767px) {
	.legado, .tierra { gap: 0; }
	.tierra-principal { order: -1; }
	.legado-lateral, .tierra-lateral { position: relative; z-index: 1; width: 87%; margin-top: -.75rem; }
	.tierra-lateral { margin-left: auto; margin-top: -1.3rem; }
	.legado-lateral img, .tierra-lateral img { margin-bottom: 1.1rem; }
	.legado-lateral img, .tierra-lateral img { border: .62rem solid var(--blanco); }
	.historia-origen .legado-lateral { margin-left: auto; margin-top: -1.3rem; }
	.legado-lateral p, .tierra-lateral p { text-align: justify; -webkit-hyphens: auto; hyphens: auto; }
}

/* ---------- Conoce nuestro entorno ---------- */
.carrusel-fotos .carrusel-pista { gap: 1rem; }
.foto { margin: 0; }
.foto img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
@media (min-width: 768px) { .carrusel-fotos .carrusel-diapo { flex-basis: calc((100% - 1rem) / 2); } }
@media (min-width: 1025px) {
	.carrusel-fotos .carrusel-pista { gap: 1.56rem; }
	.carrusel-fotos .carrusel-diapo { flex-basis: calc((100% - 3.12rem) / 3); }
	.foto img { aspect-ratio: 517 / 570; }
}

/* ---------- Llamada final ---------- */
.llamada-enlace { position: relative; display: grid; place-items: center; overflow: hidden; text-decoration: none; }
.llamada-enlace img { width: 100%; height: 31.25rem; object-fit: cover; transition: transform .6s; }
.llamada-enlace::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, .35); transition: background-color .3s; }
.llamada-enlace:hover img { transform: scale(1.04); }
.llamada-enlace:hover::after { background: rgba(0, 0, 0, .5); }
.llamada-boton { position: absolute; z-index: 1; font: 1.28rem/1.2 var(--f-titulo); color: var(--claro); border: .12rem solid var(--amarillo); padding: 1.25rem 1.2rem; text-align: center; }
@media (min-width: 1025px) {
	.llamada { width: 77.5rem; }
	.llamada-enlace img { height: 21.9rem; }
	.llamada-boton { font-size: 1.5rem; padding: 1.25rem 1.5rem; min-width: 20.5rem; }
}

/* =====================================================================================================
   TIENDA: secciones comunes (categorías, ventajas, prensa, lema, opiniones)
   ===================================================================================================== */
.rejilla-categorias { display: grid; gap: .9rem; grid-template-columns: 1fr; }
/* Tarjetas de categoría: la foto lleva una capa negra semitransparente (elegancia y texto legible); al pasar el
   ratón la capa desaparece y se ve la textura del producto. */
.tarjeta { position: relative; display: grid; place-items: center; overflow: hidden; text-decoration: none; background: var(--negro); }
.tarjeta img { width: 100%; height: 13rem; object-fit: cover; transition: transform .8s; }
.tarjeta::after { content: ""; position: absolute; inset: 0; background: rgba(0, 0, 0, .45); transition: background-color .4s; }
.tarjeta:hover::after, .tarjeta:focus-visible::after { background: rgba(0, 0, 0, 0); }
.tarjeta:hover img { transform: scale(1.04); }
.tarjeta-titulo { position: absolute; z-index: 2; padding: 0 1rem; font: 1.75rem/1.1 var(--f-titulo); color: var(--claro); text-align: center; text-shadow: 0 .1rem .6rem rgba(0, 0, 0, .6); }
/* Prensa: al pasar el ratón, fondo amarillo y el logotipo del medio, que baja desde arriba. */
.rejilla-prensa { display: grid; gap: .9rem; grid-template-columns: 1fr 1fr; }
.rejilla-prensa .tarjeta { background: var(--blanco); }
.rejilla-prensa .tarjeta img { height: auto; aspect-ratio: 4 / 3.3; object-fit: cover; object-position: top; }
.rejilla-prensa .tarjeta::after { background: rgba(249, 187, 0, 0); }
.rejilla-prensa .tarjeta:hover::after, .rejilla-prensa .tarjeta:focus-visible::after { background: rgba(249, 187, 0, 1); }
.rejilla-prensa .tarjeta:hover img { transform: none; }
.prensa-logo { position: absolute; z-index: 2; left: 25%; right: 25%; top: 50%; opacity: 0; transform: translateY(-150%); transition: opacity .4s, transform .5s; pointer-events: none; }
.rejilla-prensa .prensa-logo img { width: 100%; height: auto; aspect-ratio: auto; object-fit: contain; }
.rejilla-prensa .tarjeta:hover .prensa-logo, .rejilla-prensa .tarjeta:focus-visible .prensa-logo { opacity: 1; transform: translateY(-50%); }
.ventajas-lista { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.8rem; text-align: center; }
.ventaja a { color: inherit; text-decoration: none; display: block; }
.ventaja-icono { display: block; color: var(--granate); font-size: 2.4rem; line-height: 1; margin-bottom: .55rem; }
.ventaja-titulo { display: block; font: 1.4rem/1.2 var(--f-titulo); color: var(--negro); margin-bottom: .4rem; }
.ventaja-texto { display: block; font-size: 1.05rem; line-height: 1.5; }
.ventaja a:hover .ventaja-titulo { color: var(--granate); }
.lema { text-align: center; }
.lema img { width: 60%; max-width: 20rem; margin: 0 auto 1rem; }
.lema-texto { font: var(--titulo)/1.2 var(--f-titulo); margin: 0; }
.opiniones .titulo-seccion { margin-bottom: .8em; }
@media (min-width: 768px) {
	.rejilla-categorias { grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
	.rejilla-prensa { grid-template-columns: repeat(4, 1fr); gap: 1.2rem; }
	.ventajas-lista { grid-template-columns: repeat(4, 1fr); gap: 2rem; }
}
@media (min-width: 768px) { .tarjeta img { height: 12rem; } }
@media (min-width: 1025px) {
	/* Categorías casi a todo el ancho, como los productos (antes más pequeñas y "lucían" menos). */
	.categorias { width: calc(100% - 2.4rem); max-width: 120rem; }
	.rejilla-categorias { gap: .75rem; }
	.tarjeta img { height: 20.5rem; }
	.tarjeta-titulo { font-size: 2.375rem; }
	.rejilla-prensa { width: 97.5rem; max-width: 100%; margin: 0 auto; gap: 1.25rem; }
	.ventajas { width: 100rem; }
	.ventaja-icono { font-size: 2.6rem; }
	.ventaja-titulo { font-size: 1.5rem; }
	.ventaja-texto { font-size: 1.125rem; }
	.lema img { width: 20rem; }
}
/* Ficha de producto: categorías de borde a borde de la pantalla, sin huecos. */
.categorias-pantalla { width: 100%; max-width: none; margin-bottom: 0; }
.categorias-pantalla .rejilla-categorias { gap: 0; }
@media (min-width: 1025px) { .categorias-pantalla { width: 100%; } .categorias-pantalla .tarjeta img { height: 16.5rem; } }
.categorias-pantalla + .pie, .contenido:has(> .categorias-pantalla:last-child) + .pie { margin-top: 0; }

/* =====================================================================================================
   TARJETAS DE PRODUCTO
   ===================================================================================================== */
.ancho-productos { width: calc(100% - 2 * var(--margen)); }
/* Móvil: como en la web de siempre, tarjetas casi de borde a borde y más compactas; categorías a todo el ancho y sin huecos. */
@media (max-width: 767px) {
	.ancho-productos, .relacionados { width: calc(100% - 1rem); }
	ul.products { gap: .5rem; }
	ul.products li.product { padding-bottom: .7rem; }
	.woocommerce-loop-product__title { margin: .5rem .35rem .25rem; }
	ul.products .valoracion { margin-bottom: .2rem; }
	ul.products li.product .button { margin-top: .5rem; font-size: 1rem; padding: .5em .9em; }
	.categorias { width: 100%; }
	.categorias .rejilla-categorias { gap: 0; }
	.categorias .tarjeta img { height: 13.5rem; }
	.categorias-pantalla .tarjeta img { height: 10.8rem; }
	.prensa { width: calc(100% - 1rem); }
	.rejilla-prensa { grid-template-columns: 1fr; gap: 1.2rem; }
	.rejilla-prensa .tarjeta img { aspect-ratio: 1; }
	.ventaja-icono { font-size: 4.2rem; }
}
@media (min-width: 1025px) { .ancho-productos { width: calc(100% - 2.4rem); max-width: 120rem; } }
ul.products { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
@media (min-width: 768px) { ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; } }
@media (min-width: 1025px) { ul.products { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1.94rem .66rem; } }
ul.products li.product { position: relative; display: flex; flex-direction: column; background: var(--blanco); text-align: center; padding-bottom: .85rem; transition: box-shadow .25s; }
ul.products li.product:hover { box-shadow: 0 .5rem 1.6rem rgba(29, 29, 27, .14); }
ul.products li.product > a.woocommerce-LoopProduct-link { display: flex; flex-direction: column; flex: 1; color: var(--negro); text-decoration: none; }
ul.products li.product img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; margin: 0; }
.woocommerce-loop-product__title { font: 1.15rem/1.2 var(--f-titulo); margin: .6rem .5rem .3rem; min-height: 2.4em; display: flex; align-items: center; justify-content: center; }
ul.products .valoracion { justify-content: center; margin: 0 0 .35rem; }
ul.products .price { display: block; color: var(--granate); font-weight: 700; font-size: 1.05rem; margin-top: auto; padding: 0 .5rem; }
ul.products .price del { color: var(--gris); font-weight: 500; margin-right: .3em; }
ul.products .price ins { text-decoration: none; }
ul.products li.product .button { align-self: center; margin-top: .75rem; }
ul.products li.product .added_to_cart { display: block; margin-top: .4rem; font-weight: 700; font-size: 1rem; }
.etiqueta-oferta { position: absolute; top: .6rem; left: .6rem; z-index: 1; background: var(--amarillo); color: var(--negro); font-weight: 700; font-size: .9rem; padding: .1rem .6rem; border-radius: 1rem; }
@media (min-width: 1025px) {
	.woocommerce-loop-product__title { font-size: 1.5rem; margin: .6rem 1rem .25rem; }
	ul.products li.product .button { margin-top: .6rem; }
	ul.products .price { font-size: 1.125rem; }
}

/* Botones de WooCommerce */
.button, button.button, a.button, input.button {
	display: inline-flex; align-items: center; justify-content: center; gap: .4em; background: var(--granate); color: var(--claro); border: 0; border-radius: 0; padding: .69em 1.15em; font: 700 1.125rem/1.2 var(--f-texto); text-decoration: none; cursor: pointer; transition: background-color .2s, color .2s;
}
.button:hover, button.button:hover, a.button:hover { background: var(--negro); color: var(--amarillo); }
.button.loading { opacity: .6; }
.button.added::after { content: " ✓"; }
.button:disabled, .button.disabled { opacity: .5; cursor: not-allowed; }

/* Estrellas (sin fuente de iconos) */
.valoracion { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.estrellas, .star-rating { position: relative; display: inline-block; width: 5.5em; height: 1.1em; font-size: 1.05rem; overflow: hidden; vertical-align: middle; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23d5d0c6' d='M12 2l2.9 6.6 7.1.6-5.4 4.7 1.6 7.1L12 17.3 5.8 21l1.6-7.1L2 9.2l7.1-.6z'/%3E%3C/svg%3E") repeat-x left center / 1.1em 1.1em; }
.estrellas > span, .star-rating > span { position: absolute; top: 0; left: 0; height: 100%; overflow: hidden; font-size: 0; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23f9bb00' d='M12 2l2.9 6.6 7.1.6-5.4 4.7 1.6 7.1L12 17.3 5.8 21l1.6-7.1L2 9.2l7.1-.6z'/%3E%3C/svg%3E") repeat-x left center / 1.1rem 1.1rem; }
.estrellas > span, .star-rating > span { background-size: 1.155rem 1.155rem; }
.estrellas::before, .star-rating::before, .estrellas > span::before, .star-rating > span::before { content: none; }
.valoracion-texto { color: var(--negro); font-weight: 700; font-size: 1rem; }
.valoracion-enlace { font-size: 1.15rem; color: var(--granate); }

/* =====================================================================================================
   MIGAS, AVISOS Y CABECERA DE ARCHIVO
   ===================================================================================================== */
/* Migas de pan: antes a 15 px fijos (ilegibles en pantallas grandes); ahora acompañan al texto. */
.migas { font-size: 1.05rem; color: var(--negro); line-height: 1.4; }
.migas a { color: var(--granate); text-decoration: none; }
.migas a:hover { text-decoration: underline; }
.migas-sep { margin: 0 .4em; color: var(--gris); }
@media (min-width: 1025px) { .migas { font-size: 1.2rem; } }
.cabecera-archivo .migas { text-align: center; margin: 1.2rem var(--margen) 0; }
.term-description { text-align: center; max-width: 55rem; margin: 0 auto 2rem; }
.listado .woocommerce-result-count { margin: 0 0 1rem; font-size: 1rem; color: var(--gris); }
.listado .woocommerce-ordering { margin: 0 0 1.2rem; }
.listado .woocommerce-ordering select { padding: .5rem 2.2rem .5rem .8rem; border: 1px solid var(--linea); background: var(--blanco); }
@media (min-width: 768px) {
	.listado .woocommerce-result-count { float: left; margin-top: .6rem; }
	.listado .woocommerce-ordering { float: right; }
	.listado ul.products { clear: both; }
}
.volver { text-align: center; margin: 2.5rem 0 0; }
.woocommerce-pagination ul { list-style: none; display: flex; justify-content: center; gap: .4rem; padding: 0; margin: 2rem 0 0; }
.woocommerce-pagination a, .woocommerce-pagination span { display: grid; place-items: center; min-width: 2.4rem; height: 2.4rem; background: var(--blanco); color: var(--negro); text-decoration: none; font-weight: 700; }
.woocommerce-pagination .current { background: var(--granate); color: var(--claro); }

/* Avisos (añadido al carrito, errores, información): compactos, sin los huecos de antes. */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message:focus, .woocommerce-info:focus, .woocommerce-error:focus, .woocommerce-NoticeGroup:focus { outline: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	list-style: none; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .6rem 1rem; margin: 0 0 1.2rem; padding: .9rem 1.2rem; background: var(--blanco); border-left: .3rem solid var(--granate); font-size: 1.1rem; line-height: 1.45; color: var(--negro);
}
.woocommerce-error { border-left-color: #b3261e; display: block; }
.woocommerce-error li { margin: .2rem 0; }
.woocommerce-info { border-left-color: var(--amarillo); }
.woocommerce-message .button, .woocommerce-info .button { order: 2; font-size: 1rem; padding: .5em 1em; }
.woocommerce-message a:not(.button), .woocommerce-info a:not(.button) { font-weight: 700; }

/* =====================================================================================================
   FICHA DE PRODUCTO
   ===================================================================================================== */
.ficha-rejilla { display: grid; gap: 1rem; grid-template-areas: "migas" "galeria" "resumen"; margin-top: 1.5rem; }
.ficha-migas { grid-area: migas; }
.ficha-galeria { grid-area: galeria; position: relative; min-width: 0; }
.ficha-resumen { grid-area: resumen; min-width: 0; }
@media (min-width: 768px) {
	.ficha-rejilla { grid-template-columns: 1fr 1fr; grid-template-areas: "galeria migas" "galeria resumen"; grid-template-rows: auto 1fr; column-gap: 2.5rem; align-items: start; }
	.ficha-galeria { position: sticky; top: calc(var(--cab) + 1rem); }
}
@media (min-width: 1025px) {
	.ficha-rejilla { width: calc(100% - 7.5rem); max-width: 112.5rem; grid-template-columns: 50.5rem 1fr; column-gap: 4.6rem; row-gap: .6rem; margin-top: 3.4rem; }
}
.galeria-principal { position: relative; }
.galeria-principal .woocommerce-product-gallery__image img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: .9rem; }
.galeria-principal a { display: block; cursor: zoom-in; }
/* Lupa (ordenador): la foto ampliada encima de la normal, siguiendo al ratón. */
.ficha-galeria .woocommerce-product-gallery__image { position: relative; overflow: hidden; border-radius: .9rem; }
.lupa { position: absolute; inset: 0; z-index: 2; background-repeat: no-repeat; background-color: var(--blanco); pointer-events: none; opacity: 0; transition: opacity .2s; }
.lupa.activa { opacity: 1; }
@media (hover: hover) and (pointer: fine) { .ficha-galeria .woocommerce-product-gallery__image a { cursor: crosshair; } }
@media (max-width: 767px) { .ficha-galeria .woocommerce-product-gallery__image { border-radius: 0; } }
/* Miniaturas pequeñas: 6 por fila en el móvil y 8 en tablet y ordenador (antes 4, demasiado grandes). */
.galeria-miniaturas { list-style: none; margin: .5rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(6, 1fr); gap: .4rem; }
@media (min-width: 768px) { .galeria-miniaturas { grid-template-columns: repeat(8, 1fr); } }
/* Packs compuestos: la foto de portada del pack se queda hasta que el cliente cambia un corte (clase .pack-tocado, la
   pone el JavaScript); entonces se ve la galería del plugin con la foto de cada corte. */
.ficha-galeria:not(.pack-tocado) .woocommerce-product-gallery--wooco { display: none !important; }
.ficha-galeria:not(.pack-tocado) .galeria { display: block !important; opacity: 1 !important; }
.galeria-mini { display: block; width: 100%; padding: 0; border: .12rem solid rgba(249, 187, 0, .45); border-radius: .35rem; overflow: hidden; background: none; cursor: pointer; }
.galeria-mini img { width: 100%; aspect-ratio: 1; object-fit: cover; opacity: .75; transition: opacity .2s; }
.galeria-mini:hover img, .galeria-mini.activa img { opacity: 1; }
.galeria-mini.activa { border-color: var(--amarillo); }
.ficha .onsale { position: absolute; top: 1rem; left: 1rem; z-index: 2; background: var(--amarillo); color: var(--negro); font-weight: 700; padding: .2rem .8rem; border-radius: 1rem; }
.ficha-resumen .product_title { font-size: 2.2rem; line-height: 1.1; margin: .2rem 0 .5rem; }
.ficha-resumen > .price { color: var(--granate); font-weight: 700; font-size: 1.6rem; line-height: 1.2; margin: 0 0 .4rem; }
.ficha-resumen > .price del { color: var(--gris); font-weight: 500; font-size: .8em; }
.ficha-resumen > .price ins { text-decoration: none; }
.ficha-resumen .valoracion { margin: 0 0 .8rem; }
.ficha-resumen .estrellas { font-size: 1.3rem; }
.ficha-resumen .estrellas > span { background-size: 1.43rem 1.43rem; }
.woocommerce-product-details__short-description { text-align: left; margin-bottom: 1.2rem; }
.woocommerce-product-details__short-description p:last-child { margin-bottom: 0; }
.ficha-resumen form.cart { display: flex; flex-wrap: wrap; align-items: stretch; gap: .75rem 1.2rem; margin: 1.6rem 0; }
.ficha-resumen form.cart.variations_form, .ficha-resumen form.cart.grouped_form, .ficha-resumen form.cart.composite_form, .ficha-resumen form.cart:has(.wooco_components), .ficha-resumen form.cart:has(.woosb-products) { display: block; }
.ficha-resumen .single_variation_wrap .woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: .75rem 1.2rem; align-items: stretch; margin-top: 1rem; }
.quantity { display: flex; }
.quantity .qty { width: 4.4rem; min-height: 3.5rem; text-align: center; border: 0; border-radius: 0; background: var(--granate); color: var(--claro); font-weight: 700; font-size: 1.15rem; }
.single_add_to_cart_button { flex: 1; min-height: 3.5rem; max-width: 26rem; background: var(--amarillo) !important; color: var(--negro) !important; font-size: 1.25rem !important; }
.single_add_to_cart_button:hover { background: var(--negro) !important; color: var(--amarillo) !important; }
table.variations { border-collapse: collapse; width: 100%; margin: 0 0 .5rem; }
table.variations th, table.variations td { display: block; text-align: left; padding: 0; }
table.variations th label { font-weight: 700; display: block; margin: .6rem 0 .35rem; }
table.variations select, .ficha-resumen form.cart select { width: 100%; max-width: 26rem; min-height: 3rem; padding: .4rem 2.4rem .4rem .9rem; border: .12rem solid var(--granate); border-radius: .4rem; background: var(--blanco) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237b1d3f' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right .7rem center / 1.1rem; -webkit-appearance: none; appearance: none; font-size: 1.1rem; }
.reset_variations { display: inline-block; margin-top: .4rem; font-size: 1rem; }
/* "Limpiar" solo ocupa sitio cuando se ve (WooCommerce lo oculta con visibility y dejaba el hueco). */
.reset_variations[style*="hidden"] { display: none; }
/* Menos aire entre la descripción corta y el selector (en todos los tipos de producto). */
.ficha-resumen .woocommerce-product-details__short-description { margin-bottom: .9rem; }
.ficha-resumen form.cart { margin-top: .9rem; }
.ficha-resumen table.variations th label { margin-top: 0; }
.woocommerce-variation-price .price { color: var(--granate); font-weight: 700; font-size: 1.4rem; }
.stock { font-weight: 700; }
.stock.out-of-stock { color: #b3261e; }
.aviso-agotado { background: var(--blanco); border-left: .3rem solid var(--amarillo); padding: .8rem 1rem; margin: 0 0 1rem; font-size: 1.05rem; line-height: 1.45; }
.aviso-agotado p { margin: 0 0 .3rem; }
.aviso-agotado p:last-child { margin: 0; }
.aviso-agotado a { font-weight: 700; }
.ficha-garantias { list-style: none; margin: 1.6rem 0 1rem; padding: 0; display: grid; gap: .7rem; font-size: 1.15rem; line-height: 1.4; font-weight: 400; }
.ficha-garantias li { display: flex; gap: .9rem; align-items: flex-start; } /* El icono, a la altura de la primera línea aunque el texto ocupe dos. */
.ficha-garantias .icono { color: var(--granate); font-size: 1.7rem; flex: none; margin-top: -.05em; }
.ficha-garantias .icono-whatsapp { font-size: 1.5rem; margin: .05em .1rem 0; } /* El logotipo relleno pesa más que los iconos de línea. */
.ficha-garantias a { color: var(--granate); text-decoration: underline; text-underline-offset: .15em; }
.ficha-garantias a:last-child { white-space: nowrap; } /* "Cómo funciona" sin partir. */
/* Logotipos de pago al tamaño de la web de siempre (Visa y Bizum unos 95 px de ancho a 1920). */
.ficha-pagos { display: flex; align-items: center; gap: 1.2rem; margin-top: 1rem; }
.ficha-pagos img { height: 1.75rem; width: auto; }
.ficha-pagos img:nth-child(2) { height: 2.5rem; }
@media (min-width: 1025px) {
	.ficha-resumen .product_title { font-size: 3.3rem; }
	.ficha-resumen > .price { font-size: 2.1rem; }
	.ficha-garantias { font-size: 1.3rem; }
}

/* Lotes (WPC Bundles, p. ej. Chuletón + vino): cada producto en una tarjeta y su selector igual que el de los productos
   con variantes. El formulario del selector va dentro del de compra y el navegador lo quita, así que hay que darle
   los estilos aquí. */
.woosb-products { display: grid !important; gap: .8rem; margin: 0 0 1rem; }
.woosb-product .variations, .woosb-product .variation { border: 0 !important; padding: 0 !important; background: none !important; box-shadow: none !important; }
.woosb-product select { text-align: left !important; text-align-last: left; }
@media (min-width: 768px) { .woosb-products.woosb-products-layout-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } .woosb-products .woosb-product { width: auto !important; max-width: none !important; flex: none !important; } }
.woosb-product { background: var(--blanco); border: 1px solid var(--linea) !important; padding: .9rem 1rem !important; text-align: left !important; margin: 0 !important; width: auto !important; }
.woosb-products .woosb-product { align-items: stretch !important; }
.woosb-product .woosb-title { text-align: left !important; width: 100%; }
.woosb-product form.variations_form, .woosb-product div.variations, .woosb-product .variation, .woosb-product .variation .value { display: block !important; width: 100% !important; }
.woosb-product .woosb-name { font: 1.35rem/1.2 var(--f-titulo) !important; color: var(--granate); margin: 0 0 .3rem; }
.woosb-product .woosb-description { font-size: 1.05rem !important; line-height: 1.45; margin: 0 0 .6rem; }
.woosb-product .variations { display: block; margin: 0; }
.woosb-product .variation { display: block !important; margin: 0 0 .4rem; }
.woosb-product .variation .label, .woosb-product .variation .label label { display: block; font: 700 1.1rem/1.3 var(--f-texto) !important; color: var(--negro); margin: 0 0 .35rem; text-align: left; }
.woosb-product .variation .value { display: block; }
.woosb-product select { display: block; width: 100% !important; max-width: 26rem; height: auto !important; min-height: 3rem; padding: .4rem 2.4rem .4rem .9rem !important; border: .12rem solid var(--granate) !important; border-radius: .4rem; background: var(--blanco) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237b1d3f' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right .7rem center / 1.1rem !important; -webkit-appearance: none; appearance: none; font: 500 1.1rem/1.3 var(--f-texto) !important; color: var(--negro); }
.woosb-product .reset { text-align: left; }
.woosb-product .reset_variations { font-size: 1rem; }
.woosb-product .woosb-price, .woosb-product .woosb-qty { text-align: left !important; }

/* Packs (WPC Composite): el nombre de cada tipo de carne como título granate, como en la web de siempre. */
.wooco_component_name { font: 1.35rem/1.2 var(--f-titulo); color: var(--granate); margin: 0 0 .3rem; }
.dd-selected-text, .dd-option-text { font-size: 1.05rem !important; }
/* El plugin convierte cada selector en su desplegable con foto (50 px) cuando ya se ve la página: se reserva ese alto
   desde el principio para que la ficha no dé un salto (4 tipos de carne × 23 px). */
.wooco_component_product_select { min-height: 50px; }
.wooco_component_product_select > select { width: 100%; min-height: 50px; }

/* Móvil: ficha como la de siempre (márgenes más estrechos, foto sin esquinas redondeadas, título, precio y valoración
   centrados y descripción justificada). */
@media (max-width: 767px) {
	.ficha-rejilla { width: calc(100% - 2rem); margin-top: 1rem; }
	.ficha-migas .migas { font-size: .9rem; }
	.ficha-galeria .galeria-principal .woocommerce-product-gallery__image img, .ficha-galeria .galeria-ajena .woocommerce-product-gallery__image img { border-radius: 0; }
	.ficha-resumen .product_title, .ficha-resumen > .price { text-align: center; }
	.ficha-resumen .valoracion { justify-content: center; }
	.woocommerce-product-details__short-description { text-align: justify; font-size: 1.05rem; }
	.ficha-garantias { font-size: 1.05rem; }
	.ficha-pagos { justify-content: space-around; }
	.ficha-pagos img { height: 2.1rem; }
	.ficha-pagos img:nth-child(2) { height: 2.9rem; }
	.ficha-despues .woocommerce-tabs { width: calc(100% - 1rem); }
	.woocommerce-Tabs-panel { padding: 1.2rem 1rem; }
	.woocommerce-Tabs-panel ul, .woocommerce-Tabs-panel ol { padding-left: 1.2rem; }
	.wc-tabs a { padding: .6rem .8rem; font-size: 1.05rem; }
}

/* Pestañas */
.ficha-despues .woocommerce-tabs { width: min(var(--ancho), 100% - 2 * var(--margen)); margin: var(--hueco) auto 0; }
@media (min-width: 1025px) { .ficha-despues .woocommerce-tabs { width: calc(100% - 6.6rem); max-width: 112.5rem; } }
.wc-tabs { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; border-bottom: .12rem solid rgba(249, 187, 0, .5); }
.wc-tabs li { margin: 0 0 -.12rem; }
.wc-tabs a { display: block; padding: .8rem 1.2rem; font: 1.15rem/1.2 var(--f-titulo); color: var(--negro); text-decoration: none; border: .12rem solid rgba(249, 187, 0, .5); border-bottom: 0; border-radius: .9rem .9rem 0 0; margin-right: -.12rem; }
.wc-tabs li.active a { background: var(--blanco); color: var(--granate); border-color: var(--amarillo); }
.woocommerce-Tabs-panel { background: var(--blanco); padding: 1.6rem 1.4rem; margin: 0; }
/* Texto de las pestañas algo más pequeño que el general (a 1920: 16 px el texto y 20 px los títulos). */
.woocommerce-Tabs-panel { font-size: 1.05rem; }
.woocommerce-Tabs-panel h2, .woocommerce-Tabs-panel h3, .woocommerce-Tabs-panel h4 { font-size: 1.3rem; margin: 1.2em 0 .45em; }
.woocommerce-Tabs-panel > h2:first-child, .woocommerce-Tabs-panel > h3:first-child { margin-top: 0; }
@media (min-width: 1025px) {
	.wc-tabs a { font-size: 1.5rem; padding: .9rem 1.4rem; }
	.woocommerce-Tabs-panel { padding: 2.2rem 2.5rem; font-size: 1rem; }
	.woocommerce-Tabs-panel h2, .woocommerce-Tabs-panel h3, .woocommerce-Tabs-panel h4 { font-size: 1.25rem; }
}
/* Descripción larga un 15 % más grande que las otras pestañas, texto y títulos (petición del cliente, 23-oct-2026).
   En el móvil, al revés: un 10 % más pequeña (corrección del cliente, el mismo día). */
.woocommerce-Tabs-panel--description { font-size: 1.2075rem; }
.woocommerce-Tabs-panel--description h2, .woocommerce-Tabs-panel--description h3, .woocommerce-Tabs-panel--description h4 { font-size: 1.495rem; }
@media (max-width: 767px) {
	.woocommerce-Tabs-panel--description { font-size: .945rem; }
	.woocommerce-Tabs-panel--description h2, .woocommerce-Tabs-panel--description h3, .woocommerce-Tabs-panel--description h4 { font-size: 1.17rem; }
}
@media (min-width: 1025px) {
	.woocommerce-Tabs-panel--description { font-size: 1.15rem; }
	.woocommerce-Tabs-panel--description h2, .woocommerce-Tabs-panel--description h3, .woocommerce-Tabs-panel--description h4 { font-size: 1.4375rem; }
}
.woocommerce-product-attributes { width: 100%; border-collapse: collapse; }
.woocommerce-product-attributes th, .woocommerce-product-attributes td { text-align: left; padding: .6rem .8rem; border-bottom: 1px solid var(--linea); }
.woocommerce-product-attributes td p { margin: 0; }
/* Valoraciones */
#reviews .commentlist { list-style: none; margin: 0 0 2rem; padding: 0; display: grid; gap: 1rem; }
#reviews .comment_container { display: flex; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--linea); }
#reviews .avatar { width: 3rem; height: 3rem; border-radius: 50%; }
#reviews .comment-text { flex: 1; }
#reviews .meta { font-size: 1rem; color: var(--gris); margin: .2rem 0; }
#review_form .comment-reply-title { display: block; font: 1.5rem/1.2 var(--f-titulo); margin: 0 0 1rem; }
#review_form label { display: block; font-weight: 700; margin: .8rem 0 .3rem; }
#review_form input[type="text"], #review_form input[type="email"], #review_form textarea { width: 100%; padding: .7rem .9rem; border: 1px solid var(--linea); background: var(--claro); }
p.stars a { position: relative; display: inline-block; width: 1.4em; height: 1.4em; font-size: 1.5rem; text-indent: -999em; overflow: hidden; text-decoration: none; }
p.stars a::before { content: "★"; position: absolute; inset: 0; text-indent: 0; color: #d5d0c6; }
p.stars:hover a::before, p.stars.selected a::before { color: var(--amarillo); }
p.stars a:hover ~ a::before, p.stars.selected a.active ~ a::before { color: #d5d0c6; }
/* Relacionados: 4 tarjetas del mismo tamaño que en la tienda, centradas. */
.relacionados { width: calc(100% - 2 * var(--margen)); }
@media (min-width: 768px) { .relacionados ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (min-width: 1025px) {
	.relacionados { width: calc(100% - 2.4rem); max-width: 120rem; }
	.relacionados ul.products { width: calc((100% - 4 * .66rem) * .8 + 3 * .66rem); margin: 0 auto; }
}
.pswp { z-index: 1000; }
/* El plugin de valoraciones imprime su propio visor de fotos en todas las páginas, sin sus estilos: dejaba un hueco
   con botones invisibles debajo del pie. Solo se ve cuando está abierto. */
.cr-pswp:not(.pswp--open), .pswp:not(.pswp--open) { display: none; }

/* =====================================================================================================
   CARRITO, CHECKOUT Y MI CUENTA
   ===================================================================================================== */
.pagina-tienda { max-width: 100rem; }
.pagina-tienda input[type="text"], .pagina-tienda input[type="email"], .pagina-tienda input[type="tel"], .pagina-tienda input[type="password"], .pagina-tienda input[type="number"]:not(.qty), .pagina-tienda textarea, .pagina-tienda select {
	width: 100%; min-height: 3rem; padding: .55rem 1rem; border: .12rem solid transparent; border-radius: 1.5rem; background-color: var(--claro); color: var(--negro); font-size: 1.1rem; line-height: 1.4;
}
.pagina-tienda textarea { border-radius: 1rem; min-height: 6rem; }
.pagina-tienda select { -webkit-appearance: none; appearance: none; padding-right: 2.6rem; background: var(--claro) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231d1d1b' stroke-width='2.5'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 1rem center / 1rem; }
.pagina-tienda input:focus, .pagina-tienda textarea:focus, .pagina-tienda select:focus { outline: none; border-color: var(--amarillo); background-color: var(--blanco); }
.pagina-tienda .form-row { margin: 0 0 1.1rem; padding: 0; }
.pagina-tienda .form-row label:not(.checkbox):not(.woocommerce-form__label-for-checkbox) { display: block; margin: 0 0 .4rem; font-size: 1.1rem; line-height: 1.3; }
.pagina-tienda .required { color: var(--amarillo); text-decoration: none; border: 0; }
.pagina-tienda .optional { opacity: .7; font-size: .9em; }
.pagina-tienda .woocommerce-input-wrapper { display: block; }
.pagina-tienda .form-row.woocommerce-invalid input, .pagina-tienda .form-row.woocommerce-invalid select { border-color: #e06c6c; }
/* Campos en rejilla (antes en columnas flotantes, que se descolocaban si un campo era más alto que su vecino). */
@media (min-width: 768px) {
	.woocommerce-billing-fields__field-wrapper, .woocommerce-shipping-fields__field-wrapper, .woocommerce-address-fields__field-wrapper, .woocommerce-EditAccountForm { display: grid; grid-template-columns: 1fr 1fr; column-gap: 1.2rem; align-items: end; }
	.woocommerce-billing-fields__field-wrapper > *, .woocommerce-shipping-fields__field-wrapper > *, .woocommerce-address-fields__field-wrapper > *, .woocommerce-EditAccountForm > * { grid-column: 1 / -1; }
	.woocommerce-billing-fields__field-wrapper > .form-row-first, .woocommerce-shipping-fields__field-wrapper > .form-row-first, .woocommerce-address-fields__field-wrapper > .form-row-first, .woocommerce-EditAccountForm > .form-row-first { grid-column: 1; }
	.woocommerce-billing-fields__field-wrapper > .form-row-last, .woocommerce-shipping-fields__field-wrapper > .form-row-last, .woocommerce-address-fields__field-wrapper > .form-row-last, .woocommerce-EditAccountForm > .form-row-last { grid-column: 2; }
	.woocommerce-billing-fields__field-wrapper > [style*='display: none'], .woocommerce-billing-fields__field-wrapper > [hidden] { display: none; }
}
.woocommerce-billing-fields__field-wrapper > .form-row:has(input[type='hidden']:only-child), .woocommerce-billing-fields__field-wrapper > .form-row:empty { display: none; }
/* Móvil: campos compactos, como en la web de siempre. */
@media (max-width: 767px) {
	.pagina-tienda input[type="text"], .pagina-tienda input[type="email"], .pagina-tienda input[type="tel"], .pagina-tienda input[type="password"], .pagina-tienda input[type="number"]:not(.qty), .pagina-tienda select, .pagina-tienda select.select2-hidden-accessible { min-height: 2.4rem !important; padding-top: .3rem !important; padding-bottom: .3rem !important; font-size: 1rem; }
	.pagina-tienda .form-row { margin-bottom: .55rem; }
	.pagina-tienda .form-row label:not(.checkbox):not(.woocommerce-form__label-for-checkbox) { font-size: 1rem; margin-bottom: .2rem; }
	#customer_details > .col-1, #customer_details .woocommerce-additional-fields, .woocommerce-checkout-review-order { padding: 1rem .9rem .4rem; }
	#customer_details h3, .woocommerce-checkout-review-order::before { font-size: 1.4rem; }
}
/* País: solo se envía a España, así que se ve como un campo normal y sin flecha. */
.pagina-tienda select.country_to_state--single { background-image: none; pointer-events: none; }

/* Carrito */
.woocommerce-cart-form { margin-bottom: 2rem; }
table.shop_table { width: 100%; border-collapse: collapse; background: var(--blanco); font-size: 1.1rem; }
table.shop_table th, table.shop_table td { padding: .9rem 1rem; text-align: left; border-bottom: 1px solid var(--linea); vertical-align: middle; }
table.shop_table thead th { font-family: var(--f-titulo); font-weight: 400; font-size: 1.15rem; background: var(--negro); color: var(--claro); }
.shop_table .product-thumbnail img { width: 5.5rem; aspect-ratio: 3 / 2; object-fit: cover; }
.shop_table .product-name a { color: var(--negro); font-weight: 700; text-decoration: none; }
.shop_table .product-remove a { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--claro); color: var(--granate); text-decoration: none; font-size: 1.4rem; line-height: 1; }
.shop_table .product-remove a:hover { background: var(--granate); color: var(--claro); }
.shop_table .quantity .qty { min-height: 2.6rem; width: 4rem; }
.shop_table td.actions { background: var(--claro); }
.shop_table .coupon { display: flex; flex-wrap: wrap; gap: .6rem; float: left; }
.shop_table .coupon input { width: 12rem; min-height: 2.6rem; }
.shop_table td.actions > .button { float: right; }
.cart-collaterals { display: grid; }
.cart_totals { background: var(--blanco); padding: 1.4rem; }
.cart_totals h2 { font-size: 1.6rem; }
.cart_totals .order-total td, .cart_totals .order-total th { font-weight: 700; font-size: 1.3rem; color: var(--granate); }
.wc-proceed-to-checkout .checkout-button { width: 100%; min-height: 3.6rem; font-size: 1.3rem; margin-top: 1rem; background: var(--amarillo); color: var(--negro); }
.wc-proceed-to-checkout .checkout-button:hover { background: var(--negro); color: var(--amarillo); }
@media (max-width: 767px) {
	table.shop_table_responsive thead { display: none; }
	table.shop_table_responsive tr { display: block; border-bottom: .2rem solid var(--claro); }
	table.shop_table_responsive td { display: flex; justify-content: space-between; align-items: center; gap: 1rem; text-align: right; }
	table.shop_table_responsive td::before { content: attr(data-title); font-weight: 700; text-align: left; }
	table.shop_table_responsive td.product-remove::before, table.shop_table_responsive td.product-thumbnail::before, table.shop_table_responsive td.actions::before { content: none; }
	.shop_table .coupon, .shop_table td.actions > .button { float: none; width: 100%; }
	.shop_table .coupon input { flex: 1; }
	/* Cada producto del carrito en una ficha compacta: foto a la izquierda y los datos a la derecha. */
	table.shop_table_responsive tr.cart_item { display: grid; grid-template-columns: 5rem 1fr; column-gap: .9rem; position: relative; padding: .8rem; }
	table.shop_table_responsive tr.cart_item td { padding: .15rem 0; border: 0; font-size: 1rem; }
	tr.cart_item td.product-thumbnail { grid-row: 1 / span 4; align-self: start; display: block; }
	.shop_table tr.cart_item .product-thumbnail img { width: 5rem; }
	tr.cart_item td.product-remove { position: absolute; top: .5rem; right: .5rem; padding: 0; }
	tr.cart_item td.product-name { justify-content: flex-start; text-align: left; padding-right: 2.4rem; }
	tr.cart_item td.product-name::before { content: none; }
	/* Lotes (chuletón + vino): el nombre y, debajo, lo que lleva, en letra pequeña (antes en dos columnas apretadas y con
	   un ":" suelto). */
	tr.cart_item td.product-name { display: block; }
	tr.cart_item td.product-name dl.variation { display: block; margin: .2rem 0 0; font-size: .9rem; color: var(--gris); font-weight: 500; }
	tr.cart_item td.product-name dl.variation dt:empty, tr.cart_item td.product-name dl.variation dt { display: none; }
	tr.cart_item td.product-name dl.variation dd, tr.cart_item td.product-name dl.variation dd p { display: inline; margin: 0; }
	tr.cart_item td::before { font-weight: 500; color: var(--gris); }
	.shop_table tr.cart_item .quantity .qty { min-height: 2.2rem; width: 3.4rem; }
	/* Cupón: código y "Aplicar cupón" en una fila, al ancho de las fichas de arriba; debajo, "Actualizar carrito" como
	   una fila estrecha y discreta (solo hace falta si se cambian cantidades). */
	table.shop_table_responsive td.actions { display: block; padding: .8rem 0 0; background: none; border: 0; }
	.shop_table td.actions .coupon { display: flex; flex-wrap: nowrap; align-items: stretch; width: 100%; gap: 0; margin: 0 0 .5rem; }
	.shop_table td.actions .coupon input#coupon_code { flex: 1; width: auto; min-width: 0; min-height: 2.9rem; border-radius: 1.5rem 0 0 1.5rem; border: .12rem solid var(--granate); border-right: 0; padding: .3rem 1rem; }
	.shop_table td.actions .coupon .button { flex: none; min-height: 2.9rem; padding: 0 1.1rem; border-radius: 0 1.5rem 1.5rem 0; font-size: 1.05rem; }
	.shop_table td.actions > .button[name="update_cart"] { width: 100%; min-height: 2.3rem; padding: .3rem 1rem; font-size: .95rem; background: none; color: var(--granate); border: .1rem solid rgba(123, 29, 63, .35); border-radius: 1.5rem; }
	.shop_table td.actions > .button[name="update_cart"]:disabled { opacity: .55; }
	.shop_table td.actions > .button[name="update_cart"]:not(:disabled):hover { background: var(--granate); color: var(--claro); }
	/* Totales: la etiqueta ya está en la columna izquierda (no repetirla). */
	.cart_totals table.shop_table_responsive tr { display: table-row; border: 0; }
	.cart_totals table.shop_table_responsive th, .cart_totals table.shop_table_responsive td { display: table-cell; text-align: left; }
	.cart_totals table.shop_table_responsive td { text-align: right; }
	.cart_totals table.shop_table_responsive td::before { content: none; }
	.cart_totals { padding: 1rem; }
}
@media (min-width: 1025px) { .cart-collaterals { justify-items: end; } .cart_totals { width: 36rem; } }

/* Checkout: dos columnas (datos a la izquierda; pedido y pago a la derecha, siempre a la vista). */
form.checkout_coupon, form.woocommerce-form-login { background: var(--blanco); padding: 1.2rem; margin: 0 0 1.2rem; }
form.checkout_coupon { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
form.checkout_coupon p { margin: 0; }
form.checkout_coupon .form-row-first { flex: 1; min-width: 12rem; float: none; width: auto; }
form.checkout_coupon .form-row-last { float: none; width: auto; }
form.checkout_coupon > p:first-child { width: 100%; }
form.woocommerce-checkout { display: grid; gap: 1.5rem; }
.col2-set .col-1, .col2-set .col-2 { width: 100%; }
#customer_details, #order_review { min-width: 0; }
#customer_details > .col-1, #customer_details .woocommerce-additional-fields, #customer_details .woocommerce-shipping-fields:has(#ship-to-different-address-checkbox:checked), .woocommerce-checkout-review-order {
	background: var(--negro); color: var(--claro); border: .12rem solid var(--granate); padding: 1.3rem 1.2rem .4rem;
}
#customer_details { display: grid; gap: 1.2rem; }
#customer_details .col-2 { display: grid; gap: 1.2rem; }
#customer_details h3, #order_review_heading { color: var(--claro); font-size: 1.6rem; margin: 0 0 1rem; }
#customer_details .woocommerce-shipping-fields h3 { color: var(--negro); }
#customer_details .woocommerce-shipping-fields:has(#ship-to-different-address-checkbox:checked) h3 { color: var(--claro); }
#customer_details label { color: var(--claro); }
#customer_details .woocommerce-shipping-fields:not(:has(#ship-to-different-address-checkbox:checked)) label { color: var(--negro); }
#customer_details a { color: var(--amarillo); }
/* El título vacío "Información adicional" dejaba un hueco negro encima de las notas. */
.woocommerce-additional-fields > h3:empty, .woocommerce-additional-fields .wooccm-additional-fields:empty { display: none; }
#customer_details #ship-to-different-address { font-family: var(--f-texto); font-size: 1.15rem; margin: 0 0 1rem; }
#ship-to-different-address label { display: flex; align-items: center; gap: .6rem; cursor: pointer; }
.pagina-tienda input[type="checkbox"], .pagina-tienda input[type="radio"] { width: 1.2rem; height: 1.2rem; accent-color: var(--granate); flex: none; margin: 0; }
.woocommerce-form__label-for-checkbox, .form-row label.checkbox { display: flex !important; align-items: flex-start; gap: .6rem; cursor: pointer; line-height: 1.4; }
.woocommerce-form__label-for-checkbox input, label.checkbox input { margin-top: .15rem !important; }
#order_review_heading { display: none; }
.woocommerce-checkout-review-order { padding: 1.3rem 1.2rem 1.4rem; }
.woocommerce-checkout-review-order::before { content: "Tu pedido"; display: block; font: 1.6rem/1.15 var(--f-titulo); margin: 0 0 1rem; color: var(--claro); }
.woocommerce-checkout-review-order-table { background: none !important; color: var(--claro); font-size: 1.1rem; }
.woocommerce-checkout-review-order-table th, .woocommerce-checkout-review-order-table td { border-bottom: 1px solid rgba(237, 237, 237, .18) !important; padding: .7rem 0 !important; background: none !important; color: var(--claro); }
.woocommerce-checkout-review-order-table thead th { font-family: var(--f-texto) !important; font-weight: 700 !important; font-size: 1.1rem !important; }
.woocommerce-checkout-review-order-table td:last-child, .woocommerce-checkout-review-order-table th:last-child { text-align: right; }
.woocommerce-checkout-review-order-table .order-total th, .woocommerce-checkout-review-order-table .order-total td { font-size: 1.35rem; color: var(--amarillo); border-bottom: 0 !important; }
.woocommerce-checkout-review-order-table .includes_tax { display: block; font-size: .85rem; opacity: .75; }
#shipping_method { list-style: none; margin: 0; padding: 0; display: grid; gap: .35rem; }
#shipping_method li { display: flex; gap: .5rem; align-items: center; justify-content: flex-end; }
#payment { margin-top: 1.2rem; border: .19rem solid var(--amarillo); padding: 1.2rem; background: var(--negro); }
#payment ul.payment_methods { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: .6rem; }
#payment .wc_payment_method > label { display: inline-flex; align-items: center; gap: .5rem; color: var(--amarillo); font-size: 1.2rem; cursor: pointer; margin-left: .4rem; }
#payment .wc_payment_method img { max-height: 1.6rem; width: auto; display: inline-block; }
#payment .payment_box { margin: .5rem 0 0; padding: .7rem 1rem; background: rgba(237, 237, 237, .08); font-size: 1rem; color: var(--claro); }
#payment .payment_box p:last-child { margin: 0; }
.woocommerce-privacy-policy-text, .woocommerce-privacy-policy-text p { font-size: 1rem; line-height: 1.45; margin-bottom: 1rem; }
#payment .woocommerce-privacy-policy-text, #payment .woocommerce-privacy-policy-text p { color: var(--claro); }
#payment .woocommerce-privacy-policy-text a, .woocommerce-terms-and-conditions-link { color: var(--amarillo); }
.woocommerce-terms-and-conditions-wrapper .form-row { margin-bottom: .8rem; }
.woocommerce-terms-and-conditions-wrapper label { font-size: 1.15rem; color: var(--claro); }
#place_order { width: 100%; min-height: 3.8rem; font-size: 1.4rem; background: var(--amarillo); color: var(--negro); border-radius: 2rem; margin-top: .6rem; }
#place_order:hover { background: var(--claro); color: var(--negro); }
@media (min-width: 1025px) {
	form.woocommerce-checkout { grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); align-items: start; column-gap: 2rem; }
	#customer_details { grid-column: 1; grid-row: 1 / span 3; }
	#order_review { grid-column: 2; position: sticky; top: calc(var(--cab) + 1rem); }
	#customer_details > .col-1, #customer_details .woocommerce-additional-fields, .woocommerce-checkout-review-order { padding: 1.8rem 2rem .8rem; }
	.woocommerce-checkout-review-order { padding-bottom: 1.8rem; }
}

/* ---------- Envío gratis: lo primero del carrito y del checkout, y más visible ----------
   La barra la pinta un fragmento de Code Snippets dentro del formulario del carrito. Con el formulario en
   "display: contents" sus piezas pasan a la rejilla de la página y la barra puede ir arriba del todo (sigue funcionando
   igual cuando WooCommerce recarga el carrito al cambiar cantidades). */
.woocommerce-cart .pagina-tienda > .woocommerce, .woocommerce-checkout .pagina-tienda > .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; }
.woocommerce-cart .woocommerce-cart-form { display: contents; }
.woocommerce-cart .pagina-tienda > .woocommerce > .woocommerce-notices-wrapper { order: -1; }
.krb-envio-gratis { order: -2; font-size: 1.2rem !important; line-height: 1.4 !important; padding: .9rem 1.2rem !important; margin: 0 0 1rem !important; background: var(--blanco) !important; border-left-color: var(--amarillo) !important; border-radius: 0 !important; }
.krb-envio-gratis strong { color: var(--granate); }
.krb-envio-gratis > div { height: .5rem !important; margin-top: .6rem !important; }
.krb-envio-gratis > div > div { background: var(--amarillo) !important; }
@media (min-width: 1025px) { .krb-envio-gratis { font-size: 1.35rem !important; } }

/* ---------- Checkout: "¿Ya eres cliente?", "¿Tienes un cupón?" y "¿Tarjeta regalo?" en una fila de tres ----------
   Al pulsar uno, su formulario se abre debajo, a todo el ancho y compacto. */
.woocommerce-checkout .pagina-tienda > .woocommerce > * { order: 3; }
.woocommerce-checkout .pagina-tienda > .woocommerce > .woocommerce-notices-wrapper { order: 0; }
.woocommerce-checkout .pagina-tienda > .woocommerce > .krb-envio-gratis { order: -2; }
.woocommerce-cart table.shop_table.cart { margin-bottom: 1.5rem; }
.woocommerce-checkout .pagina-tienda > .woocommerce > .woocommerce-form-login-toggle, .woocommerce-checkout .pagina-tienda > .woocommerce > .woocommerce-form-coupon-toggle, .woocommerce-checkout .pagina-tienda > .woocommerce > .ywgc_have_code { order: 1; }
.woocommerce-checkout .pagina-tienda > .woocommerce > form.woocommerce-form-login, .woocommerce-checkout .pagina-tienda > .woocommerce > form.checkout_coupon, .woocommerce-checkout .pagina-tienda > .woocommerce > .ywgc_enter_code { order: 2; }
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info, .woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info, .woocommerce-checkout .ywgc_have_code .woocommerce-info,
.woocommerce-cart .ywgc_have_code .woocommerce-info { margin: 0 0 .6rem; padding: .6rem .9rem; font-size: 1rem; line-height: 1.35; gap: .2rem .6rem; }
@media (min-width: 768px) {
	.woocommerce-checkout .pagina-tienda > .woocommerce { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: .8rem; }
	.woocommerce-checkout .pagina-tienda > .woocommerce > * { grid-column: 1 / -1; }
	.woocommerce-checkout .pagina-tienda > .woocommerce > .woocommerce-form-login-toggle, .woocommerce-checkout .pagina-tienda > .woocommerce > .woocommerce-form-coupon-toggle, .woocommerce-checkout .pagina-tienda > .woocommerce > .ywgc_have_code { grid-column: auto; display: grid; }
	.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info, .woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info, .woocommerce-checkout .ywgc_have_code .woocommerce-info { flex-direction: column; align-items: flex-start; justify-content: center; height: calc(100% - .6rem); }
}
/* Segunda versión: los tres avisos son cajitas iguales en una sola fila, también en el móvil (antes, apilados, bajaban
   el formulario media pantalla). Pregunta pequeña arriba y enlace corto debajo, centrados. */
.woocommerce-checkout .pagina-tienda > .woocommerce { grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: .45rem; }
.woocommerce-checkout .pagina-tienda > .woocommerce > * { grid-column: 1 / -1; }
.woocommerce-checkout .pagina-tienda > .woocommerce > .woocommerce-form-login-toggle, .woocommerce-checkout .pagina-tienda > .woocommerce > .woocommerce-form-coupon-toggle, .woocommerce-checkout .pagina-tienda > .woocommerce > .ywgc_have_code { grid-column: auto; display: grid; align-self: stretch; }
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info, .woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info, .woocommerce-checkout .ywgc_have_code .woocommerce-info {
	display: flex; flex-direction: column; flex-wrap: nowrap; align-items: center; justify-content: center; gap: .1rem; height: auto; min-height: calc(100% - .6rem); text-align: center;
	padding: .5rem .35rem; border-left: 0; border-top: .2rem solid var(--amarillo); font-size: .92rem; line-height: 1.25;
}
.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info a, .woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info a, .woocommerce-checkout .ywgc_have_code .woocommerce-info a { font-size: 1.05rem; }
.woocommerce-checkout .ywgc_have_code .woocommerce-info img, .woocommerce-checkout .ywgc_have_code .woocommerce-info svg { display: none; }
@media (min-width: 1025px) {
	.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info, .woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info, .woocommerce-checkout .ywgc_have_code .woocommerce-info { flex-direction: row; gap: .5rem; padding: .7rem 1rem; font-size: 1.05rem; }
}
/* Menos hueco entre la franja del título y lo primero de la página (carrito y checkout). */
.woocommerce-cart .titulo-pagina + .pagina-tienda, .woocommerce-checkout .titulo-pagina + .pagina-tienda { margin-top: .9rem; }

/* Formularios que se abren: compactos. */
.woocommerce-checkout form.woocommerce-form-login, .woocommerce-checkout form.checkout_coupon, .ywgc_enter_code { padding: .8rem 1rem !important; margin: 0 0 .8rem !important; font-size: 1rem; }
.woocommerce-checkout form.woocommerce-form-login > p:first-child { margin: 0 0 .6rem; }
.woocommerce-checkout form.woocommerce-form-login .form-row { margin-bottom: .6rem; }
.woocommerce-checkout form.woocommerce-form-login input.input-text, .woocommerce-checkout form.checkout_coupon input.input-text, .ywgc_enter_code input.input-text { min-height: 2.6rem !important; padding: .35rem .9rem !important; font-size: 1rem !important; }
.woocommerce-checkout form.woocommerce-form-login .button, .woocommerce-checkout form.checkout_coupon .button, .ywgc_enter_code .button { padding: .55em 1.1em; font-size: 1rem; }
.woocommerce-checkout form.woocommerce-form-login .lost_password { margin: 0; font-size: .95rem; }
@media (min-width: 768px) {
	.woocommerce-checkout form.woocommerce-form-login { display: grid; grid-template-columns: 1fr 1fr auto; gap: 0 .8rem; align-items: end; }
	.woocommerce-checkout form.woocommerce-form-login[style*="none"] { display: none !important; }
	.woocommerce-checkout form.woocommerce-form-login > p:first-child, .woocommerce-checkout form.woocommerce-form-login .lost_password { grid-column: 1 / -1; }
	.woocommerce-checkout form.woocommerce-form-login .form-row-first, .woocommerce-checkout form.woocommerce-form-login .form-row-last { float: none; width: auto; }
	.woocommerce-checkout form.woocommerce-form-login .clear { display: none; }
}

/* Casillas del checkout (condiciones, novedades, crear cuenta, otra dirección): mismo tamaño de letra, y el asterisco
   pegado al texto. */
.pagina-tienda .woocommerce-form__label-for-checkbox, .pagina-tienda .form-row label.checkbox { display: block !important; position: relative; padding-left: 1.85rem; font-size: 1.05rem !important; line-height: 1.4; }
.pagina-tienda .woocommerce-form__label-for-checkbox input[type="checkbox"], .pagina-tienda .form-row label.checkbox input[type="checkbox"] { position: absolute; left: 0; top: .1rem; margin: 0 !important; }
.pagina-tienda .woocommerce-form__label-for-checkbox abbr.required { margin-left: -.25em; text-decoration: none; }
.woocommerce-privacy-policy-text, .woocommerce-privacy-policy-text p { font-size: 1rem !important; }

/* Tarjeta regalo (YITH) en el checkout y el carrito: integrada como el resto de avisos. */
.ywgc_have_code:empty, .ywgc_have_code:not(:has(*)) { display: none; }
.ywgc_enter_code { background: var(--blanco); padding: 1.2rem; margin: 0 0 1.2rem; border-left: .3rem solid var(--amarillo); }
.ywgc_enter_code > div { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; }
.ywgc_enter_code > div > p:first-child { width: 100%; margin: 0 0 .2rem; font-weight: 700; }
.ywgc_enter_code .form-row { margin: 0 !important; float: none !important; width: auto !important; }
.ywgc_enter_code .form-row-first { flex: 1; min-width: 12rem; }
.ywgc_enter_code input { border-radius: 1.5rem !important; background: var(--claro) !important; border: .12rem solid transparent !important; min-height: 3rem; padding: .5rem 1rem !important; width: 100%; outline: none; }

/* Pedido recibido */
.woocommerce-thankyou-order-received { font: 1.6rem/1.3 var(--f-titulo); color: var(--granate); }
ul.order_details { list-style: none; margin: 0 0 2rem; padding: 1.2rem; background: var(--blanco); display: grid; gap: .8rem; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); }
ul.order_details li { font-size: .95rem; text-transform: uppercase; color: var(--gris); }
ul.order_details li strong { display: block; text-transform: none; font-size: 1.2rem; color: var(--negro); }
.woocommerce-order-details, .woocommerce-customer-details { margin-top: 2rem; }
.woocommerce-order-details__title, .woocommerce-column__title { font-size: 1.6rem; }
.woocommerce-customer-details address { font-style: normal; background: var(--blanco); padding: 1.2rem; line-height: 1.6; }

/* Mi cuenta */
.woocommerce-account .pagina-tienda > .woocommerce { display: grid; gap: 1.5rem; }
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.woocommerce-MyAccount-navigation a { display: block; padding: .55rem 1rem; background: var(--blanco); color: var(--negro); text-decoration: none; font-weight: 700; }
.woocommerce-MyAccount-navigation .is-active a, .woocommerce-MyAccount-navigation a:hover { background: var(--granate); color: var(--claro); }
.woocommerce-MyAccount-content { background: var(--blanco); padding: 1.4rem; min-width: 0; }
@media (min-width: 1025px) {
	.woocommerce-account.logged-in .pagina-tienda > .woocommerce { grid-template-columns: 18rem 1fr; align-items: start; }
	.woocommerce-MyAccount-navigation ul { display: grid; }
}
#customer_login { display: grid; gap: 2rem; }
#customer_login > div { background: var(--blanco); padding: 1.6rem; }
@media (min-width: 768px) { #customer_login { grid-template-columns: 1fr 1fr; } }
#customer_login h2 { font-size: 1.8rem; }
.woocommerce-form-login .woocommerce-form-login__rememberme { margin: .4rem 0 1rem; }

/* Páginas de texto (legales) */
.texto-legal { max-width: 60rem; text-align: justify; }
.titulo-legal { text-align: left; width: min(60rem, 100% - 2 * var(--margen)); margin-inline: auto; }
.titulo-legal + .texto-legal { margin-top: 1.2rem; }
@media (max-width: 767px) {
	.texto-legal, .titulo-legal { width: calc(100% - 1.25rem); }
}
.texto-legal h2 { font-size: 1.6rem; margin-top: 1.6em; }
.texto-legal h3 { font-size: 1.3rem; margin-top: 1.4em; }
.texto-legal ul, .texto-legal ol { padding-left: 1.3em; }
.texto-legal table { border-collapse: collapse; width: 100%; font-size: 1rem; }
.texto-legal td, .texto-legal th { border: 1px solid var(--linea); padding: .4rem .6rem; }

/* 404 */
.no-encontrada { display: grid; gap: 2rem; align-items: center; }
.no-encontrada-codigo { font: 4rem/1 var(--f-titulo); color: var(--granate); margin: 0; }
.no-encontrada h1 { font-size: var(--titulo); }
.no-encontrada-botones { display: flex; flex-wrap: wrap; gap: 1.2rem; align-items: center; }
@media (min-width: 768px) { .no-encontrada { grid-template-columns: 1.2fr 1fr; } }

/* =====================================================================================================
   PÁGINAS DE CONTENIDO (historia, vaca tudanca, contacto)
   ===================================================================================================== */
.cabecera-foto { position: relative; display: grid; place-items: center; min-height: 26rem; overflow: hidden; background: var(--negro); }
.cabecera-foto-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cabecera-foto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(rgba(0, 0, 0, .25), rgba(0, 0, 0, .45)); }
.cabecera-foto-titulo { position: relative; z-index: 1; color: var(--claro); font-size: 3rem; text-align: center; margin: 0; padding: 0 var(--margen); text-shadow: 0 .2rem 1rem rgba(0, 0, 0, .4); }
@media (min-width: 768px) { .cabecera-foto { min-height: 30rem; } .cabecera-foto-titulo { font-size: 3.6rem; } }
@media (min-width: 1025px) { .cabecera-foto { min-height: min(calc(100svh - var(--cab)), 52rem); } .cabecera-foto-titulo { font-size: 5rem; } }

.historia-intro .tierra-principal { padding-top: 0; }
.antetitulo { text-align: center; color: var(--granate); margin: 0 0 .2rem; font-size: 1.2rem; }
.linea-tiempo .titulo-seccion { margin-bottom: 1.5em; }
.hitos { list-style: none; margin: 0; padding: 0; display: grid; gap: 2.5rem; }
.hito { display: grid; gap: 1rem; justify-items: center; text-align: center; }
/* Dibujos de las herramientas: todos a la misma altura (los alargados, como la cebilla o el campano, salían enormes).
   En el móvil, como en la web de siempre: grandes, con la línea discontinua entre uno y otro y el texto justificado. */
.hito-imagen img { height: 17rem; width: auto; max-width: 19rem; object-fit: contain; }
.hito-ano { letter-spacing: .3em; }
.hito-texto { text-align: justify; }
.hito-texto .hito-ano, .hito-texto .hito-titulo { text-align: center; }
@media (max-width: 767px) {
	.hitos { gap: 0; }
	.hitos .hito-linea { display: block; width: 19rem; margin: 1.5rem auto; opacity: .7; }
	.hitos .hito-linea img { width: 100%; }
	.hito:last-child { margin-bottom: 0; }
}
.proceso .hito-imagen img { width: 100%; height: auto; max-width: none; aspect-ratio: 3 / 2; object-fit: cover; }
.hito-ano { color: var(--granate); font-size: 1.15rem; margin: 0; }
.hito-titulo { font-size: 1.5rem; margin: 0 0 .5rem; }
.hito-texto p:last-child { margin-bottom: 0; }
.hito-linea { display: none; }
@media (min-width: 768px) {
	.hitos { gap: 0; }
	.hito { grid-template-columns: 1fr 20rem 1fr; column-gap: 2.5rem; align-items: center; justify-items: stretch; text-align: left; }
	.hito-imagen { grid-column: 1; grid-row: 1; justify-self: end; }
	.hito-texto { grid-column: 2; grid-row: 1; }
	.hito-par .hito-imagen { grid-column: 3; justify-self: start; }
	.hito-par .hito-texto { text-align: right; }
	.hito-imagen img { height: 13rem; max-width: 15rem; }
	.hito-linea { display: block; grid-column: 2; grid-row: 2; justify-self: center; width: 12rem; opacity: .7; margin: 1rem 0; }
	.hito-par .hito-linea { justify-self: center; }
	.hito-linea img { width: 100%; }
	.proceso .hito { grid-template-columns: 1fr 1fr; column-gap: 3rem; }
	.proceso .hito-imagen { grid-column: 1; justify-self: end; width: 100%; max-width: 26rem; }
	.proceso .hito-texto { grid-column: 2; max-width: 22rem; }
	.proceso .hito-par .hito-imagen { grid-column: 2; justify-self: start; }
	.proceso .hito-par .hito-texto { grid-column: 1; justify-self: end; }
	.proceso .hito-linea { grid-column: 1 / -1; }
}
@media (min-width: 1025px) {
	.linea-tiempo { width: 75rem; }
	.hito { grid-template-columns: 1fr 22.5rem 1fr; column-gap: 3.75rem; }
	.hito-titulo { font-size: 1.75rem; }
	.hito-linea { width: 14rem; }
	.hito-imagen img { height: 14.5rem; max-width: 16rem; }
	.proceso .hito-imagen { max-width: 25rem; }
}

.cita { position: relative; margin: 0 auto; max-width: 52rem; border: .19rem solid var(--granate); padding: 2rem 1.6rem 1.6rem; text-align: center; font-style: italic; font-size: 1.25rem; line-height: 1.5; }
.cita .icono { position: absolute; top: -1.1rem; left: 50%; transform: translateX(-50%); font-size: 2rem; color: var(--granate); background: var(--claro); padding: 0 .4rem; width: 2.8rem; }
.cita p { margin: 0; }
@media (min-width: 1025px) { .cita { font-size: 1.4rem; padding: 2.4rem 3rem 2rem; } }

.texto-centrado { max-width: 62rem; text-align: center; }
.preguntas { max-width: 62rem; }
.pregunta { border-bottom: .12rem solid var(--granate); }
.pregunta summary { list-style: none; display: flex; align-items: center; gap: .8rem; cursor: pointer; padding: .8rem .2rem; }
.pregunta summary::-webkit-details-marker { display: none; }
.pregunta summary::before { content: ""; width: 0; height: 0; border-style: solid; border-width: .35rem 0 .35rem .55rem; border-color: transparent transparent transparent var(--granate); transition: transform .2s; flex: none; }
.pregunta[open] summary::before { transform: rotate(90deg); }
.pregunta summary h3 { font-size: 1.3rem; margin: 0; }
.pregunta summary:hover h3 { color: var(--granate); }
.pregunta-respuesta { padding: 0 1.4rem 1rem; }
.pregunta-respuesta p { margin: 0; }

.contacto { display: grid; gap: 2rem; align-items: center; margin-top: 1.5rem; }
/* La foto es cuadrada: se ve entera, sin recortar. */
.contacto-foto img { width: 100%; aspect-ratio: 1; object-fit: cover; }
.datos { margin: 0; display: grid; gap: 1.4rem; text-align: center; }
.datos dt { font: 1.25rem/1.2 var(--f-titulo); color: var(--granate); margin-bottom: .35rem; }
.datos dd { margin: 0; }
.datos a { display: inline-flex; align-items: center; gap: .5rem; color: var(--negro); text-decoration: none; font-size: 1.2rem; }
.datos a:hover { color: var(--granate); }
.datos .icono { color: var(--granate); font-size: 1.2em; }
.datos .horario { display: inline-flex; align-items: flex-start; gap: .5rem; font-size: 1.2rem; line-height: 1.45; text-align: left; }
.datos .horario .icono { margin-top: .15em; }
@media (min-width: 768px) { .contacto { grid-template-columns: 1fr 1fr; gap: 3rem; } }
@media (min-width: 1025px) { .contacto { grid-template-columns: 40rem 1fr; gap: 6rem; } .datos dt { font-size: 1.35rem; } .datos a { font-size: 1.2rem; } }
/* Formulario y mapa compactos: en el ordenador caben en una sola pantalla. */
.contacto-formulario { max-width: 61rem; }
.contacto-formulario .titulo-seccion { margin-bottom: .7em; }
.formulario-contacto { gap: .55rem; }
.formulario-contacto .campo { margin: 0; }
.formulario-contacto label { display: block; font-size: 1rem; line-height: 1.3; margin-bottom: .2rem; }
.formulario-contacto input[type="text"], .formulario-contacto input[type="email"], .formulario-contacto textarea { background: var(--blanco); border: .12rem solid var(--gris-claro); border-radius: .4rem; padding: .5rem 1rem; font-size: 1.05rem; }
.formulario-contacto textarea { height: 6.5rem; min-height: 4rem; resize: vertical; }
.formulario-contacto .casilla { font-size: 1rem; }
.formulario-contacto .formulario-mensaje { min-height: 0; }
.donde-titulo { text-align: center; font-size: 1.6rem; margin: 1.6rem 0 .8rem; }
.formulario-contacto input:focus, .formulario-contacto textarea:focus { border-color: var(--granate); }
.formulario-contacto .formulario-mensaje.ok { color: var(--granate); }
.formulario-contacto .formulario-mensaje.error { color: #b3261e; }
.mapa { position: relative; aspect-ratio: 3 / 1; width: 100%; background: var(--blanco) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40'%3E%3Cpath d='M0 20h40M20 0v40' stroke='%23e4e0d8' stroke-width='1'/%3E%3C/svg%3E"); display: grid; place-items: center; }
.mapa iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.mapa-aviso { text-align: center; padding: 1rem; }
.mapa-aviso p { font-size: 1.05rem; margin-bottom: .6rem; }
.mapa-aviso .icono { color: var(--granate); }
.mapa-nota { font-size: .95rem !important; color: var(--gris); margin: .6rem 0 0 !important; }
@media (max-width: 767px) {
	.mapa { aspect-ratio: 4 / 3; }
	.datos { gap: 1rem; }
	.datos dt { font-size: 1.1rem; margin-bottom: .2rem; }
	.datos a, .datos .horario { font-size: 1rem; }
	.titulo-simple { margin-top: .8rem; }
}

.pago-seguro { text-align: center; margin-top: 1.4rem; }
.pago-seguro img { width: 26rem; max-width: 100%; margin: 0 auto; }
.no-encontrada-imagen img { width: 100%; }

/* Desplegables de país y provincia: siempre el nativo del navegador. Algún plugin carga la librería select2 por su
   cuenta; se oculta su caja y se muestra el desplegable real (el valor se sincroniza solo). */
.pagina-tienda .select2-container { display: none !important; }
.pagina-tienda select.select2-hidden-accessible { position: static !important; width: 100% !important; height: auto !important; min-height: 3rem; margin: 0 !important; clip: auto !important; clip-path: none !important; overflow: visible !important; white-space: normal !important; border: .12rem solid transparent !important; padding: .55rem 2.6rem .55rem 1rem !important; }
.shop_table .coupon input#coupon_code { background-color: var(--blanco); border-color: var(--gris-claro); }
[tabindex="-1"]:focus { outline: none; }

#customer_login form.woocommerce-form-login, #customer_login form.woocommerce-form-register { background: none; padding: 0; margin: 0; }
.password-input { position: relative; display: block; }
.show-password-input { position: absolute; right: .9rem; top: 50%; transform: translateY(-50%); width: 1.6rem; height: 1.6rem; padding: 0; border: 0; background: var(--gris) ; cursor: pointer; -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'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%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'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center / contain no-repeat; }
.show-password-input.display-password { background: var(--granate); }
.show-password-input::after { content: none !important; }
.woocommerce-Tabs-panel .wp-video, .woocommerce-Tabs-panel video, .woocommerce-Tabs-panel iframe { max-width: min(100%, 26rem) !important; margin: 0 auto 1.5rem; display: block; }
/* Galería de otros plugins (packs): igual que la propia. */
.galeria-ajena .woocommerce-product-gallery__wrapper { margin: 0; }
.galeria-ajena .woocommerce-product-gallery__image img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: .9rem; }
.galeria-ajena .woocommerce-product-gallery__image a { display: block; cursor: zoom-in; }
/* Tarjeta regalo (YITH): importes y datos del regalo con el estilo de la web. */
.gift-cards_form .gift-cards-list { display: flex; flex-wrap: wrap; gap: .5rem; margin: .4rem 0 1.4rem; }
.gift-cards_form .ywgc-amount-buttons { min-width: 5.2rem; min-height: 2.8rem; padding: .3rem .9rem; border: .12rem solid var(--granate) !important; border-radius: 2rem !important; background: var(--blanco) !important; color: var(--granate) !important; font: 700 1.1rem/1 var(--f-texto) !important; cursor: pointer; }
.gift-cards_form .ywgc-amount-buttons.selected_button, .gift-cards_form .ywgc-amount-buttons:hover { background: var(--granate) !important; color: var(--claro) !important; }
.gift-cards_form h3, .gift-cards_form .ywgc_select_amount_title { font-size: 1.5rem; }
.gift-cards_form h5 { font: 700 1.05rem/1.2 var(--f-texto); text-transform: uppercase; letter-spacing: .04em; color: var(--granate); margin: 1.2rem 0 .6rem; }
.gift-cards_form .clearfix { display: grid; gap: .3rem; margin-bottom: .8rem; }
.gift-cards_form .clearfix label { font-size: 1.05rem; }
.gift-cards_form input[type="text"], .gift-cards_form input[type="email"], .gift-cards_form textarea { width: 100% !important; min-height: 3rem; padding: .55rem 1rem; border: .12rem solid var(--gris-claro) !important; border-radius: .5rem; background: var(--blanco); font-size: 1.1rem; float: none !important; }
.gift-cards_form textarea { min-height: 6rem; }
.gift-cards_form .gift_card_template_button { display: flex; flex-wrap: wrap; gap: .75rem 1.2rem; margin-top: 1.4rem; }
/* Tarjeta regalo, segunda pasada: título del importe encima, importes centrados y del mismo ancho, y todos los campos
   iguales (ancho, alto, letra y etiqueta a la izquierda), con menos aire entre bloques. */
.gift-cards_form .gift-cards-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; margin: .4rem 0 1.2rem; }
.gift-cards_form .gift-cards-list > h3, .gift-cards_form .gift-cards-list > .ywgc_select_amount_title { grid-column: 1 / -1; margin: 0 0 .2rem; text-align: center; }
.gift-cards_form .gift-cards-list .ywgc-amount-buttons { width: 100%; min-width: 0; margin: 0 !important; display: grid; place-items: center; }
@media (min-width: 768px) { .gift-cards_form .gift-cards-list { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.gift-cards_form > h3, .gift-cards_form h3:not(.gift-cards-list h3) { margin: 1.2rem 0 .4rem; }
.gift-cards_form .gift-card-content-editor { gap: 0; margin-bottom: .6rem; }
.gift-cards_form h5 { margin: 1rem 0 .5rem !important; }
.gift-cards_form .gift-card-content-editor > h5:first-child, .gift-cards_form .ywgc_recipient_info_title { margin-top: .2rem !important; }
.gift-cards_form .clearfix { display: block; margin: 0 0 .6rem; }
.gift-cards_form .clearfix label { display: block; text-align: left; line-height: 1.3; margin: 0 0 .25rem; font-size: 1.05rem; }
.gift-cards_form input[type="text"], .gift-cards_form input[type="email"], .gift-cards_form textarea { display: block; box-sizing: border-box; width: 100% !important; max-width: none !important; min-height: 2.8rem; height: 2.8rem; padding: .4rem 1rem !important; font: 500 1.05rem/1.4 var(--f-texto) !important; border-radius: .5rem; margin: 0 !important; }
.gift-cards_form textarea { height: 6.5rem; resize: vertical; }
.descripcion-categoria { max-width: 60rem; margin: 3rem auto 0; text-align: center; }
.descripcion-categoria .term-description { margin: 0; }
/* Vídeos de YouTube ligeros: miniatura y botón; el reproductor se carga al pulsar. */
.video-ligero { position: relative; display: block; width: 100%; max-width: 46rem; margin: 0 auto 1.5rem; padding: 0; border: 0; border-radius: .6rem; overflow: hidden; background: #000; cursor: pointer; aspect-ratio: 16 / 9; }
.video-ligero img { width: 100%; height: 100%; object-fit: cover; opacity: .9; transition: opacity .2s; }
.video-ligero:hover img { opacity: 1; }
.video-ligero-boton { position: absolute; left: 50%; top: 50%; width: 4.2rem; height: 2.9rem; transform: translate(-50%, -50%); border-radius: .8rem; background: rgba(123, 29, 63, .92); }
.video-ligero-boton::after { content: ""; position: absolute; left: 52%; top: 50%; transform: translate(-50%, -50%); border-style: solid; border-width: .65rem 0 .65rem 1.1rem; border-color: transparent transparent transparent #fff; }
.video-ligero iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; max-width: none !important; margin: 0 !important; }
/* Vídeos verticales (Shorts) metidos en una caja con su proporción ("padding-top: 177,78 %"): la miniatura llena la caja
   (antes quedaba debajo y dejaba un hueco en blanco de su alto). La miniatura de YouTube es 4:3 con bandas negras y, al
   recortarla a 9:16, queda justo el vídeo. */
.woocommerce-Tabs-panel div[style*="padding-top"] > .video-ligero, .entry-content div[style*="padding-top"] > .video-ligero { position: absolute; inset: 0; width: 100%; max-width: none; height: 100%; aspect-ratio: auto; margin: 0; }
.woocommerce-Tabs-panel div[style*="max-width"]:has(> div > .video-ligero) { margin: 1rem auto !important; }
.woocommerce-Tabs-panel div[style*="max-width"]:has(> div > .video-ligero) + div[style*="max-width"]:has(> div > .video-ligero) { margin-top: 0 !important; }
@media (min-width: 768px) {
	/* En tablet y ordenador, los vídeos verticales seguidos van uno al lado del otro. */
	.woocommerce-Tabs-panel div[style*="max-width"]:has(> div > .video-ligero) { display: inline-block; width: calc(50% - .6rem); max-width: 18rem !important; margin: 1rem .3rem !important; vertical-align: top; }
	.woocommerce-Tabs-panel div[style*="max-width"]:has(> div > .video-ligero) + div[style*="max-width"]:has(> div > .video-ligero) { margin-top: 1rem !important; }
}

/* Aviso de cookies sin el fundido de 2 s del plugin: aparecía a medias durante segundos tapando media pantalla y
   PageSpeed lo contaba como página aún cargándose (Speed Index de 4,9 s en el Pack de Guiso, 21-oct-2026). */
.cmplz-cookiebanner { animation: none !important; }

/* Pack mensual de carne (una sola ficha, 24-oct-2026): tamaño en tarjetas y cortes con contadores. Con JavaScript, el
   selector de variación de WooCommerce queda oculto y lo mueven las tarjetas; sin él, se ve el selector normal. */
.pm-paso { display: flex; align-items: center; gap: .6rem; margin: 1.2rem 0 .7rem; font: 1.35rem/1.2 var(--f-titulo); color: var(--negro); }
.pm-paso span { display: grid; place-items: center; width: 1.9rem; height: 1.9rem; border-radius: 50%; background: var(--granate); color: var(--claro); font: 700 1.05rem/1 var(--f-texto); flex: none; }
.pm-tamanos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .6rem; margin: 0 0 .4rem; }
.pm-tamano { display: flex; flex-direction: column; align-items: center; gap: .15rem; padding: .8rem .4rem; border: .12rem solid var(--linea); border-radius: .7rem; background: var(--blanco); color: var(--negro); font: inherit; line-height: 1.2; text-align: center; cursor: pointer; }
.pm-tamano strong { font: 1.6rem/1.1 var(--f-titulo); }
.pm-tamano span { font-size: 1rem; color: var(--gris); }
.pm-tamano .pm-tamano-precio { font-weight: 700; font-size: 1.15rem; color: var(--granate); }
.pm-tamano .pm-tamano-kilo { font-size: .9rem; color: var(--gris); }
.pm-precio-kilo { margin-left: .4rem; font-size: 1rem; font-weight: 400; color: var(--gris); }
.pm-tamano:hover { border-color: var(--granate); }
.pm-tamano[aria-pressed="true"] { border-color: var(--granate); box-shadow: inset 0 0 0 .12rem var(--granate); background: #fbf3f6; }
.pm-js table.variations { display: none; }
.pm-cortes[hidden] { display: none; }
.pm-grupo { margin: 0 0 .7rem; padding: .8rem .9rem .5rem; border: 1px solid var(--linea); border-radius: .7rem; background: var(--blanco); transition: border-color .2s; }
.pm-grupo legend { float: left; width: 100%; padding: 0; margin: 0 0 .4rem; font-weight: 700; font-size: 1.1rem; }
.pm-grupo legend + * { clear: both; }
.pm-cuenta { float: right; font-weight: 400; color: var(--gris); }
.pm-grupo-foto { width: 3.9rem; height: 2.6rem; object-fit: cover; border-radius: .35rem; flex: none; }
.pm-grupo legend:has(.pm-grupo-foto) { display: flex; align-items: center; gap: .6rem; }
.pm-grupo legend:has(.pm-grupo-foto) .pm-cuenta { float: none; margin-left: auto; white-space: nowrap; }
.pm-cuenta b { color: var(--granate); }
.pm-grupo.pm-completo .pm-cuenta::after { content: " ✓"; color: var(--granate); font-weight: 700; }
.pm-pieza { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .35rem 0; border-top: 1px solid var(--linea); }
.pm-pieza:first-of-type { border-top: 0; }
.pm-nombre { font-size: 1.05rem; line-height: 1.25; }
.pm-elegida .pm-nombre { font-weight: 700; }
.pm-contador { display: flex; align-items: center; flex: none; }
.pm-contador button { width: 2.4rem; height: 2.4rem; border: .12rem solid var(--granate); background: var(--blanco); color: var(--granate); font: 700 1.3rem/1 var(--f-texto); cursor: pointer; padding: 0; }
.pm-contador button:first-child { border-radius: .4rem 0 0 .4rem; }
.pm-contador button:last-child { border-radius: 0 .4rem .4rem 0; }
.pm-contador button:disabled { opacity: .35; cursor: default; }
.pm-contador input { width: 2.6rem; height: 2.4rem; border: .12rem solid var(--granate); border-left: 0; border-right: 0; border-radius: 0; text-align: center; font-weight: 700; font-size: 1.1rem; -moz-appearance: textfield; appearance: textfield; }
.pm-contador input::-webkit-inner-spin-button, .pm-contador input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.pm-falta { margin: .3rem 0 0; font-size: 1rem; color: #b3261e; }
.pm-falta:empty { display: none; }
.pm-grupo.pm-aviso { border-color: #b3261e; box-shadow: 0 0 0 .15rem rgba(179, 38, 30, .25); }
@media (max-width: 380px) { .pm-tamano strong { font-size: 1.35rem; } .pm-tamano span { font-size: .9rem; } }
/* Cortes del pack en el carrito y en la caja: cada tipo de carne en su línea (en móvil, la regla de los lotes oculta las
   etiquetas y pondría todos los cortes seguidos). */
td.product-name dl.variation:has(> dt.variation-CerdoDuroc) { display: block; margin: .3rem 0 0; }
td.product-name dl.variation:has(> dt.variation-CerdoDuroc) dt { display: block; margin: .35rem 0 0; font-weight: 700; color: var(--negro); }
td.product-name dl.variation:has(> dt.variation-CerdoDuroc) dd, td.product-name dl.variation:has(> dt.variation-CerdoDuroc) dd p { display: block; margin: 0; }
/* Tablas dentro de la descripción larga (la de tamaños del pack mensual, 24-oct-2026). */
.woocommerce-Tabs-panel--description table { width: 100%; max-width: 40rem; border-collapse: collapse; margin: .4rem 0 1rem; }
.woocommerce-Tabs-panel--description th, .woocommerce-Tabs-panel--description td { padding: .45rem .8rem; border: 1px solid var(--linea); text-align: left; vertical-align: top; }
.woocommerce-Tabs-panel--description thead th { background: var(--granate); border-color: var(--granate); color: var(--claro); font-weight: 700; }
.woocommerce-Tabs-panel--description tbody tr:nth-child(even) td { background: #fbf3f6; }
