/* 
 * Additional CSS for Terra Moura Child Theme
 * Custom styles that extend the parent theme
 */

/* === TIPOGRAFÍA GLOBAL - NUNITO EXTRALIGHT === */
body {
    font-family: 'Nunito', sans-serif;
    font-weight: 200;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

h1, h2 {
    font-family: 'GapSans', 'Nunito', sans-serif;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: -0.02em;
    transform: scaleX(1.1) scaleY(0.9);
    transform-origin: left top;
    display: inline-block;
}

h3 {
    font-family: 'Nunito', sans-serif;
    font-weight: 700;
    letter-spacing: -0.075em;
}

strong, b {
    font-weight: 700;
}

/* === TEXT SELECTION === */
::selection {
    color: #000000;
    background: #cecece;
}

::-moz-selection {
    color: #000000;
    background: #cecece;
}

/* === HEADER STYLES — Liquid Glass blanco, fixed en todas las páginas === */
.site-header {
    /* Liquid glass blanco translúcido */
    background: rgba(255, 255, 255, 0.72);
    backdrop-filter: blur(22px) saturate(1.85) brightness(1.08);
    -webkit-backdrop-filter: blur(22px) saturate(1.85) brightness(1.08);

    /* Highlight especular sutil */
    background-image: linear-gradient(
        160deg,
        rgba(255, 255, 255, 0.45) 0%,
        rgba(255, 255, 255, 0.10) 45%,
        rgba(255, 255, 255, 0.25) 100%
    );

    /* Edge glow + profundidad */
    border-bottom: 1px solid rgba(255, 255, 255, 0.45);
    box-shadow:
        inset 0 1px 1px rgba(255, 255, 255, 0.55),
        inset 0 -1px 1px rgba(0, 0, 0, 0.04),
        0 4px 24px rgba(0, 0, 0, 0.10);

    padding: 0;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 1000;
    will-change: backdrop-filter;
}

/* Neutralizar el root-padding que Twenty Twenty-Four inyecta vía theme.json */
:root,
body {
    --wp--style--root--padding-top: 0 !important;
    --wp--style--root--padding-right: 0 !important;
    --wp--style--root--padding-bottom: 0 !important;
    --wp--style--root--padding-left: 0 !important;
}

/* Reset margenes/padding heredados del parent theme y FSE wrappers */
body {
    padding: 0 !important;
    margin: 0 !important;
    background: #ffffff;
}

.wp-site-blocks,
.has-global-padding {
    padding: 0 !important;
    margin: 0 !important;
}

#page {
    margin: 0 !important;
    padding: 0 !important;
}

/* Compensar el header fijo. Selector con ID para igualar/exceder la especificidad
   de cualquier rule del parent que también use #content. */
#content,
#content.site-content,
.site-content {
    margin: 0 !important;
    padding-top: 130px !important;
    padding-right: 0 !important;
    padding-bottom: 0 !important;
    padding-left: 0 !important;
}

@media (max-width: 768px) {
    h1, h2 {
        transform-origin: center top;
        display: block;
        text-align: center;
    }

    #content,
    #content.site-content,
    .site-content {
        padding-top: 96px !important;
    }
}

/* Cualquier hijo directo del content empieza pegado al borde inferior del header */
.site-content > *:first-child,
.tickets-page-main > *:first-child,
.tickets-page-container > *:first-child {
    margin-top: 0 !important;
}

.header-container {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    position: relative;
    align-items: center;
    max-width: 1400px;
    margin: 0 auto;
    padding: 1.5rem 2rem;
    gap: 1rem;
}

/* Logo (izquierda) */
.site-branding {
    justify-self: start;
    text-align: left;
}

.site-logo-link {
    display: inline-block;
    transition: opacity 0.3s ease;
}

.site-logo-link:hover {
    opacity: 0.8;
}

.site-logo {
    height: 80px !important;
    width: auto !important;
    max-width: none !important;
    display: block;
}

/* Navegación */
.main-navigation {
    width: 100%;
    text-align: center;
}

.menu-toggle {
    display: none;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.5rem;
}

.menu-toggle-icon {
    display: block;
    width: 24px;
    height: 2px;
    background: #2c3e50;
    position: relative;
}

.menu-toggle-icon::before,
.menu-toggle-icon::after {
    content: '';
    position: absolute;
    width: 24px;
    height: 2px;
    background: #2c3e50;
    left: 0;
    transition: all 0.3s ease;
}

.menu-toggle-icon::before {
    top: -8px;
}

.menu-toggle-icon::after {
    bottom: -8px;
}

.nav-menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    justify-content: center;
    gap: 2.5rem;
    flex-wrap: wrap;
}

.nav-menu li {
    margin: 0;
}

.nav-menu a {
    color: #1a1a1a;
    text-decoration: none;
    font-weight: 600;
    font-size: 0.95rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    transition: color 0.25s ease, text-shadow 0.25s ease;
    position: relative;
    text-shadow: 0 0 8px rgba(255, 255, 255, 0.5);
}

.nav-menu a::after {
    content: '';
    position: absolute;
    bottom: -4px;
    left: 0;
    width: 0;
    height: 2px;
    background: #e74c3c;
    transition: width 0.3s ease;
}

.nav-menu a:hover {
    color: #e74c3c;
    text-shadow: 0 0 12px rgba(231, 76, 60, 0.25);
}

.nav-menu a:hover::after {
    width: 100%;
}

.nav-menu .current-menu-item a,
.nav-menu .current_page_item a {
    color: #e74c3c;
    font-weight: 700;
}

/* === RESPONSIVE HEADER === */
@media (max-width: 768px) {
    .header-container {
        padding: 1rem 1.5rem;
    }
    
    .site-logo {
        height: 60px;
    }
    
    .menu-toggle {
        display: block;
        position: absolute;
        right: 1.5rem;
        top: 1.5rem;
    }
    
    .main-navigation {
        display: none;
    }
    
    .main-navigation.toggled {
        display: block;
    }
    
    .nav-menu {
        flex-direction: column;
        gap: 0;
        padding-top: 1rem;
    }
    
    .nav-menu li {
        border-bottom: 1px solid #e0e0e0;
    }
    
    .nav-menu a {
        display: block;
        padding: 1rem 0;
    }
}

/* === FOOTER STYLES === */
/* Layout tipo Paral·lel: logo grande a la izquierda + columnas (Ubicación / Legal /
   Redes). Fondo negro, tipografía Nunito, jerarquía por encabezados discretos. */
.footer {
    display: grid;
    grid-template-columns: minmax(240px, 1.4fr) 1.2fr 1fr 1fr;
    grid-column-gap: 2.5em;
    grid-row-gap: 2em;
    align-items: start;
    max-width: 100%;
    padding: 3.5em 3rem;
    position: relative;
    background: #000000;
    color: #ffffff;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.footer-brand {
    display: flex;
    align-items: flex-start;
}

.footer-brand a {
    display: inline-block;
    max-width: 100%;
    text-decoration: none;
}

.footer-logo-img,
.footer .footer-logo-img,
.footer-brand .footer-logo-img {
    display: block !important;
    height: 128px !important;
    width: auto !important;
    max-width: 100% !important;
}

/* Columnas */
.footer-col {
    display: block;
    font-family: 'Nunito', sans-serif;
}

.footer-heading {
    margin: 0 0 1.2em;
    font-family: 'Nunito', sans-serif;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.55);
}

/* Ubicación (enlace a Google Maps) */
.footer-location {
    display: inline-flex;
    align-items: flex-start;
    gap: 0.6em;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.7;
    color: #ffffff;
    text-decoration: none;
    transition: opacity 0.15s ease;
}

.footer-location:hover {
    opacity: 0.75;
}

