/*
Theme Name: De Raiz Child
Theme URI: https://dev.deraizintegral.pe
Description: Tema hijo para De Raiz - Bienestar Integral
Author: Tu Nombre
Author URI: https://dev.deraizintegral.pe

Version: 7.1.0
*/

/* ====================================
   1. VARIABLES Y CONFIGURACIÓN GLOBAL
   ==================================== */
:root {
    --color-primary:        #4a6741;
    --color-primary-dark:   #3a5232;
    --color-primary-light:  rgba(74, 103, 65, 0.1);
    --color-secondary:      #a68b6d;
    --color-background:     #fdfcf9;
    --color-background-dark:#121412;
    --color-text:           #1e293b;
    --color-text-muted:     #64748b;
    --color-text-light:     #f8fafc;
    --color-border:         #e7e5e4;
    --color-accent:         #86efac;   /* verde menta — contraste sobre oscuro */
    --font-display: 'Playfair Display', serif;
    --font-sans:    'Plus Jakarta Sans', sans-serif;
    --shadow-sm:  0 1px 2px 0 rgb(0 0 0 / 0.05);
    --shadow-md:  0 4px 6px -1px rgb(0 0 0 / 0.1);
    --shadow-lg:  0 10px 15px -3px rgb(0 0 0 / 0.1);
    --shadow-xl:  0 20px 25px -5px rgb(0 0 0 / 0.15);
    --radius:       0.5rem;
    --radius-lg:    1rem;
    --radius-xl:    1.5rem;
    --header-h:     80px;
}

.dark {
    --color-background:   #121412;
    --color-text:         #f8fafc;
    --color-text-muted:   #94a3b8;
    --color-border:       #292524;
}

/* ====================================
   2. RESET Y BASE
   ==================================== */
*, *::before, *::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html { scroll-behavior: smooth; }

body {
    font-family: var(--font-sans);
    background-color: var(--color-background);
    color: var(--color-text);
    line-height: 1.6;
    transition: background-color 0.3s, color 0.3s;
    overflow-x: hidden;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-display);
    font-weight: 700;
    line-height: 1.2;
}

a { text-decoration: none; }
img { max-width: 100%; height: auto; }

/* Screen-reader only */
.sr-only {
    position: absolute;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
    border: 0;
}

/* ====================================
   3. UTILIDADES
   ==================================== */
.container {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 1rem;
}
@media (min-width: 640px)  { .container { padding: 0 1.5rem; } }
@media (min-width: 1024px) { .container { padding: 0 2rem; } }

.text-primary   { color: var(--color-primary) !important; }
.text-secondary { color: var(--color-secondary) !important; }
.bg-primary     { background-color: var(--color-primary) !important; }
.text-center    { text-align: center; }

.section {
    padding: 6rem 0;
}

.bg-light { background-color: #f8f9fa; }
.dark .bg-light { background-color: #1c1917; }

.bg-stone-100 { background-color: #f5f5f4; }
.dark .bg-stone-100 { background-color: #1c1917; }

/* ====================================
   4. HEADER
   ==================================== */
.site-header {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 100;
    height: var(--header-h);
    background: rgba(253, 252, 249, 0.92);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border-bottom: 1px solid rgba(231, 229, 228, 0.6);
    transition: background 0.3s, box-shadow 0.3s;
}

.dark .site-header {
    background: rgba(18, 20, 18, 0.88);
    border-bottom-color: #292524;
}

.site-header.scrolled {
    box-shadow: 0 4px 24px rgba(0,0,0,0.08);
}

.header-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: var(--header-h);
}

/* Logo */
.logo-container {
    display: flex;
    align-items: stretch;
    height: var(--header-h);
    flex-shrink: 0;
}

.logo-link {
    display: flex;
    align-items: center;
    height: 100%;
    padding: 6px 0;
}

.logo-img,
.logo-link img,
.custom-logo {
    height: 100% !important;
    width: auto !important;
    max-height: var(--header-h);
    object-fit: contain;
    display: block;
}

/* Navegación principal */
.main-navigation {
    flex: 1;
    display: none;
    justify-content: center;
    align-items: center;
    height: var(--header-h);
    margin: 0 2rem;
}

@media (min-width: 768px) {
    .main-navigation { display: flex; }
}

.main-navigation .main-menu {
    display: flex;
    gap: 2rem;
    list-style: none;
    height: 100%;
    align-items: center;
    margin: 0; padding: 0;
}

.main-navigation .main-menu a {
    color: var(--color-text);
    font-size: 0.92rem;
    font-weight: 500;
    transition: color 0.25s;
    padding: 0.4rem 0;
    position: relative;
}

.main-navigation .main-menu a::after {
    content: '';
    position: absolute;
    bottom: 0; left: 0;
    width: 0; height: 2px;
    background: var(--color-primary);
    transition: width 0.3s ease;
}

.main-navigation .main-menu a:hover { color: var(--color-primary); }
.main-navigation .main-menu a:hover::after { width: 100%; }

/* Acciones header */
.header-actions {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-shrink: 0;
}

.action-button {
    width: 40px; height: 40px;
    border-radius: 9999px;
    background: none; border: none;
    color: var(--color-text);
    cursor: pointer;
    transition: background 0.25s, color 0.25s;
    display: flex; align-items: center; justify-content: center;
}

.action-button:hover { background: rgba(0,0,0,0.06); }
.dark .action-button:hover { background: rgba(255,255,255,0.08); }
.action-button .material-icons-outlined { font-size: 1.25rem; }

/* Carrito */
.cart-button { position: relative; }

.cart-count {
    position: absolute;
    top: 0; right: 0;
    background: var(--color-primary);
    color: white;
    font-size: 0.6rem;
    font-weight: 700;
    width: 18px; height: 18px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 9999px;
    transform: translate(25%, -25%);
}

@keyframes cartBounce {
    0%   { transform: translate(25%,-25%) scale(1); }
    50%  { transform: translate(25%,-25%) scale(1.25); }
    100% { transform: translate(25%,-25%) scale(1); }
}
.cart-count.updated { animation: cartBounce 0.3s ease; }

/* Spacer */
.header-spacer { height: var(--header-h); display: block; }
.home .header-spacer { height: 0 !important; }

/* Menú móvil */
.mobile-menu-toggle { display: flex; }
@media (min-width: 768px) { .mobile-menu-toggle { display: none !important; } }

.mobile-menu {
    display: none;
    position: fixed;
    top: var(--header-h); left: 0; right: 0;
    background: rgba(253, 252, 249, 0.97);
    backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--color-border);
    padding: 1rem;
    z-index: 99;
    max-height: calc(100vh - var(--header-h));
    overflow-y: auto;
}

.dark .mobile-menu {
    background: rgba(18, 20, 18, 0.97);
    border-bottom-color: #292524;
}

.mobile-menu.active { display: block; }

.mobile-menu-items { list-style: none; padding: 0; margin: 0; }
.mobile-menu-items li { margin: 0.25rem 0; }
.mobile-menu-items a {
    display: block;
    color: var(--color-text);
    font-size: 1.05rem;
    font-weight: 500;
    padding: 0.75rem 1rem;
    border-radius: var(--radius);
    transition: background 0.2s, color 0.2s;
}
.mobile-menu-items a:hover {
    background: var(--color-primary-light);
    color: var(--color-primary);
}

/* ====================================
   5. BUSCADOR OVERLAY
   ==================================== */
.search-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.88);
    backdrop-filter: blur(8px);
    z-index: 200;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s, visibility 0.3s;
}

.search-overlay.active { opacity: 1; visibility: visible; }

.search-container { width: 90%; max-width: 600px; }

.search-form {
    display: flex;
    gap: 0.75rem;
    position: relative;
}

.search-input {
    flex: 1;
    padding: 1.25rem 1.5rem;
    font-size: 1.25rem;
    border: none;
    border-radius: var(--radius-lg);
    background: white;
    color: #333;
    outline: none;
    box-shadow: 0 8px 32px rgba(0,0,0,0.3);
    font-family: var(--font-sans);
}

.dark .search-input { background: #1c1917; color: white; }

.search-submit {
    padding: 1rem 1.5rem;
    background: var(--color-primary);
    color: white;
    border: none;
    border-radius: var(--radius-lg);
    cursor: pointer;
    font-size: 1.25rem;
    transition: background 0.25s;
    display: flex; align-items: center;
}
.search-submit:hover { background: var(--color-primary-dark); }

.search-close {
    position: absolute;
    top: -3.5rem; right: 0;
    background: none; border: none;
    color: white; cursor: pointer;
    padding: 0.5rem;
    display: flex; align-items: center;
}
.search-close .material-icons-outlined { font-size: 2rem; }

/* ====================================
   6. HERO CON CARRUSEL
   ==================================== */
.hero-section {
    position: relative;
    height: 100vh;
    min-height: 560px;
    display: flex;
    align-items: center;
    overflow: hidden;
    margin-top: 0 !important;
}

.hero-carousel {
    position: absolute;
    inset: 0;
    z-index: 1;
}

.carousel-slide {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    opacity: 0;
    transition: opacity 1.2s ease-in-out;
    z-index: 1;
}

.carousel-slide.active { opacity: 1; z-index: 2; }

/* Overlay dramático — legibilidad máxima */
.hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        120deg,
        rgba(0,0,0,0.68) 0%,
        rgba(0,0,0,0.35) 55%,
        rgba(0,0,0,0.12) 100%
    );
    z-index: 3;
}

.carousel-controls {
    position: absolute;
    bottom: 2rem; right: 2rem;
    z-index: 10;
    display: flex;
    gap: 0.5rem;
}

.carousel-dot {
    width: 10px; height: 10px;
    border-radius: 50%;
    background: rgba(255,255,255,0.45);
    border: none; cursor: pointer;
    padding: 0;
    transition: background 0.3s, transform 0.3s;
}

.carousel-dot.active,
.carousel-dot:hover {
    background: white;
    transform: scale(1.3);
}

/* Contenido hero */
.hero-content {
    position: relative;
    z-index: 10;
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 2rem;
}

.hero-text { max-width: 38rem; }

/* Badge */
.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.4rem 1.1rem;
    background: rgba(255,255,255,0.1);
    border: 1px solid rgba(255,255,255,0.3);
    backdrop-filter: blur(8px);
    color: #fff;
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    margin-bottom: 1.75rem;
}

.hero-badge::before {
    content: '';
    width: 6px; height: 6px;
    background: var(--color-accent);
    border-radius: 50%;
    flex-shrink: 0;
}

/* Título */
.hero-title {
    font-size: clamp(2.4rem, 5.5vw, 5rem);
    font-weight: 800;
    line-height: 1.08;
    color: #fff;
    margin-bottom: 1.5rem;
    letter-spacing: -0.02em;
    text-shadow: 0 2px 20px rgba(0,0,0,0.2);
}

.hero-title-italic {
    font-style: italic;
    font-weight: 700;
    color: var(--color-accent);
}

/* Descripción */
.hero-description {
    font-size: clamp(0.95rem, 1.8vw, 1.1rem);
    color: rgba(255,255,255,0.82);
    margin-bottom: 2.5rem;
    max-width: 30rem;
    line-height: 1.75;
}

/* Botones */
.hero-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.btn-primary {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.9rem 2rem;
    background: var(--color-primary);
    color: white;
    font-weight: 700;
    font-size: 0.92rem;
    border-radius: var(--radius);
    border: 2px solid var(--color-primary);
    transition: all 0.25s ease;
    box-shadow: 0 4px 18px rgba(74,103,65,0.4);
    letter-spacing: 0.01em;
    cursor: pointer;
}

.btn-primary:hover {
    background: var(--color-primary-dark);
    border-color: var(--color-primary-dark);
    transform: translateY(-2px);
    box-shadow: 0 8px 28px rgba(74,103,65,0.5);
    color: white;
}

.btn-outline-light {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.9rem 2rem;
    background: rgba(255,255,255,0.08);
    color: #fff;
    font-weight: 600;
    font-size: 0.92rem;
    border-radius: var(--radius);
    border: 1.5px solid rgba(255,255,255,0.38);
    backdrop-filter: blur(6px);
    transition: all 0.25s ease;
}

.btn-outline-light:hover {
    background: rgba(255,255,255,0.18);
    border-color: rgba(255,255,255,0.65);
    color: white;
}

.btn .material-icons-outlined,
.btn-primary .material-icons-outlined { font-size: 1rem; }

/* ====================================
   7. SECCIONES — CABECERAS
   ==================================== */
.section-header {
    text-align: center;
    margin-bottom: 3.5rem;
}

.section-header h2 {
    font-size: clamp(1.75rem, 3vw, 2.75rem);
    margin-bottom: 1rem;
    color: var(--color-text);
}

.section-divider {
    width: 4rem;
    height: 3px;
    background: linear-gradient(90deg, var(--color-primary), var(--color-secondary));
    margin: 0 auto;
    border-radius: 9999px;
}

.section-header-left {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-bottom: 2.5rem;
    gap: 1rem;
}

@media (max-width: 640px) {
    .section-header-left { flex-direction: column; align-items: flex-start; }
}

.section-header-left h2 { font-size: clamp(1.5rem, 2.5vw, 2rem); }
.section-header-left p  { color: var(--color-text-muted); margin-top: 0.35rem; }

.section-link {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    color: var(--color-primary);
    font-weight: 600;
    font-size: 0.9rem;
    white-space: nowrap;
    transition: gap 0.2s;
}
.section-link:hover { gap: 0.5rem; }

/* ====================================
   8. CATEGORÍAS DESTACADAS
   ==================================== */
.categories-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
}

@media (min-width: 640px) {
    .categories-grid { grid-template-columns: repeat(3, 1fr); }
}

.category-card {
    position: relative;
    overflow: hidden;
    border-radius: var(--radius-lg);
    aspect-ratio: 3 / 2;
    cursor: pointer;
    box-shadow: 0 4px 16px rgba(0,0,0,0.1);
    transition: transform 0.35s ease, box-shadow 0.35s ease;
}

.category-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 14px 36px rgba(0,0,0,0.18);
}

.category-image {
    position: absolute;
    inset: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform 0.65s ease;
}

.category-card:hover .category-image { transform: scale(1.08); }

.category-image-placeholder {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, #4a6741 0%, #a68b6d 100%);
    display: flex; align-items: center; justify-content: center;
}
.category-image-placeholder .material-icons-outlined {
    font-size: 3rem;
    color: rgba(255,255,255,0.35);
}

/* Overlay más profundo en la parte baja */
.category-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top,
        rgba(5,15,5,0.88) 0%,
        rgba(5,15,5,0.28) 50%,
        transparent 100%
    );
    transition: opacity 0.35s;
    z-index: 1;
}

.category-card:hover .category-overlay {
    background: linear-gradient(
        to top,
        rgba(5,15,5,0.94) 0%,
        rgba(5,15,5,0.38) 55%,
        transparent 100%
    );
}

.category-content {
    position: absolute;
    bottom: 0; left: 0; right: 0;
    padding: 1.4rem 1.5rem;
    color: white;
    z-index: 2;
}

.category-content h3 {
    font-size: 1.15rem;
    font-weight: 700;
    margin-bottom: 0.25rem;
    line-height: 1.2;
    color: #fff;
    text-shadow: 0 1px 6px rgba(0,0,0,0.4);
}

.category-content p {
    color: rgba(255,255,255,0.75);
    font-size: 0.78rem;
    margin-bottom: 0.85rem;
    line-height: 1.45;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.category-link {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    color: var(--color-accent);
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    transition: gap 0.25s;
}

.category-link::after { content: '→'; transition: transform 0.25s; }
.category-card:hover .category-link { gap: 0.5rem; }
.category-card:hover .category-link::after { transform: translateX(3px); }

/* ====================================
   9. PRODUCTOS GRID
   ==================================== */
.products-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
}

@media (min-width: 540px)  { .products-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .products-grid { grid-template-columns: repeat(4, 1fr); } }

.product-card {
    background: white;
    border-radius: var(--radius-xl);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    border: 1px solid rgba(0,0,0,0.04);
}

