/*
 Theme Name:   GeneratePress Child (Adhoc Powered)
 Theme URI:    https://generatepress.com
 Description:  Default GeneratePress child theme
 Author:       Tom Usborne
 Author URI:   https://tomusborne.com
 Template:     generatepress
 Version:      0.8
*/

/**
*
* ROOTS / GENERALES
*
**/

:root{
    --color-primary: #9CB83C;
    --color-secondary: #23282d;
    --color-heading: #23282d;
    --color-text: #23282d;
    --color-text-muted: #555;

    /* Millán Sens: medidas compartidas. Los colores son los globales de
       GeneratePress (--contrast, --contrast-2, --contrast-3, --base,
       --base-2, --base-3, --accent, --accent-2). */
    --margen-lateral: clamp(16px, 1.46vw, 28px);   /* rejillas de la home */
    --margen-interior: clamp(20px, 3.8vw, 73px);   /* cabecera, pie y textos */
    --espacio-seccion: clamp(64px, 7.3vw, 140px);
    --separacion-rejilla: clamp(8px, 0.6vw, 12px);
    --radio: 4px;
    --transicion: 0.3s ease;

    /* Campos de formulario (bloque "FORMULARIOS — campos reutilizables"). */
    --campo-alto: 50px;
    --campo-relleno-x: 14px;
    --campo-texto: 15px;
    --campo-borde: color-mix(in srgb, var(--contrast) 20%, transparent);
    --campo-borde-foco: var(--contrast);
    --campo-fondo: var(--base-3);
    --campo-placeholder: color-mix(in srgb, var(--contrast) 42%, transparent);
    --campo-obligatorio: #b3261e;   /* asterisco de campo obligatorio */
    --campo-flecha: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
}

.texto h1, 
.texto h2, 
.texto h3, 
.texto h4, 
.texto h5, 
.texto h6 {
    color: var(--color-heading);
}

.texto p,
.texto li,
.texto span{
    color: var(--color-text);
}

.texto a {
    color: var(--color-primary);
}

/* ============================
* FUNCTIONS.PHP STYLING - ADHOC 
============================ */

/* Eventos/Contador carrito */

.cart-count--hidden { display: none !important; }

@keyframes cart-bump {
    0%   { transform: scale(1); }
    40%  { transform: scale(1.45); }
    70%  { transform: scale(0.9); }
    100% { transform: scale(1); }
}
.cart-count--bump { animation: cart-bump 0.35s ease; }

/* Flechas de GLightbox visibles también en móvil (ficha de producto). */
.gnext,
.gprev {
    display: flex !important;
    opacity: 1 !important;
    visibility: visible !important;
}


/* =========
 WEBSITE CSS
========== */


/* ================================================
   BASE
   ================================================ */

.icono {
    display: inline-block;
    flex-shrink: 0;
    width: 1em;
    height: 1em;
}

a:focus-visible,
button:focus-visible,
input:focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 3px;
}

/* EWWW envuelve las imagenes en <picture> (WebP): dentro de los
   componentes el <picture> no debe crear caja propia. */
.cabecera picture,
.pie picture,
.slider-inicio picture,
.tarjeta-categoria picture,
.tarjeta-producto picture,
.seccion picture {
    display: contents;
}

/* Los botones de interfaz (iconos, puntos, cerrar) no usan el estilo de
   boton de GeneratePress. */
.cabecera button,
.cabecera button:hover,
.cabecera button:focus,
.slider-inicio__punto,
.slider-inicio__punto:hover,
.slider-inicio__punto:focus {
    padding: 0;
    border: 0;
    background: none;
}


/* ================================================
   COMPONENTE: BOTÓN — [adhoc_boton]
   ================================================ */

.boton-contenedor {
    margin: 0;
}

.boton-contenedor--derecha {
    text-align: right;
}

.boton-contenedor--centro {
    text-align: center;
}

.boton {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.6em;
    min-height: 58px;
    padding: 0 24px;
    border-radius: var(--radio);
    background: var(--accent);
    color: var(--base-3);
    font-family: var(--fuente-titulos, inherit);
    font-size: 17px;
    font-weight: 600;
    line-height: 1;
    text-transform: uppercase;
    text-decoration: none;
    transition: background-color var(--transicion);
}

.boton:hover,
.boton:focus-visible {
    background: var(--accent-2);
    color: var(--base-3);
}

.boton .icono {
    width: 18px;
    height: 18px;
    transition: transform var(--transicion);
}

.boton:hover .icono {
    transform: translate(2px, -2px);
}


/* ================================================
   CABECERA — [adhoc_cabecera] (Hook Element)
   ================================================ */

.cabecera {
    --transicion-cabecera: 0.3s ease;
    position: relative;
    z-index: 1000;
    background: var(--base-3);
    color: var(--contrast);
    transition: background-color var(--transicion-cabecera), color var(--transicion-cabecera), box-shadow var(--transicion-cabecera);
}

.cabecera--solida {
    position: sticky;
    top: var(--admin-offset, 0px);
}

.cabecera--transparente {
    position: fixed;
    top: var(--admin-offset, 0px);
    left: 0;
    right: 0;
    background: transparent;
    color: var(--base-3);
}

.cabecera.is-sticky,
.cabecera.is-buscando {
    background: var(--base-3);
    color: var(--contrast);
    box-shadow: 0 1px 0 color-mix(in srgb, var(--contrast) 10%, transparent);
}

.cabecera--transparente.is-sticky,
.cabecera--transparente.is-buscando {
    position: fixed;
    top: var(--admin-offset, 0px);
    right: 0;
    left: 0;
}

.interfaz-abierta body {
    position: fixed;
    right: 0;
    left: 0;
    width: 100%;
    overflow: hidden;
}

.cabecera__interior {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 32px;
    max-width: calc(var(--ancho-maximo, 100%) + 2 * var(--margen-interior));
    margin-inline: auto;
    padding: 20px var(--margen-interior);
}

/* Tamaño del logo (negro y blanco): ancho en --logo-ancho, alto por proporción 155:57. */
.cabecera__logo {
    --logo-ancho: 124px;
    position: relative;
    display: grid;
    place-items: center;
    flex-shrink: 0;
    width: var(--logo-ancho);
    height: auto;
    aspect-ratio: 155 / 57;
    color: inherit;
    text-decoration: none;
}

.cabecera__logo-imagen {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: fill;
    object-position: left center;
    opacity: 1;
    transition: opacity var(--transicion-cabecera);
}

.cabecera__logo-imagen--blanca,
.cabecera--transparente .cabecera__logo-imagen--negra {
    opacity: 0;
}

.cabecera--transparente .cabecera__logo-imagen--blanca {
    opacity: 1;
}

.cabecera--transparente.is-sticky .cabecera__logo-imagen--blanca,
.cabecera--transparente.is-buscando .cabecera__logo-imagen--blanca {
    opacity: 0;
}

.cabecera--transparente.is-sticky .cabecera__logo-imagen--negra,
.cabecera--transparente.is-buscando .cabecera__logo-imagen--negra {
    opacity: 1;
}

.cabecera__logo-texto {
    font-family: var(--fuente-titulos, inherit);
    font-weight: 600;
    text-transform: uppercase;
}

.cabecera__navegacion {
    flex: 1;
    display: flex;
    justify-content: center;
}

.cabecera__menu {
    display: flex;
    flex-wrap: nowrap;
    justify-content: center;
    gap: 8px clamp(20px, 2.2vw, 56px);
    margin: 0;
    padding: 0;
    list-style: none;
}

.cabecera__menu li {
    position: relative;
}

.cabecera__menu a {
    position: relative;
    display: block;
    padding: 8px 0;
    color: inherit;
    font-size: clamp(13px, 0.8vw, 15px);
    font-weight: 500;
    line-height: 1.2;
    white-space: nowrap;
    text-transform: uppercase;
    text-decoration: none;
    transition: color var(--transicion-cabecera);
}

.cabecera__menu > li > a::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 2px;
    height: 1px;
    background: currentColor;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform var(--transicion);
}

.cabecera__menu > li > a:hover::after,
.cabecera__menu > .current-menu-item > a::after,
.cabecera__menu > .current-menu-ancestor > a::after {
    transform: scaleX(1);
}

/* Submenús (escritorio): panel blanco sobrio; texto alineado con el padre y
   subrayado al pasar, como el menú principal. En el panel lateral se resetea. */
.cabecera__menu .sub-menu {
    position: absolute;
    top: calc(100% + 10px);
    left: -22px;
    z-index: 10;
    min-width: 200px;
    margin: 0;
    padding: 10px 0;
    list-style: none;
    border: 1px solid color-mix(in srgb, var(--contrast) 8%, transparent);
    background: var(--base-3);
    color: var(--contrast);
    box-shadow: 0 14px 34px color-mix(in srgb, var(--contrast) 8%, transparent);
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity var(--transicion), visibility var(--transicion), transform var(--transicion);
}

/* Botón de despliegue: solo en el panel lateral (<=1366px). */
.cabecera .cabecera__submenu-boton {
    display: none;
}

/* Puente invisible para no perder el hover en el hueco. */
.cabecera__menu .sub-menu::before {
    content: "";
    position: absolute;
    right: 0;
    bottom: 100%;
    left: 0;
    height: 12px;
}

.cabecera__menu li:hover > .sub-menu,
.cabecera__menu li:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.cabecera__menu .sub-menu a {
    display: block;
    padding: 8px 22px;
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-decoration-line: underline;
    text-decoration-color: transparent;
    text-decoration-thickness: 1px;
    text-underline-offset: 5px;
    transition: text-decoration-color var(--transicion);
}

.cabecera__menu .sub-menu a:hover,
.cabecera__menu .sub-menu a:focus-visible,
.cabecera__menu .sub-menu .current-menu-item > a {
    text-decoration-color: currentColor;
}

.cabecera__acciones {
    display: flex;
    align-items: center;
    gap: 2px;
    margin-left: auto;
}

/* Selector de idioma Polylang — [adhoc_lang_switcher] */
.lang-dropdown,
.lang-dropdown details {
    position: relative;
    flex-shrink: 0;
}

.lang-dropdown .current-lang {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-width: 44px;
    height: 44px;
    margin: 0;
    padding: 0 8px;
    color: inherit;
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.06em;
    list-style: none;
    cursor: pointer;
}

.lang-dropdown--single .current-lang {
    cursor: default;
}

.lang-dropdown summary::-webkit-details-marker {
    display: none;
}

.lang-dropdown summary.current-lang::after {
    content: "";
    width: 6px;
    height: 6px;
    margin: -3px 1px 0 2px;
    border-right: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
    transform: rotate(45deg);
}

.lang-dropdown details[open] summary.current-lang::after {
    margin-top: 3px;
    transform: rotate(225deg);
}

.lang-dropdown img {
    display: block;
    width: 20px;
    height: 14px;
    object-fit: cover;
}

.lang-dropdown .rest-of-langs {
    position: absolute;
    top: calc(100% + 2px);
    right: 0;
    z-index: 20;
    display: grid;
    min-width: 72px;
    padding: 4px;
    background: var(--base-3);
    border: 1px solid color-mix(in srgb, var(--contrast) 10%, transparent);
    box-shadow: 0 8px 24px color-mix(in srgb, var(--contrast) 10%, transparent);
}

.lang-dropdown .lang-item {
    display: flex;
    align-items: center;
    gap: 8px;
    justify-content: center;
    min-height: 36px;
    padding: 6px 8px;
    color: var(--contrast);
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: 0.06em;
    text-decoration: none;
    white-space: nowrap;
}

.lang-dropdown .lang-item:hover,
.lang-dropdown .lang-item:focus-visible {
    background: var(--base-2);
}

.cabecera__accion {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    color: var(--contrast);
    cursor: pointer;
    text-decoration: none;
    transition: color var(--transicion-cabecera), opacity var(--transicion-cabecera);
}

.cabecera--transparente:not(.is-sticky):not(.is-buscando) .cabecera__accion {
    color: var(--base-3);
}

.cabecera__accion:hover {
    opacity: 0.75;
}

.cabecera__iconos {
    position: relative;
    display: block;
    width: 23px;
    height: 23px;
}

.cabecera__icono {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    transition: opacity var(--transicion-cabecera);
}

.cabecera__icono--claro {
    color: var(--base-3);
    opacity: 0;
}

.cabecera__icono--oscuro {
    color: var(--contrast);
    opacity: 1;
}

.cabecera--transparente:not(.is-sticky):not(.is-buscando) .cabecera__icono--claro {
    opacity: 1;
}

.cabecera--transparente:not(.is-sticky):not(.is-buscando) .cabecera__icono--oscuro {
    opacity: 0;
}

.cabecera .cart-count {
    position: absolute;
    top: 0;
    right: -2px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    border-radius: 9px;
    background: var(--accent);
    color: var(--base-3);
    font-size: 11px;
    font-weight: 600;
    line-height: 1;
}

.cabecera__hamburguesa,
.cabecera__cerrar {
    display: none;
}

.cabecera__panel-cabecera,
.cabecera__menu-utilidades,
.cabecera__menu-fondo {
    display: none;
}

/* Buscador editorial modal bajo la cabecera. */
.buscador {
    position: fixed;
    top: calc(var(--admin-offset, 0px) + var(--cabecera-altura, 88px));
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1;
    color: var(--contrast);
}

.buscador[hidden] {
    display: none;
}

.cabecera .buscador__fondo,
.cabecera .buscador__fondo:hover,
.cabecera .buscador__fondo:focus {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    cursor: pointer;
    background: color-mix(in srgb, var(--contrast) 28%, transparent);
    opacity: 0;
    transition: opacity 0.35s ease;
}

.cabecera .buscador.is-abierto .buscador__fondo,
.cabecera .buscador.is-abierto .buscador__fondo:hover,
.cabecera .buscador.is-abierto .buscador__fondo:focus {
    opacity: 1;
}

.buscador__panel {
    position: relative;
    padding: clamp(28px, 2.6vw, 44px) var(--margen-interior) clamp(34px, 3vw, 52px);
    overflow: hidden;
    background: var(--base-3);
    box-shadow: 0 18px 40px color-mix(in srgb, var(--contrast) 12%, transparent);
    clip-path: inset(0 0 100% 0);
    opacity: 0;
    transform: translateY(-14px);
    transform-origin: top;
    transition: clip-path 0.42s ease, opacity 0.28s ease, transform 0.42s ease;
}

.buscador.is-abierto .buscador__fondo,
.buscador.is-abierto .buscador__panel {
    opacity: 1;
}

.buscador.is-abierto .buscador__panel {
    clip-path: inset(0);
    transform: none;
}

.buscador__interior {
    max-width: var(--ancho-maximo, 100%);
    margin-inline: auto;
}

.buscador__encabezado {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: clamp(24px, 2.2vw, 36px);
}

.buscador__titulo {
    margin: 0;
    color: var(--contrast);
    font-size: clamp(20px, 1.45vw, 28px);
    font-weight: 500;
    line-height: 1.15;
}

.buscador__formulario {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: stretch;
    gap: 0;
    border-bottom: 1px solid var(--contrast);
}

.buscador .buscador__campo {
    width: 100%;
    min-width: 0;
    min-height: 64px;
    padding: 10px 24px 12px 0;
    border: 0;
    border-radius: 0;
    appearance: none;
    background-color: transparent !important;
    color: var(--contrast);
    font-family: var(--fuente-titulos, inherit);
    font-size: clamp(21px, 1.75vw, 32px);
    font-weight: 400;
    line-height: 1.15;
    box-shadow: none;
}

.buscador .buscador__campo::placeholder {
    color: var(--contrast-2);
    opacity: 1;
}

.buscador .buscador__campo:focus {
    outline: 0;
}

.buscador .buscador__campo::-webkit-search-cancel-button {
    appearance: none;
}

.buscador__enviar,
.buscador__cerrar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    cursor: pointer;
}

.cabecera .buscador__enviar {
    gap: 12px;
    min-width: 156px;
    padding: 0 24px;
    background: var(--accent);
    color: var(--base-3);
    font-family: var(--fuente-titulos, inherit);
    font-size: 15px;
    font-weight: 600;
    text-transform: uppercase;
    transition: background-color var(--transicion);
}

.cabecera .buscador__enviar:hover,
.cabecera .buscador__enviar:focus-visible {
    background: var(--accent-2);
    color: var(--base-3);
}

.buscador__enviar .icono {
    width: 24px;
    height: 24px;
}

.cabecera .buscador__cerrar,
.cabecera .buscador__cerrar:hover,
.cabecera .buscador__cerrar:focus-visible {
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    color: var(--contrast);
}

.buscador__cerrar .icono {
    width: 28px;
    height: 28px;
}


/* ================================================
   PIE — [adhoc_pie] (Hook Element)
   ================================================ */

/* Pie: jerarquía de texto
   títulos de columna 12px mayúsculas espaciadas > enlaces 14px >
   direcciones 13px atenuadas > barra inferior 12px. */
.pie {
    padding: clamp(48px, 4vw, 72px) var(--margen-interior) 28px;
    background: var(--contrast-3);
    color: var(--base-3);
    font-size: 14px;
    line-height: 1.45;
}

.pie a {
    color: inherit;
    text-decoration: none;
    transition: opacity var(--transicion);
}

.pie a:hover {
    color: inherit;
    opacity: 1;
}

.pie__interior {
    display: grid;
    grid-template-columns: minmax(0, 2.1fr) repeat(4, minmax(0, 1fr));
    gap: 40px 32px;
    max-width: var(--ancho-maximo, 100%);
    margin-inline: auto;
}

.pie__logo img {
    display: block;
    width: 120px;
    height: auto;
}

.pie__titulo {
    margin: 0 0 18px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.12em;
    line-height: 1.3;
    text-transform: uppercase;
}

.pie__tiendas {
    display: grid;
    gap: 22px;
    max-width: 340px;
    margin: 36px 0 0;
    padding: 0;
    list-style: none;
}

.pie__tienda .pie__titulo {
    margin-bottom: 6px;
    font-size: 13px;
    letter-spacing: 0.04em;
}

.pie__tienda .pie__dato {
    color: color-mix(in srgb, var(--base-3) 78%, transparent);
    font-size: 13px;
    line-height: 1.5;
}

.pie__menu {
    display: grid;
    gap: 11px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.pie__menu a {
    color: color-mix(in srgb, var(--base-3) 85%, transparent);
}

.pie__menu a:hover {
    color: var(--base-3);
}

.pie__dato {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 0;
    font-style: normal;
    line-height: 1.3;
}

.pie__dato .icono {
    flex: none;
    width: 14px;
    height: 14px;
    margin-top: 2px;
}

.pie__inferior {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 16px 40px;
    max-width: var(--ancho-maximo, 100%);
    margin-top: 44px;
    margin-inline: auto;
    padding-top: 22px;
    border-top: 1px solid color-mix(in srgb, var(--base-3) 18%, transparent);
    color: color-mix(in srgb, var(--base-3) 70%, transparent);
    font-size: 12px;
}

.pie__copyright {
    margin: 0;
}

/* Crédito de autoría: siempre al extremo derecho de la barra inferior. */
.pie__credito {
    margin: 0 0 0 auto;
}

.pie__credito a {
    color: var(--base-3);
    text-decoration: none;
    transition: opacity var(--transicion);
}

.pie__credito a:hover,
.pie__credito a:focus-visible {
    opacity: 0.75;
}

.pie__menu-inferior {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 28px;
    margin: 0;
    padding: 0;
    list-style: none;
}


/* ================================================
   SECCIONES WPBAKERY (clases en "Extra class name")
   ================================================ */

/* Fila con ancho del sitio y espacio inferior comun. */
.vc_row.seccion {
    box-sizing: border-box;
    max-width: calc(var(--ancho-maximo, 100%) + 2 * var(--margen-lateral));
    margin: 0 auto var(--espacio-seccion);
    padding-inline: var(--margen-lateral);
}

.home .wpb-content-wrapper > .vc_row.seccion:last-child {
    margin-bottom: 0;
}

.seccion > .vc_column_container > .vc_column-inner {
    padding: 0;
}

.seccion .wpb_content_element,
.seccion .wpb_single_image {
    margin-bottom: 0;
}

/* Fila maquetada como rejilla: las columnas WPBakery pasan a celdas. */
.vc_row.seccion-rejilla {
    display: grid;
    gap: var(--separacion-rejilla);
}

.vc_row.seccion-rejilla::before,
.vc_row.seccion-rejilla::after {
    content: none;
}

.seccion-rejilla > .wpb_column {
    width: auto;
    float: none;
    min-height: 0;
}

/* Hero: fila sin margenes laterales. */
.vc_row.seccion-hero {
    margin: 0 0 clamp(56px, 5.7vw, 110px);
}

.seccion-hero > .vc_column_container > .vc_column-inner {
    padding: 0;
}

/* Titulo de seccion */
.seccion .titulo-seccion {
    margin: 0 0 clamp(28px, 2.7vw, 52px);
    padding-left: 10px;
}

.titulo-seccion h2 {
    margin: 0;
}


/* ================================================
   SECCIÓN: VENTAJAS (home)
   ================================================ */

.vc_row.seccion-ventajas {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    row-gap: 48px;
    max-width: 1700px;
    text-align: center;
}

.seccion-ventajas .wpb_single_image .vc_figure,
.seccion-ventajas .wpb_single_image .vc_single_image-wrapper {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.seccion-ventajas .wpb_single_image .vc_single_image-wrapper {
    width: clamp(82px, 6.4vw, 124px);
    aspect-ratio: 1;
    border-radius: 50%;
    background: var(--base);
}

/* Iconos de linea en blanco sobre el circulo. */
.seccion-ventajas .vc_single_image-wrapper img {
    width: 46%;
    height: auto;
    filter: brightness(0) invert(1);
}

.seccion-ventajas .wpb_text_column p {
    max-width: 15em;
    margin: clamp(24px, 2vw, 38px) auto 0;
    color: var(--contrast-2);
    font-size: clamp(16px, 0.95vw, 18px);
    line-height: 1.35;
    text-transform: uppercase;
}


/* ================================================
   SECCIÓN: HOGARES REALES (home)
   ================================================ */

.vc_row.seccion-hogares {
    grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(0, 1.7fr);
}

.seccion-hogares .wpb_single_image .vc_figure,
.seccion-hogares .wpb_single_image .vc_single_image-wrapper {
    display: block;
}

.seccion-hogares .wpb_single_image img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 386 / 591;
    object-fit: cover;
}

.seccion-hogares > .wpb_column:last-child > .vc_column-inner {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    height: 100%;
    padding-left: clamp(16px, 1.9vw, 36px);
}

.seccion-hogares > .wpb_column:last-child > .vc_column-inner > .wpb_wrapper {
    display: flex;
    flex-direction: column;
    gap: clamp(24px, 2vw, 36px);
}

.seccion-hogares h2 {
    margin: 0;
    font-size: clamp(30px, 2.1vw, 40px);
    line-height: 1.08;
}


/* ================================================
   SECCIÓN: PERSONALIZA TU SOFÁ (home)
   ================================================ */

.vc_row.seccion-personaliza {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr);
    align-items: center;
    max-width: none;
    padding-block: clamp(40px, 5vw, 96px);
    padding-inline: max(var(--margen-interior), calc((100% - var(--ancho-maximo, 100%)) / 2));
    background: var(--base-2);
}

.seccion-personaliza > .wpb_column:first-child > .vc_column-inner {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding-left: clamp(0px, 1.5vw, 28px);
}

.seccion-personaliza > .wpb_column:first-child > .vc_column-inner > .wpb_wrapper {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: clamp(24px, 2vw, 36px);
}

.seccion-personaliza h2 {
    margin: 0;
    color: var(--base-3);
}

.seccion-personaliza .wpb_single_image .vc_figure,
.seccion-personaliza .wpb_single_image .vc_single_image-wrapper {
    display: block;
}

.seccion-personaliza .wpb_single_image img {
    display: block;
    width: 100%;
    max-width: 980px;
    height: auto;
    margin-inline: auto;
}


/* ================================================
   SHORTCODE: SLIDER DE PORTADA — [adhoc_slider_inicio]
   ================================================ */

.slider-inicio {
    position: relative;
    height: clamp(560px, 51.5vw, 100svh);
    overflow: hidden;
    background: var(--contrast);
    color: var(--base-3);
}

.slider-inicio__diapositiva {
    position: absolute;
    inset: 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity 1s ease, visibility 1s ease;
}

.slider-inicio__diapositiva.is-activa {
    z-index: 1;
    opacity: 1;
    visibility: visible;
}

/* Degradados para legibilidad de cabecera y titular. */
.slider-inicio__diapositiva::after {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to bottom, color-mix(in srgb, var(--contrast) 35%, transparent), transparent 28%),
        linear-gradient(to top, color-mix(in srgb, var(--contrast) 55%, transparent), transparent 55%);
    pointer-events: none;
}

.slider-inicio__imagen {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.slider-inicio__contenido {
    position: absolute;
    left: 50%;
    width: calc(100% - 2 * var(--margen-interior));
    max-width: var(--ancho-maximo, 100%);
    bottom: clamp(64px, 5.5vw, 105px);
    z-index: 2;
    transform: translateX(-50%);
}

.slider-inicio__titulo {
    max-width: 15em;
    margin: 0 0 clamp(24px, 2.4vw, 46px);
    color: var(--base-3);
    font-family: var(--fuente-titulos, inherit);
    font-size: clamp(30px, 3vw, 58px);
    font-weight: 400;
    line-height: 1.12;
    text-transform: uppercase;
}

.slider-inicio__puntos {
    position: absolute;
    left: 50%;
    bottom: clamp(16px, 1.9vw, 36px);
    z-index: 2;
    display: flex;
    gap: 0;
    transform: translateX(-50%);
}

.slider-inicio__punto {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 26px;
    cursor: pointer;
}

.slider-inicio__punto::before {
    content: "";
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--base-3);
    opacity: 0.5;
    transition: opacity var(--transicion);
}

.slider-inicio__punto.is-activo::before,
.slider-inicio__punto:hover::before {
    opacity: 1;
}


/* ================================================
   SHORTCODE: REJILLA DE CATEGORÍAS — [adhoc_categorias]
   ================================================ */

.rejilla-categorias {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: var(--separacion-rejilla);
    margin: 0;
    padding: 0;
    list-style: none;
}

.tarjeta-categoria {
    position: relative;
    display: block;
    aspect-ratio: 612 / 740;
    overflow: hidden;
    background: var(--base);
    color: var(--base-3);
    text-decoration: none;
    transition: color var(--transicion);
}

.tarjeta-categoria::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background: linear-gradient(to top, color-mix(in srgb, var(--contrast) 45%, transparent), transparent 40%);
    pointer-events: none;
    opacity: 1;
    transition: opacity 0.4s ease;
}

.tarjeta-categoria::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    background: linear-gradient(
        to top,
        color-mix(in srgb, var(--accent-2) 94%, transparent) 0%,
        color-mix(in srgb, var(--accent) 72%, transparent) 24%,
        color-mix(in srgb, var(--accent) 22%, transparent) 52%,
        transparent 72%
    );
    pointer-events: none;
    opacity: 0;
    transform: translateY(5%);
    transition: opacity 0.4s ease, transform 0.4s ease;
}