.footer-location:hover .footer-location__text {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.footer-location__icon {
    flex-shrink: 0;
    margin-top: 0.15em;
    color: #FF6F3C;
}

/* Legal (enlaces apilados) */
.footer-links {
    display: flex;
    flex-direction: column;
    gap: 0.85em;
}

.footer-links a {
    font-family: 'Nunito', sans-serif;
    font-size: 1rem;
    font-weight: 400;
    color: #ffffff;
    text-decoration: none;
    width: fit-content;
    transition: opacity 0.15s ease;
}

.footer-links a:hover {
    opacity: 0.75;
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Redes (icono + etiqueta) */
.footer-social {
    display: flex;
    flex-direction: column;
    gap: 0.85em;
}

.footer-social a {
    display: inline-flex;
    align-items: center;
    gap: 0.65em;
    font-family: 'Nunito', sans-serif;
    font-size: 1rem;
    font-weight: 400;
    color: #ffffff;
    text-decoration: none;
    width: fit-content;
    transition: opacity 0.15s ease;
}

.footer-social a:hover {
    opacity: 0.75;
}

.footer-social a:hover span {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.footer-social__icon {
    flex-shrink: 0;
}

/* Tablet: 991px and down → logo arriba, columnas en 3 debajo */
@media screen and (max-width: 991px) {
    .footer {
        grid-template-columns: 1fr 1fr 1fr;
        grid-column-gap: 2em;
        padding: 3em 2rem;
    }

    .footer-brand {
        grid-column: 1 / -1;
        margin-bottom: 0.5em;
    }

    .footer-logo-img,
    .footer .footer-logo-img,
    .footer-brand .footer-logo-img {
        height: 104px !important;
    }
}

/* Mobile: 767px and down → columnas apiladas */
@media screen and (max-width: 767px) {
    .footer {
        grid-template-columns: 1fr;
        grid-row-gap: 2.25em;
        padding: 2.5em 1.5rem;
        text-align: left;
    }

    .footer-logo-img,
    .footer .footer-logo-img,
    .footer-brand .footer-logo-img {
        height: 88px !important;
    }

    .footer-heading {
        margin-bottom: 0.9em;
    }
}

/* Mobile small: 479px and down */
@media screen and (max-width: 479px) {
    .footer {
        padding-left: 1.25rem;
        padding-right: 1.25rem;
    }
}

/* === ERROR 404 PAGE === */
.error-404 {
    text-align: center;
    padding: 5rem 2rem;
}

.error-404 .page-title {
    font-size: 3rem;
    color: #2c3e50;
    margin-bottom: 1rem;
}

.error-404 .page-content {
    max-width: 600px;
    margin: 0 auto;
}

.error-404 .button {
    display: inline-block;
    margin-top: 2rem;
    background: #e74c3c;
    color: white !important;
    padding: 1rem 2rem;
    border-radius: 50px;
    text-decoration: none;
    font-weight: 700;
    transition: all 0.3s ease;
}

.error-404 .button:hover {
    background: #c0392b;
    transform: translateY(-2px);
}

/* === WOOCOMMERCE OVERRIDES === */
.woocommerce-page .entry-title {
    display: none;
}

/* === UTILITIES === */
.text-center {
    text-align: center;
}

.mb-0 { margin-bottom: 0; }
.mb-1 { margin-bottom: 1rem; }
.mb-2 { margin-bottom: 2rem; }
.mb-3 { margin-bottom: 3rem; }

.mt-0 { margin-top: 0; }
.mt-1 { margin-top: 1rem; }
.mt-2 { margin-top: 2rem; }
.mt-3 { margin-top: 3rem; }

/* === MINI CART ITEMS === */
.mini-cart-item {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    padding: 0.85rem 0;
    border-bottom: 1px solid rgba(90, 65, 45, 0.10);
}

.mini-cart-item:first-child {
    padding-top: 0;
}

.mini-cart-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.mini-cart-item .item-info {
    flex: 1 1 auto;
    min-width: 0;
}

.item-info .item-name {
    font-family: 'Nunito', sans-serif;
    font-size: 0.92rem;
    font-weight: 700;
    margin: 0 0 0.2rem 0;
    color: #5a412d;
    line-height: 1.3;
}

.item-info .item-quantity {
    font-size: 0.78rem;
    color: #8a7a66;
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    font-weight: 400;
}

.item-price {
    flex: 0 0 auto;
    font-size: 0.95rem;
    font-weight: 800;
    color: #5a412d;
    white-space: nowrap;
}

/* ======================== */
/* === MINI CART (GLOBAL — todas las páginas) === */
/* ======================== */

.mini-cart-wrapper {
    position: absolute;
    right: 2rem;
    top: 50%;
    transform: translateY(-50%);
}

.mini-cart-toggle {
    position: relative;
    background: rgba(255, 255, 255, 0.18);
    backdrop-filter: blur(14px) saturate(1.6);
    -webkit-backdrop-filter: blur(14px) saturate(1.6);
    border: 1.5px solid rgba(255, 255, 255, 0.35);
    border-radius: 50%;
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: all 0.25s ease;
    box-shadow:
        inset 0 1px 1px rgba(255, 255, 255, 0.45),
        0 2px 12px rgba(0, 0, 0, 0.08);
}

.mini-cart-toggle:hover {
    background: rgba(0, 0, 0, 0.80);
    border-color: rgba(0, 0, 0, 0.60);
    color: #ffffff;
    box-shadow:
        inset 0 1px 1px rgba(255, 255, 255, 0.10),
        0 4px 16px rgba(0, 0, 0, 0.15);
}

.cart-count {
    position: absolute;
    top: -8px;
    right: -8px;
    background: #FF6F3C;
    color: white;
    border-radius: 50%;
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    font-weight: 700;
}

/* === MINI-CART DROPDOWN: blanco, limpio, estructurado === */
.mini-cart-dropdown {
    position: absolute;
    top: 60px;
    right: 0;
    width: 380px;
    background: #ffffff;
    border: 1px solid rgba(90, 65, 45, 0.10);
    border-radius: 16px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.18);
    display: none;
    z-index: 9999;
    overflow: hidden;
}

.mini-cart-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.1rem 1.5rem;
    border-bottom: 1px solid rgba(90, 65, 45, 0.12);
    background: #f5efe2;
}

.mini-cart-header h3 {
    font-family: 'GapSans', 'Nunito', sans-serif;
    font-weight: 400;
    font-size: 1.15rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin: 0;
    color: #5a412d;
    line-height: 1;
}

.mini-cart-close {
    background: none;
    border: none;
    font-size: 1.4rem;
    cursor: pointer;
    color: #5a412d;
    line-height: 1;
    padding: 0;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: background 0.2s ease;
}

.mini-cart-close:hover {
    background: rgba(90, 65, 45, 0.08);
}

.mini-cart-items {
    padding: 1rem 1.25rem;
    max-height: 320px;
    overflow-y: auto;
    background: #ffffff;
}

.empty-cart-message {
    text-align: center;
    color: #8a7a66;
    padding: 2.5rem 1rem;
    font-size: 0.95rem;
    margin: 0;
}

.mini-cart-footer {
    padding: 1.25rem 1.5rem;
    border-top: 1px solid rgba(90, 65, 45, 0.12);
    background: #ffffff;
}

.cart-total {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 1rem;
    font-size: 1rem;
    color: #5a412d;
}

.cart-total span:first-child {
    font-family: 'Nunito', sans-serif;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.85rem;
    color: #8a7a66;
}

.cart-total .total-amount,
.cart-total span:last-child {
    font-weight: 800;
    font-size: 1.2rem;
    color: #5a412d;
}

/* Botones del mini-cart */
.btn {
    display: block;
    width: 100%;
    padding: 0.85rem 1rem;
    text-align: center;
    text-decoration: none;
    border-radius: 8px;
    font-family: 'Nunito', sans-serif;
    font-weight: 700;
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    transition: all 0.2s ease;
    box-sizing: border-box;
}

.mini-cart-dropdown a.btn.btn-cart-view,
a.btn.btn-cart-view {
    background: #8A8D56 !important;
    border: 2px solid #8A8D56 !important;
    color: #ffffff !important;
    margin-bottom: 0.5rem;
}

.mini-cart-dropdown a.btn.btn-cart-view:hover,
a.btn.btn-cart-view:hover {
    background: #6f7244 !important;
    border-color: #6f7244 !important;
    color: #ffffff !important;
}

.mini-cart-dropdown a.btn.btn-checkout,
a.btn.btn-checkout {
    background: #5a412d !important;
    color: #ffffff !important;
    border: 2px solid #5a412d !important;
}

.mini-cart-dropdown a.btn.btn-checkout:hover,
a.btn.btn-checkout:hover {
    background: #3d2c1f !important;
    border-color: #3d2c1f !important;
    color: #ffffff !important;
}

.btn-cart.loading {
    pointer-events: none;
    opacity: 0.6;
    position: relative;
}

.btn-cart.loading::after {
    content: '';
    position: absolute;
    width: 16px;
    height: 16px;
    border: 2px solid transparent;
    border-top-color: currentColor;
    border-radius: 50%;
    animation: spin 0.6s linear infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

.cart-notification {
    position: fixed;
    top: 100px;
    right: 20px;
    background: #000000;
    color: #ffffff !important;
    padding: 1rem 1.5rem;
    border-radius: 0;
    border: 2px solid #ffffff;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
    z-index: 9999;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    animation: slideInRight 0.3s ease;
    font-weight: 600;
}

.cart-notification span {
    color: #ffffff !important;
}

.cart-notification.error {
    background: #dc3545;
    border-color: #ffffff;
    color: #ffffff !important;
}

@keyframes slideInRight {
    from {
        transform: translateX(400px);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}

.cart-notification.fade-out {
    animation: fadeOut 0.3s ease forwards;
}

@keyframes fadeOut {
    to {
        opacity: 0;
        transform: translateX(400px);
    }
}

.cart-count.bounce {
    animation: bounceScale 0.4s ease;
}

@keyframes bounceScale {
    0%, 100% { transform: scale(1); }
    50% { transform: scale(1.3); }
}

@media (max-width: 768px) {
    .mini-cart-wrapper {
        right: 1rem;
    }

    .mini-cart-dropdown {
        width: 340px;
    }

    .cart-notification {
        right: 1rem;
        left: auto;
    }
}

@media (max-width: 576px) {
    .mini-cart-dropdown {
        width: calc(100vw - 2rem);
        right: 1rem;
        left: auto;
    }

    .mini-cart-header {
        padding: 1rem;
    }

    .mini-cart-header h3 {
        font-size: 1rem;
    }

    .mini-cart-footer {
        padding: 1rem;
    }

    .btn-cart-view,
    .btn-checkout {
        padding: 0.75rem 1rem;
        font-size: 0.9rem;
    }

    .cart-notification {
        right: 0.5rem;
        left: 0.5rem;
        padding: 0.75rem 1rem;
        font-size: 0.9rem;
    }
}

/* ============================================================ */
/* === WOOCOMMERCE CARRITO Y CHECKOUT (estilo Terra Moura) === */
/* ============================================================ */

/* Body de cart/checkout — color de texto pero NO fondo (el bg cream va en .site-content) */
body.woocommerce-cart,
body.woocommerce-checkout {
    color: #5a412d;
}

/* Contenedor principal - layout más generoso. NO usar shorthand padding (sobrescribe el padding-top del header). */
body.woocommerce-cart .site-content,
body.woocommerce-checkout .site-content {
    padding-top: calc(130px + 3rem) !important;
    padding-right: 2rem;
    padding-bottom: 6rem;
    padding-left: 2rem;
    background: #ffffff;
    position: relative;
    overflow-x: clip;
}

body.woocommerce-cart .woocommerce,
body.woocommerce-checkout .woocommerce {
    max-width: 1200px;
    margin: 0 auto;
    position: relative;
    z-index: 2;
}

/* === DECORATIVAS LATERALES === */
/* position:fixed al viewport → fuera del flow (no afecta scroll). Inyectadas en <body> via wp_body_open. */
.tm-cart-deco,
.tm-checkout-deco {
    position: fixed;
    pointer-events: none;
    user-select: none;
    z-index: 0;
    height: auto;
    width: 380px;
    top: 160px;
    opacity: 0.85;
}

.tm-cart-deco { left: -180px; }
.tm-checkout-deco { right: -180px; }

/* Asegurar que el contenido principal queda por encima */
body.woocommerce-cart #page,
body.woocommerce-checkout #page {
    position: relative;
    z-index: 1;
}

@media (max-width: 1100px) {
    .tm-cart-deco { left: -240px; width: 320px; }
    .tm-checkout-deco { right: -240px; width: 320px; }
}

@media (max-width: 768px) {
    .tm-cart-deco,
    .tm-checkout-deco {
        display: none;
    }
}

/* === TÍTULOS DE PÁGINA === */
body.woocommerce-cart .entry-title,
body.woocommerce-checkout .entry-title,
body.woocommerce-cart .page-title,
body.woocommerce-checkout .page-title {
    font-family: 'GapSans', 'Nunito', sans-serif;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #5a412d;
    text-align: center;
    margin: 0 0 2.5rem;
    font-size: 2.8rem;
}

/* Headings dentro de las páginas */
.woocommerce-cart h2,
.woocommerce-checkout h2,
.woocommerce-cart .cart_totals h2,
.woocommerce-checkout #order_review_heading {
    font-family: 'GapSans', 'Nunito', sans-serif !important;
    font-weight: 400 !important;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #5a412d;
    font-size: 1.8rem;
    margin: 0 0 1.5rem;
    line-height: 1.2;
}

.woocommerce-checkout h3 {
    font-family: 'Nunito', sans-serif !important;
    font-weight: 700 !important;
    letter-spacing: -0.075em;
    color: #5a412d;
    font-size: 1.2rem;
    margin: 1.2rem 0 0.75rem;
    text-transform: none;
}

/* === MENSAJES / NOTICES === */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.woocommerce-notice {
    background: #ffffff;
    border-left: 4px solid #5a412d;
    border-radius: 6px;
    padding: 1rem 1.25rem;
    margin: 0 0 1.5rem;
    color: #5a412d;
    font-family: 'Nunito', sans-serif;
    box-shadow: 0 2px 12px rgba(90, 65, 45, 0.06);
}

.woocommerce-message {
    border-left-color: #FF6F3C;
}

.woocommerce-error {
    border-left-color: #c24d4d;
    color: #c24d4d;
}

.woocommerce-message a,
.woocommerce-info a {
    color: #FF6F3C;
    text-decoration: underline;
    font-weight: 700;
}

/* === TABLA DEL CARRITO === */
.woocommerce table.shop_table {
    background: #ffffff;
    border: none;
    border-radius: 14px;
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(90, 65, 45, 0.08);
    border-collapse: separate;
    border-spacing: 0;
    width: 100%;
    table-layout: auto;
}

.woocommerce table.shop_table th {
    background: #d9c6a3;
    color: #5a412d;
    font-family: 'Nunito', sans-serif;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.78rem;
    padding: 1rem 0.85rem;
    border: none;
    text-align: left;
    white-space: nowrap;
}

.woocommerce table.shop_table td {
    padding: 1rem 0.85rem;
    border-top: 1px solid rgba(90, 65, 45, 0.10);
    color: #5a412d;
    vertical-align: middle;
    white-space: nowrap;
}

.woocommerce table.shop_table tr:first-child td {
    border-top: none;
}

/* Anchos explícitos para que cada item entre en una sola línea horizontal */
.woocommerce-cart table.shop_table.woocommerce-cart-form__contents th.product-remove,
.woocommerce-cart table.shop_table.woocommerce-cart-form__contents td.product-remove {
    width: 40px;
    padding-left: 1rem;
    padding-right: 0.5rem;
    text-align: center;
}

.woocommerce-cart table.shop_table.woocommerce-cart-form__contents th.product-thumbnail,
.woocommerce-cart table.shop_table.woocommerce-cart-form__contents td.product-thumbnail {
    width: 90px;
    text-align: center;
}

.woocommerce-cart table.shop_table.woocommerce-cart-form__contents th.product-name,
.woocommerce-cart table.shop_table.woocommerce-cart-form__contents td.product-name {
    width: auto;
    min-width: 200px;
    white-space: normal;
}

.woocommerce-cart table.shop_table.woocommerce-cart-form__contents th.product-price,
.woocommerce-cart table.shop_table.woocommerce-cart-form__contents td.product-price {
    width: 110px;
    text-align: right;
}

.woocommerce-cart table.shop_table.woocommerce-cart-form__contents th.product-quantity,
.woocommerce-cart table.shop_table.woocommerce-cart-form__contents td.product-quantity {
    width: 130px;
    text-align: center;
}

.woocommerce-cart table.shop_table.woocommerce-cart-form__contents th.product-subtotal,
.woocommerce-cart table.shop_table.woocommerce-cart-form__contents td.product-subtotal {
    width: 120px;
    text-align: right;
    padding-right: 1.25rem;
}

/* Imagen circular más pequeña para que la fila sea compacta */
.woocommerce table.shop_table .product-thumbnail img {
    width: 60px;
    height: 60px;
    object-fit: cover;
    border-radius: 50%;
    border: 2px solid #5a412d;
    display: block;
    margin: 0 auto;
}

.woocommerce table.shop_table .product-name a {
    color: #5a412d;
    font-weight: 700;
    text-decoration: none;
    font-size: 1rem;
}

.woocommerce table.shop_table .product-name a:hover {
    color: #FF6F3C;
}

.woocommerce table.shop_table .product-price,
.woocommerce table.shop_table .product-subtotal {
    font-weight: 700;
    color: #5a412d;
    font-size: 0.95rem;
}

/* Quantity input compacto en la fila horizontal */
.woocommerce-cart table.shop_table.woocommerce-cart-form__contents td.product-quantity .quantity {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.woocommerce-cart table.shop_table.woocommerce-cart-form__contents td.product-quantity input.qty {
    width: 60px;
    height: 38px;
}

/* Cantidad input */
.woocommerce .quantity input.qty {
    width: 64px;
    height: 42px;
    text-align: center;
    border: 1.5px solid rgba(90, 65, 45, 0.25);
    border-radius: 8px;
    background: #ffffff;
    color: #5a412d;
    font-weight: 700;
    font-family: 'Nunito', sans-serif;
}

.woocommerce .quantity input.qty:focus {
    border-color: #5a412d;
    outline: none;
}

/* Quitar item (X) */
.woocommerce a.remove {
    color: #5a412d !important;
    background: rgba(90, 65, 45, 0.08);
    width: 24px;
    height: 24px;
    line-height: 24px;
    text-decoration: none;
    transition: all 0.2s ease;
}

.woocommerce a.remove:hover {
    background: #c24d4d !important;
    color: #ffffff !important;
}

/* === CUPÓN Y FILA DE ACCIONES === */

/* td.actions: flex row con coupon a la izquierda y "Actualizar" a la derecha.
   WooCommerce por defecto usa float:left / float:right — los anulamos aquí. */
.woocommerce table.cart .actions {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem;
    background: #fff;
    padding: 1rem 1.25rem;
}

/* Cupón: siempre en fila horizontal, sin float heredado */
.woocommerce .coupon {
    display: flex !important;
    flex-direction: row;
    align-items: center;
    gap: 0.5rem;
    float: none !important;
}

/* Botón Actualizar: sin float */
.woocommerce table.cart .actions button[name="update_cart"],
.woocommerce table.cart .actions .button:not(.apply_coupon) {
    float: none !important;
}

.woocommerce .coupon input.input-text {
    height: 42px;
    padding: 0 1rem;
    border: 1.5px solid rgba(90, 65, 45, 0.25);
    border-radius: 8px;
    font-family: 'Nunito', sans-serif;
    color: #5a412d;
    min-width: 160px;
}

.woocommerce .coupon input.input-text:focus {
    border-color: #5a412d;
    outline: none;
    box-shadow: 0 0 0 3px rgba(255, 111, 60, 0.15);
}

/* === BOTONES GLOBALES === */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce-page a.button,
.woocommerce-page button.button {
    background: #5a412d;
    color: #ffffff !important;
    font-family: 'Nunito', sans-serif !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.85rem;
    padding: 0.85rem 1.5rem;
    border: none;
    border-radius: 8px;
    transition: all 0.25s ease;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(90, 65, 45, 0.18);
}

.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover {
    background: #3d2c1f;
    transform: translateY(-1px);
    box-shadow: 0 4px 16px rgba(90, 65, 45, 0.25);
}

/* CTA principal — naranja */
.woocommerce a.button.alt,
.woocommerce button.button.alt,
.woocommerce input.button.alt,
.woocommerce .checkout-button,
.woocommerce #place_order {
    background: #FF6F3C !important;
    color: #ffffff !important;
    font-size: 1rem !important;
    padding: 1.1rem 2rem !important;
    box-shadow: 0 4px 16px rgba(255, 111, 60, 0.35) !important;
}

.woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover,
.woocommerce .checkout-button:hover,
.woocommerce #place_order:hover {
    background: #e55a28 !important;
    box-shadow: 0 6px 24px rgba(255, 111, 60, 0.45) !important;
    transform: translateY(-1px);
}

/* === LAYOUT CART (2 columnas en desktop) === */
.woocommerce-cart .woocommerce-cart-form {
    margin-bottom: 2rem;
}

/* Cart totals con MISMAS dimensiones que el shop_table (full width, mismo padding lateral) */
.woocommerce-cart .cart-collaterals {
    display: block;
    width: 100%;
    margin-top: 2rem;
    margin-bottom: 4rem;
}

.woocommerce-cart .cart-collaterals .cart_totals {
    width: 100% !important;
    max-width: 100% !important;
    float: none !important;
    background: #ffffff;
    padding: 1.75rem 2rem;
    border-radius: 14px;
    box-shadow: 0 4px 20px rgba(90, 65, 45, 0.08);
    box-sizing: border-box;
}

