/* LOVELY LILI THEME — assets/css/main.css
   Complete stylesheet — ~14KB minified, 0 dependencies
   Correctif C5 appliqué :
   - Suppression blocs PRODUCTS WOO + WOO SINGLE (!important) → délégués à woocommerce.css
   - Ajout token --line-height-base: 1.65 dans le bloc alias :root
   - Suppression .ll-cart-count résiduel (L.86) — défini dans le bloc Cart Drawer
   - Suppression doublon .ll-nl-form dans la section Block Patterns */

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;overflow-x:clip}
body{font-family:"Jost",system-ui,-apple-system,sans-serif;color:#4A3640;background:#FEFCF9;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:clip}
img,svg,video{max-width:100%;display:block;height:auto}
a{text-decoration:none;color:inherit;transition:color .2s}
button,input,select,textarea{font-family:inherit;font-size:inherit}
ul,ol{list-style:none}
h1,h2,h3,h4,h5,h6{font-family:"Cormorant Garamond",Georgia,serif;font-weight:600;color:#2D1F24;line-height:1.2}

:root{--rose-50:#FFF5F6;--rose-100:#FFE0E6;--rose-200:#FFC1CC;--rose-300:#FFA3B5;--rose-400:#E8899A;--rose-500:#D4687E;--rose-600:#C2506B;--rose-700:#A03D56;--rose-800:#7A2E42;--rose-900:#4D1C29;--gold-50:#FFF9ED;--gold-100:#FFEDC4;--gold-200:#FFDEA0;--gold-300:#F0C66A;--gold-400:#D4A34A;--gold-500:#B8892F;--gold-600:#9A7025;--sage-50:#F4F7F2;--sage-400:#7FA06E;--sage-500:#5E8050;--cream:#FFFBF5;--warm-white:#FEFCF9;--linen:#FAF6F0;--text-dark:#2D1F24;--text-body:#4A3640;--text-muted:#8A7580;--text-light:#B5A5AD;--border:#F0E8EB;--radius-sm:8px;--radius-md:14px;--radius-lg:22px;--radius-xl:32px;--radius-full:9999px;--shadow-soft:0 2px 16px rgba(45,31,36,.05);--shadow-card:0 4px 28px rgba(45,31,36,.07);--shadow-hover:0 12px 40px rgba(45,31,36,.12);--container:1200px;--header-h:72px}
/* =============================================================
   ALIAS — Pont entre tokens du guide (nav-primary.php, announcement-bar.php)
   et le système de variables LL existant.
   À ajouter immédiatement après le bloc :root existant.
   ============================================================= */
:root {
    /* Couleurs */
    --color-primary:      var(--rose-600);        /* #C2506B */
    --color-primary-dark: var(--rose-700);        /* #A03D56 */
    --color-secondary:    var(--rose-50);          /* #FFF5F6 */
    --color-accent:       var(--rose-600);
    --color-text:         var(--text-dark);        /* #2D1F24 */
    --color-text-muted:   var(--text-muted);       /* #8A7580 */
    --color-border:       var(--border);           /* #F0E8EB */
    --color-surface:      #FFFFFF;
    --color-surface-alt:  var(--linen);            /* #FAF6F0 */

    /* Typographie */
    --font-serif:         'Cormorant Garamond', Georgia, serif;
    --font-sans:          'Jost', system-ui, sans-serif;

    /* Spacing */
    --space-xs:  4px;
    --space-sm:  8px;
    --space-md:  16px;
    --space-lg:  24px;
    --space-xl:  40px;
    --space-2xl: 64px;

    /* Radius */
    --radius-pill: var(--radius-full);             /* 9999px */

    /* Typographie complémentaire */
    --line-height-base: 1.65;

    /* Transitions */
    --transition-fast: 150ms ease;
    --transition-base: 250ms ease;
    --transition-slow: 400ms ease;
}

.ll-container{max-width:var(--container);margin:0 auto;padding:0 24px}
.ll-section{padding:90px 0}
.ll-grid{display:grid;gap:24px}
.ll-grid-2{grid-template-columns:repeat(2,1fr)}
.ll-grid-3{grid-template-columns:repeat(3,1fr)}
.ll-grid-4{grid-template-columns:repeat(4,1fr)}
.ll-grid-5{grid-template-columns:repeat(5,1fr)}
.ll-eyebrow{font-family:'Jost',sans-serif;font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--rose-500);margin-bottom:14px}
.ll-title{font-size:40px;margin-bottom:14px;letter-spacing:-.01em}
.ll-subtitle{font-size:16px;color:var(--text-muted);max-width:560px;font-weight:300}
.ll-title em{font-style:italic;color:var(--rose-600)}
.ll-sec-header{text-align:center;margin-bottom:52px}
.ll-sec-header .ll-subtitle{margin:0 auto}

/* Fond dégradé commun à tous les en-têtes de pages custom */
[class*="ll-page-header--"] {
    background: linear-gradient(145deg, var(--rose-50), var(--gold-50), var(--cream));
    padding: var(--space-2xl) 0 var(--space-xl);
    text-align: center;
    border-bottom: 1px solid var(--color-border);
}

[class*="ll-page-header--"] .ll-eyebrow {
    margin-bottom: var(--space-sm);
}

.ll-page-header__title {
    font-family: var(--font-serif);
    font-size: clamp(28px, 5vw, 52px);
    font-weight: 600;
    color: var(--color-text);
    margin-bottom: var(--space-md);
    letter-spacing: -0.01em;
    line-height: 1.15;
    word-break: break-word;
}

.ll-page-header__subtitle {
    font-size: 16px;
    color: var(--color-text-muted);
    max-width: 520px;
    margin: 0 auto;
    font-weight: 300;
    line-height: var(--line-height-base);
}
/*
 * Surcharge margin-bottom pour les pages qui affichent un CTA
 * sous le subtitle (sur-mesure, guide-tailles).
 * contact.css n'en a pas besoin → valeur de base (0 auto) suffit.
 */
.ll-page-header--sur-mesure .ll-page-header__subtitle,
.ll-page-header--guide-tailles .ll-page-header__subtitle {
    margin-bottom: var(--space-lg);
}

/* =============================================================
   FORMULAIRES — Utilitaires partagés
   @guide-step  Étape 8 — Pages custom
   @used-by     contact.css, sur-mesure.css (et toute future page
                avec un formulaire reCAPTCHA v3)
   ============================================================= */

/*
 * Honeypot anti-spam : champ caché, invisible et inaccessible.
 * Ne jamais modifier l'opacity ni le display — les bots testent ça.
 */
.ll-honeypot {
    position: absolute;
    left: -9999px;
    top: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
    opacity: 0;
    pointer-events: none;
}

/* Note légale sous le formulaire */
.ll-form-submit-note {
    font-size: 12px;
    color: var(--color-text-muted);
}

/* Spinner de chargement du bouton submit */
.ll-spin {
    animation: ll-spin 0.8s linear infinite;
    flex-shrink: 0;
}

@keyframes ll-spin {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

/*
 * Badge reCAPTCHA masqué visuellement.
 * La mention légale est affichée manuellement dans .ll-recaptcha-notice.
 * !important requis — Google injecte un style inline sur ce badge.
 */
.grecaptcha-badge { visibility: hidden !important; }

/* Notice reCAPTCHA (lien CGU Google) — sidebar ou footer de formulaire */
.ll-recaptcha-notice {
    font-size: 11px;
    color: var(--color-text-muted);
    line-height: 1.6;
    padding-top: var(--space-md);
    border-top: 1px solid var(--color-border);
}

.ll-recaptcha-notice a {
    color: var(--color-text-muted);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.ll-recaptcha-notice a:hover {
    color: var(--color-primary);
}

/* TOPBAR */
.ll-topbar{background:var(--text-dark);color:#fff;text-align:center;padding:11px 24px;font-size:13px;font-weight:500;letter-spacing:.04em}
.ll-topbar strong{color:var(--gold-300);font-weight:700}
.ll-topbar .sep{margin:0 14px;opacity:.3}

/* HEADER */
.ll-header{background:rgba(255,255,255,.97);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;height:var(--header-h)}
.ll-header-inner{max-width:var(--container);margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;height:100%}
.ll-logo{font-family:'Cormorant Garamond',serif;font-size:30px;font-weight:600;color:var(--text-dark);letter-spacing:-.01em}
.ll-logo span{color:var(--rose-600);font-style:italic}
.ll-logo img{height:44px;width:auto}
.ll-nav{display:flex;gap:32px}
.ll-nav a{font-size:13.5px;font-weight:500;color:var(--text-body);letter-spacing:.04em;text-transform:uppercase;padding:6px 0;border-bottom:2px solid transparent;transition:all .2s}
.ll-nav a:hover,.ll-nav .current-menu-item>a,.ll-nav .current_page_item>a{color:var(--rose-600);border-bottom-color:var(--rose-600)}
.ll-nav li{display:inline}
.ll-header-right{display:flex;align-items:center;gap:16px}
.ll-search-toggle{background:none;border:none;cursor:pointer;color:var(--text-body);opacity:.5;font-size:18px;padding:8px;transition:opacity .2s;line-height:1}
.ll-search-toggle:hover{opacity:1}
.ll-cart-btn{display:inline-flex;align-items:center;gap:8px;background:var(--rose-600);color:#fff;padding:10px 24px;border-radius:var(--radius-full);font-size:13px;font-weight:600;letter-spacing:.02em;transition:all .2s;border:none;cursor:pointer}
.ll-cart-btn:hover{background:var(--rose-700);transform:translateY(-1px);color:#fff}
/* .ll-cart-count géré dans le bloc Cart Drawer — ligne ~984 */
.ll-burger{display:none;background:none;border:none;cursor:pointer;padding:8px;flex-direction:column;gap:5px}
.ll-burger span{display:block;width:24px;height:2px;background:var(--text-dark);border-radius:2px;transition:all .3s}
.ll-mobile-nav{display:none;position:fixed;top:var(--header-h);left:0;right:0;bottom:0;background:#fff;z-index:99;padding:24px 0;flex-direction:column;overflow-y:auto}
.ll-mobile-nav.is-open{display:flex}
.ll-mobile-nav ul{list-style:none;padding:0;margin:0}
.ll-mobile-nav li{border-bottom:1px solid var(--border)}
.ll-mobile-nav a{display:block;padding:18px 24px;font-size:16px;font-weight:500;color:var(--text-dark);transition:background .2s}
.ll-mobile-nav a:hover,.ll-mobile-nav a:active{background:var(--rose-50);color:var(--rose-600)}
/* =====================================================
   ANNOUNCEMENT BAR
   @guide-step Étape 2 — Header
   ===================================================== */

.announcement-bar {
    background-color: var(--color-text);
    color: var(--color-surface);
    font-family: var(--font-sans);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.03em;
    line-height: 1.4;
}

.announcement-bar__inner {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-md);
    padding: var(--space-sm) var(--space-lg);
    max-width: 1200px;
    margin: 0 auto;
    position: relative;
}

.announcement-bar__text {
    margin: 0;
    text-align: center;
    /* Autoriser les liens dans le message */
}

.announcement-bar__text a {
    color: var(--color-primary);
    text-decoration: underline;
    text-underline-offset: 2px;
    transition: color var(--transition-fast);
}

.announcement-bar__text a:hover {
    color: var(--color-primary-dark);
}

.announcement-bar__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    background: transparent;
    border: none;
    border-radius: var(--radius-sm);
    color: var(--color-surface);
    opacity: 0.7;
    cursor: pointer;
    flex-shrink: 0;
    transition: opacity var(--transition-fast);
    position: absolute;
    right: var(--space-lg);
    top: 50%;
    transform: translateY(-50%);
}

.announcement-bar__close:hover {
    opacity: 1;
}

.announcement-bar__close:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
    opacity: 1;
}

/* Icône close — réduire la taille du SVG rendu via ll_icon() */
.announcement-bar__close svg {
    width: 16px;
    height: 16px;
    pointer-events: none;
}

/* Mobile — plus compact, texte centré, bouton de fermeture repositionné */
@media ( max-width: 768px ) {
    .announcement-bar__inner {
        padding: var(--space-xs) var(--space-xl) var(--space-xs) var(--space-md);
        gap: var(--space-sm);
    }

    .announcement-bar__text {
        font-size: 12px;
    }

    .announcement-bar__close {
        right: var(--space-sm);
    }
}

/* BUTTONS */
.ll-btn{display:inline-flex;align-items:center;gap:8px;padding:16px 38px;border-radius:var(--radius-full);font-size:14px;font-weight:600;letter-spacing:.03em;border:none;cursor:pointer;transition:all .3s;font-family:'Jost',sans-serif;text-align:center;justify-content:center}
.ll-btn-primary{background:var(--rose-600);color:#fff;box-shadow:0 6px 20px rgba(194,80,107,.3)}
.ll-btn-primary:hover{background:var(--rose-700);color:#fff;transform:translateY(-2px);box-shadow:0 8px 28px rgba(194,80,107,.4)}
.ll-btn-outline{background:transparent;color:var(--text-dark);border:1.5px solid var(--border)}
.ll-btn-outline:hover{border-color:var(--rose-400);color:var(--rose-600);background:var(--rose-50)}
.ll-btn-gold{background:linear-gradient(135deg,var(--gold-300),var(--gold-400));color:var(--text-dark);box-shadow:0 4px 16px rgba(212,163,74,.3)}
.ll-btn-gold:hover{transform:translateY(-2px);box-shadow:0 6px 24px rgba(212,163,74,.4)}
.ll-btn-white{background:#fff;color:var(--rose-600)}
.ll-btn-white:hover{transform:translateY(-2px);box-shadow:0 6px 24px rgba(0,0,0,.15)}
.ll-btn-sm{padding:10px 24px;font-size:13px}

/* HERO */
.ll-hero{position:relative;min-height:calc(88vh - var(--header-h));display:flex;align-items:center;background:linear-gradient(160deg,var(--rose-50) 0%,var(--cream) 40%,var(--gold-50) 80%,var(--linen) 100%);overflow:hidden}
.ll-hero::after{content:'';position:absolute;top:-200px;right:-200px;width:700px;height:700px;border-radius:50%;background:radial-gradient(circle,rgba(194,80,107,.06),transparent 70%);pointer-events:none}
.ll-hero-inner{max-width:var(--container);margin:0 auto;padding:60px 24px;display:grid;grid-template-columns:55% 45%;gap:40px;align-items:center;width:100%;position:relative;z-index:2}
.ll-hero-eyebrow{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--gold-200);padding:8px 18px;border-radius:var(--radius-full);font-size:12px;font-weight:600;color:var(--gold-600);letter-spacing:.06em;text-transform:uppercase;margin-bottom:28px;box-shadow:0 2px 12px rgba(212,163,74,.1)}
.ll-hero-eyebrow .dot{width:7px;height:7px;background:var(--gold-400);border-radius:50%;animation:ll-pulse 2s ease-in-out infinite}
@keyframes ll-pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}
.ll-hero h1{font-size:clamp(36px,5vw,56px);margin-bottom:24px;letter-spacing:-.02em}
.ll-hero h1 em{position:relative;display:inline-block}
.ll-hero h1 em::after{content:'';position:absolute;bottom:4px;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--gold-300),var(--gold-400));border-radius:2px;opacity:.7}
.ll-hero-desc{font-size:17px;color:var(--text-muted);line-height:1.9;margin-bottom:36px;max-width:480px;font-weight:300}
.ll-hero-buttons{display:flex;gap:14px;margin-bottom:36px;flex-wrap:wrap}
.ll-hero-proof{display:flex;align-items:center;gap:14px}
.ll-hero-proof .avatars{display:flex}
.ll-hero-proof .av{width:34px;height:34px;border-radius:50%;border:2.5px solid #fff;margin-left:-10px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.1)}
.ll-hero-proof .av:first-child{margin-left:0}
.ll-hero-proof .stars{color:var(--gold-400);letter-spacing:1px}
.ll-hero-proof .proof-label{font-size:13px;color:var(--text-muted);line-height:1.5}
.ll-hero-visual{position:relative;display:flex;justify-content:center;align-items:center}
.ll-hero-img{width:100%;max-width:500px;aspect-ratio:4/5;border-radius:var(--radius-xl);object-fit:cover;box-shadow:var(--shadow-card),0 0 40px rgba(194,80,107,.15)}
.ll-hero-img-placeholder{width:100%;max-width:500px;aspect-ratio:4/5;border-radius:var(--radius-xl);background:linear-gradient(145deg,var(--rose-100),var(--gold-100));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;color:var(--text-muted);box-shadow:var(--shadow-card)}
.ll-float-card{position:absolute;background:#fff;border-radius:var(--radius-md);padding:14px 22px;box-shadow:var(--shadow-card);display:flex;align-items:center;gap:10px;font-size:13px;font-weight:600;color:var(--text-dark);border:1px solid var(--border);animation:ll-float 4s ease-in-out infinite}
.ll-float-card.pos-1{top:30px;right:-10px}
.ll-float-card.pos-2{bottom:60px;left:-20px;animation-delay:2s}
@keyframes ll-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}

/* TRUST */
.ll-trust{background:#fff;border-bottom:1px solid var(--border);padding:32px 0}
.ll-trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;max-width:var(--container);margin:0 auto;padding:0 24px}
.ll-trust-item{display:flex;align-items:center;gap:16px;justify-content:center}
.ll-trust-icon{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}
.ll-trust-icon.t-pink{background:var(--rose-50)}.ll-trust-icon.t-gold{background:var(--gold-50)}.ll-trust-icon.t-sage{background:var(--sage-50)}
.ll-trust-label h4{font-family:'Jost',sans-serif;font-size:14px;font-weight:700;color:var(--text-dark);margin-bottom:2px}
.ll-trust-label p{font-size:12px;color:var(--text-muted)}

/* PRODUCTS WOO — règles supprimées (C5) : conflit !important avec woocommerce.css
   Les overrides WooCommerce sont gérés exclusivement dans assets/css/woocommerce.css */

/* Badges custom LL (non-WooCommerce natif — conservés) */
.ll-badge{position:absolute;top:14px;left:14px;padding:5px 14px;border-radius:var(--radius-full);font-size:11px;font-weight:700;z-index:3;text-transform:uppercase;font-family:'Jost',sans-serif}
.ll-badge-new{background:var(--sage-400);color:#fff}
.ll-badge-best{background:var(--gold-400);color:var(--text-dark)}

/* CATEGORIES */
.ll-cat-card{text-align:center;cursor:pointer;transition:all .3s;display:block}
.ll-cat-card:hover{transform:translateY(-6px)}
.ll-cat-card img,.ll-cat-img{width:100%;aspect-ratio:1;border-radius:50%;object-fit:cover;border:3px solid var(--border);box-shadow:var(--shadow-soft);transition:all .3s;margin-bottom:18px}
.ll-cat-card:hover img{border-color:var(--rose-400);box-shadow:var(--shadow-hover)}
.ll-cat-name{font-family:'Jost',sans-serif;font-weight:700;font-size:15px;color:var(--text-dark);margin-bottom:3px}
.ll-cat-link{font-size:12px;color:var(--rose-600)}

/* REVIEWS */
.ll-review-score{display:flex;justify-content:center;align-items:center;gap:24px;margin-bottom:44px}
.ll-score-num{font-family:'Cormorant Garamond',serif;font-size:64px;font-weight:600;color:var(--text-dark);line-height:1}
.ll-score-stars{color:var(--gold-400);font-size:22px;letter-spacing:3px;margin-bottom:4px}
.ll-score-count{font-size:14px;color:var(--text-muted)}
.ll-review-card{background:var(--rose-50);border-radius:var(--radius-lg);padding:32px 28px;border:1px solid rgba(194,80,107,.06);transition:all .3s}
.ll-review-card:hover{box-shadow:var(--shadow-card);transform:translateY(-3px)}
.ll-review-stars{color:var(--gold-400);font-size:15px;letter-spacing:2px;margin-bottom:16px}
.ll-review-text{font-size:17px;color:var(--text-body);line-height:1.85;margin-bottom:24px;font-style:italic;font-family:'Cormorant Garamond',serif;font-weight:400}
.ll-review-author{display:flex;align-items:center;gap:14px}
.ll-review-avatar{width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;color:#fff;flex-shrink:0}
.ll-review-name{font-family:'Jost',sans-serif;font-weight:700;font-size:14px;color:var(--text-dark)}
.ll-review-product{font-size:12px;color:var(--text-muted);margin-top:1px}
.ll-review-verified{font-size:11px;color:var(--sage-500);font-weight:600;margin-top:2px}

/* ABOUT */
.ll-about-img{width:100%;aspect-ratio:4/5;border-radius:var(--radius-xl);object-fit:cover;box-shadow:var(--shadow-card)}
.ll-about-content .ll-eyebrow,.ll-about-content .ll-title{text-align:left}
.ll-about-content p{font-size:16px;color:var(--text-body);margin-bottom:16px;line-height:1.9;font-weight:300}
.ll-about-sig{font-family:'Cormorant Garamond',serif;font-size:26px;font-style:italic;color:var(--rose-600);margin-top:28px}
.ll-about-counters{display:flex;gap:36px;margin-top:36px;padding-top:32px;border-top:1px solid var(--border)}
.ll-counter .num{font-family:'Cormorant Garamond',serif;font-size:32px;font-weight:600;color:var(--rose-600);line-height:1}
.ll-counter .lbl{font-size:12px;color:var(--text-muted);margin-top:6px}

/* SUR MESURE */
.ll-custom{background:var(--text-dark);color:#fff;position:relative;overflow:hidden}
.ll-custom::before{content:'';position:absolute;top:-40%;right:-5%;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(194,80,107,.1),transparent 70%)}
.ll-custom-inner{position:relative;z-index:2}
.ll-custom .ll-eyebrow{color:var(--gold-400)}
.ll-custom .ll-title{color:#fff}
.ll-custom p{font-size:16px;color:rgba(255,255,255,.65);line-height:1.9;font-weight:300;margin-bottom:20px}
.ll-step{display:flex;gap:18px;align-items:flex-start;margin-bottom:22px}
.ll-step-num{width:40px;height:40px;border-radius:50%;background:var(--rose-600);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;flex-shrink:0;font-family:'Jost',sans-serif;box-shadow:0 4px 12px rgba(194,80,107,.4)}
.ll-step h4{font-family:'Jost',sans-serif;font-size:15px;font-weight:700;color:#fff;margin-bottom:3px}
.ll-step p{font-size:13px;color:rgba(255,255,255,.55);line-height:1.6;margin:0}
.ll-custom-img{width:100%;aspect-ratio:1;border-radius:var(--radius-xl);object-fit:cover;border:1px solid rgba(255,255,255,.08)}

/* PROMO */
.ll-promo{background:linear-gradient(135deg,var(--rose-600),var(--rose-700),var(--rose-800));color:#fff;padding:52px 0;text-align:center;position:relative;overflow:hidden}
.ll-promo::before{content:'';position:absolute;top:-50px;left:50%;transform:translateX(-50%);width:800px;height:200px;background:radial-gradient(ellipse,rgba(255,255,255,.08),transparent 70%)}
.ll-promo h2{font-size:40px;margin-bottom:10px;position:relative;color:#fff}
.ll-promo p{font-size:16px;opacity:.85;margin-bottom:28px;position:relative;font-weight:300}

/* NEWSLETTER */
.ll-nl-box{background:linear-gradient(145deg,var(--rose-50),var(--gold-50),var(--cream));border-radius:var(--radius-xl);padding:64px 48px;text-align:center;max-width:680px;margin:0 auto;border:1px solid var(--border);box-shadow:var(--shadow-soft)}
.ll-nl-box h2{font-size:32px;margin-bottom:12px}
.ll-nl-box>p{font-size:15px;color:var(--text-muted);margin-bottom:28px;font-weight:300}
.ll-nl-form{display:flex;gap:10px;max-width:440px;margin:0 auto 14px}
.ll-nl-form input[type="email"]{flex:1;padding:14px 22px;border-radius:var(--radius-full);border:1.5px solid var(--border);font-size:14px;background:#fff;outline:none;transition:border .2s}
.ll-nl-form input[type="email"]:focus{border-color:var(--rose-400)}
.ll-nl-fine{font-size:12px;color:var(--text-light)}

/* FAQ */
.ll-faq-list{max-width:740px;margin:0 auto}
.ll-faq-item{background:#fff;border-radius:var(--radius-md);margin-bottom:10px;border:1px solid var(--border);overflow:hidden;transition:border .2s}
.ll-faq-item:hover{border-color:var(--rose-200)}
.ll-faq-q{padding:22px 26px;font-family:'Jost',sans-serif;font-weight:600;font-size:15px;color:var(--text-dark);cursor:pointer;display:flex;justify-content:space-between;align-items:center;background:none;border:none;width:100%;text-align:left;transition:color .2s;line-height:1.5}
.ll-faq-q:hover{color:var(--rose-600)}
.ll-faq-q .icon{color:var(--rose-500);font-size:20px;transition:transform .3s;font-weight:300;flex-shrink:0;margin-left:16px}
.ll-faq-a{max-height:0;overflow:hidden;transition:max-height .4s ease,padding .3s;padding:0 26px}
.ll-faq-item.is-open .ll-faq-a{max-height:400px;padding:0 26px 22px}
.ll-faq-item.is-open .icon{transform:rotate(45deg)}
.ll-faq-a p{font-size:14.5px;color:var(--text-muted);line-height:1.85;font-weight:300}

/* SEARCH OVERLAY */
.ll-search-overlay{position:fixed;inset:0;background:rgba(45,31,36,.85);z-index:200;display:none;align-items:center;justify-content:center;backdrop-filter:blur(8px)}
.ll-search-overlay.is-open{display:flex}
.ll-search-overlay form{width:100%;max-width:600px;padding:0 24px}
.ll-search-overlay input[type="search"]{width:100%;padding:20px 28px;font-size:20px;border:none;border-radius:var(--radius-full);background:#fff;outline:none;font-family:'Jost',sans-serif}
.ll-search-close{position:absolute;top:32px;right:32px;background:none;border:none;color:#fff;font-size:32px;cursor:pointer;padding:8px;line-height:1}

/* FOOTER */
.ll-footer{background:var(--text-dark);color:rgba(255,255,255,.65);padding:64px 0 28px}
.ll-footer-grid{display:grid;grid-template-columns:2.2fr 1fr 1fr 1fr;gap:48px;margin-bottom:48px}
.ll-footer-brand .ll-logo{color:#fff;margin-bottom:16px;display:inline-block;font-size:28px}
.ll-footer-brand .ll-logo span{color:var(--rose-400)}
.ll-footer-brand p{font-size:14px;line-height:1.85;margin-bottom:24px}
.ll-footer-socials{display:flex;gap:10px}
.ll-footer-socials a{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;color:#fff;transition:background .2s}
.ll-footer-socials a:hover{background:var(--rose-600)}
.ll-footer-socials svg{width:18px;height:18px}
.ll-footer h4{color:#fff;font-family:'Jost',sans-serif;font-size:13px;font-weight:700;margin-bottom:22px;letter-spacing:.06em;text-transform:uppercase}
.ll-footer li{margin-bottom:11px}
.ll-footer a{font-size:13.5px;color:rgba(255,255,255,.55);transition:color .2s}
.ll-footer a:hover{color:#fff}
.ll-footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding-top:24px;display:flex;justify-content:space-between;align-items:center;font-size:12px;color:rgba(255,255,255,.35)}
.ll-pay-icons{display:flex;gap:8px}
.ll-pay-icon{width:44px;height:28px;background:rgba(255,255,255,.08);border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:9px;color:rgba(255,255,255,.5);font-weight:600}

/* ============================================================
   FOOTER — template-parts/footer/footer-main.php
   @guide-step Étape 1 / Section 6 Design System
   ============================================================ */

/* ── Layout ── */
.site-footer {
    background-color: var(--color-surface-alt);
    border-top: 1px solid var(--color-border);
    font-family: var(--font-sans);
    font-size: 14px;
    color: var(--color-text-muted);
}

.footer-main {
    padding-block: var(--space-2xl);
}

.footer-main__container {
    max-width: 1200px;
    margin-inline: auto;
    padding-inline: var(--space-lg);
    display: grid;
    grid-template-columns: 1.6fr 1fr 1fr 1.2fr;
    gap: var(--space-xl);
    align-items: start;
}

/* ── Colonne marque ── */
.footer-brand__logo-link {
    display: inline-block;
    margin-bottom: var(--space-md);
    text-decoration: none;
}

.footer-brand__logo-img {
    max-width: 140px;
    height: auto;
}

.footer-brand__logo-text {
    font-family: var(--font-serif);
    font-size: 22px;
    color: var(--color-text);
    font-weight: 600;
}

.footer-brand__tagline {
    margin-block: var(--space-md);
    line-height: var(--line-height-base);
    white-space: pre-line;
}

/* ── Réseaux sociaux ── */
.footer-social {
    display: flex;
    gap: var(--space-sm);
    margin-top: var(--space-md);
}

.footer-social__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--radius-md);
    background-color: var(--color-border);
    color: var(--color-text);
    transition: background-color var(--transition-base), color var(--transition-base);
    text-decoration: none;
}

.footer-social__link:hover,
.footer-social__link:focus-visible {
    background-color: var(--color-primary);
    color: var(--color-surface);
}

.footer-social__link:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}

/* ── Titres de colonnes ── */
.footer-col__title {
    font-family: var(--font-sans);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--color-text);
    margin-bottom: var(--space-md);
    /* Annule le style H2 global — ce n'est pas un titre de section sémantique */
    line-height: 1.4;
}

/* ── Listes de navigation ── */
.footer-nav-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
}

.footer-nav-list__item { margin: 0; }

.footer-nav-list__link,
.footer-nav-list li a {
    color: var(--color-text-muted);
    text-decoration: none;
    font-size: 14px;
    transition: color var(--transition-fast);
}

.footer-nav-list__link:hover,
.footer-nav-list li a:hover,
.footer-nav-list__link:focus-visible,
.footer-nav-list li a:focus-visible {
    color: var(--color-primary);
    text-decoration: underline;
}

.footer-nav-list li a:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
    border-radius: var(--radius-sm);
}

/* ── Réassurance ── */
.footer-reassurance {
    list-style: none;
    margin: 0 0 var(--space-md);
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
}

.footer-reassurance__item {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    font-size: 13px;
}

.footer-reassurance__icon { flex-shrink: 0; }

.footer-reassurance__label { color: var(--color-text-muted); }

/* ── CTA contact ── */
.footer-contact-cta {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    font-size: 13px;
    font-weight: 600;
    color: var(--color-primary);
    text-decoration: none;
    letter-spacing: 0.04em;
    transition: color var(--transition-fast);
}

.footer-contact-cta:hover,
.footer-contact-cta:focus-visible {
    color: var(--color-primary-dark);
    text-decoration: underline;
}

.footer-contact-cta:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
    border-radius: var(--radius-sm);
}

/* ── Responsive : tablette ── */
@media (max-width: 1024px) {
    .footer-main__container {
        grid-template-columns: 1fr 1fr;
        gap: var(--space-xl) var(--space-lg);
    }

    .footer-col--brand {
        grid-column: 1 / -1;
    }
}

/* ── Responsive : mobile ── */
@media (max-width: 640px) {
    .footer-main__container {
        grid-template-columns: 1fr;
        gap: var(--space-lg);
    }

    .footer-col--brand { grid-column: 1; }

    .footer-main {
        padding-block: var(--space-xl);
    }
}

/* ===================================================================
   FOOTER LÉGAL — footer-legal.php
   Guide : Étape 4 · Anti-pattern #9
   =================================================================== */

.footer-legal {
    border-top: 1px solid var(--color-border);
    background: var(--color-surface);
    padding-block: var(--space-md);
}

.footer-legal__inner {
    max-width: 1200px;
    margin-inline: auto;
    padding-inline: var(--space-lg);
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--space-md);
}

/* Copyright */
.footer-legal__copy {
    font-family: var(--font-sans);
    font-size: 12px;
    color: var(--color-text-muted);
    margin: 0;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-xs);
}

.footer-legal__made-in {
    color: var(--color-text-muted);
    opacity: 0.75;
}

/* Nav légale */
.footer-legal__list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-xs) var(--space-md);
}

.footer-legal__link {
    font-family: var(--font-sans);
    font-size: 12px;
    color: var(--color-text-muted);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.footer-legal__link:hover {
    color: var(--color-text);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.footer-legal__link:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
    border-radius: var(--radius-sm);
    color: var(--color-text);
}

/* Lien sans cible (page non encore créée) */
.footer-legal__link[aria-disabled="true"] {
    pointer-events: none;
    opacity: 0.4;
    cursor: not-allowed;
}

/* ── Responsive ────────────────────────────────────────────────── */

@media ( max-width: 640px ) {
    .footer-legal__inner {
        flex-direction: column;
        align-items: flex-start;
        padding-inline: var(--space-md);
    }

    .footer-legal__list {
        gap: var(--space-xs) var(--space-sm);
    }
}

/* PAGES */
.ll-page-header{background:linear-gradient(135deg,var(--rose-50),var(--cream));padding:60px 0;text-align:center}
.ll-page-header h1{font-size:42px;margin-bottom:8px}
.ll-page-content{padding:60px 0}
.ll-page-content .entry-content{max-width:800px;margin:0 auto}
.ll-page-content .entry-content p{margin-bottom:20px}
.ll-page-content .entry-content h2{margin:40px 0 16px;font-size:28px}
.ll-page-content .entry-content h3{margin:32px 0 12px;font-size:22px}
.ll-page-content .entry-content img{border-radius:var(--radius-md);margin:24px 0}
.ll-page-content .entry-content a{color:var(--rose-600);text-decoration:underline}
.ll-404{text-align:center;padding:120px 0}
.ll-404 h1{font-size:120px;color:var(--rose-200);line-height:1;margin-bottom:16px}
.ll-404 h2{font-size:28px;margin-bottom:16px}
.ll-404 p{color:var(--text-muted);margin-bottom:32px}

/* WOO SINGLE — règles !important supprimées (C5) : conflit avec woocommerce.css
   Les overrides PDP sont gérés exclusivement dans assets/css/woocommerce.css */

/* Sélecteur de quantité — non conflictuel (complément) */
.woocommerce .quantity .qty{border-radius:var(--radius-sm);border:1.5px solid var(--border);padding:10px 14px}

/* Champs de formulaire globaux WooCommerce — non conflictuels */
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea{border-radius:var(--radius-sm);border:1.5px solid var(--border);padding:12px 16px;transition:border .2s}
.woocommerce form .form-row input.input-text:focus,.woocommerce form .form-row textarea:focus{border-color:var(--rose-400);outline:none}

/* ANIMATIONS */
.ll-reveal{opacity:0;transform:translateY(30px);transition:opacity .6s ease,transform .6s ease}
.ll-reveal.is-visible{opacity:1;transform:translateY(0)}

/* RESPONSIVE */
@media(max-width:1024px){.ll-grid-4{grid-template-columns:repeat(2,1fr)}.ll-grid-5{grid-template-columns:repeat(3,1fr)}.woocommerce ul.products{grid-template-columns:repeat(2,1fr)!important}}
@media(max-width:900px){.ll-hero-inner{grid-template-columns:1fr;text-align:center}.ll-hero-desc{margin:0 auto 28px}.ll-hero-buttons{justify-content:center}.ll-hero-proof{justify-content:center}.ll-hero-visual{display:none}.ll-grid-2{grid-template-columns:1fr}.ll-grid-3{grid-template-columns:1fr}.ll-trust-grid{grid-template-columns:1fr;gap:16px;padding:0 24px}.ll-trust-item{justify-content:flex-start;gap:14px;padding:12px 16px;background:var(--rose-50);border-radius:var(--radius-md)}.ll-about-counters{justify-content:center}.ll-nav{display:none}.ll-burger{display:flex}.ll-cart-btn span:not(.ll-cart-count){display:none}.ll-cart-btn{padding:10px 14px}.ll-footer-grid{grid-template-columns:1fr 1fr}.ll-promo h2{font-size:28px}.ll-nl-box{padding:40px 24px}.ll-nl-form{flex-direction:column}.ll-topbar{font-size:11px;padding:8px 16px}.ll-topbar .sep{display:none}.ll-hero::after,.ll-custom::before,.ll-promo::before{display:none}.ll-hero,.ll-custom,.ll-promo{overflow:hidden}}
@media(max-width:600px){:root{--header-h:60px}.ll-section{padding:60px 0}.ll-title{font-size:28px}.ll-grid-4,.ll-grid-5{grid-template-columns:repeat(2,1fr)}.ll-trust-grid{grid-template-columns:1fr}.ll-trust-item{padding:10px 12px}.ll-trust-icon{width:42px;height:42px;font-size:18px}.ll-trust-label h4{font-size:13px}.ll-trust-label p{font-size:11px}.woocommerce ul.products{grid-template-columns:1fr!important}.ll-insta-grid{grid-template-columns:repeat(3,1fr)}.ll-footer-grid{grid-template-columns:1fr}.ll-footer-bottom{flex-direction:column;gap:16px;text-align:center}.ll-logo{font-size:24px}.ll-logo img{height:36px}html{overflow-x:hidden}.nav-primary__inner{padding:var(--space-sm) var(--space-md)}}

@media print{.ll-topbar,.ll-header,.ll-footer,.ll-search-overlay{display:none!important}body{background:#fff;color:#000}}

/* ===================================================================
   DYNAMIC CONTENT (Gutenberg Block Support)
   =================================================================== */

/* Fullwidth mode: blocks go edge-to-edge */
.ll-dynamic--fullwidth{max-width:100%;overflow:hidden}
.ll-dynamic--fullwidth>*{max-width:var(--container);margin-left:auto;margin-right:auto;padding-left:24px;padding-right:24px}
.ll-dynamic--fullwidth>.alignfull,.ll-dynamic--fullwidth>.wp-block-group.alignfull,.ll-dynamic--fullwidth>.wp-block-cover.alignfull,.ll-dynamic--fullwidth>.wp-block-columns.alignfull{max-width:100%;padding-left:0;padding-right:0;margin-left:0;margin-right:0}
.ll-dynamic--fullwidth>.alignwide,.ll-dynamic--fullwidth>.wp-block-group.alignwide{max-width:1400px}
.ll-dynamic--fullwidth>.wp-block-group.has-background{padding:60px 24px}
.ll-dynamic--fullwidth>.wp-block-group.alignfull.has-background{padding:90px 24px}
.ll-dynamic--fullwidth>.wp-block-group.alignfull.has-background>*{max-width:var(--container);margin-left:auto;margin-right:auto}

/* Standard mode: content constrained */
.ll-dynamic--standard{padding:60px 0}
.ll-dynamic--standard .entry-content{max-width:800px;margin:0 auto}
.ll-dynamic--standard .entry-content>*+*{margin-top:20px}

/* WordPress block editor common classes */
.wp-block-group{margin-bottom:0}
.wp-block-group.has-background{padding:90px 24px}
.wp-block-group .wp-block-group__inner-container{max-width:var(--container);margin:0 auto}

.wp-block-heading{font-family:'Cormorant Garamond',Georgia,serif;font-weight:600;color:var(--text-dark)}
.wp-block-heading.has-text-align-center{text-align:center}
.wp-block-paragraph{line-height:1.7}

/* WP Columns */
.wp-block-columns{gap:24px;margin-bottom:0}
.wp-block-column{margin-bottom:0}

/* WP Cover block */
.wp-block-cover{min-height:400px;display:flex;align-items:center;justify-content:center;border-radius:0;margin-bottom:0}
.wp-block-cover.alignfull{border-radius:0}
.wp-block-cover .wp-block-cover__inner-container{max-width:var(--container);width:100%;padding:0 24px}

/* WP Image */
.wp-block-image{margin-bottom:0}
.wp-block-image img{border-radius:var(--radius-md)}
.wp-block-image.alignfull img{border-radius:0;width:100%}

/* WP Buttons */
.wp-block-button .wp-block-button__link{font-family:'Jost',sans-serif;font-weight:600;font-size:14px;padding:16px 38px;border-radius:var(--radius-full);transition:all .3s;letter-spacing:.03em}
.wp-block-button.is-style-fill .wp-block-button__link{background:var(--rose-600);color:#fff;box-shadow:0 6px 20px rgba(194,80,107,.3)}
.wp-block-button.is-style-fill .wp-block-button__link:hover{background:var(--rose-700);transform:translateY(-2px)}
.wp-block-button.is-style-outline .wp-block-button__link{border:1.5px solid var(--border);color:var(--text-dark);background:transparent}
.wp-block-button.is-style-outline .wp-block-button__link:hover{border-color:var(--rose-400);color:var(--rose-600)}

/* WP Separator */
.wp-block-separator{border:none;border-top:1px solid var(--border);margin:40px auto;max-width:200px}
.wp-block-separator.is-style-wide{max-width:100%}

/* WP Spacer */
.wp-block-spacer{margin:0}

/* WP Quote */
.wp-block-quote{border-left:3px solid var(--rose-600);padding:16px 0 16px 28px;margin:32px 0;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:20px;color:var(--text-body)}
.wp-block-quote cite{font-family:'Jost',sans-serif;font-size:14px;color:var(--text-muted);font-style:normal;display:block;margin-top:12px}

/* WP List */
.wp-block-list{padding-left:24px;margin-bottom:20px}
.wp-block-list li{margin-bottom:8px;line-height:1.7}

/* WP Table */
.wp-block-table{width:100%;border-collapse:collapse;margin:24px 0}
.wp-block-table td,.wp-block-table th{padding:12px 16px;border:1px solid var(--border);text-align:left;font-size:14px}
.wp-block-table th{background:var(--rose-50);font-weight:700;color:var(--text-dark)}

/* Custom colors from theme.json */
.has-rose-600-background-color{background-color:var(--rose-600)!important}
.has-rose-50-background-color{background-color:var(--rose-50)!important}
.has-gold-400-background-color{background-color:var(--gold-400)!important}
.has-gold-50-background-color{background-color:var(--gold-50)!important}
.has-sage-400-background-color{background-color:var(--sage-400)!important}
.has-dark-background-color{background-color:var(--text-dark)!important}
.has-cream-background-color{background-color:var(--cream)!important}
.has-white-background-color{background-color:#fff!important}
.has-rose-600-color{color:var(--rose-600)!important}
.has-gold-400-color{color:var(--gold-400)!important}
.has-dark-color{color:var(--text-dark)!important}
.has-white-color{color:#fff!important}

/* WooCommerce blocks */
.wc-block-grid{margin:0}
.wc-block-grid .wc-block-grid__products{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.wc-block-grid .wc-block-grid__product{border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--border);transition:all .3s}
.wc-block-grid .wc-block-grid__product:hover{box-shadow:var(--shadow-hover);transform:translateY(-4px)}

/* Responsive for dynamic content */
@media(max-width:900px){
  .ll-dynamic--fullwidth>.wp-block-group.alignfull.has-background{padding:60px 24px}
  .wp-block-columns{flex-direction:column}
  .wp-block-column{flex-basis:100%!important;margin-left:0!important}
}
@media(max-width:600px){
  .ll-dynamic--fullwidth>*{padding-left:16px;padding-right:16px}
  .wp-block-group.has-background{padding:40px 16px}
  .wp-block-cover{min-height:300px}
}

/* ===================================================================
   BLOCK PATTERN STYLES — Sections ajoutées
   =================================================================== */

/* --- Details / Summary (FAQ WordPress 6.9) --- */
.wp-block-details{margin-bottom:10px;transition:border-color .2s}
.wp-block-details:hover{border-color:var(--rose-200)!important}
.wp-block-details summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;line-height:1.5;transition:color .2s}
.wp-block-details summary:hover{color:var(--rose-600)}
.wp-block-details summary::-webkit-details-marker{display:none}
.wp-block-details summary::marker{display:none;content:''}
.wp-block-details summary::after{content:'+';color:var(--rose-500);font-size:20px;font-weight:300;flex-shrink:0;margin-left:16px;transition:transform .3s}
.wp-block-details[open] summary::after{transform:rotate(45deg)}
.wp-block-details[open]>*:not(summary){animation:ll-faq-open .3s ease}
@keyframes ll-faq-open{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}

/* --- Category images (round) from patterns --- */
.wp-block-image.aligncenter figure,.wp-block-image.aligncenter img{margin-left:auto;margin-right:auto}
.wp-block-columns .wp-block-column .wp-block-image[style*="border-radius:50%"] img,
.wp-block-columns .wp-block-column figure[style*="border-radius:50%"] img{aspect-ratio:1;object-fit:cover;border:3px solid var(--border);box-shadow:var(--shadow-soft);transition:all .3s}
.wp-block-columns .wp-block-column:hover .wp-block-image[style*="border-radius:50%"] img,
.wp-block-columns .wp-block-column:hover figure[style*="border-radius:50%"] img{border-color:var(--rose-400);box-shadow:var(--shadow-hover);transform:scale(1.03)}
.wp-block-columns .wp-block-column:hover{transition:transform .3s}

/* --- Newsletter form (inline HTML block) --- */
/* .ll-nl-form défini ligne ~311 — voir section NEWSLETTER */
.ll-nl-form input[type="email"]{flex:1;padding:14px 22px;border-radius:var(--radius-full);border:1.5px solid var(--border);font-size:14px;font-family:'Jost',sans-serif;background:#fff;outline:none;transition:border .2s}
.ll-nl-form input[type="email"]:focus{border-color:var(--rose-400)}
.ll-nl-form button{transition:all .2s}
.ll-nl-form button:hover{background:var(--rose-700)!important;transform:translateY(-1px)}

/* --- Dark section overrides (Sur mesure pattern) --- */
.wp-block-group[style*="background-color:#2D1F24"] .wp-block-heading,
.wp-block-group[style*="background-color:#2D1F24"] h2{color:#fff}
.wp-block-group[style*="background-color:#2D1F24"] a{color:inherit}
.wp-block-group[style*="background-color:#2D1F24"] .wp-block-button__link:hover{opacity:.9;transform:translateY(-2px)}

/* --- Score number (reviews) --- */
.wp-block-group p[style*="font-size:64px"]{font-family:'Cormorant Garamond',Georgia,serif;line-height:1}

/* --- Counters (about section) --- */
.wp-block-group p[style*="font-size:32px"][style*="font-weight:600"]{font-family:'Cormorant Garamond',Georgia,serif;line-height:1}

/* --- Review italic text --- */
.wp-block-column[style*="#FFF5F6"] p[style*="italic"]{font-family:'Cormorant Garamond',Georgia,serif}

/* --- Additional color classes --- */
.has-sage-400-color{color:var(--sage-400)!important}
.has-text-muted-color{color:var(--text-muted)!important}
.has-text-body-color{color:var(--text-body)!important}
.has-text-light-color{color:var(--text-light)!important}
.has-gold-400-color{color:var(--gold-400)!important}
.has-gold-50-background-color{background-color:var(--gold-50)!important}
.has-sage-50-background-color{background-color:var(--sage-50)!important}
.has-rose-100-background-color{background-color:var(--rose-100)!important}

/* --- Gradient backgrounds from patterns --- */
[style*="linear-gradient(135deg,#FFF5F6,#FFFBF5)"]{background:linear-gradient(135deg,var(--rose-50),var(--cream))!important}
[style*="linear-gradient(145deg,#FFF5F6,#FFF9ED,#FFFBF5)"]{background:linear-gradient(145deg,var(--rose-50),var(--gold-50),var(--cream))!important}
[style*="linear-gradient(135deg,#C2506B,#A03D56,#7A2E42)"]{background:linear-gradient(135deg,var(--rose-600),var(--rose-700),var(--rose-800))!important}

/* --- Pattern links underline removal --- */
.ll-dynamic--fullwidth .wp-block-column a[style*="color:#C2506B"]{text-decoration:none;transition:opacity .2s}
.ll-dynamic--fullwidth .wp-block-column a[style*="color:#C2506B"]:hover{opacity:.7}

/* --- Section spacing for stacked patterns --- */
.ll-dynamic--fullwidth>.wp-block-group.alignfull+.wp-block-group.alignfull{margin-top:0}
.ll-dynamic--fullwidth>.wp-block-group.alignfull{margin-bottom:0}

/* --- Responsive for new patterns --- */
@media(max-width:900px){
  .wp-block-group p[style*="font-size:64px"]{font-size:48px!important}
  .wp-block-group[style*="background-color:#2D1F24"] .wp-block-columns{gap:40px}
  .ll-nl-form{flex-direction:column}
  .ll-nl-form input[type="email"]{width:100%}
}
@media(max-width:600px){
  .wp-block-group p[style*="font-size:64px"]{font-size:36px!important}
  .wp-block-details{margin-bottom:8px}
  .wp-block-details summary{font-size:14px!important}
}

/* =============================================================
   NAVIGATION PRINCIPALE — nav-primary
   @guide-step  Étape 2 — Header
   ============================================================= */

/* ---- Conteneur global ---- */
.nav-primary {
    top: 0;
    z-index: 200;
    width: 100%;
    background: transparent; /* ll-header fournit le fond */
    height: 100%;
    display: flex;
    align-items: center;
}

/* =============================================================
   NAV UTILITY — Icônes header (search, wishlist, compte, panier)
   @guide-step  Étape 2 — Header
   ============================================================= */

.ll-nav-utility {
    display: flex;
    align-items: center;
    gap: var(--space-lg);
}

/* Liens texte desktop (Sur mesure, Carte cadeau, Contact) */
.ll-nav-utility__links {
    display: flex;
    align-items: center;
    gap: var(--space-md);
    list-style: none;
    margin: 0;
    padding: 0;
}

.ll-nav-utility__link {
    font-size: 13px;
    font-weight: 500;
    color: var(--text-body);
    letter-spacing: 0.02em;
    transition: color var(--transition-fast);
    white-space: nowrap;
}

.ll-nav-utility__link:hover {
    color: var(--rose-600);
}

.ll-nav-utility__link--gift {
    color: var(--gold-600);
}

/* Groupe d'icônes */
.ll-nav-utility__actions {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
}

/* Bouton/lien icône générique */
.ll-nav-utility__btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 40px;
    height: 40px;
    background: transparent;
    border: none;
    border-radius: var(--radius-sm);
    color: var(--text-body);
    cursor: pointer;
    transition: background var(--transition-fast), color var(--transition-fast);
    text-decoration: none;
    padding: 0;
}

.ll-nav-utility__btn:hover {
    background: var(--rose-50);
    color: var(--rose-600);
}

.ll-nav-utility__btn:focus-visible {
    outline: 2px solid var(--rose-600);
    outline-offset: 2px;
}

/* Label texte (Mon compte / Se connecter) */
.ll-nav-utility__label {
    font-size: 12px;
    font-weight: 500;
    white-space: nowrap;
}

/* Badge compteur (wishlist) */
.ll-nav-utility__badge {
    position: absolute;
    top: 2px;
    right: 2px;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    background: var(--rose-600);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    line-height: 16px;
    text-align: center;
    border-radius: var(--radius-full);
    pointer-events: none;
}

/* Compteur panier */
.ll-cart-count {
    position: absolute;
    top: 2px;
    right: 2px;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    background: var(--rose-600);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    line-height: 16px;
    text-align: center;
    border-radius: var(--radius-full);
    pointer-events: none;
    transition: transform var(--transition-fast);
}

.ll-cart-count--empty {
    display: none;
}

/* Mobile : masquer les liens texte */
@media (max-width: 767px) {
    .ll-nav-utility__links {
        display: none;
    }
    .ll-nav-utility__label {
        display: none;
    }
}

/* =============================================================
   SEARCH BAR — Dropdown panel sous le header (Option A)
   @guide-step  Étape 2 — Header avec barre d'annonce, recherche et wishlist
   @depends     template-parts/global/search-bar.php
   @version     1.0.0

   Architecture :
   ┌─ .ll-search-bar__panel [position:fixed, top:--header-h, z-index:250]
   │   ├─ .ll-search-bar__overlay  → backdrop sombre (ferme au clic)
   │   └─ .ll-search-bar__inner   → boîte blanche avec le contenu
   │       ├─ .ll-search-bar__form
   │       │   └─ .ll-search-bar__input-wrap (.input-icon / .input / .clear)
   │       │   └─ .ll-search-bar__submit
   │       ├─ .ll-search-bar__suggestions (.suggestions-label / .suggestions-list)
   │       └─ .ll-search-bar__close
   ============================================================= */

/* ── 1. Panneau principal ── */
.ll-search-bar__panel {
    position: fixed;
    top: var(--header-h);
    left: 0;
    right: 0;
    z-index: 250; /* au-dessus du header (100) et du nav overlay (150), sous le cart drawer (500) */
}

/* ── 2. Overlay backdrop — s'étend sous le panel jusqu'au bas de l'écran ── */
.ll-search-bar__overlay {
    position: fixed;
    top: var(--header-h);
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(45, 31, 36, 0.45);
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
    cursor: pointer;
}

/* ── 3. Boîte blanche animée ── */
.ll-search-bar__inner {
    position: relative;
    z-index: 1; /* au-dessus de l'overlay via ordre DOM + stacking context */
    background: var(--color-surface);
    border-bottom: 1px solid var(--color-border);
    box-shadow: 0 8px 32px rgba(45, 31, 36, 0.10);
    padding: var(--space-lg) var(--space-lg) var(--space-md);
    /* Right padding élargi pour ne pas déborder sous le bouton close */
    padding-right: calc(var(--space-lg) + 52px);
    animation: ll-search-drop 0.22s ease both;
}

@keyframes ll-search-drop {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ── 4. Formulaire ── */
.ll-search-bar__form {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
}

/* Input + icônes inline */
.ll-search-bar__input-wrap {
    position: relative;
    flex: 1;
    display: flex;
    align-items: center;
}

.ll-search-bar__input-icon {
    position: absolute;
    left: var(--space-md);
    display: flex;
    align-items: center;
    color: var(--text-muted);
    pointer-events: none;
}

.ll-search-bar__input-icon svg {
    width: 18px;
    height: 18px;
}

.ll-search-bar__input {
    width: 100%;
    height: 48px;
    padding: 0 44px 0 46px; /* 46px pour l'icône loupe, 44px pour le bouton clear */
    border: 1.5px solid var(--border);
    border-radius: var(--radius-full);
    font-size: 15px;
    font-family: var(--font-sans);
    color: var(--text-dark);
    background: var(--color-surface);
    transition: border-color var(--transition-fast), box-shadow var(--transition-fast);
    /* Supprime le bouton natif des navigateurs sur [type="search"] */
    -webkit-appearance: none;
    appearance: none;
}

.ll-search-bar__input::-webkit-search-cancel-button,
.ll-search-bar__input::-webkit-search-decoration {
    -webkit-appearance: none;
}

.ll-search-bar__input:focus {
    outline: none;
    border-color: var(--rose-600);
    box-shadow: 0 0 0 3px rgba(194, 80, 107, 0.12);
}

.ll-search-bar__input::placeholder {
    color: var(--text-muted);
    font-style: italic;
}

/* Bouton effacement — visible seulement si input non vide (géré par le JS) */
.ll-search-bar__clear {
    position: absolute;
    right: var(--space-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: var(--rose-50);
    border: none;
    border-radius: var(--radius-full);
    color: var(--text-muted);
    cursor: pointer;
    transition: background var(--transition-fast), color var(--transition-fast);
}

.ll-search-bar__clear:hover {
    background: var(--rose-100);
    color: var(--rose-600);
}

.ll-search-bar__clear svg {
    width: 14px;
    height: 14px;
}

/* Bouton Rechercher */
.ll-search-bar__submit {
    flex-shrink: 0;
    height: 48px;
    padding: 0 var(--space-lg);
    white-space: nowrap;
}

/* ── 5. Suggestions rapides ── */
.ll-search-bar__suggestions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: var(--space-xs) var(--space-sm);
    margin-top: var(--space-sm);
}

.ll-search-bar__suggestions-label {
    font-size: 11px;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.07em;
    white-space: nowrap;
    margin: 0;
}

.ll-search-bar__suggestions-list {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-xs);
    list-style: none;
    margin: 0;
    padding: 0;
}

.ll-search-bar__suggestion-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 14px;
    font-size: 13px;
    font-weight: 500;
    color: var(--text-body);
    background: var(--rose-50);
    border: 1px solid var(--border);
    border-radius: var(--radius-full);
    transition: background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);
    white-space: nowrap;
    text-decoration: none;
}

.ll-search-bar__suggestion-link:hover,
.ll-search-bar__suggestion-link:focus-visible {
    background: var(--rose-600);
    color: #fff;
    border-color: var(--rose-600);
}

.ll-search-bar__suggestion-icon {
    font-size: 9px;
    color: var(--rose-400);
    line-height: 1;
}

.ll-search-bar__suggestion-link:hover .ll-search-bar__suggestion-icon,
.ll-search-bar__suggestion-link:focus-visible .ll-search-bar__suggestion-icon {
    color: rgba(255, 255, 255, 0.75);
}

/* ── 6. Bouton fermeture (×) ── */
.ll-search-bar__close {
    position: absolute;
    top: 50%;
    right: var(--space-md);
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: transparent;
    border: none;
    border-radius: var(--radius-sm);
    color: var(--text-muted);
    cursor: pointer;
    transition: background var(--transition-fast), color var(--transition-fast);
}

.ll-search-bar__close:hover {
    background: var(--rose-50);
    color: var(--rose-600);
}

.ll-search-bar__close:focus-visible {
    outline: 2px solid var(--rose-600);
    outline-offset: 2px;
}

.ll-search-bar__close svg {
    width: 18px;
    height: 18px;
}

/* ── 7. Body lock — empêche le scroll pendant l'ouverture ── */
body.search-panel-open {
    overflow: hidden;
}

/* ── 8. Responsive Mobile (< 768px) ── */
@media (max-width: 767px) {
    .ll-search-bar__inner {
        padding: var(--space-md);
        padding-right: var(--space-md); /* le close devient absolu en haut à droite */
        padding-top: calc(var(--space-md) + 44px); /* espace pour le close en haut */
    }

    .ll-search-bar__close {
        top: var(--space-sm);
        right: var(--space-sm);
        transform: none;
    }

    .ll-search-bar__form {
        flex-direction: column;
        gap: var(--space-sm);
    }

    .ll-search-bar__submit {
        width: 100%;
        justify-content: center;
    }

    .ll-search-bar__suggestions {
        flex-direction: column;
        align-items: flex-start;
    }

    .ll-search-bar__suggestions-list {
        gap: var(--space-xs);
    }
}

/* =============================================================
   CART DRAWER — Panneau slide-in depuis la droite
   @guide-step  Étape 10 — Panier AJAX et mini-cart
   ============================================================= */

.ll-cart-drawer {
    position: fixed;
    inset: 0;
    z-index: 500;
    pointer-events: none;
}

/* État caché par défaut — CRITIQUE */
.ll-cart-drawer[aria-hidden="true"] {
    visibility: hidden;
}

.ll-cart-drawer[aria-hidden="false"] {
    visibility: visible;
    pointer-events: auto;
}

/* Overlay fond sombre */
.ll-cart-drawer__overlay {
    position: absolute;
    inset: 0;
    background: rgba(45, 31, 36, 0.5);
    opacity: 0;
    transition: opacity var(--transition-base);
    cursor: pointer;
}

.ll-cart-drawer[aria-hidden="false"] .ll-cart-drawer__overlay {
    opacity: 1;
}

/* Panneau latéral */
.ll-cart-drawer__panel {
    position: absolute;
    top: 0;
    right: 0;
    width: min(420px, 100vw);
    height: 100dvh;
    background: #fff;
    display: flex;
    flex-direction: column;
    box-shadow: -4px 0 32px rgba(45, 31, 36, 0.12);
    transform: translateX(100%);
    transition: transform var(--transition-slow);
    overflow: hidden;
}

.ll-cart-drawer[aria-hidden="false"] .ll-cart-drawer__panel {
    transform: translateX(0);
}

/* Header du drawer */
.ll-cart-drawer__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-lg);
    border-bottom: 1px solid var(--border);
    flex-shrink: 0;
}

.ll-cart-drawer__title {
    font-family: 'Cormorant Garamond', serif;
    font-size: 22px;
    font-weight: 600;
    color: var(--text-dark);
    margin: 0;
}

.ll-cart-drawer__close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: var(--rose-50);
    border: none;
    border-radius: var(--radius-sm);
    color: var(--text-body);
    cursor: pointer;
    transition: background var(--transition-fast);
}

.ll-cart-drawer__close:hover {
    background: var(--rose-100);
    color: var(--rose-700);
}

/* Corps scrollable */
.ll-cart-drawer__body {
    flex: 1;
    overflow-y: auto;
    padding: var(--space-lg);
    -webkit-overflow-scrolling: touch;
}

/* ── Masquer le sous-total et les boutons natifs WooCommerce ──
   woocommerce_mini_cart() les génère automatiquement, mais ils
   sont dupliqués par notre footer custom. On les masque ici
   plutôt que de surcharger le template (approche guide §anti-pattern). */
.ll-cart-drawer__body .woocommerce-mini-cart__total,
.ll-cart-drawer__body .woocommerce-mini-cart__buttons {
    display: none !important;
}

/* ── Items du mini-cart : layout horizontal + image contrainte ── */
/*
 * Structure HTML native WC du mini-cart-item :
 *   <li>
 *     <a class="remove_from_cart_button">×</a>   ← 1er dans le DOM
 *     <a href="..."><img> Nom produit</a>          ← 2e
 *     <span class="quantity">1 × 30,00 €</span>   ← 3e
 *   </li>
 * On utilise `order` pour réordonner visuellement sans JS ni absolute.
 * Résultat : [img + Nom] · [1 × 30,00 €] · [×]
 */
.ll-cart-drawer__body .woocommerce-mini-cart-item {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    padding: var(--space-sm) 0;
    border-bottom: 1px solid var(--border);
    list-style: none;
}

.ll-cart-drawer__body .woocommerce-mini-cart-item:last-child {
    border-bottom: none;
}

/* Image du produit — taille fixe, jamais surdimensionnée */
.ll-cart-drawer__body .woocommerce-mini-cart-item img {
    width: 72px;
    height: 72px;
    object-fit: cover;
    border-radius: var(--radius-sm);
    flex-shrink: 0;
    display: block;
}

/* Lien produit [img + nom] — order:1 → affiché en premier */
.ll-cart-drawer__body .woocommerce-mini-cart-item > a:not(.remove_from_cart_button) {
    order: 1;
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    flex: 1;
    min-width: 0; /* évite le débordement du texte */
    text-decoration: none;
    color: var(--text-dark);
    font-size: 13px;
    line-height: 1.4;
    font-weight: 500;
}

.ll-cart-drawer__body .woocommerce-mini-cart-item > a:not(.remove_from_cart_button):hover {
    color: var(--rose-600);
}

/* Quantité × prix — order:2 → au centre */
.ll-cart-drawer__body .woocommerce-mini-cart-item .quantity {
    order: 2;
    flex-shrink: 0;
    font-size: 12px;
    color: var(--text-muted);
    white-space: nowrap;
}

/* Bouton "×" supprimer — order:3 → tout à droite, via flex, sans absolute */
.ll-cart-drawer__body .woocommerce-mini-cart-item .remove_from_cart_button {
    order: 3;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    font-size: 18px;
    line-height: 1;
    color: var(--text-muted);
    text-decoration: none;
    border-radius: var(--radius-sm);
    transition: color var(--transition-fast), background var(--transition-fast);
}

.ll-cart-drawer__body .woocommerce-mini-cart-item .remove_from_cart_button:hover {
    color: var(--rose-600);
    background: var(--rose-50);
}

/* Reset liste native WC */
.ll-cart-drawer__body .woocommerce-mini-cart.cart_list {
    padding: 0;
    margin: 0;
}

/* Footer sticky */
.ll-cart-drawer__footer {
    padding: var(--space-lg);
    border-top: 1px solid var(--border);
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
    flex-shrink: 0;
    background: #fff;
}

.ll-cart-drawer__totals {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 15px;
    font-weight: 600;
    color: var(--text-dark);
    margin-bottom: var(--space-sm);
}

.ll-cart-drawer__total-amount {
    color: var(--rose-600);
    font-size: 18px;
}

.ll-cart-drawer__cta-cart,
.ll-cart-drawer__cta-checkout {
    display: block;
    width: 100%;
    padding: 14px;
    text-align: center;
    border-radius: var(--radius-full);
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.03em;
    transition: all var(--transition-base);
    text-decoration: none;
}

.ll-cart-drawer__cta-cart {
    background: transparent;
    border: 1.5px solid var(--border);
    color: var(--text-dark);
}

.ll-cart-drawer__cta-cart:hover {
    border-color: var(--rose-400);
    color: var(--rose-600);
}

.ll-cart-drawer__cta-checkout {
    background: var(--rose-600);
    border: 1.5px solid var(--rose-600);
    color: #fff;
    box-shadow: 0 4px 16px rgba(194, 80, 107, 0.3);
}

.ll-cart-drawer__cta-checkout:hover {
    background: var(--rose-700);
    border-color: var(--rose-700);
    color: #fff;
    transform: translateY(-1px);
}

.ll-cart-drawer__reassurance {
    font-size: 12px;
    color: var(--text-muted);
    text-align: center;
    margin: 0;
}

.nav-primary__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-md);
    max-width: 1200px;
    margin: 0 auto;
    padding: var(--space-md) var(--space-lg);
    height: 72px;
}

/* ---- Logo ---- */
.nav-primary__logo-link {
    display: flex;
    align-items: center;
    flex-shrink: 0;
    text-decoration: none;
    color: var(--color-text);
}

.nav-primary__logo-link img {
    height: 44px;
    width: auto;
    display: block;
}

.nav-primary__logo-text {
    font-family: var(--font-serif);
    font-size: 22px;
    font-weight: 600;
    color: var(--color-primary);
    letter-spacing: 0.02em;
}

/* ---- Menu desktop ---- */
.nav-primary__menu-wrap {
    display: flex;
    align-items: center;
    flex: 1;
    justify-content: center;
}

.nav-primary__list {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
    list-style: none;
    margin: 0;
    padding: 0;
}

.nav-primary__list .menu-item {
    position: relative;
}

.nav-primary__list a,
.nav-primary__list > .menu-item > a {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    padding: var(--space-sm) var(--space-md);
    font-family: var(--font-sans);
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0.02em;
    color: var(--color-text);
    text-decoration: none;
    border-radius: var(--radius-sm);
    transition: color var(--transition-fast), background var(--transition-fast);
    white-space: nowrap;
}

.nav-primary__list > .menu-item > a:hover,
.nav-primary__list > .menu-item.current-menu-item > a,
.nav-primary__list > .menu-item.current-menu-ancestor > a {
    color: var(--color-primary);
    background: var(--color-secondary);
}

/* Flèche dropdown */
.nav-primary__arrow {
    display: inline-block;
    width: 0;
    height: 0;
    border-left: 4px solid transparent;
    border-right: 4px solid transparent;
    border-top: 4px solid currentColor;
    transition: transform var(--transition-fast);
    vertical-align: middle;
}

.menu-item-has-children:hover > a .nav-primary__arrow,
.menu-item-has-children:focus-within > a .nav-primary__arrow {
    transform: rotate(180deg);
}

/* Masquer la flèche sur les items sans enfants */
.menu-item:not(.menu-item-has-children) .nav-primary__arrow {
    display: none;
}

/* ---- Sous-menu dropdown (niveau 2) ---- */
.nav-primary__list .sub-menu {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    min-width: 220px;
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
    list-style: none;
    margin: 0;
    padding: var(--space-sm) 0;
    /* Accessible : visible au focus-within */
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-4px);
    transition:
        opacity var(--transition-fast),
        transform var(--transition-fast),
        visibility var(--transition-fast);
    z-index: 300;
}

.menu-item-has-children:hover > .sub-menu,
.menu-item-has-children:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}

.nav-primary__list .sub-menu a {
    display: block;
    padding: var(--space-sm) var(--space-lg);
    font-size: 13px;
    font-weight: 400;
    color: var(--color-text);
    border-radius: 0;
}

.nav-primary__list .sub-menu a:hover {
    color: var(--color-primary);
    background: var(--color-secondary);
}

/* ---- Actions utilitaires ---- */
.nav-primary__actions {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    flex-shrink: 0;
}

/* ---- Skip link — Accessibilité ---- */
.skip-link {
    position: absolute;
    top: -100%;
    left: var(--space-md);
    background: var(--color-primary);
    color: var(--color-surface);
    padding: var(--space-sm) var(--space-md);
    border-radius: var(--radius-sm);
    font-size: 14px;
    font-weight: 600;
    z-index: 9999;
    text-decoration: none;
    transition: top var(--transition-fast);
}

.skip-link:focus {
    top: var(--space-sm);
}

/* ---- Burger — Mobile ---- */
.nav-primary__burger {
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 5px;
    width: 40px;
    height: 40px;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: var(--space-sm);
    border-radius: var(--radius-sm);
    transition: background var(--transition-fast);
}

.nav-primary__burger:hover {
    background: var(--color-secondary);
}

.nav-primary__burger:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: 2px;
}

.nav-primary__burger-bar {
    display: block;
    width: 22px;
    height: 2px;
    background: var(--color-text);
    border-radius: var(--radius-pill);
    transition: transform var(--transition-base), opacity var(--transition-fast);
    transform-origin: center;
}

/* Burger → Croix quand ouvert */
.nav-primary__burger[aria-expanded="true"] .nav-primary__burger-bar:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}
.nav-primary__burger[aria-expanded="true"] .nav-primary__burger-bar:nth-child(2) {
    opacity: 0;
}
.nav-primary__burger[aria-expanded="true"] .nav-primary__burger-bar:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

/* ---- Overlay mobile ---- */
.nav-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.45);
    z-index: 150;
    transition: opacity var(--transition-base);
}