.tarjeta-categoria__imagen {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.tarjeta-categoria:hover,
.tarjeta-categoria:focus-visible {
    color: var(--base-3);
}

.tarjeta-categoria:hover::before,
.tarjeta-categoria:focus-visible::before {
    opacity: 1;
    transform: none;
}

.tarjeta-categoria:hover::after,
.tarjeta-categoria:focus-visible::after {
    opacity: 0.25;
}

.tarjeta-categoria__nombre {
    position: absolute;
    left: clamp(14px, 1.7vw, 33px);
    right: clamp(14px, 1.7vw, 33px);
    bottom: clamp(14px, 1.8vw, 34px);
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.9em;
    font-family: var(--fuente-titulos, inherit);
    font-size: clamp(16px, 1.4vw, 27px);
    font-weight: 300;
    line-height: 1.1;
    text-align: right;
    text-transform: uppercase;
}

.tarjeta-categoria__nombre .icono {
    width: 0.7em;
    height: 0.7em;
    transition: transform var(--transicion);
}

.tarjeta-categoria:hover .tarjeta-categoria__nombre .icono {
    transform: translate(2px, -2px);
}


/* ================================================
   SHORTCODE: PRODUCTOS — [adhoc_productos] / adhoc_tarjeta_producto()
   ================================================ */

.rejilla-productos {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 40px var(--separacion-rejilla);
}

.tarjeta-producto__enlace {
    display: block;
    color: var(--contrast);
    text-decoration: none;
}

.tarjeta-producto__enlace:hover {
    color: var(--contrast);
}

.tarjeta-producto__imagen {
    display: block;
    aspect-ratio: 456 / 714;
    overflow: hidden;
    background: var(--base-2);
}

.tarjeta-producto__imagen img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: left bottom;
}

.tarjeta-producto__pie {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    padding: clamp(18px, 1.6vw, 30px) clamp(8px, 0.8vw, 16px) 0 8px;
}

.tarjeta-producto__titulo {
    max-width: 7.5em;
    margin: 0;
    font-size: clamp(18px, 1.35vw, 26px);
    font-weight: 400;
    line-height: 1.03;
}

.tarjeta-producto__pie .icono {
    width: 21px;
    height: 21px;
    margin-bottom: 2px;
    transition: transform 0.35s cubic-bezier(0.16, 1, 0.3, 1);
}

.tarjeta-producto__enlace:hover .tarjeta-producto__pie .icono,
.tarjeta-producto__enlace:focus-visible .tarjeta-producto__pie .icono {
    transform: translate(4px, -4px) scale(1.08);
}

.tarjeta-producto__precio {
    display: block;
    margin-top: 10px;
    padding-left: 8px;
    color: var(--contrast-2);
}


/* ================================================
   WOOCOMMERCE — TIENDA Y ARCHIVOS DE CATEGORÍA
   ================================================ */

.post-type-archive-product #page,
.tax-product_cat #page {
    max-width: none;
}

.catalogo {
    width: 100%;
    padding-bottom: var(--espacio-seccion);
}

.catalogo__cabecera,
.catalogo__productos {
    box-sizing: border-box;
    max-width: calc(var(--ancho-maximo, 100%) + 2 * var(--margen-interior));
    margin-inline: auto;
    padding-inline: var(--margen-interior);
}

.catalogo__cabecera {
    padding-top: clamp(24px, 2.5vw, 48px);
    padding-bottom: clamp(28px, 2.6vw, 48px);
}

.catalogo__migas {
    display: flex;
    flex-wrap: wrap;
    gap: 5px 10px;
    margin-bottom: clamp(18px, 1.8vw, 32px);
    color: var(--contrast-2);
    font-size: 13px;
}

.catalogo__migas a {
    color: inherit;
    text-decoration: none;
}

.catalogo__migas a:hover {
    color: var(--contrast);
}

.catalogo__titulo {
    max-width: 17em;
    margin: 0;
    font-size: clamp(26px, 2.4vw, 44px);
    font-weight: 400;
    line-height: 1.02;
    text-transform: uppercase;
}

.catalogo__descripcion {
    margin-top: clamp(22px, 2vw, 34px);
    color: var(--contrast-2);
    font-size: clamp(15px, 1vw, 18px);
    line-height: 1.65;
}

.catalogo__descripcion-texto > :first-child {
    margin-top: 0;
}

.catalogo__descripcion-texto > :last-child {
    margin-bottom: 0;
}

/* Descripción plegada: el texto sigue entero en el HTML; solo se recorta a la vista. */
.catalogo__descripcion.is-plegada .catalogo__descripcion-texto {
    max-height: calc(3 * 1.65em);
    overflow: hidden;
    -webkit-mask-image: linear-gradient(to bottom, #000 45%, transparent);
    mask-image: linear-gradient(to bottom, #000 45%, transparent);
}

.catalogo .catalogo__ver-mas {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-top: 8px;
    padding: 4px 0;
    border: 0;
    border-bottom: 1px solid currentColor;
    background: none;
    color: var(--contrast);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.08em;
    line-height: 1.2;
    text-transform: uppercase;
    cursor: pointer;
    transition: color var(--transicion);
}

.catalogo .catalogo__ver-mas:hover,
.catalogo .catalogo__ver-mas:focus {
    background: none;
    color: var(--contrast-2);
}

.catalogo__ver-mas .icono {
    width: 14px;
    height: 14px;
    transition: transform var(--transicion);
}

.catalogo__ver-mas[aria-expanded="true"] .icono {
    transform: rotate(180deg);
}

.catalogo__categorias {
    display: flex;
    gap: clamp(10px, 0.85vw, 16px);
    margin-top: clamp(24px, 2.2vw, 40px);
    padding-bottom: 6px;
    overflow-x: auto;
    scrollbar-width: thin;
}

/* Selector de categorías: imagen o icono sobre fondo claro y nombre debajo. */
.selector-categoria {
    display: flex;
    flex: 0 0 clamp(96px, 6.5vw, 128px);
    flex-direction: column;
    gap: 8px;
    color: var(--contrast);
    text-decoration: none;
}

.selector-categoria:hover {
    color: var(--contrast);
}

.selector-categoria__imagen {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: color-mix(in srgb, var(--base-2) 32%, var(--base-3));
    transition: box-shadow var(--transicion);
}

.selector-categoria__imagen img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    transition: transform 0.5s ease;
}

.selector-categoria__imagen .icono--categoria {
    width: 34%;
    height: auto;
    color: var(--contrast-2);
    stroke-width: 1.1;
    transition: color var(--transicion), transform 0.5s ease;
}

.selector-categoria:hover .selector-categoria__imagen img,
.selector-categoria:focus-visible .selector-categoria__imagen img,
.selector-categoria:hover .icono--categoria,
.selector-categoria:focus-visible .icono--categoria {
    transform: scale(1.05);
}

.selector-categoria:hover .icono--categoria,
.selector-categoria.is-activa .icono--categoria {
    color: var(--contrast);
}

.selector-categoria.is-activa .selector-categoria__imagen {
    box-shadow: inset 0 0 0 1px var(--contrast);
}

.selector-categoria__nombre {
    font-size: 13px;
    line-height: 1.25;
}

.selector-categoria.is-activa .selector-categoria__nombre {
    font-weight: 600;
}

.catalogo__barra {
    border-top: 1px solid color-mix(in srgb, var(--contrast) 12%, transparent);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    min-height: 80px;
}

.catalogo__barra-derecha {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 24px;
}

.woocommerce .catalogo__abrir-filtros {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    min-height: var(--campo-alto);
    padding: 0;
    color: var(--contrast);
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--contrast);
    border-radius: 0;
    font-size: 14px;
    font-weight: 600;
}

.woocommerce .catalogo__abrir-filtros:hover,
.woocommerce .catalogo__abrir-filtros:focus-visible {
    color: var(--accent);
    background: transparent;
}

.catalogo__abrir-filtros .icono {
    width: 17px;
    height: 17px;
}

.catalogo__filtros-cantidad {
    display: inline-grid;
    place-items: center;
    min-width: 20px;
    height: 20px;
    padding-inline: 5px;
    color: var(--base-3);
    background: var(--accent);
    border-radius: 999px;
    font-size: 11px;
}

.woocommerce .catalogo__barra .woocommerce-result-count,
.woocommerce .catalogo__barra .orden-catalogo {
    float: none;
    margin: 0;
}

.woocommerce .catalogo__barra .woocommerce-result-count {
    color: var(--contrast-2);
    font-size: 13px;
}

.woocommerce .catalogo__barra .orden-catalogo__selector {
    min-width: 190px;
    min-height: var(--campo-alto);
    padding-right: 36px;
    border: 0;
    border-bottom: 1px solid var(--contrast);
    border-radius: 0;
    background-color: transparent;
    font-size: 14px;
    font-weight: 600;
}

/* Selector reutilizable: mantiene el select nativo como fuente de datos. */
.selector-ui {
    position: relative;
    width: 100%;
}

.orden-catalogo .selector-ui {
    min-width: 230px;
}

.selector-ui .selector-ui__origen {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    margin: -1px !important;
    padding: 0 !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.woocommerce .selector-ui__disparador {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 48px;
    padding: 10px 40px 10px 0;
    color: var(--contrast);
    background: transparent;
    border: 0;
    border-bottom: 1px solid color-mix(in srgb, var(--contrast) 35%, transparent);
    border-radius: 0;
    font-size: 14px;
    font-weight: 600;
    text-align: left;
    text-transform: none;
}

.woocommerce .selector-ui__disparador::after {
    content: "";
    position: absolute;
    right: 4px;
    width: 8px;
    height: 8px;
    border-right: 1px solid currentColor;
    border-bottom: 1px solid currentColor;
    transform: translateY(-3px) rotate(45deg);
    transition: transform var(--transicion);
}

.woocommerce .selector-ui.is-abierto .selector-ui__disparador::after {
    transform: translateY(3px) rotate(225deg);
}

.woocommerce .selector-ui__disparador:hover,
.woocommerce .selector-ui__disparador:focus-visible {
    color: var(--accent);
    background: transparent;
    border-bottom-color: var(--accent);
}

.selector-ui__valor {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.selector-ui__lista {
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    z-index: 30;
    width: max-content;
    min-width: 100%;
    max-width: min(320px, 85vw);
    max-height: 260px;
    padding: 6px;
    overflow-y: auto;
    color: var(--contrast);
    background: var(--base-3);
    border: 1px solid color-mix(in srgb, var(--contrast) 12%, transparent);
    box-shadow: 0 14px 36px color-mix(in srgb, var(--contrast) 14%, transparent);
    scrollbar-width: none;
}

.selector-ui__lista::-webkit-scrollbar {
    display: none;
}

.selector-ui__opcion {
    padding: 11px 12px;
    font-size: 14px;
    line-height: 1.25;
    cursor: pointer;
    outline: 0;
}

.selector-ui__opcion:hover,
.selector-ui__opcion:focus-visible {
    background: var(--base-2);
}

.selector-ui__opcion.is-seleccionada {
    color: var(--accent);
    font-weight: 600;
}

.filtros-catalogo {
    inset: 0 auto 0 0;
    width: min(420px, calc(100% - 24px));
    max-width: none;
    height: 100dvh;
    max-height: none;
    margin: 0;
    padding: 0;
    color: var(--contrast);
    background: var(--base-3);
    border: 0;
    box-shadow: 20px 0 60px color-mix(in srgb, var(--contrast) 18%, transparent);
}

.filtros-catalogo[open] {
    display: flex;
    flex-direction: column;
}

.filtros-catalogo::backdrop {
    background: color-mix(in srgb, var(--contrast) 34%, transparent);
}

.filtros-catalogo__cabecera {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 28px 32px;
    border-bottom: 1px solid color-mix(in srgb, var(--contrast) 12%, transparent);
}

.filtros-catalogo__cabecera h2 {
    margin: 0;
    font-size: 22px;
    font-weight: 500;
}

.woocommerce .filtros-catalogo__cerrar {
    display: inline-grid;
    place-items: center;
    width: 40px;
    height: 40px;
    padding: 0;
    color: var(--contrast);
    background: transparent;
    border: 0;
}

.woocommerce .filtros-catalogo__cerrar:hover,
.woocommerce .filtros-catalogo__cerrar:focus-visible {
    color: var(--accent);
    background: transparent;
}

.filtros-catalogo__cerrar .icono {
    width: 22px;
    height: 22px;
}

.filtros-catalogo__formulario {
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 28px;
    padding: 32px;
    overflow-y: auto;
}

.filtros-catalogo__campo {
    display: grid;
    gap: 10px;
    font-size: 13px;
    font-weight: 600;
}

.woocommerce .filtros-catalogo input[type="search"],
.woocommerce .filtros-catalogo input[type="number"],
.woocommerce .filtros-catalogo select {
    width: 100%;
    min-height: 48px;
    padding: 10px 0;
    color: var(--contrast);
    background: transparent;
    border: 0;
    border-bottom: 1px solid color-mix(in srgb, var(--contrast) 35%, transparent);
    border-radius: 0;
}

.filtros-catalogo__grupo-precio {
    margin: 0;
    padding: 0;
    border: 0;
}

.filtros-catalogo__grupo-precio legend {
    margin-bottom: 16px;
    font-size: 13px;
    font-weight: 600;
}

.filtros-precio__valores {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 18px;
    color: var(--contrast-2);
    font-size: 14px;
    font-variant-numeric: tabular-nums;
}

.filtros-precio__pista {
    position: relative;
    height: 22px;
}

.filtros-precio__pista::before,
.filtros-precio__seleccion {
    content: "";
    position: absolute;
    top: 10px;
    right: 0;
    left: 0;
    height: 2px;
    background: color-mix(in srgb, var(--contrast) 18%, transparent);
}

.filtros-precio__seleccion {
    right: var(--precio-derecha, 0%);
    left: var(--precio-izquierda, 0%);
    z-index: 1;
    background: var(--accent);
}

.woocommerce .filtros-precio input[type="range"] {
    position: absolute;
    inset: 0;
    z-index: 2;
    width: 100%;
    height: 22px;
    margin: 0;
    padding: 0;
    appearance: none;
    pointer-events: none;
    background: transparent;
}

.woocommerce .filtros-precio input[type="range"]::-webkit-slider-runnable-track {
    height: 2px;
    background: transparent;
}

.woocommerce .filtros-precio input[type="range"]::-webkit-slider-thumb {
    width: 18px;
    height: 18px;
    margin-top: -8px;
    appearance: none;
    pointer-events: auto;
    background: var(--base-3);
    border: 2px solid var(--accent);
    border-radius: 50%;
    cursor: grab;
}

.woocommerce .filtros-precio input[type="range"]::-moz-range-track {
    height: 2px;
    background: transparent;
}

.woocommerce .filtros-precio input[type="range"]::-moz-range-thumb {
    width: 14px;
    height: 14px;
    pointer-events: auto;
    background: var(--base-3);
    border: 2px solid var(--accent);
    border-radius: 50%;
    cursor: grab;
}

.woocommerce .filtros-precio input[type="range"]:focus-visible::-webkit-slider-thumb {
    outline: 2px solid var(--contrast);
    outline-offset: 3px;
}

.woocommerce .filtros-precio input[type="range"]:focus-visible::-moz-range-thumb {
    outline: 2px solid var(--contrast);
    outline-offset: 3px;
}

.filtros-catalogo__check {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 14px;
}

.filtros-catalogo__check input {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: var(--accent);
}

.filtros-catalogo__acciones {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-top: auto;
    padding-top: 24px;
}

.filtros-catalogo__acciones a {
    color: var(--contrast-2);
    font-size: 13px;
    text-underline-offset: 4px;
}

.woocommerce .filtros-catalogo__acciones button {
    min-height: 48px;
    padding: 12px 20px;
    font-size: 13px;
}

.catalogo__rejilla {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(52px, 5vw, 96px) var(--separacion-rejilla);
}

.tarjeta-producto--catalogo .tarjeta-producto__imagen {
    aspect-ratio: 4 / 5;
    background: var(--base-2);
}

.tarjeta-producto--catalogo .tarjeta-producto__imagen img {
    object-position: center;
    transition: transform 0.5s ease;
}

.tarjeta-producto--catalogo .tarjeta-producto__enlace:hover .tarjeta-producto__imagen img,
.tarjeta-producto--catalogo .tarjeta-producto__enlace:focus-visible .tarjeta-producto__imagen img {
    transform: scale(1.018);
}

/* Tarjeta de catálogo: nombre, resumen, precio, colores y medidas. */
.tarjeta-producto--catalogo .tarjeta-producto__imagen {
    position: relative;
}

.tarjeta-producto__etiqueta {
    position: absolute;
    bottom: 0;
    left: 0;
    padding: 8px 14px;
    background: var(--contrast);
    color: var(--base-3);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0.02em;
}

.tarjeta-producto__datos {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-top: 20px;
}

.tarjeta-producto--catalogo .tarjeta-producto__titulo {
    max-width: none;
    font-family: var(--fuente-texto, inherit);
    font-size: clamp(17px, 1.1vw, 21px);
    font-weight: 600;
    line-height: 1.2;
    text-transform: none;
}

.tarjeta-producto--catalogo .tarjeta-producto__resumen {
    overflow: hidden;
    color: var(--contrast-2);
    font-size: 14px;
    line-height: 1.45;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tarjeta-producto--catalogo .tarjeta-producto__precio {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 4px 10px;
    margin: 6px 0 0;
    padding: 0;
    color: var(--contrast);
    line-height: 1.2;
}

.tarjeta-producto__desde {
    color: var(--contrast-2);
    font-size: 13px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.tarjeta-producto__importe {
    font-size: clamp(18px, 1.2vw, 22px);
    font-weight: 600;
}

.tarjeta-producto__anterior {
    color: var(--contrast-2);
    font-size: 15px;
}

.tarjeta-producto__colores {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-top: 8px;
}

.tarjeta-producto__color {
    width: 22px;
    height: 22px;
    border: 1px solid color-mix(in srgb, var(--contrast) 15%, transparent);
    border-radius: 50%;
    background: var(--color, var(--base-2));
}

.tarjeta-producto__color-resto {
    color: var(--contrast-2);
    font-size: 13px;
}

.tarjeta-producto__medidas {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 22px;
    margin-top: 6px;
    color: var(--contrast);
    font-size: 14px;
}

.tarjeta-producto__medida {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.tarjeta-producto__medida .icono {
    width: 18px;
    height: 18px;
    flex: none;
}

.catalogo .woocommerce-pagination {
    margin-top: clamp(56px, 6vw, 100px);
}

.catalogo .woocommerce-pagination ul.page-numbers {
    display: flex;
    justify-content: center;
    gap: 6px;
    border: 0;
}

.catalogo .woocommerce-pagination ul.page-numbers li {
    border: 0;
}

.catalogo .woocommerce-pagination ul.page-numbers a,
.catalogo .woocommerce-pagination ul.page-numbers span {
    display: grid;
    place-items: center;
    min-width: 42px;
    min-height: 42px;
    padding: 8px;
    border: 1px solid color-mix(in srgb, var(--contrast) 15%, transparent);
    color: var(--contrast);
}

.catalogo .woocommerce-pagination ul.page-numbers .current,
.catalogo .woocommerce-pagination ul.page-numbers a:hover {
    border-color: var(--contrast);
    background: var(--contrast);
    color: var(--base-3);
}


/* ================================================
   WOOCOMMERCE — FICHA DE PRODUCTO (single-product.php)
   ================================================ */

.ficha {
    width: 100%;
    padding-bottom: var(--espacio-seccion);
}

.ficha__producto {
    box-sizing: border-box;
    max-width: calc(var(--ancho-maximo, 100%) + 2 * var(--margen-interior));
    margin-inline: auto;
    padding-inline: var(--margen-interior);
}

.ficha__principal {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(340px, 1fr);
    gap: clamp(32px, 4vw, 88px);
    align-items: start;
    padding-top: clamp(16px, 1.6vw, 32px);
}

/* Galería: rejilla de dos columnas. */
.ficha__galeria {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--separacion-rejilla);
}

.ficha__foto {
    display: block;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: var(--base-2);
    cursor: zoom-in;
}

.ficha__foto:first-child,
.ficha__foto:last-child:nth-child(even) {
    grid-column: 1 / -1;
    aspect-ratio: 4 / 3;
}

.ficha__foto img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
}

.ficha__foto:hover img,
.ficha__foto:focus-visible img {
    transform: scale(1.018);
}

/* Columna de compra, fija bajo la cabecera. */
.ficha__info {
    position: sticky;
    top: calc(var(--admin-offset, 0px) + var(--cabecera-altura, 88px) + 24px);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.ficha__info > * {
    width: 100%;
}

.catalogo__migas.ficha__migas {
    margin-bottom: clamp(14px, 1.2vw, 22px);
}

.ficha__precio-fila {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 14px;
    margin-top: clamp(14px, 1.2vw, 20px);
}

.ficha__etiqueta {
    padding: 5px 10px;
    background: var(--contrast);
    color: var(--base-3);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 0.02em;
}

.ficha__titulo {
    margin: 0;
    font-family: var(--fuente-texto, inherit);
    color: var(--contrast);
    font-size: clamp(26px, 2vw, 38px);
    font-weight: 600;
    line-height: 1.1;
    letter-spacing: 0;
    text-transform: none;
}

.ficha__subtitulo {
    margin: 6px 0 0;
    color: var(--contrast-2);
    font-size: 15px;
    line-height: 1.45;
}

.ficha__precio {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px 12px;
    margin: 0;
    color: var(--contrast);
}

.precio-partido {
    font-size: clamp(28px, 2.1vw, 38px);
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
}

.precio-partido__decimales {
    font-size: 0.6em;
}

.precio-partido__moneda {
    font-size: 0.72em;
}

.ficha__desde {
    color: var(--contrast-2);
    font-size: 13px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.ficha__precio-anterior {
    color: var(--contrast-2);
    font-size: 16px;
}

.ficha__medidas {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 6px 20px;
    margin-top: 16px;
    padding-block: 12px;
    border-block: 1px solid color-mix(in srgb, var(--contrast) 12%, transparent);
    color: var(--contrast);
    font-size: 14px;
}

.ficha__enlace-detalles {
    margin-left: auto;
    color: var(--contrast);
    font-size: 13px;
    text-decoration: underline;
    text-underline-offset: 4px;
}

/* Selectores de variación y colores. */
.ficha__colores,
.ficha__opciones {
    margin-top: 16px;
}

/* Colores informativos en una sola fila: título y muestras. */
.ficha__colores {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 14px;
}

.ficha__colores .ficha__opcion-titulo {
    margin: 0;
}

.ficha__opcion-titulo {
    margin: 0 0 10px;
    color: var(--contrast);
    font-size: 15px;
}

.ficha__opcion-lista {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.ficha .ficha__opcion,
.ficha .ficha__opcion:hover,
.ficha .ficha__opcion:focus {
    min-height: 40px;
    padding: 8px 16px;
    border: 1px solid color-mix(in srgb, var(--contrast) 20%, transparent);
    border-radius: 0;
    background: transparent;
    color: var(--contrast);
    font-family: var(--fuente-texto, inherit);
    font-size: 14px;
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: 0;
    text-transform: none;
    cursor: pointer;
    transition: border-color var(--transicion), box-shadow var(--transicion);
}

.ficha .ficha__opcion:hover {
    border-color: var(--contrast);
}

.ficha .ficha__opcion[aria-pressed="true"] {
    border-color: var(--contrast);
    box-shadow: inset 0 0 0 1px var(--contrast);
}

.ficha .ficha__opcion:disabled {
    cursor: not-allowed;
    opacity: 0.35;
    text-decoration: line-through;
}

.ficha .ficha__opcion--color,
.ficha .ficha__opcion--color:hover,
.ficha .ficha__opcion--color:focus {
    width: 36px;
    height: 36px;
    min-height: 0;
    padding: 0;
    border-color: color-mix(in srgb, var(--contrast) 15%, transparent);
    border-radius: 50%;
    background: var(--color, var(--base-2));
}

/* Color: anillo separado al pasar y al elegir, y check dentro del elegido. */
.ficha .ficha__opcion--color {
    position: relative;
    outline: 1px solid transparent;
    outline-offset: 3px;
    transition: outline-color var(--transicion), transform var(--transicion);
}

.ficha .ficha__opcion--color:hover {
    outline-color: color-mix(in srgb, var(--contrast) 35%, transparent);
}

.ficha .ficha__opcion--color[aria-pressed="true"] {
    outline: 2px solid var(--contrast);
    box-shadow: none;
}

.ficha .ficha__opcion--color::after {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--contrast);
    opacity: 0;
    -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.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 55% 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.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 55% no-repeat;
    transition: opacity var(--transicion);
}

.ficha .ficha__opcion--oscuro::after {
    background: var(--base-3);
}

.ficha .ficha__opcion--color[aria-pressed="true"]::after {
    opacity: 1;
}

.ficha .ficha__opcion--color:disabled {
    opacity: 0.3;
    text-decoration: none;
}

.ficha .ficha__opcion--muestra,
.ficha .ficha__opcion--muestra:hover {
    width: 24px;
    height: 24px;
    cursor: default;
}

.ficha__stock {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 16px 0 0;
    color: var(--contrast);
    font-size: 14px;
    font-weight: 600;
}

.ficha__stock::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--accent);
}

.ficha__stock--pedido::before {
    background: #b07a2a;
}

.ficha__stock--agotado::before {
    background: var(--contrast-2);
}

/* Formulario de compra de WooCommerce. */
.ficha__compra {
    margin-top: 14px;
}

.ficha__compra form.cart {
    margin: 0;
}

.ficha table.variations,
.ficha table.variations tbody,
.ficha table.variations tr,
.ficha table.variations td {
    display: block;
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
}

.ficha table.variations th.label {
    display: none;
}

.ficha__select {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

.ficha table.variations tr:first-child .ficha__opciones {
    margin-top: 0;
}

.ficha .woocommerce-variation-price,
.ficha .woocommerce-variation-description:empty {
    display: none;
}

.ficha .woocommerce-variation-availability {
    margin-top: 12px;
    color: var(--contrast-2);
    font-size: 14px;
}

.ficha form.cart:not(.variations_form),
.ficha .woocommerce-variation-add-to-cart {
    display: flex;
    gap: 10px;
    margin-top: 16px;
}

.ficha .single_variation_wrap .woocommerce-variation:empty,
.ficha .single_variation:empty {
    display: none;
}

.ficha form.cart:not(.variations_form) {
    margin-top: 0;
}

/* Cantidad con botones − / + (functions.php: adhoc_cantidad_botones). */
.ficha .quantity {
    display: flex;
    align-items: stretch;
    float: none;
    margin: 0;
    border: 1px solid color-mix(in srgb, var(--contrast) 20%, transparent);
    background: var(--base-3);
}

.ficha .quantity .qty,
.ficha .quantity .qty:focus {
    width: 44px;
    height: 50px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--contrast);
    font-size: 16px;
    font-weight: 600;
    text-align: center;
    -moz-appearance: textfield;
    appearance: textfield;
}

.ficha .quantity .qty::-webkit-outer-spin-button,
.ficha .quantity .qty::-webkit-inner-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

.ficha .quantity .cantidad__boton,
.ficha .quantity .cantidad__boton:hover,
.ficha .quantity .cantidad__boton:focus {
    display: grid;
    place-items: center;
    width: 40px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--contrast);
    cursor: pointer;
}

.ficha .quantity .cantidad__boton:hover {
    background: color-mix(in srgb, var(--contrast) 6%, transparent);
}

.ficha .quantity .cantidad__boton:disabled {
    cursor: not-allowed;
    opacity: 0.3;
}

.ficha .cantidad__boton .icono {
    width: 16px;
    height: 16px;
}

/* Botón de compra: se sube la especificidad para ganar al morado de WooCommerce. */
.woocommerce .ficha button.single_add_to_cart_button.button,
.woocommerce .ficha button.single_add_to_cart_button.button.alt {
    flex: 1;
    float: none;
    min-height: 52px;
    padding: 0 24px;
    border: 0;
    border-radius: 0;
    background: var(--contrast);
    color: var(--base-3);
    font-size: 16px;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: none;
    transition: background-color var(--transicion), opacity var(--transicion);
}

.woocommerce .ficha button.single_add_to_cart_button.button:hover,
.woocommerce .ficha button.single_add_to_cart_button.button.alt:hover {
    background: var(--contrast-2);
    color: var(--base-3);
}

/* Sin variación elegida: mismo botón, apagado. */
.woocommerce .ficha button.single_add_to_cart_button.button.alt.disabled,
.woocommerce .ficha button.single_add_to_cart_button.button.alt:disabled,
.woocommerce .ficha button.single_add_to_cart_button.button.alt.disabled:hover {
    background: var(--contrast);
    color: var(--base-3);
    cursor: not-allowed;
    opacity: 0.35;
}

.woocommerce .ficha button.single_add_to_cart_button.button.loading {
    opacity: 0.7;
}

/* Estrellas de valoración (adhoc_estrellas): fondo gris y relleno parcial. */
.estrellas {
    --estrella: 16px;
    position: relative;
    display: inline-flex;
    flex: none;
    line-height: 0;
    vertical-align: middle;
}

.estrellas__fondo,
.estrellas__relleno {
    display: flex;
    gap: 2px;
}

.estrellas__fondo {
    color: color-mix(in srgb, var(--contrast) 18%, transparent);
}

.estrellas__relleno {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    overflow: hidden;
    color: var(--contrast);
    white-space: nowrap;
}

.estrellas svg {
    flex: none;
    width: var(--estrella);
    height: var(--estrella);
    fill: currentColor;
}

/* Valoración bajo el título de la ficha. */
.ficha__info > .ficha__valoracion {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    width: auto;
    margin-top: 8px;
    color: var(--contrast);
    font-size: 14px;
    text-decoration: none;
}

.ficha__valoracion-nota {
    font-weight: 600;
}

.ficha__valoracion-total {
    color: var(--contrast-2);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.ficha__valoracion:hover .ficha__valoracion-total {
    color: var(--contrast);
}

/* Opiniones: resumen a la izquierda, lista a la derecha y formulario debajo. */
.opiniones__contenido {
    display: grid;
    grid-template-columns: minmax(240px, 320px) minmax(0, 1fr);
    gap: clamp(40px, 5vw, 96px);
    align-items: start;
}

.opiniones__contenido:not(:has(.opiniones__resumen)) {
    grid-template-columns: minmax(0, 1fr);
}

.opiniones__lista {
    min-width: 0;
}

.opiniones__resumen + .opiniones__lista {
    padding-left: clamp(40px, 5vw, 96px);
    border-left: 1px solid color-mix(in srgb, var(--contrast) 10%, transparent);
    margin-left: calc(-1 * clamp(40px, 5vw, 96px) / 2);
}

.opiniones__resumen {
    box-sizing: border-box;
    position: sticky;
    top: calc(var(--admin-offset, 0px) + var(--cabecera-altura, 88px) + 24px);
}

.opiniones__media {
    display: flex;
    align-items: baseline;
    margin: 0 0 8px;
    color: var(--contrast);
    line-height: 1;
}

.opiniones__nota {
    font-size: clamp(44px, 3.4vw, 60px);
    font-weight: 600;
}

.opiniones__sobre {
    margin-left: 4px;
    color: var(--contrast-2);
    font-size: 20px;
}

.opiniones__resumen .estrellas {
    --estrella: 20px;
}

.opiniones__total {
    margin: 10px 0 22px;
    color: var(--contrast-2);
    font-size: 14px;
}

.opiniones__reparto {
    display: grid;
    gap: 8px;
    margin: 0 0 24px;
    padding: 0;
    list-style: none;
}

.opiniones__fila {
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr) 40px;
    align-items: center;
    gap: 10px;
    margin: 0;
    font-size: 13px;
}

.opiniones__fila-etiqueta {
    color: var(--contrast);
}

.opiniones__barra {
    height: 6px;
    overflow: hidden;
    background: color-mix(in srgb, var(--contrast) 10%, transparent);
}

.opiniones__barra span {
    display: block;
    height: 100%;
    background: var(--contrast);
}

.opiniones__porcentaje {
    color: var(--contrast-2);
    text-align: right;
}

.opiniones .opiniones__escribir,
.opiniones .opiniones__escribir:focus {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 48px;
    padding: 0 24px;
    border: 1px solid var(--contrast);
    border-radius: 0;
    background: var(--contrast);
    color: var(--base-3);
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: none;
    cursor: pointer;
    transition: background-color var(--transicion), color var(--transicion);
}

.opiniones .opiniones__escribir:hover {
    background: var(--base-3);
    color: var(--contrast);
}

.opiniones__items {
    margin: 0;
    padding: 0;
    list-style: none;
}

.opinion {
    margin: 0;
    padding: 22px 0;
    border-bottom: 1px solid color-mix(in srgb, var(--contrast) 10%, transparent);
}

.opinion:first-child {
    padding-top: 0;
}

.opinion__cabecera {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.opinion__fecha {
    color: var(--contrast-2);
    font-size: 13px;
}

.opinion__autor {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 12px;
    margin: 10px 0 6px;
    color: var(--contrast);
    font-size: 15px;
}

.opinion__verificada {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--accent);
    font-size: 13px;
}

.opinion__verificada .icono {
    width: 14px;
    height: 14px;
}

.opinion__pendiente {
    margin: 0 0 6px;
    color: var(--contrast-2);
    font-size: 13px;
    font-style: italic;
}

.opinion__texto {
    color: var(--contrast-2);
    font-size: 15px;
    line-height: 1.6;
}

.opinion__texto p {
    margin: 0;
}

.opiniones__vacio {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 16px 24px;
    padding: 28px;
    background: color-mix(in srgb, var(--base-2) 28%, var(--base-3));
    color: var(--contrast-2);
}

.opiniones__vacio p {
    margin: 0;
}

.opiniones .opiniones__vacio .opiniones__escribir {
    width: auto;
}

/* "Ver más opiniones" y opiniones recién cargadas. */
.opiniones__mas {
    margin-top: 28px;
    text-align: center;
}

.opiniones .opiniones__cargar,
.opiniones .opiniones__cargar:focus {
    box-sizing: border-box;
    min-height: 46px;
    padding: 0 28px;
    border: 1px solid var(--contrast);
    border-radius: 0;
    background: transparent;
    color: var(--contrast);
    font-size: 14px;
    font-weight: 600;
    text-transform: none;
    cursor: pointer;
    transition: background-color var(--transicion), color var(--transicion);
}

.opiniones .opiniones__cargar:hover {
    background: var(--contrast);
    color: var(--base-3);
}

.opiniones .opiniones__cargar.is-cargando {
    cursor: progress;
    opacity: 0.6;
}

.opiniones__mas-estado {
    margin: 10px 0 0;
    color: #b3261e;
    font-size: 13px;
}

.opiniones__mas-estado:empty {
    display: none;
}

.opinion.is-nueva {
    animation: opinion-nueva 0.4s ease both;
}

.opinion:focus {
    outline: none;
}

@keyframes opinion-nueva {
    from {
        opacity: 0;
        transform: translateY(8px);
    }
}

/* Destinos de enlace a opiniones: hueco para la cabecera fija y resalte. */
#opiniones,
.opinion {
    scroll-margin-top: calc(var(--admin-offset, 0px) + var(--cabecera-altura, 88px) + 24px);
}

.opinion.is-destacada {
    animation: opinion-destacada 2.4s ease;
}

@keyframes opinion-destacada {
    0%,
    35% {
        background: color-mix(in srgb, var(--base-2) 45%, var(--base-3));
        box-shadow: -16px 0 0 color-mix(in srgb, var(--base-2) 45%, var(--base-3)), 16px 0 0 color-mix(in srgb, var(--base-2) 45%, var(--base-3));
    }
}

/* Modal "Escribe tu opinión" (<dialog>). */
html.modal-abierto {
    overflow: hidden;
}

.opiniones__modal {
    box-sizing: border-box;
    width: min(600px, calc(100% - 32px));
    max-height: calc(100dvh - 48px);
    margin: auto;
    padding: 0;
    overflow-x: hidden;
    overflow-y: auto;
    border: 0;
    border-radius: 0;
    background: var(--base-3);
    color: var(--contrast);
    box-shadow: 0 24px 60px rgb(0 0 0 / 0.18);
    overscroll-behavior: contain;
}

.opiniones__modal *,
.opiniones__modal *::before,
.opiniones__modal *::after {
    box-sizing: border-box;
}

.opiniones__modal:focus,
.opiniones__modal:focus-visible {
    outline: none;
}

.opiniones__modal[open] {
    animation: modal-entrar 0.26s cubic-bezier(0.16, 1, 0.3, 1);
}

.opiniones__modal::backdrop {
    background: rgb(17 17 17 / 0.5);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
    animation: modal-fondo 0.26s ease;
}

.opiniones__modal.is-cerrando {
    animation: modal-salir 0.18s ease forwards;
}

.opiniones__modal.is-cerrando::backdrop {
    animation: modal-fondo 0.18s ease reverse forwards;
}

@keyframes modal-entrar {
    from {
        opacity: 0;
        transform: translateY(16px) scale(0.98);
    }
}

@keyframes modal-salir {
    to {
        opacity: 0;
        transform: translateY(12px) scale(0.98);
    }
}

@keyframes modal-subir {
    from {
        transform: translateY(100%);
    }
}

@keyframes modal-bajar {
    to {
        transform: translateY(100%);
    }
}

@keyframes modal-fondo {
    from {
        opacity: 0;
    }
}

.opiniones__modal-cabecera {
    position: sticky;
    top: 0;
    z-index: 1;
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center;
    gap: 16px;
    padding: 20px 20px 20px 28px;
    border-bottom: 1px solid color-mix(in srgb, var(--contrast) 10%, transparent);
    background: var(--base-3);
}

.opiniones__modal-cabecera > div {
    grid-column: 2;
}

.opiniones__modal-foto {
    width: 56px;
    height: 56px;
    object-fit: cover;
    background: var(--base-2);
}

.opiniones .opiniones__modal-titulo {
    margin: 0;
    color: var(--contrast);
    font-family: var(--fuente-texto, inherit);
    font-size: 19px;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: 0;
    text-transform: none;
}

.opiniones__modal-producto {
    margin: 3px 0 0;
    color: var(--contrast-2);
    font-size: 14px;
    line-height: 1.3;
}

.opiniones .opiniones__modal-cerrar,
.opiniones .opiniones__modal-cerrar:focus {
    grid-column: 3;
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--contrast);
    cursor: pointer;
    transition: background-color var(--transicion);
}

.opiniones .opiniones__modal-cerrar:hover {
    background: color-mix(in srgb, var(--contrast) 7%, transparent);
    color: var(--contrast);
}

.opiniones__modal-cerrar .icono {
    width: 20px;
    height: 20px;
}

/* Modal de gracias tras publicar. */
.opiniones__gracias {
    width: min(460px, calc(100% - 32px));
    padding: 44px 32px 32px;
    text-align: center;
}

.opiniones__gracias[open] {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.opiniones .opiniones__gracias > .opiniones__modal-cerrar {
    position: absolute;
    top: 12px;
    right: 12px;
}

.opiniones__gracias-icono {
    display: grid;
    place-items: center;
    width: 64px;
    height: 64px;
    margin-bottom: 20px;
    border-radius: 50%;
    background: var(--contrast);
    color: var(--base-3);
    animation: gracias-icono 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) 0.1s both;
}

.opiniones__gracias-icono .icono {
    width: 30px;
    height: 30px;
}

@keyframes gracias-icono {
    from {
        opacity: 0;
        transform: scale(0.4);
    }
}

.opiniones .opiniones__gracias-titulo {
    margin: 0 0 12px;
    color: var(--contrast);
    font-family: var(--fuente-texto, inherit);
    font-size: 22px;
    font-weight: 600;
    line-height: 1.25;
    text-transform: none;
}

.opiniones__gracias .estrellas {
    --estrella: 22px;
    margin-bottom: 14px;
}

.opiniones__gracias-texto {
    margin: 0 0 26px;
    color: var(--contrast-2);
    font-size: 15px;
    line-height: 1.55;
}

.opiniones__gracias-acciones {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    width: 100%;
}

.opiniones .opiniones__gracias-boton,
.opiniones .opiniones__gracias-boton:focus {
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    flex: 1 1 160px;
    min-height: 48px;
    padding: 0 20px;
    border: 1px solid var(--contrast);
    border-radius: 0;
    background: var(--contrast);
    color: var(--base-3);
    font-size: 15px;
    font-weight: 600;
    text-transform: none;
    cursor: pointer;
    transition: background-color var(--transicion), color var(--transicion);
}

.opiniones .opiniones__gracias-boton:hover,
.opiniones .opiniones__gracias-boton--claro,
.opiniones .opiniones__gracias-boton--claro:focus {
    background: var(--base-3);
    color: var(--contrast);
}

.opiniones .opiniones__gracias-boton--claro:hover {
    background: var(--contrast);
    color: var(--base-3);
}

/* Formulario de opinión (dentro del modal). El título va en la cabecera. */
.opiniones__formulario {
    padding: 28px 28px 32px;
}

.opiniones .opiniones__formulario-titulo {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
}

.opiniones .opiniones__formulario .comment-form {
    gap: 24px 16px;
}

/* Puntuación destacada en un recuadro claro. */
.opiniones .comment-form-rating {
    padding: 18px 20px;
    background: color-mix(in srgb, var(--base-2) 28%, var(--base-3));
}

.opiniones .comment-form-rating > label {
    margin-bottom: 2px;
}

.opiniones .comment-form-rating {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 14px;
}

.opiniones .comment-form-rating > label {
    width: 100%;
}

.opiniones .comment-form-rating p.stars {
    order: 1;
}

.opiniones__nota-elegida {
    order: 2;
    color: var(--contrast);
    font-size: 15px;
    font-weight: 600;
}

.opiniones__error {
    order: 3;
    width: 100%;
    margin: 0;
    color: #b3261e;
    font-size: 13px;
}

.woocommerce .opiniones p.stars.is-error {
    animation: estrellas-error 0.4s ease;
}

@keyframes estrellas-error {
    20%,
    60% {
        transform: translateX(-4px);
    }

    40%,
    80% {
        transform: translateX(4px);
    }
}

.opiniones .comment-form .form-submit {
    margin-top: 4px;
}

.woocommerce .opiniones #respond {
    margin: 0;
    padding: 0;
}