/* Título "Resumen": pequeño label uppercase, no GapSans dominante */
.woocommerce-cart .cart_totals h2 {
    font-family: 'Nunito', sans-serif !important;
    font-weight: 700 !important;
    font-size: 0.78rem !important;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #8a7a66;
    transform: none !important;
    text-align: left;
    margin: 0 0 1rem 0;
}

/* Tabla de totales: layout normal (no flex en tr — evita artifacts con shop_table) */
.woocommerce-cart .cart_totals .shop_table {
    width: 100%;
    margin: 0 0 1.25rem 0;
    table-layout: fixed;
}

/* Reset completo del card heredado de .shop_table */
.woocommerce-cart .cart_totals table {
    background: transparent !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    overflow: visible !important;
    border-collapse: collapse !important;
}

.woocommerce-cart .cart_totals .shop_table tr {
    display: table-row !important;
    border-bottom: 1px solid rgba(90, 65, 45, 0.08);
}

.woocommerce-cart .cart_totals .shop_table tr:last-child {
    border-bottom: none;
}

.woocommerce-cart .cart_totals table th,
.woocommerce-cart .cart_totals table td {
    display: table-cell !important;
    background: transparent !important;
    text-transform: none;
    letter-spacing: 0;
    padding: 0.75rem 0;
    font-size: 0.95rem;
    border: none !important;
    white-space: nowrap;
}

.woocommerce-cart .cart_totals table th {
    font-weight: 700;
    color: #5a412d;
    text-align: left;
    width: 50%;
}

.woocommerce-cart .cart_totals table td {
    text-align: right;
    width: 50%;
}

/* Fila Total: destacada */
.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td {
    font-size: 1.15rem;
    font-weight: 800;
    color: #5a412d;
    padding-top: 0.75rem;
}

/* Botón Finalizar compra */
.woocommerce-cart .cart_totals .wc-proceed-to-checkout {
    margin-top: 1.25rem;
    padding-top: 1.25rem;
    border-top: 1.5px solid rgba(90, 65, 45, 0.12);
    display: block;
    text-align: center;
}

.woocommerce-cart .cart_totals .wc-proceed-to-checkout .button,
.woocommerce-cart .cart_totals .wc-proceed-to-checkout .checkout-button {
    display: block !important;
    width: 100% !important;
    max-width: 100%;
    margin: 0 !important;
    padding: 1.1rem 2rem !important;
    text-align: center;
    box-sizing: border-box;
}

/* Ocultar fila Subtotal en cart, checkout, mini-cart (redundante con Total). */
.woocommerce-cart .cart_totals .cart-subtotal,
.woocommerce-checkout #order_review .cart-subtotal,
.woocommerce-checkout-review-order-table .cart-subtotal,
tr.cart-subtotal {
    display: none !important;
}

/* === CHECKOUT === */
.woocommerce-checkout .woocommerce-form-coupon-toggle {
    margin-bottom: 1.5rem;
}

/* === LAYOUT PRINCIPAL CHECKOUT — single column centered === */
/* Todo en una columna centrada, formato moderno tipo Shopify/Stripe */
.woocommerce form.checkout {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    max-width: 760px;
    margin: 0 auto;
    width: 100%;
}

/* === DATOS DEL CLIENTE (col-1 + col-2 stacked) === */
.woocommerce form.checkout #customer_details {
    background: transparent;
    padding: 0;
    box-shadow: none;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
    width: 100%;
}

/* Cada sección (billing, shipping, additional) como tarjeta separada */
.woocommerce form.checkout #customer_details .col-1,
.woocommerce form.checkout #customer_details .col-2 {
    width: 100%;
    max-width: 100%;
    float: none;
    padding: 0;
    margin: 0;
}

.woocommerce-billing-fields,
.woocommerce-shipping-fields,
.woocommerce-additional-fields {
    background: #ffffff;
    padding: 1.75rem 2rem;
    border-radius: 14px;
    box-shadow: 0 4px 20px rgba(90, 65, 45, 0.08);
}

/* Ocultar el wrapper de envío si está vacío (no hay productos shippable) */
.woocommerce-shipping-fields:empty,
.woocommerce-shipping-fields:not(:has(*)) {
    display: none !important;
}

/* Ocultar el campo "Notas del pedido" (CSS fallback por si algún plugin lo re-añade) */
#order_comments_field,
.form-row.notes#order_comments_field {
    display: none !important;
}

@media (max-width: 768px) {
    .woocommerce-billing-fields,
    .woocommerce-shipping-fields,
    .woocommerce-additional-fields {
        padding: 1.5rem 1.25rem;
    }
}

/* Form rows: flex wrap para que los pares (first/last) queden 50/50 limpios */
.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem 1rem;
}

.woocommerce form .form-row {
    margin: 0 !important;
    flex: 1 1 100%;
    min-width: 0;
}

.woocommerce form .form-row-first,
.woocommerce form .form-row-last {
    flex: 1 1 calc(50% - 0.5rem) !important;
    width: auto !important;
    min-width: 220px;
    margin: 0 !important;
}

.woocommerce form .form-row-wide {
    flex: 1 1 100% !important;
    width: auto !important;
}

@media (max-width: 600px) {
    .woocommerce form .form-row-first,
    .woocommerce form .form-row-last {
        flex: 1 1 100% !important;
    }
}

/* === ORDER REVIEW (resumen + pago + CTA) === */
.woocommerce form.checkout #order_review_heading {
    margin: 1.5rem 0 1rem 0;
    text-align: center;
    padding-top: 1.5rem;
    border-top: 1px solid rgba(90, 65, 45, 0.12);
}

.woocommerce form.checkout #order_review {
    background: #ffffff;
    padding: 1.75rem 2rem;
    border-radius: 14px;
    box-shadow: 0 4px 20px rgba(90, 65, 45, 0.10);
    border: 1px solid rgba(90, 65, 45, 0.10);
}

@media (max-width: 768px) {
    .woocommerce form.checkout #order_review {
        padding: 1.5rem 1.25rem;
    }
}

.woocommerce form.checkout #order_review table {
    background: transparent;
    box-shadow: none;
    border-radius: 0;
}

.woocommerce form.checkout #order_review th,
.woocommerce form.checkout #order_review td {
    background: transparent !important;
    color: #5a412d !important;
    border-color: rgba(90, 65, 45, 0.15);
    padding: 0.75rem 0;
}

.woocommerce form.checkout #order_review thead th {
    border-bottom: 2px solid rgba(90, 65, 45, 0.20);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.78rem;
    font-weight: 800;
}

/* === TÍTULOS DE SECCIÓN DEL FORMULARIO (centrados, coherentes con la web) === */
.woocommerce-billing-fields > h3,
.woocommerce-additional-fields > h3,
.woocommerce-shipping-fields > h3 {
    font-family: 'GapSans', 'Nunito', sans-serif !important;
    font-weight: 400 !important;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #5a412d;
    font-size: 1.5rem;
    margin: 0 0 1.5rem 0;
    padding-bottom: 0.85rem;
    border-bottom: 2px solid rgba(90, 65, 45, 0.15);
    text-align: center;
}

/* === FOOEVENTS: NOMBRE DEL EVENTO (banner por evento) === */
/* Cada producto/evento del carrito se repite con todos sus asistentes debajo */
.fooevents-eventname {
    font-family: 'GapSans', 'Nunito', sans-serif !important;
    font-weight: 400 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    font-size: 1.15rem !important;
    color: #ffffff !important;
    background: #5a412d !important;
    padding: 0.85rem 1.25rem !important;
    margin: 1.75rem 0 1rem !important;
    border-radius: 10px;
    border: none !important;
    text-align: center;
    line-height: 1.3;
    box-sizing: border-box;
    display: block;
    width: 100%;
}

/* Primer .fooevents-eventname: añade separador y label "Datos de los asistentes" justo encima */
.woocommerce-additional-fields .fooevents-eventname:first-of-type {
    margin-top: 2.5rem;
}

/* === FOOEVENTS: TARJETA DE ASISTENTE === */
.fooevents-attendee {
    background: #fafaf6;
    border: 1px solid rgba(90, 65, 45, 0.10);
    border-radius: 12px;
    padding: 1.5rem 1.75rem;
    margin: 0 0 1.25rem 0;
}

.fooevents-attendee-number {
    font-family: 'Nunito', sans-serif !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    font-size: 0.9rem !important;
    color: #8a7a66 !important;
    margin: 0 0 1rem 0 !important;
    padding-bottom: 0.65rem !important;
    border-bottom: 1px dashed rgba(90, 65, 45, 0.20) !important;
    line-height: 1.2 !important;
    text-align: left !important;
}

/* Form rows dentro del card de asistente — sin float ni inline (apilados) */
.fooevents-attendee .form-row {
    margin-bottom: 0.85rem;
    width: 100% !important;
    display: block !important;
    float: none !important;
    margin-right: 0 !important;
}

.fooevents-attendee .form-row:last-child {
    margin-bottom: 0;
}

/* Mobile: padding más compacto en attendee cards */
@media (max-width: 600px) {
    .fooevents-attendee {
        padding: 1.25rem 1rem;
    }

    .fooevents-eventname {
        font-size: 1.1rem !important;
        padding: 0.75rem 1rem !important;
    }
}

/* Inputs y selects */
.woocommerce form .form-row label {
    color: #5a412d;
    font-weight: 700;
    font-size: 0.85rem;
    margin-bottom: 0.4rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    display: block;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce-checkout select {
    width: 100% !important;
    height: 48px;
    padding: 0.75rem 1rem;
    border: 1.5px solid rgba(90, 65, 45, 0.20);
    border-radius: 10px;
    background: #ffffff;
    color: #5a412d;
    font-family: 'Nunito', sans-serif;
    font-size: 0.95rem;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    box-shadow: none;
}

.woocommerce form .form-row textarea {
    height: auto;
    min-height: 120px;
    resize: vertical;
}

.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus {
    border-color: #FF6F3C;
    outline: none;
    box-shadow: 0 0 0 3px rgba(255, 111, 60, 0.15);
}

.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select {
    border-color: #c24d4d;
}

.woocommerce form .form-row .required {
    color: #c24d4d;
    text-decoration: none;
}

/* ================================================== */
/* === PÁGINAS ESTÁTICAS (cookies, privacidad, términos) === */
/* ================================================== */

/* Excluir cart/checkout/order-received que tienen sus propios layouts */
body.page:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-order-received):not(.page-template-template-tickets) .site-content {
    padding-top: calc(130px + 2rem) !important;
    padding-right: 2rem;
    padding-bottom: 6rem;
    padding-left: 2rem;
    background: #ffffff;
}

@media (max-width: 768px) {
    body.page:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-order-received):not(.page-template-template-tickets) .site-content {
        padding-top: calc(96px + 1.5rem) !important;
        padding-right: 1rem;
        padding-bottom: 4rem;
        padding-left: 1rem;
    }
}

.tm-page-main {
    width: 100%;
}

.tm-page-content {
    max-width: 760px;
    margin: 0 auto;
    background: #ffffff;
    color: #5a412d;
}

/* En cart/checkout/order-received NO aplicar el card de page.php — esas páginas tienen
   su propio sistema de tarjetas internas. Reset completo del wrapper. */
body.woocommerce-cart .tm-page-content,
body.woocommerce-checkout .tm-page-content,
body.woocommerce-order-received .tm-page-content {
    max-width: none;
    margin: 0;
    background: transparent;
    width: 100%;
}

body.woocommerce-cart .tm-page-header,
body.woocommerce-checkout .tm-page-header,
body.woocommerce-order-received .tm-page-header {
    background: transparent;
    box-shadow: none;
    border-radius: 0;
    padding: 0;
    margin: 0 0 2rem;
    text-align: center;
}

body.woocommerce-cart .tm-page-body,
body.woocommerce-checkout .tm-page-body,
body.woocommerce-order-received .tm-page-body {
    background: transparent;
    padding: 0;
    border: none;
    box-shadow: none;
    border-radius: 0;
}

@media (max-width: 768px) {
    body.woocommerce-cart .tm-page-header,
    body.woocommerce-checkout .tm-page-header,
    body.woocommerce-order-received .tm-page-header {
        margin-bottom: 1.5rem;
    }
}

/* Header de la página */
.tm-page-header {
    text-align: center;
    margin: 0 0 2.5rem;
    padding: 2rem 1.5rem 1.75rem;
    background: #f5efe2;
    border-radius: 14px;
    box-shadow: 0 4px 20px rgba(90, 65, 45, 0.08);
}

.tm-page-title {
    font-family: 'GapSans', 'Nunito', sans-serif !important;
    font-weight: 400 !important;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #5a412d;
    font-size: 2.4rem;
    margin: 0;
    line-height: 1.2;
}

/* Cuerpo de la página: contenedor blanco con sombra */
.tm-page-body {
    background: #ffffff;
    padding: 2.5rem 2.5rem;
    border-radius: 14px;
    border: 1px solid rgba(90, 65, 45, 0.08);
    box-shadow: 0 4px 20px rgba(90, 65, 45, 0.06);
    color: #5a412d;
    font-family: 'Nunito', sans-serif;
    font-weight: 400;
    line-height: 1.7;
    font-size: 1rem;
}

/* Tipografía dentro del cuerpo */
.tm-page-body h1,
.tm-page-body h2 {
    font-family: 'GapSans', 'Nunito', sans-serif !important;
    font-weight: 400 !important;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #5a412d;
    margin: 2rem 0 1rem;
    line-height: 1.3;
}

.tm-page-body h1 { font-size: 1.8rem; }
.tm-page-body h2 { font-size: 1.5rem; }

.tm-page-body h3 {
    font-family: 'Nunito', sans-serif !important;
    font-weight: 700 !important;
    letter-spacing: -0.075em;
    font-size: 1.2rem;
    color: #5a412d;
    margin: 1.5rem 0 0.75rem;
    text-transform: none;
}

.tm-page-body h4 {
    font-family: 'Nunito', sans-serif;
    font-weight: 700;
    font-size: 1.05rem;
    color: #5a412d;
    margin: 1.25rem 0 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.tm-page-body h1:first-child,
.tm-page-body h2:first-child,
.tm-page-body h3:first-child {
    margin-top: 0;
}

.tm-page-body p {
    margin: 0 0 1rem;
    color: #5a412d;
}

.tm-page-body strong {
    font-weight: 700;
    color: #5a412d;
}

.tm-page-body em {
    font-style: italic;
}

.tm-page-body a {
    color: #FF6F3C;
    text-decoration: underline;
    text-underline-offset: 2px;
    font-weight: 700;
    transition: color 0.2s ease;
}

.tm-page-body a:hover {
    color: #e55a28;
}

/* Listas */
.tm-page-body ul,
.tm-page-body ol {
    margin: 1rem 0 1.25rem;
    padding-left: 1.5rem;
    color: #5a412d;
}

.tm-page-body ul li,
.tm-page-body ol li {
    margin-bottom: 0.5rem;
    line-height: 1.6;
}

.tm-page-body ul li::marker {
    color: #FF6F3C;
}

.tm-page-body ol li::marker {
    color: #5a412d;
    font-weight: 800;
}

/* Tablas (típicas en políticas de cookies) */
.tm-page-body table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    margin: 1.5rem 0;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(90, 65, 45, 0.06);
    font-size: 0.92rem;
}