.nav-overlay.is-active {
    display: block;
}

/* ---- Responsive — Mobile (< 768px) ---- */
@media (max-width: 767px) {
    .nav-primary__burger {
        display: flex;
    }

    .nav-primary__menu-wrap {
        /* Panneau latéral mobile */
        position: fixed;
        top: 0;
        left: -100%;
        width: min(320px, 85vw);
        height: 100dvh;
        background: var(--color-surface);
        border-right: 1px solid var(--color-border);
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start;
        overflow-y: auto;
        padding: var(--space-xl) var(--space-lg);
        z-index: 200;
        transition: left var(--transition-slow);
        box-shadow: 4px 0 24px rgba(0, 0, 0, 0.12);
    }

    .nav-primary__menu-wrap.is-open {
        left: 0;
    }

    .nav-primary__list {
        flex-direction: column;
        align-items: flex-start;
        gap: 0;
        width: 100%;
    }

    .nav-primary__list .menu-item {
        width: 100%;
    }

    .nav-primary__list > .menu-item > a {
        width: 100%;
        padding: var(--space-md) 0;
        font-size: 16px;
        border-bottom: 1px solid var(--color-border);
        border-radius: 0;
    }

    /* Sous-menu mobile : affiché en accordéon */
    .nav-primary__list .sub-menu {
        position: static;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: none;
        box-shadow: none;
        border: none;
        border-radius: 0;
        padding: 0 0 0 var(--space-lg);
        display: none;
    }

    .menu-item-has-children.is-open > .sub-menu {
        display: block;
    }

    .nav-primary__list .sub-menu a {
        padding: var(--space-sm) 0;
        border-bottom: 1px solid var(--color-border);
        font-size: 14px;
    }
}