.opiniones .opiniones__formulario-titulo {
    margin: 0 0 20px;
    color: var(--contrast);
    font-family: var(--fuente-texto, inherit);
    font-size: 20px;
    font-weight: 600;
    text-transform: none;
}

.opiniones .comment-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 16px;
}

.opiniones .comment-form > * {
    grid-column: 1 / -1;
    margin: 0;
}

.opiniones .comment-form > .comment-form-author,
.opiniones .comment-form > .comment-form-email {
    grid-column: auto;
}

.opiniones .comment-form-cookies-consent {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    color: var(--contrast-2);
    font-size: 13px;
}

.opiniones .comment-form-cookies-consent label {
    margin: 0;
    font-weight: 400;
}

/* Selector de estrellas de WooCommerce (p.stars) con la estrella de Lucide. */
.woocommerce .opiniones p.stars {
    display: flex;
    gap: 4px;
    margin: 0;
}

.woocommerce .opiniones p.stars span {
    display: flex;
    gap: 4px;
}

.woocommerce .opiniones p.stars a {
    width: 34px;
    height: 34px;
    margin: 0;
    color: transparent;
    background: color-mix(in srgb, var(--contrast) 18%, transparent);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z'/%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'%3E%3Cpath d='M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z'/%3E%3C/svg%3E") center / contain no-repeat;
    text-indent: -999em;
    transition: background-color 0.15s ease, transform 0.15s ease;
}

/* WooCommerce pinta su estrella de fuente en ::before con varios selectores
   de estado; se anula en todos para dejar solo la máscara de Lucide. */
.woocommerce .opiniones p.stars a::before {
    content: none !important;
}

.woocommerce .opiniones p.stars a:hover {
    transform: scale(1.12);
}

.woocommerce .opiniones p.stars:hover a,
.woocommerce .opiniones p.stars.selected a.active,
.woocommerce .opiniones p.stars.selected a:not(.active) {
    background: var(--contrast);
}

.woocommerce .opiniones p.stars a:hover ~ a,
.woocommerce .opiniones p.stars.selected a.active ~ a {
    background: color-mix(in srgb, var(--contrast) 18%, transparent);
}

.woocommerce .opiniones p.stars.selected:hover a:hover ~ a {
    background: color-mix(in srgb, var(--contrast) 18%, transparent);
}

.woocommerce .opiniones p.stars.selected:hover a {
    background: var(--contrast);
}

.woocommerce .opiniones #respond input#submit,
.woocommerce .opiniones #respond input#submit:hover {
    width: 100%;
    min-height: 52px;
    padding: 0 32px;
    border: 0;
    border-radius: 0;
    background: var(--contrast);
    color: var(--base-3);
    font-size: 15px;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: none;
}

.woocommerce .opiniones #respond input#submit:hover {
    background: var(--contrast-2);
}


/* Información técnica en desplegables. */
.ficha__informacion,
.ficha__relacionados {
    margin-top: clamp(64px, 6vw, 120px);
}

.ficha__seccion-titulo {
    margin: 0 0 clamp(18px, 1.6vw, 28px);
    font-size: clamp(24px, 1.9vw, 34px);
    font-weight: 400;
    line-height: 1.1;
    text-transform: uppercase;
}

.ficha__bloque {
    border-top: 1px solid color-mix(in srgb, var(--contrast) 12%, transparent);
}

.ficha__bloque:last-child {
    border-bottom: 1px solid color-mix(in srgb, var(--contrast) 12%, transparent);
}

.ficha__bloque > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 22px 0;
    font-size: 18px;
    font-weight: 600;
    list-style: none;
    cursor: pointer;
}

.ficha__bloque > summary::-webkit-details-marker {
    display: none;
}

.ficha__bloque > summary::after {
    content: "+";
    font-size: 24px;
    font-weight: 300;
    line-height: 1;
}

.ficha__bloque[open] > summary::after {
    content: "\2212";
}

.ficha__bloque-contenido {
    padding-bottom: 28px;
}

.ficha__descripcion {
    color: var(--contrast-2);
    font-size: 16px;
    line-height: 1.65;
}

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

.ficha__bloque-contenido > :last-child {
    margin-bottom: 0;
}

/* Dimensiones: cifras con icono. */
.ficha__cifras {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 10px;
    margin: 0;
}

.ficha__cifra {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-items: center;
    column-gap: 14px;
    padding: 18px 20px;
    background: color-mix(in srgb, var(--base-2) 28%, var(--base-3));
}

.ficha__cifra .icono {
    grid-row: 1 / 3;
    width: 26px;
    height: 26px;
    color: var(--contrast-2);
}

.ficha__cifra dt {
    color: var(--contrast-2);
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.ficha__cifra dd {
    margin: 2px 0 0;
    color: var(--contrast);
    font-size: clamp(18px, 1.3vw, 22px);
    font-weight: 600;
    line-height: 1.2;
}

/* Medidas disponibles como etiquetas. */
.ficha__disponibles {
    margin-top: 22px;
}

.ficha__rasgo-etiqueta {
    margin: 0 0 8px;
    color: var(--contrast-2);
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.ficha__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.ficha__chips li {
    margin: 0;
    padding: 7px 14px;
    border: 1px solid color-mix(in srgb, var(--contrast) 18%, transparent);
    color: var(--contrast);
    font-size: 14px;
}

/* Características: rejilla de etiqueta + valor. */
.ficha__rasgos {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0 clamp(24px, 3vw, 56px);
    margin: 0;
}

.ficha__rasgo {
    padding: 16px 0;
    border-top: 1px solid color-mix(in srgb, var(--contrast) 10%, transparent);
}

.ficha__rasgo .ficha__rasgo-etiqueta {
    margin-bottom: 4px;
}

.ficha__rasgo-valor {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 16px;
    margin: 0;
    color: var(--contrast);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.35;
}

.ficha__rasgo-color {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.ficha__rasgo-muestra {
    width: 14px;
    height: 14px;
    border: 1px solid color-mix(in srgb, var(--contrast) 15%, transparent);
    border-radius: 50%;
    background: var(--color, var(--base-2));
}


/* ================================================
   WOOCOMMERCE — CATÁLOGO, CHECKOUT Y MI CUENTA
   ================================================ */

/* Controles y botones compartidos por las plantillas migradas. */
.woocommerce form .form-row {
    margin: 0 0 18px;
    padding: 0;
}

/* ================================================
   FORMULARIOS — campos reutilizables
   Un solo aspecto para todos los campos (WooCommerce, compra, Mi cuenta,
   cupón, opiniones). Medidas y colores en las variables --campo-* de :root.
   Para un formulario nuevo basta la clase .campo / .campo-etiqueta.
   ================================================ */

.campo-etiqueta,
.woocommerce form .form-row label,
.opiniones .comment-form label {
    display: block;
    margin-bottom: 6px;
    color: var(--contrast);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.3;
}

/* Asterisco de obligatorio: rojo y en negrita en todos los formularios. */
.campo-obligatorio,
.woocommerce form .form-row .required,
.woocommerce form .required,
.woocommerce .required,
.opiniones .comment-form .required,
.comment-form .required {
    border: 0;
    color: var(--campo-obligatorio);
    font-weight: 700;
    text-decoration: none;
    cursor: help;
}

/* Campo de una línea, select nativo y select con buscador (selectWoo). */
.campo,
.woocommerce form .form-row .input-text,
.woocommerce form .form-row select,
.woocommerce .carrito__cupon .coupon .input-text,
.opiniones .comment-form input[type="text"],
.opiniones .comment-form input[type="email"],
.woocommerce form .form-row .select2-container--default .select2-selection--single {
    box-sizing: border-box;
    width: 100%;
    height: var(--campo-alto);
    min-height: var(--campo-alto);
    margin: 0;
    padding: 0 var(--campo-relleno-x);
    border: 1px solid var(--campo-borde);
    border-radius: 0;
    background-color: var(--campo-fondo);
    color: var(--contrast);
    font-family: inherit;
    font-size: var(--campo-texto);
    line-height: calc(var(--campo-alto) - 2px);
    box-shadow: none;
    transition: border-color var(--transicion), box-shadow var(--transicion);
}

/* Área de texto: misma caja, alto libre. */
textarea.campo,
.woocommerce form .form-row textarea.input-text,
.opiniones .comment-form textarea {
    box-sizing: border-box;
    width: 100%;
    height: auto;
    min-height: 120px;
    padding: 12px var(--campo-relleno-x);
    border: 1px solid var(--campo-borde);
    border-radius: 0;
    background-color: var(--campo-fondo);
    color: var(--contrast);
    font-family: inherit;
    font-size: var(--campo-texto);
    line-height: 1.5;
    resize: vertical;
}

/* Select nativo con la flecha del tema. */
select.campo,
.woocommerce form .form-row select {
    padding-right: calc(var(--campo-relleno-x) + 24px);
    background-image: var(--campo-flecha);
    background-position: right var(--campo-relleno-x) center;
    background-repeat: no-repeat;
    background-size: 16px;
    -webkit-appearance: none;
    appearance: none;
}

.campo::placeholder,
.woocommerce form .form-row .input-text::placeholder,
.woocommerce .carrito__cupon .coupon .input-text::placeholder,
.opiniones .comment-form input::placeholder,
.opiniones .comment-form textarea::placeholder {
    color: var(--campo-placeholder);
    opacity: 1;
}

/* Foco: borde negro y un anillo fino (visible sin depender del color). */
.campo:focus,
.woocommerce form .form-row .input-text:focus,
.woocommerce form .form-row select:focus,
.woocommerce .carrito__cupon .coupon .input-text:focus,
.opiniones .comment-form input:focus,
.opiniones .comment-form textarea:focus,
.woocommerce form .form-row .select2-container--open .select2-selection--single,
.woocommerce form .form-row .select2-container--focus .select2-selection--single {
    border-color: var(--campo-borde-foco);
    box-shadow: 0 0 0 1px var(--campo-borde-foco);
    outline: none;
}

/* Campos con error de WooCommerce. */
.woocommerce form .form-row.woocommerce-invalid .input-text,
.woocommerce form .form-row.woocommerce-invalid select,
.woocommerce form .form-row.woocommerce-invalid .select2-selection--single {
    border-color: #b3261e;
}

/* selectWoo (país, provincia): texto, flecha y desplegable. El desplegable
   se pinta fuera del formulario (al final del body), por eso va sin ámbito. */
.woocommerce form .form-row .select2-container--default .select2-selection--single .select2-selection__rendered {
    padding: 0;
    color: var(--contrast);
    line-height: calc(var(--campo-alto) - 2px);
}

.woocommerce form .form-row .select2-container--default .select2-selection--single .select2-selection__arrow {
    top: 0;
    right: var(--campo-relleno-x);
    width: 16px;
    height: calc(var(--campo-alto) - 2px);
    background: var(--campo-flecha) center / 16px no-repeat;
}

.woocommerce form .form-row .select2-container--default .select2-selection--single .select2-selection__arrow b {
    display: none;
}

.woocommerce form .form-row .select2-container--open .select2-selection__arrow {
    transform: rotate(180deg);
}

.select2-container--default .select2-dropdown {
    border: 1px solid var(--campo-borde-foco);
    border-radius: 0;
    background: var(--campo-fondo);
    box-shadow: 0 12px 30px rgb(0 0 0 / 0.1);
}

.select2-container--default .select2-search--dropdown {
    padding: 8px;
}

.select2-container--default .select2-search--dropdown .select2-search__field {
    box-sizing: border-box;
    height: 40px;
    padding: 0 12px;
    border: 1px solid var(--campo-borde);
    border-radius: 0;
    background: var(--campo-fondo);
    color: var(--contrast);
    font-size: 14px;
    outline: none;
}

.select2-container--default .select2-search--dropdown .select2-search__field:focus {
    border-color: var(--campo-borde-foco);
}

.select2-container--default .select2-results > .select2-results__options {
    max-height: 260px;
}

.select2-container--default .select2-results__option {
    padding: 10px var(--campo-relleno-x);
    color: var(--contrast);
    font-size: var(--campo-texto);
}

.select2-container--default .select2-results__option.select2-results__option--highlighted[aria-selected],
.select2-container--default .select2-results__option.select2-results__option--highlighted[data-selected] {
    background: color-mix(in srgb, var(--base-2) 35%, var(--base-3));
    color: var(--contrast);
}

.select2-container--default .select2-results__option[aria-selected="true"],
.select2-container--default .select2-results__option[data-selected="true"] {
    background: transparent;
    font-weight: 600;
}

/* Casillas y opciones: color del tema. */
.woocommerce form input[type="checkbox"],
.woocommerce form input[type="radio"],
.opiniones .comment-form input[type="checkbox"] {
    accent-color: var(--contrast);
}

/* Selector de orden del catálogo: estilo propio (subrayado), misma altura. */
.woocommerce .orden-catalogo__selector {
    width: 100%;
    min-height: var(--campo-alto);
    padding: 0 15px;
    border: 1px solid var(--campo-borde);
    border-radius: 0;
    background-color: var(--campo-fondo);
    color: var(--contrast);
    font-size: var(--campo-texto);
    box-shadow: none;
}

.woocommerce .orden-catalogo__selector:focus {
    border-color: var(--campo-borde-foco);
    outline: none;
}

.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 48px;
    padding: 0 22px;
    border: 1px solid var(--contrast);
    border-radius: var(--radio);
    background: var(--base-3);
    color: var(--contrast);
    font-weight: 600;
    transition: background-color var(--transicion), border-color var(--transicion), color var(--transicion);
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt {
    border-color: var(--accent);
    background: var(--accent);
    color: var(--base-3);
}

.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce input.button.alt:hover {
    border-color: var(--accent-2);
    background: var(--accent-2);
    color: var(--base-3);
}

/* Avisos: neutros, sin color de acento ni icono; borde fino como los filtros. */
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info,
.woocommerce .woocommerce-error {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px 24px;
    margin: 0 0 28px;
    padding: 18px 22px;
    border: 1px solid color-mix(in srgb, var(--contrast) 15%, transparent);
    border-radius: 0;
    background: transparent;
    color: var(--contrast);
    font-size: 15px;
    line-height: 1.5;
    list-style: none;
}

.woocommerce .woocommerce-message::before,
.woocommerce .woocommerce-info::before,
.woocommerce .woocommerce-error::before,
.woocommerce .woocommerce-message::after,
.woocommerce .woocommerce-info::after,
.woocommerce .woocommerce-error::after {
    content: none;
}

.woocommerce .woocommerce-error {
    display: block;
    border-color: var(--contrast);
}

.woocommerce .woocommerce-error li {
    margin: 0;
}

.woocommerce .woocommerce-error li + li {
    margin-top: 6px;
}

.woocommerce .woocommerce-message a:not(.button),
.woocommerce .woocommerce-info a:not(.button),
.woocommerce .woocommerce-error a:not(.button) {
    color: inherit;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.woocommerce .woocommerce-message .button,
.woocommerce .woocommerce-info .button {
    float: none;
    order: 1;
    margin-left: auto;
}

/* Catálogo sin resultados: aviso amplio y centrado. */
.catalogo__productos .woocommerce-info {
    justify-content: center;
    margin-top: clamp(24px, 2.6vw, 48px);
    padding: clamp(40px, 4.5vw, 80px) 22px;
    color: var(--contrast-2);
    text-align: center;
}

/* Selector nativo de orden del catálogo. */
.woocommerce .orden-catalogo {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 28px;
}

.woocommerce .orden-catalogo label {
    flex: none;
    font-weight: 600;
}

.woocommerce .orden-catalogo__selector {
    width: auto;
    min-width: min(100%, 290px);
}

/* Carrito vacío. */
/* ------------------------------------------------
   CARRITO, FINALIZAR COMPRA Y GRACIAS
   Mismo lenguaje que tienda y ficha: negro, esquinas rectas,
   recuadros claros (--base-2 al 28 %) y bordes finos.
   ------------------------------------------------ */

/* Carrito vacío. */
.carrito-vacio {
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 560px;
    margin: 0 auto;
    padding: clamp(40px, 6vw, 96px) 0;
    text-align: center;
}

.carrito-vacio__icono {
    display: grid;
    place-items: center;
    width: 76px;
    height: 76px;
    margin-bottom: 24px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--base-2) 28%, var(--base-3));
    color: var(--contrast);
}

.carrito-vacio__icono .icono {
    width: 30px;
    height: 30px;
}

.carrito-vacio__titulo {
    margin: 0;
    padding: 0;
    color: var(--contrast);
    font-family: var(--fuente-texto, inherit);
    font-size: clamp(24px, 2vw, 32px);
    font-weight: 600;
    line-height: 1.2;
    text-transform: none;
}

.carrito-vacio__texto {
    margin: 12px 0 28px;
    color: var(--contrast-2);
}

.carrito-vacio__acciones {
    margin: 0;
}

/* Compra: enlace "Volver al carrito" sobre el formulario (sin título visible). */
.compra__cabecera {
    margin-bottom: 20px;
}

.compra__volver {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--contrast-2);
    font-size: 14px;
    text-decoration: none;
}

.compra__volver:hover {
    color: var(--contrast);
}

.compra__volver .icono {
    width: 16px;
    height: 16px;
    transform: rotate(-135deg);
}

/* Rejilla: contenido + resumen lateral fijo. */
.carrito__rejilla,
.compra__rejilla {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(320px, 410px);
    gap: clamp(32px, 4vw, 80px);
    align-items: start;
}

.carrito__resumen,
.compra__resumen {
    position: sticky;
    top: calc(var(--admin-offset, 0px) + var(--cabecera-altura, 88px) + 24px);
}

/* Lista de productos del carrito. */
.carrito__items {
    margin: 0;
    padding: 0;
    border-top: 1px solid color-mix(in srgb, var(--contrast) 12%, transparent);
    list-style: none;
}

.carrito-item {
    display: grid;
    grid-template-areas: "foto info cantidad total quitar";
    grid-template-columns: 112px minmax(0, 1fr) auto minmax(96px, auto) 36px;
    align-items: center;
    gap: 16px 24px;
    margin: 0;
    padding: 22px 0;
    border-bottom: 1px solid color-mix(in srgb, var(--contrast) 12%, transparent);
}

.carrito-item__foto {
    grid-area: foto;
    aspect-ratio: 1;
    overflow: hidden;
    background: color-mix(in srgb, var(--base-2) 28%, var(--base-3));
}

.carrito-item__foto a,
.carrito-item__foto picture {
    display: block;
    height: 100%;
}

.carrito-item__foto img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.carrito-item__info {
    grid-area: info;
    min-width: 0;
}

.carrito-item__nombre {
    color: var(--contrast);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.3;
    text-decoration: none;
}

a.carrito-item__nombre:hover {
    color: var(--contrast-2);
}

.carrito-item dl.variation,
.resumen-compra__nombre dl.variation,
.woocommerce-table--order-details dl.wc-item-meta {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: 2px 6px;
    margin: 6px 0 0;
    color: var(--contrast-2);
    font-size: 13px;
    line-height: 1.4;
}

.carrito-item dl.variation dt,
.carrito-item dl.variation dd,
.resumen-compra__nombre dl.variation dt,
.resumen-compra__nombre dl.variation dd {
    float: none;
    margin: 0;
    padding: 0;
    font-weight: 400;
}

.carrito-item dl.variation p,
.resumen-compra__nombre dl.variation p {
    margin: 0;
}

.carrito-item__unidad {
    margin: 8px 0 0;
    color: var(--contrast-2);
    font-size: 13px;
}

.carrito-item__cantidad {
    grid-area: cantidad;
}

.carrito-item__total {
    grid-area: total;
    color: var(--contrast);
    font-size: 16px;
    font-weight: 600;
    text-align: right;
    white-space: nowrap;
}

.carrito-item__quitar {
    grid-area: quitar;
}

/* WooCommerce pinta la X en rojo con !important; se iguala para ganarle. */
.woocommerce .carrito a.remove {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    color: var(--contrast-2) !important;
    font-size: 0;
    transition: background-color var(--transicion), color var(--transicion);
}

.woocommerce .carrito a.remove:hover {
    background: color-mix(in srgb, var(--contrast) 7%, transparent);
    color: var(--contrast) !important;
}

.carrito a.remove .icono {
    width: 18px;
    height: 18px;
}

/* Cantidad − / + (carrito). */
.carrito .quantity {
    display: inline-flex;
    align-items: stretch;
    float: none;
    margin: 0;
    border: 1px solid color-mix(in srgb, var(--contrast) 20%, transparent);
    background: var(--base-3);
}

.carrito .quantity .qty,
.carrito .quantity .qty:focus {
    width: 42px;
    min-height: 0;
    height: 42px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--contrast);
    font-size: 15px;
    font-weight: 600;
    text-align: center;
    -moz-appearance: textfield;
    appearance: textfield;
    outline: none;
}