.tm-page-body th {
    background: #d9c6a3;
    color: #5a412d;
    font-family: 'Nunito', sans-serif;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.78rem;
    padding: 0.85rem 1rem;
    text-align: left;
    border: none;
}

.tm-page-body td {
    background: #ffffff;
    padding: 0.85rem 1rem;
    border-top: 1px solid rgba(90, 65, 45, 0.10);
    color: #5a412d;
    vertical-align: top;
}

/* Citas (blockquote) */
.tm-page-body blockquote {
    background: #f5efe2;
    border-left: 4px solid #FF6F3C;
    padding: 1.25rem 1.5rem;
    margin: 1.5rem 0;
    border-radius: 0 10px 10px 0;
    font-style: italic;
    color: #5a412d;
}

.tm-page-body blockquote p:last-child {
    margin-bottom: 0;
}

/* HR como separador */
.tm-page-body hr {
    border: none;
    height: 1px;
    background: rgba(90, 65, 45, 0.15);
    margin: 2rem 0;
}

/* Code inline */
.tm-page-body code {
    background: #f5efe2;
    color: #5a412d;
    padding: 0.15rem 0.4rem;
    border-radius: 4px;
    font-family: 'Courier New', monospace;
    font-size: 0.92em;
}

/* Mobile */
@media (max-width: 768px) {
    .tm-page-header {
        padding: 1.5rem 1.25rem 1.25rem;
        margin-bottom: 1.5rem;
    }

    .tm-page-title {
        font-size: 1.7rem;
    }

    .tm-page-body {
        padding: 1.5rem 1.25rem;
        font-size: 0.95rem;
    }

    .tm-page-body h1 { font-size: 1.5rem; }
    .tm-page-body h2 { font-size: 1.3rem; }
    .tm-page-body h3 { font-size: 1.1rem; }

    .tm-page-body table {
        font-size: 0.85rem;
        display: block;
        overflow-x: auto;
        white-space: nowrap;
    }
}

/* ================================================== */
/* === PÁGINA "PEDIDO RECIBIDO" / THANK YOU === */
/* ================================================== */

/* Body de la página order-received: blanco como cart/checkout */
body.woocommerce-order-received {
    background: #ffffff;
    color: #5a412d;
}

body.woocommerce-order-received .site-content {
    padding-top: 130px !important;
    padding-right: 2rem;
    padding-bottom: 6rem;
    padding-left: 2rem;
    background: #ffffff;
}

@media (max-width: 768px) {
    body.woocommerce-order-received .site-content {
        padding-top: 96px !important;
        padding-right: 1rem;
        padding-bottom: 4rem;
        padding-left: 1rem;
    }
}

/* Contenedor principal centrado */
body.woocommerce-order-received .woocommerce-order {
    max-width: 760px;
    margin: 0 auto;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

/* Mensaje de agradecimiento (héroe) */
.woocommerce-notice.woocommerce-notice--success,
.woocommerce-thankyou-order-received {
    font-family: 'GapSans', 'Nunito', sans-serif;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    text-align: center;
    color: #5a412d;
    background: #f5efe2;
    padding: 2rem 1.5rem;
    border-radius: 14px;
    box-shadow: 0 4px 20px rgba(90, 65, 45, 0.08);
    font-size: 1.6rem;
    line-height: 1.3;
    margin: 0 0 1rem;
    border: none;
}

.woocommerce-notice.woocommerce-notice--success::before,
.woocommerce-thankyou-order-received::before {
    content: '✓';
    display: block;
    font-size: 2.5rem;
    color: #FF6F3C;
    margin-bottom: 0.5rem;
    line-height: 1;
}

/* Aviso adicional: explica que el ticket llega en unos días */
.tm-thankyou-notice {
    background: #ffffff;
    border: 1px solid rgba(90, 65, 45, 0.10);
    border-left: 4px solid #FF6F3C;
    border-radius: 12px;
    padding: 1.5rem 1.75rem;
    box-shadow: 0 2px 12px rgba(90, 65, 45, 0.06);
    color: #5a412d;
    line-height: 1.6;
    font-size: 0.95rem;
    margin: 0;
}

.tm-thankyou-notice p {
    margin: 0 0 0.75rem 0;
    color: #5a412d;
}

.tm-thankyou-notice p:last-child {
    margin-bottom: 0;
}

.tm-thankyou-notice__title {
    font-family: 'Nunito', sans-serif;
    font-size: 1.05rem;
    color: #5a412d;
    margin-bottom: 0.85rem !important;
}

.tm-thankyou-notice a {
    color: #FF6F3C;
    text-decoration: underline;
    font-weight: 700;
}

.tm-thankyou-notice a:hover {
    color: #e55a28;
}

@media (max-width: 768px) {
    .tm-thankyou-notice {
        padding: 1.25rem 1.25rem;
        font-size: 0.9rem;
    }
}

/* Resumen rápido del pedido (UL con número, fecha, email, total, método de pago) */
.woocommerce-order-overview {
    background: #ffffff;
    border: 1px solid rgba(90, 65, 45, 0.10);
    border-radius: 14px;
    padding: 1.5rem 1.75rem;
    box-shadow: 0 2px 12px rgba(90, 65, 45, 0.06);
    list-style: none;
    margin: 0 !important;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    gap: 1.25rem;
}

.woocommerce-order-overview li {
    display: flex;
    flex-direction: column;
    color: #5a412d;
    font-size: 0.95rem;
    border-left: 2px solid rgba(90, 65, 45, 0.15);
    padding-left: 0.85rem;
    list-style: none;
    line-height: 1.4;
    border-bottom: none !important;
    padding-top: 0;
    padding-bottom: 0;
    text-transform: none;
}

.woocommerce-order-overview li:first-child {
    border-left: 2px solid #FF6F3C;
}

.woocommerce-order-overview li strong {
    font-family: 'Nunito', sans-serif;
    font-weight: 800;
    font-size: 1rem;
    color: #5a412d;
    margin-top: 0.25rem;
}

/* La etiqueta antes del strong (number, date, email...) */
.woocommerce-order-overview li {
    font-family: 'Nunito', sans-serif;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    font-size: 0.72rem;
    color: #8a7a66;
}

/* Título "Detalles del pedido" / "Customer details" */
.woocommerce-order-details h2,
.woocommerce-customer-details h2,
.woocommerce-column--billing-address h2,
.woocommerce-column--shipping-address h2 {
    font-family: 'GapSans', 'Nunito', sans-serif !important;
    font-weight: 400 !important;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #5a412d;
    font-size: 1.4rem;
    margin: 0 0 1.25rem;
    padding-bottom: 0.65rem;
    border-bottom: 2px solid rgba(90, 65, 45, 0.15);
    text-align: center;
}

/* Tabla de detalles del pedido */
.woocommerce-order-details {
    background: #ffffff;
    border: 1px solid rgba(90, 65, 45, 0.10);
    border-radius: 14px;
    padding: 1.75rem 2rem;
    box-shadow: 0 2px 12px rgba(90, 65, 45, 0.06);
}

/* Ocultar la cabecera "Producto / Total" (innecesaria en thankyou) */
.woocommerce-order-details .woocommerce-table--order-details thead {
    display: none !important;
}

/* Ocultar la fila "Acciones: Pagar / Cancelar" en thankyou — no tiene sentido */
.woocommerce-order-details tr:has(.order-actions--heading),
.woocommerce-order-details tr:has(.order-actions-button) {
    display: none !important;
}

/* === Botón "Volver a entradas" === */
.tm-back-to-entradas {
    text-align: center;
    margin: 1.5rem 0 0;
}

.tm-back-to-entradas__btn {
    display: inline-block !important;
    background: #5a412d !important;
    color: #ffffff !important;
    font-family: 'Nunito', sans-serif !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    font-size: 0.9rem !important;
    padding: 0.95rem 2rem !important;
    border-radius: 10px !important;
    text-decoration: none !important;
    border: 2px solid #5a412d !important;
    transition: all 0.2s ease !important;
    box-shadow: 0 2px 8px rgba(90, 65, 45, 0.18) !important;
}

.tm-back-to-entradas__btn:hover {
    background: #3d2c1f !important;
    border-color: #3d2c1f !important;
    color: #ffffff !important;
}

.woocommerce-order-details .woocommerce-table--order-details {
    margin-top: 0;
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
    border-radius: 0 !important;
}

.woocommerce-order-details .woocommerce-table--order-details th,
.woocommerce-order-details .woocommerce-table--order-details td {
    background: transparent !important;
    border: none !important;
    border-bottom: 1px solid rgba(90, 65, 45, 0.10) !important;
    color: #5a412d !important;
    padding: 0.85rem 0 !important;
    text-transform: none;
    letter-spacing: 0;
    white-space: normal;
}

.woocommerce-order-details .woocommerce-table--order-details thead th {
    font-family: 'Nunito', sans-serif;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-size: 0.78rem;
    color: #8a7a66 !important;
    border-bottom: 2px solid rgba(90, 65, 45, 0.20) !important;
    padding-bottom: 0.65rem !important;
}

.woocommerce-order-details .woocommerce-table--order-details tbody .product-name {
    font-weight: 700;
}

.woocommerce-order-details .woocommerce-table--order-details tfoot tr.order_item {
    border: none;
}

.woocommerce-order-details .woocommerce-table--order-details tfoot th {
    font-weight: 700;
    color: #5a412d !important;
}

.woocommerce-order-details .woocommerce-table--order-details tfoot tr:last-child th,
.woocommerce-order-details .woocommerce-table--order-details tfoot tr:last-child td {
    font-size: 1.15rem;
    font-weight: 800;
    border-top: 2px solid rgba(90, 65, 45, 0.20) !important;
    padding-top: 1rem !important;
}

.woocommerce-order-details .woocommerce-table--order-details a {
    color: #FF6F3C;
    text-decoration: underline;
    font-weight: 700;
}

/* Detalles del cliente (facturación / envío) */
.woocommerce-customer-details {
    background: #ffffff;
    border: 1px solid rgba(90, 65, 45, 0.10);
    border-radius: 14px;
    padding: 1.75rem 2rem;
    box-shadow: 0 2px 12px rgba(90, 65, 45, 0.06);
}

.woocommerce-customer-details .woocommerce-columns--addresses {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 2rem;
    margin: 0;
}

.woocommerce-customer-details .woocommerce-column {
    width: 100% !important;
    float: none !important;
    padding: 0 !important;
}

.woocommerce-customer-details address {
    background: #f5efe2;
    border: none;
    border-radius: 10px;
    padding: 1.25rem;
    color: #5a412d;
    font-style: normal;
    line-height: 1.6;
    box-shadow: none;
    font-family: 'Nunito', sans-serif;
}

.woocommerce-customer-details address p {
    margin: 0.25rem 0;
}

/* Mostrar info de tickets de FooEvents si aparece */
.fooevents_ticket_links,
.fooevents_attendee_details {
    background: #f5efe2;
    border-radius: 10px;
    padding: 1.25rem 1.5rem;
    margin: 1rem 0;
    color: #5a412d;
}

/* Responsive */
@media (max-width: 768px) {
    body.woocommerce-order-received .woocommerce-order {
        gap: 1rem;
    }

    .woocommerce-notice.woocommerce-notice--success,
    .woocommerce-thankyou-order-received {
        font-size: 1.3rem;
        padding: 1.5rem 1.25rem;
    }

    .woocommerce-order-overview {
        padding: 1.25rem;
        grid-template-columns: 1fr 1fr;
        gap: 1rem;
    }

    .woocommerce-order-details,
    .woocommerce-customer-details {
        padding: 1.25rem;
    }

    .woocommerce-customer-details .woocommerce-columns--addresses {
        grid-template-columns: 1fr;
        gap: 1rem;
    }
}

@media (max-width: 480px) {
    .woocommerce-order-overview {
        grid-template-columns: 1fr;
    }
}

/* Select2 (country select) */
.woocommerce .select2-container--default .select2-selection--single {
    height: 48px !important;
    border: 1.5px solid rgba(90, 65, 45, 0.20) !important;
    border-radius: 10px !important;
    background: #ffffff !important;
}

.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered {
    line-height: 46px !important;
    padding: 0 1rem !important;
    color: #5a412d !important;
    font-family: 'Nunito', sans-serif !important;
}

.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 46px !important;
}

/* === MÉTODOS DE PAGO === */
/* El #payment vive DENTRO de #order_review, así que mantiene ese contexto y solo añade separador */
.woocommerce #payment {
    background: transparent;
    border-radius: 0;
    padding: 0;
    box-shadow: none;
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 2px solid rgba(90, 65, 45, 0.12);
}

/* Título del bloque de pago centrado */
.woocommerce #payment::before {
    content: 'Método de pago';
    display: block;
    font-family: 'GapSans', 'Nunito', sans-serif;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #5a412d;
    font-size: 1.05rem;
    text-align: center;
    margin-bottom: 1rem;
}

/* Lista de métodos de pago */
.woocommerce #payment ul.payment_methods {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 0 1.25rem !important;
    border: none !important;
    background: transparent !important;
}

/* Cada método como una tarjeta clickable.
   Layout flex: radio + label inline arriba; payment_box (descripción) ocupa la fila inferior. */
.woocommerce #payment ul.payment_methods li.wc_payment_method {
    list-style: none;
    padding: 0;
    margin: 0 0 0.6rem;
    border: 1.5px solid rgba(90, 65, 45, 0.15);
    border-radius: 10px;
    background: #ffffff;
    overflow: hidden;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    color: #5a412d;
    font-family: 'Nunito', sans-serif;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
}

.woocommerce #payment ul.payment_methods li.wc_payment_method:hover {
    border-color: rgba(90, 65, 45, 0.35);
}

/* Estado seleccionado: borde naranja */
.woocommerce #payment ul.payment_methods li.wc_payment_method:has(input[type="radio"]:checked) {
    border-color: #FF6F3C;
    box-shadow: 0 0 0 3px rgba(255, 111, 60, 0.10);
}

/* Radio button: visible junto al label */
.woocommerce #payment ul.payment_methods li.wc_payment_method input[type="radio"] {
    display: inline-block !important;
    flex: 0 0 auto;
    margin: 0 0 0 1.25rem !important;
    appearance: auto !important;
    -webkit-appearance: auto !important;
    accent-color: #FF6F3C;
    width: 18px;
    height: 18px;
    cursor: pointer;
    order: 1;
}