.dark .product-card { background: #1c1917; border-color: rgba(255,255,255,0.04); }
.product-card:hover { box-shadow: var(--shadow-xl); transform: translateY(-5px); }

.product-image-container {
    position: relative;
    aspect-ratio: 1;
    overflow: hidden;
    background: #f1f5f9;
}

.dark .product-image-container { background: #44403c; }

.product-image-link { display: block; width: 100%; height: 100%; }

.product-image {
    width: 100%; height: 100%;
    object-fit: cover;
    transition: transform 0.5s ease;
    display: block;
}

.product-card:hover .product-image { transform: scale(1.06); }

.product-no-image {
    display: flex;
    align-items: center;
    justify-content: center;
    color: #cbd5e1;
    font-size: 2rem;
}

.product-badge {
    position: absolute;
    top: 0.85rem; left: 0.85rem;
    background: var(--color-secondary);
    color: white;
    font-size: 0.6rem;
    font-weight: 700;
    padding: 0.2rem 0.55rem;
    border-radius: 0.3rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    z-index: 5;
}

.wishlist-button {
    position: absolute;
    top: 0.85rem; right: 0.85rem;
    width: 2rem; height: 2rem;
    background: rgba(255,255,255,0.85);
    backdrop-filter: blur(4px);
    border: none; border-radius: 9999px;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.3s, color 0.2s;
    color: var(--color-text);
    z-index: 5;
}

.product-card:hover .wishlist-button { opacity: 1; }
.wishlist-button:hover { color: #ef4444; }
.wishlist-button .material-icons-outlined { font-size: 1rem; }

.product-details { padding: 1.25rem 1.25rem 1.4rem; }

.product-category {
    color: var(--color-secondary);
    font-size: 0.6rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    margin-bottom: 0.3rem;
    display: block;
}

.product-title {
    font-weight: 700;
    font-size: 1rem;
    margin-bottom: 0.5rem;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.product-title a { color: inherit; transition: color 0.2s; }
.product-title a:hover { color: var(--color-primary); }

.product-rating {
    display: flex;
    align-items: center;
    gap: 0.15rem;
    margin-bottom: 0.85rem;
}

.star-filled { color: #facc15; font-size: 0.95rem; }
.star-empty  { color: #d6d3d1; font-size: 0.95rem; }

.rating-count { color: #a8a29e; font-size: 0.7rem; margin-left: 0.2rem; }

.product-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 0.5rem;
}

.product-price {
    font-weight: 700;
    font-size: 1.15rem;
    color: var(--color-primary);
}

.price-old {
    font-size: 0.8rem;
    color: #a8a29e;
    text-decoration: line-through;
    display: block;
    font-weight: 400;
}

.add-to-cart-btn {
    background: var(--color-primary);
    color: white;
    border: none;
    padding: 0.55rem;
    border-radius: var(--radius);
    cursor: pointer;
    transition: background 0.25s, transform 0.2s;
    display: flex; align-items: center; justify-content: center;
}

.add-to-cart-btn:hover {
    background: var(--color-primary-dark);
    transform: scale(1.08);
    color: white;
}

.add-to-cart-btn .material-icons-outlined { font-size: 1.2rem; }

.out-of-stock-badge {
    font-size: 0.7rem;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* ====================================
   10. FILOSOFÍA
   ==================================== */
.philosophy-section {
    padding: 7rem 0;
    overflow: hidden;
    position: relative;
}

.philosophy-section::before {
    content: '';
    position: absolute;
    top: -8rem; right: -8rem;
    width: 36rem; height: 36rem;
    background: radial-gradient(circle, rgba(74,103,65,0.055) 0%, transparent 70%);
    pointer-events: none;
}

.philosophy-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 4rem;
    align-items: center;
}

@media (min-width: 1024px) {
    .philosophy-grid { grid-template-columns: 1fr 1fr; gap: 6rem; }
}

/* Imagen */
.philosophy-image-container { position: relative; }

.philosophy-bg-blur {
    position: absolute;
    top: -2.5rem; left: -2.5rem;
    width: 16rem; height: 16rem;
    background: rgba(74,103,65,0.1);
    border-radius: 9999px;
    filter: blur(64px);
    z-index: 0;
}

.philosophy-image-wrapper {
    position: relative;
    border-radius: var(--radius-xl);
    overflow: hidden;
    box-shadow: 0 24px 64px rgba(0,0,0,0.13);
    z-index: 1;
}

.philosophy-image-wrapper:hover .philosophy-image { transform: scale(1.03); }

.philosophy-image {
    width: 100%;
    height: 480px;
    object-fit: cover;
    display: block;
    transition: transform 0.6s ease;
}

/* Quote flotante */
.philosophy-quote {
    position: absolute;
    bottom: -2rem; right: -1.5rem;
    background: white;
    padding: 1.4rem 1.6rem;
    border-radius: var(--radius-lg);
    box-shadow: 0 12px 40px rgba(0,0,0,0.11);
    max-width: 17rem;
    border-left: 4px solid var(--color-primary);
    z-index: 2;
}

.dark .philosophy-quote { background: #1e293b; }

.philosophy-quote p {
    font-family: var(--font-display);
    font-style: italic;
    color: var(--color-primary);
    font-size: 0.9rem;
    line-height: 1.5;
    margin-bottom: 0.5rem;
}

.philosophy-quote .quote-author {
    color: #94a3b8;
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
}

@media (max-width: 768px) {
    .philosophy-quote {
        position: relative;
        bottom: 0; right: 0;
        margin-top: 1rem;
        max-width: 100%;
    }
}

/* Contenido */
.philosophy-content {
    display: flex;
    flex-direction: column;
}

.philosophy-subtitle {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--color-secondary);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 0.72rem;
    margin-bottom: 1rem;
}

.philosophy-subtitle::before {
    content: '';
    display: inline-block;
    width: 2rem; height: 2px;
    background: var(--color-secondary);
    border-radius: 2px;
}

.philosophy-title {
    font-size: clamp(1.85rem, 3.2vw, 2.65rem);
    font-weight: 800;
    line-height: 1.15;
    margin-bottom: 1.25rem;
    letter-spacing: -0.02em;
    color: var(--color-text);
}

.philosophy-description {
    font-size: 1.02rem;
    color: var(--color-text-muted);
    line-height: 1.8;
    margin-bottom: 2.25rem;
}

.dark .philosophy-description { color: #94a3b8; }

.philosophy-highlight { font-weight: 700; color: var(--color-primary); }

/* Features */
.philosophy-features {
    list-style: none;
    padding: 0; margin: 0 0 2.25rem 0;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.philosophy-features li {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    padding: 1rem 1.2rem;
    background: rgba(74,103,65,0.05);
    border: 1px solid rgba(74,103,65,0.1);
    border-radius: var(--radius-lg);
    transition: background 0.25s, border-color 0.25s;
}

.philosophy-features li:hover {
    background: rgba(74,103,65,0.09);
    border-color: rgba(74,103,65,0.2);
}

.dark .philosophy-features li {
    background: rgba(74,103,65,0.07);
    border-color: rgba(74,103,65,0.14);
}

.feature-icon {
    flex-shrink: 0;
    width: 2.4rem; height: 2.4rem;
    background: var(--color-primary);
    border-radius: 0.55rem;
    display: flex; align-items: center; justify-content: center;
    color: white;
}

.feature-icon .material-icons-outlined { font-size: 1.15rem; }

.feature-content h5 {
    font-weight: 700;
    font-size: 0.92rem;
    margin-bottom: 0.2rem;
    color: var(--color-text);
}

.feature-content p {
    color: var(--color-text-muted);
    font-size: 0.82rem;
    line-height: 1.5;
    margin: 0;
}

/* Botón filosofía */
.philosophy-link {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--color-primary);
    font-weight: 700;
    font-size: 0.88rem;
    padding: 0.75rem 1.5rem;
    border: 2px solid var(--color-primary);
    border-radius: var(--radius);
    transition: all 0.25s ease;
    align-self: flex-start;
}

.philosophy-link:hover {
    background: var(--color-primary);
    color: white;
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(74,103,65,0.28);
}

.philosophy-link .material-icons-outlined { font-size: 0.95rem; transition: transform 0.25s; }
.philosophy-link:hover .material-icons-outlined { transform: translateX(4px); }

/* ====================================
   11. BENEFICIOS
   ==================================== */
.benefits-section { padding: 4rem 0; background: var(--color-background); }

.benefits-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
}

@media (min-width: 768px) { .benefits-grid { grid-template-columns: repeat(4, 1fr); } }

.benefit-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 0.75rem;
    padding: 2rem 1rem;
    border-radius: var(--radius-lg);
    background: rgba(74,103,65,0.04);
    border: 1px solid rgba(74,103,65,0.08);
    transition: background 0.25s;
}

.benefit-item:hover { background: rgba(74,103,65,0.08); }

.benefit-icon {
    font-size: 2.25rem !important;
    color: var(--color-primary);
}

.benefit-item h4 {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--color-text);
}

.benefit-item p {
    font-size: 0.8rem;
    color: var(--color-text-muted);
    line-height: 1.4;
    margin: 0;
}

/* ====================================
   12. NEWSLETTER
   ==================================== */
.newsletter-section {
    padding: 5rem 0;
    background: linear-gradient(135deg, rgba(74,103,65,0.07) 0%, rgba(166,139,109,0.07) 100%);
}

.newsletter-wrapper {
    max-width: 560px;
    margin: 0 auto;
    text-align: center;
}

.newsletter-wrapper h2 {
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    margin-bottom: 0.75rem;
    color: var(--color-text);
}

.newsletter-wrapper > p {
    color: var(--color-text-muted);
    margin-bottom: 2rem;
    font-size: 0.95rem;
}

.newsletter-form,
.newsletter-inline {
    display: flex;
    gap: 0.5rem;
}

.newsletter-input {
    flex: 1;
    padding: 0.85rem 1rem;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius);
    background: white;
    font-size: 0.9rem;
    font-family: var(--font-sans);
    transition: border-color 0.25s, box-shadow 0.25s;
    color: var(--color-text);
}

.dark .newsletter-input { background: #292524; border-color: #57534e; color: white; }

.newsletter-input:focus {
    outline: none;
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(74,103,65,0.15);
}

.newsletter-submit {
    background: var(--color-primary);
    color: white;
    border: none;
    padding: 0.85rem 1.1rem;
    border-radius: var(--radius);
    cursor: pointer;
    transition: background 0.25s;
    display: flex; align-items: center; justify-content: center;
}

.newsletter-submit:hover { background: var(--color-primary-dark); }

.newsletter-btn {
    white-space: nowrap;
    flex-shrink: 0;
}

.newsletter-disclaimer {
    font-size: 0.75rem;
    color: #a8a29e;
    margin-top: 1rem;
}

/* ====================================
   13. FOOTER
   ==================================== */
.site-footer {
    background-color: #f5f5f4;
    padding-top: 5rem;
    padding-bottom: 2.5rem;
}

.dark .site-footer { background-color: #1c1917; }

.footer-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3rem;
    margin-bottom: 4rem;
}

@media (min-width: 640px)  { .footer-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .footer-grid { grid-template-columns: repeat(4, 1fr); } }

.footer-col { display: flex; flex-direction: column; gap: 1.25rem; }

.footer-logo { display: flex; align-items: center; gap: 0.85rem; }
.footer-logo-img { height: 40px; width: auto; }

.footer-logo-text {
    display: block;
    color: var(--color-primary);
    font-weight: 700;
    font-size: 1.05rem;
    line-height: 1.2;
}

.footer-logo-slogan {
    display: block;
    color: var(--color-secondary);
    font-size: 0.5rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
}

.footer-description { color: #78716c; font-size: 0.875rem; line-height: 1.65; }
.dark .footer-description { color: #a8a29e; }

.social-links { display: flex; gap: 0.75rem; }

.social-link {
    width: 2.25rem; height: 2.25rem;
    border-radius: 9999px;
    background: white;
    display: flex; align-items: center; justify-content: center;
    box-shadow: var(--shadow-sm);
    color: var(--color-text);
    transition: color 0.25s, background 0.25s;
}

.dark .social-link { background: #292524; }
.social-link:hover { color: var(--color-primary); background: rgba(74,103,65,0.1); }

.footer-title { font-size: 0.875rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; }

.footer-menu {
    list-style: none; padding: 0; margin: 0;
    display: flex; flex-direction: column; gap: 0.75rem;
}

.footer-menu li a {
    color: #78716c;
    font-size: 0.875rem;
    transition: color 0.2s;
}

.footer-menu li a:hover { color: var(--color-primary); }
.dark .footer-menu li a { color: #a8a29e; }

.footer-newsletter > p {
    color: #78716c;
    font-size: 0.875rem;
    line-height: 1.5;
}

.dark .footer-newsletter > p { color: #a8a29e; }

.footer-bottom {
    padding-top: 2rem;
    border-top: 1px solid var(--color-border);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
    font-size: 0.7rem;
    color: #a8a29e;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

@media (min-width: 768px) {
    .footer-bottom { flex-direction: row; justify-content: space-between; }
}

.dark .footer-bottom { border-top-color: #44403c; }

.footer-payment-methods {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.payment-label { font-size: 0.65rem; color: #a8a29e; white-space: nowrap; }

.footer-payment-methods img {
    height: 1.1rem; width: auto;
    opacity: 0.45;
    filter: grayscale(1);
    transition: opacity 0.3s, filter 0.3s;
}

.footer-payment-methods img:hover { opacity: 1; filter: grayscale(0); }

/* ====================================
   14. CARRITO DESPLEGABLE
   ==================================== */
.cart-wrapper { position: relative; }

.cart-dropdown {
    position: absolute;
    top: calc(100% + 12px); right: 0;
    width: 320px;
    background: white;
    border-radius: var(--radius-lg);
    box-shadow: 0 12px 36px rgba(0,0,0,0.14);
    border: 1px solid rgba(0,0,0,0.06);
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: all 0.25s ease;
    z-index: 150;
}

.dark .cart-dropdown { background: #1e293b; border-color: #334155; }

.cart-wrapper:hover .cart-dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.cart-dropdown-content {
    max-height: 380px;
    overflow-y: auto;
    padding: 1rem;
}

.cart-items-list { display: flex; flex-direction: column; gap: 0.85rem; margin-bottom: 0.5rem; }

.cart-item {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    position: relative;
    padding-right: 1.5rem;
}

.cart-item-image {
    width: 48px; height: 48px;
    border-radius: var(--radius);
    overflow: hidden; flex-shrink: 0;
    background: #f1f5f9;
}

.cart-item-image img { width: 100%; height: 100%; object-fit: cover; }

.cart-item-details { flex: 1; min-width: 0; }

.cart-item-details h4 {
    font-size: 0.85rem;
    font-weight: 600;
    margin: 0 0 3px;
    color: #1e293b;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dark .cart-item-details h4 { color: #f1f5f9; }

.cart-item-price { font-size: 0.78rem; color: var(--color-primary); font-weight: 600; }

.cart-item-remove {
    position: absolute; top: 0; right: 0;
    font-size: 15px; color: #94a3b8; padding: 2px;
}
.cart-item-remove:hover { color: #ef4444; }

.cart-dropdown-footer {
    border-top: 1px solid #e2e8f0;
    padding: 1rem 1rem 0.5rem;
}
.dark .cart-dropdown-footer { border-top-color: #334155; }

.cart-subtotal {
    display: flex; justify-content: space-between; align-items: center;
    font-size: 0.9rem; margin-bottom: 0.85rem;
}
.cart-subtotal strong { color: var(--color-primary); font-size: 1.05rem; }

.cart-buttons { display: flex; gap: 0.5rem; }

.cart-buttons .btn-sm {
    padding: 0.55rem 1rem;
    font-size: 0.78rem;
    flex: 1;
    text-align: center;
    border-radius: var(--radius);
    font-weight: 600;
    transition: all 0.25s;
    display: block;
}

.cart-buttons .btn-outline {
    border: 1.5px solid var(--color-primary);
    color: var(--color-primary);
    background: transparent;
}
.cart-buttons .btn-outline:hover { background: var(--color-primary); color: white; }

.cart-buttons .btn-primary {
    background: var(--color-primary);
    color: white;
    border: 1.5px solid var(--color-primary);
}
.cart-buttons .btn-primary:hover { background: var(--color-primary-dark); }

.empty-cart {
    text-align: center; color: #64748b;
    padding: 2rem 0; font-size: 0.88rem;
}
.dark .empty-cart { color: #94a3b8; }

/* ====================================
   15. WOOCOMMERCE
   ==================================== */
/* Notificaciones */
@keyframes slideIn {
    from { transform: translateX(100%); opacity: 0; }
    to   { transform: translateX(0); opacity: 1; }
}

.woocommerce-message,
.woocommerce-error,
.woocommerce-info {
    padding: 1rem 1.5rem;
    margin-bottom: 1.5rem;
    border-radius: var(--radius);
    list-style: none;
    font-size: 0.9rem;
}

.woocommerce-message { background: var(--color-primary); color: white; }
.woocommerce-error   { background: #ef4444; color: white; }
.woocommerce-info    { background: #3b82f6; color: white; }

.woocommerce-message .button {
    background: white;
    color: var(--color-primary);
    margin-left: 1rem;
    padding: 0.2rem 0.85rem;
    border-radius: 4px;
    font-weight: 600;
}

/* Carrito página */
.woocommerce-cart .quantity {
    display: flex;
    align-items: center;
    border: 1px solid #e2e8f0;
    border-radius: var(--radius);
    overflow: hidden;
}

.dark .woocommerce-cart .quantity { border-color: #334155; }

.woocommerce-cart .quantity input[type="number"] {
    width: 50px; text-align: center;
    border: none; background: transparent;
    font-weight: 500; color: #1e293b;
    -moz-appearance: textfield;
}

.woocommerce-cart .quantity input[type="number"]::-webkit-outer-spin-button,
.woocommerce-cart .quantity input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none; margin: 0;
}

.dark .woocommerce-cart .quantity input[type="number"] { color: #f1f5f9; }

.woocommerce-cart .cart_totals { float: none; width: 100%; }

.woocommerce-cart .cart_totals table.shop_table {
    border: none; background: transparent;
}

.woocommerce-cart .cart_totals th,
.woocommerce-cart .cart_totals td { border: none; padding: 0.5rem 0; }

.woocommerce-cart .cart_totals tr.order-total th,
.woocommerce-cart .cart_totals tr.order-total td {
    border-top: 1px solid #e2e8f0; padding-top: 1rem;
}

.woocommerce-cart .coupon { display: flex; gap: 0.5rem; align-items: center; }

/* ====================================
   16. PÁGINAS INTERNAS
   ==================================== */
/* page.php / single.php */
.page-main, .single-main, .archive-main,
.search-results-main, .error-main, .single-product-main {
    padding: 3rem 0 6rem;
    min-height: 60vh;
}

.page-header, .archive-header, .search-results-header {
    margin-bottom: 3rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid var(--color-border);
}

.page-title, .archive-title, .search-results-title {
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    margin-bottom: 0.5rem;
    color: var(--color-text);
}

.page-content, .article-content { line-height: 1.8; }

.article-header { margin-bottom: 2rem; }
.article-title  { font-size: clamp(1.75rem, 3.5vw, 2.75rem); margin-bottom: 1rem; }

.article-meta {
    display: flex; gap: 1.5rem; flex-wrap: wrap;
    color: var(--color-text-muted); font-size: 0.85rem;
}

.article-meta span { display: flex; align-items: center; gap: 0.3rem; }
.article-meta .material-icons-outlined { font-size: 1rem; }

/* Blog grid */
.blog-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
}
@media (min-width: 640px)  { .blog-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .blog-grid { grid-template-columns: repeat(3, 1fr); } }

.blog-card {
    background: white;
    border-radius: var(--radius-lg);
    overflow: hidden;
    box-shadow: var(--shadow-sm);
    border: 1px solid rgba(0,0,0,0.04);
    transition: transform 0.3s, box-shadow 0.3s;
}

.dark .blog-card { background: #1c1917; }
.blog-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-xl); }

.blog-card-image { width: 100%; height: 200px; object-fit: cover; display: block; }

.blog-card-body { padding: 1.5rem; }

.blog-card-meta {
    display: flex; gap: 1rem; align-items: center;
    font-size: 0.75rem; color: var(--color-text-muted);
    margin-bottom: 0.75rem;
}

.blog-card-title { font-size: 1.1rem; margin-bottom: 0.5rem; }
.blog-card-title a { color: var(--color-text); transition: color 0.2s; }
.blog-card-title a:hover { color: var(--color-primary); }
.blog-card-excerpt { font-size: 0.875rem; color: var(--color-text-muted); line-height: 1.6; margin-bottom: 1rem; }

.blog-card-link {
    display: inline-flex; align-items: center; gap: 0.25rem;
    color: var(--color-primary); font-weight: 600; font-size: 0.85rem;
    transition: gap 0.2s;
}
.blog-card-link:hover { gap: 0.5rem; }

/* Paginación */
.pagination-nav { margin-top: 3rem; display: flex; justify-content: center; }

.page-numbers {
    display: flex; align-items: center; justify-content: center;
    width: 40px; height: 40px;
    border-radius: var(--radius);
    font-weight: 600; font-size: 0.875rem;
    color: #475569; transition: all 0.2s;
}

.dark .page-numbers { color: #94a3b8; }
.page-numbers.current { background: var(--color-primary); color: white; }
.page-numbers:hover:not(.current) { background: #f1f5f9; }
.dark .page-numbers:hover:not(.current) { background: #1e293b; }

/* Sin resultados / 404 */
.no-results, .error-wrapper {
    text-align: center;
    padding: 5rem 2rem;
    max-width: 500px;
    margin: 0 auto;
}

.no-results-icon, .error-icon {
    font-size: 4rem !important;
    color: #cbd5e1;
    display: block;
    margin-bottom: 1rem;
}

.error-code {
    display: block;
    font-size: 6rem;
    font-weight: 800;
    color: var(--color-primary);
    opacity: 0.2;
    line-height: 1;
    margin-bottom: -1rem;
}

.error-title { font-size: 1.75rem; margin-bottom: 1rem; }
.error-description { color: var(--color-text-muted); margin-bottom: 2rem; line-height: 1.7; }

.error-actions { display: flex; gap: 1rem; justify-content: center; flex-wrap: wrap; margin-bottom: 2.5rem; }

.btn-outline-green {
    display: inline-flex;
    align-items: center; gap: 0.5rem;
    padding: 0.9rem 2rem;
    color: var(--color-primary);
    border: 2px solid var(--color-primary);
    border-radius: var(--radius);
    font-weight: 700; font-size: 0.92rem;
    transition: all 0.25s;
}
.btn-outline-green:hover { background: var(--color-primary); color: white; }

/* ====================================
   18. MISC
   ==================================== */
.sticky { position: sticky; top: calc(var(--header-h) + 1.5rem); }

input[type="checkbox"],
input[type="radio"] { accent-color: var(--color-primary); }

input[type="range"] { accent-color: var(--color-primary); }

/* Prose (contenido de blog/páginas) */
.prose { line-height: 1.8; }
.prose h2, .prose h3, .prose h4 { margin: 2rem 0 1rem; }
.prose p  { margin-bottom: 1.25rem; color: var(--color-text-muted); }
.prose a  { color: var(--color-primary); text-decoration: underline; }
.prose ul, .prose ol { padding-left: 1.5rem; margin-bottom: 1.25rem; }
.prose li { margin-bottom: 0.5rem; }
.prose img { border-radius: var(--radius-lg); margin: 1.5rem 0; }
.prose blockquote {
    border-left: 4px solid var(--color-primary);
    padding: 0.75rem 1.5rem;
    background: rgba(74,103,65,0.05);
    border-radius: 0 var(--radius) var(--radius) 0;
    margin: 1.5rem 0;
    font-style: italic;
}

/* Responsive final */
@media (max-width: 768px) {
    .main-navigation { display: none !important; }
    .mobile-menu-toggle { display: flex !important; }
}

/* ====================================
   19. ESTILOS TIENDA WOOCOMMERCE
   Clases exactas generadas por WooCommerce 10.5.2
   ==================================== */

/* Reset estilos base de WooCommerce que interfieren */
.woocommerce ul.products::after,
.woocommerce ul.products::before { display: none !important; }

/* Contenedor principal */
.woocommerce-main {
    padding: 3rem 0 6rem;
    min-height: 60vh;
}

/* Breadcrumb */
.woocommerce-breadcrumb {
    font-size: 0.82rem;
    color: var(--color-text-muted);
    margin-bottom: 2rem;
    display: flex;
    align-items: center;
    gap: 0.35rem;
    flex-wrap: wrap;
}

.woocommerce-breadcrumb a {
    color: var(--color-text-muted);
    transition: color 0.2s;
}

.woocommerce-breadcrumb a:hover { color: var(--color-primary); }

/* Título de la tienda */
.woocommerce-page-title {
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    font-weight: 800;
    color: var(--color-text);
    margin-bottom: 1.5rem;
    padding-bottom: 1.25rem;
    border-bottom: 1px solid var(--color-border);
    letter-spacing: -0.02em;
}

/* Barra de resultados y ordenamiento */
.woocommerce-result-count {
    color: var(--color-text-muted);
    font-size: 0.82rem;
    margin-bottom: 1.5rem;
}

.woocommerce-ordering {
    float: none !important;
    margin-bottom: 1.5rem;
}

.woocommerce-ordering select {
    padding: 0.6rem 1rem;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius);
    font-family: var(--font-sans);
    font-size: 0.875rem;
    background: white;
    color: var(--color-text);
    cursor: pointer;
    transition: border-color 0.25s;
}

.dark .woocommerce-ordering select {
    background: #1c1917;
    color: white;
    border-color: #44403c;
}

/* ===== GRID DE PRODUCTOS ===== */
.woocommerce ul.products,
ul.products {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 1.5rem !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 0 3rem 0 !important;
    float: none !important;
    width: 100% !important;
    clear: both !important;
}

@media (min-width: 768px) {
    .woocommerce ul.products,
    ul.products {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}

@media (min-width: 1024px) {
    .woocommerce ul.products,
    ul.products {
        grid-template-columns: repeat(4, 1fr) !important;
    }
}

/* ===== TARJETA DE PRODUCTO ===== */
.woocommerce ul.products li.product,
ul.products li.product {
    background: white !important;
    border-radius: var(--radius-xl) !important;
    overflow: hidden !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06) !important;
    border: 1px solid rgba(0,0,0,0.05) !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease !important;
    margin: 0 !important;
    float: none !important;
    width: auto !important;
    padding: 0 !important;
    position: relative !important;
    display: flex !important;
    flex-direction: column !important;
}

.dark .woocommerce ul.products li.product,
.dark ul.products li.product {
    background: #1c1917 !important;
    border-color: rgba(255,255,255,0.05) !important;
}

.woocommerce ul.products li.product:hover,
ul.products li.product:hover {
    transform: translateY(-5px) !important;
    box-shadow: 0 16px 40px rgba(0,0,0,0.13) !important;
}

/* ===== LINK CONTENEDOR (imagen + título + precio) ===== */
/* WooCommerce mete imagen+título+precio dentro del <a> */
.woocommerce ul.products li.product .woocommerce-LoopProduct-link,
.woocommerce ul.products li.product .woocommerce-loop-product__link,
ul.products li.product .woocommerce-LoopProduct-link {
    display: block !important;
    text-decoration: none !important;
    flex: 1 !important;
}

/* ===== IMAGEN ===== */
.woocommerce ul.products li.product img,
ul.products li.product img {
    width: 100% !important;
    height: 220px !important;
    object-fit: cover !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    transition: transform 0.5s ease !important;
    border-radius: 0 !important;
}

.woocommerce ul.products li.product:hover img,
ul.products li.product:hover img {
    transform: scale(1.06) !important;
}

/* Overflow en la imagen para el zoom */
.woocommerce ul.products li.product .woocommerce-LoopProduct-link {
    overflow: hidden !important;
}

/* ===== TÍTULO ===== */
.woocommerce ul.products li.product .woocommerce-loop-product__title,
ul.products li.product h2.woocommerce-loop-product__title {
    font-family: var(--font-display) !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    color: var(--color-text) !important;
    padding: 1rem 1rem 0.25rem !important;
    margin: 0 !important;
    line-height: 1.3 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
    transition: color 0.2s !important;
}

.woocommerce ul.products li.product:hover .woocommerce-loop-product__title {
    color: var(--color-primary) !important;
}

/* ===== PRECIO ===== */
.woocommerce ul.products li.product .price,
ul.products li.product .price {
    display: block !important;
    padding: 0.25rem 1rem 0.85rem !important;
    font-weight: 700 !important;
    font-size: 1.05rem !important;
    color: var(--color-primary) !important;
    margin: 0 !important;
    line-height: 1.4 !important;
}

.woocommerce ul.products li.product .price .woocommerce-Price-amount,
ul.products li.product .price .woocommerce-Price-amount {
    color: var(--color-primary) !important;
    font-weight: 700 !important;
}

.woocommerce ul.products li.product .price del,
ul.products li.product .price del {
    color: #94a3b8 !important;
    font-size: 0.8rem !important;
    font-weight: 400 !important;
    text-decoration: line-through !important;
    margin-right: 0.35rem !important;
    opacity: 0.8 !important;
}

.woocommerce ul.products li.product .price ins,
ul.products li.product .price ins {
    text-decoration: none !important;
    font-weight: 700 !important;
}

/* Símbolo de moneda */
.woocommerce-Price-currencySymbol {
    font-size: 0.8em !important;
    font-weight: 600 !important;
}

/* ===== BADGE OFERTA ===== */
.woocommerce ul.products li.product .onsale,
ul.products li.product .onsale {
    position: absolute !important;
    top: 0.75rem !important;
    left: 0.75rem !important;
    right: auto !important;
    background: var(--color-secondary) !important;
    color: white !important;
    font-size: 0.6rem !important;
    font-weight: 700 !important;
    padding: 0.25rem 0.6rem !important;
    border-radius: 0.3rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    min-height: unset !important;
    line-height: 1.4 !important;
    z-index: 5 !important;
    border-radius: 0.3rem !important;
}

/* ===== BOTÓN AÑADIR AL CARRITO ===== */
/* Va fuera del <a>, directo en el <li> */
.woocommerce ul.products li.product .button.add_to_cart_button,
ul.products li.product a.button.add_to_cart_button,
.woocommerce ul.products li.product .button,
ul.products li.product .button {
    display: block !important;
    width: calc(100% - 2rem) !important;
    margin: 0 1rem 1rem !important;
    padding: 0.7rem 1rem !important;
    background: var(--color-primary) !important;
    color: white !important;
    border: none !important;
    border-radius: var(--radius) !important;
    font-family: var(--font-sans) !important;
    font-size: 0.82rem !important;
    font-weight: 700 !important;
    text-align: center !important;
    cursor: pointer !important;
    transition: background 0.25s ease !important;
    text-transform: none !important;
    letter-spacing: 0.01em !important;
    text-decoration: none !important;
    line-height: 1.4 !important;
}

.woocommerce ul.products li.product .button:hover,
ul.products li.product .button:hover {
    background: var(--color-primary-dark) !important;
    color: white !important;
    transform: none !important;
}

/* Estado "añadido" */
.woocommerce ul.products li.product .button.added,
ul.products li.product .button.added {
    background: var(--color-secondary) !important;
}

.woocommerce ul.products li.product .added_to_cart,
ul.products li.product .added_to_cart {
    display: block !important;
    text-align: center !important;
    font-size: 0.75rem !important;
    color: var(--color-primary) !important;
    padding: 0 1rem 0.75rem !important;
    text-decoration: none !important;
    font-weight: 600 !important;
}

/* ===== VALORACIONES ===== */
.woocommerce ul.products li.product .star-rating,
ul.products li.product .star-rating {
    padding: 0 1rem 0.25rem !important;
    margin: 0 !important;
    float: none !important;
    font-size: 0.85rem !important;
    overflow: hidden !important;
    position: relative !important;
    color: #facc15 !important;
}

/* ===== PAGINACIÓN ===== */
.woocommerce-pagination {
    margin-top: 3rem;
    text-align: center;
    clear: both;
}

.woocommerce-pagination ul {
    display: inline-flex !important;
    gap: 0.4rem !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    white-space: nowrap !important;
}

.woocommerce-pagination ul li { border: none !important; padding: 0 !important; }

.woocommerce-pagination ul li a,
.woocommerce-pagination ul li span {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 40px !important;
    height: 40px !important;
    border-radius: var(--radius) !important;
    font-size: 0.875rem !important;
    font-weight: 600 !important;
    color: var(--color-text-muted) !important;
    border: 1.5px solid var(--color-border) !important;
    transition: all 0.2s !important;
    text-decoration: none !important;
}

.woocommerce-pagination ul li a:hover {
    background: var(--color-primary-light) !important;
    border-color: var(--color-primary) !important;
    color: var(--color-primary) !important;
}

.woocommerce-pagination ul li span.current {
    background: var(--color-primary) !important;
    border-color: var(--color-primary) !important;
    color: white !important;
}

/* ===== MENSAJES ===== */
.woocommerce-info {
    background: rgba(74,103,65,0.06) !important;
    border-left: 4px solid var(--color-primary) !important;
    color: var(--color-text) !important;
    padding: 1.25rem 1.5rem !important;
    border-radius: 0 var(--radius) var(--radius) 0 !important;
    font-size: 0.95rem !important;
    margin: 2rem 0 !important;
    list-style: none !important;
}

/* ====================================
   20. TIENDA — CLASES PROPIAS (shop-*)
   ==================================== */
.shop-main {
    padding: 2.5rem 0 6rem;
    min-height: 60vh;
}

.shop-header {
    margin-bottom: 2rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--color-border);
}

.shop-title {
    font-size: clamp(1.75rem, 3vw, 2.5rem);
    font-weight: 800;
    letter-spacing: -0.02em;
    color: var(--color-text);
    margin-bottom: 0.5rem;
}

/* Breadcrumb */
.shop-header .woocommerce-breadcrumb {
    font-size: 0.82rem;
    color: var(--color-text-muted);
}
.shop-header .woocommerce-breadcrumb a {
    color: var(--color-text-muted);
    transition: color 0.2s;
}
.shop-header .woocommerce-breadcrumb a:hover { color: var(--color-primary); }

/* Toolbar */
.shop-toolbar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 2rem;
    gap: 1rem;
    flex-wrap: wrap;
}

.shop-result-count {
    color: var(--color-text-muted);
    font-size: 0.85rem;
    margin: 0;
}

.shop-toolbar .woocommerce-ordering select {
    padding: 0.55rem 1rem;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius);
    font-family: var(--font-sans);
    font-size: 0.82rem;
    background: white;
    color: var(--color-text);
    cursor: pointer;
    outline: none;
    transition: border-color 0.25s;
}
.shop-toolbar .woocommerce-ordering select:focus {
    border-color: var(--color-primary);
}

/* ===== GRID ===== */
.shop-products-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.5rem;
    list-style: none;
    padding: 0; margin: 0 0 3rem 0;
}

@media (min-width: 768px) {
    .shop-products-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1024px) {
    .shop-products-grid { grid-template-columns: repeat(4, 1fr); }
}

/* ===== TARJETA ===== */
.shop-product-card {
    background: white;
    border-radius: var(--radius-xl);
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
    border: 1px solid rgba(0,0,0,0.05);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    position: relative;
    display: flex;
    flex-direction: column;
}

.dark .shop-product-card {
    background: #1c1917;
    border-color: rgba(255,255,255,0.05);
}

.shop-product-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 16px 40px rgba(0,0,0,0.13);
}

/* Badge oferta */
.shop-badge-sale {
    position: absolute;
    top: 0.75rem; left: 0.75rem;
    background: var(--color-secondary);
    color: white;
    font-size: 0.6rem;
    font-weight: 700;
    padding: 0.2rem 0.55rem;
    border-radius: 0.3rem;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    z-index: 5;
}

/* Imagen */
.shop-card-image-wrap {
    display: block;
    overflow: hidden;
    aspect-ratio: 1;
    background: #f8f9fa;
}

.shop-card-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.5s ease;
}

.shop-product-card:hover .shop-card-image {
    transform: scale(1.06);
}

/* Body */
.shop-card-body {
    padding: 1rem 1rem 1.1rem;
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 0.25rem;
}

.shop-card-cat {
    color: var(--color-secondary);
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.shop-card-title {
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.3;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.shop-card-title a {
    color: var(--color-text);
    transition: color 0.2s;
}
.shop-card-title a:hover { color: var(--color-primary); }

/* Rating */
.shop-card-rating {
    display: flex;
    align-items: center;
    gap: 0.1rem;
    margin-top: 0.1rem;
}

.shop-card-rcount {
    font-size: 0.7rem;
    color: var(--color-text-muted);
    margin-left: 0.2rem;
}

/* Footer tarjeta */
.shop-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
    padding-top: 0.75rem;
}

/* Precio */
.shop-card-price {
    font-weight: 700;
    font-size: 1.05rem;
    color: var(--color-primary);
    line-height: 1.2;
}

.shop-card-price .woocommerce-Price-amount { color: var(--color-primary); font-weight: 700; }
.shop-card-price del { color: #94a3b8; font-size: 0.75rem; font-weight: 400; display: block; text-decoration: line-through; }
.shop-card-price ins { text-decoration: none; }

/* Botón carrito */
.shop-card-btn {
    width: 2.2rem; height: 2.2rem;
    background: var(--color-primary);
    color: white;
    border-radius: var(--radius);
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    transition: background 0.25s, transform 0.2s;
    text-decoration: none;
}

.shop-card-btn:hover {
    background: var(--color-primary-dark);
    transform: scale(1.08);
    color: white;
}

.shop-card-btn .material-icons-outlined { font-size: 1.1rem; }

.shop-card-out {
    font-size: 0.7rem;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

/* Vacío */
.shop-empty {
    text-align: center;
    padding: 5rem 2rem;
    color: var(--color-text-muted);
}
.shop-empty .material-icons-outlined {
    font-size: 4rem !important;
    color: #cbd5e1;
    display: block;
    margin-bottom: 1rem;
}

/* Paginación */
.shop-pagination { margin-top: 2rem; }
.shop-pagination .woocommerce-pagination ul {
    display: inline-flex;
    gap: 0.4rem;
    list-style: none;
    padding: 0; margin: 0;
    border: none;
}
.shop-pagination .woocommerce-pagination ul li { border: none; padding: 0; }
.shop-pagination .woocommerce-pagination ul li a,
.shop-pagination .woocommerce-pagination ul li span {
    display: flex; align-items: center; justify-content: center;
    width: 40px; height: 40px;
    border-radius: var(--radius);
    font-size: 0.875rem; font-weight: 600;
    color: var(--color-text-muted);
    border: 1.5px solid var(--color-border);
    transition: all 0.2s;
    text-decoration: none;
}
.shop-pagination .woocommerce-pagination ul li a:hover {
    background: var(--color-primary-light);
    border-color: var(--color-primary);
    color: var(--color-primary);
}
.shop-pagination .woocommerce-pagination ul li span.current {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: white;
}

/* ====================================
   21. NOTIFICACIONES WOOCOMMERCE
   ==================================== */

/* Contenedor de mensajes — fijo arriba */
.woocommerce-notices-wrapper {
    position: fixed;
    top: calc(var(--header-h) + 1rem);
    right: 1.5rem;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    max-width: 380px;
    width: calc(100vw - 3rem);
}

/* Base de todos los mensajes */
.woocommerce-notices-wrapper .woocommerce-message,
.woocommerce-notices-wrapper .woocommerce-error,
.woocommerce-notices-wrapper .woocommerce-info {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.85rem 1.25rem;
    border-radius: var(--radius-lg);
    font-size: 0.85rem;
    font-weight: 500;
    list-style: none;
    margin: 0;
    box-shadow: 0 8px 24px rgba(0,0,0,0.12);
    animation: noticeSlideIn 0.3s ease;
}

@keyframes noticeSlideIn {
    from { transform: translateX(120%); opacity: 0; }
    to   { transform: translateX(0);   opacity: 1; }
}

/* Éxito — verde */
.woocommerce-notices-wrapper .woocommerce-message {
    background: var(--color-primary);
    color: white;
    border: none;
}

/* Error — rojo */
.woocommerce-notices-wrapper .woocommerce-error {
    background: #ef4444;
    color: white;
    border: none;
}

/* Info — azul */
.woocommerce-notices-wrapper .woocommerce-info {
    background: #3b82f6;
    color: white;
    border: none;
}

/* Enlace "Ver carrito" dentro del mensaje */
.woocommerce-notices-wrapper .woocommerce-message a,
.woocommerce-notices-wrapper .woocommerce-error a,
.woocommerce-notices-wrapper .woocommerce-info a {
    color: rgba(255,255,255,0.9);
    font-weight: 700;
    text-decoration: underline;
    white-space: nowrap;
    font-size: 0.8rem;
}

.woocommerce-notices-wrapper .woocommerce-message a:hover,
.woocommerce-notices-wrapper .woocommerce-error a:hover,
.woocommerce-notices-wrapper .woocommerce-info a:hover {
    color: white;
}

/* También aplica cuando los mensajes están en el flujo (no fixed) */
.woocommerce-message,
.woocommerce-error,
.woocommerce-info {
    padding: 1rem 1.25rem;
    border-radius: var(--radius-lg);
    font-size: 0.875rem;
    list-style: none;
    margin: 0 0 1rem 0;
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

.woocommerce-message { background: var(--color-primary); color: white; border: none; }
.woocommerce-error   { background: #ef4444; color: white; border: none; }
.woocommerce-info    { background: #3b82f6; color: white; border: none; }

.woocommerce-message a,
.woocommerce-error a,
.woocommerce-info a {
    color: rgba(255,255,255,0.9);
    font-weight: 700;
    text-decoration: underline;
}

/* ====================================
   22. TIENDA — DISEÑO COMPLETO (tienda-* / tprod-*)
   ==================================== */

.tienda-main {
    padding: 2rem 0 6rem;
    min-height: 70vh;
    background: var(--color-background);
}

/* Layout sidebar + content */
.tienda-wrapper {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 1.5rem;
    display: flex;
    gap: 2.5rem;
    align-items: flex-start;
}

/* ===== SIDEBAR ===== */
.tienda-sidebar {
    width: 240px;
    flex-shrink: 0;
    position: sticky;
    top: calc(var(--header-h) + 1.5rem);
    display: flex;
    flex-direction: column;
    gap: 2rem;
}

@media (max-width: 900px) {
    .tienda-sidebar { display: none; }
    .tienda-wrapper { padding: 0 1rem; }
}

.filtro-grupo { display: flex; flex-direction: column; gap: 0.85rem; }

.filtro-titulo {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    color: var(--color-text);
}

.filtro-titulo .material-icons-outlined {
    font-size: 1rem;
    color: var(--color-primary);
}

/* Links de categoría */
.filtro-lista {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
}

.filtro-cat-link {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 0.5rem 0.65rem;
    border-radius: var(--radius);
    font-size: 0.82rem;
    color: var(--color-text-muted);
    font-weight: 500;
    transition: all 0.2s;
    text-decoration: none;
}

.filtro-cat-link:hover,
.filtro-cat-link.active {
    background: rgba(74,103,65,0.08);
    color: var(--color-primary);
    font-weight: 600;
}

.filtro-cat-dot {
    width: 7px; height: 7px;
    border-radius: 50%;
    background: var(--color-border);
    flex-shrink: 0;
    transition: background 0.2s;
}

.filtro-cat-link.active .filtro-cat-dot,
.filtro-cat-link:hover .filtro-cat-dot {
    background: var(--color-primary);
}

.filtro-cat-count {
    margin-left: auto;
    font-size: 0.68rem;
    color: var(--color-text-muted);
    background: rgba(0,0,0,0.05);
    padding: 0.1rem 0.45rem;
    border-radius: 9999px;
}

.dark .filtro-cat-count { background: rgba(255,255,255,0.07); }

/* Precio range */
.filtro-precio {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.filtro-rango {
    width: 100%;
    accent-color: var(--color-primary);
    cursor: pointer;
}

.filtro-precio-labels {
    display: flex;
    justify-content: space-between;
    font-size: 0.75rem;
    color: var(--color-text-muted);
}

.filtro-precio-labels strong { color: var(--color-text); }

.filtro-aplicar-btn {
    display: block;
    text-align: center;
    padding: 0.5rem;
    background: var(--color-primary);
    color: white;
    border-radius: var(--radius);
    font-size: 0.78rem;
    font-weight: 700;
    transition: background 0.2s;
}

.filtro-aplicar-btn:hover { background: var(--color-primary-dark); color: white; }

/* Orden links */
.filtro-orden-link {
    display: block;
    padding: 0.45rem 0.65rem;
    border-radius: var(--radius);
    font-size: 0.82rem;
    color: var(--color-text-muted);
    font-weight: 500;
    transition: all 0.2s;
    text-decoration: none;
}

.filtro-orden-link:hover,
.filtro-orden-link.active {
    background: rgba(74,103,65,0.08);
    color: var(--color-primary);
    font-weight: 600;
}

/* Reset */
.filtro-reset-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    padding: 0.65rem;
    border: 1.5px solid var(--color-border);
    border-radius: var(--radius);
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--color-text-muted);
    transition: all 0.2s;
    text-decoration: none;
}

.filtro-reset-btn:hover {
    border-color: var(--color-primary);
    color: var(--color-primary);
    background: rgba(74,103,65,0.05);
}

.filtro-reset-btn .material-icons-outlined { font-size: 0.95rem; }

/* ===== CONTENT ===== */
.tienda-content { flex: 1; min-width: 0; }

.tienda-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 2rem;
    gap: 1rem;
    flex-wrap: wrap;
}

.tienda-titulo {
    font-size: clamp(1.6rem, 3vw, 2.25rem);
    font-weight: 900;
    letter-spacing: -0.03em;
    color: var(--color-text);
    margin-bottom: 0.2rem;
}

.tienda-subtitulo {
    font-size: 0.82rem;
    color: var(--color-text-muted);
    margin: 0;
}

/* Toggle vista */
.tienda-vista-toggle {
    display: flex;
    gap: 0.3rem;
    background: rgba(0,0,0,0.04);
    padding: 0.3rem;
    border-radius: var(--radius);
}

.dark .tienda-vista-toggle { background: rgba(255,255,255,0.06); }

.vista-btn {
    width: 2rem; height: 2rem;
    display: flex; align-items: center; justify-content: center;
    background: none; border: none; cursor: pointer;
    border-radius: calc(var(--radius) - 2px);
    color: var(--color-text-muted);
    transition: all 0.2s;
}

.vista-btn.active {
    background: white;
    color: var(--color-primary);
    box-shadow: 0 1px 4px rgba(0,0,0,0.1);
}

.dark .vista-btn.active { background: #1c1917; }
.vista-btn .material-icons-outlined { font-size: 1.1rem; }

/* ===== GRID DE PRODUCTOS ===== */
.tienda-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1.25rem;
    list-style: none;
    padding: 0; margin: 0 0 3rem;
}

@media (min-width: 640px)  { .tienda-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 900px)  { .tienda-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1200px) { .tienda-grid { grid-template-columns: repeat(3, 1fr); } }

/* Vista lista */
.tienda-grid.vista-lista {
    grid-template-columns: 1fr !important;
}

.tienda-grid.vista-lista .tprod-card {
    flex-direction: row;
    max-height: 180px;
}

.tienda-grid.vista-lista .tprod-img-wrap {
    width: 180px;
    flex-shrink: 0;
    aspect-ratio: auto;
    height: 180px;
}

.tienda-grid.vista-lista .tprod-body {
    padding: 1.25rem 1.5rem;
}

/* ===== TARJETA DE PRODUCTO ===== */
.tprod-card {
    background: white;
    border-radius: var(--radius-xl);
    overflow: hidden;
    border: 1px solid rgba(0,0,0,0.05);
    box-shadow: 0 1px 8px rgba(0,0,0,0.05);
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
    position: relative;
    display: flex;
    flex-direction: column;
    cursor: pointer;
}

.dark .tprod-card {
    background: #1a1f1a;
    border-color: rgba(255,255,255,0.06);
}

.tprod-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 32px rgba(74,103,65,0.1), 0 4px 12px rgba(0,0,0,0.08);
    border-color: rgba(74,103,65,0.2);
}

/* Badges */
.tprod-badges {
    position: absolute;
    top: 0.75rem; left: 0.75rem;
    z-index: 5;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.tprod-badge {
    font-size: 0.6rem;
    font-weight: 900;
    padding: 0.2rem 0.65rem;
    border-radius: 9999px;
    text-transform: uppercase;
    letter-spacing: 0.07em;
}

.tprod-badge--oferta {
    background: var(--color-secondary);
    color: white;
}

.tprod-badge--nuevo {
    background: rgba(74,103,65,0.15);
    color: var(--color-primary);
    backdrop-filter: blur(4px);
}

/* Wishlist */
.tprod-wishlist {
    position: absolute;
    top: 0.75rem; right: 0.75rem;
    z-index: 5;
    width: 2rem; height: 2rem;
    background: rgba(255,255,255,0.88);
    backdrop-filter: blur(6px);
    border: none; border-radius: 9999px;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer;
    opacity: 0;
    transform: translateY(-4px);
    transition: opacity 0.25s, transform 0.25s, color 0.2s;
    color: var(--color-text-muted);
    box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.tprod-card:hover .tprod-wishlist {
    opacity: 1;
    transform: translateY(0);
}

.tprod-wishlist:hover { color: #ef4444; }
.tprod-wishlist .material-icons-outlined { font-size: 1rem; }

/* Imagen */
.tprod-img-wrap {
    display: block;
    overflow: hidden;
    aspect-ratio: 1;
    background: #f6f8f6;
}

.dark .tprod-img-wrap { background: #1e241e; }

.tprod-img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.55s ease;
}

.tprod-card:hover .tprod-img { transform: scale(1.08); }

/* Cuerpo */
.tprod-body {
    padding: 1rem 1.1rem 1.1rem;
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: 0.3rem;
}

.tprod-cat {
    font-size: 0.62rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--color-secondary);
}

.tprod-title {
    font-size: 0.9rem;
    font-weight: 700;
    line-height: 1.3;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.tprod-title a {
    color: var(--color-text);
    transition: color 0.2s;
}

.tprod-title a:hover { color: var(--color-primary); }

.tprod-desc {
    font-size: 0.75rem;
    color: var(--color-text-muted);
    line-height: 1.5;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Rating */
.tprod-rating {
    display: flex;
    align-items: center;
    gap: 0.05rem;
    margin-top: 0.1rem;
}

.tprod-star {
    font-size: 0.85rem !important;
    color: #d1d5db;
}

.tprod-star.filled { color: #facc15; }
.tprod-rcount { font-size: 0.68rem; color: var(--color-text-muted); margin-left: 0.2rem; }

/* Footer tarjeta */
.tprod-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
    padding-top: 0.85rem;
    gap: 0.5rem;
}

/* Precio */
.tprod-price {
    font-weight: 900;
    font-size: 1.1rem;
    color: var(--color-text);
    line-height: 1.1;
}

.tprod-price .woocommerce-Price-amount { color: var(--color-text); font-weight: 900; }
.tprod-price del { color: #94a3b8; font-size: 0.72rem; font-weight: 400; display: block; }
.tprod-price ins { text-decoration: none; }

/* Botón añadir */
.tprod-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    padding: 0.5rem 0.9rem;
    background: var(--color-primary);
    color: white !important;
    border-radius: var(--radius);
    font-size: 0.78rem;
    font-weight: 700;
    transition: background 0.2s, transform 0.15s;
    text-decoration: none;
    white-space: nowrap;
    border: none;
    cursor: pointer;
}

.tprod-btn:hover {
    background: var(--color-primary-dark);
    transform: scale(1.04);
    color: white !important;
}

.tprod-btn .material-icons-outlined { font-size: 0.95rem; }

.tprod-agotado {
    font-size: 0.7rem;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

/* Vacío */
.tienda-vacia {
    text-align: center;
    padding: 5rem 2rem;
    color: var(--color-text-muted);
}

.tienda-vacia .material-icons-outlined {
    font-size: 3.5rem !important;
    color: #cbd5e1;
    display: block;
    margin-bottom: 1rem;
}

.tienda-vacia h3 { margin-bottom: 0.5rem; }
.tienda-vacia p  { margin-bottom: 1.5rem; font-size: 0.9rem; }

/* ===== PAGINACIÓN ===== */
.tienda-paginacion { margin-top: 2rem; display: flex; justify-content: center; }

.tienda-paginacion .woocommerce-pagination ul {
    display: inline-flex !important;
    gap: 0.35rem !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
}

.tienda-paginacion .woocommerce-pagination ul li { border: none !important; padding: 0 !important; }

.tienda-paginacion .woocommerce-pagination ul li a,
.tienda-paginacion .woocommerce-pagination ul li span {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 40px !important; height: 40px !important;
    border-radius: var(--radius) !important;
    font-size: 0.875rem !important;
    font-weight: 700 !important;
    color: var(--color-text-muted) !important;
    border: 1.5px solid var(--color-border) !important;
    transition: all 0.2s !important;
    text-decoration: none !important;
}

.tienda-paginacion .woocommerce-pagination ul li a:hover {
    background: rgba(74,103,65,0.08) !important;
    border-color: var(--color-primary) !important;
    color: var(--color-primary) !important;
}

.tienda-paginacion .woocommerce-pagination ul li span.current {
    background: var(--color-primary) !important;
    border-color: var(--color-primary) !important;
    color: white !important;
}

/* Responsive sidebar toggle en móvil */
@media (max-width: 900px) {
    .tienda-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 480px) {
    .tienda-grid {
        grid-template-columns: 1fr !important;
    }
}

/* ====================================
   23. CATÁLOGO NUEVO DISEÑO (cat-* / ccard-*)
   ==================================== */

.cat-main {
    padding: 1.5rem 0 4rem;
    min-height: 70vh;
    background: #f9faf7;
}
.dark .cat-main { background: #0f130f; }

.cat-container {
    max-width: 1300px;
    margin: 0 auto;
    padding: 0 1.25rem;
}
@media (max-width: 480px) { .cat-container { padding: 0 0.75rem; } }

/* ===== PALETA BURBUJAS ===== */
.cat-bubble.cb-naranja     { --cb-bg: #fff3e0; --cb-txt: #bf5000; --cb-border: #e8a060; }
.cat-bubble.cb-verde-claro { --cb-bg: #e8f5e2; --cb-txt: #2e6b22; --cb-border: #72b364; }
.cat-bubble.cb-verde       { --cb-bg: #e0f2e9; --cb-txt: #1b5e3b; --cb-border: #4caf82; }
.cat-bubble.cb-rojo        { --cb-bg: #fce4ec; --cb-txt: #b71c1c; --cb-border: #e57373; }
.cat-bubble.cb-rosa        { --cb-bg: #fce4f5; --cb-txt: #880e4f; --cb-border: #f06292; }
.cat-bubble.cb-azul        { --cb-bg: #e3f2fd; --cb-txt: #0d47a1; --cb-border: #64b5f6; }
.cat-bubble.cb-morado      { --cb-bg: #ede7f6; --cb-txt: #4527a0; --cb-border: #9575cd; }
.cat-bubble.cb-celeste     { --cb-bg: #e0f7fa; --cb-txt: #006064; --cb-border: #4dd0e1; }
.cat-bubble.cb-amarillo    { --cb-bg: #fffde7; --cb-txt: #e65100; --cb-border: #ffcc02; }
.cat-bubble.cb-gris        { --cb-bg: #f1f5f9; --cb-txt: #334155; --cb-border: #94a3b8; }

/* ===== BURBUJAS ===== */
.cat-bubbles {
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    gap: 0.5rem;
    margin-bottom: 1.75rem;
    padding: 0.25rem 0 0.6rem;
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.cat-bubbles::-webkit-scrollbar { display: none; }

@media (min-width: 860px) {
    .cat-bubbles {
        flex-wrap: wrap;
        justify-content: center;
        overflow-x: visible;
        gap: 0.6rem;
    }
}

.cat-bubble {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.4rem;
    text-decoration: none;
    flex-shrink: 0;
    padding: 0.7rem 1.1rem 0.55rem;
    border-radius: 1.1rem;
    border: 1.5px solid transparent;
    transition: all 0.22s ease;
    background: var(--cb-bg, #f1f5f9);
    min-width: 4.5rem;
    cursor: pointer;
}

.cat-bubble:hover,
.cat-bubble.active {
    border-color: var(--cb-border, #94a3b8);
    box-shadow: 0 4px 16px rgba(0,0,0,0.1);
    transform: translateY(-2px);
}

.cat-bubble.active {
    box-shadow: 0 4px 16px rgba(0,0,0,0.14);
}

.cat-bubble-icon {
    width: 2.4rem; height: 2.4rem;
    border-radius: 9999px;
    background: rgba(255,255,255,0.65);
    display: flex; align-items: center; justify-content: center;
}

.cat-bubble-icon .material-icons-outlined {
    font-size: 1.2rem;
    color: var(--cb-txt, #334155);
}

.cat-bubble-label {
    font-size: 0.56rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.07em;
    color: var(--cb-txt, #334155);
    text-align: center;
    line-height: 1.25;
    max-width: 5.5rem;
}

/* ===== HEADER ===== */
.cat-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1.25rem;
    gap: 0.75rem;
    flex-wrap: wrap;
}
.cat-titulo {
    font-size: clamp(1.25rem, 2.5vw, 1.65rem);
    font-weight: 900;
    letter-spacing: -0.03em;
    color: var(--color-text);
    margin: 0 0 0.15rem;
    line-height: 1.15;
}
.cat-subtitulo { font-size: 0.75rem; color: var(--color-text-muted); margin: 0; }

.cat-sort-wrap {
    display: flex; align-items: center; gap: 0.5rem;
    background: white; padding: 0.4rem 0.75rem;
    border-radius: 0.65rem;
    box-shadow: 0 1px 5px rgba(0,0,0,0.06);
    border: 1px solid rgba(0,0,0,0.05);
    flex-shrink: 0;
}
.dark .cat-sort-wrap { background: #1c1917; border-color: #3f3f46; }
.cat-sort-label { font-size: 0.7rem; font-weight: 600; color: var(--color-text-muted); white-space: nowrap; }
.cat-sort-wrap select,
.cat-sort-wrap .woocommerce-ordering select {
    border: none !important; background: transparent !important;
    font-size: 0.75rem !important; font-weight: 700 !important;
    color: var(--color-text) !important; cursor: pointer !important;
    outline: none !important; padding: 0 1rem 0 0 !important; box-shadow: none !important;
}
.cat-sort-wrap .woocommerce-ordering { margin: 0 !important; float: none !important; }

/* ===== GRID ===== */
.cat-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
    list-style: none; padding: 0; margin: 0 0 2.5rem;
}
@media (min-width: 540px)  { .cat-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 860px)  { .cat-grid { grid-template-columns: repeat(4, 1fr); gap: 1rem; } }
@media (min-width: 1100px) { .cat-grid { grid-template-columns: repeat(5, 1fr); } }

/* ===== CARD ===== */
.ccard {
    background: white;
    border-radius: 1rem;
    padding: 0.5rem 0.5rem 0.65rem;
    box-shadow: 0 1px 4px rgba(0,0,0,0.05), 0 0 0 1px rgba(0,0,0,0.03);
    display: flex; flex-direction: column;
    transition: box-shadow 0.3s, transform 0.3s;
    position: relative;
}
.dark .ccard { background: #1a201a; box-shadow: 0 1px 4px rgba(0,0,0,0.2), 0 0 0 1px rgba(255,255,255,0.04); }
.ccard:hover {
    box-shadow: 0 8px 28px rgba(74,103,65,0.12), 0 2px 8px rgba(0,0,0,0.06);
    transform: translateY(-3px);
}

/* IMAGEN — contain para ver producto completo, fondo neutro */
.ccard-img-wrap {
    position: relative;
    overflow: hidden;
    border-radius: 0.65rem;
    margin-bottom: 0.6rem;
    background: #f4f6f2;
    height: 185px;
}
@media (max-width: 539px)  { .ccard-img-wrap { height: 170px; } }
@media (min-width: 860px)  { .ccard-img-wrap { height: 195px; } }
@media (min-width: 1100px) { .ccard-img-wrap { height: 180px; } }

.dark .ccard-img-wrap { background: #1e241e; }

/* fix enlace interno WooCommerce */
.ccard-img-wrap > a {
    display: block;
    width: 100%;
    height: 100%;
}

.ccard-img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    display: block;
    transition: transform 0.5s ease;
    /* padding para que no quede pegado al borde */
    padding: 0.5rem;
    box-sizing: border-box;
}
.ccard:hover .ccard-img { transform: scale(1.07); }

/* Wishlist */
.ccard-wish {
    position: absolute; top: 0.5rem; right: 0.5rem;
    width: 1.75rem; height: 1.75rem;
    background: rgba(255,255,255,0.92); backdrop-filter: blur(4px);
    border: none; border-radius: 9999px;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; color: #94a3b8;
    box-shadow: 0 1px 5px rgba(0,0,0,0.1);
    transition: color 0.2s, opacity 0.2s, transform 0.2s;
    z-index: 2; opacity: 0; transform: scale(0.8);
}
.ccard:hover .ccard-wish { opacity: 1; transform: scale(1); }
.ccard-wish:hover { color: #ef4444; }
.ccard-wish .material-icons-outlined { font-size: 0.85rem; }

/* Badge */
.ccard-badge {
    position: absolute; top: 0.45rem; left: 0.45rem;
    font-size: 0.52rem; font-weight: 900;
    padding: 0.15rem 0.5rem; border-radius: 9999px;
    text-transform: uppercase; letter-spacing: 0.07em; z-index: 2;
}
.ccard-badge--sale { background: #c97b3a; color: white; }
.ccard-badge--new  { background: rgba(74,103,65,0.14); color: #2e6b22; }

/* Cuerpo */
.ccard-body {
    padding: 0 0.2rem 0.1rem;
    display: flex; flex-direction: column; flex: 1; gap: 0.18rem;
}
.ccard-cat {
    font-size: 0.52rem; font-weight: 800;
    text-transform: uppercase; letter-spacing: 0.08em;
    color: var(--color-primary);
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.ccard-title {
    font-size: 0.8rem; font-weight: 700; line-height: 1.25; margin: 0;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.ccard-title a { color: var(--color-text); transition: color 0.2s; }
.ccard-title a:hover { color: var(--color-primary); }
.ccard-desc {
    font-size: 0.68rem; color: var(--color-text-muted); line-height: 1.4; margin: 0;
    display: -webkit-box; -webkit-line-clamp: 1; -webkit-box-orient: vertical; overflow: hidden;
}

/* Precio + rating */
.ccard-meta {
    display: flex; align-items: center; justify-content: space-between;
    margin: 0.4rem 0 0.55rem; gap: 0.25rem;
}
.ccard-price-wrap { display: flex; flex-direction: column; }
.ccard-price-old { font-size: 0.6rem; color: #94a3b8; text-decoration: line-through; font-weight: 400; line-height: 1; }
.ccard-price { font-size: 1rem; font-weight: 900; color: var(--color-text); line-height: 1.1; }
.ccard-price .woocommerce-Price-amount { color: var(--color-text); font-weight: 900; }
.ccard-price ins { text-decoration: none; }
.ccard-price del { display: none; }

.ccard-rating {
    display: flex; align-items: center; gap: 0.1rem; flex-shrink: 0;
    background: #fefce8; padding: 0.15rem 0.4rem; border-radius: 9999px;
}
.dark .ccard-rating { background: rgba(245,158,11,0.1); }
.ccard-star { font-size: 0.75rem !important; color: #f59e0b; }
.ccard-rating-val { font-size: 0.68rem; font-weight: 700; color: #92400e; }
.dark .ccard-rating-val { color: #fbbf24; }

/* Botón */
.ccard-btn {
    display: flex; align-items: center; justify-content: center; gap: 0.3rem;
    width: 100%; padding: 0.6rem 0.5rem;
    background: var(--color-primary); color: white !important;
    border-radius: 0.6rem; font-size: 0.72rem; font-weight: 700;
    text-decoration: none; border: none; cursor: pointer;
    transition: background 0.2s, transform 0.15s, box-shadow 0.2s;
    box-shadow: 0 2px 8px rgba(74,103,65,0.25);
    margin-top: auto; letter-spacing: 0.01em;
}
.ccard-btn:hover { background: var(--color-primary-dark); transform: scale(1.02); box-shadow: 0 4px 14px rgba(74,103,65,0.35); color: white !important; }
.ccard-btn:active { transform: scale(0.97); }
.ccard-btn .material-icons-outlined { font-size: 0.85rem; }
.ccard-btn--out { background: #f1f5f9 !important; color: #94a3b8 !important; box-shadow: none !important; cursor: not-allowed !important; }
.dark .ccard-btn--out { background: #292524 !important; }

/* ===== VACÍO ===== */
.cat-empty { text-align: center; padding: 4rem 2rem; color: var(--color-text-muted); }
.cat-empty .material-icons-outlined { font-size: 3rem !important; color: #cbd5e1; display: block; margin-bottom: 1rem; }
.cat-empty h3 { margin-bottom: 0.35rem; } .cat-empty p { margin-bottom: 1.25rem; font-size: 0.82rem; }

/* ===== PAGINACIÓN ===== */
.cat-pagination { margin-top: 0.5rem; display: flex; justify-content: center; }
.cat-pagination .woocommerce-pagination ul {
    display: inline-flex !important; gap: 0.35rem !important;
    list-style: none !important; padding: 0 !important; margin: 0 !important; border: none !important;
}
.cat-pagination .woocommerce-pagination ul li { border: none !important; padding: 0 !important; }
.cat-pagination .woocommerce-pagination ul li a,
.cat-pagination .woocommerce-pagination ul li span {
    display: flex !important; align-items: center !important; justify-content: center !important;
    width: 2.25rem !important; height: 2.25rem !important; border-radius: 0.6rem !important;
    font-size: 0.78rem !important; font-weight: 700 !important;
    color: var(--color-text-muted) !important; background: white !important;
    border: 1px solid rgba(0,0,0,0.07) !important; transition: all 0.2s !important; text-decoration: none !important;
}
.dark .cat-pagination .woocommerce-pagination ul li a,
.dark .cat-pagination .woocommerce-pagination ul li span { background: #1c1917 !important; border-color: #3f3f46 !important; }
.cat-pagination .woocommerce-pagination ul li a:hover { background: rgba(74,103,65,0.08) !important; border-color: var(--color-primary) !important; color: var(--color-primary) !important; }
.cat-pagination .woocommerce-pagination ul li span.current { background: var(--color-primary) !important; border-color: var(--color-primary) !important; color: white !important; box-shadow: 0 2px 8px rgba(74,103,65,0.3) !important; }

/* ====================================
   24. SINGLE PRODUCT (sprod-*)
   ==================================== */

.sprod-main {
    padding: 1.5rem 0 5rem;
    background: var(--color-background);
    min-height: 80vh;
}
.dark .sprod-main { background: #0f130f; }

.sprod-container {
    max-width: 1180px;
    margin: 0 auto;
    padding: 0 1.5rem;
}
@media (max-width: 640px) { .sprod-container { padding: 0 1rem; } }

/* sprod-wrap: contenedor directo del template */
.sprod-wrap {
    max-width: 1180px;
    margin: 0 auto;
    padding: 1.5rem 1.5rem 4rem;
}
@media (max-width: 640px) { .sprod-wrap { padding: 1rem 1rem 3rem; } }

/* Ajuste WooCommerce nativo que envuelve nuestro template */
.woocommerce .woocommerce-notices-wrapper { display: none; }
.woocommerce div.product { margin: 0; padding: 0; }
.woocommerce div.product .woocommerce-breadcrumb { display: none; }
#primary.content-area { background: var(--color-background); }
.site-main { background: var(--color-background); }

/* Breadcrumb */
.sprod-breadcrumb {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.1rem;
    font-size: 0.75rem;
    color: var(--color-text-muted);
    margin-bottom: 1.75rem;
}
.sprod-breadcrumb a { color: var(--color-text-muted); transition: color 0.2s; }
.sprod-breadcrumb a:hover { color: var(--color-primary); }
.sprod-breadcrumb .material-icons-outlined { font-size: 0.9rem; }
.sprod-breadcrumb-current { color: var(--color-text); font-weight: 600; }

/* ===== LAYOUT 2 COLUMNAS ===== */
.sprod-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: start;
    margin-bottom: 3.5rem;
}
@media (max-width: 768px) {
    .sprod-layout { grid-template-columns: 1fr; gap: 1.75rem; }
}

/* ===== GALERÍA ===== */
.sprod-gallery { display: flex; flex-direction: column; gap: 0.75rem; position: sticky; top: calc(var(--header-h) + 1rem); }
@media (max-width: 768px) { .sprod-gallery { position: static; } }

.sprod-img-main {
    position: relative;
    background: white;
    border-radius: 1.25rem;
    overflow: hidden;
    aspect-ratio: 1;
    box-shadow: 0 2px 16px rgba(0,0,0,0.07);
    display: flex;
    align-items: center;
    justify-content: center;
}
.dark .sprod-img-main { background: #1a201a; }

.sprod-main-photo {
    width: 100%; height: 100%;
    object-fit: contain;
    padding: 1.5rem;
    transition: transform 0.4s ease;
}
.sprod-img-main:hover .sprod-main-photo { transform: scale(1.04); }

.sprod-discount-badge {
    position: absolute;
    top: 1rem; left: 1rem;
    background: #e53935;
    color: white;
    font-size: 0.7rem;
    font-weight: 900;
    padding: 0.3rem 0.75rem;
    border-radius: 9999px;
    letter-spacing: 0.05em;
}

/* Miniaturas */
.sprod-thumbs {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.sprod-thumb {
    width: 4.5rem; height: 4.5rem;
    border-radius: 0.65rem;
    overflow: hidden;
    background: white;
    border: 2px solid transparent;
    cursor: pointer;
    padding: 0.25rem;
    transition: border-color 0.2s, box-shadow 0.2s;
    flex-shrink: 0;
}
.dark .sprod-thumb { background: #1a201a; }
.sprod-thumb img { width: 100%; height: 100%; object-fit: contain; display: block; }
.sprod-thumb:hover { border-color: var(--color-primary); }
.sprod-thumb.active { border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(74,103,65,0.15); }

/* ===== INFO ===== */
.sprod-info { display: flex; flex-direction: column; gap: 1rem; }

/* Categoría badge */
.sprod-cat-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.65rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--color-primary);
    background: rgba(74,103,65,0.1);
    padding: 0.3rem 0.75rem;
    border-radius: 9999px;
    align-self: flex-start;
}
.sprod-cat-badge .material-icons-outlined { font-size: 0.85rem; }

/* Título */
.sprod-title {
    font-size: clamp(1.5rem, 3vw, 2.1rem);
    font-weight: 900;
    letter-spacing: -0.03em;
    line-height: 1.15;
    color: var(--color-text);
    margin: 0;
}

/* Rating */
.sprod-rating-row {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}
.sprod-stars { display: flex; gap: 0.05rem; }
.sprod-star { font-size: 1.1rem !important; color: #e2e8f0; }
.sprod-star.filled { color: #f59e0b; }
.sprod-star.half { color: #f59e0b; }
.sprod-rating-num { font-size: 0.85rem; font-weight: 700; color: var(--color-text); }
.sprod-rating-count { font-size: 0.78rem; color: var(--color-text-muted); }

/* Precio */
.sprod-price-block {
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
    flex-wrap: wrap;
}
.sprod-price-main { font-size: 1.9rem; font-weight: 900; color: var(--color-text); line-height: 1; }
.sprod-price-main .woocommerce-Price-amount { font-weight: 900; color: var(--color-text); }
.sprod-price-main ins { text-decoration: none; }
.sprod-price-main del { display: none; }
.sprod-price-was { font-size: 0.95rem; color: #94a3b8; text-decoration: line-through; font-weight: 400; }
.sprod-price-save {
    font-size: 0.7rem; font-weight: 800;
    background: #dcfce7; color: #166534;
    padding: 0.2rem 0.55rem; border-radius: 9999px;
}
.dark .sprod-price-save { background: rgba(74,103,65,0.2); color: #86efac; }

/* Descripción corta */
.sprod-short-desc {
    font-size: 0.875rem;
    color: var(--color-text-muted);
    line-height: 1.7;
    border-left: 3px solid var(--color-primary);
    padding-left: 1rem;
}
.sprod-short-desc p { margin: 0; }

/* Variaciones */
.sprod-variations { display: flex; flex-direction: column; gap: 0.75rem; }
.sprod-variation-group { display: flex; flex-direction: column; gap: 0.4rem; }
.sprod-variation-label { font-size: 0.78rem; font-weight: 700; color: var(--color-text); }
.sprod-variation-opts { display: flex; gap: 0.4rem; flex-wrap: wrap; }
.sprod-var-btn {
    padding: 0.4rem 0.9rem;
    border: 1.5px solid var(--color-border);
    border-radius: 0.5rem;
    background: white;
    font-size: 0.78rem;
    font-weight: 600;
    cursor: pointer;
    color: var(--color-text);
    transition: all 0.2s;
}
.dark .sprod-var-btn { background: #1c1917; border-color: #44403c; }
.sprod-var-btn:hover { border-color: var(--color-primary); color: var(--color-primary); }
.sprod-var-btn.active { background: var(--color-primary); border-color: var(--color-primary); color: white; }

/* Cantidad + botones */
.sprod-add-block { display: flex; flex-direction: column; gap: 0.85rem; }

.sprod-qty-wrap { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.sprod-qty-label { font-size: 0.78rem; font-weight: 700; color: var(--color-text); }

.sprod-qty-ctrl {
    display: flex;
    align-items: center;
    background: white;
    border: 1.5px solid var(--color-border);
    border-radius: 0.65rem;
    overflow: hidden;
}
.dark .sprod-qty-ctrl { background: #1c1917; border-color: #44403c; }

.sprod-qty-btn {
    width: 2.25rem; height: 2.25rem;
    background: none; border: none;
    font-size: 1.1rem; font-weight: 700;
    cursor: pointer;
    color: var(--color-text);
    display: flex; align-items: center; justify-content: center;
    transition: background 0.15s;
}
.sprod-qty-btn:hover { background: rgba(74,103,65,0.08); color: var(--color-primary); }

.sprod-qty-input {
    width: 2.5rem;
    text-align: center;
    border: none;
    background: none;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--color-text);
    -moz-appearance: textfield;
}
.sprod-qty-input::-webkit-outer-spin-button,
.sprod-qty-input::-webkit-inner-spin-button { -webkit-appearance: none; }

.sprod-stock-info {
    font-size: 0.7rem;
    color: #16a34a;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 0.2rem;
}
.sprod-stock-info::before {
    content: '';
    width: 6px; height: 6px;
    background: #16a34a;
    border-radius: 50%;
    display: inline-block;
}

/* Botones principales */
.sprod-btns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.65rem;
}
@media (max-width: 400px) { .sprod-btns { grid-template-columns: 1fr; } }

.sprod-btn-cart,
.sprod-btn-buy {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.4rem;
    padding: 0.875rem 1rem;
    border-radius: 0.75rem;
    font-size: 0.82rem;
    font-weight: 700;
    text-decoration: none;
    cursor: pointer;
    border: none;
    transition: all 0.2s;
    letter-spacing: 0.01em;
}
.sprod-btn-cart {
    background: var(--color-primary);
    color: white !important;
    box-shadow: 0 3px 12px rgba(74,103,65,0.3);
}
.sprod-btn-cart:hover { background: var(--color-primary-dark); transform: translateY(-1px); box-shadow: 0 5px 18px rgba(74,103,65,0.4); color: white !important; }

.sprod-btn-buy {
    background: #c97b3a;
    color: white !important;
    box-shadow: 0 3px 12px rgba(201,123,58,0.3);
}
.sprod-btn-buy:hover { background: #a8632e; transform: translateY(-1px); box-shadow: 0 5px 18px rgba(201,123,58,0.4); color: white !important; }

.sprod-btn-cart .material-icons-outlined,
.sprod-btn-buy .material-icons-outlined { font-size: 1rem; }

/* Sin stock */
.sprod-out-of-stock {
    display: flex; align-items: center; gap: 0.5rem;
    padding: 1rem 1.25rem;
    background: #fef2f2; color: #991b1b;
    border-radius: 0.75rem; font-size: 0.82rem; font-weight: 600;
    border: 1px solid #fecaca;
}
.sprod-out-of-stock .material-icons-outlined { font-size: 1rem; }

/* Sellos de confianza */
.sprod-trust {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.5rem;
    padding: 0.875rem;
    background: white;
    border-radius: 0.875rem;
    border: 1px solid var(--color-border);
}
@media (max-width: 480px) { .sprod-trust { grid-template-columns: repeat(2, 1fr); } }
.dark .sprod-trust { background: #1a201a; }

.sprod-trust-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.3rem;
    text-align: center;
    font-size: 0.62rem;
    font-weight: 700;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}
.sprod-trust-item .material-icons-outlined {
    font-size: 1.3rem;
    color: var(--color-primary);
}

/* Meta info */
.sprod-meta-info {
    font-size: 0.75rem;
    color: var(--color-text-muted);
    border-top: 1px solid var(--color-border);
    padding-top: 0.75rem;
}
.sprod-meta-info p { margin: 0.2rem 0; }
.sprod-meta-info strong { color: var(--color-text); }

/* ===== TABS ===== */
.sprod-tabs-section {
    background: white;
    border-radius: 1.25rem;
    overflow: hidden;
    box-shadow: 0 1px 8px rgba(0,0,0,0.05);
    margin-bottom: 3rem;
}
.dark .sprod-tabs-section { background: #1a201a; }

.sprod-tabs-nav {
    display: flex;
    border-bottom: 1px solid var(--color-border);
    overflow-x: auto;
    scrollbar-width: none;
}
.sprod-tabs-nav::-webkit-scrollbar { display: none; }

.sprod-tab {
    padding: 1rem 1.5rem;
    background: none;
    border: none;
    border-bottom: 2.5px solid transparent;
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--color-text-muted);
    cursor: pointer;
    transition: all 0.2s;
    white-space: nowrap;
    margin-bottom: -1px;
}
.sprod-tab:hover { color: var(--color-primary); }
.sprod-tab.active { color: var(--color-primary); border-bottom-color: var(--color-primary); }

.sprod-tab-panel { display: none; padding: 2rem; }
.sprod-tab-panel.active { display: block; }

.sprod-description {
    font-size: 0.875rem;
    line-height: 1.8;
    color: var(--color-text-muted);
    max-width: 72ch;
}
.sprod-description h2, .sprod-description h3 { color: var(--color-text); margin: 1.25rem 0 0.5rem; font-size: 1rem; }
.sprod-description ul, .sprod-description ol { padding-left: 1.25rem; margin: 0.5rem 0; }
.sprod-description li { margin: 0.3rem 0; }
.sprod-description p { margin: 0.5rem 0; }

/* Tabla atributos */
.sprod-attr-table { width: 100%; border-collapse: collapse; font-size: 0.82rem; }
.sprod-attr-table tr { border-bottom: 1px solid var(--color-border); }
.sprod-attr-table th {
    text-align: left; padding: 0.65rem 1rem 0.65rem 0;
    font-weight: 700; color: var(--color-text); width: 35%;
}
.sprod-attr-table td { padding: 0.65rem 0; color: var(--color-text-muted); }

/* ===== RELACIONADOS ===== */
.sprod-related { margin-bottom: 1rem; }
.sprod-related-title {
    font-size: 1.2rem; font-weight: 900;
    letter-spacing: -0.02em;
    margin-bottom: 1.25rem;
    color: var(--color-text);
}
.sprod-related-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0.75rem;
}
@media (min-width: 540px)  { .sprod-related-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 860px)  { .sprod-related-grid { grid-template-columns: repeat(4, 1fr); } }

.sprod-rel-card {
    background: white;
    border-radius: 0.875rem;
    overflow: hidden;
    text-decoration: none;
    border: 1px solid rgba(0,0,0,0.05);
    box-shadow: 0 1px 4px rgba(0,0,0,0.05);
    transition: transform 0.25s, box-shadow 0.25s;
    display: flex;
    flex-direction: column;
}
.dark .sprod-rel-card { background: #1a201a; }
.sprod-rel-card:hover { transform: translateY(-3px); box-shadow: 0 6px 20px rgba(74,103,65,0.12); }

    .sprod-rel-img {
    background: transparent;
    overflow: visible;
    display: flex; align-items: center; justify-content: center;
}
.dark .sprod-rel-img { background: transparent !important; }
.sprod-rel-img img { width: 100%; height: auto; object-fit: contain; padding: 0.5rem; display: block; transition: transform 0.4s; }
.sprod-rel-card:hover .sprod-rel-img img { transform: scale(1.06); }

.sprod-rel-body { padding: 0.65rem 0.75rem 0.75rem; display: flex; flex-direction: column; gap: 0.2rem; }
.sprod-rel-name { font-size: 0.75rem; font-weight: 700; color: var(--color-text); line-height: 1.3;
    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.sprod-rel-price { font-size: 0.82rem; font-weight: 900; color: var(--color-primary); }
.sprod-rel-price .woocommerce-Price-amount { color: var(--color-primary); font-weight: 900; }
.sprod-rel-price ins { text-decoration: none; }


/* ====================================
   25. CARRITO PÁGINA (drz-cart-*)
   ==================================== */

.woocommerce-cart #primary,
.woocommerce-cart .site-main { background: var(--color-background); }
.woocommerce-cart .woocommerce { max-width: 1180px; margin: 0 auto; padding: 2.5rem 1.5rem 5rem; }
@media (max-width: 640px) { .woocommerce-cart .woocommerce { padding: 1.5rem 1rem 3rem; } }
.woocommerce-cart .entry-title,
.woocommerce-cart .page-title,
.woocommerce-cart .page-header,
.woocommerce-cart .archive-header { display: none !important; }

/* ── HEADER ── */
.drz-cart-header { display: flex; align-items: center; gap: 1rem; margin-bottom: 2rem; flex-wrap: wrap; }
.drz-cart-title {
    display: flex; align-items: center; gap: 0.5rem;
    font-family: var(--font-display);
    font-size: clamp(1.6rem, 4vw, 2.2rem);
    font-weight: 700; color: var(--color-text);
    letter-spacing: -0.02em; margin: 0;
}
.drz-cart-title .material-icons-outlined { font-size: 1.8rem; color: var(--color-primary); }
.drz-cart-count-badge {
    background: rgba(74,103,65,0.1); color: var(--color-primary);
    font-size: 0.72rem; font-weight: 800; text-transform: uppercase;
    letter-spacing: 0.08em; padding: 0.3rem 0.75rem; border-radius: 9999px;
}

/* ── VACÍO ── */
.drz-cart-empty { text-align: center; padding: 5rem 2rem; background: white; border-radius: 1.5rem; border: 1px solid var(--color-border); }
.dark .drz-cart-empty { background: #1a201a; }
.drz-empty-icon { font-size: 4rem !important; color: var(--color-border); margin-bottom: 1rem; display: block; }
.drz-cart-empty h2 { font-size: 1.4rem; font-weight: 700; color: var(--color-text); margin-bottom: 0.5rem; }
.drz-cart-empty p { font-size: 0.875rem; color: var(--color-text-muted); margin-bottom: 1.5rem; }
.drz-btn-primary {
    display: inline-flex; align-items: center; gap: 0.4rem;
    padding: 0.75rem 1.5rem; background: var(--color-primary); color: white;
    border-radius: 0.75rem; font-size: 0.85rem; font-weight: 700;
    text-decoration: none; transition: all 0.2s;
}
.drz-btn-primary:hover { background: var(--color-primary-dark); transform: translateY(-1px); color: white; }

/* ── LAYOUT ── */
.drz-cart-layout { display: grid; grid-template-columns: 1fr 360px; gap: 2rem; align-items: start; }
@media (max-width: 960px) { .drz-cart-layout { grid-template-columns: 1fr; } }

/* ── TABLA ── */
.drz-cart-thead {
    display: grid; grid-template-columns: 1fr 110px 150px 110px;
    padding: 0.75rem 1.25rem;
    background: var(--color-background);
    border-radius: 0.875rem 0.875rem 0 0;
    border: 1px solid var(--color-border); border-bottom: none;
}
.drz-cart-thead span { font-size: 0.62rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.1em; color: var(--color-text-muted); }
.drz-th-center { text-align: center; }
.drz-th-right { text-align: right; }
@media (max-width: 640px) { .drz-cart-thead { display: none; } }

.drz-cart-items { background: white; border: 1px solid var(--color-border); border-top: none; overflow: hidden; }
.dark .drz-cart-items { background: #1a201a; }

.drz-cart-row {
    display: grid; grid-template-columns: 1fr 110px 150px 110px;
    align-items: center; padding: 1.25rem;
    border-bottom: 1px solid var(--color-border); transition: background 0.15s;
}
.drz-cart-row:last-child { border-bottom: none; }
.drz-cart-row:hover { background: rgba(74,103,65,0.02); }

@media (max-width: 640px) {
    .drz-cart-row { grid-template-columns: 1fr 1fr; gap: 0.75rem; }
    .drz-row-product { grid-column: 1 / -1; }
    .drz-row-price { display: none; }
    .drz-row-qty::before, .drz-row-subtotal::before {
        content: attr(data-label);
        font-size: 0.6rem; font-weight: 700; text-transform: uppercase;
        color: var(--color-text-muted); display: block; margin-bottom: 0.25rem;
    }
}

/* Producto */
.drz-row-product { display: flex; align-items: flex-start; gap: 1rem; }
.drz-row-img {
    flex-shrink: 0; width: 5rem; height: 5rem;
    background: var(--color-background); border-radius: 0.875rem;
    border: 1px solid var(--color-border); overflow: hidden;
    display: flex; align-items: center; justify-content: center;
    transition: box-shadow 0.2s;
}
.drz-row-img:hover { box-shadow: 0 4px 12px rgba(74,103,65,0.15); }
.drz-row-img img { width: 100% !important; height: 100% !important; object-fit: contain; padding: 0.3rem; display: block; }
.drz-row-info { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 0.3rem; }
.drz-row-name {
    font-size: 0.875rem; font-weight: 700; color: var(--color-text);
    text-decoration: none; line-height: 1.35; transition: color 0.2s;
}
.drz-row-name:hover { color: var(--color-primary); }

/* Precio móvil */
.drz-row-price-mobile {
    display: none;
    font-size: 0.8rem; color: var(--color-text-muted); font-weight: 500;
}
@media (max-width: 640px) { .drz-row-price-mobile { display: block; } }
.drz-row-price-mobile .woocommerce-Price-amount { color: var(--color-text-muted); }

/* Botón eliminar */
.drz-remove-btn {
    display: inline-flex; align-items: center; gap: 0.2rem;
    font-size: 0.72rem; color: #94a3b8; font-weight: 600;
    text-decoration: none; transition: all 0.2s;
    padding: 0.25rem 0.5rem; border-radius: 0.4rem;
    width: fit-content;
}
.drz-remove-btn .material-icons-outlined { font-size: 0.85rem; }
.drz-remove-btn:hover {
    color: #ef4444;
    background: #fef2f2;
}

/* Precio desktop */
.drz-row-price { text-align: center; font-size: 0.875rem; color: var(--color-text-muted); font-weight: 500; }
.drz-row-price .woocommerce-Price-amount { color: var(--color-text-muted); }

/* ── CONTROL CANTIDAD ── */
.drz-row-qty { display: flex; justify-content: center; align-items: center; }
.drz-qty-ctrl {
    display: inline-flex; align-items: center;
    border: 1.5px solid var(--color-border);
    border-radius: 0.625rem; overflow: hidden;
    background: white; transition: border-color 0.2s, box-shadow 0.2s;
}
.dark .drz-qty-ctrl { background: #1c1917; }
.drz-qty-ctrl:focus-within {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(74,103,65,0.1);
}
.drz-qty-minus,
.drz-qty-plus {
    width: 2rem; height: 2rem;
    display: flex; align-items: center; justify-content: center;
    border: none; cursor: pointer;
    font-size: 1rem; font-weight: 700; line-height: 1;
    transition: all 0.15s;
}
.drz-qty-minus {
    background: #fef2f2; color: #ef4444;
    border-right: 1px solid var(--color-border);
}
.drz-qty-minus:hover { background: #ef4444; color: white; }
.drz-qty-plus {
    background: rgba(74,103,65,0.08); color: var(--color-primary);
    border-left: 1px solid var(--color-border);
}
.drz-qty-plus:hover { background: var(--color-primary); color: white; }
.drz-qty-input {
    width: 2.5rem; text-align: center;
    border: none; background: none;
    font-size: 0.875rem; font-weight: 700; color: var(--color-text);
    -moz-appearance: textfield;
}
.drz-qty-input::-webkit-outer-spin-button,
.drz-qty-input::-webkit-inner-spin-button { -webkit-appearance: none; }
.drz-qty-input:focus { outline: none; }

/* Subtotal */
.drz-row-subtotal { text-align: right; font-weight: 900; font-size: 0.925rem; }
.drz-row-subtotal .woocommerce-Price-amount { color: var(--color-primary); font-weight: 900; }

/* ── PIE TABLA ── */
.drz-cart-foot {
    display: flex; align-items: center; justify-content: space-between;
    flex-wrap: wrap; gap: 0.75rem;
    padding: 1rem 1.25rem;
    background: var(--color-background);
    border: 1px solid var(--color-border); border-top: none;
    border-radius: 0 0 0.875rem 0.875rem;
    margin-bottom: 1.25rem;
}
.drz-coupon-wrap { display: flex; align-items: center; gap: 0.5rem; flex-wrap: wrap; }
.drz-coupon-wrap > .material-icons-outlined { font-size: 1rem; color: var(--color-primary); }
.drz-coupon-input {
    padding: 0.5rem 0.875rem;
    border: 1.5px solid var(--color-border); border-radius: 0.6rem;
    font-size: 0.82rem; background: white; color: var(--color-text);
    width: 175px; transition: border-color 0.2s;
}
.drz-coupon-input:focus { outline: none; border-color: var(--color-primary); box-shadow: 0 0 0 3px rgba(74,103,65,0.1); }
.drz-coupon-btn {
    display: flex; align-items: center; gap: 0.25rem;
    padding: 0.5rem 1rem; background: var(--color-primary); color: white;
    border: none; border-radius: 0.6rem; font-size: 0.78rem; font-weight: 700;
    cursor: pointer; transition: background 0.2s; white-space: nowrap;
}
.drz-coupon-btn .material-icons-outlined { font-size: 0.85rem; }
.drz-coupon-btn:hover { background: var(--color-primary-dark); }
.drz-update-btn {
    display: flex; align-items: center; gap: 0.3rem;
    padding: 0.5rem 1rem; background: white; color: var(--color-text);
    border: 1.5px solid var(--color-border); border-radius: 0.6rem;
    font-size: 0.78rem; font-weight: 700; cursor: pointer; transition: all 0.2s;
}
.drz-update-btn .material-icons-outlined { font-size: 0.9rem; }
.drz-update-btn:hover { border-color: var(--color-primary); color: var(--color-primary); }

/* ── CONTINUAR COMPRANDO ── */
.drz-continue-btn {
    display: inline-flex; align-items: center; gap: 0.875rem;
    padding: 0.75rem 1.25rem 0.75rem 0.75rem;
    background: white; border: 1.5px solid var(--color-border);
    border-radius: 0.875rem; text-decoration: none;
    transition: all 0.25s; box-shadow: 0 1px 4px rgba(0,0,0,0.04);
}
.dark .drz-continue-btn { background: #1a201a; }
.drz-continue-btn:hover {
    border-color: var(--color-primary);
    box-shadow: 0 4px 16px rgba(74,103,65,0.12);
    transform: translateX(-3px);
}
.drz-continue-arrow {
    display: flex; align-items: center; justify-content: center;
    width: 2.25rem; height: 2.25rem;
    background: rgba(74,103,65,0.1); color: var(--color-primary);
    border-radius: 0.65rem; flex-shrink: 0; transition: all 0.25s;
}
.drz-continue-btn:hover .drz-continue-arrow { background: var(--color-primary); color: white; }
.drz-continue-arrow .material-icons-outlined { font-size: 1.1rem; }
.drz-continue-text { display: flex; flex-direction: column; gap: 0.1rem; }
.drz-continue-text strong { font-size: 0.82rem; font-weight: 700; color: var(--color-text); }
.drz-continue-text small { font-size: 0.68rem; color: var(--color-text-muted); }

/* ── PANEL RESUMEN ── */
.drz-cart-right { display: flex; flex-direction: column; gap: 1rem; }
.drz-summary-box {
    background: white; border-radius: 1.25rem;
    border: 1px solid var(--color-border);
    box-shadow: 0 2px 12px rgba(0,0,0,0.05); overflow: hidden;
    position: sticky; top: calc(var(--header-h) + 1rem);
}
.dark .drz-summary-box { background: #1a201a; }
@media (max-width: 960px) { .drz-summary-box { position: static; } }

.drz-summary-header {
    display: flex; align-items: center; gap: 0.5rem;
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid var(--color-border);
    background: rgba(74,103,65,0.03);
}
.drz-summary-header .material-icons-outlined { font-size: 1.1rem; color: var(--color-primary); }
.drz-summary-header h2 {
    font-size: 0.75rem; font-weight: 800; text-transform: uppercase;
    letter-spacing: 0.1em; color: var(--color-text); margin: 0;
}

.drz-summary-lines { padding: 0 1.5rem; }
.drz-summary-line {
    display: flex; justify-content: space-between; align-items: center;
    padding: 0.875rem 0; border-bottom: 1px solid var(--color-border);
    font-size: 0.85rem; color: var(--color-text-muted); gap: 1rem;
}
.drz-summary-line:last-child { border-bottom: none; }
.drz-summary-line span { display: flex; align-items: center; gap: 0.35rem; flex-wrap: wrap; }
.drz-summary-line .material-icons-outlined { font-size: 0.95rem; color: var(--color-primary); }
.drz-summary-line strong { color: var(--color-text); font-weight: 700; text-align: right; }
.drz-line-discount strong.drz-discount-amt { color: #16a34a; }
.drz-remove-coupon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 1rem; height: 1rem; background: #fef2f2; color: #ef4444;
    border-radius: 50%; font-size: 0.7rem; font-weight: 900;
    text-decoration: none; margin-left: 0.3rem; transition: all 0.2s;
}
.drz-remove-coupon:hover { background: #ef4444; color: white; }

.drz-summary-total-row {
    display: flex; justify-content: space-between; align-items: center;
    padding: 1.25rem 1.5rem;
    background: rgba(74,103,65,0.05);
    border-top: 2px solid rgba(74,103,65,0.15);
}
.drz-summary-total-row span:first-child {
    font-size: 0.8rem; font-weight: 800; text-transform: uppercase;
    letter-spacing: 0.08em; color: var(--color-text);
}
.drz-total-amount { font-size: 1.5rem; font-weight: 900; color: var(--color-primary); }
.drz-total-amount .woocommerce-Price-amount { color: var(--color-primary); font-size: 1.5rem; font-weight: 900; }

.drz-checkout-wrap { padding: 1rem 1.5rem 0.5rem; }
.drz-checkout-btn {
    display: flex; align-items: center; justify-content: center; gap: 0.5rem;
    width: 100%; padding: 1rem 1.5rem;
    background: linear-gradient(135deg, var(--color-primary), var(--color-primary-dark));
    color: white !important; border-radius: 0.875rem;
    font-size: 0.9rem; font-weight: 700; text-decoration: none;
    transition: all 0.25s; box-shadow: 0 4px 14px rgba(74,103,65,0.35);
    letter-spacing: 0.01em;
}
.drz-checkout-btn .material-icons-outlined { font-size: 1rem; }
.drz-checkout-btn:hover {
    transform: translateY(-2px); color: white !important;
    box-shadow: 0 8px 24px rgba(74,103,65,0.45);
    background: linear-gradient(135deg, var(--color-primary-dark), #2d4026);
}

.drz-trust-strip {
    display: flex; justify-content: space-around;
    padding: 0.875rem 1rem; border-top: 1px solid var(--color-border);
}
.drz-trust-item {
    display: flex; flex-direction: column; align-items: center; gap: 0.2rem;
    font-size: 0.58rem; font-weight: 700; text-transform: uppercase;
    letter-spacing: 0.05em; color: var(--color-text-muted); text-align: center;
}
.drz-trust-item .material-icons-outlined { font-size: 1.2rem; color: var(--color-primary); }

.drz-payment-methods {
    padding: 0.875rem 1.5rem 1.25rem;
    border-top: 1px solid var(--color-border);
    display: flex; flex-direction: column; align-items: center; gap: 0.5rem;
}
.drz-pay-label { font-size: 0.62rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; color: var(--color-text-muted); }
.drz-pay-badges { display: flex; gap: 0.4rem; flex-wrap: wrap; justify-content: center; }
.drz-pay-badge {
    padding: 0.25rem 0.65rem; border-radius: 0.375rem;
    font-size: 0.62rem; font-weight: 900; letter-spacing: 0.05em; border: 1.5px solid;
}
.drz-pay-visa    { background: #f0f4ff; color: #1a3fa8; border-color: #c7d4f7; }
.drz-pay-mc      { background: #fff5f0; color: #c23b22; border-color: #f7cdc7; }
.drz-pay-yape    { background: #f5f0ff; color: #6b21a8; border-color: #ddd0f7; }
.drz-pay-plin    { background: #f0fff8; color: #065f46; border-color: #a7f3d0; }

/* Envío prioritario */
.drz-shipping-notice {
    display: flex; align-items: flex-start; gap: 0.75rem;
    padding: 1rem 1.25rem;
    background: linear-gradient(135deg, rgba(74,103,65,0.06), rgba(74,103,65,0.03));
    border: 1px solid rgba(74,103,65,0.2); border-radius: 0.875rem;
}
.drz-shipping-notice > .material-icons-outlined { font-size: 1.25rem; color: var(--color-primary); flex-shrink: 0; margin-top: 0.1rem; }
.drz-shipping-notice div { display: flex; flex-direction: column; gap: 0.15rem; }
.drz-shipping-notice strong { font-size: 0.82rem; font-weight: 700; color: var(--color-primary); }
.drz-shipping-notice span { font-size: 0.75rem; color: var(--color-text-muted); }

/* ── RESPONSIVE MÓVIL ── */
@media (max-width: 480px) {
    .drz-cart-foot { flex-direction: column; align-items: stretch; }
    .drz-coupon-wrap { flex-wrap: wrap; }
    .drz-coupon-input { width: 100%; flex: 1; }
    .drz-continue-btn { width: 100%; }
}







/* ====================================
   26. CHECKOUT — De Raíz v7.0 Premium
   ==================================== */

/* ── Base página ── */
.woocommerce-checkout #primary,
.woocommerce-checkout .site-main,
.woocommerce-checkout .entry-content { background: #f4f6f2 !important; }

.woocommerce-checkout .woocommerce {
    max-width: 1140px; margin: 0 auto;
    padding: 0 1.5rem 6rem;
}
@media (max-width:600px) { .woocommerce-checkout .woocommerce { padding: 0 1rem 4rem; } }

.woocommerce-checkout .entry-title,
.woocommerce-checkout .page-title,
.woocommerce-checkout .page-header { display: none !important; }

/* ── Reset flotantes WC ── */
.woocommerce-checkout form.checkout { float: none !important; clear: both !important; }
.woocommerce-checkout .col2-set { display: block !important; float: none !important; width: 100% !important; margin: 0 !important; }
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 { float: none !important; width: 100% !important; padding: 0 !important; margin: 0 !important; }
.woocommerce-checkout #customer_details h3,
.woocommerce-checkout .woocommerce-billing-fields > h3,
.woocommerce-checkout .woocommerce-shipping-fields > h3,
.woocommerce-checkout .woocommerce-additional-fields > h3,
.woocommerce-checkout #order_review_heading { display: none !important; }

/* ════════════════════════════════════
   BARRA SUPERIOR
════════════════════════════════════ */
.drz-checkout-wrap { width: 100%; }

.drz-co-topbar {
    display: flex; align-items: center; justify-content: space-between;
    padding: 2rem 0 1.75rem; flex-wrap: wrap; gap: .75rem;
    border-bottom: 1px solid rgba(74,103,65,.12);
    margin-bottom: 2.5rem;
}
.drz-co-topbar__title {
    font-size: clamp(1.5rem,3.5vw,1.875rem);
    font-weight: 800; color: #1a2416;
    letter-spacing: -.03em; margin: 0;
    font-family: var(--font-display);
}
.drz-co-topbar__secure {
    display: flex; align-items: center; gap: .4rem;
    background: #edf2eb; border: 1px solid rgba(74,103,65,.2);
    padding: .35rem .875rem; border-radius: 9999px;
    font-size: .7rem; font-weight: 700; color: var(--color-primary);
    letter-spacing: .04em; text-transform: uppercase;
}
.drz-co-topbar__secure .material-icons-outlined { font-size: .85rem; }

/* ════════════════════════════════════
   PASOS
════════════════════════════════════ */
.drz-steps {
    display: flex; align-items: center;
    justify-content: center;
    max-width: 360px; margin: 0 auto 2.5rem;
}
.drz-step { display: flex; flex-direction: column; align-items: center; gap: .4rem; }
.drz-step__num {
    width: 2.25rem; height: 2.25rem; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: .78rem; font-weight: 800; transition: all .3s;
    font-family: var(--font-display);
}
.drz-step > span {
    font-size: .58rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: .09em; white-space: nowrap;
}
.drz-step--active .drz-step__num  { background: var(--color-primary); color: #fff; box-shadow: 0 4px 14px rgba(74,103,65,.35); }
.drz-step--active > span          { color: var(--color-primary); }
.drz-step--pending .drz-step__num { background: #e2e8df; color: #9aaa96; }
.drz-step--pending > span         { color: #9aaa96; }
.drz-step__line { flex:1; height:2px; min-width:3.5rem; margin:0 .5rem 1.5rem; }
.drz-step__line--done    { background: var(--color-primary); }
.drz-step__line--pending { background: #dde3da; }
@media (max-width:480px) { .drz-step__line { min-width:1.5rem; } }

/* ════════════════════════════════════
   GRID 2 COLUMNAS
════════════════════════════════════ */
.drz-checkout-grid,
form.checkout.drz-checkout-grid,
.woocommerce-checkout form.drz-checkout-grid {
    display: grid !important;
    grid-template-columns: 1fr 380px !important;
    gap: 1.75rem !important;
    align-items: start !important;
    float: none !important; width: 100% !important;
}
@media (max-width:980px)  { 
    .drz-checkout-grid,
    form.checkout.drz-checkout-grid,
    .woocommerce-checkout form.drz-checkout-grid { 
        grid-template-columns: 1fr !important; 
    } 
}
.drz-co-left  { grid-column: 1; display: flex; flex-direction: column; gap: 1.25rem; min-width: 0; }
.drz-co-right { grid-column: 2; display: flex; flex-direction: column; gap: 1.25rem; position: sticky; top: calc(var(--header-h) + 1.25rem); min-width: 0; }
@media (max-width:980px) {
    .drz-co-left  { grid-column: 1 !important; }
    .drz-co-right { grid-column: 1 !important; position: static !important; }
}

/* ════════════════════════════════════
   CARDS
════════════════════════════════════ */
.drz-co-card {
    background: #fff;
    border: 1px solid #e8ede6;
    border-radius: 1.125rem;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(26,36,22,.04), 0 4px 16px rgba(26,36,22,.04);
    transition: box-shadow .2s;
}
.drz-co-card__head {
    display: flex; align-items: center; gap: .625rem;
    padding: 1rem 1.375rem;
    border-bottom: 1px solid #f0f4ee;
    background: #fafbfa;
}
.drz-co-card__head .material-icons-outlined {
    font-size: 1rem; color: var(--color-primary);
    background: #edf2eb; padding: .3rem;
    border-radius: .4rem;
}
.drz-co-card__head h2 {
    font-size: .8rem; font-weight: 800;
    text-transform: uppercase; letter-spacing: .07em;
    color: #2d3d28; margin: 0;
}
.drz-co-card__body { padding: 1.375rem; }
@media (max-width:600px) { .drz-co-card__body { padding: 1rem; } }

/* ════════════════════════════════════
   MENSAJES DE ERROR — premium
════════════════════════════════════ */
.woocommerce-checkout .woocommerce-NoticeGroup,
.woocommerce-checkout .woocommerce-NoticeGroup-checkout {
    margin-bottom: 1.25rem;
}
.woocommerce-checkout .woocommerce-error {
    list-style: none !important;
    margin: 0 0 1.25rem !important;
    padding: 0 !important;
    background: none !important;
    border: none !important;
}
.woocommerce-checkout .woocommerce-error li {
    display: flex; align-items: flex-start; gap: .6rem;
    padding: .7rem 1rem !important;
    margin-bottom: .4rem !important;
    background: #fff8f8 !important;
    border: 1px solid #fde8e8 !important;
    border-left: 3px solid #e53e3e !important;
    border-radius: .625rem !important;
    font-size: .8rem !important; color: #742a2a !important;
    font-weight: 500 !important;
}
.woocommerce-checkout .woocommerce-error li::before {
    content: 'error_outline';
    font-family: 'Material Icons Outlined', 'Material Symbols Outlined';
    font-size: .9rem; color: #e53e3e;
    flex-shrink: 0; margin-top: 1px;
    font-style: normal; font-weight: normal;
}
.woocommerce-checkout .woocommerce-error li a { color: #e53e3e; text-decoration: underline; }

/* Campos con error — sutil, no agresivo */
.woocommerce-checkout .form-row.woocommerce-invalid .woocommerce-input-wrapper input,
.woocommerce-checkout .form-row.woocommerce-invalid .woocommerce-input-wrapper select,
.woocommerce-checkout .form-row.woocommerce-invalid input.input-text,
.woocommerce-checkout .form-row.woocommerce-invalid select {
    border-color: #fc8181 !important;
    background: #fffafa !important;
    box-shadow: 0 0 0 3px rgba(229,62,62,.07) !important;
}
/* Ocultar el mensaje inline de validación nativo de WC — usamos solo el de arriba */
.woocommerce-checkout .form-row.woocommerce-invalid .woocommerce-input-wrapper::after,
.woocommerce-checkout .form-row .required { 
    color: #e53e3e !important; 
}
/* Texto de error inline de WC — más sutil */
.woocommerce-checkout .form-row.woocommerce-invalid label { color: #e53e3e !important; }

/* ════════════════════════════════════
   LABELS + INPUTS
════════════════════════════════════ */
.woocommerce-checkout .form-row { margin: 0 !important; padding: 0 !important; }

.woocommerce-checkout .form-row label,
.woocommerce-checkout label {
    display: block !important;
    font-size: .78rem !important; font-weight: 600 !important;
    color: #374151 !important; letter-spacing: .01em !important;
    text-transform: none !important; margin-bottom: .35rem !important;
}
.woocommerce-checkout .required { color: var(--color-primary) !important; opacity: .7; }

.woocommerce-checkout .form-row input.input-text,
.woocommerce-checkout input[type="text"],
.woocommerce-checkout input[type="email"],
.woocommerce-checkout input[type="tel"],
.woocommerce-checkout input[type="password"],
.woocommerce-checkout select,
.woocommerce-checkout textarea.input-text {
    display: block !important; width: 100% !important;
    padding: .75rem 1rem !important;
    background: #f8faf7 !important;
    border: 1.5px solid #dde5db !important;
    border-radius: .625rem !important;
    font-size: .9rem !important; color: #1a2416 !important;
    font-family: var(--font-body) !important;
    transition: all .15s ease !important;
    box-shadow: 0 1px 2px rgba(0,0,0,.04) inset !important;
    outline: none !important;
    -webkit-appearance: none; appearance: none;
    line-height: 1.5 !important;
}
.woocommerce-checkout .form-row input.input-text:focus,
.woocommerce-checkout input[type="text"]:focus,
.woocommerce-checkout input[type="email"]:focus,
.woocommerce-checkout input[type="tel"]:focus,
.woocommerce-checkout select:focus,
.woocommerce-checkout textarea.input-text:focus {
    border-color: var(--color-primary) !important;
    background: #fff !important;
    box-shadow: 0 0 0 3px rgba(74,103,65,.1) !important;
}
.woocommerce-checkout .form-row.woocommerce-validated input { border-color: #68a063 !important; }

/* Select flecha */
.woocommerce-checkout select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='%234a6741'%3E%3Cpath fill-rule='evenodd' d='M5.23 7.21a.75.75 0 011.06.02L10 11.168l3.71-3.938a.75.75 0 111.08 1.04l-4.25 4.5a.75.75 0 01-1.08 0l-4.25-4.5a.75.75 0 01.02-1.06z'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right .875rem center !important;
    background-size: 1rem !important;
    padding-right: 2.75rem !important; cursor: pointer;
}
.woocommerce-checkout textarea.input-text { resize: vertical; min-height: 80px; }

/* Grid 2 cols campos */
.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: .875rem 1rem !important;
}
.woocommerce-billing-fields__field-wrapper .form-row-wide,
.woocommerce-shipping-fields__field-wrapper .form-row-wide { grid-column: 1 / -1 !important; }
@media (max-width:540px) {
    .woocommerce-billing-fields__field-wrapper,
    .woocommerce-shipping-fields__field-wrapper { grid-template-columns: 1fr !important; }
}

/* Checkbox */
.woocommerce-checkout .woocommerce-form__label-for-checkbox {
    display: inline-flex !important; align-items: flex-start; gap: .45rem;
    cursor: pointer; font-size: .8rem !important; font-weight: 500 !important;
    text-transform: none !important; letter-spacing: 0 !important;
    color: #4a5568 !important;
}
.woocommerce-checkout .woocommerce-form__label-for-checkbox input[type="checkbox"] {
    width: 1rem !important; height: 1rem !important;
    accent-color: var(--color-primary); flex-shrink: 0; margin-top: 2px;
}

/* ════════════════════════════════════
   ENVÍO
════════════════════════════════════ */
#shipping_method { list-style: none !important; padding: 0 !important; margin: 0 !important; }
#shipping_method li {
    display: flex !important; align-items: center;
    padding: .75rem 1rem !important;
    background: #f8faf7; border: 1.5px solid #dde5db !important;
    border-radius: .75rem !important; margin-bottom: .5rem !important;
    cursor: pointer; transition: all .15s;
}
#shipping_method li:last-child { margin-bottom: 0 !important; }
#shipping_method li:has(input:checked) {
    border-color: var(--color-primary) !important;
    background: #f0f5ee !important;
}
#shipping_method input[type="radio"] {
    accent-color: var(--color-primary);
    width: 1rem; height: 1rem;
    margin: 0 .75rem 0 0 !important; flex-shrink: 0;
}
#shipping_method label {
    display: flex !important; align-items: center;
    justify-content: space-between; flex: 1; cursor: pointer;
    font-weight: 600 !important; font-size: .875rem !important;
    text-transform: none !important; letter-spacing: 0 !important;
    color: #1a2416 !important; margin: 0 !important;
}
#shipping_method .woocommerce-Price-amount { color: var(--color-primary); font-weight: 700; }

/* ════════════════════════════════════
   MÉTODO DE PAGO
════════════════════════════════════ */
.woocommerce-checkout .payment_methods { list-style: none !important; padding: 0 !important; margin: 0 !important; }
.woocommerce-checkout .payment_methods > li {
    border: 1.5px solid #dde5db !important;
    border-radius: .875rem !important;
    overflow: hidden; margin-bottom: .625rem !important;
    background: #f8faf7; transition: all .15s;
}
.woocommerce-checkout .payment_methods > li:last-child { margin-bottom: 0 !important; }
.woocommerce-checkout .payment_methods > li:has(input:checked) {
    border-color: var(--color-primary) !important;
    background: #f0f5ee !important;
}
.woocommerce-checkout .payment_methods label {
    display: flex !important; align-items: center; gap: .75rem;
    padding: .875rem 1.125rem !important; cursor: pointer !important;
    font-size: .875rem !important; font-weight: 600 !important;
    color: #1a2416 !important; text-transform: none !important;
    letter-spacing: 0 !important; margin: 0 !important;
}
.woocommerce-checkout .payment_methods label img {
    height: 1.5rem !important; width: auto !important;
    object-fit: contain; margin-left: auto;
}
.woocommerce-checkout .payment_methods input[type="radio"] {
    accent-color: var(--color-primary);
    width: 1rem; height: 1rem; flex-shrink: 0;
}
.woocommerce-checkout .payment_box {
    padding: 1rem 1.125rem !important;
    background: #f0f5ee !important;
    border-top: 1px solid #dde5db !important;
    font-size: .8rem !important; color: #4a5568 !important; margin: 0 !important;
}
.woocommerce-checkout .payment_box p { margin: 0 !important; }
.drz-no-payment {
    display: flex; align-items: flex-start; gap: .5rem;
    padding: .875rem 1rem; background: #fffbeb;
    border: 1px solid #fde68a; border-radius: .625rem;
    color: #78350f; font-size: .82rem; font-weight: 500;
    list-style: none !important;
}
.drz-no-payment .material-icons-outlined { font-size: 1rem; color: #f59e0b; flex-shrink: 0; }

/* ════════════════════════════════════
   RESUMEN DEL PEDIDO
════════════════════════════════════ */
.drz-review { width: 100%; }
.drz-review__items { display: flex; flex-direction: column; }

.drz-review__item {
    display: flex; align-items: center; gap: .875rem;
    padding: .75rem 0;
    border-bottom: 1px solid #f0f4ee;
}
.drz-review__item:first-child { padding-top: 0; }
.drz-review__item:last-child  { border-bottom: none; padding-bottom: 0; }

.drz-review__item-img {
    position: relative; flex-shrink: 0;
    width: 3.25rem; height: 3.25rem;
    background: #f4f6f2; border: 1px solid #e8ede6;
    border-radius: .625rem; overflow: hidden;
    display: flex; align-items: center; justify-content: center;
}
.drz-review__item-img img {
    width: 100% !important; height: 100% !important;
    object-fit: contain !important; padding: .2rem; display: block;
}
.drz-review__item-qty {
    position: absolute; top: -.35rem; right: -.35rem;
    min-width: 1.2rem; height: 1.2rem;
    background: var(--color-primary); color: #fff;
    border-radius: 9999px; font-size: .58rem; font-weight: 800;
    display: flex; align-items: center; justify-content: center;
    padding: 0 .2rem; border: 1.5px solid #fff;
}
.drz-review__item-info { flex: 1; min-width: 0; }
.drz-review__item-name {
    display: block; font-size: .78rem; font-weight: 600;
    color: #1a2416; line-height: 1.35;
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.drz-review__item-total {
    flex-shrink: 0; font-size: .82rem;
    font-weight: 700; color: #1a2416; white-space: nowrap;
}
.drz-review__item-total .woocommerce-Price-amount { color: #1a2416 !important; }

.drz-review__divider { height: 1px; background: #e8ede6; margin: .875rem 0; }

.drz-review__totals { display: flex; flex-direction: column; gap: .4rem; }
.drz-review__row {
    display: flex; justify-content: space-between; align-items: center;
    font-size: .78rem;
}
.drz-review__row span:first-child { color: #718096; display: flex; align-items: center; gap: .25rem; }
.drz-review__row span:last-child  { font-weight: 600; color: #2d3d28; }
.drz-review__row--discount span:last-child { color: #2f855a; }
.drz-review__row .material-icons-outlined { font-size: .82rem !important; color: var(--color-primary); }

.drz-review__total-row {
    display: flex; justify-content: space-between; align-items: center;
    margin-top: .875rem; padding-top: .875rem;
    border-top: 2px solid #e8ede6;
}
.drz-review__total-row > span:first-child {
    font-size: .72rem; font-weight: 800;
    text-transform: uppercase; letter-spacing: .08em; color: #4a5568;
}
.drz-review__total-amount { font-size: 1.4rem; font-weight: 900; color: var(--color-primary); }
.drz-review__total-amount .woocommerce-Price-amount {
    color: var(--color-primary) !important; font-size: 1.4rem !important; font-weight: 900 !important;
}
.woocommerce-checkout-review-order-table { display: none !important; }

/* ════════════════════════════════════
   BOTÓN REALIZAR PEDIDO
════════════════════════════════════ */
.drz-place-order { margin-top: 0; }

.drz-place-order__btn, #place_order {
    display: flex !important; align-items: center; justify-content: center; gap: .5rem;
    width: 100% !important; padding: 1rem 1.5rem !important;
    background: var(--color-primary) !important;
    color: #fff !important; border: none !important;
    border-radius: .875rem !important;
    font-size: .95rem !important; font-weight: 800 !important;
    font-family: var(--font-body) !important;
    cursor: pointer !important; letter-spacing: .01em !important;
    box-shadow: 0 4px 16px rgba(74,103,65,.28), 0 1px 3px rgba(74,103,65,.2) !important;
    transition: all .2s ease !important;
    text-transform: none !important; line-height: 1 !important;
}
.drz-place-order__btn:hover, #place_order:hover {
    background: #3a5232 !important; color: #fff !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 8px 24px rgba(74,103,65,.38) !important;
}
.drz-place-order__btn .material-icons-outlined,
#place_order .material-icons-outlined { font-size: .9rem; }

.drz-place-order__legal {
    font-size: .62rem; color: #a0aec0;
    text-align: center; margin-top: .75rem;
    line-height: 1.7; text-transform: uppercase; letter-spacing: .04em;
}
.drz-place-order__legal a { color: var(--color-primary); text-decoration: underline; }

/* ════════════════════════════════════
   SELLOS CONFIANZA
════════════════════════════════════ */
.drz-co-trust {
    display: flex; justify-content: center;
    gap: 1.25rem; flex-wrap: wrap; padding: .25rem 0;
}
.drz-co-trust__item {
    display: flex; align-items: center; gap: .3rem;
    font-size: .58rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: .07em; color: #a0aec0;
}
.drz-co-trust__item .material-icons-outlined { font-size: 1rem; color: #b0bfad; }

/* ════════════════════════════════════
   MENSAJES WC
════════════════════════════════════ */
.woocommerce-checkout .woocommerce-message {
    padding: .875rem 1.125rem; border-radius: .75rem; margin-bottom: 1.25rem;
    background: #f0f5ee !important; border: 1px solid rgba(74,103,65,.2) !important;
    color: var(--color-primary) !important; font-size: .82rem;
}
.woocommerce-checkout .woocommerce-info {
    padding: .75rem 1rem; border-radius: .625rem; margin-bottom: .75rem;
    background: #fefce8; border: 1px solid #fde68a; color: #78350f; font-size: .8rem;
}

/* ════════════════════════════════════
   RESPONSIVE
════════════════════════════════════ */
@media (max-width:600px) {
    .drz-co-topbar { padding: 1.25rem 0 1.25rem; margin-bottom: 1.5rem; }
    .drz-steps { margin-bottom: 1.5rem; }
    .drz-co-trust { gap: .875rem; }
    .drz-place-order__btn, #place_order { font-size: .875rem !important; }
}


/* ════════════════════════════════════════════════════════════
   THANK YOU PAGE v2.0 — De Raíz Premium
   ════════════════════════════════════════════════════════════ */

.drz-ty {
    max-width: 960px;
    margin: 2rem auto 5rem;
    padding: 0 1.25rem;
    font-family: var(--font-sans);
}

/* ── Hero ── */
.drz-ty-hero {
    background: linear-gradient(135deg, #eef4ec 0%, #f6f0e8 100%);
    border-radius: 1.375rem;
    padding: 2.75rem 2rem 2.25rem;
    text-align: center;
    margin-bottom: 1.5rem;
    position: relative;
    overflow: hidden;
}
.drz-ty-hero::before {
    content: '';
    position: absolute;
    top: -60px; right: -60px;
    width: 220px; height: 220px;
    background: radial-gradient(circle, rgba(74,103,65,.12) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
}
.drz-ty-hero__badge {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    background: var(--color-primary);
    color: #fff;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    padding: .35rem .9rem;
    border-radius: 2rem;
    margin-bottom: 1.1rem;
}
.drz-ty-hero__title {
    font-family: var(--font-display);
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    font-weight: 800;
    color: #1a2416;
    margin: 0 0 .6rem;
    line-height: 1.15;
}
.drz-ty-hero__sub {
    font-size: .9rem;
    color: #64748b;
    margin: 0 0 1.75rem;
}
.drz-ty-hero__sub strong { color: #1e293b; }

.drz-ty-hero__meta {
    display: inline-flex;
    align-items: center;
    background: #fff;
    border: 1px solid #dde5db;
    border-radius: 1rem;
    padding: .875rem 1.5rem;
    gap: 0;
    flex-wrap: wrap;
    justify-content: center;
}
.drz-ty-hero__meta-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0 1.25rem;
}
.drz-ty-hero__meta-div {
    width: 1px; height: 2rem;
    background: #e7e5e4;
}
.drz-ty-hero__meta-label {
    font-size: .65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: #94a3b8;
    margin-bottom: .2rem;
}
.drz-ty-hero__meta-val {
    font-size: .92rem;
    font-weight: 700;
    color: #1e293b;
}
.drz-ty-hero__meta-val--total { color: var(--color-primary); }

/* ── Grid ── */
.drz-ty-grid {
    display: grid;
    grid-template-columns: 1fr 320px;
    gap: 1.25rem;
    align-items: start;
    margin-bottom: 1.5rem;
}
@media (max-width: 720px) {
    .drz-ty-grid { grid-template-columns: 1fr; }
    .drz-ty-hero__meta-div { display: none; }
    .drz-ty-hero__meta-item { padding: .5rem .875rem; }
    .drz-ty-hero { padding: 2rem 1.25rem 1.75rem; }
}

/* ── Cards ── */
.drz-ty-card {
    background: #fff;
    border: 1px solid #e7e5e4;
    border-radius: 1.125rem;
    padding: 1.5rem;
    margin-bottom: 1.25rem;
}
.drz-ty-main .drz-ty-card:last-child,
.drz-ty-side .drz-ty-card:last-child { margin-bottom: 0; }
.drz-ty-card--green {
    background: #f0f6ee;
    border-color: #c8dcc4;
}
.drz-ty-card--help {
    background: #f8fafb;
    border-color: #e2eaf0;
}
.drz-ty-card__title {
    display: flex;
    align-items: center;
    gap: .45rem;
    font-size: .75rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--color-primary);
    margin: 0 0 1.25rem;
}
.drz-ty-card__title--light { color: #3a5232; }

/* ── Items ── */
.drz-ty-items {
    list-style: none;
    margin: 0 0 1.25rem;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: .875rem;
}
.drz-ty-item {
    display: flex;
    align-items: center;
    gap: .875rem;
    padding-bottom: .875rem;
    border-bottom: 1px solid #f1f5f9;
}
.drz-ty-item:last-child { border-bottom: none; padding-bottom: 0; }
.drz-ty-item__img {
    width: 56px; height: 56px;
    border-radius: .625rem;
    object-fit: cover;
    border: 1px solid #e7e5e4;
    flex-shrink: 0;
}
.drz-ty-item__info {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: .15rem;
}
.drz-ty-item__name {
    font-size: .875rem;
    font-weight: 600;
    color: #1e293b;
    line-height: 1.35;
}
.drz-ty-item__qty {
    font-size: .75rem;
    color: #94a3b8;
}
.drz-ty-item__price {
    font-size: .9rem;
    font-weight: 700;
    color: #1e293b;
    white-space: nowrap;
}

/* ── Totales ── */
.drz-ty-totals {
    border-top: 1px solid #f1f5f9;
    padding-top: 1rem;
    display: flex;
    flex-direction: column;
    gap: .5rem;
}
.drz-ty-totals__row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: .875rem;
    color: #64748b;
}
.drz-ty-totals__row--total {
    font-size: 1rem;
    font-weight: 800;
    color: #1e293b;
    padding-top: .625rem;
    border-top: 1.5px solid #e7e5e4;
    margin-top: .25rem;
}
.drz-ty-totals__row--total span:last-child { color: var(--color-primary); }
.drz-ty-free { color: var(--color-primary) !important; font-weight: 700; }

/* ── Timeline ── */
.drz-ty-timeline {
    display: flex;
    flex-direction: column;
    gap: 0;
    position: relative;
}
.drz-ty-tl-item {
    display: flex;
    gap: 1rem;
    position: relative;
    padding-bottom: 1.5rem;
}
.drz-ty-tl-item:last-child { padding-bottom: 0; }
.drz-ty-tl-item::before {
    content: '';
    position: absolute;
    left: 15px;
    top: 32px;
    bottom: 0;
    width: 2px;
    background: #e7e5e4;
}
.drz-ty-tl-item:last-child::before { display: none; }
.drz-ty-tl-dot {
    width: 32px; height: 32px;
    border-radius: 50%;
    background: #f1f5f9;
    border: 2px solid #e7e5e4;
    color: #94a3b8;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    position: relative;
    z-index: 1;
    transition: all .3s;
}
.drz-ty-tl-item--done .drz-ty-tl-dot {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #fff;
}
.drz-ty-tl-item--done::before { background: var(--color-primary); opacity: .3; }
.drz-ty-tl-item--active .drz-ty-tl-dot {
    background: #fff;
    border-color: var(--color-primary);
    color: var(--color-primary);
    box-shadow: 0 0 0 4px rgba(74,103,65,.1);
}
.drz-ty-tl-content {
    flex: 1;
    padding-top: .35rem;
}
.drz-ty-tl-content h4 {
    font-size: .875rem;
    font-weight: 700;
    color: #1e293b;
    margin: 0 0 .2rem;
}
.drz-ty-tl-item:not(.drz-ty-tl-item--done):not(.drz-ty-tl-item--active) .drz-ty-tl-content h4 { color: #94a3b8; }
.drz-ty-tl-content p {
    font-size: .8rem;
    color: #94a3b8;
    margin: 0;
    line-height: 1.5;
}

/* ── Dirección ── */
.drz-ty-address {
    font-style: normal;
    font-size: .875rem;
    color: #475569;
    line-height: 1.7;
    margin-bottom: .875rem;
}
.drz-ty-address strong { color: #1e293b; }
.drz-ty-pay-method {
    display: flex;
    align-items: center;
    gap: .4rem;
    font-size: .8rem;
    color: #64748b;
    background: #f8f9fa;
    border: 1px solid #e7e5e4;
    border-radius: .5rem;
    padding: .45rem .75rem;
    width: fit-content;
}

/* ── Garantías ── */
.drz-ty-seals {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 1rem;
}
.drz-ty-seal {
    display: flex;
    align-items: center;
    gap: .875rem;
}
.drz-ty-seal__icon {
    width: 38px; height: 38px;
    background: #fff;
    border-radius: .625rem;
    border: 1px solid #c8dcc4;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-primary);
    flex-shrink: 0;
    box-shadow: 0 1px 3px rgba(0,0,0,.06);
}
.drz-ty-seal strong {
    display: block;
    font-size: .82rem;
    font-weight: 700;
    color: #1e293b;
}
.drz-ty-seal span {
    display: block;
    font-size: .74rem;
    color: #64748b;
}

/* ── Ayuda ── */
.drz-ty-card--help p {
    font-size: .82rem;
    color: #64748b;
    margin: 0 0 .875rem;
    line-height: 1.6;
}
.drz-ty-help-btn {
    display: block;
    text-align: center;
    background: #1e293b;
    color: #fff !important;
    font-size: .82rem;
    font-weight: 700;
    padding: .65rem 1rem;
    border-radius: .625rem;
    text-decoration: none !important;
    transition: background .2s;
}
.drz-ty-help-btn:hover { background: #0f172a; }

/* ── Footer CTA ── */
.drz-ty-footer {
    text-align: center;
    padding: .5rem 0;
}
.drz-ty-footer__btn {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    color: #64748b !important;
    font-size: .875rem;
    font-weight: 600;
    text-decoration: none !important;
    padding: .625rem 1.5rem;
    border: 1.5px solid #e7e5e4;
    border-radius: 2rem;
    transition: all .2s;
}
.drz-ty-footer__btn:hover {
    color: var(--color-primary) !important;
    border-color: var(--color-primary);
    background: rgba(74,103,65,.04);
}

/* ── Ocultar bloque nativo WC en thank you page ── */
.woocommerce-order { display: none !important; }
.woocommerce-thankyou-order-received { display: none !important; }
.woocommerce-order-overview { display: none !important; }

/* ── Ocultar header nativo en thank you page ── */
.woocommerce-order-received .page-header,
.woocommerce-order-received .page-title {
    display: none !important;
}

/* ── Fix header thank you page ── */
body.woocommerce-order-received .page-header { display: none !important; }
body.woocommerce-order-received .page-title  { display: none !important; }
body.woocommerce-order-received h1.page-title { display: none !important; }
body.woocommerce-order-received header.page-header { display: none !important; }

/* ── Fix padding thank you page ── */
body.woocommerce-order-received .page-main {
    padding-top: 0 !important;
}

/* ════════════════════════════════════════════════════════════
   VIEW ORDER PAGE v1.0 — De Raíz Premium
   ════════════════════════════════════════════════════════════ */

.drz-order {
    max-width: 960px;
    margin: 0 auto 5rem;
    padding: 0 1.25rem;
    font-family: var(--font-sans);
}

/* ── Hero ── */
.drz-order-hero {
    background: linear-gradient(135deg, #1a2416 0%, #2d3d28 100%);
    border-radius: 1.375rem;
    padding: 2.5rem 2rem;
    margin-bottom: 1.5rem;
    position: relative;
    overflow: hidden;
}
.drz-order-hero::before {
    content: '';
    position: absolute;
    top: -80px; right: -80px;
    width: 260px; height: 260px;
    background: radial-gradient(circle, rgba(74,103,65,.3) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
}
.drz-order-hero__inner { position: relative; z-index: 1; }
.drz-order-hero__badge {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    background: rgba(255,255,255,0.12);
    color: #a8d4a0;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    padding: .35rem .9rem;
    border-radius: 2rem;
    margin-bottom: 1rem;
    border: 1px solid rgba(255,255,255,0.1);
}
.drz-order-hero__title {
    font-family: var(--font-display);
    font-size: clamp(1.5rem, 3vw, 2.25rem);
    font-weight: 800;
    color: #fff;
    margin: 0 0 .4rem;
    line-height: 1.15;
}
.drz-order-hero__sub {
    font-size: .875rem;
    color: rgba(255,255,255,0.5);
    margin: 0;
}

/* ── Grid ── */
.drz-order-grid {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 1.25rem;
    align-items: start;
}
@media (max-width: 720px) {
    .drz-order-grid { grid-template-columns: 1fr; }
    .drz-order-hero { padding: 2rem 1.25rem; }
}

/* ── Cards ── */
.drz-order-card {
    background: #fff;
    border: 1px solid #e7e5e4;
    border-radius: 1.125rem;
    padding: 1.5rem;
    margin-bottom: 1.25rem;
}
.drz-order-side .drz-order-card:last-child { margin-bottom: 0; }
.drz-order-card--status { background: #f4f6f2; border-color: #dde5db; }
.drz-order-card--tracking { background: #f0f6fe; border-color: #c3d9f5; }
.drz-order-card__title {
    display: flex;
    align-items: center;
    gap: .45rem;
    font-size: .75rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--color-primary);
    margin: 0 0 1.1rem;
}

/* ── Tabla ── */
.drz-order-table {
    width: 100%;
    border-collapse: collapse;
    font-size: .875rem;
}
.drz-order-table thead th {
    font-size: .7rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: #fff;
    background: var(--color-primary);
    padding: .75rem 1rem;
    text-align: left;
}
.drz-order-table thead th:first-child { border-radius: .5rem 0 0 .5rem; }
.drz-order-table thead th:last-child { border-radius: 0 .5rem .5rem 0; }
.drz-order-table tbody td {
    padding: .875rem .75rem;
    border-bottom: 1px solid #f1f5f9;
    color: #475569;
    vertical-align: middle;
}
.drz-order-table tbody tr:last-child td { border-bottom: none; }
.drz-order-table tfoot td {
    padding: .5rem .75rem;
    font-size: .875rem;
    color: #64748b;
}
.drz-order-table tfoot tr:last-child td { display: none; }
.drz-order-table__total td {
    font-size: 1rem !important;
    font-weight: 800 !important;
    color: var(--color-primary) !important;
    border-top: 1.5px solid #e7e5e4 !important;
    padding-top: .875rem !important;
}
.drz-order-table__center { text-align: center !important; }
.drz-order-table__right { text-align: right !important; }
.drz-order-free { color: var(--color-primary) !important; font-weight: 700; }

/* ── Producto row ── */
.drz-order-product {
    display: flex;
    align-items: center;
    gap: .75rem;
}
.drz-order-product__img {
    width: 48px; height: 48px;
    border-radius: .5rem;
    object-fit: cover;
    border: 1px solid #e7e5e4;
    flex-shrink: 0;
}
.drz-order-product__name {
    display: block;
    font-size: .875rem;
    font-weight: 600;
    color: #1e293b;
    line-height: 1.3;
}
.drz-order-product__sku {
    display: block;
    font-size: .74rem;
    color: #94a3b8;
}

/* ── Estado ── */
.drz-order-status {
    display: inline-block;
    padding: .3rem .9rem;
    border-radius: 2rem;
    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-bottom: .875rem;
}
.drz-order-status--processing,
.drz-order-status--completed { background: #dcfce7; color: #166534; }
.drz-order-status--pending,
.drz-order-status--on-hold { background: #fef9c3; color: #854d0e; }
.drz-order-status--cancelled,
.drz-order-status--failed { background: #fee2e2; color: #991b1b; }

.drz-order-pay-method {
    display: flex;
    align-items: center;
    gap: .4rem;
    font-size: .8rem;
    color: #64748b;
    background: #fff;
    border: 1px solid #dde5db;
    border-radius: .5rem;
    padding: .4rem .75rem;
    width: fit-content;
}

/* ── Dirección ── */
.drz-order-address {
    font-style: normal;
    font-size: .875rem;
    color: #475569;
    line-height: 1.7;
}
.drz-order-address strong { color: #1e293b; }

/* ── Tracking ── */
.drz-order-track-carrier {
    font-size: .8rem;
    font-weight: 700;
    color: #1e40af;
    margin: 0 0 .25rem;
}
.drz-order-track-num {
    font-size: .95rem;
    font-weight: 800;
    color: #1e293b;
    font-family: monospace;
    margin: 0 0 .75rem;
}
.drz-order-track-link {
    display: inline-block;
    font-size: .82rem;
    font-weight: 700;
    color: #1e40af !important;
    text-decoration: none !important;
    border-bottom: 1.5px solid #bfdbfe;
}

/* ── Notas ── */
.drz-order-notes {
    list-style: none;
    margin: 0; padding: 0;
    display: flex;
    flex-direction: column;
    gap: .75rem;
}
.drz-order-note {
    display: flex;
    flex-direction: column;
    gap: .2rem;
    padding: .75rem 1rem;
    background: #f8faf7;
    border-left: 3px solid var(--color-primary);
    border-radius: 0 .5rem .5rem 0;
}
.drz-order-note__date {
    font-size: .72rem;
    color: #94a3b8;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .05em;
}
.drz-order-note__text {
    font-size: .875rem;
    color: #475569;
    line-height: 1.5;
}

/* ── Back CTA ── */
.drz-order-back { text-align: center; }
.drz-order-back__btn {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    color: #64748b !important;
    font-size: .875rem;
    font-weight: 600;
    text-decoration: none !important;
    padding: .625rem 1.5rem;
    border: 1.5px solid #e7e5e4;
    border-radius: 2rem;
    transition: all .2s;
}
.drz-order-back__btn:hover {
    color: var(--color-primary) !important;
    border-color: var(--color-primary);
}

/* ── Ocultar header nativo en view-order ── */
body.woocommerce-account.woocommerce-view-order .page-header { display: none !important; }

/* ── My Account: full width en view-order ── */
.woocommerce-account .drz-account-full {
    width: 100% !important;
    margin: 0 !important;
    float: none !important;
}
.woocommerce-account .woocommerce-MyAccount-navigation { 
    display: block;
}
body.woocommerce-account.woocommerce-view-order .woocommerce-MyAccount-navigation {
    display: none !important;
}
body.woocommerce-account.woocommerce-view-order .woocommerce-MyAccount-content {
    width: 100% !important;
    float: none !important;
    margin: 0 !important;
    padding: 0 !important;
}
body.woocommerce-account.woocommerce-view-order .page-header {
    display: none !important;
}

/* ── Ayuda en view-order ── */
.drz-order-card--help p {
    font-size: .82rem;
    color: #64748b;
    margin: 0 0 .875rem;
    line-height: 1.6;
}
.drz-order-help-btn {
    display: block;
    text-align: center;
    background: #1e293b;
    color: #fff !important;
    font-size: .82rem;
    font-weight: 700;
    padding: .65rem 1rem;
    border-radius: .625rem;
    text-decoration: none !important;
    transition: background .2s;
}
.drz-order-help-btn:hover { background: #0f172a; }


/* ── Tracking box en thankyou ── */
.drz-ty-tracking-box {
    background: linear-gradient(135deg, #f0f7ff 0%, #f0faf5 100%);
    border: 1.5px solid #b3d9f5;
    border-radius: 1.125rem;
    padding: 1.5rem;
    margin-top: 1.25rem;
    overflow: hidden;
    position: relative;
}
.drz-ty-tracking-box::before {
    content: '';
    position: absolute;
    top: 0; left: 0;
    width: 4px; height: 100%;
    background: linear-gradient(180deg, #1e40af, #4a6741);
    border-radius: 4px 0 0 4px;
}

/* Estado */
.drz-ty-tracking-box__status {
    display: flex;
    align-items: center;
    gap: .875rem;
    margin-bottom: 1.1rem;
}
.drz-ty-tracking-box__status-icon {
    width: 44px; height: 44px;
    background: #1e40af;
    border-radius: .625rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    flex-shrink: 0;
}
.drz-ty-tracking-box__status-title {
    font-size: .95rem;
    font-weight: 800;
    color: #1e293b;
    margin: 0 0 .15rem;
}
.drz-ty-tracking-box__status-sub {
    font-size: .78rem;
    color: #64748b;
    margin: 0;
}

/* Guía */
.drz-ty-tracking-box__guia {
    background: #fff;
    border: 1px solid #dde5f5;
    border-radius: .75rem;
    padding: .875rem 1.1rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
    flex-wrap: wrap;
    gap: .5rem;
}
.drz-ty-tracking-box__guia-label {
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: #1e40af;
}
.drz-ty-tracking-box__guia-num {
    font-family: monospace;
    font-size: 1.1rem;
    font-weight: 800;
    color: #1e293b;
    letter-spacing: 1.5px;
}

/* Botón rastrear */
.drz-ty-tracking-box__btn {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    background: #1e40af;
    color: #fff !important;
    font-size: .85rem;
    font-weight: 700;
    text-decoration: none !important;
    padding: .75rem 1.375rem;
    border-radius: .625rem;
    transition: background .2s, transform .15s;
    margin-bottom: 1.25rem;
}
.drz-ty-tracking-box__btn:hover {
    background: #1e3a8a;
    transform: translateY(-1px);
}

/* Divider */
.drz-ty-tracking-box__divider {
    border: none;
    border-top: 1px dashed #c3d9f5;
    margin: 0 0 1.1rem;
}

/* Cierre */
.drz-ty-tracking-box__closure {
    background: #f4f6f2;
    border-radius: .75rem;
    padding: 1rem 1.1rem;
    border: 1px solid #dde5db;
}
.drz-ty-tracking-box__closure-title {
    font-size: .88rem;
    font-weight: 700;
    color: #1a2416;
    margin: 0 0 .4rem;
}
.drz-ty-tracking-box__closure-msg {
    font-size: .8rem;
    color: #64748b;
    line-height: 1.65;
    margin: 0 0 .875rem;
}
.drz-ty-tracking-box__contact {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    background: var(--color-primary);
    color: #fff !important;
    font-size: .8rem;
    font-weight: 700;
    text-decoration: none !important;
    padding: .6rem 1.1rem;
    border-radius: .5rem;
    transition: background .2s;
}
.drz-ty-tracking-box__contact:hover { background: var(--color-primary-dark); }

/* ── Bloque de contacto / tranquilidad ── */
.drz-ty-contact-peace {
    background: #f4f6f2;
    border: 1px solid #dde5db;
    border-radius: 1rem;
    padding: 1.375rem 1.5rem;
    margin-top: 1.1rem;
    text-align: center;
}
.drz-ty-contact-peace__icon {
    font-size: 1.75rem;
    margin-bottom: .5rem;
    line-height: 1;
}
.drz-ty-contact-peace__title {
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 700;
    color: #1a2416;
    margin: 0 0 .4rem;
}
.drz-ty-contact-peace__msg {
    font-size: .82rem;
    color: #64748b;
    line-height: 1.65;
    margin: 0 0 1.1rem;
    max-width: 420px;
    margin-left: auto;
    margin-right: auto;
}
.drz-ty-contact-peace__contacts {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .625rem;
    flex-wrap: wrap;
}
.drz-ty-contact-peace__item {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-size: .8rem;
    font-weight: 700;
    text-decoration: none !important;
    padding: .55rem 1.1rem;
    border-radius: 2rem;
    border: 1.5px solid #dde5db;
    color: #475569 !important;
    background: #fff;
    transition: all .2s;
}
.drz-ty-contact-peace__item:hover {
    border-color: var(--color-primary);
    color: var(--color-primary) !important;
}
.drz-ty-contact-peace__item--wa {
    background: #25d366;
    border-color: #25d366;
    color: #fff !important;
}
.drz-ty-contact-peace__item--wa:hover {
    background: #1da851;
    border-color: #1da851;
    color: #fff !important;
}

/* ── Botón "Ver carrito" post add-to-cart ── */
.woocommerce-message,
.wc-forward,
a.added_to_cart {
    display: inline-flex !important;
    align-items: center !important;
    gap: .4rem !important;
    background: transparent !important;
    color: var(--color-primary) !important;
    border: 2px solid var(--color-primary) !important;
    font-family: var(--font-sans) !important;
    font-size: .85rem !important;
    font-weight: 700 !important;
    padding: .75rem 1.25rem !important;
    border-radius: .625rem !important;
    text-decoration: none !important;
    transition: all .2s !important;
    white-space: nowrap !important;
    margin-left: .5rem !important;
    vertical-align: middle !important;
}
a.added_to_cart:hover {
    background: var(--color-primary) !important;
    color: #fff !important;
}
a.added_to_cart::before {
    content: '';
    display: inline-block;
    width: 14px; height: 14px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%234a6741' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='21' r='1'/%3E%3Ccircle cx='20' cy='21' r='1'/%3E%3Cpath d='M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: contain;
}
a.added_to_cart:hover::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='21' r='1'/%3E%3Ccircle cx='20' cy='21' r='1'/%3E%3Cpath d='M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6'/%3E%3C/svg%3E");
}

/* ── Quitar espacio superior en página carrito y checkout ── */
body.woocommerce-cart .page-main,
body.woocommerce-checkout .page-main {
    padding-top: 0 !important;
}
body.woocommerce-cart .page-header,
body.woocommerce-cart .page-title,
body.woocommerce-checkout .page-header,
body.woocommerce-checkout .page-title {
    display: none !important;
}

/* ── Checkout: barra superior con volver al carrito ── */
.drz-checkout-back {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 0 1.5rem;
    border-bottom: 1px solid #e7e5e4;
    margin-bottom: 1.75rem;
}
.drz-checkout-back__btn {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    font-size: .85rem;
    font-weight: 600;
    color: #64748b !important;
    text-decoration: none !important;
    padding: .55rem 1.1rem;
    border: 1.5px solid #e7e5e4;
    border-radius: 2rem;
    transition: all .2s;
    background: #fff;
}
.drz-checkout-back__btn:hover {
    color: var(--color-primary) !important;
    border-color: var(--color-primary);
    background: #f4f6f2;
}
.drz-checkout-back__title {
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 700;
    color: #1a2416;
}

/* ── Checkout: campos nombre y apellidos más grandes ── */
#billing_first_name,
#billing_last_name,
#shipping_first_name,
#shipping_last_name {
    font-size: 1rem !important;
    padding: .875rem 1.1rem !important;
    font-weight: 600 !important;
    color: #1e293b !important;
    background: #fff !important;
    border: 2px solid #dde5db !important;
}
#billing_first_name:focus,
#billing_last_name:focus,
#shipping_first_name:focus,
#shipping_last_name:focus {
    border-color: var(--color-primary) !important;
    box-shadow: 0 0 0 3px rgba(74,103,65,.1) !important;
}

/* Labels de nombre y apellidos más destacados */
#billing_first_name_field label,
#billing_last_name_field label,
#shipping_first_name_field label,
#shipping_last_name_field label {
    font-size: .82rem !important;
    font-weight: 800 !important;
    color: #1a2416 !important;
    letter-spacing: .03em !important;
}

/* ── Fix campos nombre/apellidos mismo tamaño que resto ── */
.woocommerce-billing-fields .form-row-first,
.woocommerce-billing-fields .form-row-last,
.woocommerce-shipping-fields .form-row-first,
.woocommerce-shipping-fields .form-row-last {
    width: 100% !important;
    float: none !important;
    clear: both !important;
}
#billing_first_name,
#billing_last_name,
#shipping_first_name,
#shipping_last_name {
    width: 100% !important;
    font-size: .9rem !important;
    padding: .75rem 1rem !important;
    font-weight: 500 !important;
    color: #1e293b !important;
    background: #f8faf7 !important;
    border: 1.5px solid #dde5db !important;
    border-radius: .625rem !important;
    box-sizing: border-box !important;
}
#billing_first_name:focus,
#billing_last_name:focus,
#shipping_first_name:focus,
#shipping_last_name:focus {
    border-color: var(--color-primary) !important;
    box-shadow: 0 0 0 3px rgba(74,103,65,.1) !important;
    outline: none !important;
}

/* ── Fix DEFINITIVO campos nombre/apellidos full width ── */
.woocommerce-checkout .form-row-first,
.woocommerce-checkout .form-row-last {
    width: 100% !important;
    float: none !important;
    clear: both !important;
    display: block !important;
    margin-right: 0 !important;
    padding: 0 !important;
}
.woocommerce-checkout p.form-row-first,
.woocommerce-checkout p.form-row-last {
    width: 100% !important;
    float: none !important;
}

/* ── Checkout topbar ── */
.drz-co-topbar {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 1rem !important;
    flex-wrap: wrap !important;
}
.drz-co-topbar__title {
    font-family: var(--font-display) !important;
    font-size: 1.5rem !important;
    font-weight: 800 !important;
    color: #1a2416 !important;
    margin: 0 !important;
    flex: 1 !important;
}
.drz-co-topbar__back {
    display: inline-flex !important;
    align-items: center !important;
    gap: .45rem !important;
    font-family: var(--font-sans) !important;
    font-size: .82rem !important;
    font-weight: 700 !important;
    color: #475569 !important;
    text-decoration: none !important;
    padding: .55rem 1.1rem .55rem .85rem !important;
    border: 1.5px solid #e7e5e4 !important;
    border-radius: 2rem !important;
    background: #fff !important;
    transition: all .2s !important;
    box-shadow: 0 1px 3px rgba(0,0,0,.06) !important;
}
.drz-co-topbar__back svg {
    color: var(--color-secondary) !important;
    flex-shrink: 0 !important;
}
.drz-co-topbar__back:hover {
    color: var(--color-primary) !important;
    border-color: var(--color-primary) !important;
    background: #f4f6f2 !important;
    box-shadow: 0 2px 8px rgba(74,103,65,.12) !important;
    transform: translateX(-2px) !important;
}
.drz-co-topbar__back:hover svg {
    color: var(--color-primary) !important;
}
.drz-co-topbar__secure {
    display: inline-flex !important;
    align-items: center !important;
    gap: .35rem !important;
    font-size: .78rem !important;
    font-weight: 700 !important;
    color: #4a6741 !important;
    background: #f0f6ee !important;
    border: 1.5px solid #c8dcc4 !important;
    border-radius: 2rem !important;
    padding: .5rem 1rem !important;
}
.drz-co-topbar__secure .material-icons-outlined {
    font-size: 15px !important;
    color: #4a6741 !important;
}
/* Ocultar el bloque anterior si quedó */
.drz-checkout-back { display: none !important; }
@media (max-width: 600px) {
    .drz-co-topbar__title { font-size: 1.2rem !important; }
    .drz-co-topbar { gap: .625rem !important; }
}

/* ════════════════════════════════════════════════════════════
   PÁGINA DE CONTACTO v1.0 — De Raíz
   ════════════════════════════════════════════════════════════ */

.drz-contact-page {
    font-family: var(--font-sans);
}

/* ── Hero ── */
.drz-contact-hero {
    background: linear-gradient(135deg, #1a2416 0%, #2d3d28 60%, #3a5232 100%);
    padding: 5rem 2rem 4rem;
    position: relative;
    overflow: hidden;
    text-align: center;
}
.drz-contact-hero::before {
    content: '';
    position: absolute;
    top: -100px; right: -100px;
    width: 400px; height: 400px;
    background: radial-gradient(circle, rgba(74,103,65,.3) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
}
.drz-contact-hero::after {
    content: '';
    position: absolute;
    bottom: -80px; left: -80px;
    width: 300px; height: 300px;
    background: radial-gradient(circle, rgba(166,139,109,.15) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
}
.drz-contact-hero__inner {
    position: relative;
    z-index: 1;
    max-width: 700px;
    margin: 0 auto;
}
.drz-contact-hero__eyebrow {
    display: inline-block;
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .12em;
    color: #a8d4a0;
    margin-bottom: 1rem;
    background: rgba(255,255,255,.08);
    padding: .35rem 1rem;
    border-radius: 2rem;
    border: 1px solid rgba(255,255,255,.12);
}
.drz-contact-hero__title {
    font-family: var(--font-display);
    font-size: clamp(2rem, 5vw, 3.25rem);
    font-weight: 800;
    color: #fff;
    margin: 0 0 1.25rem;
    line-height: 1.1;
}
.drz-contact-hero__sub {
    font-size: 1rem;
    color: rgba(255,255,255,.65);
    line-height: 1.7;
    margin: 0;
    max-width: 520px;
    margin-left: auto;
    margin-right: auto;
}

/* ── Grid ── */
.drz-contact-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: 3rem;
    padding: 4rem 1.5rem;
    max-width: 1100px;
    margin: 0 auto;
    align-items: start;
}
@media (max-width: 820px) {
    .drz-contact-grid { grid-template-columns: 1fr; gap: 2rem; padding: 2.5rem 1.25rem; }
    .drz-contact-hero { padding: 3.5rem 1.25rem 3rem; }
    .drz-contact-hero__title { font-size: clamp(1.75rem, 6vw, 2.5rem); }
}

/* ── Info contacto ── */
.drz-contact-info {
    margin-bottom: 2rem;
}
.drz-contact-info__title {
    font-family: var(--font-display);
    font-size: 1.1rem;
    font-weight: 700;
    color: #1a2416;
    margin: 0 0 1.25rem;
}
.drz-contact-info__items {
    display: flex;
    flex-direction: column;
    gap: .875rem;
}
.drz-contact-info__item {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: .875rem 1.1rem;
    background: #fff;
    border: 1px solid #e7e5e4;
    border-radius: .875rem;
    text-decoration: none !important;
    transition: all .2s;
    color: inherit;
}
.drz-contact-info__item:hover {
    border-color: var(--color-primary);
    box-shadow: 0 4px 16px rgba(74,103,65,.1);
    transform: translateX(4px);
}
.drz-contact-info__item--wa { border-color: #c8f0da; background: #f0faf4; }
.drz-contact-info__item--wa:hover { border-color: #25d366; box-shadow: 0 4px 16px rgba(37,211,102,.15); }
.drz-contact-info__icon {
    width: 40px; height: 40px;
    background: #f4f6f2;
    border-radius: .625rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-primary);
    flex-shrink: 0;
}
.drz-contact-info__item--wa .drz-contact-info__icon { background: #e8f8ee; color: #25d366; }
.drz-contact-info__label {
    display: block;
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: #94a3b8;
    margin-bottom: .15rem;
}
.drz-contact-info__val {
    display: block;
    font-size: .88rem;
    font-weight: 600;
    color: #1e293b;
}

/* ── Redes sociales ── */
.drz-contact-social { margin-bottom: 2rem; }
.drz-contact-social__title {
    font-size: .75rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: #94a3b8;
    margin: 0 0 .875rem;
}
.drz-contact-social__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .625rem;
}
.drz-contact-social__item {
    display: flex;
    flex-direction: column;
    gap: .25rem;
    padding: .875rem 1rem;
    background: #f8faf7;
    border: 1px solid #e7e5e4;
    border-radius: .875rem;
    text-decoration: none !important;
    color: #1e293b;
    font-size: .85rem;
    font-weight: 700;
    transition: all .2s;
}
.drz-contact-social__item:hover {
    background: var(--color-primary);
    color: #fff;
    border-color: var(--color-primary);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(74,103,65,.2);
}
.drz-contact-social__item--wa:hover { background: #25d366; border-color: #25d366; box-shadow: 0 6px 20px rgba(37,211,102,.25); }
.drz-contact-social__handle {
    font-size: .72rem;
    font-weight: 500;
    color: #64748b;
    transition: color .2s;
}
.drz-contact-social__item:hover .drz-contact-social__handle { color: rgba(255,255,255,.75); }

/* ── Frase ── */
.drz-contact-quote {
    background: linear-gradient(135deg, #f4f6f2 0%, #f6f0e8 100%);
    border-left: 4px solid var(--color-primary);
    border-radius: 0 .875rem .875rem 0;
    padding: 1.25rem 1.5rem;
    position: relative;
}
.drz-contact-quote__mark {
    font-family: var(--font-display);
    font-size: 4rem;
    color: var(--color-primary);
    opacity: .2;
    position: absolute;
    top: -.5rem;
    left: 1rem;
    line-height: 1;
}
.drz-contact-quote p {
    font-family: var(--font-display);
    font-size: 1rem;
    font-style: italic;
    color: #2d3d28;
    margin: 0;
    position: relative;
    z-index: 1;
    padding-left: .5rem;
}

/* ── Formulario ── */
.drz-contact-form-wrap {
    background: #fff;
    border: 1px solid #e7e5e4;
    border-radius: 1.375rem;
    padding: 2.5rem;
    box-shadow: 0 8px 40px rgba(0,0,0,.06);
}
.drz-contact-form-wrap__header {
    margin-bottom: 2rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid #f1f5f9;
}
.drz-contact-form-wrap__header h2 {
    font-family: var(--font-display);
    font-size: 1.5rem;
    font-weight: 800;
    color: #1a2416;
    margin: 0 0 .4rem;
}
.drz-contact-form-wrap__header p {
    font-size: .875rem;
    color: #64748b;
    margin: 0;
}
.drz-contact-form__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-bottom: 1rem;
}
@media (max-width: 520px) {
    .drz-contact-form__row { grid-template-columns: 1fr; }
    .drz-contact-form-wrap { padding: 1.5rem; }
}
.drz-contact-form__field {
    display: flex;
    flex-direction: column;
    gap: .4rem;
    margin-bottom: 1rem;
}
.drz-contact-form__field:last-child { margin-bottom: 0; }
.drz-contact-form__field label {
    font-size: .75rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: #374151;
}
.drz-contact-form__field label span { color: var(--color-primary); }
.drz-contact-form__field input,
.drz-contact-form__field select,
.drz-contact-form__field textarea {
    width: 100%;
    padding: .75rem 1rem;
    background: #f8faf7;
    border: 1.5px solid #e7e5e4;
    border-radius: .625rem;
    font-family: var(--font-sans);
    font-size: .9rem;
    color: #1e293b;
    transition: all .2s;
    box-sizing: border-box;
    outline: none;
}
.drz-contact-form__field input:focus,
.drz-contact-form__field select:focus,
.drz-contact-form__field textarea:focus {
    border-color: var(--color-primary);
    background: #fff;
    box-shadow: 0 0 0 3px rgba(74,103,65,.1);
}
.drz-contact-form__field textarea { resize: vertical; min-height: 130px; }
.drz-contact-form__submit {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    width: 100%;
    background: var(--color-primary);
    color: #fff;
    font-family: var(--font-sans);
    font-size: .95rem;
    font-weight: 700;
    padding: .95rem 2rem;
    border: none;
    border-radius: .75rem;
    cursor: pointer;
    transition: all .2s;
    margin-top: 1.25rem;
    letter-spacing: .02em;
}
.drz-contact-form__submit:hover {
    background: var(--color-primary-dark);
    transform: translateY(-1px);
    box-shadow: 0 8px 24px rgba(74,103,65,.25);
}

/* ── Success / Error ── */
.drz-contact-success {
    display: flex;
    align-items: center;
    gap: 1rem;
    background: #f0faf4;
    border: 1.5px solid #a8e6bc;
    border-radius: .875rem;
    padding: 1.1rem 1.25rem;
    margin-bottom: 1.5rem;
    color: #166534;
}
.drz-contact-success strong { display: block; font-weight: 700; margin-bottom: .15rem; }
.drz-contact-success p { margin: 0; font-size: .85rem; }
.drz-contact-error {
    display: flex;
    align-items: center;
    gap: .75rem;
    background: #fef2f2;
    border: 1.5px solid #fca5a5;
    border-radius: .875rem;
    padding: .875rem 1.1rem;
    margin-bottom: 1.25rem;
    color: #991b1b;
    font-size: .875rem;
    font-weight: 600;
}

/* ── Ocultar page header en contacto ── */
body.page-id-121 .page-header { display: none !important; }
body.page-id-121 .page-main { padding-top: 0 !important; }

/* ── Fix cart-count siempre visible cuando hay items ── */
.cart-count {
    display: flex !important;
}
.cart-count:empty,
.cart-count[data-count="0"] {
    display: none !important;
}





/* ── Cart count: oculto por defecto, visible con has-items ── */
.cart-count:not(.has-items) { display: none !important; }
.cart-count.has-items { display: flex !important; }

/* ── Comprobante de pago en checkout ── */
.drz-comprobante {
    background: #f4f6f2;
    border: 1.5px solid #dde5db;
    border-radius: 1rem;
    padding: 1.5rem;
    margin-top: 1.5rem;
}
.drz-comprobante__title {
    font-family: var(--font-display) !important;
    font-size: .95rem !important;
    font-weight: 800 !important;
    color: #1a2416 !important;
    margin: 0 0 1.1rem !important;
    display: flex;
    align-items: center;
    gap: .5rem;
}
.drz-comprobante__title::before {
    content: '';
    display: inline-block;
    width: 4px; height: 18px;
    background: var(--color-primary);
    border-radius: 2px;
}
.drz-comprobante-section {
    background: #fff;
    border: 1px solid #e7e5e4;
    border-radius: .75rem;
    padding: 1.25rem;
    margin-top: 1rem;
}
.drz-comprobante-select select {
    background: #fff !important;
    border: 2px solid var(--color-primary) !important;
    font-weight: 700 !important;
    color: #1a2416 !important;
}

/* ── Ocultar texto (opcional) en campos del comprobante ── */
.drz-comprobante .optional {
    display: none !important;
}
/* ── Mostrar asterisco en labels de campos dentro de sección activa ── */
.drz-comprobante-boleta.active .form-row label abbr,
.drz-comprobante-factura.active .form-row label abbr,
.drz-comprobante-boleta.active .form-row label::after,
.drz-comprobante-factura.active .form-row label::after {
    content: ' *' !important;
    color: #e53e3e !important;
    font-weight: 700 !important;
}

/* ── Ocultar (opcional) en comprobante con máxima especificidad ── */
.woocommerce .drz-comprobante span.optional,
.woocommerce-page .drz-comprobante span.optional,
form.checkout .drz-comprobante span.optional {
    display: none !important;
    visibility: hidden !important;
}

/* ── Centrar imágenes de productos en catálogo ── */
.woocommerce ul.products li.product img,
.woocommerce-page ul.products li.product img,
.ccard-image img,
.product-image img {
    object-fit: contain !important;
    object-position: center center !important;
    width: 100% !important;
    height: 100% !important;
}

/* ── Centrar imágenes ccard ── */
.ccard-img {
    object-fit: contain !important;
    object-position: center center !important;
}

/* ── Fix imagen centrada en card producto ── */
.ccard-img {
    object-fit: contain !important;
    object-position: center center !important;
    padding: 1rem !important;
    width: 100% !important;
    height: 100% !important;
}
.ccard-img-wrap {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* ── Sección video split 50/50 ── */
.drz-video-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    align-items: center;
}
@media (max-width: 768px) {
    .drz-video-split { grid-template-columns: 1fr; gap: 2rem; }
}
.drz-video-col { border-radius: 1rem; overflow: hidden; }
.drz-video-el {
    width: 100%;
    height: auto;
    border-radius: 1rem;
    display: block;
}
.drz-video-eyebrow {
    display: inline-block;
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .12em;
    color: var(--color-primary);
    background: rgba(74,103,65,.1);
    padding: .35rem 1rem;
    border-radius: 2rem;
    margin-bottom: 1rem;
}
.drz-video-title {
    font-family: var(--font-display) !important;
    font-size: clamp(1.5rem, 3vw, 2.25rem) !important;
    font-weight: 800 !important;
    color: #1a2416 !important;
    margin: 0 0 1rem !important;
    line-height: 1.15 !important;
}
.drz-video-sub {
    font-size: .95rem;
    color: #64748b;
    line-height: 1.7;
    margin: 0 0 1.75rem;
}
.drz-video-blist {
    list-style: none;
    margin: 0 0 2rem;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
}
.drz-video-blist li {
    display: flex;
    align-items: flex-start;
    gap: .875rem;
}
.drz-video-blist__icon {
    font-size: 1.25rem;
    flex-shrink: 0;
    margin-top: .1rem;
}
.drz-video-blist strong {
    display: block;
    font-size: .9rem;
    font-weight: 700;
    color: #1e293b;
    margin-bottom: .2rem;
}
.drz-video-blist p {
    font-size: .82rem;
    color: #64748b;
    margin: 0;
    line-height: 1.5;
}
.drz-video-cta {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
}

/* ════════════════════════════════════════════════════════════
   SECCIÓN VIDEO + BENEFICIOS SPLIT
   ════════════════════════════════════════════════════════════ */

.video-benefits-section {
    background: linear-gradient(135deg, #f4f6f2 0%, #fdfcf9 100%);
    padding: 5rem 0;
}

.video-benefits-grid {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 4rem;
    align-items: center;
}

@media (max-width: 900px) {
    .video-benefits-grid { grid-template-columns: 1fr !important; gap: 2.5rem; }
}

/* ── Columna video ── */
.video-column { position: relative; }

.video-header { margin-bottom: 1.25rem; }

.video-eyebrow {
    display: inline-block;
    font-size: .75rem;
    font-weight: 700;
    color: var(--color-secondary);
    letter-spacing: .08em;
    text-transform: uppercase;
    margin-bottom: .5rem;
}

.video-title {
    font-family: var(--font-display) !important;
    font-size: clamp(1.75rem, 3vw, 2.5rem) !important;
    font-weight: 800 !important;
    color: #1a2416 !important;
    margin: 0 !important;
    line-height: 1.15 !important;
}

.video-title-accent {
    color: var(--color-primary);
    font-style: italic;
}

.video-container {
    border-radius: 1.25rem;
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(0,0,0,.12);
    background: #000;
}

.custom-video {
    width: 100% !important;
    height: auto !important;
    display: block !important;
    border-radius: 1.25rem;
}

/* ── Columna beneficios ── */
.benefits-list-wrapper { padding: 0; }

.benefits-badge {
    display: inline-block;
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--color-primary);
    background: rgba(74,103,65,.1);
    padding: .4rem 1rem;
    border-radius: 2rem;
    margin-bottom: 1rem;
}

.benefits-title {
    font-family: var(--font-display) !important;
    font-size: clamp(1.25rem, 2.5vw, 1.75rem) !important;
    font-weight: 800 !important;
    color: #1a2416 !important;
    margin: 0 0 .875rem !important;
    line-height: 1.2 !important;
}

.benefits-description {
    font-size: .9rem;
    color: #64748b;
    line-height: 1.7;
    margin: 0 0 2rem;
}

.benefits-feature-list {
    list-style: none !important;
    margin: 0 0 2rem !important;
    padding: 0 !important;
    display: flex;
    flex-direction: column;
    gap: 1.1rem;
}

.benefit-feature {
    display: flex !important;
    align-items: flex-start !important;
    gap: 1rem !important;
    padding: 1rem 1.25rem !important;
    background: #fff !important;
    border: 1px solid #e7efe5 !important;
    border-radius: .875rem !important;
    transition: all .2s !important;
    list-style: none !important;
}

.benefit-feature:hover {
    border-color: var(--color-primary);
    box-shadow: 0 4px 16px rgba(74,103,65,.1);
    transform: translateX(4px);
}

.feature-icon-wrapper {
    width: 42px;
    height: 42px;
    background: var(--color-primary);
    border-radius: .625rem;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.feature-icon {
    color: #fff !important;
    font-size: 20px !important;
}

.feature-text h4 {
    font-size: .9rem !important;
    font-weight: 700 !important;
    color: #1e293b !important;
    margin: 0 0 .25rem !important;
}

.feature-text p {
    font-size: .8rem !important;
    color: #64748b !important;
    margin: 0 !important;
    line-height: 1.5 !important;
}

.benefits-cta {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}

/* ── Video llena todo el contenedor ── */
.video-column {
    position: relative;
    min-height: 400px;
}
.video-wrapper {
    height: 100%;
    display: flex;
    flex-direction: column;
}
.video-container {
    flex: 1;
    border-radius: 1.25rem;
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(0,0,0,.15);
    background: #1a2416;
    min-height: 350px;
    position: relative;
}
.custom-video {
    width: 100% !important;
    height: 100% !important;
    min-height: 350px !important;
    object-fit: cover !important;
    display: block !important;
    border-radius: 1.25rem !important;
}
/* ── Quitar menú de descarga (3 puntitos) ── */
.custom-video::-webkit-media-controls-overflow-button {
    display: none !important;
}
.custom-video::-webkit-media-controls-enclosure {
    border-radius: 0 0 1.25rem 1.25rem;
}
/* ── Estilo botón Conocer más ── */
.benefits-cta a:not(.btn-primary) {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    font-size: .875rem;
    font-weight: 700;
    color: var(--color-primary) !important;
    text-decoration: none !important;
    padding: .65rem 1.25rem;
    border: 2px solid var(--color-primary);
    border-radius: 2rem;
    transition: all .2s;
}
.benefits-cta a:not(.btn-primary):hover {
    background: var(--color-primary);
    color: #fff !important;
}

/* ── Video section: menos padding superior ── */
.video-benefits-section {
    padding: 2rem 0 4rem !important;
}

/* ── Video ocupa todo el alto del grid ── */
.video-benefits-grid {
    align-items: stretch !important;
}
.video-column {
    min-height: unset !important;
    display: flex !important;
    flex-direction: column !important;
}
.video-wrapper {
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
}
.video-container {
    flex: 1 !important;
    min-height: unset !important;
    display: flex !important;
    flex-direction: column !important;
}
.custom-video {
    flex: 1 !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 300px !important;
    object-fit: cover !important;
    border-radius: 1.25rem !important;
    cursor: pointer !important;
}

/* ── Custom play button overlay ── */
.video-container {
    position: relative !important;
}
.video-play-overlay {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(26,36,22,.35);
    border-radius: 1.25rem;
    cursor: pointer;
    transition: background .3s;
    z-index: 2;
}
.video-play-overlay:hover { background: rgba(26,36,22,.5); }
.video-play-overlay__btn {
    width: 72px; height: 72px;
    background: rgba(255,255,255,.95);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 32px rgba(0,0,0,.25);
    transition: transform .2s, box-shadow .2s;
}
.video-play-overlay:hover .video-play-overlay__btn {
    transform: scale(1.1);
    box-shadow: 0 12px 40px rgba(0,0,0,.3);
}
.video-play-overlay__btn svg {
    width: 28px; height: 28px;
    margin-left: 4px;
    fill: var(--color-primary);
}

/* ── Fix video: altura natural sin espacio vacío ── */
.video-benefits-grid {
    align-items: start !important;
}
.video-column {
    display: block !important;
    min-height: unset !important;
}
.video-wrapper {
    display: block !important;
}
.video-container {
    flex: unset !important;
    min-height: unset !important;
    display: block !important;
    border-radius: 1.25rem !important;
    overflow: hidden !important;
    background: #1a2416 !important;
}
.custom-video {
    width: 100% !important;
    height: auto !important;
    min-height: unset !important;
    object-fit: contain !important;
    display: block !important;
    border-radius: 1.25rem !important;
}

/* ── Video section premium ── */
.video-container {
    position: relative !important;
    border-radius: 1.25rem !important;
    overflow: hidden !important;
    background: #0d1a0f !important;
    box-shadow: 0 24px 64px rgba(0,0,0,.2) !important;
    cursor: pointer !important;
}
.custom-video {
    width: 100% !important;
    height: auto !important;
    display: block !important;
    object-fit: cover !important;
    border-radius: 1.25rem !important;
    min-height: 200px !important;
}
/* Play overlay */
.video-play-overlay {
    position: absolute !important;
    inset: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: linear-gradient(135deg, rgba(26,36,22,.5) 0%, rgba(74,103,65,.3) 100%) !important;
    border-radius: 1.25rem !important;
    transition: background .3s !important;
    z-index: 2 !important;
}
.video-play-overlay:hover {
    background: linear-gradient(135deg, rgba(26,36,22,.65) 0%, rgba(74,103,65,.45) 100%) !important;
}
.video-play-overlay__btn {
    width: 80px !important;
    height: 80px !important;
    background: rgba(255,255,255,.95) !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 0 8px 32px rgba(0,0,0,.3) !important;
    transition: transform .25s, box-shadow .25s !important;
    border: 3px solid rgba(74,103,65,.2) !important;
}
.video-play-overlay:hover .video-play-overlay__btn {
    transform: scale(1.12) !important;
    box-shadow: 0 16px 48px rgba(0,0,0,.35) !important;
}
.video-play-overlay__btn svg {
    width: 30px !important;
    height: 30px !important;
    margin-left: 5px !important;
    fill: #4a6741 !important;
}
/* Texto debajo del play */
.video-play-overlay::after {
    content: 'Ver video';
    position: absolute;
    bottom: 1.5rem;
    left: 50%;
    transform: translateX(-50%);
    font-family: var(--font-sans);
    font-size: .78rem;
    font-weight: 700;
    color: rgba(255,255,255,.9);
    letter-spacing: .08em;
    text-transform: uppercase;
    background: rgba(0,0,0,.25);
    padding: .3rem .875rem;
    border-radius: 2rem;
    white-space: nowrap;
}

/* ── Video poster y play button ── */
.video-container {
    position: relative !important;
    border-radius: 1.25rem !important;
    overflow: hidden !important;
    background: #0d1a0f !important;
    box-shadow: 0 20px 60px rgba(0,0,0,.18) !important;
}
.drz-video-poster {
    position: relative;
    cursor: pointer;
    border-radius: 1.25rem;
    overflow: hidden;
}
.drz-poster-img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
    border-radius: 1.25rem !important;
    transition: transform .4s ease !important;
}
.drz-video-poster:hover .drz-poster-img {
    transform: scale(1.03);
}
.drz-poster-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(26,36,22,.45) 0%, rgba(74,103,65,.25) 100%);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border-radius: 1.25rem;
    transition: background .3s;
}
.drz-video-poster:hover .drz-poster-overlay {
    background: linear-gradient(135deg, rgba(26,36,22,.6) 0%, rgba(74,103,65,.4) 100%);
}
.drz-play-btn {
    width: 80px;
    height: 80px;
    background: rgba(255,255,255,.95);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 32px rgba(0,0,0,.25), 0 0 0 8px rgba(255,255,255,.15);
    transition: transform .25s, box-shadow .25s;
    cursor: pointer;
}
.drz-video-poster:hover .drz-play-btn {
    transform: scale(1.12);
    box-shadow: 0 16px 48px rgba(0,0,0,.3), 0 0 0 12px rgba(255,255,255,.2);
}
.drz-play-btn svg {
    width: 32px;
    height: 32px;
    margin-left: 5px;
    fill: #4a6741;
}
.drz-play-label {
    margin-top: 1rem;
    font-family: var(--font-sans);
    font-size: .75rem;
    font-weight: 700;
    color: rgba(255,255,255,.95);
    letter-spacing: .1em;
    text-transform: uppercase;
    background: rgba(0,0,0,.25);
    padding: .35rem 1.1rem;
    border-radius: 2rem;
    backdrop-filter: blur(4px);
}
.custom-video {
    width: 100% !important;
    height: auto !important;
    display: block !important;
    border-radius: 1.25rem !important;
}

/* ── Fix poster cubre todo el contenedor ── */
.drz-video-poster {
    width: 100% !important;
}
.drz-poster-img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    min-height: 400px !important;
    max-height: 520px !important;
}
.video-container {
    background: transparent !important;
}

/* ── Video poster sin espacios blancos/negros ── */
.video-benefits-grid {
    align-items: stretch !important;
}
.video-column,
.video-wrapper,
.video-container,
.drz-video-poster {
    height: 100% !important;
    min-height: 480px !important;
}
.drz-poster-img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    min-height: unset !important;
    max-height: unset !important;
}
.drz-video-poster {
    position: relative !important;
    border-radius: 1.25rem !important;
    overflow: hidden !important;
}

/* ── Fix video section sin traslape ── */
.video-benefits-section {
    padding: 3rem 0 4rem !important;
    overflow: hidden !important;
}
.video-benefits-grid {
    align-items: start !important;
}
.video-column,
.video-wrapper,
.video-container,
.drz-video-poster {
    height: auto !important;
    min-height: unset !important;
}
.drz-poster-img {
    position: static !important;
    width: 100% !important;
    height: auto !important;
    object-fit: cover !important;
    object-position: center top !important;
    display: block !important;
    border-radius: 1.25rem !important;
    max-height: 600px !important;
}
.drz-video-poster {
    position: relative !important;
}
/* ── Beneficios más grandes ── */
.benefits-title {
    font-size: clamp(1.3rem, 2.5vw, 1.75rem) !important;
    margin-bottom: 1rem !important;
}
.benefits-description {
    font-size: 1rem !important;
    margin-bottom: 1.5rem !important;
}
.benefit-feature {
    padding: 1.1rem 1.375rem !important;
}
.feature-text h4 {
    font-size: 1rem !important;
    margin-bottom: .35rem !important;
}
.feature-text p {
    font-size: .88rem !important;
    line-height: 1.6 !important;
}
.benefits-feature-list {
    gap: .875rem !important;
}

/* ── Poster como background definitivo ── */
.drz-video-poster {
    position: relative !important;
    border-radius: 1.25rem !important;
    overflow: hidden !important;
    background-image: url('https://dev.deraizintegral.pe/wp-content/uploads/2026/04/herocardomariano.png') !important;
    background-size: cover !important;
    background-position: center top !important;
    background-color: #f4f6f2 !important;
    min-height: 480px !important;
    cursor: pointer !important;
}
.drz-poster-img {
    display: none !important;
}
.drz-poster-overlay {
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(135deg, rgba(26,36,22,.35) 0%, rgba(74,103,65,.2) 100%) !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 1.25rem !important;
    transition: background .3s !important;
}
.drz-video-poster:hover .drz-poster-overlay {
    background: linear-gradient(135deg, rgba(26,36,22,.55) 0%, rgba(74,103,65,.35) 100%) !important;
}

/* ── Fix fondo blanco de la imagen con gradiente ── */
.drz-video-poster::after {
    content: '' !important;
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 40% !important;
    background: linear-gradient(to top, #f4f6f2 0%, transparent 100%) !important;
    z-index: 0 !important;
    pointer-events: none !important;
}
.drz-poster-overlay {
    z-index: 1 !important;
}

/* ── Ocultar video element completamente cuando no se usa ── */
#drz-video[style*="display:none"],
#drz-video[style*="display: none"] {
    height: 0 !important;
    width: 0 !important;
    position: absolute !important;
    visibility: hidden !important;
}
/* ── Imagen poster de vitamina D sin fondo blanco ── */
.drz-video-poster {
    background-image: url('https://dev.deraizintegral.pe/wp-content/uploads/2026/04/herovitaminadsinlogo.png') !important;
    background-color: #2d3d28 !important;
    min-height: 520px !important;
}

/* ════════════════════════════════════════════════════════════
   CARDS DE CATEGORÍA — Rediseño premium
   ════════════════════════════════════════════════════════════ */

.categories-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 1.5rem !important;
}
@media (max-width: 768px) {
    .categories-grid { grid-template-columns: 1fr !important; }
}
@media (min-width: 540px) and (max-width: 768px) {
    .categories-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

.drz-cat-card {
    border-radius: 1.25rem !important;
    overflow: hidden !important;
    box-shadow: 0 8px 32px rgba(0,0,0,.08) !important;
    transition: transform .3s, box-shadow .3s !important;
    background: #fff !important;
    cursor: pointer !important;
    text-decoration: none !important;
    display: flex !important;
    flex-direction: column !important;
}
.drz-cat-card:hover {
    transform: translateY(-6px) !important;
    box-shadow: 0 20px 56px rgba(0,0,0,.15) !important;
}

.drz-cat-img {
    height: 220px !important;
    background-size: cover !important;
    background-position: center !important;
    position: relative !important;
    transition: transform .5s !important;
}
.drz-cat-card:hover .drz-cat-img {
    transform: scale(1.04) !important;
}
.drz-cat-overlay {
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(180deg, transparent 40%, rgba(26,36,22,.4) 100%) !important;
}

.drz-cat-content {
    padding: 1.25rem 1.375rem 1.375rem !important;
    background: #fff !important;
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: .5rem !important;
}
.drz-cat-name {
    font-family: var(--font-display) !important;
    font-size: 1.05rem !important;
    font-weight: 800 !important;
    color: #1a2416 !important;
    margin: 0 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}
.drz-cat-desc {
    font-size: .82rem !important;
    color: #64748b !important;
    margin: 0 !important;
    line-height: 1.5 !important;
    flex: 1 !important;
}
.drz-cat-link {
    display: inline-flex !important;
    align-items: center !important;
    gap: .4rem !important;
    font-size: .8rem !important;
    font-weight: 700 !important;
    color: var(--color-primary) !important;
    text-decoration: none !important;
    margin-top: .25rem !important;
    transition: gap .2s !important;
}
.drz-cat-card:hover .drz-cat-link {
    gap: .65rem !important;
}

/* ════════════════════════════════════════════════════════════
   FONDO CON TEXTURA SUAVE + PARALLAX CATEGORÍAS
   ════════════════════════════════════════════════════════════ */

/* Textura SVG suave en el body */
body::before {
    content: '';
    position: fixed;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%234a6741' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    pointer-events: none;
    z-index: 0;
}

/* Parallax en cards de categoría */
.drz-cat-img {
    background-attachment: fixed !important;
}
@media (max-width: 768px) {
    .drz-cat-img { background-attachment: scroll !important; }
}

/* ════════════════════════════════════════════════════════════
   PRODUCTOS MÁS VENDIDOS — Fix imagen completa
   ════════════════════════════════════════════════════════════ */

.products-grid {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 1.25rem !important;
}
@media (max-width: 900px) { .products-grid { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 480px) { .products-grid { grid-template-columns: 1fr !important; } }

.product-card {
    background: #fff !important;
    border-radius: 1.125rem !important;
    overflow: hidden !important;
    box-shadow: 0 4px 20px rgba(0,0,0,.06) !important;
    transition: transform .3s, box-shadow .3s !important;
    display: flex !important;
    flex-direction: column !important;
}
.product-card:hover {
    transform: translateY(-4px) !important;
    box-shadow: 0 12px 40px rgba(0,0,0,.12) !important;
}
.product-image-container {
    position: relative !important;
    overflow: hidden !important;
    background: #f4f6f2 !important;
    aspect-ratio: 1 / 1 !important;
    width: 100% !important;
}
.product-image {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
    display: block !important;
    padding: .75rem !important;
    box-sizing: border-box !important;
    transition: transform .4s !important;
}
.product-card:hover .product-image {
    transform: scale(1.06) !important;
}
.product-image-link {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
}
.product-details {
    padding: 1rem 1.125rem 1.25rem !important;
    display: flex !important;
    flex-direction: column !important;
    gap: .35rem !important;
    flex: 1 !important;
}
.product-category {
    font-size: .68rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: .08em !important;
    color: var(--color-primary) !important;
}
.product-title {
    font-size: .9rem !important;
    font-weight: 700 !important;
    color: #1e293b !important;
    margin: 0 !important;
    line-height: 1.3 !important;
}
.product-title a {
    color: inherit !important;
    text-decoration: none !important;
}
.product-footer {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin-top: auto !important;
    padding-top: .625rem !important;
    border-top: 1px solid #f1f5f9 !important;
}
.product-price {
    font-size: 1rem !important;
    font-weight: 800 !important;
    color: var(--color-primary) !important;
}
.add-to-cart-btn {
    width: 36px !important;
    height: 36px !important;
    background: var(--color-primary) !important;
    color: #fff !important;
    border-radius: .5rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-decoration: none !important;
    transition: background .2s !important;
    flex-shrink: 0 !important;
}
.add-to-cart-btn:hover { background: var(--color-primary-dark) !important; }
.add-to-cart-btn .material-icons-outlined { font-size: 18px !important; }

/* ════════════════════════════════════════════════════════════
   BOTÓN ADD TO CART PREMIUM CON CONFIRMACIÓN
   ════════════════════════════════════════════════════════════ */

.drz-add-btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: .4rem !important;
    background: var(--color-primary) !important;
    color: #fff !important;
    border: none !important;
    border-radius: .625rem !important;
    padding: .55rem .875rem !important;
    font-family: var(--font-sans) !important;
    font-size: .78rem !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    transition: background .2s, transform .15s !important;
    position: relative !important;
    overflow: hidden !important;
    white-space: nowrap !important;
}
.drz-add-btn:hover {
    background: var(--color-primary-dark) !important;
    transform: scale(1.04) !important;
}
.drz-add-btn__icon {
    position: relative !important;
    width: 18px !important;
    height: 18px !important;
    flex-shrink: 0 !important;
}
.drz-add-btn__cart,
.drz-add-btn__check {
    position: absolute !important;
    top: 0 !important; left: 0 !important;
    font-size: 18px !important;
    transition: opacity .3s, transform .3s !important;
}
.drz-add-btn__check {
    opacity: 0 !important;
    transform: scale(0) rotate(-45deg) !important;
}
.drz-add-btn__label {
    transition: opacity .2s !important;
}

/* Estado loading */
.drz-add-btn.loading {
    opacity: .7 !important;
    pointer-events: none !important;
}
.drz-add-btn.loading .drz-add-btn__cart {
    animation: drz-spin .6s linear infinite !important;
}
@keyframes drz-spin {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

/* Estado added — confirmación verde */
.drz-add-btn.added {
    background: #22c55e !important;
    transform: scale(1.02) !important;
}
.drz-add-btn.added .drz-add-btn__cart {
    opacity: 0 !important;
    transform: scale(0) !important;
}
.drz-add-btn.added .drz-add-btn__check {
    opacity: 1 !important;
    transform: scale(1) rotate(0deg) !important;
}
.drz-add-btn.added .drz-add-btn__label::before {
    content: '¡Añadido!' !important;
}
.drz-add-btn.added .drz-add-btn__label {
    font-size: 0 !important;
}
.drz-add-btn.added .drz-add-btn__label::before {
    font-size: .78rem !important;
}

/* ── Quitar parallax en categorías ── */
.drz-cat-img {
    background-attachment: scroll !important;
}

/* ── Filosofía imagen más alta ── */
.philosophy-image-container {
    min-height: 600px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
}
.philosophy-image-wrapper {
    flex: 1 !important;
    min-height: 480px !important;
}
.philosophy-image {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center top !important;
    min-height: 480px !important;
    border-radius: 1.25rem !important;
}

/* ════════════════════════════════════════════════════════════
   BENEFICIOS — Rediseño premium
   ════════════════════════════════════════════════════════════ */
.benefits-section {
    background: linear-gradient(135deg, #1a2416 0%, #2d3d28 50%, #3a5232 100%) !important;
    padding: 4rem 0 !important;
    position: relative !important;
    overflow: hidden !important;
}
.benefits-section::before {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    background-image: url("data:image/svg+xml,%3Csvg width='80' height='80' viewBox='0 0 80 80' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M50 50c0-5.523 4.477-10 10-10s10 4.477 10 10-4.477 10-10 10c0 5.523-4.477 10-10 10s-10-4.477-10-10 4.477-10 10-10zM10 10c0-5.523 4.477-10 10-10s10 4.477 10 10-4.477 10-10 10c0 5.523-4.477 10-10 10S0 25.523 0 20s4.477-10 10-10z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E") !important;
    pointer-events: none !important;
}
.benefits-grid {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 1.5rem !important;
    position: relative !important;
    z-index: 1 !important;
}
@media (max-width: 900px) { .benefits-grid { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 480px) { .benefits-grid { grid-template-columns: 1fr !important; } }

.benefit-item {
    background: rgba(255,255,255,.07) !important;
    border: 1px solid rgba(255,255,255,.1) !important;
    border-radius: 1.125rem !important;
    padding: 1.75rem 1.375rem !important;
    text-align: center !important;
    transition: background .3s, transform .3s !important;
    backdrop-filter: blur(8px) !important;
}
.benefit-item:hover {
    background: rgba(255,255,255,.12) !important;
    transform: translateY(-4px) !important;
}
.benefit-icon {
    font-size: 2rem !important;
    color: #86efac !important;
    margin-bottom: .875rem !important;
    display: block !important;
}
.benefit-item h4 {
    font-size: .95rem !important;
    font-weight: 800 !important;
    color: #fff !important;
    margin: 0 0 .4rem !important;
}
.benefit-item p {
    font-size: .78rem !important;
    color: rgba(255,255,255,.65) !important;
    margin: 0 !important;
    line-height: 1.5 !important;
}

/* ── Quitar parallax en categorías ── */
.drz-cat-img {
    background-attachment: scroll !important;
}

/* ── Filosofía: imagen más alta ── */
.philosophy-image-container {
    min-height: 600px !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
}
.philosophy-image-wrapper {
    flex: 1 !important;
    min-height: 500px !important;
}
.philosophy-image {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    min-height: 500px !important;
    border-radius: 1.25rem !important;
}

/* ════════════════════════════════════════════════════════════
   BENEFICIOS — Rediseño premium en cards
   ════════════════════════════════════════════════════════════ */
.benefits-section {
    background: linear-gradient(135deg, #f4f6f2 0%, #fdfcf9 100%) !important;
    padding: 3rem 0 !important;
}
.benefits-grid {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 1.25rem !important;
}
@media (max-width: 900px) { .benefits-grid { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 480px) { .benefits-grid { grid-template-columns: 1fr !important; } }

.benefit-item {
    background: #fff !important;
    border-radius: 1.125rem !important;
    padding: 1.75rem 1.375rem !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: .75rem !important;
    box-shadow: 0 4px 20px rgba(0,0,0,.05) !important;
    border: 1px solid #e7efe5 !important;
    transition: transform .25s, box-shadow .25s !important;
    position: relative !important;
    overflow: hidden !important;
}
.benefit-item::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important; left: 0 !important;
    width: 4px !important;
    height: 100% !important;
    background: var(--color-primary) !important;
    border-radius: 4px 0 0 4px !important;
}
.benefit-item:hover {
    transform: translateY(-4px) !important;
    box-shadow: 0 12px 36px rgba(74,103,65,.12) !important;
}
.benefit-icon {
    font-size: 28px !important;
    color: var(--color-primary) !important;
    background: rgba(74,103,65,.1) !important;
    width: 52px !important;
    height: 52px !important;
    border-radius: .75rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
}
.benefit-item h4 {
    font-size: .95rem !important;
    font-weight: 800 !important;
    color: #1a2416 !important;
    margin: 0 !important;
}
.benefit-item p {
    font-size: .82rem !important;
    color: #64748b !important;
    margin: 0 !important;
    line-height: 1.5 !important;
}

/* ── Fix filosofía: imagen ocupa todo el alto sin espacio vacío ── */
.philosophy-image-container {
    min-height: unset !important;
    position: relative !important;
}
.philosophy-image-wrapper {
    min-height: unset !important;
    position: relative !important;
}
.philosophy-image {
    min-height: unset !important;
    width: 100% !important;
    height: auto !important;
    object-fit: cover !important;
    display: block !important;
    border-radius: 1.25rem !important;
}
.philosophy-quote {
    position: absolute !important;
    bottom: 1.5rem !important;
    left: 1.5rem !important;
    right: 1.5rem !important;
    background: rgba(255,255,255,.92) !important;
    backdrop-filter: blur(8px) !important;
    border-radius: .875rem !important;
    padding: 1.125rem 1.375rem !important;
    box-shadow: 0 4px 24px rgba(0,0,0,.1) !important;
    margin: 0 !important;
}

/* ── Filosofía: imagen más alta, quote no tapa ── */
.philosophy-grid {
    align-items: stretch !important;
}
.philosophy-image-container {
    position: relative !important;
    min-height: 580px !important;
    display: flex !important;
    flex-direction: column !important;
}
.philosophy-image-wrapper {
    flex: 1 !important;
    position: relative !important;
    border-radius: 1.25rem !important;
    overflow: hidden !important;
    min-height: 580px !important;
}
.philosophy-image {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center top !important;
    border-radius: 1.25rem !important;
    min-height: unset !important;
}
/* Gradiente oscuro en la parte inferior para que el quote sea legible */
.philosophy-image-wrapper::after {
    content: '' !important;
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(to bottom, transparent 45%, rgba(10,20,8,.65) 100%) !important;
    border-radius: 1.25rem !important;
    z-index: 1 !important;
    pointer-events: none !important;
}
/* Quote encima del gradiente */
.philosophy-quote {
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    background: transparent !important;
    backdrop-filter: none !important;
    box-shadow: none !important;
    border-radius: 0 0 1.25rem 1.25rem !important;
    padding: 1.75rem 1.75rem 1.5rem !important;
    z-index: 2 !important;
    margin: 0 !important;
}
.philosophy-quote p {
    color: rgba(255,255,255,.95) !important;
    font-family: var(--font-display) !important;
    font-size: 1.05rem !important;
    font-style: italic !important;
    font-weight: 500 !important;
    line-height: 1.6 !important;
    margin: 0 0 .5rem !important;
    text-shadow: 0 1px 4px rgba(0,0,0,.3) !important;
}
.quote-author {
    color: rgba(255,255,255,.75) !important;
    font-size: .72rem !important;
    font-weight: 700 !important;
    letter-spacing: .1em !important;
    text-transform: uppercase !important;
    text-shadow: 0 1px 3px rgba(0,0,0,.3) !important;
}

/* ════════════════════════════════════════════════════════════
   DARK MODE — Secciones nuevas
   ════════════════════════════════════════════════════════════ */

/* Video + Beneficios */
.dark .video-benefits-section {
    background: #0f130f !important;
}
.dark .video-eyebrow { color: #a3b899 !important; }
.dark .video-title { color: #f1f5f9 !important; }
.dark .video-title-accent { color: #86a87c !important; }
.dark .benefits-badge { background: rgba(134,168,124,.15) !important; color: #86a87c !important; }
.dark .benefits-title { color: #f1f5f9 !important; }
.dark .benefits-description { color: #94a3b8 !important; }
.dark .benefit-feature {
    background: #1a201a !important;
    border-color: rgba(255,255,255,.06) !important;
}
.dark .feature-text h4 { color: #f1f5f9 !important; }
.dark .feature-text p { color: #94a3b8 !important; }

/* Categorías */
.dark .drz-cat-card {
    background: #1a201a !important;
    box-shadow: 0 4px 20px rgba(0,0,0,.2) !important;
}
.dark .drz-cat-content { background: #1a201a !important; }
.dark .drz-cat-name { color: #f1f5f9 !important; }
.dark .drz-cat-desc { color: #94a3b8 !important; }

/* Beneficios strip */
.dark .benefits-section { background: #0f130f !important; }
.dark .benefit-item {
    background: #1a201a !important;
    border-color: rgba(255,255,255,.06) !important;
}
.dark .benefit-item h4 { color: #f1f5f9 !important; }
.dark .benefit-item p { color: #94a3b8 !important; }

/* Filosofía */
.dark .philosophy-section { background: #0f130f !important; }
.dark .philosophy-subtitle { color: #86a87c !important; }
.dark .philosophy-title { color: #f1f5f9 !important; }
.dark .philosophy-features li { background: #1a201a !important; border-color: rgba(255,255,255,.06) !important; }
.dark .philosophy-features h5 { color: #f1f5f9 !important; }
.dark .philosophy-features p { color: #94a3b8 !important; }
.dark .philosophy-link { color: #86a87c !important; }

/* Newsletter */
.dark .newsletter-section { background: #1a201a !important; }
.dark .newsletter-wrapper h2 { color: #f1f5f9 !important; }
.dark .newsletter-wrapper p { color: #94a3b8 !important; }
.dark .newsletter-disclaimer { color: #64748b !important; }

/* Productos más vendidos */
.dark .bg-light { background: #0f130f !important; }
.dark .section-header-left h2 { color: #f1f5f9 !important; }
.dark .product-card {
    background: #1a201a !important;
    box-shadow: 0 4px 16px rgba(0,0,0,.2) !important;
}
.dark .product-image-container { background: #1e241e !important; }
.dark .product-title a { color: #f1f5f9 !important; }
.dark .product-category { color: #86a87c !important; }
.dark .product-footer { border-top-color: rgba(255,255,255,.06) !important; }

/* Sección categorías header */
.dark .section-header h2 { color: #f1f5f9 !important; }
.dark .section-divider { background: #4a6741 !important; }

/* ════════════════════════════════════════════════════════════
   BENEFICIOS STRIP — Rediseño UX/UI premium con pasteles
   ════════════════════════════════════════════════════════════ */

.benefits-section {
    background: #fdfcf9 !important;
    padding: 3.5rem 0 !important;
}
.benefits-grid {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 1.25rem !important;
}
@media (max-width: 900px) { .benefits-grid { grid-template-columns: repeat(2,1fr) !important; } }
@media (max-width: 480px) { .benefits-grid { grid-template-columns: 1fr !important; } }

.benefit-item {
    background: #fff !important;
    border-radius: 1.25rem !important;
    padding: 1.75rem 1.5rem !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: .875rem !important;
    box-shadow: 0 2px 16px rgba(0,0,0,.05) !important;
    border: 1.5px solid transparent !important;
    transition: transform .25s, box-shadow .25s, border-color .25s !important;
    position: relative !important;
    overflow: hidden !important;
}
.benefit-item:hover {
    transform: translateY(-5px) !important;
    box-shadow: 0 16px 40px rgba(0,0,0,.1) !important;
}

/* Colores pasteles por ítem */
.benefit-item:nth-child(1) { border-color: #bfe0d4 !important; }
.benefit-item:nth-child(1) .benefit-icon { background: #e0f5ee !important; color: #2a9d7a !important; }
.benefit-item:nth-child(1)::before { background: #2a9d7a !important; }

.benefit-item:nth-child(2) { border-color: #bdd4f0 !important; }
.benefit-item:nth-child(2) .benefit-icon { background: #deeafe !important; color: #2563eb !important; }
.benefit-item:nth-child(2)::before { background: #2563eb !important; }

.benefit-item:nth-child(3) { border-color: #f5d9a8 !important; }
.benefit-item:nth-child(3) .benefit-icon { background: #fef3db !important; color: #d97706 !important; }
.benefit-item:nth-child(3)::before { background: #d97706 !important; }

.benefit-item:nth-child(4) { border-color: #d4bff0 !important; }
.benefit-item:nth-child(4) .benefit-icon { background: #ede9fe !important; color: #7c3aed !important; }
.benefit-item:nth-child(4)::before { background: #7c3aed !important; }

.benefit-item::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important; left: 0 !important;
    width: 100% !important;
    height: 4px !important;
    border-radius: 1.25rem 1.25rem 0 0 !important;
}
.benefit-icon {
    width: 52px !important;
    height: 52px !important;
    border-radius: .875rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
    font-size: 0 !important;
}
.benefit-icon .material-icons-outlined {
    font-size: 24px !important;
}
.benefit-item h4 {
    font-size: 1rem !important;
    font-weight: 800 !important;
    color: #1a2416 !important;
    margin: 0 !important;
    line-height: 1.2 !important;
}
.benefit-item p {
    font-size: .84rem !important;
    color: #64748b !important;
    margin: 0 !important;
    line-height: 1.6 !important;
}

/* Dark mode beneficios */
.dark .benefits-section { background: #0f130f !important; }
.dark .benefit-item { background: #1a201a !important; border-color: rgba(255,255,255,.08) !important; }
.dark .benefit-item h4 { color: #f1f5f9 !important; }
.dark .benefit-item p { color: #94a3b8 !important; }
.dark .benefit-item:nth-child(1) .benefit-icon { background: rgba(42,157,122,.15) !important; }
.dark .benefit-item:nth-child(2) .benefit-icon { background: rgba(37,99,235,.15) !important; }
.dark .benefit-item:nth-child(3) .benefit-icon { background: rgba(217,119,6,.15) !important; }
.dark .benefit-item:nth-child(4) .benefit-icon { background: rgba(124,58,237,.15) !important; }

/* ════════════════════════════════════════════════════════════
   TIENDA — Rediseño premium
   ════════════════════════════════════════════════════════════ */

.drz-shop-wrap { background: var(--color-background); min-height: 80vh; }

/* Hero tienda */
.drz-shop-hero {
    background: linear-gradient(135deg, #1a2416 0%, #2d4a25 100%);
    padding: 3rem 0 2rem;
    margin-bottom: 0;
}
.drz-shop-hero__inner { text-align: center; }
.drz-shop-hero__eyebrow {
    display: inline-block;
    font-size: .75rem;
    font-weight: 700;
    color: rgba(255,255,255,.7);
    letter-spacing: .1em;
    text-transform: uppercase;
    margin-bottom: .75rem;
}
.drz-shop-hero__title {
    font-family: var(--font-display) !important;
    font-size: clamp(1.75rem, 4vw, 2.75rem) !important;
    font-weight: 800 !important;
    color: #fff !important;
    margin: 0 0 .5rem !important;
}
.drz-shop-hero__sub {
    font-size: .95rem;
    color: rgba(255,255,255,.65);
    margin: 0;
}

/* Filtros */
.drz-cat-filters-wrap {
    background: #fff;
    border-bottom: 1px solid #e7efe5;
    padding: 1.5rem 0;
    position: sticky;
    top: var(--header-h, 80px);
    z-index: 40;
    box-shadow: 0 2px 16px rgba(0,0,0,.06);
}
.drz-cat-filters {
    display: flex;
    gap: 1rem;
    overflow-x: auto;
    padding-bottom: .25rem;
    scrollbar-width: none;
}
.drz-cat-filters::-webkit-scrollbar { display: none; }

.drz-cat-filter {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .5rem;
    text-decoration: none !important;
    flex-shrink: 0;
    cursor: pointer;
    transition: transform .2s;
}
.drz-cat-filter:hover { transform: translateY(-2px); }

.drz-cat-filter__img-wrap {
    width: 72px;
    height: 72px;
    border-radius: 1rem;
    overflow: hidden;
    position: relative;
    border: 2.5px solid transparent;
    transition: border-color .2s, box-shadow .2s;
    display: flex;
    align-items: center;
    justify-content: center;
}
.drz-cat-filter.active .drz-cat-filter__img-wrap,
.drz-cat-filter:hover .drz-cat-filter__img-wrap {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(74,103,65,.15);
}
.drz-cat-filter__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}
.drz-cat-filter__fallback-icon {
    font-size: 28px !important;
}
.drz-cat-filter__icon-badge {
    position: absolute;
    bottom: -4px;
    right: -4px;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #fff;
}
.drz-cat-filter__icon-badge .material-icons-outlined {
    font-size: 13px !important;
    color: #fff !important;
}
.drz-cat-filter__name {
    font-size: .68rem;
    font-weight: 700;
    color: #64748b;
    text-align: center;
    text-transform: uppercase;
    letter-spacing: .05em;
    max-width: 72px;
    line-height: 1.2;
    transition: color .2s;
}
.drz-cat-filter.active .drz-cat-filter__name,
.drz-cat-filter:hover .drz-cat-filter__name {
    color: var(--color-primary);
}
.drz-cat-filter__count {
    font-size: .6rem;
    font-weight: 700;
    background: var(--color-primary);
    color: #fff;
    border-radius: 2rem;
    padding: .1rem .4rem;
    display: none;
}
.drz-cat-filter.active .drz-cat-filter__count { display: block; }

/* Topbar */
.drz-shop-content { padding: 2rem 0 4rem; }
.drz-shop-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 2rem;
    gap: 1rem;
    flex-wrap: wrap;
}
.drz-shop-topbar__title {
    font-family: var(--font-display) !important;
    font-size: 1.375rem !important;
    font-weight: 800 !important;
    color: #1a2416 !important;
    margin: 0 !important;
}
.drz-shop-topbar__count {
    font-size: .8rem;
    color: #94a3b8;
    margin: .2rem 0 0;
}
.drz-shop-topbar__sort {
    display: flex;
    align-items: center;
    gap: .5rem;
}
.drz-shop-topbar__sort-label {
    font-size: .82rem;
    color: #64748b;
    font-weight: 600;
}

/* Grid productos */
.drz-products-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 1.25rem;
}
@media (max-width: 1200px) { .drz-products-grid { grid-template-columns: repeat(4,1fr); } }
@media (max-width: 900px)  { .drz-products-grid { grid-template-columns: repeat(3,1fr); } }
@media (max-width: 600px)  { .drz-products-grid { grid-template-columns: repeat(2,1fr); } }

/* Card producto */
.drz-prod-card {
    background: #fff;
    border-radius: 1.125rem;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0,0,0,.06);
    border: 1.5px solid #f1f5f9;
    transition: transform .25s, box-shadow .25s;
    display: flex;
    flex-direction: column;
}
.drz-prod-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 16px 40px rgba(0,0,0,.12);
    border-color: #e7efe5;
}
.drz-prod-card__img-wrap {
    position: relative;
    aspect-ratio: 1/1;
    overflow: hidden;
}
.drz-prod-card__img-link { display: block; width: 100%; height: 100%; }
.drz-prod-card__img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center;
    padding: .75rem;
    box-sizing: border-box;
    transition: transform .4s;
}
.drz-prod-card:hover .drz-prod-card__img { transform: scale(1.06); }
.drz-prod-card__no-img {
    width: 100%; height: 100%;
    display: flex; align-items: center; justify-content: center;
    color: #94a3b8;
}
.drz-prod-card__no-img .material-icons-outlined { font-size: 36px; }

/* Badge */
.drz-prod-card__badge {
    position: absolute;
    top: .625rem; left: .625rem;
    font-size: .62rem;
    font-weight: 800;
    padding: .25rem .625rem;
    border-radius: 2rem;
    z-index: 2;
    text-transform: uppercase;
    letter-spacing: .06em;
}
.drz-prod-card__badge--sale { background: #ef4444; color: #fff; }
.drz-prod-card__badge--new  { background: #4a6741; color: #fff; }

/* Hover action */
.drz-prod-card__hover-action {
    position: absolute;
    inset-x: .75rem;
    bottom: .75rem;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity .25s, transform .25s;
    z-index: 3;
}
.drz-prod-card:hover .drz-prod-card__hover-action {
    opacity: 1;
    transform: translateY(0);
}
.drz-prod-card__add {
    width: 100%;
    background: var(--color-primary);
    color: #fff;
    border: none;
    border-radius: .625rem;
    padding: .625rem 1rem;
    font-family: var(--font-sans);
    font-size: .78rem;
    font-weight: 700;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    box-shadow: 0 4px 16px rgba(74,103,65,.35);
    transition: background .2s;
}
.drz-prod-card__add:hover { background: var(--color-primary-dark); }
.drz-prod-card__add .material-icons-outlined { font-size: 16px; }

/* Info */
.drz-prod-card__info {
    padding: .875rem 1rem 1rem;
    display: flex;
    flex-direction: column;
    gap: .3rem;
    flex: 1;
}
.drz-prod-card__cat {
    font-size: .65rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .08em;
}
.drz-prod-card__title {
    font-size: .875rem !important;
    font-weight: 700 !important;
    color: #1e293b !important;
    margin: 0 !important;
    line-height: 1.3 !important;
}
.drz-prod-card__title a { color: inherit !important; text-decoration: none !important; }
.drz-prod-card__title a:hover { color: var(--color-primary) !important; }
.drz-prod-card__excerpt {
    font-size: .75rem !important;
    color: #94a3b8 !important;
    margin: 0 !important;
    line-height: 1.4 !important;
}
.drz-prod-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: auto;
    padding-top: .625rem;
    border-top: 1px solid #f1f5f9;
}
.drz-prod-card__price { font-size: .95rem; font-weight: 800; color: var(--color-primary); }
.drz-prod-card__rating {
    display: flex; align-items: center; gap: .2rem;
    font-size: .72rem; font-weight: 700; color: #64748b;
}
.drz-prod-card__star { font-size: 14px !important; color: #f59e0b !important; }

/* Paginación */
.drz-shop-pagination {
    margin-top: 3rem;
    display: flex;
    justify-content: center;
}
.drz-shop-pagination .page-numbers {
    display: inline-flex; align-items: center; justify-content: center;
    width: 38px; height: 38px;
    border-radius: .5rem;
    font-size: .85rem; font-weight: 700;
    color: #64748b;
    text-decoration: none;
    border: 1.5px solid #e2e8f0;
    transition: all .2s;
    margin: 0 .2rem;
}
.drz-shop-pagination .page-numbers.current,
.drz-shop-pagination .page-numbers:hover {
    background: var(--color-primary);
    color: #fff;
    border-color: var(--color-primary);
}

/* Empty */
.drz-shop-empty {
    text-align: center; padding: 4rem 0;
    color: #94a3b8;
}
.drz-shop-empty .material-icons-outlined { font-size: 48px; display: block; margin-bottom: 1rem; }

/* Dark mode tienda */
.dark .drz-cat-filters-wrap { background: #1a201a; border-color: rgba(255,255,255,.06); }
.dark .drz-cat-filter__name { color: #94a3b8; }
.dark .drz-cat-filter.active .drz-cat-filter__name { color: #86a87c; }
.dark .drz-cat-filter__img-wrap { border-color: transparent; }
.dark .drz-cat-filter.active .drz-cat-filter__img-wrap { border-color: #86a87c; }
.dark .drz-shop-topbar__title { color: #f1f5f9 !important; }
.dark .drz-prod-card { background: #1a201a; border-color: rgba(255,255,255,.06); }
.dark .drz-prod-card__title { color: #f1f5f9 !important; }
.dark .drz-prod-card__footer { border-top-color: rgba(255,255,255,.06); }
.dark .drz-shop-pagination .page-numbers { border-color: rgba(255,255,255,.1); color: #94a3b8; }

/* ── Fix filtros: mostrar imagen encima del ícono ── */
.drz-cat-filter__img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    z-index: 1 !important;
}
.drz-cat-filter__img-wrap {
    position: relative !important;
}
.drz-cat-filter__fallback-icon {
    position: absolute !important;
    z-index: 0 !important;
}
.drz-cat-filter__icon-badge {
    z-index: 2 !important;
}

/* ── Fix hero tienda visible ── */
.drz-shop-hero {
    display: block !important;
    visibility: visible !important;
}

/* ════════════════════════════════════════════════════════════
   FILTROS CATEGORÍA V2 — Con imágenes premium
   ════════════════════════════════════════════════════════════ */

.cat-bubbles-v2 {
    display: flex !important;
    gap: 1rem !important;
    overflow-x: auto !important;
    padding: 1.5rem 0 1rem !important;
    scrollbar-width: none !important;
}
.cat-bubbles-v2::-webkit-scrollbar { display: none; }

.cbv2 {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: .5rem !important;
    text-decoration: none !important;
    flex-shrink: 0 !important;
    cursor: pointer !important;
    transition: transform .2s !important;
}
.cbv2:hover { transform: translateY(-3px) !important; }

.cbv2__img-wrap {
    width: 80px !important;
    height: 80px !important;
    border-radius: 1.125rem !important;
    overflow: visible !important;
    position: relative !important;
    border: 2.5px solid transparent !important;
    transition: border-color .2s, box-shadow .2s !important;
    flex-shrink: 0 !important;
}
.cbv2--active .cbv2__img-wrap,
.cbv2:hover .cbv2__img-wrap {
    border-color: var(--color-primary) !important;
    box-shadow: 0 0 0 4px rgba(74,103,65,.15) !important;
}

.cbv2__img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: .875rem !important;
    display: block !important;
}
.cbv2__fallback {
    position: absolute !important;
    inset: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 28px !important;
    width: 100% !important;
    height: 100% !important;
}
.cbv2__overlay {
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(180deg, transparent 30%, rgba(0,0,0,.3) 100%) !important;
    border-radius: .875rem !important;
    z-index: 1 !important;
}
.cbv2__badge {
    position: absolute !important;
    bottom: -6px !important;
    right: -6px !important;
    width: 28px !important;
    height: 28px !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 2.5px solid #fff !important;
    z-index: 2 !important;
    box-shadow: 0 2px 8px rgba(0,0,0,.2) !important;
}
.cbv2__badge .material-icons-outlined {
    font-size: 13px !important;
    color: #fff !important;
}
.cbv2__label {
    font-size: .65rem !important;
    font-weight: 700 !important;
    color: #64748b !important;
    text-transform: uppercase !important;
    letter-spacing: .05em !important;
    text-align: center !important;
    max-width: 80px !important;
    line-height: 1.2 !important;
    transition: color .2s !important;
}
.cbv2--active .cbv2__label,
.cbv2:hover .cbv2__label {
    color: var(--color-primary) !important;
}
.cbv2__count {
    font-size: .6rem !important;
    font-weight: 800 !important;
    background: var(--color-primary) !important;
    color: #fff !important;
    border-radius: 2rem !important;
    padding: .1rem .5rem !important;
}

/* Dark mode */
.dark .cbv2__badge { border-color: #1a201a !important; }
.dark .cbv2__label { color: #94a3b8 !important; }
.dark .cbv2--active .cbv2__label { color: #86a87c !important; }

/* ── Fix filtros tamaño consistente ── */
.cbv2__img-wrap {
    width: 72px !important;
    height: 72px !important;
    overflow: hidden !important;
    border-radius: 1rem !important;
}
.cbv2__img {
    border-radius: .75rem !important;
}
.cbv2__overlay {
    border-radius: .75rem !important;
}
.cbv2__label {
    max-width: 72px !important;
    font-size: .62rem !important;
}
.cat-bubbles-v2 {
    padding: 1.25rem 0 .75rem !important;
    align-items: flex-start !important;
}

/* ── Filtros v2: responsive, centrado, más grande, pastel ── */
.cat-bubbles-v2 {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 1.25rem 1rem !important;
    padding: 1.75rem 1rem !important;
    overflow-x: unset !important;
}

.cbv2 {
    width: 88px !important;
}

/* Imagen más grande */
.cbv2__img-wrap {
    width: 88px !important;
    height: 88px !important;
    border-radius: 1.25rem !important;
    overflow: hidden !important;
}
.cbv2__img {
    border-radius: 1rem !important;
}
.cbv2__overlay {
    border-radius: 1rem !important;
}

/* Botón Todos — color pastel verde suave */
.cbv2:first-child .cbv2__img-wrap {
    background: #e8f5e2 !important;
}
.cbv2:first-child .cbv2__fallback {
    color: #4a6741 !important;
    font-size: 32px !important;
}
.cbv2:first-child .cbv2__badge {
    background: #4a6741 !important;
}

/* Badge: no se corta — posición ajustada dentro del contenedor */
.cbv2__img-wrap {
    overflow: visible !important;
}
.cbv2__badge {
    width: 26px !important;
    height: 26px !important;
    bottom: -8px !important;
    right: -8px !important;
    border: 2.5px solid #fff !important;
    box-shadow: 0 2px 8px rgba(0,0,0,.2) !important;
}
.cbv2__badge .material-icons-outlined {
    font-size: 12px !important;
}

/* Label más legible */
.cbv2__label {
    max-width: 88px !important;
    font-size: .63rem !important;
    margin-top: .5rem !important;
}

/* Responsive móvil */
@media (max-width: 480px) {
    .cbv2 { width: 72px !important; }
    .cbv2__img-wrap { width: 72px !important; height: 72px !important; }
    .cbv2__label { max-width: 72px !important; }
    .cat-bubbles-v2 { gap: 1rem .75rem !important; }
}

/* ── Filtros con iconos grandes ── */
.cbv2__icon-wrap {
    width: 88px !important;
    height: 88px !important;
    border-radius: 1.375rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 2.5px solid transparent !important;
    transition: border-color .2s, box-shadow .2s, transform .2s !important;
    flex-shrink: 0 !important;
    position: relative !important;
}
.cbv2--active .cbv2__icon-wrap,
.cbv2:hover .cbv2__icon-wrap {
    border-color: currentColor !important;
    box-shadow: 0 0 0 4px rgba(0,0,0,.06) !important;
    transform: translateY(-2px) !important;
}
.cbv2__icon {
    font-size: 36px !important;
}
/* Ocultar elementos de imagen que ya no se usan */
.cbv2__img-wrap,
.cbv2__img,
.cbv2__overlay,
.cbv2__badge,
.cbv2__fallback {
    display: none !important;
}
/* Responsive */
@media (max-width: 480px) {
    .cbv2__icon-wrap { width: 68px !important; height: 68px !important; border-radius: 1rem !important; }
    .cbv2__icon { font-size: 28px !important; }
    .cbv2 { width: 68px !important; }
    .cbv2__label { max-width: 68px !important; }
}

/* ── Fix filtros: sin sobreposición, ordenado ── */
.cat-bubbles-v2 {
    display: flex !important;
    flex-wrap: nowrap !important;
    justify-content: flex-start !important;
    gap: 1.25rem !important;
    overflow-x: auto !important;
    padding: 1.5rem 0 1rem !important;
    scrollbar-width: none !important;
}
.cbv2 {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: .625rem !important;
    width: 80px !important;
    flex-shrink: 0 !important;
    position: relative !important;
    overflow: visible !important;
}
.cbv2__img-wrap {
    width: 80px !important;
    height: 80px !important;
    border-radius: 1.125rem !important;
    overflow: hidden !important;
    position: relative !important;
    flex-shrink: 0 !important;
    border: 2.5px solid transparent !important;
    transition: border-color .2s, box-shadow .2s !important;
}
.cbv2__img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: .875rem !important;
    display: block !important;
}
.cbv2__overlay {
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(180deg, transparent 40%, rgba(0,0,0,.25) 100%) !important;
    border-radius: .875rem !important;
    z-index: 1 !important;
    display: block !important;
}
.cbv2__badge {
    position: absolute !important;
    bottom: -6px !important;
    right: -6px !important;
    width: 24px !important;
    height: 24px !important;
    border-radius: 50% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 2px solid #fff !important;
    z-index: 3 !important;
    box-shadow: 0 2px 6px rgba(0,0,0,.2) !important;
}
.cbv2__badge .material-icons-outlined {
    font-size: 11px !important;
    color: #fff !important;
}
.cbv2__count {
    position: absolute !important;
    bottom: -22px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    font-size: .58rem !important;
    font-weight: 800 !important;
    background: var(--color-primary) !important;
    color: #fff !important;
    border-radius: 2rem !important;
    padding: .1rem .4rem !important;
    white-space: nowrap !important;
}
.cbv2__label {
    font-size: .62rem !important;
    font-weight: 700 !important;
    color: #64748b !important;
    text-transform: uppercase !important;
    letter-spacing: .04em !important;
    text-align: center !important;
    max-width: 80px !important;
    line-height: 1.2 !important;
    margin-top: .25rem !important;
}
.cbv2--active .cbv2__img-wrap,
.cbv2:hover .cbv2__img-wrap {
    border-color: var(--color-primary) !important;
    box-shadow: 0 0 0 3px rgba(74,103,65,.15) !important;
}
.cbv2--active .cbv2__label,
.cbv2:hover .cbv2__label {
    color: var(--color-primary) !important;
}
/* Botón Todos */
.cbv2:first-child .cbv2__img-wrap {
    background: #e8f5e2 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.cbv2__fallback {
    font-size: 30px !important;
    color: #4a6741 !important;
    display: flex !important;
    position: static !important;
    z-index: 0 !important;
}
/* Ocultar icono grande que reemplazaba las imágenes */
.cbv2__icon-wrap { display: none !important; }

/* ── FILTROS V2: Iconos grandes limpios ── */
.cat-bubbles-v2 {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 1rem !important;
    padding: 1.75rem 1rem 1.25rem !important;
    overflow-x: unset !important;
}
.cbv2 {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: .5rem !important;
    width: 90px !important;
    flex-shrink: 0 !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: transform .2s !important;
}
.cbv2:hover { transform: translateY(-3px) !important; }
.cbv2__icon-wrap {
    width: 80px !important;
    height: 80px !important;
    border-radius: 1.25rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 2.5px solid transparent !important;
    transition: border-color .2s, box-shadow .2s !important;
    position: relative !important;
}
.cbv2--active .cbv2__icon-wrap,
.cbv2:hover .cbv2__icon-wrap {
    border-color: var(--color-primary) !important;
    box-shadow: 0 0 0 4px rgba(74,103,65,.12) !important;
}
.cbv2__icon {
    font-size: 34px !important;
}
.cbv2__label {
    font-size: .62rem !important;
    font-weight: 700 !important;
    color: #64748b !important;
    text-transform: uppercase !important;
    letter-spacing: .04em !important;
    text-align: center !important;
    line-height: 1.25 !important;
    max-width: 90px !important;
}
.cbv2--active .cbv2__label,
.cbv2:hover .cbv2__label { color: var(--color-primary) !important; }
.cbv2__count {
    font-size: .6rem !important;
    font-weight: 800 !important;
    background: var(--color-primary) !important;
    color: #fff !important;
    border-radius: 2rem !important;
    padding: .1rem .45rem !important;
}
/* Ocultar elementos viejos */
.cbv2__img-wrap, .cbv2__img, .cbv2__overlay,
.cbv2__badge, .cbv2__fallback { display: none !important; }

/* Dark */
.dark .cbv2__label { color: #94a3b8 !important; }
.dark .cbv2--active .cbv2__label { color: #86a87c !important; }

/* ── Filtro activo: indicador visual claro ── */
.cbv2--active .cbv2__icon-wrap {
    border-color: var(--color-primary) !important;
    box-shadow: 0 0 0 4px rgba(74,103,65,.15) !important;
    transform: scale(1.06) !important;
}
/* Checkmark en filtro activo */
.cbv2--active .cbv2__icon-wrap::after {
    content: '✓' !important;
    position: absolute !important;
    top: -8px !important;
    right: -8px !important;
    width: 20px !important;
    height: 20px !important;
    background: var(--color-primary) !important;
    color: #fff !important;
    border-radius: 50% !important;
    font-size: .65rem !important;
    font-weight: 900 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 2px solid #fff !important;
    box-shadow: 0 2px 6px rgba(0,0,0,.2) !important;
    line-height: 1 !important;
}
.cbv2--active .cbv2__label {
    color: var(--color-primary) !important;
    font-weight: 800 !important;
}
/* Underline activo */
.cbv2--active::after {
    content: '' !important;
    display: block !important;
    width: 24px !important;
    height: 3px !important;
    background: var(--color-primary) !important;
    border-radius: 2px !important;
    margin: 0 auto !important;
}

/* ── Fix filtros: sin superposición de texto y contador ── */
.cbv2 {
    position: relative !important;
    padding-bottom: .25rem !important;
}
.cbv2__count {
    position: static !important;
    transform: none !important;
    display: inline-block !important;
    margin-top: .2rem !important;
    font-size: .58rem !important;
    font-weight: 800 !important;
    background: var(--color-primary) !important;
    color: #fff !important;
    border-radius: 2rem !important;
    padding: .1rem .45rem !important;
    line-height: 1.4 !important;
}
/* Checkmark no interfiere con imagen */
.cbv2--active .cbv2__icon-wrap::after {
    top: -6px !important;
    right: -6px !important;
    width: 18px !important;
    height: 18px !important;
    font-size: .6rem !important;
    z-index: 5 !important;
}
/* Espaciado texto etiqueta */
.cbv2__label {
    margin-top: .4rem !important;
    display: block !important;
}
/* Underline no duplica espacio */
.cbv2--active::after {
    margin-top: .2rem !important;
}

/* ── Fix DEFINITIVO filtros: sin superposición ── */
.cat-bubbles-v2 {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 1.5rem 1.25rem !important;
    padding: 1.75rem 1rem 1.5rem !important;
    overflow-x: unset !important;
}
.cbv2 {
    width: 80px !important;
    min-width: 80px !important;
    max-width: 80px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: .5rem !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: transform .2s !important;
    position: relative !important;
    overflow: visible !important;
    padding-bottom: 0 !important;
}
.cbv2__icon-wrap {
    width: 72px !important;
    height: 72px !important;
    border-radius: 1.125rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 2.5px solid transparent !important;
    transition: border-color .2s, box-shadow .2s !important;
    flex-shrink: 0 !important;
    position: relative !important;
}
.cbv2__icon {
    font-size: 30px !important;
}
.cbv2__label {
    font-size: .6rem !important;
    font-weight: 700 !important;
    color: #64748b !important;
    text-transform: uppercase !important;
    letter-spacing: .03em !important;
    text-align: center !important;
    width: 80px !important;
    line-height: 1.2 !important;
    word-break: break-word !important;
    hyphens: auto !important;
    display: block !important;
    margin-top: 0 !important;
}
.cbv2__count {
    font-size: .58rem !important;
    font-weight: 800 !important;
    background: var(--color-primary) !important;
    color: #fff !important;
    border-radius: 2rem !important;
    padding: .1rem .45rem !important;
    display: inline-block !important;
    position: static !important;
    transform: none !important;
    margin-top: 0 !important;
}
.cbv2--active .cbv2__icon-wrap {
    border-color: var(--color-primary) !important;
    box-shadow: 0 0 0 4px rgba(74,103,65,.15) !important;
}
.cbv2--active .cbv2__icon-wrap::after {
    content: '✓' !important;
    position: absolute !important;
    top: -7px !important;
    right: -7px !important;
    width: 18px !important;
    height: 18px !important;
    background: var(--color-primary) !important;
    color: #fff !important;
    border-radius: 50% !important;
    font-size: .6rem !important;
    font-weight: 900 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 2px solid #fff !important;
    z-index: 5 !important;
    line-height: 1 !important;
}
.cbv2--active .cbv2__label {
    color: var(--color-primary) !important;
    font-weight: 800 !important;
}
.cbv2--active::after { display: none !important; }
.cbv2:hover .cbv2__icon-wrap {
    border-color: var(--color-primary) !important;
    transform: translateY(-2px) !important;
}
.cbv2:hover .cbv2__label { color: var(--color-primary) !important; }

/* ── Filtros responsive: scroll horizontal en móvil ── */
@media (max-width: 768px) {
    .cat-bubbles-v2 {
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        justify-content: flex-start !important;
        padding: 1.25rem .75rem !important;
        gap: .875rem !important;
        -webkit-overflow-scrolling: touch !important;
        scrollbar-width: none !important;
    }
    .cat-bubbles-v2::-webkit-scrollbar { display: none !important; }
    .cbv2 {
        width: 68px !important;
        min-width: 68px !important;
        flex-shrink: 0 !important;
    }
    .cbv2__icon-wrap {
        width: 60px !important;
        height: 60px !important;
        border-radius: 1rem !important;
    }
    .cbv2__icon { font-size: 24px !important; }
    .cbv2__label {
        font-size: .55rem !important;
        width: 68px !important;
        max-width: 68px !important;
    }
}

/* ════════════════════════════════════════════════════════════
   PÁGINA NOSOTROS
   ════════════════════════════════════════════════════════════ */

.drz-nosotros { background: var(--color-background); }
.nos-eyebrow {
    display: inline-block;
    font-size: .75rem;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--color-primary);
    margin-bottom: .875rem;
}
.nos-section-title {
    font-family: var(--font-display) !important;
    font-size: clamp(1.5rem, 3vw, 2.25rem) !important;
    font-weight: 800 !important;
    color: #1a2416 !important;
    margin: 0 0 1.25rem !important;
    line-height: 1.15 !important;
}
.nos-section-header {
    text-align: center;
    margin-bottom: 3rem;
}

/* ── Hero ── */
.nos-hero {
    position: relative;
    background: linear-gradient(135deg, #1a2416 0%, #2d4a25 60%, #3d5c35 100%);
    padding: 5rem 0 4rem;
    overflow: hidden;
}
.nos-hero__bg { position: absolute; inset: 0; pointer-events: none; }
.nos-hero__circle {
    position: absolute;
    border-radius: 50%;
    background: rgba(255,255,255,.04);
}
.nos-hero__circle--1 { width: 400px; height: 400px; top: -100px; right: -100px; }
.nos-hero__circle--2 { width: 250px; height: 250px; bottom: -50px; left: 10%; }
.nos-hero__circle--3 { width: 150px; height: 150px; top: 30%; right: 30%; }

.nos-hero__inner {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 3rem !important;
    align-items: center !important;
    position: relative;
    z-index: 1;
}
@media (max-width: 768px) {
    .nos-hero__inner { grid-template-columns: 1fr !important; }
    .nos-hero__img-wrap { display: none; }
}
.nos-hero__content .nos-eyebrow { color: rgba(255,255,255,.7); }
.nos-hero__title {
    font-family: var(--font-display) !important;
    font-size: clamp(2.5rem, 5vw, 4rem) !important;
    font-weight: 800 !important;
    color: #fff !important;
    margin: 0 0 .25rem !important;
    line-height: 1.05 !important;
}
.nos-hero__brand { color: #a3c99a !important; font-style: italic !important; }
.nos-hero__subtitle {
    font-size: 1rem;
    color: rgba(255,255,255,.6);
    letter-spacing: .2em;
    text-transform: uppercase;
    margin: 0 0 1.25rem;
}
.nos-hero__desc {
    font-size: .95rem;
    color: rgba(255,255,255,.8);
    line-height: 1.75;
    margin: 0 0 2.5rem;
    max-width: 480px;
}
.nos-hero__stats {
    display: flex;
    gap: 2rem;
    flex-wrap: wrap;
}
.nos-stat { display: flex; flex-direction: column; gap: .2rem; }
.nos-stat__num {
    font-family: var(--font-display);
    font-size: 2rem;
    font-weight: 800;
    color: #a3c99a;
    line-height: 1;
}
.nos-stat__label { font-size: .72rem; color: rgba(255,255,255,.6); text-transform: uppercase; letter-spacing: .06em; }

.nos-hero__img-wrap { position: relative; }
.nos-hero__img {
    width: 100%;
    border-radius: 1.5rem;
    box-shadow: 0 32px 80px rgba(0,0,0,.3);
    display: block;
}
.nos-hero__img-badge {
    position: absolute;
    bottom: 1.5rem;
    left: 1.5rem;
    background: rgba(255,255,255,.95);
    backdrop-filter: blur(8px);
    border-radius: .875rem;
    padding: .625rem 1rem;
    font-size: .78rem;
    font-weight: 800;
    color: #1a2416;
    display: flex;
    align-items: center;
    gap: .4rem;
}
.nos-hero__img-badge .material-icons-outlined { color: #4a6741; font-size: 18px; }

/* ── PMV ── */
.nos-pmv { background: #fff; padding: 4rem 0; }
.nos-pmv__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0;
    border: 2px solid #1a2416;
    border-radius: 1.5rem;
    overflow: hidden;
    background: #1a2416;
}
@media (max-width: 768px) { .nos-pmv__grid { grid-template-columns: 1fr; } }
.nos-pmv__card {
    background: #2d4a25;
    padding: 2.5rem 2rem;
    position: relative;
    border-right: 1px solid rgba(255,255,255,.1);
    text-align: center;
}
.nos-pmv__card:last-child { border-right: none; }
.nos-pmv__icon-wrap {
    width: 56px; height: 56px;
    background: rgba(163,201,154,.15);
    border-radius: 1rem;
    display: flex; align-items: center; justify-content: center;
    margin: 0 auto 1.25rem;
}
.nos-pmv__icon-wrap .material-icons-outlined { color: #a3c99a; font-size: 26px; }
.nos-pmv__title {
    display: inline-block;
    font-size: .72rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .12em;
    color: #a3c99a;
    background: rgba(163,201,154,.12);
    padding: .35rem 1.25rem;
    border-radius: 2rem;
    margin-bottom: 1.25rem;
}
.nos-pmv__text {
    font-size: .9rem;
    color: rgba(255,255,255,.8);
    line-height: 1.7;
    margin: 0;
}

/* ── Historia ── */
.nos-historia__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: center;
}
@media (max-width: 768px) { .nos-historia__grid { grid-template-columns: 1fr; } }
.nos-historia__img-wrap { position: relative; border-radius: 1.5rem; overflow: hidden; }
.nos-historia__img { width: 100%; display: block; border-radius: 1.5rem; }
.nos-historia__year-badge {
    position: absolute;
    top: 1.5rem; left: 1.5rem;
    background: var(--color-primary);
    color: #fff;
    border-radius: .875rem;
    padding: .625rem 1rem;
    text-align: center;
    line-height: 1.2;
}
.nos-historia__year-badge span { font-size: .65rem; font-weight: 700; text-transform: uppercase; opacity: .8; display: block; }
.nos-historia__year-badge strong { font-size: 1.375rem; font-weight: 800; font-family: var(--font-display); }
.nos-historia__content p {
    font-size: .92rem;
    line-height: 1.8;
    color: #475569;
    margin-bottom: 1rem;
}
.nos-historia__tags { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.5rem; }
.nos-tag {
    font-size: .75rem;
    font-weight: 700;
    color: var(--color-primary);
    background: rgba(74,103,65,.08);
    border: 1px solid rgba(74,103,65,.2);
    padding: .35rem .875rem;
    border-radius: 2rem;
}

/* ── Valores ── */
.nos-valores .nos-section-title { color: #fff !important; }
.nos-valores__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem;
}
@media (max-width: 900px) { .nos-valores__grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 480px) { .nos-valores__grid { grid-template-columns: 1fr; } }
.nos-valor {
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 1.125rem;
    padding: 1.75rem;
    transition: background .2s, transform .2s;
}
.nos-valor:hover { background: rgba(255,255,255,.1); transform: translateY(-3px); }
.nos-valor__icon {
    width: 48px; height: 48px;
    background: rgba(163,201,154,.15);
    border-radius: .75rem;
    display: flex; align-items: center; justify-content: center;
    margin-bottom: 1rem;
}
.nos-valor__icon .material-icons-outlined { color: #a3c99a; font-size: 22px; }
.nos-valor h4 { font-size: .9rem; font-weight: 800; color: #fff; margin: 0 0 .5rem; }
.nos-valor p { font-size: .8rem; color: rgba(255,255,255,.65); line-height: 1.6; margin: 0; }

/* ── CTA ── */
.nos-cta { background: #f4f6f2; }
.nos-cta__inner {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 3rem;
    align-items: center;
    background: #fff;
    border-radius: 1.5rem;
    padding: 3rem;
    box-shadow: 0 8px 40px rgba(0,0,0,.06);
    border: 1px solid #e7efe5;
}
@media (max-width: 768px) {
    .nos-cta__inner { grid-template-columns: 1fr; }
    .nos-cta__img-wrap { display: none; }
}
.nos-cta__btns { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 1.5rem; align-items: center; }
.nos-cta__link {
    display: inline-flex; align-items: center; gap: .4rem;
    font-size: .875rem; font-weight: 700;
    color: var(--color-primary);
    text-decoration: none;
    transition: gap .2s;
}
.nos-cta__link:hover { gap: .65rem; }
.nos-cta__img-wrap { width: 220px; flex-shrink: 0; }
.nos-cta__img { width: 100%; border-radius: 1rem; }

/* Dark mode */
.dark .nos-historia__content p { color: #94a3b8; }
.dark .nos-pmv { background: #0f130f; }
.dark .nos-cta { background: #0f130f; }
.dark .nos-cta__inner { background: #1a201a; border-color: rgba(255,255,255,.06); }
.dark .nos-section-title { color: #f1f5f9 !important; }

/* ════════════════════════════════════════════════════════════
   FOOTER — Rediseño premium responsive
   ════════════════════════════════════════════════════════════ */

.site-footer {
    background: #0f1a0d !important;
    color: rgba(255,255,255,.75) !important;
    margin-top: 0 !important;
}

/* Franja newsletter */
.footer-top {
    background: linear-gradient(135deg, #1a2d16 0%, #2d4a25 100%);
    border-bottom: 1px solid rgba(255,255,255,.06);
    padding: 2.5rem 0;
}
.footer-top__inner {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 2rem !important;
    flex-wrap: wrap !important;
}
.footer-top__eyebrow {
    display: block;
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: #86a87c;
    margin-bottom: .375rem;
}
.footer-top__title {
    font-family: var(--font-display) !important;
    font-size: 1.125rem !important;
    font-weight: 700 !important;
    color: #fff !important;
    margin: 0 !important;
}
.footer-top__form {
    display: flex !important;
    gap: .5rem !important;
    flex-shrink: 0 !important;
    flex-wrap: wrap !important;
}
.footer-top__input {
    background: rgba(255,255,255,.08) !important;
    border: 1.5px solid rgba(255,255,255,.15) !important;
    border-radius: .625rem !important;
    color: #fff !important;
    padding: .625rem 1rem !important;
    font-size: .875rem !important;
    min-width: 220px !important;
    outline: none !important;
    transition: border-color .2s !important;
}
.footer-top__input::placeholder { color: rgba(255,255,255,.4) !important; }
.footer-top__input:focus { border-color: #86a87c !important; }
.footer-top__btn {
    background: #4a6741 !important;
    color: #fff !important;
    border: none !important;
    border-radius: .625rem !important;
    padding: .625rem 1.25rem !important;
    font-size: .875rem !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    gap: .4rem !important;
    transition: background .2s !important;
    white-space: nowrap !important;
}
.footer-top__btn:hover { background: #3a5232 !important; }
.footer-top__btn .material-icons-outlined { font-size: 16px !important; }

/* Cuerpo */
.footer-body { padding: 3.5rem 0 2.5rem; }
.footer-grid {
    display: grid !important;
    grid-template-columns: 1.6fr 1fr 1fr 1.2fr !important;
    gap: 3rem !important;
}
@media (max-width: 1024px) { .footer-grid { grid-template-columns: 1fr 1fr !important; gap: 2rem !important; } }
@media (max-width: 540px)  { .footer-grid { grid-template-columns: 1fr !important; gap: 1.75rem !important; } }

/* Marca */
.footer-brand {
    display: flex !important;
    align-items: center !important;
    gap: .75rem !important;
    margin-bottom: 1rem !important;
}
.footer-logo-img { width: 48px; height: 48px; object-fit: contain; border-radius: .5rem; }
.footer-brand__text { display: flex; flex-direction: column; }
.footer-brand__name {
    font-family: var(--font-display);
    font-size: 1rem;
    font-weight: 800;
    color: #fff;
    letter-spacing: .08em;
}
.footer-brand__slogan { font-size: .65rem; color: #86a87c; text-transform: uppercase; letter-spacing: .1em; }
.footer-brand__desc { font-size: .82rem; line-height: 1.7; color: rgba(255,255,255,.55); margin: 0 0 1.25rem; }

/* Redes sociales */
.footer-social { display: flex; gap: .625rem; }
.footer-social__link {
    width: 36px; height: 36px;
    border-radius: .5rem;
    display: flex; align-items: center; justify-content: center;
    transition: transform .2s, opacity .2s;
    opacity: .85;
}
.footer-social__link:hover { transform: translateY(-2px); opacity: 1; }
.footer-social__link--ig { background: linear-gradient(135deg,#f09433,#dc2743,#bc1888); }
.footer-social__link--tt { background: #000; border: 1px solid rgba(255,255,255,.15); }
.footer-social__link--fb { background: #1877f2; }
.footer-social__link--wa { background: #25d366; }
.footer-social__link svg { stroke: #fff !important; }

/* Títulos columnas */
.footer-col__title {
    font-size: .72rem !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: .1em !important;
    color: #fff !important;
    margin: 0 0 1.125rem !important;
    padding-bottom: .625rem !important;
    border-bottom: 1px solid rgba(255,255,255,.08) !important;
}

/* Links */
.footer-links {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: .6rem !important;
}
.footer-links a {
    font-size: .82rem !important;
    color: rgba(255,255,255,.55) !important;
    text-decoration: none !important;
    transition: color .2s, padding-left .2s !important;
    display: inline-block !important;
}
.footer-links a:hover { color: #86a87c !important; padding-left: 4px !important; }

/* Contacto */
.footer-contact-list {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: .75rem !important;
}
.footer-contact-list li {
    display: flex !important;
    align-items: flex-start !important;
    gap: .625rem !important;
    font-size: .82rem !important;
    color: rgba(255,255,255,.55) !important;
}
.footer-contact-list .material-icons-outlined {
    font-size: 16px !important;
    color: #86a87c !important;
    flex-shrink: 0 !important;
    margin-top: 1px !important;
}
.footer-contact-list a {
    color: rgba(255,255,255,.55) !important;
    text-decoration: none !important;
    transition: color .2s !important;
    word-break: break-all !important;
}
.footer-contact-list a:hover { color: #86a87c !important; }

/* Footer inferior */
.footer-bottom {
    border-top: 1px solid rgba(255,255,255,.06);
    padding: 1.25rem 0;
}
.footer-bottom__inner {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 1rem !important;
    flex-wrap: wrap !important;
}
.footer-bottom__copy {
    font-size: .72rem !important;
    color: rgba(255,255,255,.35) !important;
    margin: 0 !important;
}
.footer-bottom__payments {
    display: flex !important;
    align-items: center !important;
    gap: .625rem !important;
    font-size: .72rem !important;
    color: rgba(255,255,255,.35) !important;
}
.footer-bottom__payments img { opacity: .7; filter: brightness(0) invert(1); border-radius: 3px; }
.footer-bottom__secure {
    display: flex !important;
    align-items: center !important;
    gap: .2rem !important;
    color: #86a87c !important;
}
.footer-bottom__secure .material-icons-outlined { font-size: 14px !important; }

@media (max-width: 540px) {
    .footer-top__inner { flex-direction: column; align-items: flex-start; }
    .footer-top__form { width: 100%; }
    .footer-top__input { min-width: unset; flex: 1; }
    .footer-bottom__inner { flex-direction: column; text-align: center; }
}

/* ── Footer más compacto ── */
.footer-body { padding: 2.5rem 0 2rem !important; }
.footer-grid { gap: 2rem !important; }
.footer-brand { margin-bottom: .75rem !important; }
.footer-brand__desc { font-size: .78rem !important; margin-bottom: 1rem !important; }
.footer-top { display: none !important; }
.footer-bottom__payments { display: none !important; }

/* ════════════════════════════════════════════════════════════
   PÁGINAS LEGALES / FAQ / ENVÍOS
   ════════════════════════════════════════════════════════════ */
.drz-legal-hero {
    padding: 3.5rem 0 2.5rem;
    text-align: center;
}
.drz-legal-eyebrow {
    display: inline-block;
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: rgba(255,255,255,.6);
    margin-bottom: .75rem;
}
.drz-legal-title {
    font-family: var(--font-display) !important;
    font-size: clamp(1.75rem, 4vw, 2.75rem) !important;
    font-weight: 800 !important;
    color: #fff !important;
    margin: 0 0 .75rem !important;
}
.drz-legal-sub {
    font-size: .9rem;
    color: rgba(255,255,255,.6);
    margin: 0;
}
.drz-legal-body {
    padding: 3rem 0 4rem;
    max-width: 820px;
}

/* Cards info */
.drz-legal-card {
    display: flex;
    gap: 1.25rem;
    align-items: flex-start;
    background: #fff;
    border: 1.5px solid #e7efe5;
    border-radius: 1.125rem;
    padding: 1.5rem 1.75rem;
    margin-bottom: 1.25rem;
    box-shadow: 0 2px 12px rgba(0,0,0,.04);
    transition: box-shadow .2s, transform .2s;
}
.drz-legal-card:hover {
    box-shadow: 0 8px 28px rgba(0,0,0,.08);
    transform: translateY(-2px);
}
.drz-legal-card__icon {
    width: 48px; height: 48px; flex-shrink: 0;
    border-radius: .75rem;
    display: flex; align-items: center; justify-content: center;
}
.drz-legal-card__icon .material-icons-outlined { font-size: 22px; }
.drz-legal-card h2 {
    font-size: 1rem !important;
    font-weight: 800 !important;
    color: #1a2416 !important;
    margin: 0 0 .5rem !important;
}
.drz-legal-card p, .drz-legal-card ul {
    font-size: .86rem !important;
    color: #64748b !important;
    line-height: 1.7 !important;
    margin: 0 !important;
}
.drz-legal-card ul { padding-left: 1.25rem !important; margin-top: .5rem !important; }
.drz-legal-card ul li { margin-bottom: .25rem; }

/* FAQ */
.drz-faq-list { display: flex; flex-direction: column; gap: .75rem; margin-bottom: 2.5rem; }
.drz-faq-item {
    background: #fff;
    border: 1.5px solid #e7efe5;
    border-radius: 1rem;
    overflow: hidden;
    transition: border-color .2s;
}
.drz-faq-item.open { border-color: var(--color-primary); }
.drz-faq-question {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.125rem 1.375rem;
    background: none;
    border: none;
    cursor: pointer;
    text-align: left;
    font-family: var(--font-sans);
    font-size: .9rem;
    font-weight: 700;
    color: #1a2416;
}
.drz-faq-icon { transition: transform .3s; flex-shrink: 0; color: var(--color-primary); }
.drz-faq-item.open .drz-faq-icon { transform: rotate(180deg); }
.drz-faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height .35s ease, padding .35s;
    padding: 0 1.375rem;
}
.drz-faq-item.open .drz-faq-answer {
    max-height: 300px;
    padding: 0 1.375rem 1.125rem;
}
.drz-faq-answer p { font-size: .86rem; color: #64748b; line-height: 1.7; margin: 0; }

/* Prose legal */
.drz-legal-prose h2 {
    font-size: 1.1rem !important;
    font-weight: 800 !important;
    color: #1a2416 !important;
    margin: 2rem 0 .75rem !important;
    padding-bottom: .5rem !important;
    border-bottom: 2px solid #e7efe5 !important;
}
.drz-legal-prose p, .drz-legal-prose li {
    font-size: .88rem !important;
    color: #475569 !important;
    line-height: 1.8 !important;
}
.drz-legal-prose ul { padding-left: 1.375rem !important; margin: .5rem 0 1rem !important; }
.drz-legal-prose a { color: var(--color-primary) !important; }

/* CTA */
.drz-legal-cta {
    text-align: center;
    padding: 2.5rem;
    background: #f4f6f2;
    border-radius: 1.25rem;
    margin-top: 2rem;
}
.drz-legal-cta p { font-size: .9rem; color: #64748b; margin: 0 0 1rem; }
.drz-legal-cta .btn-primary { display: inline-flex; align-items: center; gap: .4rem; }

/* Dark mode */
.dark .drz-legal-card { background: #1a201a; border-color: rgba(255,255,255,.06); }
.dark .drz-legal-card h2 { color: #f1f5f9 !important; }
.dark .drz-faq-item { background: #1a201a; border-color: rgba(255,255,255,.06); }
.dark .drz-faq-question { color: #f1f5f9; }
.dark .drz-legal-cta { background: #1a201a; }
.dark .drz-legal-prose h2 { color: #f1f5f9 !important; border-color: rgba(255,255,255,.06) !important; }

/* ── Footer más compacto ── */
.footer-body { padding: 2rem 0 1.5rem !important; }
.footer-grid { gap: 1.5rem !important; }
.footer-col__title { margin-bottom: .75rem !important; padding-bottom: .5rem !important; font-size: .68rem !important; }
.footer-links { gap: .4rem !important; }
.footer-links a { font-size: .78rem !important; }
.footer-contact-list { gap: .5rem !important; }
.footer-contact-list li { font-size: .78rem !important; }
.footer-brand__desc { font-size: .75rem !important; margin-bottom: .875rem !important; }
.footer-social__link { width: 30px !important; height: 30px !important; border-radius: .4rem !important; }
.footer-social { gap: .4rem !important; }
.footer-bottom { padding: 1rem 0 !important; }
.footer-bottom__copy { font-size: .68rem !important; }
.footer-bottom__inner { gap: .75rem !important; flex-wrap: wrap !important; }

/* ── Métodos de pago ── */
.footer-payments {
    display: flex !important;
    align-items: center !important;
    gap: .4rem !important;
    flex-wrap: wrap !important;
}
.footer-payments__label {
    font-size: .65rem !important;
    color: rgba(255,255,255,.35) !important;
    white-space: nowrap !important;
}
.footer-payment-badge {
    font-size: .58rem !important;
    font-weight: 800 !important;
    padding: .2rem .45rem !important;
    border-radius: .3rem !important;
    letter-spacing: .03em !important;
    white-space: nowrap !important;
}
.footer-payment-badge--visa { background: #1a1f71; color: #fff; }
.footer-payment-badge--mc  { background: #eb001b; color: #fff; }
.footer-payment-badge--yape { background: #72189e; color: #fff; }
.footer-payment-badge--plin { background: #00b9a4; color: #fff; }
.footer-payment-badge--bcp  { background: #005da8; color: #fff; }

@media (max-width: 540px) {
    .footer-payments { justify-content: center !important; }
    .footer-bottom__inner { justify-content: center !important; text-align: center !important; }
}

/* ── Footer ultra compacto sin espacios ── */
.site-footer {
    margin-top: 0 !important;
}
.footer-body {
    padding: 1.75rem 0 1.25rem !important;
}
.footer-grid {
    gap: 1.25rem !important;
}
.footer-bottom {
    padding: .75rem 0 !important;
    border-top: 1px solid rgba(255,255,255,.08) !important;
}
/* Quitar espacios extra arriba y abajo del footer */
.site-footer::before,
.site-footer::after {
    display: none !important;
    content: none !important;
}
/* Quitar margen del elemento anterior al footer */
main + footer,
.drz-nosotros + footer,
.drz-legal-page + footer,
.drz-contact-page + footer,
.cat-main + footer,
#main-content + footer {
    margin-top: 0 !important;
}

/* ── Badges de pago mejorados ── */
.footer-payments {
    display: flex !important;
    align-items: center !important;
    gap: .35rem !important;
    flex-wrap: wrap !important;
}
.footer-payments__label {
    font-size: .65rem !important;
    color: rgba(255,255,255,.4) !important;
    margin-right: .2rem !important;
}
.footer-payment-badge {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 22px !important;
    padding: 0 .5rem !important;
    border-radius: .3rem !important;
    font-size: .6rem !important;
    font-weight: 900 !important;
    letter-spacing: .02em !important;
    white-space: nowrap !important;
}
.footer-payment-badge--visa {
    background: #fff !important;
    color: #1a1f71 !important;
    font-style: italic !important;
    font-size: .7rem !important;
    letter-spacing: .05em !important;
}
.footer-payment-badge--mc {
    background: #fff !important;
    color: transparent !important;
    background-image: linear-gradient(to right, #eb001b 40%, #f79e1b 60%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    font-size: .65rem !important;
    font-weight: 900 !important;
}
.footer-payment-badge--yape {
    background: #72189e !important;
    color: #fff !important;
    font-size: .62rem !important;
}
.footer-payment-badge--plin {
    background: linear-gradient(135deg,#00b9a4,#0099cc) !important;
    color: #fff !important;
    font-size: .62rem !important;
}
.footer-payment-badge--bcp {
    background: #005da8 !important;
    color: #fff !important;
    font-size: .62rem !important;
}

/* ── Reducir padding de la última sección antes del footer ── */
.section:last-of-type {
    padding-bottom: 3rem !important;
}
.newsletter-section {
    padding: 3rem 0 !important;
}

/* ── Footer padding definitivo ── */
.site-footer {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}
.footer-body {
    padding: 1.25rem 0 1rem !important;
}
.footer-bottom {
    padding: .625rem 0 !important;
}

/* ── Badge Interbank ── */
.footer-payment-badge--ibk {
    background: #006fb9 !important;
    color: #fff !important;
    font-size: .62rem !important;
}

/* ── Badges de pago SVG ── */
.footer-payment-badge {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 24px !important;
    padding: 2px 4px !important;
    border-radius: .3rem !important;
    background: rgba(255,255,255,.95) !important;
    overflow: hidden !important;
}
.footer-payment-badge svg { display: block !important; }

/* ── Logos de pago profesionales ── */
.footer-payments {
    display: flex !important;
    align-items: center !important;
    gap: .5rem !important;
    flex-wrap: wrap !important;
}
.footer-payments__label {
    font-size: .65rem !important;
    color: rgba(255,255,255,.45) !important;
    margin-right: .25rem !important;
    white-space: nowrap !important;
}
.footer-pay-img {
    height: 22px !important;
    width: auto !important;
    object-fit: contain !important;
    filter: brightness(0) invert(1) !important;
    opacity: .75 !important;
    transition: opacity .2s !important;
}
.footer-pay-img:hover { opacity: 1 !important; }
.footer-pay-img--rounded {
    background: rgba(255,255,255,.9) !important;
    border-radius: .25rem !important;
    padding: 2px 5px !important;
    filter: none !important;
    opacity: .9 !important;
}

/* ── Padding redes sociales igual arriba y abajo ── */
.footer-social {
    margin-top: .875rem !important;
    margin-bottom: .875rem !important;
    padding-top: .875rem !important;
    border-top: 1px solid rgba(255,255,255,.06) !important;
}

/* ── Logos pago SVG inline ── */
.fpay {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: .375rem !important;
    overflow: hidden !important;
    opacity: .85 !important;
    transition: opacity .2s, transform .15s !important;
    cursor: default !important;
}
.fpay:hover { opacity: 1 !important; transform: translateY(-1px) !important; }
.fpay--visa {
    background: #1a1f71 !important;
    padding: 3px 8px !important;
}
.fpay--mc {
    background: #1c1c1c !important;
    padding: 2px 6px !important;
}

/* ════════════════════════════════════════════════════════════
   CARRITO VACÍO — Diseño motivador
   ════════════════════════════════════════════════════════════ */
.drz-empty-cart {
    padding: 4rem 1rem;
    display: flex;
    justify-content: center;
}
.drz-empty-cart__inner {
    max-width: 540px;
    width: 100%;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
}

/* Ícono animado */
.drz-empty-cart__icon-wrap {
    position: relative;
    margin-bottom: .5rem;
}
.drz-empty-cart__bag {
    width: 120px; height: 120px;
    background: linear-gradient(135deg, #e8f5e2, #c8e6c0);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    position: relative;
    animation: drz-float 3s ease-in-out infinite;
    box-shadow: 0 8px 32px rgba(74,103,65,.15);
}
@keyframes drz-float {
    0%, 100% { transform: translateY(0); }
    50%       { transform: translateY(-10px); }
}
.drz-empty-cart__bag-icon {
    font-size: 52px !important;
    color: var(--color-primary) !important;
}
.drz-empty-cart__sparkle {
    position: absolute;
    font-size: 1.25rem;
    animation: drz-sparkle 2s ease-in-out infinite;
}
.drz-empty-cart__sparkle--1 { top: -8px; right: 0; animation-delay: 0s; }
.drz-empty-cart__sparkle--2 { bottom: 0; left: -8px; animation-delay: .6s; }
.drz-empty-cart__sparkle--3 { top: 8px; left: -12px; animation-delay: 1.2s; }
@keyframes drz-sparkle {
    0%, 100% { opacity: 1; transform: scale(1) rotate(0deg); }
    50%       { opacity: .6; transform: scale(1.2) rotate(15deg); }
}

/* Textos */
.drz-empty-cart__title {
    font-family: var(--font-display) !important;
    font-size: 1.75rem !important;
    font-weight: 800 !important;
    color: #1a2416 !important;
    margin: 0 !important;
}
.drz-empty-cart__sub {
    font-size: .92rem;
    color: #64748b;
    line-height: 1.7;
    margin: 0;
    max-width: 420px;
}

/* Perks */
.drz-empty-cart__perks {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    justify-content: center;
}
.drz-empty-cart__perk {
    display: flex;
    align-items: center;
    gap: .375rem;
    font-size: .8rem;
    font-weight: 600;
    color: #475569;
    background: #f4f6f2;
    border: 1px solid #e7efe5;
    border-radius: 2rem;
    padding: .35rem .875rem;
}
.drz-empty-cart__perk-icon { font-size: .9rem; }

/* Botón principal */
.drz-empty-cart__btns { display: flex; gap: .75rem; flex-wrap: wrap; justify-content: center; }
.drz-empty-cart__btn-primary {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    background: var(--color-primary);
    color: #fff !important;
    text-decoration: none !important;
    font-size: .9rem;
    font-weight: 700;
    padding: .875rem 2rem;
    border-radius: .875rem;
    transition: background .2s, transform .15s;
    box-shadow: 0 4px 16px rgba(74,103,65,.3);
}
.drz-empty-cart__btn-primary:hover {
    background: var(--color-primary-dark);
    transform: translateY(-2px);
}
.drz-empty-cart__btn-primary .material-icons-outlined { font-size: 20px; }

/* Categorías */
.drz-empty-cart__cats-label {
    font-size: .75rem;
    font-weight: 700;
    color: #94a3b8;
    text-transform: uppercase;
    letter-spacing: .08em;
    margin: 0 0 .75rem;
}
.drz-empty-cart__cats-grid {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    justify-content: center;
}
.drz-empty-cart__cat {
    font-size: .78rem;
    font-weight: 700;
    color: var(--color-primary) !important;
    background: rgba(74,103,65,.08);
    border: 1.5px solid rgba(74,103,65,.2);
    border-radius: 2rem;
    padding: .35rem 1rem;
    text-decoration: none !important;
    transition: all .2s;
}
.drz-empty-cart__cat:hover {
    background: var(--color-primary);
    color: #fff !important;
    border-color: var(--color-primary);
}

/* Dark mode */
.dark .drz-empty-cart__title { color: #f1f5f9 !important; }
.dark .drz-empty-cart__perk { background: #1a201a; border-color: rgba(255,255,255,.08); color: #94a3b8; }
.dark .drz-empty-cart__bag { background: linear-gradient(135deg, #1a2d16, #2d4a25); }

/* ── Tienda: 4 columnas más grandes ── */
.cat-grid {
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 1.5rem !important;
}
@media (max-width: 900px) { .cat-grid { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 480px) { .cat-grid { grid-template-columns: 1fr !important; } }

.ccard {
    border-radius: 1.25rem !important;
    box-shadow: 0 4px 20px rgba(0,0,0,.07) !important;
}
.ccard-img-wrap {
    height: 240px !important;
}
@media (max-width: 900px) { .ccard-img-wrap { height: 200px !important; } }

.ccard-body {
    padding: 1rem 1.125rem 1.25rem !important;
}
.ccard-title {
    font-size: 1rem !important;
    font-weight: 800 !important;
    margin-bottom: .375rem !important;
}
.ccard-price {
    font-size: 1.125rem !important;
    font-weight: 800 !important;
}
.ccard-btn {
    padding: .7rem 1rem !important;
    font-size: .82rem !important;
    border-radius: .625rem !important;
    margin-top: .75rem !important;
}

/* ── Botón añadir al carrito siempre alineado abajo ── */
.ccard {
    display: flex !important;
    flex-direction: column !important;
}
.ccard-body {
    display: flex !important;
    flex-direction: column !important;
    flex: 1 !important;
}
.ccard-btn {
    margin-top: auto !important;
}

/* ── Checkout topbar mejorado ── */
.drz-co-topbar {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin-bottom: 1.5rem !important;
    padding: 1.25rem 1.5rem !important;
    background: linear-gradient(135deg, #1a2416 0%, #2d4a25 100%) !important;
    border-radius: 1.125rem !important;
    flex-wrap: wrap !important;
    gap: 1rem !important;
}
.drz-co-topbar__left {
    display: flex !important;
    align-items: center !important;
    gap: .875rem !important;
}
.drz-co-topbar__icon {
    font-size: 2rem !important;
    color: #a3c99a !important;
}
.drz-co-topbar__title {
    font-family: var(--font-display) !important;
    font-size: 1.375rem !important;
    font-weight: 800 !important;
    color: #fff !important;
    margin: 0 0 .2rem !important;
}
.drz-co-topbar__sub {
    font-size: .8rem !important;
    color: rgba(255,255,255,.65) !important;
    margin: 0 !important;
}

/* ── Campo referencia ── */
.drz-co-field-wrap {
    margin-top: .875rem !important;
}
.drz-co-field-wrap label {
    display: block !important;
    font-size: .82rem !important;
    font-weight: 700 !important;
    color: #374151 !important;
    margin-bottom: .375rem !important;
}
.drz-co-field-wrap input {
    width: 100% !important;
    border: 1.5px solid #d1d5db !important;
    border-radius: .5rem !important;
    padding: .625rem .875rem !important;
    font-size: .875rem !important;
    transition: border-color .2s !important;
}
.drz-co-field-wrap input:focus {
    border-color: var(--color-primary) !important;
    outline: none !important;
}

/* ── Aviso Shalom ── */
.drz-shalom-notice {
    margin-top: 1rem !important;
    border-radius: .875rem !important;
    overflow: hidden !important;
    border: 1.5px solid #fbbf24 !important;
    background: #fffbeb !important;
}
.drz-shalom-notice__inner {
    display: flex !important;
    gap: .875rem !important;
    padding: 1rem 1.125rem !important;
    align-items: flex-start !important;
}
.drz-shalom-notice__inner .material-icons-outlined {
    color: #d97706 !important;
    flex-shrink: 0 !important;
    font-size: 20px !important;
    margin-top: 2px !important;
}
.drz-shalom-notice__inner strong {
    display: block !important;
    font-size: .875rem !important;
    font-weight: 800 !important;
    color: #92400e !important;
    margin-bottom: .375rem !important;
}
.drz-shalom-notice__inner p {
    font-size: .8rem !important;
    color: #78350f !important;
    line-height: 1.6 !important;
    margin: 0 !important;
}

/* ════════════════════════════════════════════════════════════
   CARRITO — Uniformidad con checkout
   ════════════════════════════════════════════════════════════ */

/* Header carrito */
.drz-cart-page { max-width: 1200px; margin: 0 auto; padding: 2rem 1rem 4rem; }

.drz-cart-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 1.25rem 1.5rem !important;
    background: linear-gradient(135deg,#1a2416,#2d4a25) !important;
    border-radius: 1.125rem !important;
    margin-bottom: 1.5rem !important;
    flex-wrap: wrap !important;
    gap: .75rem !important;
}
.drz-cart-title {
    font-family: var(--font-display) !important;
    font-size: 1.25rem !important;
    font-weight: 800 !important;
    color: #fff !important;
    margin: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: .5rem !important;
}
.drz-cart-title .material-icons-outlined { color: #a3c99a !important; font-size: 1.5rem !important; }
.drz-cart-count-badge {
    background: rgba(255,255,255,.15) !important;
    color: rgba(255,255,255,.9) !important;
    border: 1px solid rgba(255,255,255,.2) !important;
    border-radius: 2rem !important;
    padding: .3rem .875rem !important;
    font-size: .75rem !important;
    font-weight: 700 !important;
}

/* Secciones carrito igual que checkout */
.drz-cart-form {
    background: #fff !important;
    border: 1.5px solid #e7efe5 !important;
    border-radius: 1.125rem !important;
    overflow: hidden !important;
    margin-bottom: 1rem !important;
}
.drz-cart-thead {
    display: grid !important;
    grid-template-columns: 1fr 120px 140px 100px !important;
    padding: .875rem 1.25rem !important;
    background: linear-gradient(135deg,#1a2416,#2d4a25) !important;
    border-radius: 0 !important;
}
.drz-cart-thead span { color: rgba(255,255,255,.7) !important; }
.drz-cart-items { background: #fff !important; border: none !important; }
.drz-cart-row {
    border-bottom: 1px solid #f0f4ee !important;
    padding: 1rem 1.25rem !important;
}
.drz-cart-row:hover { background: #fafcf9 !important; }

/* Summary box */
.drz-summary-box {
    background: #fff !important;
    border: 1.5px solid #e7efe5 !important;
    border-radius: 1.125rem !important;
    overflow: hidden !important;
    margin-bottom: 1rem !important;
}
.drz-summary-header {
    display: flex !important;
    align-items: center !important;
    gap: .625rem !important;
    padding: .875rem 1.25rem !important;
    background: linear-gradient(135deg,#1a2416,#2d4a25) !important;
}
.drz-summary-header .material-icons-outlined { color: #a3c99a !important; font-size: 18px !important; }
.drz-summary-header h2 {
    font-family: var(--font-display) !important;
    font-size: .95rem !important;
    font-weight: 800 !important;
    color: #fff !important;
    margin: 0 !important;
}
.drz-summary-lines { padding: 1rem 1.25rem !important; }
.drz-summary-line {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: .5rem 0 !important;
    border-bottom: 1px solid #f0f4ee !important;
    font-size: .85rem !important;
    color: #475569 !important;
}
.drz-summary-total-row {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    padding: 1rem 1.25rem !important;
    background: #f4f6f2 !important;
    font-weight: 800 !important;
    font-size: .9rem !important;
    color: #1a2416 !important;
}
.drz-total-amount {
    font-family: var(--font-display) !important;
    font-size: 1.25rem !important;
    font-weight: 800 !important;
    color: var(--color-primary) !important;
}
.drz-checkout-wrap {
    padding: 1rem 1.25rem !important;
    border-top: 1px solid #f0f4ee !important;
}
.drz-checkout-btn {
    width: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: .5rem !important;
    background: var(--color-primary) !important;
    color: #fff !important;
    text-decoration: none !important;
    font-weight: 800 !important;
    font-size: .95rem !important;
    padding: .875rem !important;
    border-radius: .75rem !important;
    transition: background .2s, transform .15s !important;
}
.drz-checkout-btn:hover { background: var(--color-primary-dark) !important; transform: translateY(-1px) !important; }
.drz-checkout-btn .material-icons-outlined { font-size: 18px !important; }

/* Trust strip */
.drz-trust-strip {
    display: flex !important;
    justify-content: space-around !important;
    padding: .875rem 1.25rem !important;
    border-top: 1px solid #f0f4ee !important;
    gap: .5rem !important;
    flex-wrap: wrap !important;
}
.drz-trust-item {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: .2rem !important;
    font-size: .65rem !important;
    font-weight: 700 !important;
    color: #64748b !important;
    text-transform: uppercase !important;
    letter-spacing: .05em !important;
}
.drz-trust-item .material-icons-outlined { font-size: 18px !important; color: var(--color-primary) !important; }

/* Continuar comprando */
.drz-continue-btn {
    display: flex !important;
    align-items: center !important;
    gap: .875rem !important;
    padding: 1rem 1.25rem !important;
    background: #fff !important;
    border: 1.5px solid #e7efe5 !important;
    border-radius: 1.125rem !important;
    text-decoration: none !important;
    transition: border-color .2s, background .2s !important;
    margin-top: 1rem !important;
}
.drz-continue-btn:hover { border-color: var(--color-primary) !important; background: #f4f6f2 !important; }
.drz-continue-arrow {
    width: 36px; height: 36px;
    background: #f4f6f2;
    border-radius: .5rem;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
}
.drz-continue-arrow .material-icons-outlined { color: var(--color-primary) !important; font-size: 18px !important; }
.drz-continue-text strong { display: block; font-size: .85rem; color: #1a2416; }
.drz-continue-text small { font-size: .72rem; color: #94a3b8; }

/* Cupón y actualizar */
.drz-cart-foot {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 1rem !important;
    padding: 1rem 1.25rem !important;
    background: #f9fbf8 !important;
    border-top: 1px solid #e7efe5 !important;
    flex-wrap: wrap !important;
}
.drz-coupon-wrap {
    display: flex !important;
    align-items: center !important;
    gap: .5rem !important;
    flex: 1 !important;
}
.drz-coupon-wrap .material-icons-outlined { color: var(--color-primary) !important; font-size: 18px !important; }
.drz-coupon-input {
    border: 1.5px solid #d1d5db !important;
    border-radius: .5rem !important;
    padding: .5rem .875rem !important;
    font-size: .82rem !important;
    flex: 1 !important;
    min-width: 0 !important;
}
.drz-coupon-btn {
    background: var(--color-primary) !important;
    color: #fff !important;
    border: none !important;
    border-radius: .5rem !important;
    padding: .5rem .875rem !important;
    font-size: .82rem !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    gap: .3rem !important;
    white-space: nowrap !important;
}
.drz-update-btn {
    background: #f4f6f2 !important;
    color: #4a6741 !important;
    border: 1.5px solid #c8e6c0 !important;
    border-radius: .5rem !important;
    padding: .5rem .875rem !important;
    font-size: .82rem !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    gap: .3rem !important;
    white-space: nowrap !important;
}

/* Qty ctrl */
.drz-qty-ctrl {
    display: flex !important;
    align-items: center !important;
    border: 1.5px solid #e7efe5 !important;
    border-radius: .5rem !important;
    overflow: hidden !important;
    width: fit-content !important;
}
.drz-qty-minus, .drz-qty-plus {
    width: 32px !important; height: 36px !important;
    background: #f4f6f2 !important;
    border: none !important;
    cursor: pointer !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    color: var(--color-primary) !important;
    transition: background .15s !important;
}
.drz-qty-minus:hover, .drz-qty-plus:hover { background: #e7efe5 !important; }
.drz-qty-input {
    width: 44px !important;
    text-align: center !important;
    border: none !important;
    border-left: 1px solid #e7efe5 !important;
    border-right: 1px solid #e7efe5 !important;
    padding: .375rem 0 !important;
    font-size: .875rem !important;
    font-weight: 700 !important;
    color: #1a2416 !important;
}
.drz-qty-input:focus { outline: none !important; }

/* Remove btn */
.drz-remove-btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: .25rem !important;
    font-size: .72rem !important;
    color: #ef4444 !important;
    text-decoration: none !important;
    margin-top: .375rem !important;
    opacity: .7 !important;
    transition: opacity .2s !important;
}
.drz-remove-btn:hover { opacity: 1 !important; }
.drz-remove-btn .material-icons-outlined { font-size: 15px !important; }

/* Métodos de pago en summary */
.drz-payment-methods { padding: .875rem 1.25rem !important; border-top: 1px solid #f0f4ee !important; }
.drz-pay-label { font-size: .65rem !important; font-weight: 700 !important; color: #94a3b8 !important; text-transform: uppercase !important; letter-spacing: .08em !important; display: block !important; margin-bottom: .5rem !important; }
.drz-pay-badges { display: flex !important; gap: .375rem !important; flex-wrap: wrap !important; }
.drz-pay-badge { font-size: .6rem !important; font-weight: 800 !important; padding: .2rem .5rem !important; border-radius: .3rem !important; }
.drz-pay-visa { background:#1a1f71;color:#fff; }
.drz-pay-mc { background:#eb001b;color:#fff; }
.drz-pay-yape { background:#72189e;color:#fff; }
.drz-pay-plin { background:#00b9a4;color:#fff; }

/* Shipping notice */
.drz-shipping-notice {
    display: flex !important;
    align-items: center !important;
    gap: .875rem !important;
    padding: 1rem 1.25rem !important;
    background: #f0f7ee !important;
    border: 1.5px solid #c8e6c0 !important;
    border-radius: 1.125rem !important;
    margin-top: 1rem !important;
}
.drz-shipping-notice .material-icons-outlined { color: var(--color-primary) !important; flex-shrink: 0 !important; }
.drz-shipping-notice strong { display: block !important; font-size: .85rem !important; color: #1a2416 !important; }
.drz-shipping-notice span { font-size: .78rem !important; color: #475569 !important; }

/* Dark mode */
.dark .drz-cart-form { background: #1a201a !important; border-color: rgba(255,255,255,.06) !important; }
.dark .drz-cart-items { background: #1a201a !important; }
.dark .drz-cart-row:hover { background: rgba(255,255,255,.02) !important; }
.dark .drz-summary-box { background: #1a201a !important; border-color: rgba(255,255,255,.06) !important; }
.dark .drz-summary-total-row { background: #141c14 !important; color: #f1f5f9 !important; }
.dark .drz-continue-btn { background: #1a201a !important; border-color: rgba(255,255,255,.06) !important; }
.dark .drz-continue-text strong { color: #f1f5f9 !important; }

/* ════════════════════════════════════════════════════════════
   CARRITO + CHECKOUT — 100% Responsive
   ════════════════════════════════════════════════════════════ */

/* Carrito layout */
@media (max-width: 960px) {
    .drz-cart-layout { grid-template-columns: 1fr !important; }
    .drz-cart-right { order: -1; }
}
@media (max-width: 640px) {
    .drz-cart-page { padding: 1rem .75rem 3rem !important; }
    .drz-cart-header { padding: 1rem !important; }
    .drz-cart-title { font-size: 1rem !important; }
    .drz-cart-thead { display: none !important; }
    .drz-cart-row {
        display: flex !important;
        flex-direction: column !important;
        gap: .75rem !important;
        padding: 1rem !important;
    }
    .drz-row-product { flex-direction: row !important; }
    .drz-row-price, .drz-row-subtotal { display: flex !important; justify-content: space-between !important; font-size: .82rem !important; }
    .drz-row-price::before { content: 'Precio: '; color: #94a3b8; font-size: .72rem; }
    .drz-row-subtotal::before { content: 'Subtotal: '; color: #94a3b8; font-size: .72rem; }
    .drz-cart-foot { flex-direction: column !important; gap: .75rem !important; }
    .drz-coupon-wrap { width: 100% !important; }
    .drz-update-btn { width: 100% !important; justify-content: center !important; }
}

/* Checkout layout */
@media (max-width: 960px) {
    .drz-checkout-grid { grid-template-columns: 1fr !important; }
    .drz-co-right { order: -1; }
}
@media (max-width: 640px) {
    .drz-checkout-wrap { padding: 0 .75rem 3rem !important; }
    .drz-checkout-topbar { padding: 1rem !important; border-radius: .875rem !important; }
    .drz-checkout-topbar h1 { font-size: 1.1rem !important; }
    .drz-checkout-topbar p { font-size: .72rem !important; }
    .drz-checkout-topbar__emoji { font-size: 1.5rem !important; }
    .drz-steps { gap: .25rem !important; }
    .drz-step span { font-size: .65rem !important; }
    .drz-step__num { width: 24px !important; height: 24px !important; font-size: .7rem !important; }
    .drz-co-section__head h2 { font-size: .875rem !important; }
    .drz-co-section__body { padding: 1rem !important; gap: .75rem !important; }
    .drz-field-row { grid-template-columns: 1fr !important; }
    .drz-comp-toggle { grid-template-columns: 1fr 1fr !important; }
    .drz-review__item { flex-direction: row !important; }
    .drz-trust-strip { gap: .25rem !important; padding: .75rem !important; }
    .drz-trust-item { font-size: .58rem !important; }
    .drz-place-order__btn { font-size: .875rem !important; padding: .875rem !important; }
}

/* Resumen items responsive */
@media (max-width: 480px) {
    .drz-review__item-name { font-size: .78rem !important; }
    .drz-review__item-total { font-size: .82rem !important; }
    .drz-summary-line { font-size: .78rem !important; }
    .drz-total-amount { font-size: 1.1rem !important; }
}

/* Carrito row imagen */
.drz-row-img img {
    width: 60px !important;
    height: 60px !important;
    object-fit: contain !important;
    border-radius: .5rem !important;
    background: #f4f6f2 !important;
    border: 1px solid #e7efe5 !important;
    padding: 4px !important;
}
.drz-row-name {
    font-size: .875rem !important;
    font-weight: 700 !important;
    color: #1a2416 !important;
    text-decoration: none !important;
    display: block !important;
    margin-bottom: .25rem !important;
}
.drz-row-price-mobile { display: none !important; }
@media (max-width: 640px) {
    .drz-row-price-mobile { display: block !important; font-size: .8rem !important; color: var(--color-primary) !important; font-weight: 700 !important; }
}
/* Ocultar "Enviar a dirección diferente" */
.woocommerce-shipping-fields,
#ship-to-different-address,
.ship-to-different-address {
    display: none !important;
}

/* Ocultar shipment tracking en carrito */
.woocommerce-shipping-totals,
.cart-collaterals .shipping,
tr.shipping,
.drz-summary-line .woocommerce-shipping-calculator,
.shipping-calculator-form,
.woocommerce-shipping-destination,
a.shipping-calculator-button { display: none !important; }

/* Total a pagar más visual */
.drz-summary-total-row {
    padding: 1.25rem !important;
    border-top: 2px solid #e7efe5 !important;
}
.drz-total-amount {
    font-size: 2rem !important;
    font-weight: 900 !important;
    font-family: var(--font-display) !important;
    color: var(--color-primary) !important;
    line-height: 1 !important;
}

/* Ocultar bloque shipment completo en carrito */
.woocommerce-cart table.shop_table tr.shipping,
.woocommerce-cart-totals tr.shipping,
#shipping_method,
.woocommerce-shipping-methods,
.woocommerce-shipping-destination,
.woocommerce-shipping-calculator,
.shipping-calculator-button,
.shipping-calculator-form { display: none !important; }

/* Ocultar th Shipment */
.cart-collaterals .wc-proceed-to-checkout,
th.product-shipping { display: none !important; }

/* Renombrar Shipment -> texto personalizado via CSS */
tr.shipping th { font-size: 0 !important; }
tr.shipping th::after {
    content: '🚚 Envío' !important;
    font-size: .85rem !important;
    font-weight: 700 !important;
    color: #475569 !important;
}
tr.shipping td { font-size: 0 !important; }
tr.shipping td::after {
    content: 'Se calcula al finalizar la compra' !important;
    font-size: .78rem !important;
    color: #94a3b8 !important;
    font-weight: 600 !important;
}

/* Total a pagar más notorio */
.drz-summary-total-row {
    background: linear-gradient(135deg, #1a2416, #2d4a25) !important;
    border-radius: 0 0 1rem 1rem !important;
    padding: 1.25rem !important;
}
.drz-summary-total-row span:first-child {
    color: rgba(255,255,255,.75) !important;
    font-size: .75rem !important;
    text-transform: uppercase !important;
    letter-spacing: .1em !important;
}
.drz-total-amount {
    font-family: var(--font-display) !important;
    font-size: 2.25rem !important;
    font-weight: 900 !important;
    color: #a3c99a !important;
    line-height: 1 !important;
}

/* Total carrito más llamativo */
.order-total .woocommerce-Price-amount,
.drz-total-amount .woocommerce-Price-amount,
.drz-total-amount {
    font-size: 2.5rem !important;
    font-weight: 900 !important;
    font-family: var(--font-display) !important;
    color: #4a6741 !important;
    line-height: 1 !important;
    display: block !important;
}
.drz-summary-total-row {
    background: linear-gradient(135deg, #1a2416, #2d4a25) !important;
    border-radius: 0 0 1rem 1rem !important;
    padding: 1.5rem 1.25rem !important;
    display: flex !important;
    flex-direction: column !important;
    gap: .375rem !important;
}
.drz-summary-total-row > span:first-child {
    font-size: .7rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: .12em !important;
    color: rgba(255,255,255,.6) !important;
}
.drz-total-amount {
    color: #a3c99a !important;
}

/* Número total grande y llamativo */
.drz-total-amount {
    font-size: 3rem !important;
    font-weight: 900 !important;
    font-family: var(--font-display) !important;
    color: #a3c99a !important;
    line-height: 1 !important;
    display: block !important;
    letter-spacing: -.02em !important;
}
.drz-total-amount .woocommerce-Price-currencySymbol {
    font-size: 1.5rem !important;
    vertical-align: super !important;
    font-weight: 700 !important;
}

/* Total carrito - texto label */
.drz-summary-total-row span:first-child {
    color: rgba(255,255,255,.75) !important;
    font-size: .75rem !important;
    text-transform: uppercase !important;
    letter-spacing: .1em !important;
    font-weight: 700 !important;
}

/* Total número grande que ocupa todo */
.drz-summary-total-row {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 1.5rem 1.25rem !important;
    text-align: center !important;
}
.drz-summary-total-row span:last-child,
.drz-summary-total-row span[style*="font-size"] {
    font-size: 3.5rem !important;
    font-weight: 900 !important;
    color: #a3c99a !important;
    line-height: 1 !important;
    letter-spacing: -.03em !important;
    width: 100% !important;
    text-align: center !important;
    text-shadow: 0 2px 20px rgba(163,201,154,.4) !important;
}

/* Total número tamaño ajustado */
.drz-summary-total-row span:last-child,
.drz-summary-total-row span[style*="font-size"] {
    font-size: 2.5rem !important;
}

.drz-summary-total-row span:last-child,
.drz-summary-total-row span[style*="font-size"] {
    font-size: 1.5rem !important;
}

/* Imagen producto single - mostrar completa */
.sprod-main-img img,
.sprod-main-img-wrap img,
.woocommerce-product-gallery img {
    object-fit: contain !important;
    width: 100% !important;
    height: 100% !important;
    max-height: 500px !important;
}
.sprod-main-img-wrap,
.sprod-main-img {
    aspect-ratio: 1/1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* Imagen single producto completa */
.sprod-gallery {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.sprod-main-photo {
    width: 100% !important;
    height: auto !important;
    max-height: 480px !important;
    object-fit: contain !important;
    object-position: center !important;
    background: transparent !important;
}

/* Imagen single producto - ocupar más espacio */
.sprod-main-photo {
    padding: 0.5rem !important;
    object-fit: contain !important;
    width: 100% !important;
    height: 100% !important;
}
.sprod-img-main {
    aspect-ratio: 3/4 !important;
    background: transparent !important;
}
.dark .sprod-img-main { background: transparent !important; }

/* Galería single - ajustar al contenido */
.sprod-img-main {
    aspect-ratio: unset !important;
    min-height: unset !important;
    padding: 1rem !important;
    background: #f9faf8 !important;
    border: 1.5px solid #e7efe5 !important;
}
.dark .sprod-img-main {
    background: #1a201a !important;
    border-color: rgba(255,255,255,.06) !important;
}
.sprod-main-photo {
    width: 100% !important;
    height: auto !important;
    max-height: 420px !important;
    object-fit: contain !important;
    padding: 0 !important;
    display: block !important;
    margin: 0 auto !important;
}

/* Imagen single - max-height ajustado */
.sprod-main-photo {
    max-height: 480px !important;
}

/* Productos relacionados - imagen completa */
.related ul.products li.product img,
.upsells ul.products li.product img,
.woocommerce ul.products li.product img {
    object-fit: contain !important;
    background: transparent !important;
    padding: .5rem !important;
    aspect-ratio: 1/1 !important;
    width: 100% !important;
    height: auto !important;
}

/* Productos relacionados - imagen completa */
.sprod-rel-img {
    background: transparent !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    aspect-ratio: 1/1 !important;
    overflow: hidden !important;
}
.sprod-rel-img img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    padding: .5rem !important;
    background: transparent !important;
}

/* Fix imagen relacionados completa */
.sprod-rel-img { overflow: visible !important; background: transparent !important; min-height: unset !important; aspect-ratio: unset !important; }
.sprod-rel-img img { width: 100% !important; height: auto !important; object-fit: contain !important; max-height: none !important; }
.sprod-rel-card { overflow: visible !important; }

/* Relacionados - altura controlada y alineación */
.sprod-rel-card {
    display: flex !important;
    flex-direction: column !important;
}
.sprod-rel-img {
    height: 180px !important;
    min-height: unset !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: .5rem !important;
}
.sprod-rel-img img {
    width: auto !important;
    height: 100% !important;
    max-height: 170px !important;
    object-fit: contain !important;
}
.sprod-rel-body {
    margin-top: auto !important;
    padding: .625rem .75rem .75rem !important;
    border-top: 1px solid #f0f4ee !important;
}
.sprod-rel-name {
    font-size: .72rem !important;
    font-weight: 700 !important;
    min-height: 2.2em !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
}
.sprod-rel-price {
    font-size: .85rem !important;
    font-weight: 900 !important;
    margin-top: .25rem !important;
}

/* Descripción producto - justificado y responsive */
.sprod-tab-panel,
.sprod-tab-panel p,
.sprod-tab-panel li,
.woocommerce-Tabs-panel,
.woocommerce-Tabs-panel p {
    text-align: justify !important;
    hyphens: auto !important;
    line-height: 1.8 !important;
    font-size: .875rem !important;
}
@media (max-width: 640px) {
    .sprod-tab-panel,
    .sprod-tab-panel p { font-size: .82rem !important; }
}

/* Descripción corta producto - justificada */
.sprod-short-desc,
.sprod-short-desc p,
.woocommerce-product-details__short-description,
.woocommerce-product-details__short-description p {
    text-align: justify !important;
    hyphens: auto !important;
    line-height: 1.8 !important;
    font-size: .875rem !important;
}

/* ── Fix fullscreen video vertical ── */
.custom-video:-webkit-full-screen { object-fit: contain !important; width: 100% !important; height: 100% !important; }
.custom-video:-moz-full-screen    { object-fit: contain !important; width: 100% !important; height: 100% !important; }
.custom-video:fullscreen          { object-fit: contain !important; width: 100% !important; height: 100% !important; }