.carrito .quantity .qty::-webkit-outer-spin-button,
.carrito .quantity .qty::-webkit-inner-spin-button {
    margin: 0;
    -webkit-appearance: none;
}

.carrito .quantity .cantidad__boton,
.carrito .quantity .cantidad__boton:hover,
.carrito .quantity .cantidad__boton:focus {
    display: grid;
    place-items: center;
    width: 36px;
    min-height: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--contrast);
    cursor: pointer;
}

.carrito .quantity .cantidad__boton:hover {
    background: color-mix(in srgb, var(--contrast) 6%, transparent);
}

.carrito .quantity .cantidad__boton:disabled {
    cursor: not-allowed;
    opacity: 0.3;
}

.carrito .cantidad__boton .icono {
    width: 15px;
    height: 15px;
}

/* Mientras WooCommerce recalcula (assets/js/carrito.js). */
.carrito-actualizando .carrito__items,
.carrito-actualizando .carrito__resumen {
    opacity: 0.55;
    pointer-events: none;
    transition: opacity 0.2s ease;
}

/* Acciones bajo la lista: cupón plegable y botón (solo sin JS). */
.carrito__acciones {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-top: 20px;
}

/* Capa de carga de WooCommerce (blockUI, estilos en línea): invisible; basta el atenuado. */
.carrito .blockUI.blockOverlay {
    background: transparent !important;
    opacity: 0 !important;
}

.carrito__cupon > summary {
    color: var(--contrast);
    font-size: 14px;
    text-decoration: underline;
    text-underline-offset: 4px;
    list-style: none;
    cursor: pointer;
}

.carrito__cupon > summary::-webkit-details-marker {
    display: none;
}

.woocommerce .carrito__cupon .coupon {
    display: flex;
    gap: 8px;
    margin-top: 12px;
}

.woocommerce .carrito__cupon .coupon .input-text {
    width: 220px;
}

.woocommerce .carrito__cupon .coupon .button {
    min-height: var(--campo-alto);
}

.carrito__seguir {
    display: inline-block;
    margin-top: 28px;
    color: var(--contrast-2);
    font-size: 14px;
    text-underline-offset: 4px;
}

.carrito__seguir:hover {
    color: var(--contrast);
}

/* Resumen (carrito y compra). */
.resumen-compra,
.compra__resumen {
    padding: clamp(22px, 2.4vw, 32px);
    background: color-mix(in srgb, var(--base-2) 28%, var(--base-3));
}

.woocommerce .resumen-compra,
.woocommerce .cart-collaterals .cart_totals {
    float: none;
    width: auto;
}

.resumen-compra__titulo,
.woocommerce .resumen-compra h2,
.compra__resumen #order_review_heading {
    margin: 0 0 16px;
    color: var(--contrast);
    font-family: var(--fuente-texto, inherit);
    font-size: 20px;
    font-weight: 600;
    line-height: 1.2;
    text-transform: none;
}

.woocommerce table.shop_table.resumen-compra__tabla {
    margin: 0;
    border: 0;
    border-collapse: collapse;
    background: transparent;
}

.woocommerce table.shop_table.resumen-compra__tabla th,
.woocommerce table.shop_table.resumen-compra__tabla td {
    padding: 9px 0;
    border: 0;
    background: transparent;
    color: var(--contrast);
    font-size: 15px;
    font-weight: 400;
    vertical-align: top;
}

.woocommerce table.shop_table.resumen-compra__tabla th {
    color: var(--contrast-2);
    text-align: left;
}

.woocommerce table.shop_table.resumen-compra__tabla td {
    text-align: right;
}

.woocommerce table.shop_table.resumen-compra__tabla .order-total th,
.woocommerce table.shop_table.resumen-compra__tabla .order-total td {
    padding-top: 16px;
    border-top: 1px solid color-mix(in srgb, var(--contrast) 14%, transparent);
    color: var(--contrast);
    font-size: 19px;
    font-weight: 600;
}

.resumen-compra__tabla .order-total strong {
    font-weight: 600;
}

.resumen-compra__tabla .includes_tax {
    display: block;
    color: var(--contrast-2);
    font-size: 12px;
    font-weight: 400;
}

/* Envío dentro del resumen. */
.woocommerce .resumen-compra__tabla ul#shipping_method {
    margin: 0;
    padding: 0;
    list-style: none;
}

.woocommerce .resumen-compra__tabla ul#shipping_method li {
    margin: 0 0 4px;
    padding: 0;
    text-indent: 0;
}

.woocommerce .resumen-compra__tabla ul#shipping_method input {
    accent-color: var(--contrast);
}

.woocommerce table.shop_table.resumen-compra__tabla td label,
.woocommerce table.shop_table.resumen-compra__tabla td .amount {
    font-size: 15px;
}

.woocommerce table.shop_table.resumen-compra__tabla .order-total .amount {
    font-size: 19px;
}

.resumen-compra__tabla .woocommerce-shipping-destination,
.resumen-compra__tabla .shipping-calculator-button {
    margin: 4px 0 0;
    color: var(--contrast-2);
    font-size: 12px;
}

.resumen-compra__tabla .shipping-calculator-button {
    display: inline-block;
    color: var(--contrast);
    text-underline-offset: 3px;
}

.resumen-compra__tabla .shipping-calculator-form {
    margin-top: 12px;
    text-align: left;
}

/* Botón principal del resumen. */
.woocommerce .resumen-compra .wc-proceed-to-checkout {
    padding: 18px 0 0;
}

.woocommerce .resumen-compra .wc-proceed-to-checkout a.checkout-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 54px;
    margin: 0;
    padding: 0 24px;
    border: 0;
    border-radius: 0;
    background: var(--contrast);
    color: var(--base-3);
    font-size: 16px;
    font-weight: 600;
    text-transform: none;
    transition: background-color var(--transicion);
}

.woocommerce .resumen-compra .wc-proceed-to-checkout a.checkout-button:hover {
    background: var(--contrast-2);
    color: var(--base-3);
}

.resumen-compra__garantias {
    display: grid;
    gap: 8px;
    margin: 18px 0 0;
    padding: 16px 0 0;
    border-top: 1px solid color-mix(in srgb, var(--contrast) 10%, transparent);
    color: var(--contrast-2);
    font-size: 13px;
    list-style: none;
}

.resumen-compra__garantias li {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
}

.resumen-compra__garantias .icono {
    width: 16px;
    height: 16px;
    color: var(--contrast);
}

.resumen-compra__garantias a {
    color: var(--contrast);
    font-weight: 600;
    text-decoration: none;
}

/* Finalizar compra: bloques de datos. */
.compra .woocommerce-form-coupon-toggle .woocommerce-info,
.compra .woocommerce-form-login-toggle .woocommerce-info {
    margin-bottom: 16px;
}

.woocommerce .compra form.checkout_coupon,
.woocommerce .compra form.woocommerce-form-login {
    margin: 0 0 24px;
    padding: 20px;
    border: 1px solid color-mix(in srgb, var(--contrast) 12%, transparent);
    border-radius: 0;
}

.woocommerce .compra .col2-set.compra__bloques {
    display: grid;
    gap: 14px;
}

.woocommerce .compra .col2-set.compra__bloques::before,
.woocommerce .compra .col2-set.compra__bloques::after {
    content: none;
    display: none;
}

.woocommerce .compra .col2-set .col-1,
.woocommerce .compra .col2-set .col-2 {
    float: none;
    width: auto;
}

.compra__bloque {
    padding: clamp(20px, 2.4vw, 32px);
    border: 1px solid color-mix(in srgb, var(--contrast) 12%, transparent);
}

.compra__bloque h3,
.compra__bloque #ship-to-different-address {
    margin: 0 0 18px;
    color: var(--contrast);
    font-family: var(--fuente-texto, inherit);
    font-size: 18px;
    font-weight: 600;
    line-height: 1.3;
    text-transform: none;
}

.compra__bloque #ship-to-different-address label {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-weight: 600;
    cursor: pointer;
}

.compra__bloque .woocommerce-additional-fields > h3 {
    margin-top: 8px;
}

.woocommerce .compra form .form-row-first,
.woocommerce .compra form .form-row-last {
    width: calc(50% - 8px);
}

/* Resumen de la compra: productos con miniatura. */
.woocommerce .compra__resumen .resumen-compra__producto td {
    vertical-align: middle;
}

.woocommerce .compra__resumen .resumen-compra__producto .product-name {
    display: flex;
    align-items: center;
    gap: 14px;
    text-align: left;
}

.resumen-compra__miniatura {
    position: relative;
    flex: none;
    width: 64px;
    height: 64px;
    background: var(--base-3);
}

.resumen-compra__miniatura img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.resumen-compra__miniatura .product-quantity {
    position: absolute;
    top: -8px;
    right: -8px;
    display: grid;
    place-items: center;
    min-width: 22px;
    height: 22px;
    padding: 0 6px;
    border-radius: 11px;
    background: var(--contrast);
    color: var(--base-3);
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
}

.resumen-compra__nombre {
    min-width: 0;
    color: var(--contrast);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
}

/* Importes con el mismo cuerpo que Subtotal y Envío; solo Total destaca. */
.woocommerce .compra__resumen .resumen-compra__producto .product-total {
    padding-left: 12px;
    font-size: 15px;
    font-weight: 400;
    white-space: nowrap;
}

.woocommerce .compra__resumen .resumen-compra__tabla tbody tr:last-child td {
    padding-bottom: 16px;
}

.woocommerce .compra__resumen .resumen-compra__tabla tfoot tr:first-child th,
.woocommerce .compra__resumen .resumen-compra__tabla tfoot tr:first-child td {
    padding-top: 16px;
    border-top: 1px solid color-mix(in srgb, var(--contrast) 10%, transparent);
}

/* Pago (todo el bloque vive en #payment, payment.php). Selectores con
   ul./div. para ganar al padding de 1em de WooCommerce. */
.woocommerce-checkout #payment.pago-checkout {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid color-mix(in srgb, var(--contrast) 12%, transparent);
    border-radius: 0;
    background: transparent;
}

.woocommerce-checkout #payment .pago-checkout__titulo {
    margin: 0 0 12px;
    color: var(--contrast);
    font-family: var(--fuente-texto, inherit);
    font-size: 15px;
    font-weight: 600;
    text-transform: none;
}

.woocommerce-checkout #payment ul.pago-checkout__metodos {
    display: grid;
    gap: 8px;
    margin: 0;
    padding: 0;
    border: 0;
    list-style: none;
}

.woocommerce-checkout #payment ul.pago-checkout__metodos li.wc_payment_method {
    position: relative;
    margin: 0;
    padding: 16px 18px;
    border: 1px solid color-mix(in srgb, var(--contrast) 16%, transparent);
    background: var(--base-3);
    line-height: 1.4;
    transition: border-color var(--transicion), box-shadow var(--transicion);
}

.woocommerce-checkout #payment ul.pago-checkout__metodos li.wc_payment_method:has(> input:checked),
.woocommerce-checkout #payment ul.pago-checkout__metodos li.wc_payment_method:only-child {
    border-color: var(--contrast);
    box-shadow: inset 0 0 0 1px var(--contrast);
}

.woocommerce-checkout #payment ul.pago-checkout__metodos li.wc_payment_method > label {
    display: inline;
    margin: 0;
    color: var(--contrast);
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
}

.woocommerce-checkout #payment ul.pago-checkout__metodos li.wc_payment_method > label img {
    max-height: 22px;
    margin: 0 0 0 8px;
    vertical-align: middle;
}

.woocommerce-checkout #payment ul.pago-checkout__metodos li.wc_payment_method > input {
    width: 18px;
    height: 18px;
    margin: 0 10px 0 0;
    vertical-align: -3px;
    accent-color: var(--contrast);
}

/* Descripción del método: texto bajo el título, sin caja gris anidada. */
.woocommerce-checkout #payment ul.pago-checkout__metodos div.payment_box {
    margin: 8px 0 0;
    padding: 0;
    border-radius: 0;
    background: transparent;
    color: var(--contrast-2);
    font-size: 14px;
    line-height: 1.55;
}

.woocommerce-checkout #payment ul.pago-checkout__metodos div.payment_box::before {
    content: none;
}

.woocommerce-checkout #payment div.payment_box p:last-child {
    margin-bottom: 0;
}

.woocommerce-checkout #payment div.pago-checkout__confirmacion {
    float: none;
    width: auto;
    margin: 0;
    padding: 18px 0 0;
}

.woocommerce-checkout #payment .woocommerce-privacy-policy-text,
.woocommerce-checkout #payment .woocommerce-privacy-policy-text p {
    margin: 0;
    color: var(--contrast-2);
    font-size: 13px;
    line-height: 1.55;
}

.woocommerce-checkout #payment a {
    color: var(--contrast);
    text-underline-offset: 3px;
}

/* Casilla obligatoria de aceptación (functions.php: adhoc_casilla_terminos). */
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper {
    margin-top: 14px;
}

.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper .form-row {
    margin: 0;
    padding: 0;
}

.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper label.checkbox {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0;
    color: var(--contrast);
    font-size: 14px;
    font-weight: 400;
    line-height: 1.45;
    cursor: pointer;
}

.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper input#terms {
    flex: none;
    width: 18px;
    height: 18px;
    margin: 1px 0 0;
    accent-color: var(--contrast);
}

.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper .woocommerce-invalid label.checkbox {
    color: #b3261e;
}

.woocommerce-checkout #payment #place_order,
.woocommerce-checkout #payment #place_order:hover {
    float: none;
    width: 100%;
    min-height: 56px;
    margin-top: 18px;
    border: 0;
    border-radius: 0;
    background: var(--contrast);
    color: var(--base-3);
    font-size: 16px;
    font-weight: 600;
    text-transform: none;
}

.woocommerce-checkout #payment #place_order:hover {
    background: var(--contrast-2);
}

/* Gracias (pedido recibido). */
.pedido-recibido {
    max-width: 880px;
    margin: 0 auto;
}

.pedido-recibido__cabecera {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: clamp(28px, 3vw, 44px);
    text-align: center;
}

.pedido-recibido__icono {
    display: grid;
    place-items: center;
    width: 72px;
    height: 72px;
    margin-bottom: 22px;
    border-radius: 50%;
    background: var(--contrast);
    color: var(--base-3);
    animation: gracias-icono 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) 0.15s both;
}

.pedido-recibido__icono .icono {
    width: 32px;
    height: 32px;
}

.pedido-recibido__titulo {
    margin: 0 0 12px;
    color: var(--contrast);
    font-family: var(--fuente-texto, inherit);
    font-size: clamp(28px, 2.6vw, 42px);
    font-weight: 600;
    line-height: 1.15;
    text-transform: none;
}

.pedido-recibido__texto {
    margin: 0;
    color: var(--contrast-2);
    font-size: 16px;
    line-height: 1.6;
}

.pedido-recibido__texto strong {
    color: var(--contrast);
}

/* Datos del pedido: una franja clara con columnas separadas por líneas.
   Selectores con ul./li. y .pedido-recibido para ganar a los de
   WooCommerce (flotados, borde discontinuo y clearfix ::before). */
.woocommerce .pedido-recibido ul.pedido-recibido__datos {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    margin: 0 0 28px;
    padding: 0;
    background: color-mix(in srgb, var(--base-2) 28%, var(--base-3));
    list-style: none;
}

.woocommerce .pedido-recibido ul.pedido-recibido__datos::before,
.woocommerce .pedido-recibido ul.pedido-recibido__datos::after {
    content: none;
    display: none;
}

.woocommerce .pedido-recibido ul.pedido-recibido__datos li {
    float: none;
    margin: 0;
    padding: 20px 24px;
    border: 0;
    border-left: 1px solid color-mix(in srgb, var(--contrast) 10%, transparent);
    color: var(--contrast-2);
    font-size: 11px;
    line-height: 1.4;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.woocommerce .pedido-recibido ul.pedido-recibido__datos li:first-child {
    border-left: 0;
}

.woocommerce .pedido-recibido ul.pedido-recibido__datos li strong {
    display: block;
    margin-top: 6px;
    color: var(--contrast);
    font-size: 16px;
    font-weight: 600;
    line-height: 1.35;
    letter-spacing: 0;
    text-transform: none;
    overflow-wrap: anywhere;
}

.pedido-recibido .woocommerce-bacs-bank-details {
    margin: 0 0 16px;
    padding: clamp(20px, 2.6vw, 32px);
    border: 1px solid color-mix(in srgb, var(--contrast) 12%, transparent);
}

.pedido-recibido .wc-bacs-bank-details-heading {
    margin: 0 0 16px;
    color: var(--contrast);
    font-family: var(--fuente-texto, inherit);
    font-size: 19px;
    font-weight: 600;
    line-height: 1.25;
    text-transform: none;
}

.pedido-recibido .wc-bacs-bank-details-account-name {
    margin: 0 0 8px;
    font-size: 15px;
}

.woocommerce .pedido-recibido ul.wc-bacs-bank-details {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 10px 20px;
    margin: 0;
    padding: 0;
}

.woocommerce .pedido-recibido ul.wc-bacs-bank-details li {
    float: none;
    margin: 0;
    padding: 0;
    border: 0;
    color: var(--contrast-2);
    font-size: 12px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.woocommerce .pedido-recibido ul.wc-bacs-bank-details li strong {
    display: block;
    margin-top: 4px;
    color: var(--contrast);
    font-size: 15px;
    letter-spacing: 0;
    text-transform: none;
}

.pedido-recibido__acciones {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
    margin: 28px 0 0;
}

.pedido-recibido__boton {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 220px;
    min-height: 50px;
    padding: 0 26px;
    border: 1px solid var(--contrast);
    background: var(--contrast);
    color: var(--base-3);
    font-size: 15px;
    font-weight: 600;
    text-decoration: none;
    transition: background-color var(--transicion), color var(--transicion);
}

.pedido-recibido__boton:hover,
.pedido-recibido__boton--claro {
    background: var(--base-3);
    color: var(--contrast);
}

.pedido-recibido__boton--claro:hover {
    background: var(--contrast);
    color: var(--base-3);
}

.pedido-recibido__ayuda {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 14px 28px;
    margin-top: 28px;
    padding: 22px 26px;
    background: var(--contrast);
    color: var(--base-3);
}

.pedido-recibido__ayuda p {
    margin: 4px 0 0;
    color: color-mix(in srgb, var(--base-3) 72%, transparent);
    font-size: 14px;
}

.pedido-recibido__ayuda a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--base-3);
    font-size: 17px;
    font-weight: 600;
    text-decoration: none;
}

.pedido-recibido__ayuda .icono {
    width: 18px;
    height: 18px;
}


/* ------------------------------------------------
   MI CUENTA — mismo lenguaje que tienda y ficha:
   negro, esquinas rectas, recuadros claros y bordes finos.
   ------------------------------------------------ */

/* Página a ancho del tema (Element 98), sin título de página. */
.woocommerce-account .inside-article,
.woocommerce-cart .inside-article,
.woocommerce-checkout .inside-article {
    box-sizing: border-box;
    max-width: calc(var(--ancho-maximo, 100%) + 2 * var(--margen-interior));
    margin-inline: auto;
    padding: clamp(24px, 2.5vw, 48px) var(--margen-interior) var(--espacio-seccion);
}

.woocommerce-account .entry-content,
.woocommerce-cart .entry-content,
.woocommerce-checkout .entry-content {
    margin: 0;
}

/* Campos: ver bloque "FORMULARIOS — campos reutilizables". */

.woocommerce-account .woocommerce fieldset {
    margin: 28px 0 0;
    padding: 24px 0 0;
    border: 0;
    border-top: 1px solid color-mix(in srgb, var(--contrast) 12%, transparent);
}

.woocommerce-account .woocommerce legend {
    padding: 0;
    color: var(--contrast);
    font-size: 17px;
    font-weight: 600;
}

/* Botones: contorno negro; los de enviar, rellenos. */
:is(.woocommerce-account, .woocommerce-cart, .woocommerce-checkout) .woocommerce a.button,
:is(.woocommerce-account, .woocommerce-cart, .woocommerce-checkout) .woocommerce button.button,
:is(.woocommerce-account, .woocommerce-cart, .woocommerce-checkout) .woocommerce input.button {
    min-height: var(--campo-alto);
    padding: 0 22px;
    border: 1px solid var(--contrast);
    border-radius: 0;
    background: transparent;
    color: var(--contrast);
    font-size: 14px;
    font-weight: 600;
    text-transform: none;
}

:is(.woocommerce-account, .woocommerce-cart, .woocommerce-checkout) .woocommerce a.button:hover,
:is(.woocommerce-account, .woocommerce-cart, .woocommerce-checkout) .woocommerce button.button:hover,
:is(.woocommerce-account, .woocommerce-cart, .woocommerce-checkout) .woocommerce input.button:hover,
.woocommerce-account .woocommerce button[type="submit"].button,
.woocommerce-account .woocommerce .woocommerce-Button,
.woocommerce-cart .carrito-vacio .button {
    border-color: var(--contrast);
    background: var(--contrast);
    color: var(--base-3);
}

.woocommerce-account .woocommerce button[type="submit"].button:hover,
.woocommerce-account .woocommerce .woocommerce-Button:hover {
    border-color: var(--contrast-2);
    background: var(--contrast-2);
    color: var(--base-3);
}

/* Con sesión: menú lateral fijo y contenido. Áreas con nombre para que el
   clearfix de WooCommerce (::before/::after) o los avisos no muevan nada. */
.woocommerce-account.logged-in .woocommerce {
    display: grid;
    grid-template-areas:
        "avisos avisos"
        "menu contenido";
    grid-template-columns: minmax(240px, 290px) minmax(0, 1fr);
    column-gap: clamp(40px, 5vw, 96px);
    align-items: start;
}

.woocommerce-account.logged-in .woocommerce::before,
.woocommerce-account.logged-in .woocommerce::after {
    content: none;
    display: none;
}