/* Si SOLO hay un método de pago disponible, el radio es redundante (no hay elección):
   ocultarlo para layout más limpio. */
.woocommerce #payment ul.payment_methods li.wc_payment_method:only-child input[type="radio"] {
    display: none !important;
}

/* Label inline con el radio */
.woocommerce #payment ul.payment_methods li.wc_payment_method > label {
    display: flex !important;
    align-items: center;
    gap: 0.6rem;
    flex: 1 1 auto;
    padding: 1rem 1.25rem;
    font-weight: 700;
    color: #5a412d;
    cursor: pointer;
    margin: 0;
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-size: 0.95rem !important;
    order: 2;
}

/* Ocultar imagen dentro del label (suele ser el logo del sitio reusado por el plugin) */
.woocommerce #payment ul.payment_methods li.wc_payment_method > label img {
    display: none !important;
}

/* Caja de detalles del método: ocupa la fila completa debajo del label */
.woocommerce #payment div.payment_box {
    flex: 1 1 100%;
    width: 100%;
    background: #f5efe2;
    border-radius: 0 !important;
    color: #5a412d;
    padding: 0.85rem 1.25rem;
    margin: 0 !important;
    border: none;
    border-top: 1px solid rgba(90, 65, 45, 0.10) !important;
    font-size: 0.88rem;
    line-height: 1.5;
    order: 3;
}

.woocommerce #payment div.payment_box::before {
    display: none !important; /* ocultar el "tooltip arrow" del default WC */
}

.woocommerce #payment div.payment_box p {
    margin: 0;
    color: #5a412d;
}

/* Trust signal — texto seguridad */
.tm-checkout-trust {
    margin-top: 1rem;
    padding: 0.85rem 1rem;
    background: rgba(255, 255, 255, 0.7);
    border-radius: 8px;
    color: #5a412d;
    font-size: 0.85rem;
    text-align: center;
    line-height: 1.5;
}

.tm-checkout-trust strong {
    font-weight: 800;
}

/* === CHECKBOXES (terms, etc) === */
.woocommerce-form__label-for-checkbox {
    display: flex !important;
    gap: 0.6rem;
    align-items: flex-start;
    color: #5a412d;
    font-size: 0.9rem;
    line-height: 1.5;
    cursor: pointer;
}

.woocommerce-form__input-checkbox {
    margin-top: 0.2rem;
    width: 18px;
    height: 18px;
    accent-color: #FF6F3C;
    cursor: pointer;
}

.woocommerce-terms-and-conditions-wrapper {
    background: transparent;
    padding: 0.5rem 0;
    margin: 1rem 0 0.5rem;
    font-size: 0.82rem;
    line-height: 1.55;
    color: #8a7a66;
}

.woocommerce-terms-and-conditions-wrapper p {
    margin: 0;
    color: #8a7a66;
}

.woocommerce-terms-and-conditions-wrapper a {
    color: #5a412d;
    text-decoration: underline;
    font-weight: 700;
}

/* Wrapper place-order para que el botón se centre y el trust signal abajo */
.woocommerce form.checkout #payment .form-row.place-order {
    padding: 0;
    margin: 0;
    text-align: center;
}

/* === BOTÓN PLACE ORDER (centrado, ancho razonable) === */
.woocommerce #place_order {
    display: block;
    width: 100%;
    max-width: 380px;
    margin: 1rem auto 0 !important;
    font-size: 1.05rem !important;
    padding: 1.2rem 2rem !important;
    border-radius: 10px !important;
    text-align: center;
}

/* === FORMULARIO DE CUPÓN === */
.woocommerce-form-coupon-toggle {
    margin-bottom: 1.5rem;
}

.woocommerce-form-coupon-toggle .woocommerce-info {
    text-align: center;
    font-size: 0.9rem;
}

/* Notice banner moderno (WC 8+) — coherente con los colores marca */
.wc-block-components-notice-banner.is-info,
.woocommerce-form-coupon-toggle .wc-block-components-notice-banner {
    background: #f5efe2 !important;
    border: 1px solid rgba(90, 65, 45, 0.12) !important;
    color: #5a412d !important;
    border-radius: 10px !important;
    padding: 1rem 1.25rem !important;
    font-size: 0.9rem;
    line-height: 1.5;
}

.wc-block-components-notice-banner svg {
    fill: #5a412d !important;
    color: #5a412d !important;
    flex-shrink: 0;
}

.wc-block-components-notice-banner__content {
    color: #5a412d !important;
}

.wc-block-components-notice-banner a.showcoupon {
    color: #FF6F3C !important;
    text-decoration: underline;
    font-weight: 700;
}

.woocommerce-form-coupon {
    background: #ffffff;
    padding: 1.25rem;
    border-radius: 12px;
    box-shadow: 0 2px 12px rgba(90, 65, 45, 0.06);
    margin-bottom: 1.5rem;
}

.woocommerce-form-coupon p:first-child {
    margin-top: 0;
    color: #5a412d;
    font-size: 0.9rem;
}

/* === RESUMEN ORDER REVIEW (tabla mejorada) === */
.woocommerce-checkout-review-order-table {
    margin-bottom: 1.25rem !important;
    background: transparent !important;
    box-shadow: none !important;
    border: none !important;
    border-radius: 0 !important;
    width: 100%;
}

/* Ocultar la cabecera "Producto / Subtotal" — innecesaria visualmente */
.woocommerce-checkout-review-order-table thead {
    display: none !important;
}

/* Filas de productos */
.woocommerce-checkout-review-order-table tbody td {
    background: transparent !important;
    border: none !important;
    border-bottom: 1px solid rgba(90, 65, 45, 0.08) !important;
    padding: 0.85rem 0 !important;
    color: #5a412d !important;
    vertical-align: top;
    line-height: 1.4;
}

.woocommerce-checkout-review-order-table tbody td.product-name {
    font-weight: 700;
    color: #5a412d;
    text-align: left;
}

.woocommerce-checkout-review-order-table tbody td.product-total {
    text-align: right !important;
    white-space: nowrap;
}

/* Footer de la tabla (Total) */
.woocommerce-checkout-review-order-table tfoot th,
.woocommerce-checkout-review-order-table tfoot td {
    background: transparent !important;
    border: none !important;
    padding: 0.85rem 0 !important;
    color: #5a412d !important;
}

.woocommerce-checkout-review-order-table tfoot tr.order-total th,
.woocommerce-checkout-review-order-table tfoot tr.order-total td {
    font-size: 1.15rem;
    font-weight: 800 !important;
    padding-top: 1.25rem !important;
    border-top: 2px solid rgba(90, 65, 45, 0.20) !important;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.woocommerce-checkout-review-order-table tfoot tr.order-total th {
    text-align: left;
}

.woocommerce-checkout-review-order-table tfoot tr.order-total td {
    text-align: right;
}

.woocommerce-checkout-review-order-table .product-quantity {
    display: inline-block;
    margin-left: 0.35rem;
    font-weight: 400;
    color: #8a7a66;
    font-size: 0.85rem;
}

.woocommerce-checkout-review-order-table tfoot tr.order-total th,
.woocommerce-checkout-review-order-table tfoot tr.order-total td {
    border-top: 2px solid rgba(90, 65, 45, 0.20) !important;
    font-size: 1.15rem;
    font-weight: 800 !important;
    padding-top: 0.85rem !important;
}

/* === LOGIN CHECKBOX (login link, returning customer) === */
.woocommerce-form-login-toggle {
    display: none; /* Ocultamos la opción de login en checkout — guest checkout puro */
}

/* === FORM LOGIN BOX (si aparece) === */
.woocommerce form.login,
.woocommerce form.checkout_coupon {
    background: #ffffff !important;
    border: 1px solid rgba(90, 65, 45, 0.15) !important;
    padding: 1.25rem !important;
    border-radius: 12px !important;
}

/* === RESPONSIVE === */
@media (max-width: 768px) {
    body.woocommerce-cart .site-content,
    body.woocommerce-checkout .site-content {
        padding-top: calc(96px + 2rem) !important;
        padding-right: 1rem;
        padding-bottom: 4rem;
        padding-left: 1rem;
    }

    body.woocommerce-cart .entry-title,
    body.woocommerce-checkout .entry-title,
    body.woocommerce-cart .page-title,
    body.woocommerce-checkout .page-title {
        font-size: 2rem;
        margin: 1.5rem 0 1.5rem !important;
        padding-top: 1rem;
    }

    /* Espacio entre el header y el primer bloque del carrito en mobile */
    body.woocommerce-cart .woocommerce,
    body.woocommerce-cart .woocommerce-cart-form,
    body.woocommerce-checkout .woocommerce {
        margin-top: 1.5rem;
    }

    /* === CART_TOTALS en mobile === */
    .woocommerce-cart .cart-collaterals .cart_totals {
        padding: 1.25rem 1.25rem;
    }

    .woocommerce-cart .cart_totals .shop_table tr {
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .woocommerce-cart .cart_totals .shop_table th,
    .woocommerce-cart .cart_totals .shop_table td {
        font-size: 0.95rem;
    }

    .woocommerce-cart .cart-collaterals {
        margin-bottom: 3rem;
    }

    /* ======================================== */
    /* === CART MOBILE: tabla → bloques + cards limpias === */
    /* ======================================== */

    /* Reset COMPLETO de la tabla y sus capas */
    .woocommerce-cart table.shop_table.woocommerce-cart-form__contents {
        display: block !important;
        width: 100% !important;
        border: none !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        overflow: visible !important;
        border-collapse: separate !important;
    }

    .woocommerce-cart table.shop_table.woocommerce-cart-form__contents thead {
        display: none !important;
    }

    .woocommerce-cart table.shop_table.woocommerce-cart-form__contents tbody {
        display: block !important;
        width: 100% !important;
    }

    /* Wrapper del carrito en mobile: padding lateral para que las cards no toquen los bordes */
    .woocommerce-cart .woocommerce-cart-form,
    .woocommerce-cart .cart-collaterals {
        padding-left: 0.75rem;
        padding-right: 0.75rem;
    }

    /* === Tarjeta del producto en mobile === */
    /* Layout: imagen (col 1, span 2 rows) + nombre (col 2-3 row 1) + cantidad (col 2 row 2) + subtotal (col 3 row 2) */
    .woocommerce-cart table.shop_table.woocommerce-cart-form__contents tbody tr.woocommerce-cart-form__cart-item,
    .woocommerce-cart table.shop_table.woocommerce-cart-form__contents tbody tr.cart_item {
        display: grid !important;
        grid-template-columns: 70px minmax(0, 1fr) auto;
        grid-template-rows: auto auto;
        column-gap: 0.85rem;
        row-gap: 0.6rem;
        align-items: center;
        background: #ffffff !important;
        border: 1px solid rgba(90, 65, 45, 0.08) !important;
        border-radius: 14px !important;
        box-shadow: 0 2px 12px rgba(90, 65, 45, 0.06);
        padding: 0.9rem 1rem !important;
        margin: 0 0.5rem 0.85rem !important;
        box-sizing: border-box;
        position: relative;
        overflow: hidden;
    }

    .woocommerce-cart table.shop_table.woocommerce-cart-form__contents tbody tr td {
        display: block !important;
        padding: 0 !important;
        margin: 0 !important;
        border: none !important;
        background: transparent !important;
        text-align: left !important;
        width: auto !important;
        max-width: 100% !important;
        white-space: normal !important;
        min-width: 0;
        box-sizing: border-box;
    }

    .woocommerce-cart table.shop_table.woocommerce-cart-form__contents tbody tr td::before {
        content: none !important;
        display: none !important;
    }

    /* Botón × esquina superior derecha (absolute, fuera del grid flow) */
    .woocommerce-cart table.shop_table.woocommerce-cart-form__contents tbody tr td.product-remove {
        position: absolute;
        top: 0.5rem;
        right: 0.5rem;
        z-index: 2;
    }

    .woocommerce-cart table.shop_table.woocommerce-cart-form__contents tbody tr td.product-remove a.remove {
        width: 24px !important;
        height: 24px !important;
        line-height: 24px !important;
        font-size: 0.95rem !important;
        background: rgba(90, 65, 45, 0.08);
    }

    /* Imagen: col 1, ambas filas */
    .woocommerce-cart table.shop_table.woocommerce-cart-form__contents tbody tr td.product-thumbnail {
        grid-column: 1;
        grid-row: 1 / span 2;
        align-self: center;
    }

    .woocommerce-cart table.shop_table.woocommerce-cart-form__contents tbody tr td.product-thumbnail img {
        width: 70px !important;
        height: 70px !important;
        max-width: 70px !important;
        border-radius: 50%;
        border: 2px solid #5a412d;
        object-fit: cover;
        display: block;
    }

    /* Nombre: col 2 + 3 (span all), fila 1 — texto puede wrap, hueco para × */
    .woocommerce-cart table.shop_table.woocommerce-cart-form__contents tbody tr td.product-name {
        grid-column: 2 / -1;
        grid-row: 1;
        font-weight: 700 !important;
        font-size: 1rem !important;
        line-height: 1.3 !important;
        color: #5a412d;
        padding-right: 2rem !important;
        word-break: break-word;
    }

    .woocommerce-cart table.shop_table.woocommerce-cart-form__contents tbody tr td.product-name a {
        color: #5a412d;
        text-decoration: none;
    }

    /* Precio unitario: oculto */
    .woocommerce-cart table.shop_table.woocommerce-cart-form__contents tbody tr td.product-price {
        display: none !important;
    }

    /* Cantidad: col 2, fila 2 */
    .woocommerce-cart table.shop_table.woocommerce-cart-form__contents tbody tr td.product-quantity {
        grid-column: 2;
        grid-row: 2;
        align-self: center;
    }

    .woocommerce-cart table.shop_table.woocommerce-cart-form__contents tbody tr td.product-quantity .quantity {
        display: inline-flex;
        align-items: center;
        margin: 0 !important;
    }

    .woocommerce-cart table.shop_table.woocommerce-cart-form__contents tbody tr td.product-quantity input.qty {
        width: 56px !important;
        height: 36px !important;
        margin: 0 !important;
    }

    /* Subtotal: col 3, fila 2 — alineado a la derecha, dentro del card */
    .woocommerce-cart table.shop_table.woocommerce-cart-form__contents tbody tr td.product-subtotal {
        grid-column: 3;
        grid-row: 2;
        align-self: center;
        text-align: right !important;
        font-weight: 800;
        font-size: 1.05rem;
        color: #5a412d;
        white-space: nowrap !important;
        max-width: none !important;
    }
}

/* Regla GLOBAL: cualquier precio en cualquier parte del sitio NUNCA debe saltar línea
   (cifra + símbolo € deben ir juntos siempre). Fuera de la media query mobile para
   aplicarse en desktop también. */
.woocommerce-Price-amount,
.woocommerce-Price-amount bdi,
.woocommerce-Price-amount .woocommerce-Price-currencySymbol {
    white-space: nowrap !important;
    display: inline !important;
}

.woocommerce-Price-amount .woocommerce-Price-currencySymbol {
    margin-left: 0.1em;
}

/* Hack para reabrir la media query si CSS lo necesita más abajo. La regla anterior se cerró
   manualmente con } intencionadamente para extraer la regla global. */
@media (max-width: 768px) {
    /* Continuación: mantener consistencia */
    .woocommerce-Price-amount {
        white-space: nowrap !important;
    }

    /* Remove (×): esquina superior derecha como botón compacto */
    .woocommerce-cart table.shop_table.woocommerce-cart-form__contents tbody tr td.product-remove {
        position: absolute;
        top: 0.5rem;
        right: 0.5rem;
        grid-column: unset;
        grid-row: unset;
    }

    .woocommerce-cart table.shop_table.woocommerce-cart-form__contents tbody tr td.product-remove a.remove {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        width: 24px !important;
        height: 24px !important;
        line-height: 24px !important;
        padding: 0 !important;
        background: rgba(90, 65, 45, 0.08) !important;
        color: #5a412d !important;
        font-size: 1rem !important;
        text-decoration: none;
        border-radius: 50% !important;
    }

    .woocommerce-cart table.shop_table.woocommerce-cart-form__contents tbody tr td.product-remove a.remove:hover {
        background: #c24d4d !important;
        color: #ffffff !important;
    }

    /* === Fila de acciones (cupón + actualizar) === */
    .woocommerce-cart table.shop_table.woocommerce-cart-form__contents tbody tr.actions {
        display: block !important;
        background: #ffffff !important;
        border-radius: 14px !important;
        padding: 1rem !important;
        margin: 0 0 1rem 0 !important;
        box-shadow: 0 2px 12px rgba(90, 65, 45, 0.06);
        flex-direction: unset !important;
    }

    .woocommerce-cart table.shop_table.woocommerce-cart-form__contents tbody tr.actions td {
        display: block !important;
        text-align: center !important;
    }

    /* Cupón en mobile: input + botón en HORIZONTAL, ancho razonable centrado */
    .woocommerce .coupon {
        display: flex !important;
        flex-direction: row !important;
        gap: 0.5rem;
        align-items: stretch;
        max-width: 420px;
        margin: 0 auto 0.85rem !important;
        width: 100%;
    }

    .woocommerce .coupon label {
        display: none; /* ocultar label visual del cupón en mobile */
    }

    .woocommerce .coupon input.input-text {
        flex: 1 1 auto;
        min-width: 0 !important;
        width: auto !important;
        max-width: none !important;
    }

    .woocommerce .coupon .button {
        flex: 0 0 auto;
        min-width: 0 !important;
        width: auto !important;
        padding: 0.85rem 1.25rem !important;
        white-space: nowrap;
    }

    /* Botón Actualizar carrito: centrado con tope de ancho */
    .woocommerce table.woocommerce-cart-form__contents button[name="update_cart"] {
        display: block;
        width: auto !important;
        max-width: 280px;
        min-width: 200px;
        padding: 0.85rem 1.5rem !important;
        margin: 0 auto;
    }

    /* === CHECKOUT en mobile === */
    .woocommerce form.checkout #customer_details {
        gap: 1rem;
    }

    .woocommerce-billing-fields,
    .woocommerce-shipping-fields,
    .woocommerce-additional-fields {
        padding: 1.25rem 1.25rem;
    }

    .woocommerce form.checkout #order_review {
        padding: 1.25rem 1.25rem;
    }
}