/* ---- Responsive — Tablette (768px–1023px) ---- */
@media (max-width: 1023px) and (min-width: 768px) {
    .nav-primary__inner {
        padding: var(--space-sm) var(--space-md);
    }

    .nav-primary__list > .menu-item > a {
        padding: var(--space-sm) var(--space-sm);
        font-size: 13px;
    }
}

/* ---- Avis admin : menu non configuré ---- */
.nav-primary__setup-notice {
    font-size: 13px;
    color: var(--color-text-muted);
    padding: var(--space-sm) var(--space-md);
    background: var(--color-surface-alt);
    border: 1px dashed var(--color-border);
    border-radius: var(--radius-sm);
}

.nav-primary__setup-notice a {
    color: var(--color-primary);
    text-decoration: underline;
}

/* =====================================================================
   WISHLIST PAGE — page-wishlist.php
   @depends assets/css/main.css (tokens)
   ===================================================================== */

.ll-wishlist-page {
    padding-bottom: 80px;
}

/* En-tête */
.ll-wishlist-page__header {
    display: flex;
    align-items: baseline;
    gap: 16px;
    margin-bottom: 32px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--border);
}

.ll-wishlist-page__title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(1.75rem, 4vw, 2.5rem);
    font-weight: 600;
    color: var(--text-dark);
    margin: 0;
}

