/* ========================================
   TEMPLATE BOUTIQUE - Lujo, lookbook editorial
   Sans redondeada (Nunito) en UI/nav; logo en serif. Mucho aire.
   Catálogo: 3 cols PC / 2 móvil (plataforma, ver header.php).
======================================== */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Nunito:wght@500;600;700;800&display=swap');

/* Variables de tema. --primary y --secondary los define la configuración de la tienda (panel). */
:root {
    --primary-dark: #1a1a1a;
    --bg: #faf9f7;
    --bg-card: #ffffff;
    --text: #1f1f1f;
    --text-muted: #6b6b6b;
    --border: #e8e5e0;
    --font: 'Nunito', sans-serif;
    --font-display: 'Playfair Display', serif;
    --font-luxury: 'Nunito', sans-serif;
    --container-width: 1280px;
    --transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ========== Identidad Boutique: lujo, línea fina, mucho espacio ========== */
body.theme-boutique {
    background: var(--bg) !important;
    color: var(--text) !important;
    font-family: var(--font) !important;
    font-weight: 500 !important;
}
body.theme-boutique .site-header.store-header {
    background: #fff !important;
    border-bottom: 1px solid var(--border) !important;
    padding: 1.35rem 0 !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 1000 !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}
body.theme-boutique .site-header.store-header::after {
    content: '' !important;
    position: absolute !important;
    bottom: 0 !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: 120px !important;
    height: 2px !important;
    background: var(--primary) !important;
}
/* Header Boutique: layout en shared/includes/header.php (inline, store-header--boutique-layout) */
@media (min-width: 769px) {
    body.theme-boutique .site-header.store-header--boutique-layout .desktop-nav a {
        font-family: var(--font) !important;
        font-weight: 700 !important;
        text-transform: uppercase !important;
        color: var(--text-muted) !important;
    }
    body.theme-boutique .site-header.store-header--boutique-layout .desktop-nav a:hover {
        color: var(--primary) !important;
    }
}
body.theme-boutique .site-header.store-header .logo a {
    font-family: var(--font-display) !important;
    font-size: 1.85rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.06em !important;
    color: var(--text) !important;
}
body.theme-boutique .site-header.store-header .desktop-nav a,
body.theme-boutique .site-header.store-header .icon-link {
    font-family: var(--font) !important;
    color: var(--text-muted) !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
    font-size: 0.85rem !important;
    text-transform: uppercase !important;
}
body.theme-boutique .site-header.store-header .desktop-nav a:hover,
body.theme-boutique .site-header.store-header .logo a:hover {
    color: var(--primary) !important;
}
body.theme-boutique .btn:not(.btn-whatsapp-consultar):not(.product-detail-consult-btn):not(.btn-link):not(.btn-calc-shipping):not(.cart-modal-qty-btn):not(.cart-modal-item-remove):not(.close-modal):not(.welcome-popup-close),
body.theme-boutique .product-card .btn:not(.btn-whatsapp-consultar) {
    background: transparent !important;
    color: var(--primary) !important;
    border: 1px solid var(--primary) !important;
    font-family: var(--font) !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    font-size: 0.8rem !important;
    border-radius: 0 !important;
    padding: 16px 36px !important;
}
body.theme-boutique .btn:not(.btn-whatsapp-consultar):not(.product-detail-consult-btn):not(.btn-link):not(.btn-calc-shipping):not(.cart-modal-qty-btn):not(.cart-modal-item-remove):not(.close-modal):not(.welcome-popup-close):hover,
body.theme-boutique .product-card .btn:not(.btn-whatsapp-consultar):hover {
    background: var(--primary) !important;
    color: #fff !important;
    border-color: var(--primary) !important;
}

/* Ficha producto: botones de compra sólidos (no ghost de tarjetas) */
body.theme-boutique .product-detail-wrapper .cart-buttons-row .btn,
body.theme-boutique .product-detail-wrapper .cart-buttons-row .product-cart-btn,
body.theme-boutique .product-detail-wrapper .product-sticky-bar .btn {
    background: var(--primary) !important;
    color: #fff !important;
    border-color: var(--primary) !important;
    letter-spacing: 0.06em !important;
}
body.theme-boutique .product-detail-wrapper .cart-buttons-row .btn-outline,
body.theme-boutique .product-detail-wrapper .cart-buttons-row .btn-agregar-carrito {
    background: transparent !important;
    color: var(--primary) !important;
    border: 1px solid var(--primary) !important;
}
body.theme-boutique .product-detail-wrapper .cart-buttons-row .btn-outline:hover,
body.theme-boutique .product-detail-wrapper .cart-buttons-row .btn-agregar-carrito:hover {
    background: var(--primary) !important;
    color: #fff !important;
}

/* Calcular envío: botón compacto al lado del input (no estilo ghost de tarjetas) */
body.theme-boutique .product-detail-wrapper .btn-calc-shipping {
    background: var(--primary) !important;
    color: #fff !important;
    border: 1px solid var(--primary) !important;
    border-radius: 10px !important;
    font-weight: 600 !important;
    letter-spacing: normal !important;
    text-transform: none !important;
}
body.theme-boutique .product-detail-wrapper .btn-calc-shipping:hover {
    background: var(--primary-dark, var(--primary)) !important;
    border-color: var(--primary-dark, var(--primary)) !important;
    color: #fff !important;
}

/* Newsletter: tipografía del tema (display en título, Nunito en cuerpo) */
body.theme-boutique .newsletter-section .newsletter-content h2,
body.theme-boutique .newsletter-section .newsletter-inner h2 {
    font-family: var(--font-display) !important;
    font-weight: 600 !important;
    letter-spacing: 0.02em !important;
}
body.theme-boutique .newsletter-section .newsletter-subtitle,
body.theme-boutique .newsletter-section .newsletter-input,
body.theme-boutique .newsletter-section .newsletter-message {
    font-family: var(--font) !important;
}
body.theme-boutique .newsletter-section .newsletter-form button,
body.theme-boutique .newsletter-section .newsletter-form .btn {
    background: #fff !important;
    color: var(--text, #1f1f1f) !important;
    border: 2px solid #fff !important;
    border-radius: 0 !important;
    font-weight: 600 !important;
    letter-spacing: 0.12em !important;
    white-space: nowrap !important;
}
body.theme-boutique .newsletter-section .newsletter-form button:hover,
body.theme-boutique .newsletter-section .newsletter-form .btn:hover {
    background: var(--primary) !important;
    color: #fff !important;
    border-color: var(--primary) !important;
}

/* Carrito modal + WhatsApp: no heredar estilo ghost del tema */
body.theme-boutique .cart-modal .btn,
body.theme-boutique .cart-modal-footer a.btn {
    background: var(--primary) !important;
    color: #fff !important;
    border-color: var(--primary) !important;
    letter-spacing: 0.04em !important;
    text-transform: uppercase !important;
}
body.theme-boutique .btn-whatsapp-consultar,
body.theme-boutique .product-detail-consult-btn,
body.theme-boutique a.btn-whatsapp-consultar {
    background: #25d366 !important;
    border-color: #25d366 !important;
    color: #fff !important;
    text-transform: none !important;
    letter-spacing: normal !important;
}
body.theme-boutique .btn-whatsapp-consultar:hover,
body.theme-boutique .product-detail-consult-btn:hover {
    background: #1da851 !important;
    border-color: #1da851 !important;
    color: #fff !important;
}

/* Títulos de sección: sans redondeada y gruesa (como nav del header) */
body.theme-boutique .section-title,
body.theme-boutique .categories-header h1 {
    font-family: var(--font) !important;
    font-weight: 800 !important;
    letter-spacing: 0.04em !important;
    color: var(--text);
}
body.theme-boutique .hero-title {
    font-family: var(--font-display) !important;
    font-weight: 600 !important;
    letter-spacing: 0.02em !important;
    color: var(--text);
}
body.theme-boutique .section-title {
    font-size: clamp(1.35rem, 3vw, 2rem) !important;
    text-align: center !important;
    position: relative !important;
    padding-bottom: 0.45rem !important;
    margin-bottom: 0.35rem !important;
}
body.theme-boutique .section-title::after {
    content: '' !important;
    position: absolute !important;
    bottom: 0 !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: 60px !important;
    height: 1px !important;
    background: var(--primary) !important;
}
body.theme-boutique .hero-title {
    font-size: 3.25rem !important;
    letter-spacing: 0.03em !important;
    line-height: 1.2 !important;
}
body.theme-boutique .section-subtitle {
    color: var(--text-muted) !important;
    font-weight: 500 !important;
    letter-spacing: 0.02em !important;
    line-height: 1.45 !important;
    margin-bottom: 0.5rem !important;
}
body.theme-boutique .section-tag {
    font-size: 0.75rem !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    color: var(--primary) !important;
    margin-bottom: 0.75rem !important;
}

/* Tarjetas lookbook (grid de columnas lo define la plataforma en header.php) */
body.theme-boutique .product-card {
    background: var(--bg-card) !important;
    border-radius: 0 !important;
    overflow: hidden !important;
    border: none !important;
    border-top: 2px solid var(--primary) !important;
    box-shadow: 0 8px 32px rgba(0,0,0,0.06) !important;
    transition: var(--transition) !important;
    text-align: center !important;
    display: flex !important;
    flex-direction: column !important;
}
body.theme-boutique .product-card:hover {
    transform: translateY(-6px) !important;
    box-shadow: 0 28px 56px rgba(0,0,0,0.1) !important;
    border-top-color: var(--secondary) !important;
}
/* Imagen protagonista — marco cuadrado (altura la define aspect-ratio, no min-height) */
body.theme-boutique .product-image {
    aspect-ratio: var(--product-image-aspect, 1 / 1) !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    background: #f2f0ec !important;
    position: relative !important;
    flex: 0 0 auto !important;
}
body.theme-boutique .product-image::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 1px !important;
    background: var(--primary) !important;
    opacity: 0.5 !important;
    z-index: 1 !important;
}
body.theme-boutique .product-image img {
    object-fit: cover !important;
    object-position: center !important;
    transition: transform 0.8s cubic-bezier(0.4, 0, 0.2, 1) !important;
    width: 100% !important;
    height: 100% !important;
}
body.theme-boutique .product-card:hover .product-image.no-hover img {
    transform: scale(1.05) !important;
}
body.theme-boutique .product-card:hover .product-image.has-hover .hover-img {
    transform: scale(1.05) !important;
}
body.theme-boutique .product-info {
    padding: 0.85rem 1.35rem !important;
    text-align: center !important;
    flex: 1 1 auto !important;
    display: flex !important;
    flex-direction: column !important;
    min-height: 0 !important;
}
body.theme-boutique .product-title {
    font-family: var(--font) !important;
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em !important;
    line-height: 1.35 !important;
    margin-bottom: 0.5rem !important;
    color: var(--text) !important;
}
body.theme-boutique .product-price-dual-card,
body.theme-boutique .product-price-dual {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

body.theme-boutique .product-price,
body.theme-boutique .cl-card-price {
    font-family: var(--font) !important;
    font-size: 1.2rem !important;
    font-weight: 800 !important;
    color: var(--primary-color, var(--primary)) !important;
    margin-bottom: 0.75rem !important;
    letter-spacing: 0.01em !important;
}
body.theme-boutique .product-card .product-price-old,
body.theme-boutique .cl-card-price-old {
    font-size: 1.05rem !important;
}
body.theme-boutique .product-card .product-price-cash-card {
    font-size: 1.22rem !important;
}
body.theme-boutique .product-card .product-price-list-card {
    font-size: 0.98rem !important;
}
@media (max-width: 768px) {
    body.theme-boutique .product-image {
        min-height: 0 !important;
        aspect-ratio: var(--product-image-aspect, 1 / 1) !important;
    }
    body.theme-boutique .product-info {
        padding: 0.75rem 1rem !important;
    }
    body.theme-boutique .product-title {
        font-size: 1rem !important;
    }
    body.theme-boutique .product-price,
    body.theme-boutique .cl-card-price {
        font-size: 1.08rem !important;
    }
    body.theme-boutique .product-card .product-price-old,
    body.theme-boutique .cl-card-price-old {
        font-size: 0.95rem !important;
    }
}

body.theme-boutique .product-badge {
    top: 1.25rem !important;
    left: 1.25rem !important;
    border-radius: 0 !important;
    letter-spacing: 0.2em !important;
    font-size: 0.65rem !important;
    background: var(--primary) !important;
    color: #fff !important;
}

body.theme-boutique .cl-card-badge.badge-sale {
    border-radius: 0 !important;
    letter-spacing: 0.2em !important;
    font-size: 0.65rem !important;
    background: var(--primary-color, var(--primary)) !important;
    color: #fff !important;
}

body.theme-boutique .badge-promo {
    background: #059669 !important;
    color: #fff !important;
}

/* Secciones: espaciado compacto (como Modern — menos margen entre bloques) */
body.theme-boutique .section {
    padding: 1.75rem 0 !important;
}
body.theme-boutique .section-header-wrap {
    margin-bottom: 8px !important;
}
body.theme-boutique .section-header-wrap--compact {
    margin-bottom: 6px !important;
}
body.theme-boutique .newsletter-section {
    padding: 3rem 20px !important;
}
body.theme-boutique .product-detail-wrapper.section,
body.theme-boutique .product-detail-wrapper { padding-top: 0 !important; margin-top: 0 !important; }
body.theme-boutique .category-page-content.section,
body.theme-boutique .category-page-content { padding-top: 0 !important; margin-top: 0 !important; }
body.theme-boutique .feature-card {
    border: 1px solid var(--border) !important;
    border-radius: 0 !important;
    padding: 2.25rem !important;
    border-top: 2px solid var(--primary) !important;
}
body.theme-boutique .feature-card .icon-box {
    background: transparent !important;
    color: var(--primary) !important;
    border: 1px solid var(--primary) !important;
    border-radius: 0 !important;
}
body.theme-boutique .feature-card h4 {
    font-family: var(--font-display) !important;
    font-weight: 600 !important;
    letter-spacing: 0.02em !important;
    color: var(--text) !important;
}
/* Testimonios: tarjetas editoriales (alias reviews-grid / testimonial-card) */
body.theme-boutique .reviews-grid .review-card,
body.theme-boutique .testimonials-grid .testimonial-card {
    background: var(--bg-card) !important;
    border: 1px solid var(--border) !important;
    border-top: 2px solid var(--primary) !important;
    border-radius: 0 !important;
    box-shadow: 0 8px 28px rgba(0, 0, 0, 0.06) !important;
    padding: 2rem 1.75rem !important;
}
body.theme-boutique .reviews-grid .review-text,
body.theme-boutique .testimonials-grid .testimonial-text {
    font-family: var(--font-display) !important;
    font-style: italic !important;
    color: var(--text-muted) !important;
    line-height: 1.55 !important;
}
body.theme-boutique .reviews-grid .review-author,
body.theme-boutique .testimonials-grid .testimonial-author {
    font-family: var(--font) !important;
    font-weight: 600 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    font-size: 0.8rem !important;
    color: var(--primary) !important;
}
body.theme-boutique .reviews-grid .stars,
body.theme-boutique .testimonials-grid .testimonial-stars {
    color: var(--primary) !important;
    margin-bottom: 1rem !important;
}
body.theme-boutique .categories-header {
    padding: 4px 0 2px !important;
    margin-bottom: 0 !important;
}
body.theme-boutique .categories-header h1 {
    font-size: 1.1rem !important;
    letter-spacing: 0.08em !important;
}
body.theme-boutique .categories-header p {
    display: none !important;
}
body.theme-boutique .categories-header h1::after {
    content: '' !important;
    display: block !important;
    width: 50px !important;
    height: 1px !important;
    background: var(--primary) !important;
    margin: 0.25rem auto 0 !important;
}

/* Filtros sidebar */
body.theme-boutique .store-filters {
    --sf-bg: #f0eeea !important;
    --sf-border: #e5e2dd !important;
    --sf-accent: var(--secondary) !important;
}
body.theme-boutique .store-filters__summary {
    font-family: 'Nunito', sans-serif !important;
    font-weight: 700 !important;
}

/* Hero, announcement, categorías: identidad boutique (colores = configuración tienda) */
/* La config del cliente (colores barra) sobrescribe: sin !important en background/color */
body.theme-boutique .announcement-bar {
    background: var(--primary);
    color: #fff;
    font-family: var(--font) !important;
}
body.theme-boutique .cat-card-item,
body.theme-boutique .cat-card-img {
    border-radius: 0 !important;
    border: 1px solid var(--border) !important;
    border-top: 2px solid var(--primary) !important;
}
body.theme-boutique .cat-card-item:hover .cat-card-img {
    border-color: var(--primary) !important;
    box-shadow: 0 20px 48px rgba(0,0,0,0.1) !important;
}
body.theme-boutique .features-section {
    background: #f5f3f0 !important;
    padding: 2rem 0 !important;
}
/* Página producto: imagen protagonista, precio legible como el resto de temas */
@media (min-width: 992px) {
    body.theme-boutique .product-detail-grid {
        display: grid !important;
        grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr) !important;
        align-items: start !important;
        gap: 48px !important;
    }
}
@media (max-width: 768px) {
    /* align-items:start en grid rompe flex móvil (columna estrecha a la izquierda) */
    body.theme-boutique .product-detail-grid {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 12px !important;
        width: 100% !important;
    }
    body.theme-boutique .product-detail-image-col,
    body.theme-boutique .product-detail-content-col {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }
    body.theme-boutique .product-detail-wrapper .qty-selector {
        display: inline-flex !important;
        width: auto !important;
        max-width: 100% !important;
        flex: 0 0 auto !important;
    }
    body.theme-boutique .product-detail-wrapper .qty-selector input[type="number"],
    body.theme-boutique .product-detail-wrapper .qty-selector .qty-input {
        width: 52px !important;
        min-width: 52px !important;
        max-width: 52px !important;
        flex: 0 0 52px !important;
    }
    body.theme-boutique .product-detail-wrapper .qty-btn {
        width: 40px !important;
        min-width: 40px !important;
        flex: 0 0 40px !important;
    }
    body.theme-boutique .product-detail-wrapper .cart-buttons-row {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 12px !important;
        width: 100% !important;
    }
    body.theme-boutique .product-detail-wrapper .cart-buttons-row .btn,
    body.theme-boutique .product-detail-wrapper .cart-buttons-row .product-cart-btn {
        flex: 1 1 140px !important;
        min-width: 140px !important;
    }
}
body.theme-boutique .product-detail-content-col,
body.theme-boutique .product-detail-image-col {
    min-width: 0 !important;
    max-width: 100% !important;
}
body.theme-boutique .product-detail-image-col .main-image-frame {
    aspect-ratio: 1 !important;
    min-height: 480px !important;
    max-height: 85vh !important;
}
body.theme-boutique .product-detail-image-col .main-image-frame img {
    object-fit: contain !important;
}
@media (max-width: 991px) {
    body.theme-boutique .product-detail-image-col .main-image-frame {
        min-height: 400px !important;
    }
}
@media (max-width: 768px) {
    body.theme-boutique .product-detail-image-col .main-image-frame {
        min-height: 320px !important;
    }
}
body.theme-boutique .product-detail-title,
body.theme-boutique .page-title {
    font-family: var(--font) !important;
    font-weight: 800 !important;
    letter-spacing: 0.02em !important;
    font-size: 1.85rem !important;
    color: var(--text) !important;
}
body.theme-boutique .product-detail-price-block.price-block,
body.theme-boutique .product-detail-content-col .product-detail-price-block {
    display: flex !important;
    align-items: baseline !important;
    flex-wrap: wrap !important;
    gap: 0.65rem 1rem !important;
    margin: 0.5rem 0 1.25rem !important;
    padding-bottom: 1.25rem !important;
    border-bottom: 1px solid var(--border) !important;
}
body.theme-boutique .product-detail-price {
    font-family: var(--font) !important;
    font-weight: 800 !important;
    font-size: 2.05rem !important;
    line-height: 1.15 !important;
    color: var(--primary) !important;
    letter-spacing: 0.02em !important;
}
body.theme-boutique .product-detail-price-block .product-price-promo {
    display: inline-flex !important;
    align-items: center !important;
    gap: 12px !important;
    flex-wrap: wrap !important;
}
body.theme-boutique .product-detail-price-block .product-compare-price-old,
body.theme-boutique .product-detail-price-block .product-compare-price-list {
    font-family: var(--font) !important;
    font-size: 1.28rem !important;
    color: var(--text-muted) !important;
}
body.theme-boutique .product-detail-price-block .discount-badge {
    font-family: var(--font) !important;
    font-size: 0.8rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.04em !important;
    border-radius: 0 !important;
}
body.theme-boutique .product-detail-price-block .product-price-list-label {
    font-family: var(--font) !important;
    font-size: 0.85rem !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    color: var(--text-muted) !important;
}
@media (max-width: 768px) {
    body.theme-boutique .product-detail-title,
    body.theme-boutique .page-title {
        font-size: 1.45rem !important;
    }
    body.theme-boutique .product-detail-price {
        font-size: 1.72rem !important;
    }
    body.theme-boutique .product-detail-price-block .product-compare-price-old,
    body.theme-boutique .product-detail-price-block .product-compare-price-list {
        font-size: 1.1rem !important;
    }
}

/* Sobre Nosotros: en móvil foto arriba, texto abajo (solo esta sección, no otras grillas) */
@media (max-width: 768px) {
    body.theme-boutique .about-section .about-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    body.theme-boutique .about-section .about-image {
        order: 1;
        max-height: 40vh;
    }
    body.theme-boutique .about-section .about-image img,
    body.theme-boutique .about-section .about-image .about-image-placeholder {
        max-height: 40vh;
        object-fit: cover;
    }
    body.theme-boutique .about-section .about-content {
        order: 2;
        padding: 0;
    }
}

body.theme-boutique .cl-card-name {
    font-family: var(--font) !important;
    font-weight: 800 !important;
}
