/*
Theme Name: Accessio Boutique de Luxe
Theme URI: https://example.com/accessio-luxury
Author: Google Deepmind
Author URI: https://deepmind.google/
Description: A pixel-perfect conversion of the Accessio Luxury React template to WordPress.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: accessio
*/

/* Reset & Base Styles from original index.html */
:root {
    --lux-beige: #F4EDE4;
    --lux-card: #FAF6F1;
    --lux-burgundy: #5D151E;
    --lux-text: #2D1B1B;
    --lux-gold: #C5A059;
}

/* Custom utility classes for theme colors */
.text-burgundy {
    color: var(--lux-burgundy) !important;
}

.bg-burgundy {
    background-color: var(--lux-burgundy) !important;
}

body {
    font-family: 'Montserrat', sans-serif;
    background-color: var(--lux-beige);
    color: var(--lux-text);
    margin: 0;
    padding: 0;
    scroll-behavior: smooth;
}

.font-serif {
    font-family: 'Playfair Display', serif;
}

.bg-burgundy {
    background-color: var(--lux-burgundy);
}

.text-burgundy {
    color: var(--lux-burgundy);
}

/* Line Clamp Utilities */
.line-clamp-2 {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.line-clamp-3 {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Focus styles for accessibility */
a:focus-visible,
button:focus-visible,
input:focus-visible {
    outline: 2px solid var(--lux-burgundy);
    outline-offset: 2px;
}

/* Images - ensure visibility */
img {
    max-width: 100%;
    height: auto;
}

/* Phone Input Validation Styles */
.form-input-wrap.phone-invalid {
    background-color: rgba(239, 68, 68, 0.1) !important;
    border-color: rgba(239, 68, 68, 0.5) !important;
}

.form-input-wrap.phone-invalid input {
    background-color: transparent !important;
}

.form-input-wrap.phone-valid {
    background-color: rgba(34, 197, 94, 0.1) !important;
    border-color: rgba(34, 197, 94, 0.5) !important;
}

.form-input-wrap.phone-valid input {
    background-color: transparent !important;
}

/* Accordion Styles */
.accordion-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease-out;
}

.active .accordion-content {
    max-height: 500px;
    /* Adjust if description is very long */
    overflow-y: auto;
}

.active .chevron {
    transform: rotate(180deg);
}

@media (min-width: 768px) {
    .md\:block.accordion-content {
        max-height: none !important;
        overflow: visible !important;
    }
}

.bg-beige-light {
    background-color: var(--lux-beige);
}

.bg-lux-card {
    background-color: var(--lux-card);
}

.text-gold {
    color: var(--lux-gold);
}

/* Performance Optimization: Remove universal transition and specific smooth loading */
* {
    -webkit-tap-highlight-color: transparent;
}

.lazy-load-img {
    opacity: 0;
    transform: scale(0.98);
    transition: opacity 1.2s cubic-bezier(0.4, 0, 0.2, 1), transform 1.2s cubic-bezier(0.4, 0, 0.2, 1);
    will-change: opacity, transform;
}

.lazy-load-img.loaded {
    opacity: 1;
    transform: scale(1);
}

/* Disable Animations on Desktop */
@media (min-width: 768px) {
    .lazy-load-img {
        opacity: 1 !important;
        transform: none !important;
        transition: none !important;
        will-change: auto !important;
    }

    .group:hover img,
    .group-hover\:scale-105,
    .hover\:scale-105 {
        transform: none !important;
        transition: none !important;
    }
}

.img-placeholder {
    background: linear-gradient(110deg, #f4ede4 8%, #efe5d9 18%, #f4ede4 33%);
    background-size: 200% 100%;
    animation: 1.5s shine linear infinite;
}

@keyframes shine {
    to {
        background-position-x: -200%;
    }
}

/* Swatch Selection Styles */
.swatch-item.active .swatch-inner {
    border-color: #5D151E !important;
    box-shadow: 0 0 0 2px rgba(93, 21, 30, 0.2);
}

.swatch-item.active .swatch-inner.rounded-full {
    box-shadow: 0 0 0 2px white, 0 0 0 4px #5D151E;
}

.swatch-item.active .swatch-inner:not(.rounded-full) {
    background-color: #5D151E !important;
    color: white !important;
}

.swatch-item:not(.active) .swatch-inner.rounded-full:hover {
    box-shadow: 0 0 0 2px white, 0 0 0 4px rgba(93, 21, 30, 0.1);
}


::-webkit-scrollbar {
    width: 6px;
}

::-webkit-scrollbar-track {
    background: var(--lux-beige);
}

::-webkit-scrollbar-thumb {
    background: var(--lux-burgundy);
}

.btn-luxury {
    background-color: var(--lux-burgundy);
    color: white;
    text-transform: uppercase;
    letter-spacing: 0.25em;
    font-weight: bold;
    padding: 12px 24px;
    font-size: 10px;
    border-radius: 20px;
}

.btn-luxury:hover {
    background-color: #4A0F18;
}

/* Hide scrollbar for thumbnails */
.scrollbar-hide::-webkit-scrollbar {
    display: none;
}

.scrollbar-hide {
    -ms-overflow-style: none;
    scrollbar-width: none;
}

/* Side Cart Checkout Form Styles */
#side-cart-checkout-container [style*="direction: rtl"] {
    text-align: right;
}

.btn-spinner {
    width: 20px;
    height: 20px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-radius: 50%;
    border-top-color: #fff;
    animation: spin 0.8s linear infinite;
}

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

#side-cart-checkout-form input::placeholder {
    color: #A0AEC0;
    font-size: 0.875rem;
}