/* Esconder pie de carrito vacío */
.woocommerce .return-to-shop {
    text-align: center;
    margin: 2rem 0;
}

.woocommerce-cart .empty.cart {
    text-align: center;
    padding: 3rem 1rem;
    background: #ffffff;
    border-radius: 14px;
    color: #5a412d;
    font-size: 1.1rem;
}

/* ======================================== */
/* === BLOQUE PRE-FOOTER: MANIFIESTO + CONTACTO (global, footer.php) === */
/* ======================================== */

.manifesto-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0;
    margin: 0;
    width: 100vw;
    position: relative;
    left: 50%;
    right: 50%;
    margin-left: -50vw;
    margin-right: -50vw;
    padding: 0;
    box-sizing: border-box;
}

.manifesto-column {
    padding: 3rem 4rem;
    border-radius: 0;
}

.manifesto-column-left {
    background-color: #54344B;
    color: #ffffff;
}

.manifesto-column-right {
    background-color: #7A96A4;
    color: #ffffff;
}

.manifesto-year {
    font-size: 3.5rem;
    font-weight: 700;
    margin: 0 0 1.5rem 0;
    color: #ffffff;
    line-height: 1;
}

.manifesto-content p {
    font-size: 1.05rem;
    line-height: 1.7;
    margin: 0 0 1.2rem 0;
    color: #ffffff;
}

.manifesto-content p:last-child {
    margin-bottom: 0;
}

.contact-title {
    font-size: 3.5rem;
    font-weight: 700;
    margin: 0 0 2rem 0;
    color: #ffffff;
}

.contact-content {
    font-size: 2rem;
}

.contact-intro {
    margin: 0 0 1rem 0;
    color: #ffffff;
    font-weight: 400;
}

.contact-email {
    font-size: 1.5rem;
    font-weight: 700;
    color: #ffffff;
    text-decoration: underline;
    word-break: break-all;
    transition: opacity 0.2s ease;
}

.contact-email:hover {
    opacity: 0.8;
    color: #ffffff;
}

@media (max-width: 991px) {
    .manifesto-grid {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .manifesto-column {
        padding: 2.5rem 2rem;
    }

    .manifesto-year {
        font-size: 3rem;
    }

    .contact-title {
        font-size: 2.2rem;
    }

    .manifesto-content p {
        font-size: 1rem;
    }

    .contact-email {
        font-size: 1.4rem;
    }
}

@media (max-width: 768px) {
    .manifesto-column {
        padding: 2rem 1.5rem;
    }

    .manifesto-year {
        font-size: 2.5rem;
        margin-bottom: 1.25rem;
    }

    .contact-title {
        font-size: 2rem;
        margin-bottom: 1.5rem;
    }

    .manifesto-content p {
        font-size: 0.95rem;
        line-height: 1.6;
        margin-bottom: 1rem;
    }

    .contact-email {
        font-size: 1.2rem;
    }
}

@media (max-width: 576px) {
    .manifesto-column {
        padding: 1.5rem 1rem;
    }

    .manifesto-year {
        font-size: 2rem;
        margin-bottom: 1rem;
    }

    .contact-title {
        font-size: 1.6rem;
        margin-bottom: 1.25rem;
    }

    .manifesto-content p {
        font-size: 0.9rem;
        line-height: 1.5;
        margin-bottom: 0.9rem;
    }

    .contact-intro {
        font-size: 0.95rem;
    }

    .contact-email {
        font-size: 1.1rem;
        word-break: break-word;
    }
}

/* ================================================== */
/* === COOKIE BANNER (no intrusivo, GDPR friendly) === */
/* ================================================== */

/* Banner inferior — slide up suave al cargar */
.tm-cookie-banner {
    position: fixed;
    bottom: 1rem;
    left: 1rem;
    right: 1rem;
    max-width: 960px;
    margin: 0 auto;
    background: #ffffff;
    border: 1px solid rgba(90, 65, 45, 0.12);
    border-radius: 14px;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.18);
    z-index: 10000;
    color: #5a412d;
    animation: tmCookieSlideUp 0.45s cubic-bezier(0.4, 0, 0.2, 1) both;
}

.tm-cookie-banner[hidden] {
    display: none;
}