.woocommerce-account.logged-in .woocommerce > .woocommerce-notices-wrapper {
    grid-area: avisos;
}

.woocommerce-account.logged-in .woocommerce > .woocommerce-notices-wrapper:not(:empty) {
    margin-bottom: 24px;
}

.woocommerce-account.logged-in .woocommerce > .woocommerce-MyAccount-navigation {
    grid-area: menu;
}

.woocommerce-account.logged-in .woocommerce > .woocommerce-MyAccount-content {
    grid-area: contenido;
}

.woocommerce-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-content {
    float: none;
    width: auto;
}

.panel-cuenta {
    position: sticky;
    top: calc(var(--admin-offset, 0px) + var(--cabecera-altura, 88px) + 24px);
}

/* Tarjeta de perfil: foto (o iniciales) con botón de cámara, nombre y datos. */
.panel-cuenta__perfil.tarjeta-perfil {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-bottom: 14px;
    padding: 26px 20px 22px;
    background: color-mix(in srgb, var(--base-2) 28%, var(--base-3));
    text-align: center;
}

.tarjeta-perfil__formulario {
    margin: 0 0 14px;
}

.tarjeta-perfil__avatar {
    position: relative;
    display: block;
    width: 88px;
    height: 88px;
}

.tarjeta-perfil__foto,
.tarjeta-perfil__iniciales {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    box-shadow: 0 0 0 4px var(--base-3);
}

.tarjeta-perfil__foto {
    object-fit: cover;
    background: var(--base-2);
}

.tarjeta-perfil__foto[hidden],
.tarjeta-perfil__iniciales[hidden] {
    display: none;
}

.tarjeta-perfil__iniciales {
    background: var(--contrast);
    color: var(--base-3);
    font-size: 26px;
    font-weight: 600;
    letter-spacing: 0.02em;
}

.tarjeta-perfil__cambiar {
    position: absolute;
    right: -2px;
    bottom: -2px;
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border: 3px solid var(--base-3);
    border-radius: 50%;
    background: var(--contrast);
    color: var(--base-3);
    cursor: pointer;
    transition: transform var(--transicion), background-color var(--transicion);
}

.tarjeta-perfil__cambiar:hover {
    background: var(--contrast-2);
    transform: scale(1.08);
}

.tarjeta-perfil__cambiar:focus-within {
    outline: 2px solid var(--contrast);
    outline-offset: 2px;
}

.tarjeta-perfil__cambiar .icono {
    width: 14px;
    height: 14px;
}

/* El input queda dentro del label (clic) pero invisible. */
.tarjeta-perfil__archivo {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    opacity: 0;
}

.tarjeta-perfil.is-subiendo .tarjeta-perfil__avatar::after {
    content: "";
    position: absolute;
    inset: 0;
    border: 2px solid color-mix(in srgb, var(--base-3) 60%, transparent);
    border-top-color: var(--contrast);
    border-radius: 50%;
    animation: perfil-girar 0.8s linear infinite;
}

.tarjeta-perfil.is-subiendo .tarjeta-perfil__foto {
    opacity: 0.6;
}

@keyframes perfil-girar {
    to {
        transform: rotate(360deg);
    }
}

.tarjeta-perfil__nombre {
    max-width: 100%;
    overflow: hidden;
    color: var(--contrast);
    font-size: 17px;
    font-weight: 600;
    line-height: 1.3;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tarjeta-perfil__email {
    max-width: 100%;
    margin-top: 2px;
    overflow: hidden;
    color: var(--contrast-2);
    font-size: 13px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tarjeta-perfil__datos {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px;
    margin: 14px 0 0;
}

.tarjeta-perfil__datos span {
    padding: 4px 10px;
    border: 1px solid color-mix(in srgb, var(--contrast) 14%, transparent);
    background: var(--base-3);
    color: var(--contrast-2);
    font-size: 12px;
    line-height: 1.3;
}

.panel-cuenta .tarjeta-perfil__quitar,
.panel-cuenta .tarjeta-perfil__quitar:hover,
.panel-cuenta .tarjeta-perfil__quitar:focus {
    margin-top: 12px;
    padding: 0;
    border: 0;
    background: none;
    color: var(--contrast-2);
    font-size: 12px;
    text-decoration: underline;
    text-underline-offset: 3px;
    cursor: pointer;
}

.panel-cuenta .tarjeta-perfil__quitar:hover {
    color: var(--contrast);
}

.tarjeta-perfil__quitar[hidden] {
    display: none;
}

.tarjeta-perfil__estado {
    margin: 8px 0 0;
    color: var(--contrast-2);
    font-size: 12px;
}

.tarjeta-perfil__estado:empty {
    display: none;
}

.tarjeta-perfil__estado.is-error {
    color: #b3261e;
}

.panel-cuenta__lista {
    display: grid;
    gap: 2px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.panel-cuenta__item {
    margin: 0;
}

.panel-cuenta__enlace {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 46px;
    padding: 0 14px;
    color: var(--contrast-2);
    font-size: 15px;
    text-decoration: none;
    transition: background-color var(--transicion), color var(--transicion);
}

.panel-cuenta__enlace .icono {
    width: 18px;
    height: 18px;
}

.panel-cuenta__enlace:hover {
    background: color-mix(in srgb, var(--base-2) 22%, var(--base-3));
    color: var(--contrast);
}

.panel-cuenta__item.is-active .panel-cuenta__enlace {
    background: color-mix(in srgb, var(--base-2) 28%, var(--base-3));
    box-shadow: inset 2px 0 0 var(--contrast);
    color: var(--contrast);
    font-weight: 600;
}

.woocommerce-MyAccount-navigation-link--customer-logout {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid color-mix(in srgb, var(--contrast) 10%, transparent);
}

/* Cabecera de cada sección. */
.cabecera-cuenta {
    margin-bottom: clamp(24px, 2.6vw, 40px);
    padding-bottom: clamp(18px, 1.8vw, 26px);
    border-bottom: 1px solid color-mix(in srgb, var(--contrast) 10%, transparent);
}

.woocommerce-account .cabecera-cuenta__titulo {
    margin: 0;
    color: var(--contrast);
    font-family: var(--fuente-texto, inherit);
    font-size: clamp(22px, 1.7vw, 30px);
    font-weight: 600;
    line-height: 1.2;
    text-transform: none;
}

.cabecera-cuenta__texto {
    margin: 6px 0 0;
    color: var(--contrast-2);
    font-size: 15px;
}

/* Escritorio. */
.resumen-cuenta__saludo {
    margin: 0 0 20px;
    color: var(--contrast-2);
    font-size: 16px;
}

.resumen-cuenta__saludo strong {
    color: var(--contrast);
}

.resumen-cuenta__rejilla {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
}

.resumen-cuenta .tarjeta-cuenta {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-height: 250px;
    padding: clamp(24px, 2.2vw, 32px);
    background: var(--base-3);
    border: 1px solid color-mix(in srgb, var(--contrast) 12%, transparent);
    color: var(--contrast);
    text-decoration: none;
    transition: border-color var(--transicion);
}

.resumen-cuenta .tarjeta-cuenta:hover,
.resumen-cuenta .tarjeta-cuenta:focus-visible {
    border-color: var(--contrast);
    color: var(--contrast);
}

.tarjeta-cuenta__icono,
.direccion-tarjeta__icono {
    color: var(--contrast);
    line-height: 0;
}

.tarjeta-cuenta__icono {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    margin-bottom: 28px;
    background: color-mix(in srgb, var(--base-2) 46%, var(--base-3));
}

.direccion-tarjeta__icono {
    display: block;
    margin-bottom: 22px;
}

.tarjeta-cuenta__icono .icono,
.direccion-tarjeta__icono .icono {
    width: 22px;
    height: 22px;
}

.tarjeta-cuenta__titulo {
    font-size: 18px;
    font-weight: 600;
}

.tarjeta-cuenta__descripcion {
    margin-top: 10px;
    color: var(--contrast-2);
    font-size: 14px;
    line-height: 1.45;
}

.tarjeta-cuenta__enlace {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: auto;
    padding-top: 24px;
    color: var(--contrast);
    font-size: 13px;
    font-weight: 600;
}

.tarjeta-cuenta__enlace .icono {
    width: 14px;
    height: 14px;
    transition: transform var(--transicion);
}

/* Pedidos. */
.lista-pedidos {
    display: grid;
    gap: 10px;
}

.pedido-tarjeta {
    padding: clamp(20px, 2.4vw, 28px);
    border: 1px solid color-mix(in srgb, var(--contrast) 12%, transparent);
}

.pedido-tarjeta__datos {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
    gap: 16px 24px;
    margin: 0;
}

.pedido-tarjeta__dato dt,
.estado-pedido-detalle__datos dt {
    margin-bottom: 4px;
    color: var(--contrast-2);
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.pedido-tarjeta__dato dd,
.estado-pedido-detalle__datos dd {
    margin: 0;
    color: var(--contrast);
    font-weight: 600;
}

.pedido-tarjeta__dato--order-number dd {
    font-size: 18px;
}

.pedido-tarjeta__dato a {
    color: var(--contrast);
}

.estado-pedido {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 14px;
}

.estado-pedido::before {
    content: "";
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--contrast-2);
}

.estado-pedido--completed::before {
    background: var(--accent);
}

.estado-pedido--processing::before,
.estado-pedido--on-hold::before,
.estado-pedido--pending::before {
    background: #b07a2a;
}

.estado-pedido--cancelled::before,
.estado-pedido--failed::before,
.estado-pedido--refunded::before {
    background: #b3261e;
}

.pedido-tarjeta__acciones {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid color-mix(in srgb, var(--contrast) 10%, transparent);
}

.woocommerce-account .woocommerce .pedido-tarjeta__acciones .button {
    min-height: 40px;
    padding-inline: 16px;
    font-size: 13px;
}

.paginacion-pedidos {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-top: 24px;
}

/* Vista de pedido: frase de estado y franja de datos (como en gracias). */
.estado-pedido-detalle {
    margin-bottom: 28px;
}

.novedades-pedido {
    margin-bottom: 28px;
    padding: clamp(20px, 2.4vw, 28px);
    border: 1px solid color-mix(in srgb, var(--contrast) 12%, transparent);
}

.estado-pedido-detalle__resumen {
    margin: 0 0 14px;
    color: var(--contrast-2);
    font-size: 15px;
}

.estado-pedido-detalle__resumen mark {
    background: transparent;
    color: var(--contrast);
    font-weight: 600;
}

.estado-pedido-detalle__datos {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    margin: 0;
    background: color-mix(in srgb, var(--base-2) 28%, var(--base-3));
}

.estado-pedido-detalle__datos > div {
    padding: 18px 22px;
    border-left: 1px solid color-mix(in srgb, var(--contrast) 10%, transparent);
}

.estado-pedido-detalle__datos > div:first-child {
    border-left: 0;
}

.estado-pedido-detalle__datos dt {
    font-size: 11px;
    letter-spacing: 0.08em;
}

.estado-pedido-detalle__datos dd {
    margin-top: 6px;
    font-size: 16px;
}

.novedades-pedido h3 {
    margin: 0 0 20px;
    font-family: var(--fuente-texto, inherit);
    font-size: 17px;
    font-weight: 600;
    text-transform: none;
}

.novedades-pedido__lista {
    margin: 0;
    padding: 0;
    list-style: none;
}

.novedades-pedido__item {
    position: relative;
    margin: 0 0 0 5px;
    padding: 0 0 20px 24px;
    border-left: 1px solid color-mix(in srgb, var(--contrast) 15%, transparent);
}

.novedades-pedido__item:last-child {
    padding-bottom: 0;
    border-left-color: transparent;
}

.novedades-pedido__item::before {
    content: "";
    position: absolute;
    top: 5px;
    left: -5px;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--contrast);
}

.novedades-pedido__fecha {
    color: var(--contrast-2);
    font-size: 13px;
}

.novedades-pedido__texto p {
    margin: 4px 0 0;
}


/* ------------------------------------------------
   DETALLE DE PEDIDO (order/order-details*.php): Ver pedido y gracias.
   ------------------------------------------------ */
.detalle-pedido {
    margin: 0 0 16px;
    padding: clamp(20px, 2.6vw, 32px);
    border: 1px solid color-mix(in srgb, var(--contrast) 12%, transparent);
}

.detalle-pedido__titulo,
.direcciones-pedido__titulo {
    margin: 0 0 8px;
    color: var(--contrast);
    font-family: var(--fuente-texto, inherit);
    font-size: 19px;
    font-weight: 600;
    line-height: 1.25;
    letter-spacing: 0;
    text-transform: none;
}

.detalle-pedido__productos {
    margin: 0;
    padding: 0;
    list-style: none;
}

.detalle-pedido__producto {
    display: grid;
    grid-template-columns: 72px minmax(0, 1fr) auto;
    align-items: center;
    gap: 6px 18px;
    margin: 0;
    padding: 16px 0;
    border-bottom: 1px solid color-mix(in srgb, var(--contrast) 10%, transparent);
}

.detalle-pedido__foto {
    display: block;
    aspect-ratio: 1;
    overflow: hidden;
    background: color-mix(in srgb, var(--base-2) 28%, var(--base-3));
}

.detalle-pedido__foto img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.detalle-pedido__info {
    min-width: 0;
}

.detalle-pedido__nombre {
    color: var(--contrast);
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
    text-decoration: none;
}

a.detalle-pedido__nombre:hover {
    color: var(--contrast-2);
}

.detalle-pedido .wc-item-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 2px 14px;
    margin: 6px 0 0;
    padding: 0;
    color: var(--contrast-2);
    font-size: 13px;
    list-style: none;
}

.detalle-pedido .wc-item-meta li {
    display: flex;
    gap: 4px;
    margin: 0;
}

.detalle-pedido .wc-item-meta .wc-item-meta-label {
    float: none;
    margin: 0;
    font-weight: 400;
}

.detalle-pedido .wc-item-meta p {
    display: inline;
    margin: 0;
}

.detalle-pedido__cantidad {
    margin: 4px 0 0;
    color: var(--contrast-2);
    font-size: 13px;
}

.detalle-pedido__cantidad strong {
    font-weight: 400;
}

.detalle-pedido__importe {
    color: var(--contrast);
    font-size: 15px;
    font-weight: 600;
    text-align: right;
    white-space: nowrap;
}

.detalle-pedido__nota-compra {
    grid-column: 2 / -1;
    color: var(--contrast-2);
    font-size: 14px;
}

.detalle-pedido__totales {
    margin: 0;
    padding-top: 12px;
}

.detalle-pedido__total {
    display: flex;
    justify-content: space-between;
    gap: 24px;
    padding: 7px 0;
    font-size: 15px;
}

.detalle-pedido__total dt {
    color: var(--contrast-2);
    font-weight: 400;
}

.detalle-pedido__total dd {
    margin: 0;
    color: var(--contrast);
    text-align: right;
}

.detalle-pedido__total small {
    display: block;
    color: var(--contrast-2);
    font-size: 12px;
}

.detalle-pedido__total--order_total {
    margin-top: 8px;
    padding-top: 14px;
    border-top: 1px solid color-mix(in srgb, var(--contrast) 14%, transparent);
    font-size: 19px;
    font-weight: 600;
}

.detalle-pedido__total--order_total dt {
    color: var(--contrast);
    font-weight: 600;
}

.detalle-pedido__total--payment_method,
.detalle-pedido__total--nota {
    font-size: 14px;
}

.detalle-pedido__acciones {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 18px;
    padding-top: 18px;
    border-top: 1px solid color-mix(in srgb, var(--contrast) 10%, transparent);
}

/* Direcciones del pedido en recuadros. */
.woocommerce .direcciones-pedido {
    display: grid;
    gap: 10px;
    margin: 0 0 16px;
}

.woocommerce .direcciones-pedido--dos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.direcciones-pedido__columna {
    padding: clamp(18px, 2.2vw, 26px);
    background: color-mix(in srgb, var(--base-2) 28%, var(--base-3));
}

.direcciones-pedido__titulo {
    margin-bottom: 10px;
    font-size: 16px;
}

.woocommerce .direcciones-pedido address {
    margin: 0;
    padding: 0;
    border: 0;
    color: var(--contrast-2);
    font-size: 15px;
    font-style: normal;
    line-height: 1.7;
}

.woocommerce .direcciones-pedido .direcciones-pedido__contacto {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 8px 0 0;
    padding: 0;
    color: var(--contrast);
    font-size: 14px;
}

.woocommerce .direcciones-pedido .direcciones-pedido__contacto::before {
    content: none;
}

.direcciones-pedido__contacto .icono {
    width: 15px;
    height: 15px;
    color: var(--contrast-2);
}

/* Direcciones. */
.direcciones-cuenta__intro {
    margin: 0 0 20px;
    color: var(--contrast-2);
}

.direcciones-cuenta {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.direccion-tarjeta {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-height: 290px;
    padding: clamp(24px, 2.6vw, 32px);
    background: var(--base-3);
    border: 1px solid color-mix(in srgb, var(--contrast) 12%, transparent);
    transition: border-color var(--transicion);
}

.direccion-tarjeta:focus-within {
    border-color: var(--contrast);
}

.direccion-tarjeta--vacia {
    border-style: dashed;
}

.direccion-tarjeta__icono {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    margin-bottom: 28px;
    background: color-mix(in srgb, var(--base-2) 46%, var(--base-3));
}

.direccion-tarjeta__cabecera h3 {
    margin: 0;
    font-family: var(--fuente-texto, inherit);
    font-size: 18px;
    font-weight: 600;
    text-transform: none;
}

.direccion-tarjeta__direccion {
    margin: 12px 0 24px;
    color: var(--contrast-2);
    font-size: 14px;
    font-style: normal;
    line-height: 1.6;
}

.direccion-tarjeta__accion {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: auto;
    padding-top: 24px;
    color: var(--contrast);
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
}

.direccion-tarjeta__accion:hover,
.direccion-tarjeta__accion:focus-visible {
    color: var(--contrast);
    text-decoration: underline;
    text-underline-offset: 4px;
}

.direccion-tarjeta__accion .icono {
    width: 14px;
    height: 14px;
}

/* Formularios de datos y direcciones. */
.woocommerce-MyAccount-content > form {
    max-width: 760px;
}

.woocommerce-account .cuenta-contenido form > h2,
.woocommerce-account .cuenta-contenido form > h3 {
    margin: 0 0 28px;
    color: var(--contrast);
    font-family: var(--fuente-texto, inherit);
    font-size: clamp(22px, 2vw, 28px);
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: -0.02em;
    text-transform: none;
}

.woocommerce-account .cuenta-contenido form .form-row {
    margin-bottom: 20px;
}

.woocommerce-account .cuenta-contenido form .form-row label {
    margin-bottom: 7px;
    font-size: 13px;
}

.woocommerce-account .cuenta-contenido form .woocommerce-address-fields > p:last-child,
.woocommerce-account .cuenta-contenido form > p:last-child {
    margin: 28px 0 0;
}

.woocommerce-account .cuenta-contenido form fieldset {
    margin-top: 36px;
}

.woocommerce-account .cuenta-contenido form fieldset legend {
    font-size: 18px;
    line-height: 1.3;
    text-transform: none;
}

.woocommerce-account .woocommerce-MyAccount-content .form-row-first,
.woocommerce-account .woocommerce-MyAccount-content .form-row-last {
    width: calc(50% - 8px);
}

.woocommerce-account .woocommerce-MyAccount-content em {
    color: var(--contrast-2);
    font-size: 13px;
}

/* Sin sesión: acceso y registro con pestañas + ventajas (form-login.php). */
.acceso {
    display: grid;
    grid-template-columns: minmax(0, 560px) minmax(260px, 380px);
    justify-content: center;
    gap: clamp(28px, 4vw, 72px);
    align-items: start;
    padding: clamp(8px, 2vw, 32px) 0 clamp(24px, 3vw, 48px);
}

.acceso__panel {
    padding: clamp(24px, 3vw, 40px);
    border: 1px solid color-mix(in srgb, var(--contrast) 12%, transparent);
    background: var(--base-3);
}

.acceso__pestanas {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px;
    margin-bottom: 28px;
    padding: 4px;
    background: color-mix(in srgb, var(--base-2) 28%, var(--base-3));
}

.acceso .acceso__pestana,
.acceso .acceso__pestana:hover,
.acceso .acceso__pestana:focus {
    min-height: 44px;
    padding: 0 16px;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--contrast-2);
    font-size: 15px;
    font-weight: 600;
    text-transform: none;
    cursor: pointer;
    transition: background-color var(--transicion), color var(--transicion), box-shadow var(--transicion);
}

.acceso .acceso__pestana:hover {
    color: var(--contrast);
}

.acceso .acceso__pestana[aria-selected="true"] {
    background: var(--base-3);
    box-shadow: 0 1px 4px rgb(0 0 0 / 0.08);
    color: var(--contrast);
}

.acceso__seccion[hidden] {
    display: none;
}

.acceso__seccion:not([hidden]) {
    animation: acceso-aparecer 0.25s ease;
}

@keyframes acceso-aparecer {
    from {
        opacity: 0;
        transform: translateY(6px);
    }
}

.woocommerce-account .acceso__titulo {
    margin: 0;
    color: var(--contrast);
    font-family: var(--fuente-texto, inherit);
    font-size: clamp(22px, 1.8vw, 28px);
    font-weight: 600;
    line-height: 1.2;
    text-transform: none;
}

.acceso__intro {
    margin: 6px 0 24px;
    color: var(--contrast-2);
    font-size: 15px;
}

.acceso form.login,
.acceso form.register {
    margin: 0;
    padding: 0;
    border: 0;
}

/* Registro en dos columnas (nombre/apellidos, correo/teléfono, CP/población). */
.woocommerce .acceso form .form-row-first,
.woocommerce .acceso form .form-row-last {
    width: calc(50% - 8px);
}

.acceso__direccion {
    clear: both;
    margin: 4px 0 18px;
    padding: 14px 16px;
    border: 1px solid color-mix(in srgb, var(--contrast) 12%, transparent);
}

.acceso__direccion > summary {
    color: var(--contrast);
    font-size: 14px;
    font-weight: 600;
    list-style: none;
    cursor: pointer;
}

.acceso__direccion > summary::-webkit-details-marker {
    display: none;
}

.acceso__direccion > summary::after {
    content: "+";
    float: right;
    font-weight: 400;
}

.acceso__direccion[open] > summary::after {
    content: "\2212";
}

.acceso__direccion-campos {
    padding-top: 16px;
}

.acceso__direccion-campos::after {
    content: "";
    display: table;
    clear: both;
}

.acceso .woocommerce-privacy-policy-text {
    clear: both;
    color: var(--contrast-2);
    font-size: 13px;
    line-height: 1.5;
}

.acceso .woocommerce-privacy-policy-text p {
    margin: 0 0 12px;
}

.acceso .woocommerce-privacy-policy-text a,
.acceso__acepto a {
    color: var(--contrast);
}

.woocommerce .acceso form .acceso__acepto label {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.45;
    cursor: pointer;
}

.acceso__acepto input {
    flex: none;
    width: 18px;
    height: 18px;
    margin: 1px 0 0;
}

.acceso__opciones {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 10px 16px;
    margin-bottom: 20px;
    font-size: 14px;
}

.woocommerce .acceso__opciones label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    font-weight: 400;
}

.acceso__opciones a {
    color: var(--contrast);
    text-underline-offset: 3px;
}

.acceso__enviar {
    clear: both;
}

.woocommerce-account .woocommerce .acceso .woocommerce-form-login__submit,
.woocommerce-account .woocommerce .acceso .woocommerce-form-register__submit {
    width: 100%;
    min-height: 52px;
    border-color: var(--contrast);
    background: var(--contrast);
    color: var(--base-3);
    font-size: 15px;
}

.woocommerce-account .woocommerce .acceso .woocommerce-form-login__submit:hover,
.woocommerce-account .woocommerce .acceso .woocommerce-form-register__submit:hover {
    border-color: var(--contrast-2);
    background: var(--contrast-2);
}

.woocommerce-account .woocommerce .acceso .woocommerce-form-register__submit:disabled {
    cursor: not-allowed;
    opacity: 0.45;
}

/* Medidor de seguridad de la contraseña (WooCommerce). */
.acceso .woocommerce-password-strength {
    margin-top: 6px;
    padding: 6px 10px;
    border: 0;
    font-size: 13px;
    font-weight: 600;
    text-align: left;
}

.acceso .woocommerce-password-hint {
    display: block;
    margin-top: 6px;
    color: var(--contrast-2);
    font-size: 12px;
}

.acceso__cambio {
    margin: 20px 0 0;
    padding-top: 18px;
    border-top: 1px solid color-mix(in srgb, var(--contrast) 10%, transparent);
    color: var(--contrast-2);
    font-size: 14px;
    text-align: center;
}

.acceso .acceso__enlace,
.acceso .acceso__enlace:hover,
.acceso .acceso__enlace:focus {
    padding: 0;
    border: 0;
    background: none;
    color: var(--contrast);
    font-size: 14px;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
    text-transform: none;
    cursor: pointer;
}

/* Ventajas de la cuenta. */
.acceso__ventajas {
    position: sticky;
    top: calc(var(--admin-offset, 0px) + var(--cabecera-altura, 88px) + 24px);
    padding: clamp(24px, 2.6vw, 36px);
    background: color-mix(in srgb, var(--base-2) 28%, var(--base-3));
}

.woocommerce-account .acceso__ventajas-titulo {
    margin: 0 0 20px;
    color: var(--contrast);
    font-family: var(--fuente-texto, inherit);
    font-size: 17px;
    font-weight: 600;
    text-transform: none;
}