#side-cart-checkout-form input:focus {
    background-color: #fff;
    border-color: var(--lux-burgundy);
}

/* Universal Border Radius Fix for Accessio Form Containers & Buttons */
#accessio-order-form-container {
    background-color: #FFFFFF !important;
    border-color: #E8DFC9 !important;
    border-radius: 40px !important;
}

#accessio-order-form button[type="submit"],
.summary-box,
.product-card-wrap {
    border-radius: 20px !important;
}

/* Revert Inputs to smaller radius (Standard rounded-xl is 12px) */
.form-input-wrap,
input[type="text"],
input[type="tel"],
input[type="email"],
textarea {
    border-radius: 12px !important;
}

/* Force visibility for cart drawer images (fixes white/blank images issue) */
#side-cart img,
#side-cart-checkout-container img {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    visibility: visible !important;
}

/* Hide WooCommerce default empty cart elements and duplicate icons */
#mini-cart-content-wrapper .woocommerce-mini-cart__empty-message svg,
#mini-cart-content-wrapper .cart-empty::before,
#mini-cart-content-wrapper>svg,
#mini-cart-content-wrapper svg:first-child,
.widget_shopping_cart_content>svg,
.widget_shopping_cart_content>p.woocommerce-mini-cart__empty-message::before,
.widget_shopping_cart_content .woocommerce-mini-cart__empty-message~svg,
#side-cart .widget_shopping_cart_content>svg {
    display: none !important;
}

/* Only show one icon if any - hide first SVG in empty cart */
.widget_shopping_cart_content:has(.woocommerce-mini-cart__empty-message)>svg:first-of-type {
    display: none !important;
}