@keyframes tmCookieSlideUp {
    from {
        opacity: 0;
        transform: translateY(40px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.tm-cookie-banner__inner {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 1.5rem;
    padding: 1.25rem 1.75rem;
}

@media (max-width: 768px) {
    .tm-cookie-banner__inner {
        grid-template-columns: 1fr;
        padding: 1rem 1.25rem;
        gap: 1rem;
    }
}

.tm-cookie-banner__text {
    color: #5a412d;
}

.tm-cookie-banner__title {
    font-family: 'Nunito', sans-serif !important;
    font-weight: 800 !important;
    font-size: 1rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    margin: 0 0 0.4rem 0 !important;
    color: #5a412d !important;
}

.tm-cookie-banner__text p {
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.5;
    color: #5a412d;
}

.tm-cookie-banner__text a {
    color: #FF6F3C;
    text-decoration: underline;
    font-weight: 700;
}

.tm-cookie-banner__text a:hover {
    color: #e55a28;
}

/* === Botones del banner y modal === */
.tm-cookie-banner__actions {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    align-items: center;
}

@media (max-width: 768px) {
    .tm-cookie-banner__actions {
        justify-content: stretch;
    }

    .tm-cookie-banner__actions .tm-cookie-btn {
        flex: 1 1 auto;
    }
}

.tm-cookie-btn {
    font-family: 'Nunito', sans-serif;
    font-weight: 700;
    font-size: 0.82rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 0.7rem 1.2rem;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s ease;
    border: 2px solid transparent;
    white-space: nowrap;
    line-height: 1;
}

.tm-cookie-btn--accept {
    background: #FF6F3C;
    color: #ffffff;
    border-color: #FF6F3C;
}

.tm-cookie-btn--accept:hover {
    background: #e55a28;
    border-color: #e55a28;
}

.tm-cookie-btn--ghost {
    background: transparent;
    color: #5a412d;
    border-color: rgba(90, 65, 45, 0.25);
}

.tm-cookie-btn--ghost:hover {
    background: rgba(90, 65, 45, 0.08);
    border-color: #5a412d;
}

/* === Modal de preferencias granulares === */
.tm-cookie-modal {
    position: fixed;
    inset: 0;
    z-index: 10001;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.tm-cookie-modal[hidden] {
    display: none;
}

.tm-cookie-modal__backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
}

.tm-cookie-modal__panel {
    position: relative;
    background: #ffffff;
    border-radius: 16px;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.25);
    width: 100%;
    max-width: 560px;
    max-height: calc(100vh - 2rem);
    display: flex;
    flex-direction: column;
    color: #5a412d;
    animation: tmCookieModalIn 0.3s ease both;
}

@keyframes tmCookieModalIn {
    from {
        opacity: 0;
        transform: scale(0.96) translateY(10px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

.tm-cookie-modal__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.25rem 1.75rem;
    border-bottom: 1px solid rgba(90, 65, 45, 0.10);
    background: #f5efe2;
    border-radius: 16px 16px 0 0;
}

.tm-cookie-modal__title {
    font-family: 'GapSans', 'Nunito', sans-serif !important;
    font-weight: 400 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    font-size: 1.2rem !important;
    color: #5a412d !important;
    margin: 0 !important;
    line-height: 1.2;
}

.tm-cookie-modal__close {
    background: none;
    border: none;
    font-size: 1.6rem;
    cursor: pointer;
    color: #5a412d;
    width: 32px;
    height: 32px;
    line-height: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: background 0.2s ease;
    padding: 0;
}

.tm-cookie-modal__close:hover {
    background: rgba(90, 65, 45, 0.08);
}

.tm-cookie-modal__body {
    padding: 1.5rem 1.75rem;
    overflow-y: auto;
    flex: 1 1 auto;
}

.tm-cookie-modal__intro {
    margin: 0 0 1.25rem;
    font-size: 0.9rem;
    line-height: 1.6;
    color: #5a412d;
}

/* Categoría */
.tm-cookie-category {
    background: #fafaf6;
    border: 1px solid rgba(90, 65, 45, 0.08);
    border-radius: 10px;
    padding: 1rem 1.25rem;
    margin-bottom: 0.75rem;
}

.tm-cookie-category__row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
}

.tm-cookie-category h3 {
    font-family: 'Nunito', sans-serif !important;
    font-weight: 800 !important;
    font-size: 0.95rem !important;
    color: #5a412d !important;
    margin: 0 0 0.25rem !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}

.tm-cookie-category p {
    margin: 0;
    font-size: 0.82rem;
    line-height: 1.5;
    color: #8a7a66;
}

/* Toggle (switch) */
.tm-cookie-toggle {
    flex-shrink: 0;
    position: relative;
    width: 44px;
    height: 24px;
    cursor: pointer;
    margin-top: 0.15rem;
}

.tm-cookie-toggle input {
    opacity: 0;
    width: 0;
    height: 0;
    position: absolute;
}

.tm-cookie-toggle__slider {
    position: absolute;
    inset: 0;
    background: rgba(90, 65, 45, 0.25);
    border-radius: 999px;
    transition: background 0.2s ease;
}

.tm-cookie-toggle__slider::before {
    content: '';
    position: absolute;
    top: 3px;
    left: 3px;
    width: 18px;
    height: 18px;
    background: #ffffff;
    border-radius: 50%;
    transition: transform 0.2s ease;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}

.tm-cookie-toggle input:checked + .tm-cookie-toggle__slider {
    background: #FF6F3C;
}

.tm-cookie-toggle input:checked + .tm-cookie-toggle__slider::before {
    transform: translateX(20px);
}

.tm-cookie-toggle--locked {
    cursor: not-allowed;
}

.tm-cookie-toggle--locked .tm-cookie-toggle__slider {
    background: #8A8D56;
}

.tm-cookie-toggle--locked .tm-cookie-toggle__slider::before {
    transform: translateX(20px);
}

/* Footer del modal */
.tm-cookie-modal__footer {
    display: flex;
    gap: 0.75rem;
    justify-content: flex-end;
    padding: 1rem 1.75rem 1.25rem;
    border-top: 1px solid rgba(90, 65, 45, 0.10);
}

@media (max-width: 540px) {
    .tm-cookie-modal__footer {
        flex-direction: column-reverse;
    }

    .tm-cookie-modal__footer .tm-cookie-btn {
        width: 100%;
    }
}

/* Trigger persistente para reabrir banner (footer link) */
.tm-cookie-reopen {
    background: none;
    border: none;
    color: inherit;
    cursor: pointer;
    padding: 0;
    text-decoration: underline;
    font: inherit;
}

/* ======================================================= */
/* === FIX RESPONSIVE CARRITO — 2026-05-25             === */
/* Bugs corregidos:                                        */
/* 1. tr.actions no coincidía (clase en <td>, no en <tr>) */
/* 2. td.actions sin estilo de card ni márgenes correctos  */
/* 3. qty input por debajo de 44px tap target              */
/* 4. cart_totals y botón checkout sin alineación          */
/* ======================================================= */

@media (max-width: 768px) {

    /* ---------------------------------------------------
       1. La fila de acciones (cupón + actualizar):
          el <tr> padre no tiene clase, el selector
          original "tr.actions" nunca coincidía.
          Usamos :has() para seleccionar el <tr> correcto.
       --------------------------------------------------- */
    .woocommerce-cart table.shop_table.woocommerce-cart-form__contents tbody tr:has(td.actions) {
        display: block !important;
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
        padding: 0 !important;
        margin: 0 !important;
    }

    /* td.actions como card — mismos márgenes horizontales
       (0.5rem) que las tarjetas de producto, para que
       todos los bloques queden alineados visualmente.      */
    .woocommerce-cart table.shop_table.woocommerce-cart-form__contents tbody td.actions {
        display: block !important;
        background: #ffffff !important;
        border: 1px solid rgba(90, 65, 45, 0.08) !important;
        border-radius: 14px !important;
        box-shadow: 0 2px 12px rgba(90, 65, 45, 0.06) !important;
        padding: 1rem !important;
        margin: 0 0.5rem 0.85rem !important;
        box-sizing: border-box !important;
        white-space: normal !important;
        text-align: left !important;
    }

    /* ---------------------------------------------------
       2. Cupón: fila horizontal flex dentro del card.
          Input flexible + botón fijo, ambos 44px alto.
       --------------------------------------------------- */
    .woocommerce-cart .woocommerce-cart-form td.actions .coupon {
        display: flex !important;
        flex-direction: row !important;
        align-items: stretch;
        gap: 0.5rem;
        width: 100%;
        max-width: 100%;
        margin: 0 0 0.75rem !important;
    }

    .woocommerce-cart .woocommerce-cart-form td.actions .coupon input.input-text {
        flex: 1 1 auto;
        min-width: 0 !important;
        width: auto !important;
        height: 44px !important;
    }

    .woocommerce-cart .woocommerce-cart-form td.actions .coupon .button {
        flex: 0 0 auto;
        height: 44px !important;
        padding: 0 1.25rem !important;
        line-height: 44px;
        white-space: nowrap;
    }

    /* ---------------------------------------------------
       3. Botón Actualizar carrito: ancho completo, 44px.
       --------------------------------------------------- */
    .woocommerce-cart .woocommerce-cart-form td.actions button[name="update_cart"] {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        height: 44px !important;
        margin: 0 !important;
        box-sizing: border-box !important;
    }

    /* ---------------------------------------------------
       4. Quantity input: tap target mínimo 44px.
          El valor anterior era 36px (insuficiente).
       --------------------------------------------------- */
    .woocommerce-cart table.shop_table.woocommerce-cart-form__contents tbody tr td.product-quantity input.qty {
        height: 44px !important;
    }

    /* ---------------------------------------------------
       5. Cart totals: alinear borde izquierdo del card
          con el de las tarjetas de producto (+ 0.5rem).
       --------------------------------------------------- */
    .woocommerce-cart .cart-collaterals .cart_totals {
        margin: 0 0.5rem !important;
        width: auto !important;
        box-sizing: border-box !important;
    }

    /* ---------------------------------------------------
       6. Botón "Finalizar compra": ancho completo
          en mobile para máxima facilidad de toque.
       --------------------------------------------------- */
    .woocommerce-cart .cart_totals .wc-proceed-to-checkout .button,
    .woocommerce-cart .cart_totals .wc-proceed-to-checkout .checkout-button {
        width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }
}

/* ---------------------------------------------------
   576px: pantallas muy pequeñas (iPhone SE, etc.)
   Sin márgenes horizontales para maximizar espacio.
   --------------------------------------------------- */
@media (max-width: 576px) {

    .woocommerce-cart .woocommerce-cart-form,
    .woocommerce-cart .cart-collaterals {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .woocommerce-cart table.shop_table.woocommerce-cart-form__contents tbody tr.woocommerce-cart-form__cart-item,
    .woocommerce-cart table.shop_table.woocommerce-cart-form__contents tbody tr.cart_item {
        margin-left: 0 !important;
        margin-right: 0 !important;
        border-radius: 10px !important;
    }

    .woocommerce-cart table.shop_table.woocommerce-cart-form__contents tbody td.actions {
        margin-left: 0 !important;
        margin-right: 0 !important;
        border-radius: 10px !important;
    }

    .woocommerce-cart .cart-collaterals .cart_totals {
        margin-left: 0 !important;
        margin-right: 0 !important;
        border-radius: 10px !important;
    }
}

/* ======================================================= */
/* === FIX CARRITO ROUND 2 — 2026-05-25               === */
/* 1. Subtotal visible de nuevo:                           */
/*    display:table-row (0,3,1) ganaba a display:none      */
/*    (0,3,0). Fix: elevar a (0,4,1) con tr.cart-subtotal  */
/* 2. Cupón no en línea (mobile):                          */
/*    WC smallscreen fuerza display:block;width:100% en    */
/*    .button. flex:0 0 auto no lo anula porque width:100% */
/*    se convierte en el flex-basis. Fix: width:auto y     */
/*    display:inline-flex !important en el botón.          */
/* ======================================================= */

/* --- Fix 1: Ocultar Subtotal con especificidad (0,4,1) --- */
.woocommerce-cart .cart_totals .shop_table tr.cart-subtotal {
    display: none !important;
}

/* --- Fix 2: Cupón en línea — mobile --- */
@media (max-width: 768px) {

    /* El contenedor ya tiene display:flex; necesitamos que
       el botón NO sea display:block ni width:100%.
       WC smallscreen usa (0,4,2) — usamos (0,5,2) con
       la cadena completa + nombre de campo para ganar. */
    .woocommerce-cart .woocommerce-cart-form td.actions .coupon button.button[name="apply_coupon"],
    .woocommerce-cart .woocommerce-cart-form td.actions .coupon input.button[name="apply_coupon"] {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        width: auto !important;
        min-width: max-content;
        flex: 0 0 auto !important;
        float: none !important;
    }

    /* Input: refuerzo en caso de que la regla previa no aplique */
    .woocommerce-cart .woocommerce-cart-form td.actions .coupon input[name="coupon_code"].input-text {
        display: block !important;
        width: auto !important;
        min-width: 0 !important;
        flex: 1 1 auto !important;
    }
}

/* --- Fix 3: Eliminar prefijo "Total:" del td en cart_totals ---
   WC smallscreen añade td::before { content: attr(data-title) ": " }
   en tablas con clase shop_table_responsive. Nuestro layout usa
   display:table-cell (no block), por lo que el label es redundante. */
.woocommerce-cart .cart_totals table td::before,
.woocommerce-cart .cart_totals table th::before {
    display: none !important;
    content: "" !important;
}

/* === Trama global de impresión (grano + halftone) ========================
 * Inyectada vía wp_body_open en TODAS las páginas. Fija al viewport, POR ENCIMA
 * de todo (`pointer-events:none` deja pasar los clics, `isolation:isolate`
 * confina el blend). Es SOLO la trama uniforme (grano feTurbulence + halftone):
 * lo que unifica los fragmentos de foto que cada sección pinta por separado
 * (.tm-riso) como si todo fuese una misma plancha impresa. La FOTO ya NO está
 * aquí. Al ser solo trama monocroma a baja alfa, no altera el color del texto.
 * ======================================================================= */
.tm-bg {
    position: fixed;
    inset: 0;
    z-index: 9990;
    pointer-events: none;
    overflow: hidden;
    isolation: isolate;
}

.tm-bg__layer {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

/* Grano de película: fractalNoise monocromo en overlay */
.tm-bg__grain {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='tmnoise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23tmnoise)'/%3E%3C/svg%3E");
    background-size: 180px 180px;
    mix-blend-mode: overlay;
    opacity: 0.06;
}

/* Halftone de imprenta: trama de puntos diminuta (verde oscuro) */
.tm-bg__halftone {
    background-image: radial-gradient(circle at center, rgba(30, 60, 25, 0.9) 0, rgba(30, 60, 25, 0.9) 0.6px, transparent 1.1px);
    background-size: 4px 4px;
    opacity: 0.05;
}

/* === Risograph POR SECCIÓN · .tm-riso ====================================
 * Cada bloque recibe .tm-riso + un modificador. El ::before pinta un FRAGMENTO
 * distinto de la MISMA imagen compartida (cache única) detrás del contenido del
 * bloque, integrado en él (no es una lámina flotante). El blend ocurre contra
 * el color de fondo del propio bloque, así que la foto convive con la paleta.
 *   - `position: relative` + `isolation: isolate`: el ::before a z-index:-1
 *     queda DETRÁS del contenido del bloque pero DELANTE de su fondo sólido, y
 *     el blend no escapa al resto de la página.
 *   - `overflow: hidden`: recorta el fragmento al bloque.
 * Solo los modificadores cambian background-position / -size / opacity /
 * mix-blend-mode → distinto encuadre y tratamiento por sección.
 * NUNCA se aplica a tarjetas blancas, inputs, mini-cart, header ni checkout.
 * ========================================================================= */
.tm-riso {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}

.tm-riso::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background-image: url("../recursos/terrario-riso.jpg");
    background-repeat: no-repeat;
    pointer-events: none;
}

/* HERO — fragmento superior (helechos), zoom amplio, multiply sobre oliva/beige.
 * Las dos columnas muestran mitades contiguas → leen como una sola plancha. */
.tm-riso--hero-l::before {
    background-size: 200% auto;
    background-position: 0% 8%;
    opacity: 0.27;
    mix-blend-mode: multiply;
}
.tm-riso--hero-r::before {
    background-size: 200% auto;
    background-position: 100% 8%;
    opacity: 0.27;
    mix-blend-mode: multiply;
}

/* BANDA GENERAL (#d9c6a3) — campanillas (centro-derecha), multiply */
.tm-riso--general::before {
    background-size: 165% auto;
    background-position: 82% 34%;
    opacity: 0.23;
    mix-blend-mode: multiply;
}

/* CAMPING (#344129 oscuro) — musgo, SCREEN → planta como fantasma claro */
.tm-riso--camping::before {
    background-size: 175% auto;
    background-position: 22% 62%;
    opacity: 0.24;
    mix-blend-mode: screen;
}

/* ALOJAMIENTO (#5a2d1f oscuro) — otro encuadre (hoja clara inferior-centro),
 * SCREEN. Se busca una zona CLARA de la foto para que el fantasma se lea sobre
 * el marrón oscuro (igual que camping). */
.tm-riso--aloj::before {
    background-size: 185% auto;
    background-position: 80% 18%;
    opacity: 0.35;
    mix-blend-mode: screen;
}

/* MANIFESTO (#54344B / #7A96A4) — muy sutil, luminosity */
.tm-riso--manifesto-l::before {
    background-size: 210% auto;
    background-position: 30% 45%;
    opacity: 0.14;
    mix-blend-mode: luminosity;
}
.tm-riso--manifesto-r::before {
    background-size: 210% auto;
    background-position: 70% 50%;
    opacity: 0.14;
    mix-blend-mode: luminosity;
}

/* BANDA TÍTULO GENERAL (#5a412d oscuro) — fantasma claro (screen), como las
 * demás bandas de título oscuras. Encuadre central luminoso. */
.tm-riso--general-title::before {
    background-size: 170% auto;
    background-position: 50% 30%;
    opacity: 0.22;
    mix-blend-mode: screen;
}

/* BANDA PRODUCTO CAMPING (#c2d5d9 azul claro) — multiply, encuadre propio
 * (nenúfares/hojas centro), distinto del fantasma de su banda de título. */
.tm-riso--camping-band::before {
    background-size: 150% auto;
    background-position: 45% 52%;
    opacity: 0.20;
    mix-blend-mode: multiply;
}

/* BANDA PRODUCTO ALOJAMIENTO (#d9ca9c beige) — multiply, encuadre propio
 * (hojas inferior-izquierda), distinto del fantasma de su banda de título. */
.tm-riso--aloj-band::before {
    background-size: 160% auto;
    background-position: 28% 58%;
    opacity: 0.20;
    mix-blend-mode: multiply;
}

/* FONDO DE PÁGINA · PDP — fragmento inferior (tierra y raíces), multiply bajo,
 * como BACKDROP. body::before fijo a z-index:-1: detrás de todo el contenido,
 * multiply contra el blanco del body. position:fixed (elemento, NO
 * background-attachment → sin bug iOS) llena el viewport. Las tarjetas blancas
 * son opacas → la trama nunca aparece dentro. En el PDP el .site-content es
 * transparente, así que la tierra se ve de forma uniforme en toda la página. */
body.single-product::before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
    background-image: url("../recursos/terrario-riso.jpg");
    background-repeat: no-repeat;
    background-position: 50% 100%;
    background-size: cover;
    opacity: 0.16;
    mix-blend-mode: multiply;
    pointer-events: none;
}

/* FONDO DE PÁGINA · CARRITO — aquí .site-content es un bloque BLANCO OPACO
 * (background:#fff), así que un backdrop fijo detrás solo asomaría por debajo del
 * bloque → corte blanco/verde. En su lugar integramos la textura DENTRO del
 * propio .site-content: ::before a z-index:-1 (queda sobre el blanco del bloque y
 * debajo de su contenido, sin tocar los hijos) → multiply uniforme contra ese
 * blanco. La tabla, los totales y la cabecera tienen su propio fondo opaco
 * encima → texto legible. Checkout NO lleva esta regla (queda blanco limpio). */
body.woocommerce-cart .site-content {
    /* stacking context propio: garantiza que el ::before(-1) quede SOBRE el
     * blanco del bloque y DEBAJO del contenido (patrón .tm-riso). */
    isolation: isolate;
}
body.woocommerce-cart .site-content::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background-image: url("../recursos/terrario-riso.jpg");
    background-repeat: no-repeat;
    background-position: 50% 100%;
    background-size: cover;
    opacity: 0.13;
    mix-blend-mode: multiply;
    pointer-events: none;
}

/* Móvil: bajamos un pelín el grano global y reencuadramos fragmentos que se
 * cortan mal a 375px (las bandas son más estrechas y altas). */
@media (max-width: 768px) {
    .tm-bg__grain { opacity: 0.05; }

    /* En móvil las dos columnas del hero se apilan: cada una muestra un encuadre
     * más centrado en vez de mitades laterales (si no, una saldría casi vacía). */
    .tm-riso--hero-l::before { background-size: 260% auto; background-position: 35% 6%; }
    .tm-riso--hero-r::before { background-size: 260% auto; background-position: 70% 10%; }

    .tm-riso--general::before { background-size: 230% auto; background-position: 80% 35%; }
    .tm-riso--camping::before { background-size: 240% auto; background-position: 25% 60%; }
    .tm-riso--aloj::before    { background-size: 250% auto; background-position: 85% 70%; }
    .tm-riso--manifesto-l::before,
    .tm-riso--manifesto-r::before { background-size: 280% auto; }
}

/* ============================================================
   HEADER — Logo (izq) · Idiomas (centro) · Tickets/Info/Carrito (der)
   Móvil (≤768px): Logo + carrito + hamburguesa → overlay a pantalla completa
   ============================================================ */

/* --- Selector de idioma: texto plano (GAL · ES · EN) --- */
.tm-lang-switcher {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.tm-lang {
    color: #5a412d;
    font-family: 'Nunito', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 700;
    font-size: 0.82rem;
    letter-spacing: 0.06em;
    line-height: 1;
    text-transform: uppercase;
    text-decoration: none;
    transition: color 0.2s ease;
}

.tm-lang:hover { color: #FF6F3C; }

.tm-lang:focus-visible {
    outline: none;
    border-radius: 4px;
    color: #FF6F3C;
    box-shadow: 0 0 0 3px rgba(255, 111, 60, 0.15);
}

.tm-lang--current { color: #FF6F3C; cursor: default; }

/* Idiomas centrados en la barra (desktop) */
.site-header-langs { justify-self: center; }

/* --- Zona derecha: nav + carrito + hamburguesa --- */
.site-header-right {
    display: flex;
    justify-self: end;
    align-items: center;
    gap: 2rem;
}

.site-header-nav {
    display: flex;
    align-items: center;
    gap: 2rem;
}

.tm-nav-link {
    display: inline-flex;
    align-items: center;
    color: #5a412d;
    font-family: 'Nunito', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 700;
    font-size: 0.82rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    text-decoration: none;
    transition: color 0.2s ease;
}

.tm-nav-link:hover { color: #FF6F3C; }

.tm-nav-link:focus-visible {
    outline: none;
    border-radius: 4px;
    color: #FF6F3C;
    box-shadow: 0 0 0 3px rgba(255, 111, 60, 0.15);
}

.tm-nav-link:active { transform: translateY(1px); }

/* El carrito vive dentro del flex (deja de posicionarse en absolute) */
.site-header-right .mini-cart-wrapper {
    position: relative;
    right: auto;
    top: auto;
    transform: none;
}

/* --- Hamburguesa (solo móvil) --- */
.tm-menu-toggle {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 6px;
    width: 44px;
    height: 44px;
    padding: 0;
    border: none;
    background: none;
    cursor: pointer;
}

.tm-burger-line {
    display: block;
    width: 26px;
    height: 2px;
    margin: 0 auto;
    background: #5a412d;
    border-radius: 2px;
    transition: background 0.2s ease;
}

.tm-menu-toggle:hover .tm-burger-line { background: #FF6F3C; }

/* --- Overlay de menú (móvil) --- */
.tm-mobile-menu {
    display: flex;
    position: fixed;
    inset: 0;
    z-index: 1100;
    flex-direction: column;
    padding: 1.5rem 2rem 3rem;
    background: #f5efe2;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-6px);
    transition: opacity 0.28s ease, transform 0.28s ease, visibility 0s linear 0.28s;
    overflow-y: auto;
}

.tm-mobile-menu.is-open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    transition: opacity 0.28s ease, transform 0.28s ease;
}

.tm-mobile-top {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.tm-mobile-logo img {
    height: 44px;
    width: auto;
    display: block;
}

.tm-menu-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: none;
    background: none;
    color: #5a412d;
    cursor: pointer;
    transition: color 0.2s ease;
}

.tm-menu-close:hover { color: #FF6F3C; }

.tm-mobile-nav {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: 2.5rem;
}

.tm-mobile-link {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.5rem 0;
    color: #5a412d;
    font-family: 'Nunito', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 700;
    font-size: 2rem;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    text-decoration: none;
    transition: color 0.2s ease;
}

.tm-mobile-link:hover,
.tm-mobile-link:focus-visible {
    outline: none;
    color: #FF6F3C;
}

.tm-mobile-arrow {
    color: #b9a791;
    font-weight: 400;
}

.tm-mobile-langs { margin-top: 2.5rem; }

.tm-mobile-langs .tm-lang-switcher {
    justify-content: center;
    gap: 1.75rem;
}

.tm-mobile-langs .tm-lang { font-size: 1.05rem; }

/* Bloquear scroll del body con el menú abierto */
body.tm-menu-open { overflow: hidden; }

/* --- Responsive: ≤768px pasa a barra móvil + hamburguesa --- */
@media (max-width: 768px) {
    .header-container {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center;
    }
    /* Logo más compacto en móvil (evita que empuje el carrito+hamburguesa) */
    .site-logo { height: 52px !important; }
    .site-header-langs,
    .site-header-nav {
        display: none !important;
    }
    .site-header-right {
        justify-self: auto;
        margin-left: auto;   /* ancla el clúster (carrito + hamburguesa) a la derecha */
        gap: 0.75rem;
    }
    .tm-menu-toggle { display: flex; }
}

/* Desktop: el overlay nunca se muestra */
@media (min-width: 769px) {
    .tm-mobile-menu { display: none !important; }
}

@media (max-width: 480px) {
    .tm-mobile-link { font-size: 1.65rem; }
}

/* Anclas con margen para el header fijo */
#info,
#programming-info {
    scroll-margin-top: 140px;
}

/* ============================================================
   BARRA DE CARRITO INFERIOR — aparece al añadir productos
   ============================================================ */
.tm-cart-bar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1050;
    background: rgba(255, 255, 255, 0.88);
    backdrop-filter: blur(18px) saturate(1.6);
    -webkit-backdrop-filter: blur(18px) saturate(1.6);
    border-top: 1px solid rgba(90, 65, 45, 0.12);
    box-shadow: 0 -6px 28px rgba(90, 65, 45, 0.12);
    transform: translateY(110%);
    transition: transform 0.32s cubic-bezier(0.22, 1, 0.36, 1);
}

.tm-cart-bar.is-visible { transform: translateY(0); }

/* Reserva espacio al final para que la barra no tape el footer */
body.tm-has-cart-bar { padding-bottom: 76px !important; }

.tm-cart-bar__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0.85rem 1.5rem;
    gap: 1.5rem;
}

.tm-cart-bar__summary {
    display: flex;
    align-items: center;
    gap: 1.1rem;
    color: #5a412d;
    text-decoration: none;
}

.tm-cart-bar__icon {
    position: relative;
    display: inline-flex;
    align-items: center;
    color: #5a412d;
}

.tm-cart-bar__count {
    display: inline-flex;
    position: absolute;
    top: -7px;
    right: -8px;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 4px;
    background: #FF6F3C;
    color: #ffffff;
    border: 2px solid rgba(255, 255, 255, 0.9);
    border-radius: 999px;
    font-family: 'Nunito', sans-serif;
    font-weight: 700;
    font-size: 0.66rem;
    line-height: 1;
    box-sizing: content-box;
}

.tm-cart-bar__text {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.tm-cart-bar__label {
    color: #8a7a66;
    font-family: 'Nunito', sans-serif;
    font-weight: 700;
    font-size: 0.68rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.tm-cart-bar__total {
    color: #5a412d;
    font-family: 'Nunito', sans-serif;
    font-weight: 800;
    font-size: 1.1rem;
}

.tm-cart-bar__actions {
    display: flex;
    align-items: center;
    gap: 1.25rem;
}

.tm-cart-bar__btn {
    display: inline-flex;
    align-items: center;
    padding: 0.8rem 1.5rem;
    background: #FF6F3C;
    color: #ffffff;
    border-radius: 10px;
    font-family: 'Nunito', sans-serif;
    font-weight: 700;
    font-size: 0.85rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    text-decoration: none;
    box-shadow: 0 4px 16px rgba(255, 111, 60, 0.35);
    transition: background 0.2s ease, transform 0.1s ease;
}

.tm-cart-bar__btn:hover { background: #e55a28; }
.tm-cart-bar__btn:active { transform: translateY(1px); }

.tm-cart-bar__count.bounce { animation: tm-cart-bounce 0.4s ease; }
@keyframes tm-cart-bounce {
    0%, 100% { transform: scale(1); }
    40% { transform: scale(1.35); }
}

@media (max-width: 576px) {
    .tm-cart-bar__inner { padding: 0.7rem 1rem; gap: 0.75rem; }
    .tm-cart-bar__label { display: none; }
    .tm-cart-bar__btn { padding: 0.75rem 1.15rem; font-size: 0.8rem; }
    body.tm-has-cart-bar { padding-bottom: 68px !important; }
}

/* ============================================================
   PÁGINA INFO — FAQ (chips de categoría + acordeón)
   ============================================================ */

/* Fondo de página: degradado crema + textura terrario (como /entradas/) */
body.page-template-template-info-php .site-content {
    isolation: isolate;
    background: linear-gradient(180deg, #ffffff 0%, #f6f0e5 100%) !important;
}
body.page-template-template-info-php .site-content::before {
    content: "";
    position: fixed;
    inset: -60px;                 /* overscan: el desenfoque no deja bordes translúcidos */
    z-index: -1;
    background-image: url("../recursos/terrario-info.jpg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: cover;
    filter: blur(16px);           /* difuminado gaussiano */
    opacity: 0.13;                /* muy leve */
    pointer-events: none;
}

.info-page-main { position: relative; z-index: 0; }

/* Decorativas laterales (Recurso 1/2) — asoman desde los bordes */
.info-deco {
    position: absolute;
    z-index: 0;
    width: 300px;
    height: auto;
    pointer-events: none;
    user-select: none;
}
.info-deco--left  { left: -170px; top: 46%; }
.info-deco--right { right: -180px; top: 14%; }

.info-page-container {
    position: relative;
    z-index: 1;
    max-width: 860px;
    margin: 0 auto;
    padding: 2.5rem 1.5rem 4rem;
}

/* Hero — sin bloque propio; el fondo terrario va en toda la página */
.info-hero {
    position: relative;
    z-index: 1;
    margin-bottom: 2.5rem;
}

.info-hero-title {
    margin: 0 0 0.75rem;
    color: #5a412d;
    font-family: 'GapSans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 400;
    font-size: 2.8rem;
    letter-spacing: 0.04em;
    line-height: 1.05;
    text-transform: uppercase;
}

.info-hero-intro {
    max-width: 560px;
    margin: 0;
    color: #5a412d;
    font-family: 'Nunito', sans-serif;
    font-weight: 200;
    font-size: 1.05rem;
    line-height: 1.6;
}

/* Filtros (chips) */
.info-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-bottom: 2rem;
}

.info-chip {
    padding: 0.55rem 1.1rem;
    border: 1.5px solid rgba(90, 65, 45, 0.20);
    border-radius: 999px;
    background: #ffffff;
    color: #5a412d;
    font-family: 'Nunito', sans-serif;
    font-weight: 700;
    font-size: 0.8rem;
    letter-spacing: 0.02em;
    cursor: pointer;
    transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.info-chip:hover { border-color: #FF6F3C; color: #FF6F3C; }

.info-chip.is-active {
    border-color: #FF6F3C;
    background: #FF6F3C;
    color: #ffffff;
}

.info-chip:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(255, 111, 60, 0.15);
}

/* Acordeón */
.info-faq { border-top: 1px solid rgba(90, 65, 45, 0.12); }
.info-faq-item { border-bottom: 1px solid rgba(90, 65, 45, 0.12); }
.info-faq-item.is-hidden { display: none; }

.info-faq-q {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    width: 100%;
    padding: 1.25rem 0.25rem;
    border: none;
    background: none;
    color: #5a412d;
    font-family: 'Nunito', sans-serif;
    font-weight: 800;
    font-size: 1.1rem;
    letter-spacing: -0.02em;
    text-align: left;
    cursor: pointer;
    transition: color 0.2s ease;
}

.info-faq-q:hover { color: #FF6F3C; }

.info-faq-q:focus-visible {
    outline: none;
    border-radius: 6px;
    box-shadow: 0 0 0 3px rgba(255, 111, 60, 0.15);
}

/* Icono + / − */
.info-faq-icon {
    position: relative;
    flex-shrink: 0;
    width: 18px;
    height: 18px;
}

.info-faq-icon::before,
.info-faq-icon::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 14px;
    height: 2px;
    background: currentColor;
    transform: translate(-50%, -50%);
    transition: transform 0.25s ease, opacity 0.25s ease;
}

.info-faq-icon::after { transform: translate(-50%, -50%) rotate(90deg); }
.info-faq-q[aria-expanded="true"] .info-faq-icon::after { opacity: 0; transform: translate(-50%, -50%) rotate(0deg); }

/* Respuesta (colapsable) */
.info-faq-a {
    overflow: hidden;
    max-height: 0;
    transition: max-height 0.3s ease;
}

.info-faq-a.is-open { max-height: 600px; }

.info-faq-a-inner {
    padding: 0 0.25rem 1.25rem;
    color: #5a412d;
    font-family: 'Nunito', sans-serif;
    font-weight: 200;
    font-size: 1rem;
    line-height: 1.65;
}

.info-faq-a-inner p { margin: 0 0 0.75rem; }
.info-faq-a-inner p:last-child { margin: 0; }
.info-faq-a-inner a { color: #FF6F3C; font-weight: 700; text-decoration: none; }
.info-faq-a-inner a:hover { text-decoration: underline; }

/* Contacto */
.info-contact {
    margin-top: 3rem;
    padding: 2.5rem 2rem;
    border-radius: 14px;
    background: #f5efe2;
    text-align: center;
}

.info-contact-title {
    margin: 0 0 0.5rem;
    color: #5a412d;
    font-family: 'GapSans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    font-weight: 400;
    font-size: 1.6rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.info-contact-text {
    margin: 0 0 1.5rem;
    color: #5a412d;
    font-family: 'Nunito', sans-serif;
    font-weight: 200;
    font-size: 1rem;
}

.info-contact-btn {
    display: inline-flex;
    align-items: center;
    padding: 0.9rem 1.75rem;
    border-radius: 10px;
    background: #FF6F3C;
    color: #ffffff;
    font-family: 'Nunito', sans-serif;
    font-weight: 700;
    font-size: 0.95rem;
    letter-spacing: 0.02em;
    text-decoration: none;
    box-shadow: 0 4px 16px rgba(255, 111, 60, 0.35);
    transition: background 0.2s ease, transform 0.1s ease;
}

.info-contact-btn:hover { background: #e55a28; }
.info-contact-btn:active { transform: translateY(1px); }

.info-contact-note {
    margin: 1.25rem auto 0;
    max-width: 460px;
    color: #8a7a66;
    font-family: 'Nunito', sans-serif;
    font-weight: 200;
    font-size: 0.9rem;
    line-height: 1.5;
}

.info-contact-note a {
    color: #FF6F3C;
    font-weight: 700;
    text-decoration: none;
}

.info-contact-note a:hover { text-decoration: underline; }

@media (max-width: 992px) {
    .info-deco { display: none; }
}

@media (max-width: 768px) {
    .info-page-container { padding: 2rem 1.25rem 3.5rem; }
    .info-hero-title { font-size: 2.2rem; }
}

@media (max-width: 576px) {
    .info-hero-title { font-size: 1.9rem; }
    .info-faq-q { font-size: 1rem; }
}