.acceso__ventajas ul {
    display: grid;
    gap: 18px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.acceso__ventajas li {
    display: flex;
    gap: 14px;
    margin: 0;
}

.acceso__ventajas li .icono {
    flex: none;
    width: 22px;
    height: 22px;
    margin-top: 1px;
    color: var(--contrast);
}

.acceso__ventajas li span {
    color: var(--contrast-2);
    font-size: 14px;
    line-height: 1.45;
}

.acceso__ventajas li strong {
    display: block;
    color: var(--contrast);
    font-size: 15px;
}


/* ================================================
   PÁGINA 404
   ================================================ */

.pagina-404 {
    box-sizing: border-box;
    flex: 1 1 100%;
    width: 100%;
    padding: clamp(44px, 5vw, 84px) var(--margen-interior) clamp(64px, 7vw, 120px);
    overflow: hidden;
}

.pagina-404__interior {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: clamp(26px, 3vw, 44px);
    max-width: 920px;
    margin-inline: auto;
    text-align: center;
}

.pagina-404__contenido {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    order: 2;
}

.pagina-404__codigo {
    margin: 0 0 14px;
    color: var(--accent);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.pagina-404__titulo {
    max-width: 14em;
    margin: 0;
    font-size: clamp(36px, 4vw, 62px);
    font-weight: 400;
    line-height: 1.02;
}

.pagina-404__texto {
    max-width: 48ch;
    margin: 18px 0 0;
    color: var(--contrast-2);
    font-size: clamp(16px, 1.05vw, 19px);
    line-height: 1.6;
}

.pagina-404__acciones {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 10px;
    margin-top: 28px;
}

.pagina-404__boton-secundario {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 58px;
    padding: 0 24px;
    border: 1px solid var(--contrast);
    border-radius: var(--radio);
    background: var(--base-3);
    color: var(--contrast);
    font-family: var(--fuente-titulos, inherit);
    font-size: 17px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    text-transform: uppercase;
    transition: background-color var(--transicion), color var(--transicion);
}

.pagina-404__boton-secundario:hover,
.pagina-404__boton-secundario:focus-visible {
    background: var(--contrast);
    color: var(--base-3);
}

.pagina-404__visual {
    order: 1;
    width: min(100%, 530px);
    margin: 0;
}

.pagina-404__visual img {
    display: block;
    width: 100%;
    height: auto;
}


/* ================================================
   BLOG
   ================================================ */

.blog {
    box-sizing: border-box;
    width: 100%;
    overflow: hidden;
}

.blog *,
.blog *::before,
.blog *::after {
    box-sizing: border-box;
}

.pagina-blog .inside-article {
    padding: 0;
}

.pagina-blog .site-content {
    padding-inline: 0;
}

.pagina-blog .entry-content {
    margin-top: 0;
}

.blog__archivo {
    box-sizing: border-box;
    max-width: calc(var(--ancho-maximo, 100%) + 2 * var(--margen-interior));
    margin-inline: auto;
    padding: clamp(24px, 2.5vw, 48px) var(--margen-interior) clamp(64px, 7vw, 120px);
}

.blog__archivo-cabecera {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 32px;
    margin-bottom: clamp(28px, 3vw, 44px);
    padding-bottom: 16px;
    border-bottom: 1px solid color-mix(in srgb, var(--contrast) 18%, transparent);
}

.blog__archivo-cabecera h1 {
    margin: 0;
    font-size: clamp(30px, 2.6vw, 42px);
    line-height: 1;
}

.blog__categorias {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px 24px;
}

.blog__categoria {
    padding-block: 3px;
    color: var(--contrast-2);
    font-size: 15px;
    text-decoration: none;
    text-underline-offset: 5px;
}

.blog__categoria:hover,
.blog__categoria:focus-visible,
.blog__categoria.is-activa {
    color: var(--contrast);
    text-decoration: underline;
}

.blog__rejilla {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(42px, 5vw, 80px) clamp(18px, 2.2vw, 36px);
}

.blog-tarjeta {
    min-width: 0;
}

.blog-tarjeta--destacada {
    grid-column: 1 / -1;
}

.blog-tarjeta__enlace {
    display: flex;
    flex-direction: column;
    height: 100%;
    color: var(--contrast);
    text-decoration: none;
}

.blog-tarjeta--destacada .blog-tarjeta__enlace {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(300px, 0.6fr);
    background: color-mix(in srgb, var(--base) 42%, var(--base-3));
}

.blog-tarjeta--destacada.blog-tarjeta--sin-imagen .blog-tarjeta__enlace {
    grid-template-columns: minmax(0, 1fr);
}

.blog-tarjeta--destacada.blog-tarjeta--sin-imagen .blog-tarjeta__contenido {
    max-width: 880px;
}

.blog-tarjeta__imagen {
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--base-2);
}

/* La destacada toma su altura de la imagen 16:9; crece solo si el texto no cabe. */
.blog-tarjeta--destacada .blog-tarjeta__imagen {
    align-self: stretch;
    aspect-ratio: 16 / 9;
}

.blog-tarjeta__imagen img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.blog-tarjeta__contenido {
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: flex-start;
    padding-top: 22px;
}

.blog-tarjeta--destacada .blog-tarjeta__contenido {
    justify-content: flex-end;
    padding: clamp(28px, 2.6vw, 40px);
}

.blog-tarjeta--sin-imagen:not(.blog-tarjeta--destacada) .blog-tarjeta__contenido {
    min-height: 360px;
    padding: clamp(28px, 2.5vw, 42px);
    background: color-mix(in srgb, var(--base-2) 60%, var(--base-3));
}

.blog-tarjeta__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 18px;
    color: var(--contrast-2);
    font-size: 13px;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.blog-tarjeta__titulo {
    margin: 0;
    font-size: clamp(21px, 1.6vw, 28px);
    line-height: 1.08;
    text-wrap: balance;
}

.blog-tarjeta--destacada .blog-tarjeta__titulo {
    font-size: clamp(30px, 2.6vw, 42px);
}

.blog-tarjeta__resumen {
    display: block;
    max-width: 54ch;
    margin-top: 18px;
    color: var(--contrast-2);
    font-size: 16px;
    line-height: 1.55;
}

.blog-tarjeta__accion {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-top: auto;
    padding-top: 30px;
    color: var(--contrast);
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
}

.blog-tarjeta__accion .icono {
    width: 17px;
    height: 17px;
    transition: transform var(--transicion);
}

.blog-tarjeta__enlace:hover .blog-tarjeta__accion .icono {
    transform: translate(3px, -3px);
}

.blog__paginacion {
    margin-top: clamp(58px, 6vw, 92px);
    padding-top: 24px;
    border-top: 1px solid color-mix(in srgb, var(--contrast) 18%, transparent);
}

.blog__paginacion .page-numbers {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.blog__paginacion a,
.blog__paginacion .current {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    min-height: 44px;
    color: var(--contrast);
    text-decoration: none;
}

.blog__paginacion .current {
    background: var(--contrast);
    color: var(--base-3);
}

.blog__vacio {
    display: grid;
    min-height: 320px;
    place-items: center;
    background: color-mix(in srgb, var(--base-2) 58%, var(--base-3));
    text-align: center;
}

.blog__vacio p {
    max-width: 34ch;
    margin: 0;
    padding: 32px;
    color: var(--contrast-2);
    font-size: clamp(20px, 2vw, 28px);
}


/* ================================================
   ENTRADA DEL BLOG
   ================================================ */

.entrada {
    width: 100%;
    overflow: hidden;
}

/* Misma columna que .entrada__contenido (760px) para alinear cabecera y texto. */
.entrada__cabecera {
    box-sizing: border-box;
    max-width: calc(760px + 2 * var(--margen-interior));
    margin-inline: auto;
    padding: clamp(24px, 2.5vw, 48px) var(--margen-interior) clamp(28px, 2.5vw, 40px);
}

.entrada__volver {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: clamp(20px, 2vw, 28px);
    color: var(--contrast-2);
    font-size: 12px;
    letter-spacing: 0.04em;
    font-weight: 600;
    text-decoration: none;
    text-transform: uppercase;
}

.entrada__volver:hover,
.entrada__volver:focus-visible {
    color: var(--contrast);
}

.entrada__cabecera-interior {
    max-width: 1120px;
}

.entrada__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-bottom: 24px;
    color: var(--contrast-2);
    font-size: 14px;
    letter-spacing: 0.035em;
    text-transform: uppercase;
}

.entrada__meta a {
    color: inherit;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
    transition: color var(--transicion);
}

.entrada__meta a:hover,
.entrada__meta a:focus-visible {
    color: var(--contrast);
}

.entrada__titulo {
    max-width: 20em;
    margin: 0;
    font-size: clamp(32px, 3vw, 48px);
    font-weight: 400;
    line-height: 1.1;
    letter-spacing: 0;
    text-wrap: balance;
}

.entrada__resumen {
    max-width: 62ch;
    margin: clamp(20px, 2vw, 28px) 0 0;
    color: var(--contrast-2);
    font-size: clamp(17px, 1.2vw, 20px);
    line-height: 1.55;
}

.entrada__imagen-principal {
    width: calc(100% - (2 * var(--margen-interior)));
    max-width: 760px;
    max-height: 820px;
    margin: 0 auto;
    overflow: hidden;
}

.entrada__imagen-principal img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 820px;
    object-fit: cover;
}

.entrada__lectura {
    box-sizing: border-box;
    max-width: calc(var(--ancho-maximo, 100%) + 2 * var(--margen-interior));
    margin-inline: auto;
    padding: clamp(32px, 3vw, 48px) var(--margen-interior) clamp(56px, 6vw, 96px);
}

.entrada__contenido {
    max-width: 760px;
    margin-inline: auto;
    color: var(--contrast-2);
    font-size: clamp(17px, 1.05vw, 18px);
    line-height: 1.75;
}

.entrada__contenido > *:first-child {
    margin-top: 0;
}

.entrada__contenido > *:last-child {
    margin-bottom: 0;
}

.entrada__contenido p,
.entrada__contenido ul,
.entrada__contenido ol {
    margin: 0 0 1.55em;
}

.entrada__contenido h2,
.entrada__contenido h3 {
    margin: 2em 0 0.6em;
    color: var(--contrast);
    line-height: 1.2;
    letter-spacing: 0.01em;
    text-wrap: balance;
}

.entrada__contenido h2 {
    font-size: clamp(22px, 1.6vw, 27px);
}

.entrada__contenido h3 {
    font-size: clamp(19px, 1.25vw, 21px);
}

.entrada__contenido a {
    color: var(--accent);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
}

.entrada__contenido blockquote {
    margin: clamp(42px, 5vw, 70px) 0;
    padding: clamp(28px, 3vw, 44px);
    background: color-mix(in srgb, var(--base-2) 58%, var(--base-3));
    color: var(--contrast);
    font-family: var(--fuente-titulos, inherit);
    font-size: clamp(20px, 1.6vw, 25px);
    line-height: 1.4;
}

.entrada__contenido blockquote p {
    margin: 0;
}

.entrada__contenido h4 {
    margin: 1.8em 0 0.5em;
    color: var(--contrast);
    font-size: 17px;
    line-height: 1.2;
}

.entrada__contenido strong,
.entrada__contenido b {
    color: var(--contrast);
    font-weight: 600;
}

.entrada__contenido ul,
.entrada__contenido ol {
    padding-left: 1.25em;
}

.entrada__contenido li {
    margin-bottom: 0.5em;
    padding-left: 0.25em;
}

.entrada__contenido li::marker {
    color: var(--accent);
}

.entrada__contenido img {
    display: block;
    width: auto;
    max-width: 100%;
    height: auto;
    margin-inline: auto;
}

.entrada__contenido figure {
    margin: clamp(36px, 4vw, 56px) 0;
}

.entrada__contenido figcaption {
    margin-top: 12px;
    color: var(--contrast-3);
    font-size: 14px;
    line-height: 1.5;
    text-align: center;
}

.entrada__contenido hr {
    height: 1px;
    margin: clamp(42px, 5vw, 64px) 0;
    border: 0;
    background: color-mix(in srgb, var(--contrast) 16%, transparent);
}

.entrada__contenido table {
    width: 100%;
    margin: 0 0 1.55em;
    border-collapse: collapse;
    font-size: 16px;
}

.entrada__contenido th,
.entrada__contenido td {
    padding: 12px 14px;
    border-bottom: 1px solid color-mix(in srgb, var(--contrast) 14%, transparent);
    text-align: left;
}

.entrada__contenido th {
    color: var(--contrast);
    font-weight: 600;
}

.entrada__navegacion {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: calc(100% - (2 * var(--margen-interior)));
    max-width: var(--ancho-maximo, 100%);
    margin-inline: auto;
    border-top: 1px solid color-mix(in srgb, var(--contrast) 16%, transparent);
    border-bottom: 1px solid color-mix(in srgb, var(--contrast) 16%, transparent);
}

.entrada__navegacion-enlace {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 42px;
    min-height: 240px;
    padding: clamp(28px, 4vw, 56px) clamp(20px, 2.5vw, 40px);
    color: var(--contrast);
    text-decoration: none;
    transition: background-color var(--transicion);
}

.entrada__navegacion-enlace + .entrada__navegacion-enlace {
    border-left: 1px solid color-mix(in srgb, var(--contrast) 16%, transparent);
}

.entrada__navegacion-enlace:hover,
.entrada__navegacion-enlace:focus-visible {
    background: color-mix(in srgb, var(--base-2) 50%, var(--base-3));
}

.entrada__navegacion-enlace--siguiente {
    grid-column: 2;
    text-align: right;
}