.price {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.price.justify-start {
    justify-content: flex-start;
}

.price ins {
    text-decoration: none;
    font-weight: 800;
}

.price del {
    font-size: 0.75em;
    color: #94a3b8;
    font-weight: 400;
    text-decoration: line-through;
    opacity: 0.8;
}

/* Best Sellers Price Styling */
.bestseller-price {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.bestseller-price del,
.bestseller-price .woocommerce-Price-amount del {
    font-size: 0.7em !important;
    color: #9ca3af !important;
    font-weight: 300 !important;
    text-decoration: line-through !important;
    opacity: 0.6 !important;
}

.bestseller-price ins,
.bestseller-price .woocommerce-Price-amount ins {
    text-decoration: none !important;
    font-weight: 700 !important;
    color: #5D151E !important;
}

/* Product Page Price Styling */
.product-container .woocommerce-Price-amount {
    text-decoration: none !important;
}

.product-container del .woocommerce-Price-amount,
.product-container del {
    color: #9ca3af !important;
    font-weight: 400 !important;
    opacity: 0.6 !important;
    text-decoration: line-through !important;
    font-size: 0.8em !important;
}

.product-container ins .woocommerce-Price-amount,
.product-container ins {
    text-decoration: none !important;
    font-weight: 700 !important;
    color: #5D151E !important;
}

/* Shop Page Pagination */
.woocommerce-pagination ul,
nav ul.page-numbers {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.woocommerce-pagination ul li,
nav ul.page-numbers li {
    margin: 0;
}

.woocommerce-pagination ul li a,
.woocommerce-pagination ul li span,
nav ul.page-numbers li a,
nav ul.page-numbers li span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    font-size: 12px;
    font-weight: 600;
    text-decoration: none;
    transition: all 0.3s ease;
    color: #2D1B1B;
    background: transparent;
    border: 1px solid #E8DFC9;
}

.woocommerce-pagination ul li a:hover,
nav ul.page-numbers li a:hover {
    background: #2D1B1B;
    color: white;
    border-color: #2D1B1B;
}

.woocommerce-pagination ul li span.current,
nav ul.page-numbers li span.current {
    background: #5D151E;
    color: white;
    border-color: #5D151E;
}

/* ============================================
   SECTION SPACING - COMPLETE FIX
   ============================================ */

/* 1. Hero Section */
.hero-section {
    margin-bottom: 0 !important;
}

/* 2. Best Sellers Section (Les Plus Vendus) */
#bestsellers-section {
    padding-top: 60px !important;
    padding-bottom: 60px !important;
}

@media (min-width: 768px) {
    #bestsellers-section {
        padding-top: 80px !important;
        padding-bottom: 80px !important;
    }
}

/* 3. Categories Section (Accessoires Femme) - NEED MORE BOTTOM SPACE */
#categories-section {
    padding-top: 60px !important;
    padding-bottom: 80px !important;
}

@media (min-width: 768px) {
    #categories-section {
        padding-top: 80px !important;
        padding-bottom: 120px !important;
    }
}

/* 4. TrustBar Section (Nos Engagements) */
#trustbar-section {
    padding-top: 60px !important;
    padding-bottom: 60px !important;
}

@media (min-width: 768px) {
    #trustbar-section {
        padding-top: 80px !important;
        padding-bottom: 80px !important;
    }
}

/* 5. Why Choose Us Section (Pourquoi Accessio) */
#whychooseus-section {
    padding-top: 60px !important;
    padding-bottom: 60px !important;
}

@media (min-width: 768px) {
    #whychooseus-section {
        padding-top: 80px !important;
        padding-bottom: 80px !important;
    }
}

/* 6. Reviews Section (Avis clients) - NO GAP WITH FOOTER */
#reviews-section {
    padding-top: 60px !important;
    padding-bottom: 60px !important;
    margin-bottom: 0 !important;
}

@media (min-width: 768px) {
    #reviews-section {
        padding-top: 80px !important;
        padding-bottom: 80px !important;
    }
}

/* 7. Footer - NO TOP GAP */
footer {
    margin-top: 0 !important;
    padding-top: 40px !important;
}

@media (min-width: 768px) {
    footer {
        padding-top: 60px !important;
    }
}

/* WordPress Menu Compatibility */
.list-none {
    list-style: none !important;
}

nav.lg\:flex ul {
    display: flex !important;
    align-items: center !important;
    gap: 1.25rem !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

nav.lg\:flex ul li a,
#mobile-menu ul li a {
    text-decoration: none !important;
    display: block !important;
    transition: all 0.3s ease !important;
}

nav.lg\:flex ul li a {
    font-size: 10px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.25em !important;
    font-weight: 700 !important;
    color: #2D1B1B !important;
}

nav.lg\:flex ul li a:hover {
    color: var(--lux-burgundy) !important;
}

#mobile-menu ul {
    display: flex !important;
    flex-direction: column !important;
    gap: 2rem !important;
    /* matches space-y-8 */
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

#mobile-menu ul li a {
    font-size: 12px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.3em !important;
    font-weight: 700 !important;
    color: #2D1B1B !important;
    border-bottom: 1px solid #F3E9DE !important;
    padding-bottom: 1.25rem !important;
}

.site-footer-menu {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.site-footer-menu li a {
    text-decoration: none !important;
    color: #9CA3AF !important;
    /* gray-400 */
    transition: color 0.3s ease !important;
}

.site-footer-menu li a:hover {
    color: #FFFFFF !important;
}

.site-footer ul li a {
    text-decoration: none !important;
    color: inherit !important;
}