.ll-wishlist-page__count {
    font-size: 13px;
    color: var(--text-muted);
    margin: 0;
    white-space: nowrap;
}

/* Barre actions */
.ll-wishlist-page__actions {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 24px;
}

.ll-wishlist-page__clear-all {
    font-family: 'Jost', system-ui, sans-serif;
    font-size: 12px;
    font-weight: 500;
    color: var(--text-muted);
    background: none;
    border: none;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
    transition: color var(--transition-fast);
    padding: 0;
}

.ll-wishlist-page__clear-all:hover {
    color: var(--rose-600);
}

/* Grille — même logique que la PLP */
.ll-wishlist-page__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px 24px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.ll-wishlist-page__item {
    display: flex;
    flex-direction: column;
}

/* Footer page */
.ll-wishlist-page__footer {
    margin-top: 48px;
    padding-top: 32px;
    border-top: 1px solid var(--border);
    text-align: center;
}

.ll-wishlist-page__back-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    font-weight: 500;
    color: var(--text-muted);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.ll-wishlist-page__back-link:hover {
    color: var(--rose-600);
}

/* État vide */
.ll-wishlist-page__empty {
    text-align: center;
    padding: 80px 24px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}

.ll-wishlist-page__empty-icon {
    color: var(--border);
    margin-bottom: 8px;
}

.ll-wishlist-page__empty-title {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.75rem;
    font-weight: 600;
    color: var(--text-dark);
    margin: 0;
}

.ll-wishlist-page__empty-text {
    font-size: 15px;
    color: var(--text-muted);
    margin: 0 0 8px;
    max-width: 380px;
}

/* Responsive */
@media (max-width: 900px) {
    .ll-wishlist-page__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px 16px;
    }
}

@media (max-width: 480px) {
    .ll-wishlist-page__header {
        flex-direction: column;
        gap: 4px;
    }

    .ll-wishlist-page__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 20px 12px;
    }
}