.entrada__navegacion-direccion {
    color: var(--contrast-2);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.entrada__navegacion-titulo {
    font-family: var(--fuente-titulos, inherit);
    font-size: clamp(18px, 1.4vw, 22px);
    line-height: 1.2;
    text-transform: uppercase;
    text-wrap: balance;
}

.entrada__relacionados {
    box-sizing: border-box;
    max-width: calc(var(--ancho-maximo, 100%) + 2 * var(--margen-interior));
    margin-inline: auto;
    padding: var(--espacio-seccion) var(--margen-interior);
}

.entrada__relacionados-cabecera {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: clamp(28px, 3vw, 44px);
    padding-bottom: 16px;
    border-bottom: 1px solid color-mix(in srgb, var(--contrast) 18%, transparent);
}

.entrada__relacionados-cabecera h2 {
    margin: 0;
    font-size: clamp(22px, 1.7vw, 28px);
    line-height: 1.1;
}

.entrada__relacionados-cabecera a {
    color: var(--contrast);
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    text-transform: uppercase;
}

.entrada__relacionados-rejilla {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(18px, 2.2vw, 36px);
}


/* ================================================
   TIENDAS FÍSICAS — [adhoc_tiendas], [adhoc_tienda], [adhoc_tienda_gracias]
   ================================================ */

/* Botón secundario con borde (reutilizable junto a .boton). */
.boton--borde {
    border: 1px solid var(--contrast);
    background: transparent;
    color: var(--contrast);
}

.boton--borde:hover,
.boton--borde:focus-visible {
    background: var(--contrast);
    color: var(--base-3);
}

.tiendas,
.tienda,
.tienda-gracias {
    box-sizing: border-box;
    max-width: calc(var(--ancho-maximo, 100%) + 2 * var(--margen-interior));
    margin-inline: auto;
    padding: clamp(24px, 2.5vw, 48px) var(--margen-interior) var(--espacio-seccion);
}

.tiendas *,
.tienda *,
.tienda-gracias * {
    box-sizing: border-box;
}

.tienda__antetitulo {
    margin: 0 0 10px;
    color: var(--contrast-2);
    font-size: 12px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.tiendas__cabecera,
.tienda__cabecera {
    margin-bottom: clamp(28px, 3vw, 44px);
    padding-bottom: 16px;
    border-bottom: 1px solid color-mix(in srgb, var(--contrast) 18%, transparent);
}

.tiendas__titulo,
.tienda__titulo {
    margin: 0;
    font-size: clamp(30px, 2.6vw, 42px);
    line-height: 1;
}

.tiendas__intro,
.tienda__intro {
    max-width: 64ch;
    margin: 12px 0 0;
    color: var(--contrast-2);
    font-size: 16px;
    line-height: 1.55;
}

.tiendas__lista {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: clamp(14px, 1.6vw, 28px);
    margin: 0;
    padding: 0;
    list-style: none;
}

.tiendas__lista li {
    margin: 0;
}

/* Tarjeta enlazada de tienda. */
.tienda-tarjeta {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    height: 100%;
    padding: clamp(22px, 2vw, 32px);
    background: color-mix(in srgb, var(--base) 42%, var(--base-3));
    color: var(--contrast);
    text-decoration: none;
    transition: background-color var(--transicion);
}

.tienda-tarjeta:hover,
.tienda-tarjeta:focus-visible {
    background: color-mix(in srgb, var(--base) 62%, var(--base-3));
    color: var(--contrast);
}

.tienda-tarjeta__zona {
    color: var(--contrast-2);
    font-size: 12px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.tienda-tarjeta__titulo {
    margin: 8px 0 12px;
    font-size: clamp(21px, 1.6vw, 26px);
    line-height: 1.1;
}

.tienda-tarjeta__direccion {
    color: var(--contrast-2);
    font-size: 15px;
    line-height: 1.6;
}

.tienda-tarjeta__accion {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    margin-top: auto;
    padding-top: 20px;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
}

.tienda-tarjeta__accion .icono {
    width: 17px;
    height: 17px;
    transition: transform var(--transicion);
}

.tienda-tarjeta:hover .tienda-tarjeta__accion .icono {
    transform: translate(3px, -3px);
}

/* Ficha de tienda: datos y mapa a la par; debajo, bloque de formulario. */
.tienda__cuerpo {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: clamp(14px, 1.6vw, 28px);
    align-items: stretch;
}

.tienda__datos {
    display: flex;
    flex-direction: column;
    padding: clamp(24px, 2.6vw, 44px);
    background: color-mix(in srgb, var(--base) 42%, var(--base-3));
}

.tienda__datos .tienda__acciones {
    margin-top: auto;
}

.tienda__mapa {
    position: relative;
    min-height: 420px;
    overflow: hidden;
    background: var(--base-2);
}

.tienda__mapa iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    filter: grayscale(0.35);
}

.tienda__lista {
    margin: 0 0 32px;
}

.tienda__dato {
    padding: 16px 0;
    border-bottom: 1px solid color-mix(in srgb, var(--contrast) 16%, transparent);
}

.tienda__dato:first-child {
    padding-top: 0;
}

.tienda__dato dt {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 6px;
    color: var(--contrast-2);
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.tienda__dato dt .icono {
    width: 17px;
    height: 17px;
    color: var(--accent);
}

.tienda__dato dd {
    margin: 0;
    color: var(--contrast);
    font-size: 16px;
    line-height: 1.55;
}

.tienda__dato address {
    font-style: normal;
}

.tienda__dato a {
    color: inherit;
    text-decoration: none;
    transition: color var(--transicion);
}

.tienda__dato a:hover,
.tienda__dato a:focus-visible {
    color: var(--accent);
}

.tienda__acciones {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.tienda__formulario {
    display: grid;
    grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
    gap: clamp(28px, 5vw, 96px);
    margin-top: var(--espacio-seccion);
    padding-top: clamp(24px, 2.5vw, 40px);
    border-top: 1px solid color-mix(in srgb, var(--contrast) 18%, transparent);
}

.tienda__formulario-telefono {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--contrast);
    font-size: 15px;
    font-weight: 500;
    text-decoration: none;
    transition: color var(--transicion);
}

.tienda__formulario-telefono .icono {
    width: 17px;
    height: 17px;
    color: var(--accent);
}

.tienda__formulario-telefono:hover,
.tienda__formulario-telefono:focus-visible {
    color: var(--accent);
}

.tienda__formulario-titulo {
    margin: 0;
    font-size: clamp(21px, 1.6vw, 26px);
    line-height: 1.1;
}

.tienda__formulario-texto {
    margin: 8px 0 24px;
    color: var(--contrast-2);
    font-size: 15px;
}

/* Gravity Forms (todos los formularios): mismo aspecto que .campo y .boton.
   GF fija tamaño y radio en un <style> sobre el contenedor; se redefinen en
   .gform_body/.gform_footer, que heredan de él. Colores: gform_default_styles. */
.gform-theme--framework {
    font-family: inherit;
}

.gform-theme--framework .gform_body,
.gform-theme--framework .gform_footer {
    --gf-radius: 0;
    --gf-ctrl-radius: 0;
    --gf-ctrl-size: var(--campo-alto);
    --gf-ctrl-padding-x: var(--campo-relleno-x);
    --gf-ctrl-font-size: var(--campo-texto);
    --gf-ctrl-border-color: var(--campo-borde);
    --gf-ctrl-border-color-hover: color-mix(in srgb, var(--contrast) 40%, transparent);
    --gf-ctrl-border-color-focus: var(--campo-borde-foco);
    --gf-ctrl-shadow: none;
    --gf-ctrl-outline-width-focus: 1px;
    --gf-ctrl-outline-color-focus: var(--campo-borde-foco);
    --gf-ctrl-outline-offset: 0;
    --gf-ctrl-placeholder-color: var(--campo-placeholder);
    --gf-ctrl-label-font-size-primary: 14px;
    --gf-ctrl-label-font-weight-primary: 600;
    --gf-ctrl-label-color-req: var(--campo-obligatorio);
    --gf-ctrl-label-font-weight-req: 700;
    --gf-ctrl-label-font-size-secondary: 14px;
    --gf-ctrl-label-font-weight-secondary: 400;
    --gf-ctrl-checkbox-check-radius: 0;
    --gf-ctrl-choice-size: 20px;
    --gf-ctrl-btn-size: 58px;
    --gf-ctrl-btn-padding-x: 24px;
    --gf-ctrl-btn-radius: var(--radio);
    --gf-ctrl-btn-font-size: 17px;
    --gf-ctrl-btn-font-weight: 600;
    --gf-ctrl-btn-text-transform: uppercase;
    --gf-ctrl-btn-shadow: none;
}

.gform-theme--framework textarea {
    min-height: 140px;
}

/* Sin la nota "*" señala los campos obligatorios (el asterisco basta). */
.gform-theme--framework .gform_required_legend {
    display: none;
}

.tienda__formulario .gform_footer {
    margin-top: 8px;
}

.tienda__formulario .gform_button {
    min-width: 220px;
}

.tienda__formulario .gfield_consent_label a {
    color: var(--accent);
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Solicitud de información desde la ficha de producto. */
.ficha .ficha__solicitud {
    width: 100%;
    border: 0;
    cursor: pointer;
}

.ficha__variaciones-consulta {
    margin-top: 24px;
}

.ficha__variaciones-consulta form.cart {
    margin: 0;
}

.ficha__variaciones-consulta .woocommerce-variation-add-to-cart,
.ficha__variaciones-consulta .woocommerce-variation-availability {
    display: none;
}

body.modal-abierto {
    overflow: hidden;
}

/* Modal "Solicita información": cabecera fija, cuerpo con scroll oculto. */
.modal-solicitud {
    box-sizing: border-box;
    width: min(600px, calc(100% - 32px));
    max-height: calc(100dvh - 48px);
    margin: auto;
    padding: 0;
    overflow: hidden;
    border: 0;
    border-radius: 0;
    background: var(--base-3);
    color: var(--contrast);
    box-shadow: 0 24px 60px rgb(0 0 0 / 0.18);
}

.modal-solicitud *,
.modal-solicitud *::before,
.modal-solicitud *::after {
    box-sizing: border-box;
}

.modal-solicitud[open] {
    display: flex;
    animation: modal-entrar 0.26s cubic-bezier(0.16, 1, 0.3, 1);
}

.modal-solicitud::backdrop {
    background: rgb(17 17 17 / 0.55);
    animation: modal-fondo 0.26s ease;
}

.modal-solicitud__panel {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-height: calc(100dvh - 48px);
}

.modal-solicitud__cabecera {
    display: grid;
    flex: none;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 20px;
    align-items: start;
    padding: clamp(22px, 2.4vw, 32px) clamp(22px, 2.6vw, 36px) 18px;
    border-bottom: 1px solid color-mix(in srgb, var(--contrast) 10%, transparent);
}

.modal-solicitud__cabecera h2 {
    max-width: 18em;
    margin: 0;
    font-size: clamp(20px, 1.6vw, 24px);
    line-height: 1.15;
}

.modal-solicitud__cabecera p {
    max-width: 48ch;
    margin: 6px 0 0;
    color: var(--contrast-2);
    font-size: 14px;
    line-height: 1.5;
}

.modal-solicitud .modal-solicitud__cerrar,
.modal-solicitud .modal-solicitud__cerrar:focus {
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    margin: -6px -8px 0 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--contrast);
    cursor: pointer;
    transition: background-color var(--transicion);
}

.modal-solicitud .modal-solicitud__cerrar:hover,
.modal-solicitud .modal-solicitud__cerrar:focus-visible {
    background: color-mix(in srgb, var(--base) 35%, var(--base-3));
    color: var(--contrast);
}

.modal-solicitud__cerrar .icono {
    width: 20px;
    height: 20px;
}

/* Cuerpo desplazable: producto + formulario. Scroll sin barra visible. */
.modal-solicitud__producto,
.modal-solicitud__formulario {
    padding-inline: clamp(22px, 2.6vw, 36px);
}

.modal-solicitud__panel > :not(.modal-solicitud__cabecera) {
    flex: none;
}

.modal-solicitud__panel {
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: none;
}

.modal-solicitud__panel::-webkit-scrollbar {
    display: none;
}

.modal-solicitud__cabecera {
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--base-3);
}

.modal-solicitud__producto {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 16px;
    align-items: center;
    margin: 20px clamp(22px, 2.6vw, 36px) 24px;
    padding: 12px 16px 12px 12px;
    background: color-mix(in srgb, var(--base) 30%, var(--base-3));
}

.modal-solicitud__producto img {
    display: block;
    width: 64px;
    height: 64px;
    object-fit: cover;
    background: var(--base-3);
}

.modal-solicitud__producto-nombre {
    display: block;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.3;
}

.modal-solicitud__variacion {
    display: flex;
    flex-wrap: wrap;
    gap: 2px 14px;
    margin: 4px 0 0;
    padding: 0;
    list-style: none;
    color: var(--contrast);
    font-size: 13px;
    line-height: 1.4;
}

.modal-solicitud__variacion[hidden] {
    display: none;
}

.modal-solicitud__variacion li {
    margin: 0;
}

.modal-solicitud__variacion span {
    color: var(--contrast-2);
}

.modal-solicitud__precio {
    font-size: 15px;
    font-weight: 600;
    text-align: right;
    white-space: nowrap;
}

.modal-solicitud__precio .precio-partido {
    font-size: 17px;
}

.modal-solicitud__precio .ficha__desde {
    display: block;
    font-size: 11px;
}

.modal-solicitud__precio del {
    display: block;
    color: var(--contrast-3);
    font-size: 12px;
    font-weight: 400;
}

.modal-solicitud__precio ins {
    text-decoration: none;
}

.modal-solicitud__precio:empty {
    display: none;
}

.modal-solicitud__formulario {
    padding-bottom: clamp(22px, 2.6vw, 36px);
}

.modal-solicitud__formulario .gform_wrapper {
    margin: 0;
}

.modal-solicitud__formulario .gform_fields {
    row-gap: 18px;
}

.modal-solicitud__formulario textarea {
    min-height: 110px;
    height: 110px;
}

.modal-solicitud__formulario .gform_footer {
    margin-top: 8px;
    padding-bottom: 0;
}

.modal-solicitud__formulario .gform_button {
    width: 100%;
}

.modal-solicitud__formulario .gfield_consent_label,
.modal-solicitud__formulario .gfield--type-checkbox .gform-field-label--type-inline {
    color: var(--contrast-2);
    font-size: 13px;
    line-height: 1.45;
}

/* Página de confirmación de solicitud: columna centrada con ilustración. */
.gracias-solicitud {
    box-sizing: border-box;
    width: 100%;
    max-width: calc(640px + 2 * var(--margen-interior));
    margin-inline: auto;
    padding: clamp(40px, 5vw, 88px) var(--margen-interior) var(--espacio-seccion);
    text-align: center;
}

.gracias-solicitud__interior {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.gracias-solicitud__visual {
    display: block;
    width: auto;
    height: clamp(180px, 18vw, 260px);
    margin-bottom: clamp(28px, 3vw, 44px);
}

.gracias-solicitud .gracias-solicitud__antetitulo {
    margin: 0 0 10px;
    color: var(--accent);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}

.gracias-solicitud h1 {
    margin: 0;
    font-size: clamp(28px, 2.4vw, 38px);
    line-height: 1.08;
    text-wrap: balance;
}

.gracias-solicitud .gracias-solicitud__texto {
    max-width: 46ch;
    margin: 14px 0 30px;
    color: var(--contrast-2);
    font-size: 16px;
    line-height: 1.6;
}

.gracias-solicitud__acciones {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px;
}

.gracias-solicitud .gracias-solicitud__ayuda {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin: 28px 0 0;
    padding-top: 22px;
    border-top: 1px solid color-mix(in srgb, var(--contrast) 12%, transparent);
    color: var(--contrast-2);
    font-size: 14px;
}

.gracias-solicitud__ayuda .icono {
    width: 16px;
    height: 16px;
    color: var(--accent);
}

.gracias-solicitud__ayuda a {
    color: var(--contrast);
    font-weight: 600;
    text-decoration: none;
}

.gracias-solicitud__ayuda a:hover,
.gracias-solicitud__ayuda a:focus-visible {
    color: var(--accent);
}

.tienda__otras {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: clamp(16px, 2vw, 28px);
    row-gap: clamp(16px, 2vw, 28px);
    margin-top: var(--espacio-seccion);
    align-items: stretch;
}

.tienda__otras-titulo {
    margin: 0 0 clamp(20px, 2vw, 32px);
    padding-bottom: 16px;
    border-bottom: 1px solid color-mix(in srgb, var(--contrast) 18%, transparent);
    font-size: clamp(22px, 1.7vw, 28px);
    line-height: 1.1;
}

.tienda__otras .tienda-tarjeta {
    width: 100%;
    max-width: none;
    min-width: 0;
    min-height: 250px;
}

.tienda__otras > .tienda__otras-titulo {
    grid-column: 1 / -1;
    margin-bottom: 0;
}

/* Gracias tras enviar el formulario. */
.tienda-gracias {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(32px, 5vw, 96px);
    align-items: center;
    max-width: calc(1180px + 2 * var(--margen-interior));
    padding-top: clamp(40px, 5vw, 96px);
}

.tienda-gracias__visual img {
    display: block;
    width: 100%;
    max-width: 420px;
    height: auto;
    max-height: 440px;
    margin-inline: auto;
    object-fit: contain;
}

.tienda-gracias__titulo {
    margin: 0;
    font-size: clamp(28px, 2.4vw, 38px);
    line-height: 1.08;
}

.tienda-gracias__mensaje {
    max-width: 46ch;
    margin: 14px 0 28px;
    color: var(--contrast-2);
    font-size: 16px;
    line-height: 1.6;
}

/* Submenú de cabecera: indicador en el elemento padre (escritorio). */
.cabecera__menu > .menu-item-has-children > a {
    padding-right: 16px;
}

.cabecera__menu > .menu-item-has-children > a::before {
    content: "";
    position: absolute;
    top: 50%;
    right: 2px;
    width: 6px;
    height: 6px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: translateY(-70%) rotate(45deg);
    transition: transform var(--transicion);
}

.cabecera__menu > .menu-item-has-children:hover > a::before,
.cabecera__menu > .menu-item-has-children:focus-within > a::before {
    transform: translateY(-30%) rotate(225deg);
}


/* ================================================
   PÁGINAS LEGALES (aviso legal, privacidad, cookies…)
   Columna de 760px como los artículos y tipografía de lectura.
   ================================================ */

/* GP (one-container) suma 40px al .site-content: se anula para que el
   arranque coincida con blog, tiendas y artículos. */
body.pagina-legal-vista .site-content {
    padding: 0 var(--margen-interior);
}

.pagina-legal-vista .inside-article {
    max-width: 760px;
    margin-inline: auto;
    padding: clamp(24px, 2.5vw, 48px) 0 var(--espacio-seccion);
}

.pagina-legal-vista .entry-header {
    margin-bottom: clamp(24px, 2.5vw, 36px);
    padding-bottom: 16px;
    border-bottom: 1px solid color-mix(in srgb, var(--contrast) 14%, transparent);
}

.pagina-legal-vista .entry-title {
    margin: 0;
    font-size: clamp(28px, 2.4vw, 38px);
    line-height: 1.1;
}

/* El contenido repite el título como h2: el h1 de la página basta. */
.pagina-legal > h2:first-child {
    display: none;
}

.pagina-legal {
    color: var(--contrast-2);
    font-size: 16px;
    line-height: 1.7;
}

.pagina-legal p,
.pagina-legal ul,
.pagina-legal ol {
    margin: 0 0 1.2em;
}

.pagina-legal ul,
.pagina-legal ol {
    padding-left: 1.2em;
}

.pagina-legal li {
    margin-bottom: 0.4em;
}

.pagina-legal h2,
.pagina-legal h3,
.pagina-legal h4 {
    color: var(--contrast);
    line-height: 1.25;
    letter-spacing: 0.01em;
}

.pagina-legal h3 {
    margin: 2em 0 0.6em;
    font-size: clamp(17px, 1.2vw, 19px);
}

.pagina-legal h4 {
    margin: 1.5em 0 0.5em;
    font-size: 15px;
}

.pagina-legal strong {
    color: var(--contrast);
    font-weight: 600;
}

.pagina-legal a {
    color: var(--accent);
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}


/* ================================================
   RESPONSIVE
   ================================================ */

@media (max-width: 1366px) {
    .catalogo__rejilla {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    /* Menu principal en panel lateral */
    .cabecera__hamburguesa,
    .cabecera__cerrar {
        display: inline-flex;
    }

    .cabecera__navegacion {
        position: fixed;
        inset: var(--admin-offset, 0px) 0 0 auto;
        z-index: 200;
        display: flex;
        flex-direction: column;
        justify-content: flex-start;
        align-items: stretch;
        width: min(420px, 100%);
        padding: 0 32px 32px;
        overflow-y: auto;
        background: var(--base-3);
        color: var(--contrast);
        box-shadow: -10px 0 40px color-mix(in srgb, var(--contrast) 15%, transparent);
        transform: translateX(100%);
        visibility: hidden;
        transition: transform var(--transicion), visibility var(--transicion);
    }

    .cabecera__navegacion.is-abierto {
        transform: none;
        visibility: visible;
    }

    .cabecera__panel-cabecera {
        display: flex;
        flex: none;
        align-items: center;
        justify-content: space-between;
        min-height: 80px;
        border-bottom: 1px solid color-mix(in srgb, var(--contrast) 12%, transparent);
    }

    .cabecera__panel-titulo {
        font-size: 13px;
        font-weight: 600;
        letter-spacing: 0.06em;
        text-transform: uppercase;
    }

    .cabecera .cabecera__cerrar {
        position: static;
        align-items: center;
        justify-content: center;
        width: 40px;
        height: 40px;
        padding: 0;
        color: var(--contrast);
        background: transparent;
        border: 0;
        cursor: pointer;
    }

    .cabecera .cabecera__cerrar:hover,
    .cabecera .cabecera__cerrar:focus-visible {
        color: var(--accent);
        background: var(--base-2);
    }

    .cabecera__cerrar .icono {
        width: 21px;
        height: 21px;
    }

    .cabecera__menu {
        display: block;
        flex: none;
        padding-block: 20px;
    }

    .cabecera__menu a {
        padding: 14px 0;
        border-bottom: 1px solid color-mix(in srgb, var(--contrast) 12%, transparent);
        font-size: 13px;
        letter-spacing: 0.04em;
    }

    .cabecera__menu > li > a::after {
        content: none;
    }

    /* Elemento con submenú: enlace + botón en una fila; submenú plegado. */
    .cabecera__menu > .menu-item-has-children {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .cabecera .cabecera__submenu-boton {
        display: grid;
        place-items: center;
        width: 44px;
        margin: 0;
        padding: 0;
        border: 0;
        border-bottom: 1px solid color-mix(in srgb, var(--contrast) 12%, transparent);
        border-radius: 0;
        background: none;
        color: var(--contrast);
        cursor: pointer;
    }

    .cabecera__submenu-boton .icono {
        width: 16px;
        height: 16px;
        transition: transform var(--transicion);
    }

    .cabecera__submenu-boton[aria-expanded="true"] .icono {
        transform: rotate(180deg);
    }

    .cabecera__menu .sub-menu {
        display: none;
        grid-column: 1 / -1;
        position: static;
        min-width: 0;
        padding: 4px 0 8px 14px;
        border: 0;
        border-bottom: 1px solid color-mix(in srgb, var(--contrast) 12%, transparent);
        box-shadow: none;
        opacity: 1;
        visibility: visible;
        transform: none;
    }

    .cabecera__menu .is-submenu-abierto > .sub-menu {
        display: block;
    }

    .cabecera__menu .sub-menu::before {
        content: none;
    }

    /* Panel: submenú siempre visible, sin flecha y con jerarquía más suave. */
    .cabecera__menu > .menu-item-has-children > a {
        padding-right: 0;
    }

    .cabecera__menu > .menu-item-has-children > a::before {
        content: none;
    }

    .cabecera__menu .sub-menu a {
        padding: 10px 0;
        border-bottom: 0;
        color: var(--contrast-2);
        font-size: 12px;
    }

    .cabecera__menu-utilidades {
        display: block;
        margin-top: auto;
        padding-top: 24px;
        border-top: 1px solid color-mix(in srgb, var(--contrast) 12%, transparent);
    }

    .cabecera__menu-cuenta {
        display: flex;
        align-items: center;
        gap: 12px;
        min-height: 56px;
        padding: 14px 16px;
        color: var(--contrast);
        background: color-mix(in srgb, var(--base-2) 45%, var(--base-3));
        font-size: 14px;
        font-weight: 600;
        text-decoration: none;
    }

    .cabecera__menu-cuenta .icono--usuario {
        width: 20px;
        height: 20px;
    }

    .cabecera__menu-avatar {
        width: 36px;
        height: 36px;
        flex: none;
        overflow: hidden;
        background: var(--base-2);
        border-radius: 50%;
    }

    .cabecera__menu-avatar img {
        display: block;
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .cabecera__menu-identidad {
        display: grid;
        min-width: 0;
        gap: 2px;
    }

    .cabecera__menu-identidad strong,
    .cabecera__menu-identidad small {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .cabecera__menu-identidad strong {
        font-size: 14px;
        font-weight: 600;
    }

    .cabecera__menu-identidad small {
        color: var(--contrast-2);
        font-size: 12px;
        font-weight: 400;
    }

    .cabecera__menu-cuenta .icono--flecha {
        width: 17px;
        height: 17px;
        margin-left: auto;
    }

    .cabecera__accion--cuenta {
        display: none;
    }

    .cabecera .cabecera__menu-fondo {
        position: fixed;
        inset: var(--admin-offset, 0px) 0 0;
        z-index: 190;
        display: block;
        width: 100%;
        height: auto;
        padding: 0;
        background: color-mix(in srgb, var(--contrast) 42%, transparent);
        border: 0;
        opacity: 0;
        visibility: hidden;
        transition: opacity var(--transicion), visibility var(--transicion);
    }

    .cabecera__navegacion.is-abierto + .cabecera__menu-fondo {
        opacity: 1;
        visibility: visible;
    }

}

@media (max-width: 900px) {
    /* Relacionados de dos en dos: el tercero se oculta para no quedar huerfano. */
    .entrada__relacionados-rejilla {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .entrada__relacionados-rejilla > :nth-child(n + 3) {
        display: none;
    }

    .entrada__navegacion-enlace {
        gap: 24px;
        min-height: 180px;
    }

    .tienda__cuerpo,
    .tienda__formulario,
    .tienda-gracias {
        grid-template-columns: minmax(0, 1fr);
    }

    .tienda__mapa {
        min-height: 0;
        aspect-ratio: 4 / 3;
    }

    .tienda__formulario {
        gap: 24px;
    }

    .tienda-gracias__visual img {
        max-width: 300px;
        max-height: 300px;
    }

    .tienda-gracias {
        text-align: center;
    }

    .tienda-gracias__mensaje {
        margin-inline: auto;
    }

    .tienda-gracias .tienda__acciones {
        justify-content: center;
    }

    .blog__archivo-cabecera {
        align-items: flex-start;
        flex-direction: column;
    }

    /* Categorias en carrusel horizontal de una linea, como el selector de la tienda. */
    .blog__categorias {
        flex-wrap: nowrap;
        justify-content: flex-start;
        align-self: stretch;
        gap: 22px;
        margin-right: calc(-1 * var(--margen-interior));
        padding-right: var(--margen-interior);
        padding-bottom: 6px;
        overflow-x: auto;
        scrollbar-width: none;
        overscroll-behavior-inline: contain;
        -webkit-overflow-scrolling: touch;
    }

    .blog__categorias::-webkit-scrollbar {
        display: none;
    }

    .blog__categoria {
        flex: none;
        white-space: nowrap;
    }

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

    .blog-tarjeta--destacada .blog-tarjeta__enlace {
        grid-template-columns: minmax(0, 1fr);
    }

    .blog-tarjeta--destacada .blog-tarjeta__imagen {
        aspect-ratio: 16 / 10;
    }

    .pagina-404__visual {
        max-width: 500px;
    }

    .opiniones__contenido {
        grid-template-columns: minmax(0, 1fr);
    }

    .opiniones__resumen {
        position: static;
    }

    .opiniones__resumen + .opiniones__lista {
        margin-left: 0;
        padding-top: 32px;
        padding-left: 0;
        border-top: 1px solid color-mix(in srgb, var(--contrast) 10%, transparent);
        border-left: 0;
    }

    /* Ficha de producto: una columna y galería deslizable. */
    .ficha__producto {
        padding-inline: var(--margen-lateral);
    }

    .ficha__principal {
        grid-template-columns: minmax(0, 1fr);
        padding-top: 0;
    }

    .ficha__galeria {
        display: flex;
        margin-inline: calc(-1 * var(--margen-lateral));
        padding-inline: var(--margen-lateral);
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
    }

    .ficha__foto {
        flex: 0 0 82%;
        scroll-snap-align: center;
    }

    .ficha__foto,
    .ficha__foto:first-child,
    .ficha__foto:last-child:nth-child(even) {
        aspect-ratio: 3 / 4;
    }

    .ficha__foto:only-child {
        flex-basis: 100%;
    }

    .ficha__info {
        position: static;
    }

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

    /* Millán Sens */
    .pie__interior {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

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

    .vc_row.seccion-ventajas,
    .rejilla-productos {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

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

    .catalogo__cabecera,
    .catalogo__productos {
        padding-inline: var(--margen-lateral);
    }

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

    .vc_row.seccion-hogares {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .seccion-hogares > .wpb_column:last-child {
        grid-column: 1 / -1;
    }

    .seccion-hogares > .wpb_column:last-child > .vc_column-inner {
        padding: 24px 0 0;
    }

    .vc_row.seccion-personaliza {
        grid-template-columns: minmax(0, 1fr);
    }

    .seccion-personaliza > .wpb_column:first-child > .vc_column-inner {
        padding-left: 0;
    }
}

@media (max-width: 600px) {
    .modal-solicitud {
        width: 100%;
        max-height: calc(100dvh - 16px);
        margin-bottom: 0;
    }

    .modal-solicitud__panel {
        max-height: calc(100dvh - 16px);
    }

    .modal-solicitud__cabecera {
        gap: 14px;
        padding: 18px 18px 14px;
    }

    .modal-solicitud__producto {
        grid-template-columns: auto minmax(0, 1fr);
        margin: 16px 18px 20px;
    }

    .modal-solicitud__producto img {
        width: 56px;
        height: 56px;
    }

    .modal-solicitud__precio {
        grid-column: 2;
        text-align: left;
    }

    .modal-solicitud__precio del {
        display: inline;
        margin-left: 8px;
    }

    .modal-solicitud__formulario {
        padding: 0 18px 22px;
    }

    .gracias-solicitud {
        padding-inline: var(--margen-lateral);
    }

    body.pagina-legal-vista .site-content {
        padding-inline: var(--margen-lateral);
    }

    .pagina-legal {
        font-size: 15px;
    }

    .gracias-solicitud__visual {
        height: 160px;
    }

    .gracias-solicitud__acciones {
        align-self: stretch;
    }

    .gracias-solicitud__acciones .boton {
        flex: 1 1 100%;
    }

    .entrada__cabecera {
        padding-inline: var(--margen-lateral);
    }

    .entrada__volver {
        margin-bottom: 20px;
    }

    .entrada__meta {
        gap: 4px 6px;
        margin-bottom: 14px;
        font-size: 12px;
    }

    .entrada__titulo {
        font-size: clamp(26px, 7.5vw, 32px);
    }

    .entrada__resumen {
        margin-top: 16px;
    }

    .entrada__contenido blockquote {
        margin: 36px 0;
        padding: 22px 20px;
    }

    .entrada__contenido table {
        display: block;
        overflow-x: auto;
        font-size: 15px;
    }

    .entrada__imagen-principal {
        width: 100%;
    }

    .entrada__lectura {
        padding-inline: var(--margen-lateral);
    }

    .entrada__navegacion {
        grid-template-columns: minmax(0, 1fr);
        width: 100%;
    }

    .entrada__navegacion-enlace {
        gap: 10px;
        min-height: 0;
        padding: 22px var(--margen-lateral);
    }

    .entrada__navegacion-enlace + .entrada__navegacion-enlace {
        border-top: 1px solid color-mix(in srgb, var(--contrast) 16%, transparent);
        border-left: 0;
    }

    .entrada__navegacion-enlace--siguiente {
        grid-column: auto;
        text-align: left;
    }

    .entrada__relacionados {
        padding-inline: var(--margen-lateral);
    }

    .entrada__relacionados-cabecera {
        gap: 16px;
        margin-bottom: 24px;
    }

    .entrada__relacionados-cabecera a {
        flex: none;
        font-size: 12px;
    }

    .entrada__relacionados-rejilla {
        gap: 14px;
    }

    .tiendas,
    .tienda,
    .tienda-gracias {
        padding-inline: var(--margen-lateral);
    }

    .tiendas__lista {
        grid-template-columns: minmax(0, 1fr);
    }

    .tienda-tarjeta {
        min-height: 0;
    }


    .tienda__acciones .boton {
        flex: 1 1 100%;
    }

    .tienda__datos {
        padding: 22px 20px;
    }

    .tienda__mapa {
        aspect-ratio: 1 / 1;
    }

    .tienda__formulario .gform_button {
        width: 100%;
    }

    .tienda-gracias {
        padding-top: 32px;
    }

    .tienda-gracias__visual img {
        max-width: 220px;
        max-height: 220px;
    }

    /* Movil: destacada a ancho completo y el resto de dos en dos, con textos reducidos. */
    .blog__rejilla {
        gap: 36px 14px;
    }

    .blog-tarjeta--destacada .blog-tarjeta__contenido {
        padding: 24px 20px 28px;
    }

    .blog-tarjeta--destacada .blog-tarjeta__titulo {
        font-size: 28px;
    }

    .blog-tarjeta--destacada .blog-tarjeta__resumen {
        font-size: 15px;
    }

    .blog__rejilla .blog-tarjeta:not(.blog-tarjeta--destacada) .blog-tarjeta__contenido,
    .entrada__relacionados-rejilla .blog-tarjeta__contenido {
        padding-top: 14px;
    }

    .blog__rejilla .blog-tarjeta:not(.blog-tarjeta--destacada) .blog-tarjeta__meta,
    .entrada__relacionados-rejilla .blog-tarjeta__meta {
        gap: 2px 4px;
        margin-bottom: 10px;
        font-size: 11px;
        letter-spacing: 0.02em;
    }

    .blog__rejilla .blog-tarjeta:not(.blog-tarjeta--destacada) .blog-tarjeta__titulo,
    .entrada__relacionados-rejilla .blog-tarjeta__titulo {
        font-size: 17px;
        line-height: 1.15;
    }

    .blog__rejilla .blog-tarjeta:not(.blog-tarjeta--destacada) .blog-tarjeta__resumen,
    .entrada__relacionados-rejilla .blog-tarjeta__resumen {
        display: -webkit-box;
        margin-top: 10px;
        overflow: hidden;
        font-size: 14px;
        line-height: 1.45;
        -webkit-box-orient: vertical;
        -webkit-line-clamp: 3;
        line-clamp: 3;
    }

    .blog__rejilla .blog-tarjeta:not(.blog-tarjeta--destacada) .blog-tarjeta__accion,
    .entrada__relacionados-rejilla .blog-tarjeta__accion {
        gap: 8px;
        padding-top: 16px;
        font-size: 12px;
    }

    .blog__rejilla .blog-tarjeta:not(.blog-tarjeta--destacada) .blog-tarjeta__accion .icono,
    .entrada__relacionados-rejilla .blog-tarjeta__accion .icono {
        width: 14px;
        height: 14px;
    }

    .blog-tarjeta--sin-imagen:not(.blog-tarjeta--destacada) .blog-tarjeta__contenido {
        min-height: 240px;
        padding: 18px 14px;
    }

    .pagina-404 {
        padding: 42px var(--margen-lateral) 64px;
    }

    .pagina-404__interior {
        gap: 34px;
    }

    .pagina-404__acciones {
        width: 100%;
    }

    .pagina-404__acciones .boton,
    .pagina-404__boton-secundario {
        width: 100%;
    }

    .pagina-404__acciones .boton {
        position: relative;
        justify-content: center;
    }

    .pagina-404__acciones .boton .icono {
        position: absolute;
        right: 22px;
    }

    .pagina-404__visual {
        width: min(100%, 390px);
    }
    .woocommerce .acceso form .form-row-first,
    .woocommerce .acceso form .form-row-last {
        width: 100%;
    }

    .acceso__panel {
        padding: 20px 16px;
    }

    /* Datos del pedido en 2 × 2. */
    .woocommerce .pedido-recibido ul.pedido-recibido__datos {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .woocommerce .pedido-recibido ul.pedido-recibido__datos li {
        padding: 16px;
        border-top: 1px solid color-mix(in srgb, var(--contrast) 10%, transparent);
    }

    .woocommerce .pedido-recibido ul.pedido-recibido__datos li:nth-child(-n + 2) {
        border-top: 0;
    }

    .woocommerce .pedido-recibido ul.pedido-recibido__datos li:nth-child(odd) {
        border-left: 0;
    }

    .carrito-item {
        grid-template-areas:
            "foto info quitar"
            "foto cantidad total";
        grid-template-columns: 88px minmax(0, 1fr) 36px;
        gap: 10px 14px;
        align-items: start;
    }

    .carrito-item__total {
        align-self: center;
        grid-column: 3 / 4;
        justify-self: end;
    }

    .carrito-item__cantidad {
        grid-column: 2 / 3;
    }

    .woocommerce .compra form .form-row-first,
    .woocommerce .compra form .form-row-last {
        width: 100%;
    }

    .woocommerce .carrito__cupon .coupon .input-text {
        width: 100%;
    }

    .woocommerce .direcciones-pedido--dos {
        grid-template-columns: minmax(0, 1fr);
    }

    .detalle-pedido__producto {
        grid-template-columns: 60px minmax(0, 1fr) auto;
        gap: 4px 12px;
    }

    .estado-pedido-detalle__datos {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .estado-pedido-detalle__datos > div {
        padding: 14px 16px;
        border-top: 1px solid color-mix(in srgb, var(--contrast) 10%, transparent);
    }

    .estado-pedido-detalle__datos > div:nth-child(-n + 2) {
        border-top: 0;
    }

    .estado-pedido-detalle__datos > div:nth-child(odd) {
        border-left: 0;
    }

    .pedido-recibido__boton {
        width: 100%;
    }

    /* Modal de opinión como panel inferior. */
    .opiniones__modal {
        width: 100%;
        max-width: none;
        max-height: 92dvh;
        margin: auto 0 0;
    }

    .opiniones__modal[open] {
        animation-name: modal-subir;
    }

    .opiniones__modal.is-cerrando {
        animation-name: modal-bajar;
    }

    .opiniones__formulario {
        padding: 20px 16px 24px;
    }

    .opiniones__modal-cabecera {
        padding: 14px 12px 14px 16px;
    }

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

    .ficha__cifra {
        padding: 14px;
        column-gap: 10px;
    }

    .ficha__rasgos {
        grid-template-columns: minmax(0, 1fr);
    }

    .opiniones .comment-form > .comment-form-author,
    .opiniones .comment-form > .comment-form-email {
        grid-column: 1 / -1;
    }

    .ficha__medidas {
        gap: 8px 20px;
        font-size: 15px;
    }

    .ficha__enlace-detalles {
        width: 100%;
        margin-left: 0;
    }

    .ficha .quantity .qty,
    .ficha .quantity .qty:focus {
        width: 36px;
    }

    .ficha .quantity .cantidad__boton {
        width: 34px;
    }

    .cabecera__interior {
        gap: 6px;
        padding-block: 12px;
    }

    .cabecera__logo {
        --logo-ancho: 88px;
    }

    .cabecera__acciones {
        gap: 0;
    }

    .lang-dropdown img {
        display: block;
        width: 18px;
        height: 12px;
    }

    .lang-dropdown .current-lang {
        gap: 4px;
        min-width: 50px;
        height: 40px;
        padding-inline: 4px;
        font-size: 11px;
    }

    .lang-dropdown summary.current-lang::after {
        width: 5px;
        height: 5px;
        margin-left: 0;
    }

    .cabecera__accion {
        width: 36px;
        height: 40px;
    }

    .cabecera__iconos {
        width: 19px;
        height: 19px;
    }

    .cabecera .cart-count {
        top: 1px;
        right: -1px;
        min-width: 16px;
        height: 16px;
        padding-inline: 3px;
        font-size: 10px;
    }

    .cabecera__navegacion {
        width: min(360px, calc(100% - 24px));
        padding: 0 22px 24px;
    }

    .cabecera__panel-cabecera {
        min-height: 68px;
    }

    .cabecera__menu {
        padding-block: 12px;
    }

    .cabecera__menu a {
        padding-block: 13px;
    }

    .buscador__panel {
        padding-top: 24px;
        padding-bottom: 32px;
    }

    .buscador__encabezado {
        margin-bottom: 16px;
    }

    .buscador__titulo {
        font-size: 16px;
    }

    .buscador__cerrar .icono {
        width: 22px;
        height: 22px;
    }

    .buscador__formulario {
        grid-template-columns: minmax(0, 1fr) 48px;
    }

    /* 16px: mínimo para que iOS no haga zoom al enfocar. */
    .buscador .buscador__campo {
        min-height: 48px;
        padding: 6px 12px 8px 0;
        font-size: 16px;
    }

    .cabecera .buscador__enviar {
        min-width: 48px;
        padding: 0;
    }

    .buscador__enviar .icono {
        width: 20px;
        height: 20px;
    }

    .buscador__enviar span {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }

    .pie__interior {
        grid-template-columns: minmax(0, 1fr);
    }

    .pie__inferior {
        flex-direction: column;
        align-items: flex-start;
    }

    .pie__credito {
        margin-left: 0;
    }

    .boton {
        min-height: 52px;
        font-size: 16px;
    }

    .slider-inicio__titulo br {
        display: none;
    }

    .rejilla-productos {
        row-gap: 28px;
    }

    .catalogo__cabecera {
        padding-top: 20px;
        padding-bottom: 28px;
    }

    .catalogo__migas {
        margin-bottom: 18px;
    }

    .catalogo__categorias {
        gap: 8px;
        margin-right: calc(-1 * var(--margen-lateral));
        padding-right: var(--margen-lateral);
        padding-bottom: 2px;
        scrollbar-width: none;
        overscroll-behavior-inline: contain;
        -webkit-overflow-scrolling: touch;
    }

    .catalogo__categorias::-webkit-scrollbar {
        display: none;
    }

    .selector-categoria {
        flex-basis: 76px;
        gap: 6px;
    }

    .selector-categoria__imagen .icono--categoria {
        width: 30%;
    }

    .selector-categoria__nombre {
        font-size: 11px;
        line-height: 1.15;
    }

    .catalogo__barra {
        display: grid;
        grid-template-columns: minmax(0, 3fr) minmax(0, 7fr);
        align-items: end;
        gap: 14px 12px;
        min-height: 0;
        padding-block: 20px;
    }

    .catalogo__barra-derecha {
        display: contents;
    }

    .woocommerce .catalogo__barra .woocommerce-result-count {
        grid-row: 1;
        grid-column: 1 / -1;
        justify-self: center;
        text-align: center;
    }

    .woocommerce .catalogo__abrir-filtros {
        grid-row: 2;
        grid-column: 1;
        justify-content: center;
        gap: 6px;
        width: 100%;
        font-size: 12px;
    }

    .catalogo__abrir-filtros .icono {
        width: 14px;
        height: 14px;
    }

    .orden-catalogo {
        grid-row: 2;
        grid-column: 2;
    }

    .orden-catalogo,
    .orden-catalogo .selector-ui {
        width: 100%;
        min-width: 0;
    }

    .orden-catalogo .selector-ui__disparador {
        min-height: var(--campo-alto);
        padding-left: 20px;
        font-size: 13px;
        text-align: center;
    }

    .orden-catalogo .selector-ui__valor {
        width: 100%;
        text-align: center;
    }

    .filtros-catalogo__cabecera,
    .filtros-catalogo__formulario {
        padding-inline: 22px;
    }

    .catalogo__rejilla {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 38px 10px;
    }

    .tarjeta-producto__etiqueta {
        padding: 6px 8px;
        font-size: 11px;
    }

    .tarjeta-producto__datos {
        gap: 5px;
        padding-top: 12px;
    }

    .tarjeta-producto--catalogo .tarjeta-producto__titulo {
        font-size: 15px;
    }

    .tarjeta-producto--catalogo .tarjeta-producto__resumen,
    .tarjeta-producto__desde,
    .tarjeta-producto__color-resto,
    .tarjeta-producto__medidas {
        font-size: 12px;
    }

    .tarjeta-producto__importe {
        font-size: 17px;
    }

    .tarjeta-producto__colores {
        gap: 6px;
    }

    .tarjeta-producto__color {
        width: 18px;
        height: 18px;
    }

    .tarjeta-producto__medidas {
        gap: 5px 10px;
    }

    .tarjeta-producto__medida {
        gap: 5px;
    }

    .tarjeta-producto__medida .icono {
        width: 15px;
        height: 15px;
    }

    .vc_row.seccion-ventajas.swiper {
        display: block;
        overflow: hidden;
    }

    .seccion-ventajas .swiper-wrapper {
        align-items: flex-start;
    }

    .seccion-ventajas .swiper-slide {
        height: auto;
    }

    .seccion-ventajas .wpb_text_column p {
        margin-top: 20px;
        font-size: 14px;
    }
}

@media (max-width: 900px) {
    .woocommerce-account .inside-article,
    .woocommerce-cart .inside-article,
    .woocommerce-checkout .inside-article {
        padding-inline: var(--margen-lateral);
    }

    /* Acceso: ventajas debajo del panel. */
    .acceso {
        grid-template-columns: minmax(0, 1fr);
    }

    .acceso__ventajas {
        position: static;
    }

    /* Carrito y compra: resumen debajo. */
    .carrito__rejilla,
    .compra__rejilla {
        grid-template-columns: minmax(0, 1fr);
    }

    .carrito__resumen,
    .compra__resumen {
        position: static;
    }

    .woocommerce-account.logged-in .woocommerce {
        grid-template-areas:
            "avisos"
            "menu"
            "contenido";
        grid-template-columns: minmax(0, 1fr);
    }

    .woocommerce-account.logged-in .woocommerce > .woocommerce-MyAccount-navigation {
        margin-bottom: 28px;
    }

    .panel-cuenta {
        position: static;
    }

    /* Menú en una fila deslizable bajo el perfil. */
    .panel-cuenta__lista {
        display: flex;
        gap: 6px;
        margin-right: calc(-1 * var(--margen-lateral));
        padding-right: var(--margen-lateral);
        overflow-x: auto;
        scrollbar-width: none;
    }

    .panel-cuenta__enlace {
        min-height: 42px;
        border: 1px solid color-mix(in srgb, var(--contrast) 12%, transparent);
        white-space: nowrap;
    }

    .panel-cuenta__item.is-active .panel-cuenta__enlace {
        border-color: var(--contrast);
        box-shadow: none;
    }

    .woocommerce-MyAccount-navigation-link--customer-logout {
        margin: 0;
        padding: 0;
        border: 0;
    }

    .resumen-cuenta__rejilla {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .resumen-cuenta__rejilla .tarjeta-cuenta:last-child {
        grid-column: 1 / -1;
    }

}

@media (max-width: 600px) {
    .woocommerce .orden-catalogo {
        display: grid;
    }

    .woocommerce .orden-catalogo__selector {
        width: 100%;
    }

    .carrito-vacio {
        padding-inline: 0;
    }

    .pedido-recibido__cabecera {
        flex-direction: column;
    }

    .woocommerce .pedido-recibido__datos,
    .direcciones-cuenta,
    .resumen-cuenta__rejilla {
        grid-template-columns: minmax(0, 1fr);
    }

    .resumen-cuenta__rejilla .tarjeta-cuenta:last-child {
        grid-column: auto;
    }

    .woocommerce-account .woocommerce-MyAccount-content .form-row-first,
    .woocommerce-account .woocommerce-MyAccount-content .form-row-last {
        width: 100%;
    }

    .pedido-tarjeta__acciones,
    .paginacion-pedidos,
    .pedido-recibido__ayuda {
        align-items: stretch;
        flex-direction: column;
    }

    .woocommerce .pedido-tarjeta__acciones .button,
    .paginacion-pedidos .button {
        width: 100%;
    }

    .direccion-tarjeta {
        min-height: 0;
    }


}

/* Millan Sens English customisation banner — 2026-11-10 */
.seccion-personaliza .personaliza-intro {
    max-width: 37ch;
    margin: clamp(12px, 1.5vw, 22px) 0 0;
    color: var(--contrast-2, #444);
    font-size: clamp(16px, 1.18vw, 19px);
    line-height: 1.6;
}
.seccion-personaliza .wpb_text_column { margin-bottom: 0; }
@media (max-width: 767px) {
    .seccion-personaliza .personaliza-intro { max-width: 52ch; }
}

/* ADHOC: portada compacta y slider tactil en movil (2026-11-10) */
@media (max-width: 600px) {
    /* Permite gestos horizontales sin bloquear el scroll vertical. */
    .slider-inicio {
        touch-action: pan-y pinch-zoom;
    }

    /* Ventajas: iconos y texto más discretos, menos altura vacía. */
    .vc_row.seccion-ventajas {
        /* Igualamos el aire superior con los 34 px bajo el carrusel. */
        margin-top: -20px;
        margin-bottom: 34px;
    }

    .seccion-ventajas .wpb_single_image .vc_single_image-wrapper {
        width: 62px;
    }

    .seccion-ventajas .wpb_text_column p {
        max-width: 15em;
        margin-top: 10px;
        font-size: 12px;
        line-height: 1.3;
    }

    .vc_row.seccion-ventajas.swiper {
        padding-block: 0;
    }

    .seccion-ventajas .swiper-slide {
        text-align: center;
    }
}
/* Millán Sens · categorías WooCommerce: introducción corta + guía SEO inferior */
.catalogo__introduccion {
    max-width: 68ch;
    margin: clamp(16px, 1.5vw, 23px) 0 0;
    color: var(--contrast-2);
    font-size: clamp(15px, 1vw, 17px);
    line-height: 1.65;
    font-weight: 400;
}
.catalogo__seo {
    box-sizing: border-box;
    max-width: calc(var(--ancho-maximo, 100%) + 2 * var(--margen-interior));
    margin: clamp(44px, 5vw, 90px) auto clamp(50px, 5vw, 100px);
    padding: clamp(36px, 3.6vw, 62px) var(--margen-interior) 0;
    border-top: 1px solid #dedbd6;
}
.catalogo__seo-cuerpo {
    max-width: 830px;
    margin-inline: auto;
    color: var(--contrast-2);
    font-size: clamp(15px, .95vw, 17px);
    line-height: 1.78;
}
.catalogo__seo-cuerpo h2,
.catalogo__seo-cuerpo h3 {
    color: var(--contrast);
    font-weight: 500;
    letter-spacing: -.025em;
    text-transform: none;
}
.catalogo__seo-cuerpo h2 {
    margin: 2.15em 0 .7em;
    font-size: clamp(23px, 2vw, 31px);
    line-height: 1.26;
}
.catalogo__seo-cuerpo h3 {
    margin: 1.8em 0 .6em;
    font-size: clamp(18px, 1.4vw, 23px);
    line-height: 1.35;
}
.catalogo__seo-cuerpo > :first-child { margin-top: 0; }
.catalogo__seo-cuerpo p { margin: 0 0 1.1em; }
.catalogo__seo-cuerpo ul, .catalogo__seo-cuerpo ol { margin: .5em 0 1.5em; padding-left: 1.5em; }
.catalogo__seo-cuerpo li { margin-bottom: .5em; }
.catalogo__seo-cuerpo a { color: var(--accent); text-underline-offset: .18em; }
.catalogo__seo-cuerpo a:hover { text-decoration-thickness: 2px; }
@media (max-width: 768px) {
    .catalogo__introduccion { max-width: 45ch; }
    .catalogo__seo {
        margin-block: 40px 62px;
        padding-top: 32px;
        padding-inline: var(--margen-lateral, 20px);
    }
    .catalogo__seo-cuerpo { line-height: 1.7; }
    .catalogo__seo-cuerpo h2 { margin-top: 1.65em; }
}

/* SOFERTON BRAND HEADER 2026-11-10 */
:root { --color-primary: #9CB83C; --color-secondary: #7E982C; --color-heading: #23282d; --color-text: #23282d; }
.cabecera__logo { --logo-ancho: 126px; aspect-ratio: 485.96 / 90.89; }
.cabecera__logo-imagen { object-fit: contain; }
@media (max-width: 1024px) { .cabecera__logo { --logo-ancho: 114px; } }
@media (max-width: 767px) { .cabecera__logo { --logo-ancho: 100px; } }

/* SOFERTON BRAND UI CONSISTENCY 2026-11-11
 * Base #9CB83C, interactive hover #7E982C.
 * Leave alert/error/warning states with their semantic colors.
 */
:root {
    --color-primary: #9CB83C;
    --color-secondary: #7E982C;
    --campo-borde-foco: #9CB83C;
}
.gform-theme--framework .gform_body,
.gform-theme--framework .gform_footer {
    --gf-ctrl-border-color-focus: #9CB83C;
    --gf-ctrl-outline-color-focus: #9CB83C;
}
.gform-theme--framework .gform_button,
.gform-theme--framework input[type="submit"].gform_button,
.gform-theme--framework .gform_next_button,
.gform-theme--framework .gform_previous_button,
.gform-theme--framework .gform_save_link,
.gform-theme--framework .gform_page_footer button[type="submit"] {
    background: #9CB83C !important;
    background-color: #9CB83C !important;
    border-color: #9CB83C !important;
    color: #FFFFFF !important;
    box-shadow: none !important;
    transform: none !important;
}
.gform-theme--framework .gform_button:hover,
.gform-theme--framework input[type="submit"].gform_button:hover,
.gform-theme--framework .gform_next_button:hover,
.gform-theme--framework .gform_previous_button:hover,
.gform-theme--framework .gform_save_link:hover,
.gform-theme--framework .gform_page_footer button[type="submit"]:hover {
    background: #7E982C !important;
    background-color: #7E982C !important;
    border-color: #7E982C !important;
    box-shadow: none !important;
    transform: none !important;
}
.gform-theme--framework input[type="checkbox"],
.gform-theme--framework input[type="radio"],
.woocommerce input[type="checkbox"],
.woocommerce input[type="radio"] {
    accent-color: #9CB83C;
}
.gform-theme--framework :is(input,select,textarea):focus-visible {
    outline-color: #9CB83C;
}
.woocommerce :is(a.button,button.button,input.button),
.woocommerce :is(a.button.alt,button.button.alt,input.button.alt),
.woocommerce .ficha button.single_add_to_cart_button.button {
    border-color: #9CB83C;
    background-color: #9CB83C;
    color: #FFFFFF;
    box-shadow: none;
    transform: none;
}
.woocommerce :is(a.button,button.button,input.button):hover,
.woocommerce :is(a.button.alt,button.button.alt,input.button.alt):hover,
.woocommerce .ficha button.single_add_to_cart_button.button:hover {
    border-color: #7E982C;
    background-color: #7E982C;
    color: #FFFFFF;
    box-shadow: none;
    transform: none;
}
/* Soferton page templates: contact layout aligned to store site width, 2026-11-11 */
body.page-id-7010 .inside-article,body.page-id-7011 .inside-article{margin:0;padding:0;max-width:none;}
body.page-id-7010 .entry-content,body.page-id-7011 .entry-content{margin:0;}
body.page-id-7010 .entry-content>.seccion,body.page-id-7011 .entry-content>.seccion{box-sizing:border-box;max-width:calc(var(--ancho-maximo,100%) + 2 * var(--margen-interior));margin-inline:auto;padding:clamp(24px,2.5vw,48px) var(--margen-interior) var(--espacio-seccion);}
body.page-id-7010 .entry-content>.seccion h1,body.page-id-7011 .entry-content>.seccion h1{font-size:clamp(30px,2.6vw,42px);line-height:1.1;margin:0 0 clamp(20px,2.3vw,36px);padding-bottom:16px;border-bottom:1px solid color-mix(in srgb,var(--contrast) 18%,transparent);}

/* Related physical stores: one-column responsive cards. */
@media (max-width: 767px) {
    .tienda__otras {
        grid-template-columns: minmax(0, 1fr);
        gap: 14px;
    }
    .tienda__otras .tienda-tarjeta {
        min-height: 0;
    }
}


/* Legal information: structured layout, readable typography and accessible tables, 2026-11-11 */
.pagina-legal-vista .inside-article{max-width:min(900px,100%)}
.pagina-legal-vista .entry-title{font-weight:700;letter-spacing:-.02em}
.pagina-legal--actualizada{font-size:16px;line-height:1.78;overflow-wrap:anywhere}
.pagina-legal--actualizada .pagina-legal__fecha{color:var(--contrast-2);font-size:13px;letter-spacing:.025em;margin:0 0 16px}
.pagina-legal--actualizada .pagina-legal__intro{font-size:17px;color:var(--contrast);margin:0 0 28px;max-width:74ch}
.pagina-legal--actualizada .pagina-legal__identificacion{padding:24px clamp(18px,2.5vw,32px);border:1px solid color-mix(in srgb,var(--contrast) 12%,transparent);background:color-mix(in srgb,var(--base) 65%,white);margin:0 0 36px;border-radius:3px}
.pagina-legal--actualizada .pagina-legal__identificacion p:last-child{margin-bottom:0}
.pagina-legal--actualizada .pagina-legal__apartado{margin:0 0 34px;padding-bottom:14px;border-bottom:1px solid color-mix(in srgb,var(--contrast) 11%,transparent)}
.pagina-legal--actualizada .pagina-legal__apartado:last-child{border-bottom:0}
.pagina-legal--actualizada h2{font-weight:700;font-size:clamp(20px,1.8vw,25px);line-height:1.32;letter-spacing:-.015em;margin:0 0 16px;hyphens:auto}
.pagina-legal--actualizada h3{font-size:18px;font-weight:650}
.pagina-legal--actualizada p{margin:0 0 15px;max-width:90ch}
.pagina-legal--actualizada strong{font-weight:650;color:var(--contrast)}
.pagina-legal--actualizada code{font-size:.86em;padding:.15em .3em;background:color-mix(in srgb,var(--contrast) 6%,transparent);white-space:normal;overflow-wrap:anywhere}
.pagina-legal--actualizada a{text-underline-offset:3px;text-decoration-thickness:1px}
.pagina-legal--actualizada a:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(max-width:767px){.pagina-legal--actualizada{font-size:15px;line-height:1.7}.pagina-legal--actualizada .pagina-legal__apartado{margin-bottom:27px}.pagina-legal--actualizada .pagina-legal__identificacion{padding:19px 16px}}

/* Sofertón category image icons: size and hover 2026-11-11 */
.selector-categoria__imagen img{width:100px!important;height:100px!important;max-width:88%!important;max-height:88%!important;object-fit:contain!important;transform:none!important;transition:none!important;}
.selector-categoria:hover .selector-categoria__imagen img,.selector-categoria:focus-visible .selector-categoria__imagen img{transform:none!important;}

/* Soferton category selector: consistent line SVG pictograms 2026-11-11 */
.selector-categoria__imagen .icono--categoria{display:block;width:42px!important;height:42px!important;max-width:42px!important;max-height:42px!important;stroke-width:1.5!important;color:#444!important;transform:none!important;transition:none!important;}
.selector-categoria.is-activa .selector-categoria__imagen .icono--categoria{color:#111!important;}
.selector-categoria:hover .icono--categoria,.selector-categoria:focus-visible .icono--categoria{transform:none!important;}
@media(max-width:767px){.selector-categoria__imagen .icono--categoria{width:38px!important;height:38px!important;max-width:38px!important;max-height:38px!important;}}


/* Sofertón footer redesign – reference layout, November 2026 */
.pie.pie--soferton-referencia{
  --pie-blanco:#fff;
  background:#b5b2af;
  color:var(--pie-blanco);
  padding:clamp(48px,3.8vw,76px) clamp(24px,3.1vw,64px) 24px;
  font-size:clamp(13px,.93vw,16px);
  line-height:1.45;
}
.pie--soferton-referencia,.pie--soferton-referencia *{box-sizing:border-box;}
.pie--soferton-referencia a,
.pie--soferton-referencia a:hover,
.pie--soferton-referencia a:focus{color:#fff;text-decoration:none;}
.pie--soferton-referencia a:hover{opacity:.78;}
.pie--soferton-referencia a:focus-visible{outline:2px solid #fff;outline-offset:4px;}
.pie--soferton-referencia .pie__interior{
  display:grid;
  grid-template-columns:minmax(185px,1.32fr) minmax(135px,.85fr) minmax(150px,.95fr) minmax(150px,.95fr) minmax(340px,2.1fr);
  gap:clamp(20px,2.15vw,48px);
  width:100%;
  max-width:1700px;
  align-items:start;
  margin-inline:auto;
}
.pie--soferton-referencia .pie__marca{
  grid-column:auto;
  min-width:0;
}
.pie--soferton-referencia .pie__logo{
  display:inline-flex;
  align-items:center;
  max-width:100%;
  font-size:clamp(33px,2.7vw,49px);
  line-height:1;
  font-weight:750;
  letter-spacing:-.035em;
  margin:0;
}
.pie--soferton-referencia .pie__logo img{
  display:block;
  width:clamp(165px,13vw,240px);
  max-width:100%;
  height:auto;
  filter:brightness(0) invert(1);
}
.pie--soferton-referencia .pie__contacto-lista{
  display:grid;
  gap:12px;
  margin:clamp(28px,2.4vw,45px) 0 0;
  padding:0;
  list-style:none;
}
.pie--soferton-referencia .pie__contacto-lista li{margin:0;}
.pie--soferton-referencia .pie__dato{
  display:inline-flex;
  gap:10px;
  align-items:center;
  font-size:clamp(13px,.93vw,17px);
  line-height:1.3;
  text-transform:none;
  font-style:normal;
}
.pie--soferton-referencia .pie__dato .icono{width:15px;height:15px;flex:none;margin:0;}
.pie--soferton-referencia .pie__columna{min-width:0;}
.pie--soferton-referencia .pie__titulo{
  color:#fff;
  font-size:clamp(13px,1vw,18px);
  line-height:1.3;
  font-weight:700;
  letter-spacing:.005em;
  text-transform:uppercase;
  margin:0 0 clamp(20px,1.6vw,30px);
}
.pie--soferton-referencia .pie__menu{
  display:grid;
  gap:clamp(13px,.94vw,19px);
  list-style:none;
  margin:0;
  padding:0;
}
.pie--soferton-referencia .pie__menu li{margin:0;padding:0;line-height:1.35;}
.pie--soferton-referencia .pie__menu a{
  color:#fff;
  font-size:clamp(13px,.93vw,16px);
  text-transform:uppercase;
  line-height:1.4;
  font-weight:400;
  letter-spacing:0;
}
.pie--soferton-referencia .pie__tiendas-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(18px,1.75vw,36px);
}
.pie--soferton-referencia .pie__tiendas-columna{
  display:grid;
  gap:clamp(19px,1.45vw,29px);
  align-content:start;
  list-style:none;
  padding:0;
  margin:0;
  min-width:0;
}
.pie--soferton-referencia .pie__tienda{min-width:0;margin:0;}
.pie--soferton-referencia .pie__tienda-titulo{
  color:#fff;
  font-size:clamp(13px,.91vw,16px);
  line-height:1.3;
  text-transform:uppercase;
  font-weight:700;
  letter-spacing:0;
  margin:0 0 4px;
}
.pie--soferton-referencia .pie__tienda-direccion{
  color:rgba(255,255,255,.88);
  font-size:clamp(12px,.86vw,15px);
  line-height:1.48;
  font-style:normal;
  margin:0;
  overflow-wrap:break-word;
}
.pie--soferton-referencia .pie__inferior{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:14px 30px;
  width:100%;
  max-width:1700px;
  margin:clamp(48px,4.5vw,78px) auto 0;
  padding:clamp(16px,1.3vw,24px) 0 0;
  border-top:1px solid rgba(255,255,255,.2);
  color:#fff;
  font-size:clamp(12px,.85vw,15px);
}
.pie--soferton-referencia .pie__copyright{margin:0;line-height:1.4;}
.pie--soferton-referencia .pie__menu-inferior{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-end;
  gap:12px clamp(16px,2vw,38px);
  margin:0;
  padding:0;
  list-style:none;
}
.pie--soferton-referencia .pie__menu-inferior li{margin:0;}
.pie--soferton-referencia .pie__menu-inferior a{
  color:#fff;
  font-size:clamp(12px,.85vw,15px);
  line-height:1.4;
}
.pie--soferton-referencia .pie__credito{
  display:block;
  max-width:1700px;
  margin:12px auto 0;
  padding:0;
  font-size:11px;
  line-height:1.4;
  text-align:right;
  color:rgba(255,255,255,.7);
}
.pie--soferton-referencia .pie__credito a{color:inherit;}
@media(max-width:1250px){
  .pie--soferton-referencia .pie__interior{
    grid-template-columns:minmax(185px,1.25fr) repeat(3,minmax(130px,1fr));
    gap:38px 28px;
  }
  .pie--soferton-referencia .pie__columna--tiendas{
    grid-column:1 / -1;
    padding-top:6px;
  }
  .pie--soferton-referencia .pie__tiendas-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    max-width:760px;
    gap:28px;
  }
}
@media(max-width:790px){
  .pie--soferton-referencia .pie__interior{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:35px 24px;
  }
  .pie--soferton-referencia .pie__marca{grid-column:1 / -1;}
  .pie--soferton-referencia .pie__columna--tiendas{grid-column:1 / -1;}
  .pie--soferton-referencia .pie__logo img{width:175px;}
  .pie--soferton-referencia .pie__contacto-lista{margin-top:25px;}
}
@media(max-width:480px){
  .pie.pie--soferton-referencia{padding:38px 22px 22px;}
  .pie--soferton-referencia .pie__interior{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:32px 16px;
  }
  .pie--soferton-referencia .pie__tiendas-grid{gap:18px;}
  .pie--soferton-referencia .pie__tienda-titulo{font-size:12px;}
  .pie--soferton-referencia .pie__tienda-direccion{font-size:12px;}
  .pie--soferton-referencia .pie__inferior{align-items:flex-start;flex-direction:column;gap:19px;margin-top:48px;}
  .pie--soferton-referencia .pie__menu-inferior{justify-content:flex-start;gap:12px 18px;}
  .pie--soferton-referencia .pie__credito{text-align:left;margin-top:24px;}
}

/* Soferton footer homepage specificity correction */
body.home .pie.pie--soferton-referencia{background:#b5b2af;color:#fff;}

/* Soferton footer logo matches header responsive size 2026-11-11 */
.pie--soferton-referencia .pie__logo img{width:126px;max-width:100%;height:auto;}
@media(max-width:1024px){.pie--soferton-referencia .pie__logo img{width:114px;}}
@media(max-width:767px){.pie--soferton-referencia .pie__logo img{width:100px;}}

/* Soferton footer typography matched to Millan Sens and editorial credit slot 2026-11-11 */
.pie.pie--soferton-referencia{font-size:14px;line-height:1.45;}
.pie--soferton-referencia .pie__titulo{font-size:12px;line-height:1.3;font-weight:600;letter-spacing:.12em;margin-bottom:18px;}
.pie--soferton-referencia .pie__menu{gap:11px;}
.pie--soferton-referencia .pie__menu a{font-size:14px;line-height:1.45;}
.pie--soferton-referencia .pie__dato{font-size:14px;}
.pie--soferton-referencia .pie__tienda-titulo{font-size:13px;line-height:1.3;font-weight:600;margin-bottom:6px;}
.pie--soferton-referencia .pie__tienda-direccion{font-size:13px;line-height:1.5;}
.pie--soferton-referencia .pie__inferior{
 display:grid;
 grid-template-columns:minmax(0,1.1fr) minmax(0,1.1fr) minmax(0,1.45fr);
 align-items:center;
 gap:20px 30px;
 font-size:12px;
}
.pie--soferton-referencia .pie__copyright{grid-column:1;grid-row:1;font-size:12px;}
.pie--soferton-referencia .pie__credito{
 grid-column:2;grid-row:1;
 margin:0;padding:0;
 max-width:none;
 font-size:12px;line-height:1.45;
 text-align:center;
 color:rgba(255,255,255,.86);
}
.pie--soferton-referencia .pie__inferior-nav{grid-column:3;grid-row:1;min-width:0;}
.pie--soferton-referencia .pie__menu-inferior{justify-content:flex-end;gap:10px 22px;}
.pie--soferton-referencia .pie__menu-inferior a{font-size:12px;}
@media(max-width:1100px){
 .pie--soferton-referencia .pie__inferior{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:15px 25px;}
 .pie--soferton-referencia .pie__copyright{grid-column:1;grid-row:1;}
 .pie--soferton-referencia .pie__inferior-nav{grid-column:2;grid-row:1;}
 .pie--soferton-referencia .pie__credito{grid-column:1 / -1;grid-row:2;text-align:left;}
}
@media(max-width:767px){
 .pie--soferton-referencia .pie__inferior{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;}
 .pie--soferton-referencia .pie__copyright{grid-column:1;grid-row:1;}
 .pie--soferton-referencia .pie__inferior-nav{grid-column:1;grid-row:2;}
 .pie--soferton-referencia .pie__credito{grid-column:1;grid-row:3;text-align:left;margin:0;}
 .pie--soferton-referencia .pie__menu-inferior{justify-content:flex-start;}
}
/* Soferton footer credit as final legal-nav item 2026-11-11 */
.pie--soferton-referencia .pie__inferior{display:flex;align-items:center;justify-content:space-between;gap:16px 28px;flex-wrap:wrap;}
.pie--soferton-referencia .pie__inferior-nav{flex:1 1 auto;min-width:0;}
.pie--soferton-referencia .pie__menu-inferior{display:flex;justify-content:flex-end;align-items:center;flex-wrap:wrap;gap:12px 24px;}
.pie--soferton-referencia .pie__menu-inferior .pie__credito{display:list-item;grid-column:auto;grid-row:auto;margin:0;padding:0;text-align:left;max-width:none;font-size:12px;line-height:1.45;color:#fff;white-space:normal;}
.pie--soferton-referencia .pie__menu-inferior .pie__credito a{font-size:inherit;color:#fff;}
@media(max-width:767px){.pie--soferton-referencia .pie__inferior{display:flex;flex-direction:column;align-items:flex-start;gap:16px;}.pie--soferton-referencia .pie__inferior-nav{width:100%;}.pie--soferton-referencia .pie__menu-inferior{justify-content:flex-start;}}

/* Black Friday shared icon scaled to match line category icons */
.selector-categoria__imagen img[src*='soferton-millansens-black-friday-icon']{width:56px!important;height:56px!important;max-width:56px!important;max-height:56px!important;object-fit:contain!important;transform:none!important;}

/* Black Friday native SVG: consistent with all category pictograms */
.selector-categoria__imagen .icono--categoria:has(text){transform:none!important;transition:none!important;}

/* Soferton footer special La Linea telephone 20261111 */
.pie--soferton-referencia .pie__tienda-telefono{display:inline-block;margin-top:8px;font-size:13px;line-height:1.4;color:#fff;text-decoration:none;}
.pie--soferton-referencia .pie__tienda-telefono:hover{color:#fff;opacity:.82;}

/* Soferton: compact trust benefits directly beneath product enquiry button. */
.ficha__beneficios {
    box-sizing: border-box;
    margin-top: clamp(18px, 1.6vw, 26px);
    padding-top: clamp(15px, 1.4vw, 21px);
    border-top: 1px solid color-mix(in srgb, var(--contrast) 13%, transparent);
}
.ficha__beneficios-lista { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.ficha__beneficios-item {
    display: flex; align-items: center; gap: 12px; min-height: 23px;
    margin: 0; padding: 0; color: var(--contrast-2, #53565a);
    font-size: 14px; font-weight: 400; line-height: 1.45;
}
.ficha__beneficios-icono {
    display: flex; flex: 0 0 24px; width: 24px; height: 24px;
    align-items: center; justify-content: center; color: var(--color-primary, #9CB83C);
}
.ficha__beneficios-icono svg { display: block; width: 22px; height: 22px; flex: 0 0 22px; stroke-width: 1.7; }
@media(max-width: 767px) {
    .ficha__beneficios { margin-top: 18px; padding-top: 17px; }
    .ficha__beneficios-item { font-size: 13px; }
}
