/* ============================================================
   THEME JOY v3 - "CASA FLORA" exact reproduction
   - 8 fiesta colors (oklch-equivalent hex)
   - shadow-fiesta = 8px 8px 0 0 ink (no blur)
   - 2px solid ink borders everywhere
   - rounded-3xl (32px) on cards
   - Abril Fatface display + Caveat script + DM Sans body
   - mosaic asymmetric product grid (5+4+3+3+4+5 cols)
   - hero with 2x2 fleurs cards + cercle dashed
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Abril+Fatface&family=Caveat:wght@400;500;600;700&family=DM+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;0,800;1,400;1,500&display=swap');

/* Annule le padding-top:80px de style.css (qui compensait le nav natif fixed) :
   en Joy, le nav est en position:relative par defaut (fixed UNIQUEMENT au scroll
   via la classe .scrolled), donc pas besoin de reserver 80px en haut du body. */
html body.lbp-themed.lbp-themed.lbp-themed {
    padding-top: 0 !important;
    margin-top: 0 !important;
}

/* ============================================================
   1. VARIABLES - tokens oklch identiques au projet Lovable Casa Flora
   Reference: src/styles.css du projet Casa Flora
   ============================================================ */
body.lbp-themed.lbp-themed,
:root {
    /* === PALETTE FIESTA - oklch exact === */
    --joy-cream: oklch(0.97 0.03 90);
    --joy-ink: oklch(0.22 0.06 30);
    --joy-pink: oklch(0.68 0.24 0);
    --joy-coral: oklch(0.74 0.19 25);
    --joy-marigold: oklch(0.78 0.19 60);
    --joy-yellow: oklch(0.88 0.17 95);
    --joy-green: oklch(0.62 0.18 145);
    --joy-teal: oklch(0.62 0.13 195);
    --joy-cobalt: oklch(0.45 0.22 265);
    --joy-purple: oklch(0.48 0.22 305);

    /* === DERIVATIONS pour les usages internes (tints, deeps, softs) === */
    /* Generes par variation L (luminosite) sur la teinte de base oklch */
    --joy-pink-deep: oklch(0.55 0.24 0);
    --joy-pink-soft: oklch(0.85 0.12 0);
    --joy-pink-tint: oklch(0.94 0.05 0);
    --joy-coral-tint: oklch(0.93 0.06 25);
    --joy-marigold-deep: oklch(0.65 0.19 60);
    --joy-marigold-tint: oklch(0.94 0.06 60);
    --joy-yellow-soft: oklch(0.93 0.12 95);
    --joy-yellow-tint: oklch(0.97 0.06 95);
    --joy-green-deep: oklch(0.50 0.18 145);
    --joy-green-tint: oklch(0.94 0.06 145);
    --joy-teal-tint: oklch(0.94 0.05 195);
    --joy-cobalt-deep: oklch(0.34 0.22 265);
    --joy-cobalt-tint: oklch(0.94 0.05 265);
    --joy-purple-tint: oklch(0.94 0.05 305);

    --joy-cream-soft: oklch(0.99 0.02 90);
    --joy-cream-deep: oklch(0.94 0.04 90);
    --joy-cream-warm: oklch(0.96 0.05 90);
    --joy-ink-soft: oklch(0.40 0.06 30);
    --joy-ink-mute: oklch(0.55 0.05 30);

    /* Border et input (Casa Flora utilise ink a 15% opacite) */
    --joy-line: oklch(0.22 0.06 30 / 15%);
    --joy-line-strong: oklch(0.22 0.06 30 / 30%);

    /* Tokens semantiques (mapping au-dela de fiesta) */
    --joy-background: var(--joy-cream);
    --joy-foreground: var(--joy-ink);
    --joy-primary: var(--joy-pink);
    --joy-secondary: var(--joy-cobalt);
    --joy-accent: var(--joy-marigold);
    --joy-muted: oklch(0.94 0.03 80);
    --joy-muted-foreground: oklch(0.45 0.05 30);
    --joy-destructive: oklch(0.6 0.24 25);
    --joy-card: oklch(1 0 0);
    --joy-popover: oklch(1 0 0);

    --joy-font-display: 'Abril Fatface', Georgia, serif;
    --joy-font-script: 'Caveat', cursive;
    --joy-font-body: 'DM Sans', system-ui, sans-serif;

    --joy-container: 1320px;
    --joy-radius-sm: 16px;
    --joy-radius-md: 24px;
    --joy-radius-lg: 32px;
    --joy-radius-xl: 48px;
    --joy-radius-pill: 9999px;

    /* SHADOWS Casa Flora - 8px 8px 0 (no blur) */
    --joy-shadow: 8px 8px 0 0 var(--joy-ink);
    --joy-shadow-pink: 8px 8px 0 0 var(--joy-pink);
    --joy-shadow-cobalt: 8px 8px 0 0 var(--joy-cobalt);
    --joy-shadow-marigold: 8px 8px 0 0 var(--joy-marigold);
    --joy-shadow-sm: 4px 4px 0 0 var(--joy-ink);
    --joy-shadow-lg: 12px 12px 0 0 var(--joy-ink);

    /* CMS variables mapping */
    --gold-dark: var(--joy-pink-deep);
    --gold: var(--joy-pink);
    --gold-light: var(--joy-pink-soft);
    --charcoal: var(--joy-ink);
    --charcoal-light: var(--joy-ink-soft);
    --charcoal-dark: var(--joy-ink);
    --cream: var(--joy-cream);
    --cream-dark: var(--joy-cream-deep);
    --cream-light: var(--joy-cream-soft);
    --cream-warm: var(--joy-cream-warm);
    --terracotta: var(--joy-marigold);
    --sage: var(--joy-teal);
    --blush: var(--joy-pink-tint);
    --rose: var(--joy-pink);
    --white: var(--joy-cream-soft);
    --black: var(--joy-ink);
    --accent: var(--joy-pink);
    --accent-light: var(--joy-pink-soft);
    --accent-dark: var(--joy-pink-deep);
    --primary: var(--joy-pink);
    --primary-light: var(--joy-pink-soft);
    --primary-dark: var(--joy-pink-deep);
    --secondary: var(--joy-cobalt);
    --success: var(--joy-green);
    --warning: var(--joy-marigold);
    --error: var(--joy-coral);
    --danger: var(--joy-coral);
    --info: var(--joy-cobalt);
    --gray-100: var(--joy-cream-soft);
    --gray-200: var(--joy-cream-deep);
    --gray-300: var(--joy-line);
    --gray-400: var(--joy-ink-mute);
    --gray-500: var(--joy-ink-soft);
    --gray-700: var(--joy-ink-soft);
    --gray-900: var(--joy-ink);
    --christmas-green: var(--joy-green);
    --christmas-red: var(--joy-coral);

    --font-headings: var(--joy-font-display);
    --font-body: var(--joy-font-body);
    --font-serif: var(--joy-font-display);
    --font-sans: var(--joy-font-body);
    --font-display: var(--joy-font-display);
    --font-script: var(--joy-font-script);

    --joy-img-poppy: url('../../img/themes/joy/poppy-red.png');
    --joy-img-rose-red: url('../../img/themes/joy/rose-red.png');
    --joy-img-rose-pink: url('../../img/themes/joy/rose-pink.png');
    --joy-img-peony: url('../../img/themes/joy/peony-coral.png');
    --joy-img-marigold: url('../../img/themes/joy/marigold-orange.png');
    --joy-img-blossom-white: url('../../img/themes/joy/blossom-white.png');
    --joy-img-anemone: url('../../img/themes/joy/anemone-purple.png');
    --joy-img-anemone-2: url('../../img/themes/joy/anemone-purple-2.png');
    --joy-img-butterfly-vintage: url('../../img/themes/joy/butterfly-vintage.png');
    --joy-img-butterfly-monarch: url('../../img/themes/joy/butterfly-monarch.png');
    --joy-img-butterfly-orange: url('../../img/themes/joy/butterfly-orange.png');
    --joy-img-daisy: url('../../img/themes/joy/daisy-white.png');
    --joy-img-gerbera: url('../../img/themes/joy/gerbera-yellow.png');
}

@keyframes joy-float {
    0%, 100% { transform: translateY(0) rotate(var(--rot, 0deg)); }
    50% { transform: translateY(-18px) rotate(calc(var(--rot, 0deg) + 4deg)); }
}
@keyframes joy-spin-slow { to { transform: rotate(360deg); } }
@keyframes joy-wiggle {
    0%, 100% { transform: rotate(-3deg); }
    50% { transform: rotate(3deg); }
}
@keyframes joy-marquee {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

/* ============================================================
   2. BASE - body cream, NO gradients (clean Casa Flora bg)
   ============================================================ */
body.lbp-themed.lbp-themed {
    background-color: var(--joy-cream) !important;
    background-image: none !important;
    color: var(--joy-ink) !important;
    font-family: var(--joy-font-body) !important;
    line-height: 1.55;
}

body.lbp-themed.lbp-themed h1,
body.lbp-themed.lbp-themed h2,
body.lbp-themed.lbp-themed h3,
body.lbp-themed.lbp-themed h4,
body.lbp-themed.lbp-themed h5,
body.lbp-themed.lbp-themed h6 {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-ink) !important;
    font-weight: 400 !important;
    letter-spacing: -0.02em !important;
    line-height: 0.95 !important;
}

body.lbp-themed.lbp-themed em,
body.lbp-themed.lbp-themed h1 em,
body.lbp-themed.lbp-themed h2 em,
body.lbp-themed.lbp-themed h3 em {
    font-family: var(--joy-font-display) !important;
    font-style: italic !important;
    color: var(--joy-pink) !important;
    background: none !important;
    background-image: none !important;
    -webkit-text-fill-color: var(--joy-pink) !important;
    padding: 0 !important;
    text-decoration: none !important;
}

body.lbp-themed.lbp-themed ::selection {
    background: var(--joy-yellow);
    color: var(--joy-ink);
}

body.lbp-themed.lbp-themed a {
    color: var(--joy-pink-deep);
    text-decoration: none;
    transition: color 0.18s ease;
}

body.lbp-themed.lbp-themed a:hover {
    color: var(--joy-pink);
}

body.lbp-themed.lbp-themed section {
    padding-top: 3vw !important;
    padding-bottom: 4rem !important;
    position: relative;
}

body.lbp-themed.lbp-themed .featured-products,
body.lbp-themed.lbp-themed .collections,
body.lbp-themed.lbp-themed .about,
body.lbp-themed.lbp-themed .stores,
body.lbp-themed.lbp-themed .faq-accueil,
body.lbp-themed.lbp-themed .related-products,
body.lbp-themed.lbp-themed .blog-section,
body.lbp-themed.lbp-themed .custom-orders,
body.lbp-themed.lbp-themed .newsletter {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

/* Section header generique */
body.lbp-themed.lbp-themed .section-header {
    text-align: center !important;
    margin-bottom: 3.5rem !important;
    position: relative;
    max-width: var(--joy-container);
    margin-left: auto;
    margin-right: auto;
    padding: 0 1.5rem;
}

body.lbp-themed.lbp-themed .section-label {
    display: inline-block !important;
    font-family: var(--joy-font-script) !important;
    color: var(--joy-cobalt) !important;
    font-size: 1.875rem !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    margin-bottom: 0.4rem !important;
    line-height: 1 !important;
    background: none !important;
    border: none !important;
    padding: 0 !important;
}

body.lbp-themed.lbp-themed .section-title {
    font-family: var(--joy-font-display) !important;
    font-size: clamp(2.6rem, 7vw, 5.5rem) !important;
    color: var(--joy-ink) !important;
    line-height: 0.9 !important;
    letter-spacing: -0.02em !important;
    margin-bottom: 0.8rem !important;
}

body.lbp-themed.lbp-themed .section-subtitle {
    font-family: var(--joy-font-body) !important;
    color: var(--joy-ink-soft) !important;
    font-size: 1.1rem !important;
    line-height: 1.6 !important;
    max-width: 640px;
    margin: 0 auto !important;
    font-weight: 400 !important;
    opacity: 1 !important;
}

/* Cache section-icon partout (n'existe pas dans Casa Flora) */
body.lbp-themed.lbp-themed .section-icon,
body.lbp-themed.lbp-themed .section-icon-on-dark,
body.lbp-themed.lbp-themed .section-icon-left {
    display: none !important;
}

/* ============================================================
   3. HEADER & NAV - logo display+script, links plain
   ============================================================ */
body.lbp-themed.lbp-themed nav#mainNav,
body.lbp-themed.lbp-themed nav.main-nav,
body.lbp-themed.lbp-themed header.main-header {
    background: transparent !important;
    border-bottom: none !important;
    box-shadow: none !important;
    padding: 1rem !important;
    position: relative;
    z-index: 30;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed nav#mainNav,
    body.lbp-themed.lbp-themed nav.main-nav {
        padding: 1rem !important;
    }
}

/* Logo - "La Bohème" en script ou en display selon le markup CMS */
body.lbp-themed.lbp-themed .logo,
body.lbp-themed.lbp-themed nav .logo,
body.lbp-themed.lbp-themed .nav-logo,
body.lbp-themed.lbp-themed .footer-logo {
    font-family: var(--joy-font-script) !important;
    color: var(--joy-pink) !important;
    font-size: 2rem !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
    line-height: 1 !important;
    text-decoration: none !important;
}

/* Logo : laisse le height inline (defini dans l'admin Parametres) s'appliquer.
   On ne fixe que width: auto pour preserver le ratio. */
body.lbp-themed.lbp-themed .logo img,
body.lbp-themed.lbp-themed .footer-logo img {
    width: auto;
}

/* Nav links - plain text, hover pink */
body.lbp-themed.lbp-themed .nav-links a,
html body.lbp-themed.lbp-themed.lbp-themed.lbp-themed nav#mainNav .nav-center > li > a,
body.lbp-themed.lbp-themed nav#mainNav .nav-center > li > a {
    font-family: var(--joy-font-body) !important;
    font-weight: 500 !important;
    text-transform: none !important;
    color: var(--joy-ink) !important;
    font-size: 0.875rem !important;
    letter-spacing: 0 !important;
    padding: 0.5rem 0.7rem !important;
    border-radius: 0 !important;
    border: none !important;
    background: transparent !important;
    text-decoration: none !important;
    transition: color 0.18s ease;
}

body.lbp-themed.lbp-themed .nav-links a:hover,
body.lbp-themed.lbp-themed nav#mainNav .nav-center > li > a:hover {
    color: var(--joy-pink) !important;
    background: transparent !important;
}

html body.lbp-themed.lbp-themed.lbp-themed.lbp-themed .nav-links a.active,
html body.lbp-themed.lbp-themed.lbp-themed.lbp-themed nav#mainNav .nav-center > li > a.active,
html body.lbp-themed.lbp-themed.lbp-themed.lbp-themed nav#mainNav .nav-center > li.active > a,
html body.lbp-themed.lbp-themed.lbp-themed.lbp-themed nav#mainNav .nav-center > li > a[aria-current],
html body.lbp-themed.lbp-themed.lbp-themed.lbp-themed nav#mainNav .nav-center > li.is-active > a {
    color: var(--joy-pink) !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

body.lbp-themed.lbp-themed .nav-links a::after,
body.lbp-themed.lbp-themed nav#mainNav .nav-center > li > a::after {
    display: none !important;
}

/* Cart pill - bouton ink/cream avec ombre pink Casa Flora */
body.lbp-themed.lbp-themed .nav-icon-btn {
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    color: var(--joy-ink) !important;
    width: 42px !important;
    height: 42px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: var(--joy-shadow-sm) !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease !important;
    position: relative;
    text-decoration: none !important;
}

body.lbp-themed.lbp-themed .nav-icon-btn:hover {
    transform: translate(-1px, -1px);
    box-shadow: 5px 5px 0 0 var(--joy-ink) !important;
}

body.lbp-themed.lbp-themed .nav-icon-btn.active {
    background: var(--joy-pink) !important;
    color: var(--joy-cream-soft) !important;
}

body.lbp-themed.lbp-themed .nav-icon-btn svg {
    color: var(--joy-ink) !important;
    stroke: var(--joy-ink) !important;
    width: 20px !important;
    height: 20px !important;
}

body.lbp-themed.lbp-themed .nav-icon-btn.active svg {
    color: var(--joy-cream-soft) !important;
    stroke: var(--joy-cream-soft) !important;
}

body.lbp-themed.lbp-themed .nav-badge {
    position: absolute !important;
    top: -6px !important;
    right: -6px !important;
    background: var(--joy-coral) !important;
    color: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    min-width: 22px !important;
    height: 22px !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 800 !important;
    font-size: 0.72rem !important;
    line-height: 1 !important;
    padding: 0 5px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

body.lbp-themed.lbp-themed .header-avatar,
body.lbp-themed.lbp-themed .nav-avatar .nav-icon-btn {
    background: var(--joy-yellow) !important;
    color: var(--joy-ink) !important;
}

body.lbp-themed.lbp-themed .header-avatar {
    border-radius: var(--joy-radius-pill) !important;
    width: 30px !important;
    height: 30px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 800 !important;
    font-size: 0.85rem !important;
}

/* Top-bar */
body.lbp-themed.lbp-themed .top-bar,
body.lbp-themed.lbp-themed .topbar,
body.lbp-themed.lbp-themed .announcement-bar {
    background: var(--joy-pink) !important;
    color: var(--joy-cream-soft) !important;
    border-bottom: none !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 600 !important;
    font-size: 0.85rem !important;
    letter-spacing: 0.02em !important;
}

body.lbp-themed.lbp-themed .top-bar a {
    color: var(--joy-cream-soft) !important;
    text-decoration: underline;
}

/* Avatar dropdown */
html body.lbp-themed.lbp-themed.lbp-themed.lbp-themed #avatar-dropdown {
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-md) !important;
    box-shadow: var(--joy-shadow) !important;
    overflow: hidden !important;
    min-width: 240px !important;
    padding: 0.5rem !important;
}

body.lbp-themed.lbp-themed #avatar-dropdown a,
body.lbp-themed.lbp-themed #avatar-dropdown button {
    display: flex !important;
    align-items: center !important;
    gap: 0.65rem !important;
    padding: 0.7rem 0.9rem !important;
    color: var(--joy-ink) !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 500 !important;
    font-size: 0.95rem !important;
    text-decoration: none !important;
    border-radius: 12px !important;
    transition: all 0.15s ease !important;
    background: transparent !important;
    border: none !important;
    width: 100% !important;
    cursor: pointer;
    text-align: left;
}

body.lbp-themed.lbp-themed #avatar-dropdown a:hover,
body.lbp-themed.lbp-themed #avatar-dropdown button:hover {
    background: var(--joy-pink-tint) !important;
    color: var(--joy-pink-deep) !important;
}

body.lbp-themed.lbp-themed #avatar-dropdown a svg,
body.lbp-themed.lbp-themed #avatar-dropdown button svg {
    width: 18px !important;
    height: 18px !important;
    color: var(--joy-pink) !important;
    stroke: var(--joy-pink) !important;
    flex-shrink: 0;
}

body.lbp-themed.lbp-themed #avatar-dropdown hr {
    border: none !important;
    border-top: 2px dashed var(--joy-line-strong) !important;
    margin: 0.4rem 0 !important;
}

/* ============================================================
   4. HERO Casa Flora - grid 12 cols, text-7 / visual-5
   Decor: anemone-purple-2 left + butterfly-vintage TR + blossom-white BR
        + cercle dashed cobalt anime au centre
   Visual right: 4 cards fleurs 2x2 avec rotations -2/+3/+2/-1
   ============================================================ */

body.lbp-themed.lbp-themed .hero,
body.lbp-themed.lbp-themed header.hero {
    position: relative !important;
    padding: 2rem 1.5rem 8rem !important;
    background: transparent !important;
    overflow: hidden !important;
    isolation: isolate;
    min-height: auto !important;
    display: block !important;
    text-align: left !important;
    max-width: 100% !important;
    margin: 0 !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .hero,
    body.lbp-themed.lbp-themed header.hero {
        padding: 4rem 3rem 8rem !important;
    }
}

/* Hide hero-bg (default theme background) */
body.lbp-themed.lbp-themed .hero-bg {
    display: none !important;
}

/* Hide hero-polaroid (used by other themes) */
body.lbp-themed.lbp-themed .hero-polaroid,
body.lbp-themed.lbp-themed .hero-polaroid-img {
    display: none !important;
}

body.lbp-themed.lbp-themed .hero .section-icon,
body.lbp-themed.lbp-themed .hero .section-icon.hero-section-icon {
    display: none !important;
}

/* === DECOR LAYER (absolute fleurs + cercle dashed) === */
/* anemone-purple-2 : -left-12 top-20 w-72 (rot -12deg) */
body.lbp-themed.lbp-themed .hero::before {
    content: '';
    position: absolute;
    left: -3rem;
    top: 5rem;
    width: 14rem;
    aspect-ratio: 1;
    background-image: var(--joy-img-anemone-2);
    background-size: contain;
    background-repeat: no-repeat;
    --rot: -12deg;
    animation: joy-float 7s ease-in-out infinite;
    pointer-events: none;
    z-index: 0;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .hero::before {
        width: 18rem;
        left: -3rem;
        top: 5rem;
    }
}

/* butterfly-vintage : right-8 top-4 w-56 (wiggle) */
body.lbp-themed.lbp-themed .hero::after {
    content: '';
    position: absolute;
    right: 2rem;
    top: 1rem;
    width: 10rem;
    aspect-ratio: 1;
    background-image: var(--joy-img-butterfly-vintage);
    background-size: contain;
    background-repeat: no-repeat;
    pointer-events: none;
    animation: joy-wiggle 3s ease-in-out infinite;
    z-index: 0;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .hero::after {
        width: 14rem;
        right: 2rem;
        top: 1rem;
    }
}

/* === HERO CONTENT - col-span-7 (texte gauche) === */
body.lbp-themed.lbp-themed .hero-content {
    position: relative !important;
    z-index: 5 !important;
    display: block !important;
    text-align: left !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .hero-content {
        width: 58% !important;
        max-width: 58% !important;
    }
}

/* HERO BADGE - pill cobalt cream uppercase */
body.lbp-themed.lbp-themed .hero-badge {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.4rem !important;
    background: var(--joy-cobalt) !important;
    color: var(--joy-cream-soft) !important;
    border: none !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.3rem 1rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.72rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.15em !important;
    text-transform: uppercase !important;
    margin: 0 0 1.5rem !important;
    box-shadow: none !important;
    width: auto !important;
    height: auto !important;
    animation: none !important;
    line-height: 1.5 !important;
    white-space: nowrap !important;
}

body.lbp-themed.lbp-themed .hero-badge svg {
    width: 12px !important;
    height: 12px !important;
    color: var(--joy-cream-soft) !important;
    stroke: var(--joy-cream-soft) !important;
    fill: none !important;
    flex-shrink: 0 !important;
}

/* HERO H1 - massive Abril Fatface, ligne 1 pink, ligne 2 italic ink + stroke */
body.lbp-themed.lbp-themed .hero h1 {
    font-family: var(--joy-font-display) !important;
    font-size: clamp(3.5rem, 14vw, 9rem) !important;
    line-height: 0.85 !important;
    letter-spacing: -0.03em !important;
    color: var(--joy-pink) !important;
    margin: 1.5rem 0 0 !important;
    font-weight: 400 !important;
    animation: none !important;
    text-align: left !important;
    text-transform: none !important;
}

body.lbp-themed.lbp-themed .hero h1 em,
body.lbp-themed.lbp-themed .hero h1 i {
    font-family: var(--joy-font-display) !important;
    font-style: italic !important;
    color: var(--joy-ink) !important;
    -webkit-text-fill-color: var(--joy-ink) !important;
    background: none !important;
    -webkit-background-clip: unset !important;
    background-clip: unset !important;
}

/* Si l'utilisateur met <strong> ou class .stroke dans h1 → texte transparent stroke ink */
body.lbp-themed.lbp-themed .hero h1 strong,
body.lbp-themed.lbp-themed .hero h1 .stroke,
body.lbp-themed.lbp-themed .hero h1 b {
    -webkit-text-stroke: 2px var(--joy-ink) !important;
    color: transparent !important;
    -webkit-text-fill-color: transparent !important;
    font-style: italic !important;
    font-weight: inherit !important;
    background: none !important;
}

/* HERO SUBTITLE */
body.lbp-themed.lbp-themed .hero-subtitle {
    font-family: var(--joy-font-body) !important;
    color: var(--joy-ink-soft) !important;
    font-size: 1.125rem !important;
    line-height: 1.55 !important;
    max-width: 28rem !important;
    margin: 2rem 0 0 !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    animation: none !important;
    text-align: left !important;
}

/* HERO CTA */
body.lbp-themed.lbp-themed .hero-cta {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 1rem !important;
    margin: 2rem 0 0 !important;
    animation: none !important;
}

/* CTA primary - pill pink shadow Casa Flora */
body.lbp-themed.lbp-themed .hero-cta .btn-primary,
body.lbp-themed.lbp-themed .hero .btn-primary {
    background: var(--joy-pink) !important;
    color: var(--joy-cream-soft) !important;
    border: none !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 1rem 1.75rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    box-shadow: var(--joy-shadow) !important;
    transition: transform 0.2s ease !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
    text-decoration: none !important;
    line-height: 1.2 !important;
}

body.lbp-themed.lbp-themed .hero-cta .btn-primary:hover {
    transform: translateY(-4px) !important;
    box-shadow: var(--joy-shadow) !important;
}

body.lbp-themed.lbp-themed .hero-cta .btn-primary svg {
    color: var(--joy-cream-soft) !important;
    stroke: var(--joy-cream-soft) !important;
    fill: none !important;
    width: 16px !important;
    height: 16px !important;
    transition: transform 0.2s ease;
}

body.lbp-themed.lbp-themed .hero-cta .btn-primary:hover svg {
    transform: translateX(4px);
}

/* CTA secondary - script Caveat cobalt souligne marigold (pas un bouton) */
body.lbp-themed.lbp-themed .hero-cta .btn-secondary,
body.lbp-themed.lbp-themed .hero .btn-secondary {
    background: transparent !important;
    color: var(--joy-cobalt) !important;
    border: none !important;
    box-shadow: none !important;
    text-decoration: underline !important;
    text-decoration-color: var(--joy-marigold) !important;
    text-decoration-thickness: 4px !important;
    text-underline-offset: 4px !important;
    font-family: var(--joy-font-script) !important;
    font-size: 1.5rem !important;
    font-weight: 500 !important;
    padding: 0.5rem 0.5rem !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    transform: none !important;
    line-height: 1 !important;
}

body.lbp-themed.lbp-themed .hero-cta .btn-secondary:hover {
    color: var(--joy-pink) !important;
    background: transparent !important;
    transform: none !important;
    box-shadow: none !important;
}

/* LOCATION HIGHLIGHT - pill cream avec pin pink */
body.lbp-themed.lbp-themed .location-highlight {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.5rem 1rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.85rem !important;
    color: var(--joy-ink) !important;
    box-shadow: var(--joy-shadow-sm) !important;
    margin: 1.5rem 0 0 !important;
    line-height: 1.4 !important;
    max-width: 100%;
}

body.lbp-themed.lbp-themed .location-highlight svg {
    width: 14px !important;
    height: 14px !important;
    color: var(--joy-pink) !important;
    stroke: var(--joy-pink) !important;
    fill: none !important;
    flex-shrink: 0;
}

body.lbp-themed.lbp-themed .location-highlight span {
    color: var(--joy-ink) !important;
    font-weight: 500;
}

/* === HERO VISUAL - 4 cards fleurs injectees par joy.js === */
body.lbp-themed.lbp-themed .joy-hero-visual {
    display: none; /* Mobile : pas de cards */
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .joy-hero-visual {
        display: grid !important;
        grid-template-columns: 1fr 1fr;
        gap: 1rem;
        position: absolute !important;
        top: 4rem;
        right: 3rem;
        width: 38%;
        max-width: 540px;
        z-index: 4;
        pointer-events: none;
    }
}

@media (min-width: 1100px) {
    body.lbp-themed.lbp-themed .joy-hero-visual {
        right: 4rem;
        top: 5rem;
        width: 36%;
    }
}

body.lbp-themed.lbp-themed .joy-hero-card {
    position: relative;
    border: 2px solid var(--joy-ink);
    overflow: hidden;
    padding: 1rem;
}

/* Card 1 : aspect 3/4, marigold rect, rot -2 */
body.lbp-themed.lbp-themed .joy-hero-card-1 {
    aspect-ratio: 3 / 4;
    background: var(--joy-marigold);
    border-radius: var(--joy-radius-lg);
    box-shadow: var(--joy-shadow);
    transform: rotate(-2deg);
}

/* Card 2 : aspect 1/1 cobalt rond, mt-12, rot +3, shadow pink */
body.lbp-themed.lbp-themed .joy-hero-card-2 {
    margin-top: 3rem;
    aspect-ratio: 1 / 1;
    background: var(--joy-cobalt);
    border-radius: var(--joy-radius-lg);
    box-shadow: var(--joy-shadow-pink);
    transform: rotate(3deg);
}

/* Card 3 : aspect 1/1 ROND pink, rot +2 */
body.lbp-themed.lbp-themed .joy-hero-card-3 {
    aspect-ratio: 1 / 1;
    background: var(--joy-pink);
    border-radius: 50%;
    box-shadow: var(--joy-shadow);
    transform: rotate(2deg);
    padding: 1.5rem;
}

/* Card 4 : aspect 3/4 yellow rect, mt -6, rot -1, shadow cobalt */
body.lbp-themed.lbp-themed .joy-hero-card-4 {
    margin-top: -1.5rem;
    aspect-ratio: 3 / 4;
    background: var(--joy-yellow);
    border-radius: var(--joy-radius-lg);
    box-shadow: var(--joy-shadow-cobalt);
    transform: rotate(-1deg);
}

body.lbp-themed.lbp-themed .joy-hero-card img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    display: block !important;
    transition: transform 0.5s ease;
}

/* === Cercle dashed cobalt anime === */
body.lbp-themed.lbp-themed .joy-hero-circle {
    position: absolute;
    left: 35%;
    top: 60%;
    width: 8rem;
    height: 8rem;
    border: 4px dashed var(--joy-cobalt);
    border-radius: 50%;
    animation: joy-spin-slow 30s linear infinite;
    pointer-events: none;
    z-index: 2;
}

@media (max-width: 767px) {
    body.lbp-themed.lbp-themed .joy-hero-circle {
        display: none;
    }
}

/* Reset mobile: fleurs en bg pseudo-elements supprimees, ne garde que butterfly+anemone */
@media (max-width: 767px) {
    body.lbp-themed.lbp-themed .hero {
        padding: 2rem 1rem 5rem !important;
    }
}

/* === HERO REVIEWS BADGE - pill cream coin bas-droit === */
body.lbp-themed.lbp-themed .hero-reviews-badge {
    position: absolute !important;
    bottom: 1.5rem !important;
    right: 2rem !important;
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.55rem 1rem !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.6rem !important;
    box-shadow: var(--joy-shadow-sm) !important;
    z-index: 10 !important;
    text-decoration: none !important;
    flex-direction: row !important;
    color: var(--joy-ink) !important;
    transition: transform 0.18s ease;
}

body.lbp-themed.lbp-themed .hero-reviews-badge:hover {
    transform: translate(-1px, -1px);
    box-shadow: 5px 5px 0 0 var(--joy-ink) !important;
}

body.lbp-themed.lbp-themed .hero-reviews-badge .badge-rating {
    display: flex !important;
    align-items: center !important;
    gap: 0.3rem !important;
}

body.lbp-themed.lbp-themed .hero-reviews-badge .badge-score {
    font-family: var(--joy-font-display) !important;
    font-size: 1.05rem !important;
    color: var(--joy-ink) !important;
    font-weight: 400 !important;
    line-height: 1 !important;
}

body.lbp-themed.lbp-themed .hero-reviews-badge .badge-stars {
    color: var(--joy-marigold) !important;
    font-size: 0.85rem !important;
    letter-spacing: 0.05em;
}

body.lbp-themed.lbp-themed .hero-reviews-badge .badge-count {
    font-family: var(--joy-font-body) !important;
    font-size: 0.78rem !important;
    color: var(--joy-ink-soft) !important;
    font-weight: 600 !important;
}

body.lbp-themed.lbp-themed .hero-reviews-badge .badge-sources {
    display: flex !important;
    align-items: center !important;
    gap: 0.3rem !important;
}

body.lbp-themed.lbp-themed .hero-reviews-badge .badge-sources img,
body.lbp-themed.lbp-themed .hero-reviews-badge .badge-sources svg {
    width: 18px !important;
    height: 18px !important;
}


/* ============================================================
   5. MARQUEE - bandeau pink defilant
   ============================================================ */
body.lbp-themed.lbp-themed .marquee-band,
body.lbp-themed.lbp-themed .marquee {
    background: var(--joy-pink) !important;
    border-top: 4px solid var(--joy-ink) !important;
    border-bottom: 4px solid var(--joy-ink) !important;
    color: var(--joy-cream-soft) !important;
    padding: 1.25rem 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    position: relative;
}

body.lbp-themed.lbp-themed .marquee-track,
body.lbp-themed.lbp-themed .marquee > div {
    display: inline-flex !important;
    align-items: center !important;
    gap: 2.5rem !important;
    padding: 0 1.25rem !important;
    font-family: var(--joy-font-display) !important;
    font-size: clamp(1.75rem, 3.5vw, 3rem) !important;
    color: var(--joy-cream-soft) !important;
    animation: joy-marquee 30s linear infinite !important;
}

/* ============================================================
   6. PRODUCT CARDS - Casa Flora signature avec MOSAIC asymetrique
   Markup CMS: .product-card[data-joy-bg][data-joy-rot] > a > .product-image (img + .product-badges-wrap) + .product-info (h3 + .product-perso-tag + .product-price)
   ============================================================ */

/* Featured products section reset */
body.lbp-themed.lbp-themed .featured-products {
    padding-top: clamp(4rem, 7vw, 6rem) !important;
    padding-bottom: clamp(4rem, 7vw, 6rem) !important;
}

/* === CAROUSEL === */
body.lbp-themed.lbp-themed .carousel-frame {
    position: relative !important;
    padding: 0 3.5rem !important;
    max-width: var(--joy-container);
    margin: 0 auto;
}

body.lbp-themed.lbp-themed .carousel-track {
    display: flex !important;
    gap: 1.5rem !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    padding: 1.5rem 0.5rem !important;
    scroll-behavior: smooth;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

body.lbp-themed.lbp-themed .carousel-track::-webkit-scrollbar { display: none; }

body.lbp-themed.lbp-themed .carousel-arrow {
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    color: var(--joy-ink) !important;
    width: 44px !important;
    height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: var(--joy-shadow-sm) !important;
    cursor: pointer !important;
    transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease !important;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
}

body.lbp-themed.lbp-themed .carousel-prev { left: 0.5rem; }
body.lbp-themed.lbp-themed .carousel-next { right: 0.5rem; }

body.lbp-themed.lbp-themed .carousel-arrow:hover {
    background: var(--joy-pink) !important;
    color: var(--joy-cream-soft) !important;
    transform: translateY(-50%) translate(-1px, -1px);
}

body.lbp-themed.lbp-themed .carousel-arrow svg {
    width: 18px !important;
    height: 18px !important;
    color: inherit !important;
    stroke: currentColor !important;
}

/* === PRODUCTS-GRID standard - grille reguliere 3 cols === */
body.lbp-themed.lbp-themed .products-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)) !important;
    gap: 1.5rem !important;
    max-width: var(--joy-container) !important;
    margin: 0 auto !important;
    padding: 1.5rem 1.5rem !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .products-grid {
        padding: 1.5rem 3rem !important;
    }
}

/* === MOSAIC GRID asymetrique Casa Flora (page boutique) === */
/* 12 cols, 6 cards spans 5+4+3+3+4+5, avec aspect-ratio variables.
   DESKTOP UNIQUEMENT - sur mobile on passe en carousel horizontal (voir plus bas). */
@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .joy-mosaic-grid {
        display: grid !important;
        grid-template-columns: repeat(12, 1fr) !important;
        gap: 1.5rem !important;
    }
}

/* Mobile : sur l'accueil, on ANNULE le mode mosaic-grid et on revient
   au carousel horizontal classique (flex-row + scroll snap horizontal).
   Le pattern mosaic est conserve sur desktop uniquement. */
@media (max-width: 767px) {
    /* Annule le grid pour redevenir flex-row scrollable horizontalement */
    body.lbp-themed.lbp-themed .products-grid.joy-mosaic-grid,
    body.lbp-themed.lbp-themed .carousel-track.joy-mosaic-grid {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        overflow-x: auto !important;
        overflow-y: visible !important;
        grid-template-columns: none !important;
        scroll-snap-type: x mandatory !important;
        scroll-padding: 0.6rem !important;
        gap: 1.2rem !important;
        padding: 1.2rem !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        box-sizing: border-box !important;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }
    body.lbp-themed.lbp-themed .products-grid.joy-mosaic-grid::-webkit-scrollbar,
    body.lbp-themed.lbp-themed .carousel-track.joy-mosaic-grid::-webkit-scrollbar {
        display: none !important;
        height: 0 !important;
    }
    /* Override dedie pour s'assurer du padding 1.2 sur le carousel-track mosaic */
    html body.lbp-themed.lbp-themed.lbp-themed .carousel-track.joy-mosaic-grid {
        padding: 1.2rem !important;
        gap: 1.2rem !important;
    }
    /* Cards : largeur fixe ~85% du viewport, scroll snap aligned */
    body.lbp-themed.lbp-themed .products-grid.joy-mosaic-grid > .product-card,
    body.lbp-themed.lbp-themed .carousel-track.joy-mosaic-grid > .product-card {
        flex: 0 0 calc(100vw - 2.5rem) !important;
        width: calc(100vw - 2.5rem) !important;
        max-width: 340px !important;
        min-width: 0 !important;
        grid-column: auto !important;
        grid-row: auto !important;
        aspect-ratio: 4 / 5 !important;
        scroll-snap-align: start !important;
        scroll-snap-stop: always !important; /* force l'arret a CHAQUE card, pas de saut */
        box-sizing: border-box !important;
    }
    /* Reaffiche les fleches du carousel sur mobile (elles etaient cachees par .joy-mosaic-wrapper) */
    body.lbp-themed.lbp-themed .carousel-wrapper.joy-mosaic-wrapper .carousel-prev,
    body.lbp-themed.lbp-themed .carousel-wrapper.joy-mosaic-wrapper .carousel-next,
    body.lbp-themed.lbp-themed .carousel-wrapper.joy-mosaic-wrapper .carousel-arrow {
        display: inline-flex !important;
    }
    body.lbp-themed.lbp-themed .carousel-wrapper.joy-mosaic-wrapper {
        max-width: 100% !important;
        width: 100% !important;
        overflow: hidden !important;
        padding: 0 !important;
    }
}

/* Desktop : pattern Casa Flora 6 cards = 5+4+3+3+4+5 cols spans + aspect ratios var */
@media (min-width: 768px) {
    /* Card 1 : col-span 5, row-span 2, aspect 3/4 (TRES grande tall) */
    body.lbp-themed.lbp-themed .joy-mosaic-grid > .product-card:nth-child(6n+1) {
        grid-column: span 5;
        grid-row: span 2;
        aspect-ratio: 3 / 4;
    }
    /* Card 2 : col-span 4, aspect 1/1 (carre moyen) */
    body.lbp-themed.lbp-themed .joy-mosaic-grid > .product-card:nth-child(6n+2) {
        grid-column: span 4;
        aspect-ratio: 1 / 1;
    }
    /* Card 3 : col-span 3, aspect 1/1 (petit carre) */
    body.lbp-themed.lbp-themed .joy-mosaic-grid > .product-card:nth-child(6n+3) {
        grid-column: span 3;
        aspect-ratio: 1 / 1;
    }
    /* Card 4 : col-span 3, aspect 3/4 (petit tall) */
    body.lbp-themed.lbp-themed .joy-mosaic-grid > .product-card:nth-child(6n+4) {
        grid-column: span 3;
        aspect-ratio: 3 / 4;
    }
    /* Card 5 : col-span 4, aspect 1/1 (carre moyen) */
    body.lbp-themed.lbp-themed .joy-mosaic-grid > .product-card:nth-child(6n+5) {
        grid-column: span 4;
        aspect-ratio: 1 / 1;
    }
    /* Card 6 : col-span 5, aspect 3/2 (large) */
    body.lbp-themed.lbp-themed .joy-mosaic-grid > .product-card:nth-child(6n+6) {
        grid-column: span 5;
        aspect-ratio: 3 / 2;
    }
}

/* === PRODUCT CARD signature === */
body.lbp-themed.lbp-themed .product-card,
body.lbp-themed.lbp-themed article.product-card {
    position: relative !important;
    background: var(--joy-yellow) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-lg) !important;
    box-shadow: var(--joy-shadow) !important;
    overflow: hidden !important;
    aspect-ratio: 4 / 5 !important;
    padding: 0 !important;
    margin: 0 !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease !important;
    display: block !important;
    text-decoration: none !important;
    color: var(--joy-ink) !important;
}

/* Override aspect dans grille mosaique (definie par nth-child) */
body.lbp-themed.lbp-themed .joy-mosaic-grid > .product-card {
    aspect-ratio: unset;
}

/* Carousel cards - taille fixe pour scroll */
body.lbp-themed.lbp-themed .carousel-track .product-card,
body.lbp-themed.lbp-themed .product-card.carousel-card {
    flex: 0 0 280px !important;
    width: 280px !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .carousel-track .product-card,
    body.lbp-themed.lbp-themed .product-card.carousel-card {
        flex: 0 0 320px !important;
        width: 320px !important;
    }
}

/* === COULEURS DES CARDS via data-joy-bg (injecte par JS) === */
body.lbp-themed.lbp-themed .product-card[data-joy-bg="yellow"]   { background: var(--joy-yellow)   !important; }
body.lbp-themed.lbp-themed .product-card[data-joy-bg="pink"]     { background: var(--joy-pink)     !important; }
body.lbp-themed.lbp-themed .product-card[data-joy-bg="teal"]     { background: var(--joy-teal)     !important; }
body.lbp-themed.lbp-themed .product-card[data-joy-bg="cobalt"]   { background: var(--joy-cobalt)   !important; }
body.lbp-themed.lbp-themed .product-card[data-joy-bg="marigold"] { background: var(--joy-marigold) !important; }
body.lbp-themed.lbp-themed .product-card[data-joy-bg="green"]    { background: var(--joy-green)    !important; }
body.lbp-themed.lbp-themed .product-card[data-joy-bg="coral"]    { background: var(--joy-coral)    !important; }
body.lbp-themed.lbp-themed .product-card[data-joy-bg="purple"]   { background: var(--joy-purple)   !important; }

/* Rotation alternee via data-joy-rot */
body.lbp-themed.lbp-themed .product-card[data-joy-rot="-1"] { transform: rotate(-1deg); }
body.lbp-themed.lbp-themed .product-card[data-joy-rot="-2"] { transform: rotate(-2deg); }
body.lbp-themed.lbp-themed .product-card[data-joy-rot="-3"] { transform: rotate(-3deg); }
body.lbp-themed.lbp-themed .product-card[data-joy-rot="1"]  { transform: rotate(1deg); }
body.lbp-themed.lbp-themed .product-card[data-joy-rot="2"]  { transform: rotate(2deg); }
body.lbp-themed.lbp-themed .product-card[data-joy-rot="3"]  { transform: rotate(3deg); }

/* HOVER - rotate 0deg + translateY -8px (scale image) */
body.lbp-themed.lbp-themed .product-card:hover {
    transform: rotate(0deg) translateY(-8px) !important;
    box-shadow: var(--joy-shadow) !important;
}

/* Inner anchor wrap */
body.lbp-themed.lbp-themed .product-card > a {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    text-decoration: none !important;
    color: inherit !important;
    position: relative !important;
}

/* PRODUCT IMAGE - container transparent qui remplit la card */
body.lbp-themed.lbp-themed .product-card .product-image {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background: transparent !important;
    border: none !important;
    border-bottom: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
    display: block !important;
}

/* Image - object-contain avec padding 2rem (Casa Flora p-8) */
body.lbp-themed.lbp-themed .product-card .product-image img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    padding: 2rem !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transition: transform 0.5s ease !important;
    display: block !important;
    mix-blend-mode: normal;
}

body.lbp-themed.lbp-themed .product-card:hover .product-image img {
    transform: scale(1.1) !important;
}

body.lbp-themed.lbp-themed .product-card .no-image {
    background: transparent !important;
    color: var(--joy-ink-mute) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    height: 100% !important;
    width: 100% !important;
    font-family: var(--joy-font-script);
    font-size: 2rem;
    position: absolute;
    inset: 0;
}

/* === BADGES TOP-LEFT === */
body.lbp-themed.lbp-themed .product-card .product-badges-wrap {
    position: absolute !important;
    top: 1rem !important;
    left: 1rem !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0.4rem !important;
    z-index: 5 !important;
    pointer-events: none;
    align-items: flex-start !important;
}

body.lbp-themed.lbp-themed .product-card .product-badge {
    display: inline-block !important;
    background: var(--joy-cream-soft) !important;
    color: var(--joy-ink) !important;
    border: none !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.25rem 0.75rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.625rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.15em !important;
    text-transform: uppercase !important;
    box-shadow: none !important;
    line-height: 1.6 !important;
    width: auto !important;
    height: auto !important;
}

body.lbp-themed.lbp-themed .product-card .product-badge.badge-promo {
    background: var(--joy-pink) !important;
    color: var(--joy-cream-soft) !important;
}

body.lbp-themed.lbp-themed .product-card .product-badge.badge-rupture {
    background: var(--joy-ink) !important;
    color: var(--joy-cream-soft) !important;
}

/* === PRODUCT INFO BOTTOM-LEFT === */
body.lbp-themed.lbp-themed .product-card .product-info {
    position: absolute !important;
    bottom: 20px !important;
    left: 1rem !important;
    right: 1rem !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    z-index: 4 !important;
    text-align: left !important;
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    pointer-events: none;
    flex: none !important;
    flex-direction: column !important;
}

/* Title + price wrapper (premier child) */
body.lbp-themed.lbp-themed .product-card .product-info > h3,
body.lbp-themed.lbp-themed .product-card .product-info > h3 + p,
body.lbp-themed.lbp-themed .product-card .product-info > .product-price {
    display: block;
}

/* Wrapper auto pour h3 + price - garde tout a gauche */
body.lbp-themed.lbp-themed .product-card .product-info::before {
    /* placeholder */
}

body.lbp-themed.lbp-themed .product-card .product-info h3 {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-ink) !important;
    font-size: 1.5rem !important;
    line-height: 1 !important;
    margin: 0 !important;
    letter-spacing: -0.01em !important;
    font-weight: 400 !important;
    text-align: left !important;
    text-transform: none !important;
}

body.lbp-themed.lbp-themed .product-card .product-price {
    font-family: var(--joy-font-script) !important;
    color: rgba(42, 26, 15, 0.85) !important;
    font-size: 1.5rem !important;
    margin: 0.15rem 0 0 !important;
    line-height: 1 !important;
    font-weight: 500 !important;
    display: block !important;
    text-align: left !important;
}

body.lbp-themed.lbp-themed .product-card .product-price .current-price {
    font-family: var(--joy-font-script) !important;
    color: rgba(42, 26, 15, 0.85) !important;
    font-size: 1.5rem !important;
    font-weight: 500 !important;
}

body.lbp-themed.lbp-themed .product-card .product-price .old-price {
    text-decoration: line-through;
    color: rgba(42, 26, 15, 0.45) !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.85rem !important;
    margin-right: 0.4rem !important;
    font-weight: 400 !important;
}

/* PERSO TAG - desormais place dans .product-badges-wrap par joy.js
   (cote a cote / sous les autres badges en haut a gauche) */
body.lbp-themed.lbp-themed .product-card .product-perso-tag {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.3rem !important;
    background: var(--joy-marigold) !important;
    color: var(--joy-ink) !important;
    border: none !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.25rem 0.7rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.6rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    margin: 0 !important;
    box-shadow: none !important;
    pointer-events: auto;
    line-height: 1.4 !important;
    width: auto !important;
    height: auto !important;
}

body.lbp-themed.lbp-themed .product-card .product-perso-tag svg {
    width: 10px !important;
    height: 10px !important;
    color: var(--joy-ink) !important;
    stroke: var(--joy-ink) !important;
    fill: none !important;
}

/* === HOVER ARROW (injecte par joy.js, contenu = "→" symbole unicode) === */
body.lbp-themed.lbp-themed .product-card .joy-view-arrow {
    background: var(--joy-ink) !important;
    color: var(--joy-cream-soft) !important;
    border: none !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.45rem 0.85rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    white-space: nowrap !important;
    opacity: 0;
    transition: opacity 0.18s ease !important;
    pointer-events: none;
    position: absolute !important;
    bottom: 0 !important;
    right: 0 !important;
    z-index: 5;
    box-shadow: none !important;
}

body.lbp-themed.lbp-themed .product-card:hover .joy-view-arrow {
    opacity: 1 !important;
}

/* Cards a fond fonce : arrow garde son contraste (deja ink/cream) */

/* === Cards a fond fonce (cobalt/purple/coral/green) → texte cream === */
body.lbp-themed.lbp-themed .product-card[data-joy-bg="cobalt"] .product-info h3,
body.lbp-themed.lbp-themed .product-card[data-joy-bg="purple"] .product-info h3,
body.lbp-themed.lbp-themed .product-card[data-joy-bg="coral"] .product-info h3,
body.lbp-themed.lbp-themed .product-card[data-joy-bg="green"] .product-info h3,
body.lbp-themed.lbp-themed .product-card[data-joy-bg="pink"] .product-info h3 {
    color: var(--joy-cream-soft) !important;
}

body.lbp-themed.lbp-themed .product-card[data-joy-bg="cobalt"] .product-price,
body.lbp-themed.lbp-themed .product-card[data-joy-bg="purple"] .product-price,
body.lbp-themed.lbp-themed .product-card[data-joy-bg="coral"] .product-price,
body.lbp-themed.lbp-themed .product-card[data-joy-bg="green"] .product-price,
body.lbp-themed.lbp-themed .product-card[data-joy-bg="pink"] .product-price,
body.lbp-themed.lbp-themed .product-card[data-joy-bg="cobalt"] .current-price,
body.lbp-themed.lbp-themed .product-card[data-joy-bg="purple"] .current-price,
body.lbp-themed.lbp-themed .product-card[data-joy-bg="coral"] .current-price,
body.lbp-themed.lbp-themed .product-card[data-joy-bg="green"] .current-price,
body.lbp-themed.lbp-themed .product-card[data-joy-bg="pink"] .current-price {
    color: rgba(251, 246, 233, 0.95) !important;
}

body.lbp-themed.lbp-themed .product-card[data-joy-bg="cobalt"] .old-price,
body.lbp-themed.lbp-themed .product-card[data-joy-bg="purple"] .old-price,
body.lbp-themed.lbp-themed .product-card[data-joy-bg="coral"] .old-price,
body.lbp-themed.lbp-themed .product-card[data-joy-bg="green"] .old-price,
body.lbp-themed.lbp-themed .product-card[data-joy-bg="pink"] .old-price {
    color: rgba(251, 246, 233, 0.55) !important;
}

/* Coeur favori */
body.lbp-themed.lbp-themed .fav-heart-btn {
    position: absolute !important;
    top: 1rem !important;
    right: 1rem !important;
    background: var(--joy-cream-soft) !important;
    border: none !important;
    border-radius: var(--joy-radius-pill) !important;
    width: 36px !important;
    height: 36px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: none !important;
    transition: transform 0.18s ease !important;
    z-index: 5;
    pointer-events: auto;
    cursor: pointer;
}

body.lbp-themed.lbp-themed .fav-heart-btn:hover { transform: scale(1.1); }

body.lbp-themed.lbp-themed .fav-heart-btn.is-fav {
    background: var(--joy-pink) !important;
    color: var(--joy-cream-soft) !important;
}

body.lbp-themed.lbp-themed .fav-heart-btn svg {
    width: 16px;
    height: 16px;
    color: var(--joy-pink);
    stroke: var(--joy-pink);
}

/* Etat par defaut (pas en favori) : coeur creme, contour ink */
body.lbp-themed.lbp-themed .fav-heart-btn:not(.is-fav) svg,
body.lbp-themed.lbp-themed .fav-heart-btn:not(.is-fav) svg path {
    fill: var(--joy-cream-soft) !important;
    stroke: var(--joy-ink) !important;
}

/* Etat favori : coeur rose plein */
body.lbp-themed.lbp-themed .fav-heart-btn.is-fav svg {
    color: var(--joy-pink) !important;
    stroke: var(--joy-pink) !important;
    fill: var(--joy-pink) !important;
}
body.lbp-themed.lbp-themed .fav-heart-btn.is-fav svg path {
    fill: var(--joy-pink) !important;
    stroke: var(--joy-pink) !important;
}

body.lbp-themed.lbp-themed .product-card.out-of-stock { opacity: 0.85; }
body.lbp-themed.lbp-themed .product-card.out-of-stock .product-image img { filter: grayscale(0.4); }


/* ============================================================
   7. COLLECTIONS - 3 cards rounded-[3rem] avec couleurs alternees
   ============================================================ */
body.lbp-themed.lbp-themed .collections-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
    max-width: var(--joy-container) !important;
    margin: 0 auto !important;
    padding: 0 1.5rem !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .collections-grid {
        grid-template-columns: repeat(3, 1fr) !important;
        padding: 0 3rem !important;
    }
}

body.lbp-themed.lbp-themed .collection-card {
    position: relative !important;
    background: var(--joy-marigold) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: 3rem !important;
    box-shadow: var(--joy-shadow) !important;
    aspect-ratio: 4 / 5 !important;
    overflow: hidden !important;
    transition: transform 0.3s ease !important;
    padding: 0 !important;
    color: var(--joy-ink) !important;
    text-decoration: none !important;
    display: block !important;
}

/* 3 cards : marigold, green-translateY3rem, pink-cream-text */
body.lbp-themed.lbp-themed .collections-grid .collection-card:nth-child(3n+1) { background: var(--joy-marigold) !important; }
body.lbp-themed.lbp-themed .collections-grid .collection-card:nth-child(3n+2) { background: var(--joy-green) !important; }
body.lbp-themed.lbp-themed .collections-grid .collection-card:nth-child(3n+3) {
    background: var(--joy-pink) !important;
    color: var(--joy-cream-soft) !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .collections-grid .collection-card:nth-child(3n+2) {
        transform: translateY(3rem);
    }
}

/* === Couleur de card par categorie : surcharge le nth-child quand l'admin a choisi === */
/* Spec : 0,5,0 pour battre 0,5,0 du nth-child (defini apres = gagne en cas d'egalite) */
body.lbp-themed.lbp-themed .collections-grid .collection-card[data-swatch="gold"]           { background: var(--gold) !important; color: var(--joy-cream-soft) !important; }
body.lbp-themed.lbp-themed .collections-grid .collection-card[data-swatch="gold-light"]     { background: var(--gold-light) !important; color: var(--joy-ink) !important; }
body.lbp-themed.lbp-themed .collections-grid .collection-card[data-swatch="gold-dark"]      { background: var(--gold-dark) !important; color: var(--joy-cream-soft) !important; }
body.lbp-themed.lbp-themed .collections-grid .collection-card[data-swatch="cream"]          { background: var(--cream) !important; color: var(--joy-ink) !important; }
body.lbp-themed.lbp-themed .collections-grid .collection-card[data-swatch="cream-dark"]     { background: var(--cream-dark) !important; color: var(--joy-ink) !important; }
body.lbp-themed.lbp-themed .collections-grid .collection-card[data-swatch="charcoal"]       { background: var(--charcoal) !important; color: var(--joy-cream-soft) !important; }
body.lbp-themed.lbp-themed .collections-grid .collection-card[data-swatch="charcoal-light"] { background: var(--charcoal-light) !important; color: var(--joy-cream-soft) !important; }
body.lbp-themed.lbp-themed .collections-grid .collection-card[data-swatch="terracotta"]     { background: var(--terracotta) !important; color: var(--joy-ink) !important; }
body.lbp-themed.lbp-themed .collections-grid .collection-card[data-swatch="sage"]           { background: var(--sage) !important; color: var(--joy-ink) !important; }
body.lbp-themed.lbp-themed .collections-grid .collection-card[data-swatch="blush"]          { background: var(--blush) !important; color: var(--joy-ink) !important; }
body.lbp-themed.lbp-themed .collections-grid .collection-card[data-swatch="christmas-red"]  { background: var(--christmas-red) !important; color: var(--joy-cream-soft) !important; }
body.lbp-themed.lbp-themed .collections-grid .collection-card[data-swatch="christmas-green"]{ background: var(--christmas-green) !important; color: var(--joy-cream-soft) !important; }

/* === Swatches Joy (27 variantes) appliquables sur cards / main-media === */
/* Roses */
body.lbp-themed.lbp-themed .product-card[data-swatch="joy-pink"],
body.lbp-themed.lbp-themed .collection-card[data-swatch="joy-pink"],
body.lbp-themed.lbp-themed .product-main-media[data-swatch="joy-pink"] { background: var(--joy-pink) !important; color: var(--joy-cream-soft) !important; }
body.lbp-themed.lbp-themed .product-card[data-swatch="joy-pink-deep"],
body.lbp-themed.lbp-themed .collection-card[data-swatch="joy-pink-deep"],
body.lbp-themed.lbp-themed .product-main-media[data-swatch="joy-pink-deep"] { background: var(--joy-pink-deep) !important; color: var(--joy-cream-soft) !important; }
body.lbp-themed.lbp-themed .product-card[data-swatch="joy-pink-soft"],
body.lbp-themed.lbp-themed .collection-card[data-swatch="joy-pink-soft"],
body.lbp-themed.lbp-themed .product-main-media[data-swatch="joy-pink-soft"] { background: var(--joy-pink-soft) !important; color: var(--joy-ink) !important; }
body.lbp-themed.lbp-themed .product-card[data-swatch="joy-pink-tint"],
body.lbp-themed.lbp-themed .collection-card[data-swatch="joy-pink-tint"],
body.lbp-themed.lbp-themed .product-main-media[data-swatch="joy-pink-tint"] { background: var(--joy-pink-tint) !important; color: var(--joy-ink) !important; }
/* Coraux */
body.lbp-themed.lbp-themed .product-card[data-swatch="joy-coral"],
body.lbp-themed.lbp-themed .collection-card[data-swatch="joy-coral"],
body.lbp-themed.lbp-themed .product-main-media[data-swatch="joy-coral"] { background: var(--joy-coral) !important; color: var(--joy-ink) !important; }
body.lbp-themed.lbp-themed .product-card[data-swatch="joy-coral-tint"],
body.lbp-themed.lbp-themed .collection-card[data-swatch="joy-coral-tint"],
body.lbp-themed.lbp-themed .product-main-media[data-swatch="joy-coral-tint"] { background: var(--joy-coral-tint) !important; color: var(--joy-ink) !important; }
/* Marigolds */
body.lbp-themed.lbp-themed .product-card[data-swatch="joy-marigold"],
body.lbp-themed.lbp-themed .collection-card[data-swatch="joy-marigold"],
body.lbp-themed.lbp-themed .product-main-media[data-swatch="joy-marigold"] { background: var(--joy-marigold) !important; color: var(--joy-ink) !important; }
body.lbp-themed.lbp-themed .product-card[data-swatch="joy-marigold-deep"],
body.lbp-themed.lbp-themed .collection-card[data-swatch="joy-marigold-deep"],
body.lbp-themed.lbp-themed .product-main-media[data-swatch="joy-marigold-deep"] { background: var(--joy-marigold-deep) !important; color: var(--joy-ink) !important; }
body.lbp-themed.lbp-themed .product-card[data-swatch="joy-marigold-tint"],
body.lbp-themed.lbp-themed .collection-card[data-swatch="joy-marigold-tint"],
body.lbp-themed.lbp-themed .product-main-media[data-swatch="joy-marigold-tint"] { background: var(--joy-marigold-tint) !important; color: var(--joy-ink) !important; }
/* Jaunes */
body.lbp-themed.lbp-themed .product-card[data-swatch="joy-yellow"],
body.lbp-themed.lbp-themed .collection-card[data-swatch="joy-yellow"],
body.lbp-themed.lbp-themed .product-main-media[data-swatch="joy-yellow"] { background: var(--joy-yellow) !important; color: var(--joy-ink) !important; }
body.lbp-themed.lbp-themed .product-card[data-swatch="joy-yellow-soft"],
body.lbp-themed.lbp-themed .collection-card[data-swatch="joy-yellow-soft"],
body.lbp-themed.lbp-themed .product-main-media[data-swatch="joy-yellow-soft"] { background: var(--joy-yellow-soft) !important; color: var(--joy-ink) !important; }
body.lbp-themed.lbp-themed .product-card[data-swatch="joy-yellow-tint"],
body.lbp-themed.lbp-themed .collection-card[data-swatch="joy-yellow-tint"],
body.lbp-themed.lbp-themed .product-main-media[data-swatch="joy-yellow-tint"] { background: var(--joy-yellow-tint) !important; color: var(--joy-ink) !important; }
/* Verts */
body.lbp-themed.lbp-themed .product-card[data-swatch="joy-green"],
body.lbp-themed.lbp-themed .collection-card[data-swatch="joy-green"],
body.lbp-themed.lbp-themed .product-main-media[data-swatch="joy-green"] { background: var(--joy-green) !important; color: var(--joy-ink) !important; }
body.lbp-themed.lbp-themed .product-card[data-swatch="joy-green-deep"],
body.lbp-themed.lbp-themed .collection-card[data-swatch="joy-green-deep"],
body.lbp-themed.lbp-themed .product-main-media[data-swatch="joy-green-deep"] { background: var(--joy-green-deep) !important; color: var(--joy-cream-soft) !important; }
body.lbp-themed.lbp-themed .product-card[data-swatch="joy-green-tint"],
body.lbp-themed.lbp-themed .collection-card[data-swatch="joy-green-tint"],
body.lbp-themed.lbp-themed .product-main-media[data-swatch="joy-green-tint"] { background: var(--joy-green-tint) !important; color: var(--joy-ink) !important; }
/* Teals */
body.lbp-themed.lbp-themed .product-card[data-swatch="joy-teal"],
body.lbp-themed.lbp-themed .collection-card[data-swatch="joy-teal"],
body.lbp-themed.lbp-themed .product-main-media[data-swatch="joy-teal"] { background: var(--joy-teal) !important; color: var(--joy-ink) !important; }
body.lbp-themed.lbp-themed .product-card[data-swatch="joy-teal-tint"],
body.lbp-themed.lbp-themed .collection-card[data-swatch="joy-teal-tint"],
body.lbp-themed.lbp-themed .product-main-media[data-swatch="joy-teal-tint"] { background: var(--joy-teal-tint) !important; color: var(--joy-ink) !important; }
/* Cobalts */
body.lbp-themed.lbp-themed .product-card[data-swatch="joy-cobalt"],
body.lbp-themed.lbp-themed .collection-card[data-swatch="joy-cobalt"],
body.lbp-themed.lbp-themed .product-main-media[data-swatch="joy-cobalt"] { background: var(--joy-cobalt) !important; color: var(--joy-cream-soft) !important; }
body.lbp-themed.lbp-themed .product-card[data-swatch="joy-cobalt-deep"],
body.lbp-themed.lbp-themed .collection-card[data-swatch="joy-cobalt-deep"],
body.lbp-themed.lbp-themed .product-main-media[data-swatch="joy-cobalt-deep"] { background: var(--joy-cobalt-deep) !important; color: var(--joy-cream-soft) !important; }
body.lbp-themed.lbp-themed .product-card[data-swatch="joy-cobalt-tint"],
body.lbp-themed.lbp-themed .collection-card[data-swatch="joy-cobalt-tint"],
body.lbp-themed.lbp-themed .product-main-media[data-swatch="joy-cobalt-tint"] { background: var(--joy-cobalt-tint) !important; color: var(--joy-ink) !important; }
/* Violets */
body.lbp-themed.lbp-themed .product-card[data-swatch="joy-purple"],
body.lbp-themed.lbp-themed .collection-card[data-swatch="joy-purple"],
body.lbp-themed.lbp-themed .product-main-media[data-swatch="joy-purple"] { background: var(--joy-purple) !important; color: var(--joy-cream-soft) !important; }
body.lbp-themed.lbp-themed .product-card[data-swatch="joy-purple-tint"],
body.lbp-themed.lbp-themed .collection-card[data-swatch="joy-purple-tint"],
body.lbp-themed.lbp-themed .product-main-media[data-swatch="joy-purple-tint"] { background: var(--joy-purple-tint) !important; color: var(--joy-ink) !important; }
/* Cremes */
body.lbp-themed.lbp-themed .product-card[data-swatch="joy-cream-soft"],
body.lbp-themed.lbp-themed .collection-card[data-swatch="joy-cream-soft"],
body.lbp-themed.lbp-themed .product-main-media[data-swatch="joy-cream-soft"] { background: var(--joy-cream-soft) !important; color: var(--joy-ink) !important; }
body.lbp-themed.lbp-themed .product-card[data-swatch="joy-cream-warm"],
body.lbp-themed.lbp-themed .collection-card[data-swatch="joy-cream-warm"],
body.lbp-themed.lbp-themed .product-main-media[data-swatch="joy-cream-warm"] { background: var(--joy-cream-warm) !important; color: var(--joy-ink) !important; }
body.lbp-themed.lbp-themed .product-card[data-swatch="joy-cream-deep"],
body.lbp-themed.lbp-themed .collection-card[data-swatch="joy-cream-deep"],
body.lbp-themed.lbp-themed .product-main-media[data-swatch="joy-cream-deep"] { background: var(--joy-cream-deep) !important; color: var(--joy-ink) !important; }
/* Encres */
body.lbp-themed.lbp-themed .product-card[data-swatch="joy-ink-soft"],
body.lbp-themed.lbp-themed .collection-card[data-swatch="joy-ink-soft"],
body.lbp-themed.lbp-themed .product-main-media[data-swatch="joy-ink-soft"] { background: var(--joy-ink-soft) !important; color: var(--joy-cream-soft) !important; }
body.lbp-themed.lbp-themed .product-card[data-swatch="joy-ink-mute"],
body.lbp-themed.lbp-themed .collection-card[data-swatch="joy-ink-mute"],
body.lbp-themed.lbp-themed .product-main-media[data-swatch="joy-ink-mute"] { background: var(--joy-ink-mute) !important; color: var(--joy-cream-soft) !important; }

/* Quand un swatch est choisi, harmoniser la couleur du paragraphe et du titre */
body.lbp-themed.lbp-themed .collection-card[data-swatch] p { color: inherit !important; opacity: 0.75; }
body.lbp-themed.lbp-themed .collection-card[data-swatch] h3 { color: inherit !important; }

/* Hover gere en section 42 par nth-child specifique */

/* Decoration fleur en bas-droite scale + rotate au hover */
body.lbp-themed.lbp-themed .collection-card::before {
    content: '';
    position: absolute;
    bottom: -1.5rem;
    right: -1.5rem;
    width: 75%;
    aspect-ratio: 1;
    background-image: var(--joy-img-rose-pink);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    transition: transform 0.7s ease;
    pointer-events: none;
    z-index: 1;
}

body.lbp-themed.lbp-themed .collections-grid .collection-card:nth-child(3n+1)::before { background-image: var(--joy-img-poppy); }
body.lbp-themed.lbp-themed .collections-grid .collection-card:nth-child(3n+2)::before { background-image: var(--joy-img-anemone-2); }
body.lbp-themed.lbp-themed .collections-grid .collection-card:nth-child(3n+3)::before { background-image: var(--joy-img-blossom-white); }

body.lbp-themed.lbp-themed .collection-card:hover::before {
    transform: scale(1.1) rotate(12deg);
}

/* === Image de la categorie : si presente, affichee dans le flux de la card === */
/* Ordre voulu : description (p), titre (h3), image, cta (a) */
body.lbp-themed.lbp-themed .collection-card:has(.collection-image) {
    display: flex !important;
    flex-direction: column;
    aspect-ratio: auto !important;  /* hauteur s'adapte au contenu */
    padding: 2rem 2rem 5rem !important;  /* bas : place pour le bouton absolute */
    min-height: 28rem;
}
/* Le wrapper interne (collection-content ou div:first-child) avait padding 2rem,
   on le neutralise quand on a pris la main sur le padding du card */
body.lbp-themed.lbp-themed .collection-card:has(.collection-image) > div:first-child,
body.lbp-themed.lbp-themed .collection-card:has(.collection-image) .collection-content {
    padding: 0 !important;
}

body.lbp-themed.lbp-themed .collection-image {
    display: block !important;
    position: relative;
    width: 100%;
    aspect-ratio: 1;
    margin: 1.5rem 0;
    z-index: 2;
    transition: transform 0.5s ease;
    overflow: hidden;
    border-radius: 1.5rem;
    order: 3;  /* apres p (1), apres h3 (2) */
}
body.lbp-themed.lbp-themed .collection-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    display: block !important;
    mix-blend-mode: normal;
}
body.lbp-themed.lbp-themed .collection-card:hover .collection-image {
    transform: scale(1.05);
}

/* Ordre voulu : description (p) en eyebrow, puis titre, puis image, puis cta */
body.lbp-themed.lbp-themed .collection-card:has(.collection-image) p { order: 1; }
body.lbp-themed.lbp-themed .collection-card:has(.collection-image) h3 { order: 2; }
/* image deja a order:3 plus haut */
body.lbp-themed.lbp-themed .collection-card:has(.collection-image) .collection-link { order: 4; }

/* Cacher la fleur generique du ::before si on a une image custom */
body.lbp-themed.lbp-themed .collection-card:has(.collection-image)::before {
    display: none !important;
}
/* Cacher l'icone SVG circulaire (le visuel Joy se passe de cet element) */
body.lbp-themed.lbp-themed .collection-icon {
    display: none !important;
}

body.lbp-themed.lbp-themed .collection-card .collection-content,
body.lbp-themed.lbp-themed .collection-card > div:first-child {
    position: relative;
    padding: 2rem !important;
    z-index: 2;
}

body.lbp-themed.lbp-themed .collection-card .collection-subtitle,
body.lbp-themed.lbp-themed .collection-card .collection-eyebrow,
body.lbp-themed.lbp-themed .collection-card p {
    font-family: var(--joy-font-script) !important;
    font-size: 1.5rem !important;
    color: rgba(42, 26, 15, 0.7) !important;
    opacity: 1 !important;
    margin: 0 !important;
    line-height: 1 !important;
    position: relative;
    z-index: 2;
}

body.lbp-themed.lbp-themed .collections-grid .collection-card:nth-child(3n+3) p {
    color: rgba(251, 246, 233, 0.85) !important;
}

body.lbp-themed.lbp-themed .collection-card h3,
body.lbp-themed.lbp-themed .collection-card .collection-title {
    font-family: var(--joy-font-display) !important;
    font-size: clamp(2.5rem, 5vw, 4rem) !important;
    color: inherit !important;
    line-height: 0.9 !important;
    margin: 0.2rem 0 0 !important;
    position: relative;
    z-index: 2;
    letter-spacing: -0.02em;
}

body.lbp-themed.lbp-themed .collection-link {
    position: absolute !important;
    bottom: 1.5rem !important;
    left: 2rem !important;
    background: var(--joy-ink) !important;
    color: var(--joy-cream-soft) !important;
    border: none !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.5rem 1rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    text-transform: lowercase !important;
    letter-spacing: 0 !important;
    text-decoration: none !important;
    z-index: 3;
    box-shadow: none !important;
}

body.lbp-themed.lbp-themed .collection-card .collection-icon {
    display: none !important;
}

/* ============================================================
   8. ABOUT - section avec photo card rotated + sticker yellow
   ============================================================ */
body.lbp-themed.lbp-themed .about {
    position: relative;
    overflow: hidden;
}

body.lbp-themed.lbp-themed .about-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 3rem !important;
    max-width: var(--joy-container) !important;
    margin: 0 auto !important;
    padding: 0 1.5rem !important;
    align-items: center !important;
    position: relative;
    z-index: 1;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .about-grid {
        grid-template-columns: 1fr 1.05fr !important;
        gap: 4rem !important;
    }
}

body.lbp-themed.lbp-themed .about-video {
    position: relative !important;
}

body.lbp-themed.lbp-themed .about-video .video-frame {
    position: relative !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-xl) !important;
    box-shadow: var(--joy-shadow-pink) !important;
    overflow: hidden !important;
    transform: rotate(-2deg) !important;
    background: var(--joy-marigold) !important;
    aspect-ratio: 4 / 5 !important;
}

body.lbp-themed.lbp-themed .about-video .video-frame video,
body.lbp-themed.lbp-themed .about-video .video-frame img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block;
}

body.lbp-themed.lbp-themed .about-text h2 {
    font-family: var(--joy-font-display) !important;
    font-size: clamp(2.6rem, 6vw, 4.5rem) !important;
    color: var(--joy-ink) !important;
    line-height: 0.95 !important;
    margin: 0 0 1.5rem !important;
    letter-spacing: -0.02em !important;
}

body.lbp-themed.lbp-themed .about-text p {
    font-family: var(--joy-font-body) !important;
    color: var(--joy-ink-soft) !important;
    font-size: 1.05rem !important;
    line-height: 1.7 !important;
    margin-bottom: 1.1rem !important;
}

body.lbp-themed.lbp-themed .about-stats {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 1rem !important;
    margin-top: 2rem !important;
}

body.lbp-themed.lbp-themed .about-stats .stat {
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-md) !important;
    padding: 1rem 1.4rem !important;
    box-shadow: var(--joy-shadow-sm) !important;
    text-align: center !important;
    min-width: 120px;
    flex: 1;
}

body.lbp-themed.lbp-themed .about-stats .stat:nth-child(3n+1) { background: var(--joy-yellow-soft) !important; transform: rotate(-1deg); }
body.lbp-themed.lbp-themed .about-stats .stat:nth-child(3n+2) { background: var(--joy-pink-tint) !important; transform: rotate(1deg); }
body.lbp-themed.lbp-themed .about-stats .stat:nth-child(3n+3) { background: var(--joy-teal-tint) !important; transform: rotate(-2deg); }

body.lbp-themed.lbp-themed .about-stats .stat-number {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-pink) !important;
    font-size: 2.4rem !important;
    line-height: 1 !important;
    margin-bottom: 0.3rem !important;
}

body.lbp-themed.lbp-themed .about-stats .stat-label {
    font-family: var(--joy-font-body) !important;
    color: var(--joy-ink) !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
}

/* ============================================================
   9. STORY / TEMOIGNAGES - bg cobalt full-bleed quote massive
   ============================================================ */
body.lbp-themed.lbp-themed .testimonials {
    position: relative;
    background: var(--joy-cobalt) !important;
    color: var(--joy-cream-soft) !important;
    border-top: 4px solid var(--joy-ink) !important;
    border-bottom: 4px solid var(--joy-ink) !important;
    overflow: hidden;
    padding: 8rem 1.5rem !important;
}

body.lbp-themed.lbp-themed .testimonials::before {
    content: '';
    position: absolute;
    top: 2.5rem;
    right: 2.5rem;
    width: clamp(80px, 12vw, 192px);
    aspect-ratio: 1;
    background-image: var(--joy-img-butterfly-monarch);
    background-size: contain;
    background-repeat: no-repeat;
    pointer-events: none;
    animation: joy-wiggle 3s ease-in-out infinite;
    z-index: 1;
}

body.lbp-themed.lbp-themed .testimonials::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: -4rem;
    width: clamp(180px, 25vw, 320px);
    aspect-ratio: 1;
    background-image: var(--joy-img-rose-pink);
    background-size: contain;
    background-repeat: no-repeat;
    pointer-events: none;
    transform: rotate(-12deg);
    z-index: 1;
}

body.lbp-themed.lbp-themed .testimonials > .container,
body.lbp-themed.lbp-themed .testimonials .testimonials-inner,
body.lbp-themed.lbp-themed .testimonials .section-header {
    position: relative;
    z-index: 2;
    max-width: 56rem;
    margin: 0 auto;
    text-align: center;
}

body.lbp-themed.lbp-themed .testimonials .section-title,
body.lbp-themed.lbp-themed .testimonials h2 {
    color: var(--joy-cream-soft) !important;
}

body.lbp-themed.lbp-themed .testimonials .section-label {
    color: var(--joy-marigold) !important;
}

body.lbp-themed.lbp-themed .testimonials .section-subtitle {
    color: rgba(251, 246, 233, 0.8) !important;
}

body.lbp-themed.lbp-themed .testimonials-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
    max-width: 64rem !important;
    margin: 3rem auto 0 !important;
    padding: 0 !important;
    position: relative;
    z-index: 2;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .testimonials-grid {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}

body.lbp-themed.lbp-themed .testimonial-card,
body.lbp-themed.lbp-themed .testimonial {
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-md) !important;
    box-shadow: var(--joy-shadow) !important;
    padding: 1.8rem 1.6rem 1.6rem !important;
    color: var(--joy-ink) !important;
    position: relative;
}

body.lbp-themed.lbp-themed .testimonials-grid .testimonial-card:nth-child(3n+1) { transform: rotate(-2deg); }
body.lbp-themed.lbp-themed .testimonials-grid .testimonial-card:nth-child(3n+2) {
    background: var(--joy-yellow-tint) !important;
    transform: rotate(1deg) translateY(1.5rem);
}
body.lbp-themed.lbp-themed .testimonials-grid .testimonial-card:nth-child(3n+3) {
    background: var(--joy-pink-tint) !important;
    transform: rotate(-1deg);
}

body.lbp-themed.lbp-themed .testimonial-card .testimonial-text,
body.lbp-themed.lbp-themed .testimonial-card p {
    font-family: var(--joy-font-display) !important;
    font-size: 1.15rem !important;
    color: var(--joy-ink) !important;
    line-height: 1.4 !important;
    font-style: italic !important;
    margin: 0 0 1rem !important;
}

body.lbp-themed.lbp-themed .testimonial-card .testimonial-author,
body.lbp-themed.lbp-themed .testimonial-card .testimonial-name {
    font-family: var(--joy-font-script) !important;
    color: var(--joy-pink-deep) !important;
    font-size: 1.4rem !important;
    font-weight: 600 !important;
}

body.lbp-themed.lbp-themed .testimonial-card .stars {
    color: var(--joy-marigold) !important;
    font-size: 1rem !important;
    margin-bottom: 0.5rem !important;
}


/* ============================================================
   10. SUR-MESURE - decoration marigold + cards tints
   ============================================================ */
body.lbp-themed.lbp-themed .custom-orders {
    position: relative;
    overflow: hidden;
}

body.lbp-themed.lbp-themed .custom-orders::before {
    content: '';
    position: absolute;
    top: 2rem;
    left: -3rem;
    width: 12rem;
    aspect-ratio: 1;
    background-image: var(--joy-img-marigold);
    background-size: contain;
    background-repeat: no-repeat;
    --rot: 8deg;
    animation: joy-float 8s ease-in-out infinite;
    pointer-events: none;
    z-index: 0;
    opacity: 0.7;
}

body.lbp-themed.lbp-themed .custom-orders-grid,
body.lbp-themed.lbp-themed .custom-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 3rem !important;
    max-width: var(--joy-container) !important;
    margin: 0 auto !important;
    padding: 0 1.5rem !important;
    align-items: center !important;
    position: relative;
    z-index: 1;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .custom-orders-grid,
    body.lbp-themed.lbp-themed .custom-grid {
        grid-template-columns: 1fr 1fr !important;
        gap: 4rem !important;
    }
}

body.lbp-themed.lbp-themed .custom-orders h2,
body.lbp-themed.lbp-themed .custom-text h2 {
    font-family: var(--joy-font-display) !important;
    font-size: clamp(2.6rem, 6vw, 4.5rem) !important;
    color: var(--joy-ink) !important;
    line-height: 0.95 !important;
    margin-bottom: 1.4rem !important;
    letter-spacing: -0.02em !important;
}

body.lbp-themed.lbp-themed .custom-orders h2 em,
body.lbp-themed.lbp-themed .custom-text h2 em {
    color: var(--joy-pink) !important;
    font-style: italic !important;
}

body.lbp-themed.lbp-themed .custom-tags,
body.lbp-themed.lbp-themed .custom-orders .tags {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.6rem !important;
    margin: 1.5rem 0 !important;
}

body.lbp-themed.lbp-themed .custom-tags .tag,
body.lbp-themed.lbp-themed .custom-tag {
    display: inline-block !important;
    background: var(--joy-cream-soft) !important;
    color: var(--joy-ink) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.35rem 0.85rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.05em !important;
    box-shadow: var(--joy-shadow-sm) !important;
}

body.lbp-themed.lbp-themed .custom-tags .tag:nth-child(4n+1) { background: var(--joy-yellow-tint) !important; transform: rotate(-1deg); }
body.lbp-themed.lbp-themed .custom-tags .tag:nth-child(4n+2) { background: var(--joy-pink-tint) !important; transform: rotate(1deg); }
body.lbp-themed.lbp-themed .custom-tags .tag:nth-child(4n+3) { background: var(--joy-teal-tint) !important; transform: rotate(-2deg); }
body.lbp-themed.lbp-themed .custom-tags .tag:nth-child(4n+4) { background: var(--joy-marigold-tint) !important; transform: rotate(2deg); }

body.lbp-themed.lbp-themed .custom-features {
    list-style: none !important;
    padding: 0 !important;
    margin: 1.5rem 0 !important;
}

body.lbp-themed.lbp-themed .custom-features li {
    position: relative;
    padding-left: 1.5rem !important;
    font-family: var(--joy-font-body) !important;
    color: var(--joy-ink) !important;
    line-height: 1.6 !important;
    margin-bottom: 0.6rem !important;
}

body.lbp-themed.lbp-themed .custom-features li::before {
    content: '✿';
    position: absolute;
    left: 0;
    top: 0;
    color: var(--joy-pink);
    font-size: 1.1rem;
    line-height: 1.5;
}

body.lbp-themed.lbp-themed .custom-visual {
    position: relative;
    border: 2px solid var(--joy-ink);
    border-radius: var(--joy-radius-xl);
    box-shadow: var(--joy-shadow-pink);
    overflow: hidden;
    transform: rotate(2deg);
    aspect-ratio: 4 / 5;
    background: var(--joy-yellow);
}

body.lbp-themed.lbp-themed .custom-visual img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}

/* Universe cards (sur-mesure univers) */
body.lbp-themed.lbp-themed .universe-cards,
body.lbp-themed.lbp-themed .custom-universes {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
    gap: 1.2rem !important;
    margin-top: 2.5rem !important;
}

body.lbp-themed.lbp-themed .universe-card {
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-md) !important;
    box-shadow: var(--joy-shadow-sm) !important;
    padding: 1.4rem 1.2rem !important;
    text-align: center !important;
    transition: transform 0.2s ease !important;
}

body.lbp-themed.lbp-themed .universe-card:nth-child(4n+1) { background: var(--joy-yellow-tint) !important; transform: rotate(-1deg); }
body.lbp-themed.lbp-themed .universe-card:nth-child(4n+2) { background: var(--joy-pink-tint) !important; transform: rotate(1deg); }
body.lbp-themed.lbp-themed .universe-card:nth-child(4n+3) { background: var(--joy-teal-tint) !important; transform: rotate(-2deg); }
body.lbp-themed.lbp-themed .universe-card:nth-child(4n+4) { background: var(--joy-marigold-tint) !important; transform: rotate(2deg); }

body.lbp-themed.lbp-themed .universe-card:hover {
    transform: translateY(-4px) rotate(0deg) !important;
}

body.lbp-themed.lbp-themed .universe-icon {
    background: var(--joy-pink) !important;
    color: var(--joy-cream-soft) !important;
    border-radius: var(--joy-radius-pill) !important;
    width: 64px !important;
    height: 64px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 auto 0.8rem !important;
    border: 2px solid var(--joy-ink) !important;
    box-shadow: var(--joy-shadow-sm) !important;
}

body.lbp-themed.lbp-themed .universe-icon svg {
    width: 28px !important;
    height: 28px !important;
    color: var(--joy-cream-soft) !important;
    stroke: var(--joy-cream-soft) !important;
}

body.lbp-themed.lbp-themed .universe-card h3,
body.lbp-themed.lbp-themed .universe-card .universe-title {
    font-family: var(--joy-font-display) !important;
    font-size: 1.4rem !important;
    color: var(--joy-ink) !important;
    margin: 0 0 0.4rem !important;
    line-height: 1.1 !important;
}

body.lbp-themed.lbp-themed .universe-card p {
    font-family: var(--joy-font-body) !important;
    font-size: 0.9rem !important;
    color: var(--joy-ink-soft) !important;
    line-height: 1.5 !important;
    margin: 0 !important;
}

/* ============================================================
   11. EVENT BANNER - bg cobalt avec image rotated
   ============================================================ */
body.lbp-themed.lbp-themed .event-banner,
body.lbp-themed.lbp-themed .next-event {
    position: relative !important;
    background: var(--joy-cobalt) !important;
    color: var(--joy-cream-soft) !important;
    border-top: 4px solid var(--joy-ink) !important;
    border-bottom: 4px solid var(--joy-ink) !important;
    padding: 5rem 1.5rem !important;
    overflow: hidden;
    margin: 0 !important;
    border-radius: 0 !important;
}

body.lbp-themed.lbp-themed .event-banner::before {
    content: '';
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 9rem;
    aspect-ratio: 1;
    background-image: var(--joy-img-butterfly-orange);
    background-size: contain;
    background-repeat: no-repeat;
    pointer-events: none;
    animation: joy-wiggle 3s ease-in-out infinite;
    z-index: 1;
}

body.lbp-themed.lbp-themed .event-banner::after {
    content: '';
    position: absolute;
    bottom: -2rem;
    left: -2rem;
    width: 11rem;
    aspect-ratio: 1;
    background-image: var(--joy-img-marigold);
    background-size: contain;
    background-repeat: no-repeat;
    --rot: 12deg;
    animation: joy-float 7s ease-in-out infinite;
    pointer-events: none;
    z-index: 1;
}

body.lbp-themed.lbp-themed .event-banner-grid,
body.lbp-themed.lbp-themed .event-banner > .container {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 2.5rem !important;
    max-width: 1100px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    position: relative;
    z-index: 2;
    align-items: center;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .event-banner-grid,
    body.lbp-themed.lbp-themed .event-banner > .container {
        grid-template-columns: 1.2fr 1fr !important;
        gap: 4rem !important;
    }
}

body.lbp-themed.lbp-themed .event-banner h2,
body.lbp-themed.lbp-themed .event-banner .event-title {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-cream-soft) !important;
    font-size: clamp(2.4rem, 5vw, 4rem) !important;
    line-height: 0.95 !important;
    margin-bottom: 1.2rem !important;
    letter-spacing: -0.02em !important;
}

body.lbp-themed.lbp-themed .event-banner h2 em,
body.lbp-themed.lbp-themed .event-banner h2 i,
body.lbp-themed.lbp-themed .event-banner .event-title em,
body.lbp-themed.lbp-themed .event-banner .event-title i {
    color: var(--joy-pink) !important;
    font-style: italic !important;
}

body.lbp-themed.lbp-themed .event-banner .event-badge {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.4rem !important;
    background: var(--joy-yellow) !important;
    color: var(--joy-ink) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.4rem 1rem !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 700 !important;
    font-size: 0.78rem !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    box-shadow: var(--joy-shadow-sm) !important;
    margin-bottom: 1.2rem !important;
    transform: rotate(-2deg);
}

body.lbp-themed.lbp-themed .event-banner .event-meta {
    font-family: var(--joy-font-script) !important;
    color: var(--joy-marigold) !important;
    font-size: 1.5rem !important;
    margin-bottom: 0.6rem !important;
    line-height: 1 !important;
}

body.lbp-themed.lbp-themed .event-banner p {
    color: rgba(251, 246, 233, 0.9) !important;
    font-size: 1.05rem !important;
    line-height: 1.6 !important;
    margin-bottom: 1.4rem !important;
}

body.lbp-themed.lbp-themed .event-banner .event-link,
body.lbp-themed.lbp-themed .event-banner .event-cta,
body.lbp-themed.lbp-themed .event-banner a.btn {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
    background: var(--joy-pink) !important;
    color: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.85rem 1.5rem !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 700 !important;
    font-size: 0.95rem !important;
    text-decoration: none !important;
    box-shadow: var(--joy-shadow) !important;
    transition: transform 0.2s ease !important;
}

body.lbp-themed.lbp-themed .event-banner .event-link:hover,
body.lbp-themed.lbp-themed .event-banner a.btn:hover {
    transform: translateY(-4px) !important;
}

body.lbp-themed.lbp-themed .event-banner-image,
body.lbp-themed.lbp-themed .event-banner img:not([class*="icon"]):not([class*="bg-"]) {
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-lg) !important;
    box-shadow: var(--joy-shadow-marigold) !important;
    transform: rotate(3deg) !important;
    overflow: hidden !important;
    aspect-ratio: 4 / 3 !important;
    object-fit: cover !important;
    width: 100% !important;
    background: var(--joy-yellow);
}

/* ============================================================
   12. BOUTIQUES (LOCO) - cards rotation alterees
   ============================================================ */
body.lbp-themed.lbp-themed .stores {
    position: relative;
}

body.lbp-themed.lbp-themed .stores::before {
    content: '';
    position: absolute;
    bottom: 4rem;
    right: -3rem;
    width: 13rem;
    aspect-ratio: 1;
    background-image: var(--joy-img-peony);
    background-size: contain;
    background-repeat: no-repeat;
    --rot: -8deg;
    animation: joy-float 9s ease-in-out infinite;
    pointer-events: none;
    z-index: 0;
    opacity: 0.6;
}

body.lbp-themed.lbp-themed .stores-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
    gap: 1.5rem !important;
    max-width: var(--joy-container) !important;
    margin: 0 auto !important;
    padding: 0 1.5rem !important;
    position: relative;
    z-index: 1;
}

body.lbp-themed.lbp-themed .store-card {
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-lg) !important;
    box-shadow: var(--joy-shadow) !important;
    padding: 0 !important;
    overflow: hidden !important;
    transition: transform 0.3s ease !important;
}

body.lbp-themed.lbp-themed .stores-grid .store-card:nth-child(odd) { transform: rotate(-1deg); }
body.lbp-themed.lbp-themed .stores-grid .store-card:nth-child(even) { transform: rotate(1deg) translateY(1.5rem); }

body.lbp-themed.lbp-themed .store-card:hover {
    transform: rotate(0deg) translateY(-6px) !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .stores-grid .store-card:nth-child(even):hover {
        transform: rotate(0deg) translateY(calc(1.5rem - 6px)) !important;
    }
}

body.lbp-themed.lbp-themed .store-card-image,
body.lbp-themed.lbp-themed .store-card img {
    width: 100% !important;
    aspect-ratio: 4 / 3 !important;
    object-fit: cover !important;
    border-bottom: 2px solid var(--joy-ink) !important;
    display: block !important;
}

body.lbp-themed.lbp-themed .store-card-content,
body.lbp-themed.lbp-themed .store-info {
    padding: 1.4rem !important;
}

body.lbp-themed.lbp-themed .store-card h3,
body.lbp-themed.lbp-themed .store-card .store-name {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-ink) !important;
    font-size: 1.7rem !important;
    margin: 0 0 0.4rem !important;
    line-height: 1.1 !important;
}

body.lbp-themed.lbp-themed .store-card .store-address,
body.lbp-themed.lbp-themed .store-card .store-meta {
    font-family: var(--joy-font-body) !important;
    color: var(--joy-ink-soft) !important;
    font-size: 0.92rem !important;
    line-height: 1.5 !important;
    margin: 0 0 0.4rem !important;
}

body.lbp-themed.lbp-themed .store-card .store-hours {
    font-family: var(--joy-font-script) !important;
    color: var(--joy-cobalt) !important;
    font-size: 1.2rem !important;
    line-height: 1.2 !important;
    margin: 0.4rem 0 !important;
}

body.lbp-themed.lbp-themed .store-card .store-link {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.4rem !important;
    color: var(--joy-pink-deep) !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 700 !important;
    font-size: 0.85rem !important;
    text-decoration: none !important;
    margin-top: 0.5rem !important;
}

body.lbp-themed.lbp-themed .store-card .store-link:hover {
    color: var(--joy-pink) !important;
}


/* ============================================================
   13. FAQ - liste accordéon
   ============================================================ */
body.lbp-themed.lbp-themed .faq-list,
body.lbp-themed.lbp-themed .faq-accueil .faq-list {
    max-width: 880px !important;
    margin: 0 auto !important;
    padding: 0 1.5rem !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0.8rem !important;
}

body.lbp-themed.lbp-themed .faq-item {
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-md) !important;
    box-shadow: var(--joy-shadow-sm) !important;
    overflow: hidden !important;
    transition: transform 0.2s ease !important;
}

body.lbp-themed.lbp-themed .faq-list .faq-item:nth-child(4n+1) { background: var(--joy-yellow-tint) !important; }
body.lbp-themed.lbp-themed .faq-list .faq-item:nth-child(4n+2) { background: var(--joy-pink-tint) !important; }
body.lbp-themed.lbp-themed .faq-list .faq-item:nth-child(4n+3) { background: var(--joy-teal-tint) !important; }
body.lbp-themed.lbp-themed .faq-list .faq-item:nth-child(4n+4) { background: var(--joy-marigold-tint) !important; }

body.lbp-themed.lbp-themed .faq-question {
    width: 100% !important;
    background: transparent !important;
    border: none !important;
    padding: 1.25rem 1.4rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    cursor: pointer !important;
    text-align: left !important;
    color: var(--joy-ink) !important;
    gap: 1rem !important;
}

body.lbp-themed.lbp-themed .faq-question-text {
    font-family: var(--joy-font-display) !important;
    font-size: 1.3rem !important;
    color: var(--joy-ink) !important;
    line-height: 1.2 !important;
    flex: 1 !important;
    text-align: left !important;
}

body.lbp-themed.lbp-themed .faq-question-icon {
    background: var(--joy-pink) !important;
    color: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    width: 32px !important;
    height: 32px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 800 !important;
    font-size: 1.4rem !important;
    line-height: 1 !important;
    flex-shrink: 0 !important;
    transition: transform 0.25s ease, background 0.25s ease !important;
}

body.lbp-themed.lbp-themed .faq-item.open .faq-question-icon,
body.lbp-themed.lbp-themed .faq-item[open] .faq-question-icon {
    background: var(--joy-cobalt) !important;
    transform: rotate(45deg) !important;
}

body.lbp-themed.lbp-themed .faq-answer {
    max-height: 0;
    overflow: hidden;
    padding: 0 1.4rem !important;
    transition: max-height 0.3s ease, padding 0.3s ease !important;
}

body.lbp-themed.lbp-themed .faq-item.open .faq-answer,
body.lbp-themed.lbp-themed .faq-item[open] .faq-answer {
    max-height: 800px;
    padding: 0 1.4rem 1.4rem !important;
}

body.lbp-themed.lbp-themed .faq-answer p {
    font-family: var(--joy-font-body) !important;
    color: var(--joy-ink-soft) !important;
    line-height: 1.65 !important;
    margin: 0 0 0.7rem !important;
    font-size: 0.95rem !important;
}

/* ============================================================
   14. NEWSLETTER - card jaune rounded[3rem] avec marigold/anemone
   ============================================================ */
body.lbp-themed.lbp-themed .newsletter {
    padding: 0 1.5rem 3rem !important;
    background: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    max-width: var(--joy-container) !important;
    margin: 4rem auto 0 !important;
    overflow: visible !important;
    position: relative !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .newsletter {
        padding: 0 3rem 3rem !important;
    }
}

body.lbp-themed.lbp-themed .newsletter-inner,
body.lbp-themed.lbp-themed .newsletter > .container,
body.lbp-themed.lbp-themed .newsletter-content {
    position: relative !important;
    background: var(--joy-yellow) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: 3rem !important;
    box-shadow: var(--joy-shadow) !important;
    padding: clamp(2.5rem, 5vw, 5rem) clamp(1.5rem, 4vw, 4rem) !important;
    overflow: hidden !important;
    text-align: center !important;
    max-width: 1100px !important;
    margin: 0 auto !important;
}

body.lbp-themed.lbp-themed .newsletter-inner::before,
body.lbp-themed.lbp-themed .newsletter > .container::before,
body.lbp-themed.lbp-themed .newsletter-content::before {
    content: '';
    position: absolute;
    top: -3rem;
    left: -3rem;
    width: 14rem;
    aspect-ratio: 1;
    background-image: var(--joy-img-marigold);
    background-size: contain;
    background-repeat: no-repeat;
    animation: joy-spin-slow 30s linear infinite;
    pointer-events: none;
    z-index: 1;
}

body.lbp-themed.lbp-themed .newsletter-inner::after,
body.lbp-themed.lbp-themed .newsletter > .container::after,
body.lbp-themed.lbp-themed .newsletter-content::after {
    content: '';
    position: absolute;
    bottom: -2.5rem;
    right: -2.5rem;
    width: 16rem;
    aspect-ratio: 1;
    background-image: var(--joy-img-anemone);
    background-size: contain;
    background-repeat: no-repeat;
    --rot: 0deg;
    animation: joy-float 8s ease-in-out infinite;
    pointer-events: none;
    z-index: 1;
}

body.lbp-themed.lbp-themed .newsletter > * {
    position: relative;
    z-index: 2;
}

body.lbp-themed.lbp-themed .newsletter .section-label,
body.lbp-themed.lbp-themed .newsletter-eyebrow,
body.lbp-themed.lbp-themed .newsletter > .container > p:first-child {
    font-family: var(--joy-font-script) !important;
    color: var(--joy-pink) !important;
    font-size: 1.875rem !important;
    margin-bottom: 0.4rem !important;
    line-height: 1 !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    background: none !important;
    padding: 0 !important;
    border: none !important;
}

body.lbp-themed.lbp-themed .newsletter h2,
body.lbp-themed.lbp-themed .newsletter .section-title {
    font-family: var(--joy-font-display) !important;
    font-size: clamp(2.5rem, 6vw, 4.5rem) !important;
    color: var(--joy-ink) !important;
    line-height: 0.95 !important;
    margin: 0 0 1rem !important;
    letter-spacing: -0.02em !important;
}

body.lbp-themed.lbp-themed .newsletter h2 em {
    color: var(--joy-pink) !important;
    font-style: italic !important;
}

body.lbp-themed.lbp-themed .newsletter p,
body.lbp-themed.lbp-themed .newsletter .section-subtitle {
    font-family: var(--joy-font-body) !important;
    color: rgba(42, 26, 15, 0.7) !important;
    font-size: 1rem !important;
    line-height: 1.55 !important;
    margin: 0 auto 1.8rem !important;
    max-width: 540px;
}

body.lbp-themed.lbp-themed .newsletter form,
body.lbp-themed.lbp-themed .newsletter-form {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.75rem !important;
    max-width: 520px !important;
    margin: 0 auto !important;
}

body.lbp-themed.lbp-themed .newsletter input[type="email"],
body.lbp-themed.lbp-themed .newsletter-form input[type="email"] {
    flex: 1 !important;
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 1rem 1.5rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 1rem !important;
    color: var(--joy-ink) !important;
    box-shadow: none !important;
    width: 100% !important;
}

body.lbp-themed.lbp-themed .newsletter input[type="email"]::placeholder {
    color: rgba(42, 26, 15, 0.4) !important;
}

body.lbp-themed.lbp-themed .newsletter input[type="email"]:focus {
    outline: none !important;
    box-shadow: 0 0 0 4px rgba(233, 30, 99, 0.3) !important;
}

body.lbp-themed.lbp-themed .newsletter button[type="submit"],
body.lbp-themed.lbp-themed .newsletter .btn-primary,
body.lbp-themed.lbp-themed .newsletter-form button {
    background: var(--joy-ink) !important;
    color: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 1rem 2rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    box-shadow: var(--joy-shadow-pink) !important;
    transition: transform 0.2s ease !important;
    cursor: pointer !important;
    white-space: nowrap;
}

body.lbp-themed.lbp-themed .newsletter button[type="submit"]:hover,
body.lbp-themed.lbp-themed .newsletter .btn-primary:hover,
body.lbp-themed.lbp-themed .newsletter-form button:hover {
    transform: translateY(-4px) !important;
}

/* ============================================================
   15. INSTAGRAM FEED - styles supprimes (sur demande utilisateur)
   ============================================================ */

/* ============================================================
   16. FOOTER - simple inline Casa Flora style
   ============================================================ */
body.lbp-themed.lbp-themed footer,
body.lbp-themed.lbp-themed .site-footer {
    background: var(--joy-ink) !important;
    color: var(--joy-cream-soft) !important;
    border-top: 4px solid var(--joy-ink) !important;
    padding: 3rem 1.5rem !important;
    margin: 0 !important;
    border-radius: 0 !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed footer,
    body.lbp-themed.lbp-themed .site-footer {
        padding: 3rem 3rem !important;
    }
}

body.lbp-themed.lbp-themed footer .footer-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)) !important;
    gap: 2rem !important;
    max-width: var(--joy-container) !important;
    margin: 0 auto 2rem !important;
}

body.lbp-themed.lbp-themed footer .footer-brand {
    /* nothing special */
}

body.lbp-themed.lbp-themed footer .footer-logo {
    font-family: var(--joy-font-script) !important;
    color: var(--joy-pink) !important;
    font-size: 2.5rem !important;
    line-height: 1 !important;
    text-decoration: none !important;
    display: inline-block !important;
    margin-bottom: 0.8rem !important;
}

body.lbp-themed.lbp-themed footer .footer-logo img {
    width: auto !important;
    filter: brightness(0) invert(1) saturate(0) sepia(1) hue-rotate(310deg) brightness(0.9);
}

body.lbp-themed.lbp-themed footer .footer-brand p {
    color: rgba(251, 246, 233, 0.75) !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.95rem !important;
    line-height: 1.6 !important;
    margin: 0 0 1rem !important;
}

body.lbp-themed.lbp-themed footer h3,
body.lbp-themed.lbp-themed footer h4,
body.lbp-themed.lbp-themed footer .footer-column h4,
body.lbp-themed.lbp-themed footer .footer-title {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-pink) !important;
    font-size: 1.7rem !important;
    margin: 0 0 0.8rem !important;
    line-height: 1 !important;
    letter-spacing: -0.01em !important;
    text-transform: none !important;
}

body.lbp-themed.lbp-themed footer ul {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

body.lbp-themed.lbp-themed footer ul li {
    margin-bottom: 0.5rem !important;
}

body.lbp-themed.lbp-themed footer a {
    color: rgba(251, 246, 233, 0.85) !important;
    text-decoration: none !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.92rem !important;
    transition: color 0.18s ease !important;
}

body.lbp-themed.lbp-themed footer a:hover {
    color: var(--joy-pink) !important;
}

body.lbp-themed.lbp-themed footer .social-links {
    display: flex !important;
    gap: 1rem !important;
    margin-top: 1rem !important;
}

body.lbp-themed.lbp-themed footer .social-links a {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    height: auto !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: rgba(251, 246, 233, 0.85) !important;
    padding: 0 !important;
}

body.lbp-themed.lbp-themed footer .social-links a:hover {
    color: var(--joy-pink) !important;
    transform: none !important;
}

body.lbp-themed.lbp-themed footer .social-links svg {
    width: 22px !important;
    height: 22px !important;
    color: inherit !important;
    stroke: currentColor !important;
    fill: currentColor !important;
}

body.lbp-themed.lbp-themed footer .footer-bottom {
    border-top: 2px dashed rgba(251, 246, 233, 0.20) !important;
    padding-top: 1.5rem !important;
    max-width: var(--joy-container) !important;
    margin: 0 auto !important;
    text-align: center !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0.4rem !important;
}

body.lbp-themed.lbp-themed footer .footer-bottom p {
    color: rgba(251, 246, 233, 0.6) !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.78rem !important;
    margin: 0 !important;
}


/* ============================================================
   17. PAGE BOUTIQUE - filtres tabs + grille produits
   ============================================================ */
body.lbp-themed.lbp-themed .boutique-layout {
    max-width: var(--joy-container) !important;
    margin: 0 auto !important;
    padding: 0 !important;
}

/* Banner-boutique = transparent (titre + p) */
body.lbp-themed.lbp-themed .banner-boutique,
body.lbp-themed.lbp-themed .boutique-banner {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    padding: 4rem 1.5rem 2rem !important;
    text-align: center !important;
    max-width: 1100px !important;
    margin: 0 auto !important;
}

body.lbp-themed.lbp-themed .banner-boutique h1,
body.lbp-themed.lbp-themed .boutique-banner h1,
body.lbp-themed.lbp-themed .page-boutique h1 {
    font-family: var(--joy-font-display) !important;
    font-size: clamp(3rem, 8vw, 6rem) !important;
    color: var(--joy-ink) !important;
    line-height: 0.9 !important;
    letter-spacing: -0.03em !important;
    margin: 0 0 1rem !important;
}

body.lbp-themed.lbp-themed .banner-boutique h1 em,
body.lbp-themed.lbp-themed .boutique-banner h1 em {
    color: var(--joy-pink) !important;
    font-style: italic !important;
}

body.lbp-themed.lbp-themed .banner-boutique p,
body.lbp-themed.lbp-themed .boutique-banner p {
    font-family: var(--joy-font-body) !important;
    color: var(--joy-ink-soft) !important;
    font-size: 1.1rem !important;
    line-height: 1.55 !important;
    max-width: 640px !important;
    margin: 0 auto !important;
}

/* === FILTERS BAR sticky === */
body.lbp-themed.lbp-themed .boutique-filters-bar {
    position: sticky !important;
    top: 0 !important;
    z-index: 20 !important;
    background: rgba(251, 246, 233, 0.95) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
    border-top: 2px solid var(--joy-ink) !important;
    border-bottom: 2px solid var(--joy-ink) !important;
    padding: 1rem 1.5rem !important;
    margin: 0 0 2rem !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.8rem !important;
    align-items: center !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .boutique-filters-bar {
        padding: 1rem 3rem !important;
    }
}

/* TABS catégories */
body.lbp-themed.lbp-themed .boutique-tabs {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.5rem !important;
    flex: 1 !important;
}

body.lbp-themed.lbp-themed .boutique-tab {
    background: var(--joy-cream-soft) !important;
    color: var(--joy-ink) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.45rem 1rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.85rem !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: all 0.18s ease !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.3rem !important;
    line-height: 1.3 !important;
    box-shadow: var(--joy-shadow-sm) !important;
}

body.lbp-themed.lbp-themed .boutique-tab:hover {
    background: var(--joy-ink) !important;
    color: var(--joy-cream-soft) !important;
    transform: translate(-1px, -1px);
}

body.lbp-themed.lbp-themed .boutique-tab.active {
    background: var(--joy-ink) !important;
    color: var(--joy-cream-soft) !important;
}

/* TOOLS group à droite */
body.lbp-themed.lbp-themed .boutique-tools {
    display: flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
    margin-left: auto !important;
    flex-wrap: wrap !important;
}

body.lbp-themed.lbp-themed .boutique-search-form {
    display: flex !important;
    align-items: center !important;
    gap: 0.4rem !important;
    position: relative !important;
}

body.lbp-themed.lbp-themed .boutique-search-toggle {
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    width: 38px !important;
    height: 38px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    color: var(--joy-ink) !important;
    box-shadow: var(--joy-shadow-sm) !important;
    transition: background 0.18s ease, transform 0.18s ease !important;
}

body.lbp-themed.lbp-themed .boutique-search-toggle:hover {
    background: var(--joy-ink) !important;
    color: var(--joy-cream-soft) !important;
}

body.lbp-themed.lbp-themed .boutique-search-toggle svg {
    width: 16px !important;
    height: 16px !important;
    stroke: currentColor !important;
    color: inherit !important;
}

body.lbp-themed.lbp-themed .boutique-search-input {
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.45rem 1rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.88rem !important;
    color: var(--joy-ink) !important;
    width: 220px !important;
    max-width: 220px !important;
    height: 38px !important;
    transition: width 0.25s ease !important;
    box-shadow: var(--joy-shadow-sm) !important;
}

body.lbp-themed.lbp-themed .boutique-search-input.collapsed {
    width: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
}

body.lbp-themed.lbp-themed .boutique-search-input:focus {
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(233, 30, 99, 0.3), var(--joy-shadow-sm) !important;
}

/* SORT select */
body.lbp-themed.lbp-themed .boutique-sort-select {
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.45rem 2.2rem 0.45rem 1rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.85rem !important;
    color: var(--joy-ink) !important;
    cursor: pointer !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%232A1A0F' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E") !important;
    background-position: right 0.85rem center !important;
    background-repeat: no-repeat !important;
    box-shadow: var(--joy-shadow-sm) !important;
    height: 38px !important;
}

body.lbp-themed.lbp-themed .boutique-sort-select:focus {
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(233, 30, 99, 0.3), var(--joy-shadow-sm) !important;
}

/* COLS toggle */
body.lbp-themed.lbp-themed .boutique-cols-toggle {
    display: inline-flex !important;
    align-items: center !important;
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 3px !important;
    gap: 2px !important;
    box-shadow: var(--joy-shadow-sm) !important;
    height: 38px !important;
}

body.lbp-themed.lbp-themed .boutique-cols-toggle button,
body.lbp-themed.lbp-themed .boutique-cols-btn {
    background: transparent !important;
    border: none !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.25rem 0.7rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.78rem !important;
    color: var(--joy-ink) !important;
    cursor: pointer !important;
    line-height: 1 !important;
    transition: background 0.18s ease, color 0.18s ease !important;
    box-shadow: none !important;
    height: 28px !important;
    display: inline-flex !important;
    align-items: center !important;
}

body.lbp-themed.lbp-themed .boutique-cols-toggle button.active,
body.lbp-themed.lbp-themed .boutique-cols-btn.active {
    background: var(--joy-ink) !important;
    color: var(--joy-cream-soft) !important;
}

body.lbp-themed.lbp-themed .boutique-cols-toggle svg {
    width: 14px;
    height: 14px;
    stroke: currentColor;
    color: inherit;
}

/* RESET button */
body.lbp-themed.lbp-themed .boutique-reset {
    background: var(--joy-coral) !important;
    color: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.45rem 1rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.82rem !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    box-shadow: var(--joy-shadow-sm) !important;
    transition: transform 0.18s ease !important;
    height: 38px !important;
    display: inline-flex !important;
    align-items: center !important;
}

body.lbp-themed.lbp-themed .boutique-reset:hover {
    transform: translate(-1px, -1px);
}

/* COMPTEUR de produits */
body.lbp-themed.lbp-themed .boutique-count,
body.lbp-themed.lbp-themed .products-count,
body.lbp-themed.lbp-themed .boutique-count-info {
    font-family: var(--joy-font-script) !important;
    color: var(--joy-cobalt) !important;
    font-size: 1.5rem !important;
    line-height: 1.2 !important;
    margin: 0 0 0 auto !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}

body.lbp-themed.lbp-themed .boutique-main {
    padding: 0 1.5rem 4rem !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .boutique-main {
        padding: 0 3rem 4rem !important;
    }
}

/* Support data-cols pour grille (mobile fallback) */
@media (min-width: 720px) {
    body.lbp-themed.lbp-themed .products-grid[data-cols="2"] {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    body.lbp-themed.lbp-themed .products-grid[data-cols="3"] {
        grid-template-columns: repeat(3, 1fr) !important;
    }
    body.lbp-themed.lbp-themed .products-grid[data-cols="4"] {
        grid-template-columns: repeat(4, 1fr) !important;
    }
}

/* ============================================================
   18. FICHE PRODUIT
   ============================================================ */
body.lbp-themed.lbp-themed .product-detail,
body.lbp-themed.lbp-themed .product-detail-page,
body.lbp-themed.lbp-themed .fiche-produit {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
    max-width: var(--joy-container) !important;
    margin: 0 auto !important;
    padding: 2rem 1.5rem 4rem !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .product-detail,
    body.lbp-themed.lbp-themed .product-detail-page,
    body.lbp-themed.lbp-themed .fiche-produit {
        grid-template-columns: 1fr 1fr !important;
        gap: 4rem !important;
        padding: 3rem 3rem 5rem !important;
    }
}

/* GALERIE */
body.lbp-themed.lbp-themed .product-gallery,
body.lbp-themed.lbp-themed .product-detail-gallery {
    position: relative !important;
}

body.lbp-themed.lbp-themed .product-main-media {
    position: relative !important;
    aspect-ratio: 1 / 1 !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: 2.5rem !important;
    box-shadow: var(--joy-shadow) !important;
    overflow: hidden !important;
    background: var(--joy-yellow) !important;
}

/* Color variants for product main media */
body.lbp-themed.lbp-themed .product-main-media[data-joy-bg="pink"]     { background: var(--joy-pink)     !important; }
body.lbp-themed.lbp-themed .product-main-media[data-joy-bg="teal"]     { background: var(--joy-teal)     !important; }
body.lbp-themed.lbp-themed .product-main-media[data-joy-bg="cobalt"]   { background: var(--joy-cobalt)   !important; }
body.lbp-themed.lbp-themed .product-main-media[data-joy-bg="marigold"] { background: var(--joy-marigold) !important; }
body.lbp-themed.lbp-themed .product-main-media[data-joy-bg="green"]    { background: var(--joy-green)    !important; }
body.lbp-themed.lbp-themed .product-main-media[data-joy-bg="coral"]    { background: var(--joy-coral)    !important; }
body.lbp-themed.lbp-themed .product-main-media[data-joy-bg="purple"]   { background: var(--joy-purple)   !important; }

body.lbp-themed.lbp-themed .product-main-media img,
body.lbp-themed.lbp-themed .product-main-image {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    padding: 3rem !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    display: block !important;
    mix-blend-mode: multiply;
}

body.lbp-themed.lbp-themed .product-tag {
    position: absolute !important;
    top: 1rem !important;
    left: 1rem !important;
    background: var(--joy-cream-soft) !important;
    border: none !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.3rem 0.85rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.65rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.15em !important;
    color: var(--joy-ink) !important;
    z-index: 5 !important;
    box-shadow: none !important;
}

/* Joy gallery butterfly (injected by JS) */
body.lbp-themed.lbp-themed .joy-gallery-butterfly {
    position: absolute !important;
    bottom: 1rem !important;
    right: 1rem !important;
    width: 5rem !important;
    aspect-ratio: 1 !important;
    z-index: 6 !important;
    pointer-events: none !important;
    animation: joy-wiggle 3s ease-in-out infinite;
}

body.lbp-themed.lbp-themed .joy-gallery-butterfly img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    display: block !important;
    background: transparent !important;
    padding: 0 !important;
    border: none !important;
    box-shadow: none !important;
    mix-blend-mode: normal !important;
}

/* Thumbnails */
body.lbp-themed.lbp-themed .product-thumbnails,
body.lbp-themed.lbp-themed .product-gallery-thumbs {
    display: flex !important;
    gap: 0.6rem !important;
    margin-top: 1rem !important;
    flex-wrap: wrap !important;
}

body.lbp-themed.lbp-themed .product-thumbnails .thumbnail,
body.lbp-themed.lbp-themed .product-gallery-thumbs button,
body.lbp-themed.lbp-themed .product-thumb {
    width: 80px !important;
    height: 80px !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: 1rem !important;
    overflow: hidden !important;
    background: var(--joy-cream-soft) !important;
    cursor: pointer !important;
    transition: transform 0.18s ease, box-shadow 0.18s ease !important;
    padding: 0.5rem !important;
}

body.lbp-themed.lbp-themed .product-thumbnails .thumbnail:hover,
body.lbp-themed.lbp-themed .product-thumb:hover {
    transform: translateY(-4px);
}

body.lbp-themed.lbp-themed .product-thumbnails .thumbnail.active,
body.lbp-themed.lbp-themed .product-thumb.active,
body.lbp-themed.lbp-themed .product-thumbnails .thumbnail[aria-selected="true"] {
    box-shadow: 0 0 0 4px var(--joy-pink), var(--joy-shadow-sm) !important;
}

body.lbp-themed.lbp-themed .product-thumbnails img,
body.lbp-themed.lbp-themed .product-thumb img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    display: block !important;
    mix-blend-mode: multiply;
}

/* Media nav arrows */
body.lbp-themed.lbp-themed .media-nav,
body.lbp-themed.lbp-themed .gallery-nav-btn {
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    width: 44px !important;
    height: 44px !important;
    color: var(--joy-ink) !important;
    box-shadow: var(--joy-shadow-sm) !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.18s ease !important;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 4;
}

body.lbp-themed.lbp-themed .media-nav:hover,
body.lbp-themed.lbp-themed .gallery-nav-btn:hover {
    background: var(--joy-ink) !important;
    color: var(--joy-cream-soft) !important;
}

body.lbp-themed.lbp-themed .media-nav.media-prev { left: 0.6rem; }
body.lbp-themed.lbp-themed .media-nav.media-next { right: 0.6rem; }

body.lbp-themed.lbp-themed .media-counter {
    position: absolute !important;
    bottom: 1rem !important;
    left: 1rem !important;
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.3rem 0.85rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.7rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.12em !important;
    color: var(--joy-ink) !important;
    z-index: 5 !important;
    box-shadow: none !important;
}


/* === FICHE PRODUIT - INFO COTE DROIT === */
body.lbp-themed.lbp-themed .product-detail-info,
body.lbp-themed.lbp-themed .product-info-detail {
    padding: 1rem 0 !important;
}

body.lbp-themed.lbp-themed .product-detail .breadcrumb,
body.lbp-themed.lbp-themed .product-breadcrumb {
    font-family: var(--joy-font-body) !important;
    font-size: 0.85rem !important;
    color: var(--joy-ink-soft) !important;
    margin: 0 0 1rem !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.4rem !important;
    align-items: center !important;
}

body.lbp-themed.lbp-themed .product-detail .breadcrumb a {
    color: var(--joy-cobalt) !important;
}

body.lbp-themed.lbp-themed .product-detail .breadcrumb a:hover {
    color: var(--joy-pink) !important;
}

body.lbp-themed.lbp-themed .product-tagline,
body.lbp-themed.lbp-themed .product-detail .product-tagline,
body.lbp-themed.lbp-themed .product-maker {
    font-family: var(--joy-font-script) !important;
    color: var(--joy-cobalt) !important;
    font-size: 1.875rem !important;
    line-height: 1 !important;
    margin: 0 0 0.4rem !important;
    font-weight: 500 !important;
}

body.lbp-themed.lbp-themed .product-detail h1,
body.lbp-themed.lbp-themed .product-detail-title {
    font-family: var(--joy-font-display) !important;
    font-size: clamp(3rem, 6vw, 4.5rem) !important;
    color: var(--joy-ink) !important;
    line-height: 0.95 !important;
    margin: 0 0 1rem !important;
    letter-spacing: -0.03em !important;
}

body.lbp-themed.lbp-themed .product-detail h1 em {
    color: var(--joy-pink) !important;
    font-style: italic !important;
}

body.lbp-themed.lbp-themed .product-meta,
body.lbp-themed.lbp-themed .product-detail .product-meta {
    font-family: var(--joy-font-body) !important;
    font-size: 0.875rem !important;
    color: var(--joy-ink-soft) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.12em !important;
    margin: 0 0 1rem !important;
    font-weight: 700 !important;
}

body.lbp-themed.lbp-themed .product-meta::before {
    content: '✦  ';
    color: var(--joy-marigold);
}

body.lbp-themed.lbp-themed .product-detail .product-price,
body.lbp-themed.lbp-themed .product-detail-price {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-pink) !important;
    font-size: 2.5rem !important;
    line-height: 1 !important;
    margin: 0 0 1.4rem !important;
    font-weight: 400 !important;
    letter-spacing: -0.02em !important;
}

body.lbp-themed.lbp-themed .product-detail .old-price {
    text-decoration: line-through !important;
    color: var(--joy-ink-mute) !important;
    font-family: var(--joy-font-body) !important;
    font-size: 1.4rem !important;
    margin-right: 0.5rem !important;
    font-weight: 400 !important;
}

body.lbp-themed.lbp-themed .product-long-description,
body.lbp-themed.lbp-themed .product-description {
    font-family: var(--joy-font-body) !important;
    color: var(--joy-ink-soft) !important;
    font-size: 1.05rem !important;
    line-height: 1.65 !important;
    margin: 0 0 1.5rem !important;
    max-width: 28rem !important;
}

/* Liste features avec border-y */
body.lbp-themed.lbp-themed .product-features,
body.lbp-themed.lbp-themed .product-detail-features {
    list-style: none !important;
    padding: 1.25rem 0 !important;
    margin: 1.5rem 0 !important;
    border-top: 2px solid rgba(42, 26, 15, 0.20) !important;
    border-bottom: 2px solid rgba(42, 26, 15, 0.20) !important;
}

body.lbp-themed.lbp-themed .product-features li {
    position: relative !important;
    padding: 0.4rem 0 0.4rem 1.5rem !important;
    font-family: var(--joy-font-body) !important;
    color: var(--joy-ink) !important;
    font-size: 0.95rem !important;
    line-height: 1.5 !important;
}

body.lbp-themed.lbp-themed .product-features li::before {
    content: '✿';
    position: absolute;
    left: 0;
    top: 0.4rem;
    color: var(--joy-pink);
    font-size: 1rem;
}

/* Reassurance grid (paiement secure, livraison, etc) */
body.lbp-themed.lbp-themed .reassurance-grid,
body.lbp-themed.lbp-themed .product-reassurance {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)) !important;
    gap: 0.8rem !important;
    margin: 1.5rem 0 !important;
}

body.lbp-themed.lbp-themed .reassurance-item {
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-md) !important;
    padding: 0.9rem 1rem !important;
    box-shadow: var(--joy-shadow-sm) !important;
    display: flex !important;
    align-items: center !important;
    gap: 0.6rem !important;
}

body.lbp-themed.lbp-themed .reassurance-grid .reassurance-item:nth-child(3n+1) { background: var(--joy-yellow-tint) !important; }
body.lbp-themed.lbp-themed .reassurance-grid .reassurance-item:nth-child(3n+2) { background: var(--joy-pink-tint) !important; }
body.lbp-themed.lbp-themed .reassurance-grid .reassurance-item:nth-child(3n+3) { background: var(--joy-teal-tint) !important; }

body.lbp-themed.lbp-themed .reassurance-item svg {
    width: 18px !important;
    height: 18px !important;
    color: var(--joy-pink) !important;
    stroke: var(--joy-pink) !important;
    flex-shrink: 0 !important;
}

body.lbp-themed.lbp-themed .reassurance-item span {
    font-family: var(--joy-font-body) !important;
    font-size: 0.82rem !important;
    color: var(--joy-ink) !important;
    font-weight: 600 !important;
    line-height: 1.3 !important;
}

/* === VARIANTS === */
body.lbp-themed.lbp-themed .product-variants,
body.lbp-themed.lbp-themed .variants-section {
    margin: 1.5rem 0 !important;
}

body.lbp-themed.lbp-themed .variant-info {
    font-family: var(--joy-font-body) !important;
    font-weight: 700 !important;
    font-size: 0.78rem !important;
    color: var(--joy-ink) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    margin: 0 0 0.6rem !important;
    display: flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
}

body.lbp-themed.lbp-themed .variant-info > span:last-child {
    font-family: var(--joy-font-script) !important;
    color: var(--joy-cobalt) !important;
    font-size: 1.3rem !important;
    font-weight: 500 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    line-height: 1 !important;
    margin-left: auto !important;
}

body.lbp-themed.lbp-themed .variant-options,
body.lbp-themed.lbp-themed .variant-buttons {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.5rem !important;
    margin-bottom: 1rem !important;
}

body.lbp-themed.lbp-themed .variant-option-btn {
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    color: var(--joy-ink) !important;
    padding: 0.5rem 1rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.85rem !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: all 0.18s ease !important;
    box-shadow: var(--joy-shadow-sm) !important;
    line-height: 1.3 !important;
}

body.lbp-themed.lbp-themed .variant-option-btn:hover {
}

body.lbp-themed.lbp-themed .variant-option-btn.active,
body.lbp-themed.lbp-themed .variant-option-btn[aria-pressed="true"] {
    color: var(--joy-cream-soft) !important;
}

body.lbp-themed.lbp-themed .variant-option-btn:disabled {
    opacity: 0.45 !important;
    cursor: not-allowed !important;
    text-decoration: line-through !important;
}

body.lbp-themed.lbp-themed .variant-color-swatch {
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    width: 38px !important;
    height: 38px !important;
    padding: 0 !important;
    min-width: auto !important;
    overflow: hidden !important;
    cursor: pointer !important;
    transition: all 0.18s ease !important;
    box-shadow: var(--joy-shadow-sm) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

body.lbp-themed.lbp-themed .variant-color-swatch:hover,
body.lbp-themed.lbp-themed .variant-color-swatch.active {
    box-shadow: 0 0 0 3px var(--joy-pink), var(--joy-shadow-sm) !important;
}

body.lbp-themed.lbp-themed .variant-color-image {
    width: 56px !important;
    height: 56px !important;
}

body.lbp-themed.lbp-themed .variant-color-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: 0 !important;
}

/* CTA Personnaliser */
body.lbp-themed.lbp-themed .btn-perso-cta,
body.lbp-themed.lbp-themed .btn-personnaliser {
    width: 100% !important;
    background: var(--joy-marigold) !important;
    color: var(--joy-ink) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.85rem 1.5rem !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 700 !important;
    font-size: 0.95rem !important;
    cursor: pointer !important;
    box-shadow: var(--joy-shadow-sm) !important;
    transition: transform 0.2s ease !important;
    margin: 1rem 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.5rem !important;
    text-decoration: none !important;
}

body.lbp-themed.lbp-themed .btn-perso-cta:hover,
body.lbp-themed.lbp-themed .btn-personnaliser:hover {
    transform: translateY(-3px) !important;
}

/* Quantite + add-to-cart */
body.lbp-themed.lbp-themed .qty-and-cart,
body.lbp-themed.lbp-themed .product-actions {
    display: flex !important;
    gap: 0.8rem !important;
    align-items: center !important;
    margin: 1.5rem 0 !important;
    flex-wrap: wrap !important;
}

body.lbp-themed.lbp-themed .qty-ctrl,
body.lbp-themed.lbp-themed .quantity-control {
    background: transparent !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    display: inline-flex !important;
    align-items: center !important;
    overflow: hidden !important;
    box-shadow: var(--joy-shadow-sm) !important;
    height: 52px !important;
}

body.lbp-themed.lbp-themed .qty-btn,
body.lbp-themed.lbp-themed .qty-decrease,
body.lbp-themed.lbp-themed .qty-increase {
    width: 44px !important;
    height: 100% !important;
    background: transparent !important;
    border: none !important;
    color: var(--joy-ink) !important;
    font-family: var(--joy-font-body) !important;
    font-size: 1.2rem !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: background 0.15s ease !important;
}

body.lbp-themed.lbp-themed .qty-btn:hover {
    background: var(--joy-pink-tint) !important;
}

body.lbp-themed.lbp-themed .qty-input,
body.lbp-themed.lbp-themed .qty-ctrl input {
    width: 40px !important;
    background: transparent !important;
    border: none !important;
    text-align: center !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 700 !important;
    font-size: 0.95rem !important;
    color: var(--joy-ink) !important;
    height: 100% !important;
}

body.lbp-themed.lbp-themed .add-to-cart,
body.lbp-themed.lbp-themed .btn-add-cart {
    flex: 1 !important;
    background: var(--joy-pink) !important;
    color: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.85rem 1.5rem !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 700 !important;
    font-size: 0.98rem !important;
    cursor: pointer !important;
    box-shadow: var(--joy-shadow) !important;
    transition: transform 0.2s ease !important;
    height: 52px !important;
    min-width: 200px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.5rem !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}

body.lbp-themed.lbp-themed .add-to-cart:hover {
    transform: translateY(-4px) !important;
}

body.lbp-themed.lbp-themed .btn-notify,
body.lbp-themed.lbp-themed .notify-btn {
    flex: 1 !important;
    background: var(--joy-cobalt) !important;
    color: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.85rem 1.5rem !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    box-shadow: var(--joy-shadow) !important;
    height: 52px !important;
    transition: transform 0.2s ease !important;
}

body.lbp-themed.lbp-themed .btn-notify:hover {
    transform: translateY(-4px) !important;
}

/* Free shipping note */
body.lbp-themed.lbp-themed .free-shipping-note,
body.lbp-themed.lbp-themed .product-shipping-note {
    font-family: var(--joy-font-script) !important;
    color: var(--joy-cobalt) !important;
    font-size: 1.5rem !important;
    margin: 1rem 0 !important;
    line-height: 1.2 !important;
    display: flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
}

body.lbp-themed.lbp-themed .free-shipping-note svg {
    width: 20px !important;
    height: 20px !important;
    color: var(--joy-marigold) !important;
    stroke: var(--joy-marigold) !important;
    fill: none !important;
}


/* ============================================================
   19. PANIER
   ============================================================ */
body.lbp-themed.lbp-themed .cart-page,
body.lbp-themed.lbp-themed .panier-page {
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 1rem 1.5rem 4rem !important;
}

body.lbp-themed.lbp-themed .cart-page h1,
body.lbp-themed.lbp-themed .panier-page h1 {
    font-family: var(--joy-font-display) !important;
    text-align: center !important;
    color: var(--joy-ink) !important;
    font-size: clamp(2.5rem, 5vw, 4rem) !important;
    margin: 0 0 2rem !important;
}

body.lbp-themed.lbp-themed .cart-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
}

@media (min-width: 900px) {
    body.lbp-themed.lbp-themed .cart-grid {
        grid-template-columns: 1.5fr 1fr !important;
        gap: 2rem !important;
    }
}

body.lbp-themed.lbp-themed .cart-items {
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-lg) !important;
    box-shadow: var(--joy-shadow) !important;
    padding: 1.5rem !important;
}

body.lbp-themed.lbp-themed .cart-item {
    display: grid !important;
    grid-template-columns: 70px 1fr auto !important;
    gap: 1.2rem !important;
    padding: 1rem 0 !important;
    align-items: center !important;
}

body.lbp-themed.lbp-themed .cart-item:last-child {
    border-bottom: none !important;
}

body.lbp-themed.lbp-themed .cart-item-image {
    width: 100px !important;
    height: 100px !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-md) !important;
    overflow: hidden !important;
    background: var(--joy-yellow-tint) !important;
    padding: 0.5rem !important;
}

body.lbp-themed.lbp-themed .cart-item-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    mix-blend-mode: multiply;
}

body.lbp-themed.lbp-themed .cart-item-name,
body.lbp-themed.lbp-themed .cart-item h3 {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-ink) !important;
    font-size: 1.3rem !important;
    margin: 0 0 0.3rem !important;
    line-height: 1.1 !important;
}

body.lbp-themed.lbp-themed .cart-item-price {
    font-family: var(--joy-font-script) !important;
    color: var(--joy-pink-deep) !important;
    font-size: 1.3rem !important;
    line-height: 1 !important;
}

body.lbp-themed.lbp-themed .cart-item-meta {
    font-family: var(--joy-font-body) !important;
    font-size: 0.85rem !important;
    color: var(--joy-ink-soft) !important;
    margin: 0.3rem 0 !important;
}

body.lbp-themed.lbp-themed .cart-item-remove,
body.lbp-themed.lbp-themed .btn-remove {
    background: var(--joy-coral) !important;
    color: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    width: 38px !important;
    height: 38px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    box-shadow: var(--joy-shadow-sm) !important;
    transition: transform 0.18s ease !important;
}

body.lbp-themed.lbp-themed .cart-item-remove:hover {
    transform: translate(-1px, -1px);
}

body.lbp-themed.lbp-themed .cart-item-remove svg {
    width: 14px;
    height: 14px;
    stroke: currentColor;
    color: inherit;
}

body.lbp-themed.lbp-themed .move-wishlist-form button {
    background: transparent !important;
    border: none !important;
    color: var(--joy-cobalt) !important;
    font-family: var(--joy-font-script) !important;
    font-size: 1.15rem !important;
    text-decoration: underline !important;
    text-decoration-color: var(--joy-marigold) !important;
    text-decoration-thickness: 2px !important;
    text-underline-offset: 3px !important;
    cursor: pointer !important;
    padding: 0.3rem 0 !important;
    box-shadow: none !important;
}

body.lbp-themed.lbp-themed .move-wishlist-form button:hover {
    color: var(--joy-pink) !important;
}

/* Cart summary */
body.lbp-themed.lbp-themed .cart-summary {
    background: var(--joy-yellow-tint) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-lg) !important;
    box-shadow: var(--joy-shadow) !important;
    padding: 1.8rem !important;
    height: fit-content;
    position: sticky;
    top: 100px;
}

body.lbp-themed.lbp-themed .cart-summary h2,
body.lbp-themed.lbp-themed .cart-summary h3 {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-ink) !important;
    font-size: 1.6rem !important;
    margin: 0 0 1rem !important;
}

body.lbp-themed.lbp-themed .summary-row {
    display: flex !important;
    justify-content: space-between !important;
    padding: 0.5rem 0 !important;
    font-family: var(--joy-font-body) !important;
    color: var(--joy-ink) !important;
    font-size: 0.95rem !important;
}

body.lbp-themed.lbp-themed .summary-row.total {
    border-top: 2px solid var(--joy-ink) !important;
    padding-top: 0.8rem !important;
    margin-top: 0.5rem !important;
    font-family: var(--joy-font-display) !important;
    font-size: 1.6rem !important;
    color: var(--joy-pink) !important;
}

body.lbp-themed.lbp-themed .cart-actions {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.7rem !important;
    margin-top: 1.5rem !important;
}

body.lbp-themed.lbp-themed .cart-summary .btn-primary,
body.lbp-themed.lbp-themed .cart-checkout-btn {
    background: var(--joy-pink) !important;
    color: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 1rem 1.5rem !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 700 !important;
    font-size: 1rem !important;
    box-shadow: var(--joy-shadow) !important;
    text-decoration: none !important;
    text-align: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
}

body.lbp-themed.lbp-themed .cart-continue-btn {
    background: transparent !important;
    color: var(--joy-ink) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.85rem 1.5rem !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    text-align: center;
    box-shadow: var(--joy-shadow-sm) !important;
}

body.lbp-themed.lbp-themed .promo-applied {
    background: var(--joy-green-tint) !important;
    border: 2px solid var(--joy-green) !important;
    border-radius: var(--joy-radius-md) !important;
    padding: 0.8rem 1rem !important;
    font-family: var(--joy-font-body) !important;
    color: var(--joy-green-deep) !important;
    font-size: 0.9rem !important;
    margin: 0.8rem 0 !important;
    box-shadow: var(--joy-shadow-sm) !important;
}

body.lbp-themed.lbp-themed .cart-empty {
    background: transparent !important;
    border: 2px dashed var(--joy-ink) !important;
    border-radius: var(--joy-radius-lg) !important;
    padding: 4rem 2rem !important;
    text-align: center !important;
    color: var(--joy-ink-soft) !important;
}

/* ============================================================
   20. CHECKOUT
   ============================================================ */
body.lbp-themed.lbp-themed .checkout-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
    max-width: 1200px !important;
    margin: 0 auto !important;
    padding: 2rem 1.5rem 4rem !important;
}

@media (min-width: 900px) {
    body.lbp-themed.lbp-themed .checkout-grid {
        grid-template-columns: 1.4fr 1fr !important;
    }
}

body.lbp-themed.lbp-themed .checkout-section {
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-lg) !important;
    box-shadow: var(--joy-shadow-sm) !important;
    padding: 1.5rem !important;
    margin-bottom: 1.2rem !important;
}

body.lbp-themed.lbp-themed .checkout-section h2,
body.lbp-themed.lbp-themed .checkout-section h3 {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-ink) !important;
    font-size: 1.5rem !important;
    margin: 0 0 1rem !important;
    padding-bottom: 0.6rem !important;
    border-bottom: 2px solid var(--joy-line-strong) !important;
}

body.lbp-themed.lbp-themed .checkout-already-account {
    background: var(--joy-yellow-tint) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-md) !important;
    padding: 1rem 1.2rem !important;
    margin: 0 0 1.2rem !important;
    box-shadow: var(--joy-shadow-sm) !important;
}

body.lbp-themed.lbp-themed .addresses-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)) !important;
    gap: 0.8rem !important;
    margin: 0.8rem 0 !important;
}

body.lbp-themed.lbp-themed .address-saved,
body.lbp-themed.lbp-themed .address-option {
    background: white !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-md) !important;
    padding: 1rem !important;
    cursor: pointer !important;
    transition: all 0.18s ease !important;
    box-shadow: var(--joy-shadow-sm) !important;
    position: relative !important;
    box-sizing: border-box !important;
    max-width: 100% !important;
}

/* === Bouton SUPPRIMER discret en haut a droite de la carte adresse === */
body.lbp-themed.lbp-themed .address-saved .address-delete-form {
    position: absolute !important;
    top: 8px !important;
    right: 8px !important;
    margin: 0 !important;
    z-index: 2 !important;
}
body.lbp-themed.lbp-themed .address-delete-btn {
    width: 32px !important;
    height: 32px !important;
    border-radius: 50% !important;
    background: rgba(255, 255, 255, 0.7) !important;
    border: 1.5px solid var(--joy-cream-dark, #e8e0d0) !important;
    color: var(--joy-ink-soft, rgba(44, 24, 16, 0.55)) !important;
    cursor: pointer !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: none !important;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease, transform 0.15s ease !important;
}
body.lbp-themed.lbp-themed .address-delete-btn:hover {
    background: #fee2e2 !important;
    border-color: #dc2626 !important;
    color: #dc2626 !important;
}
body.lbp-themed.lbp-themed .address-delete-btn:active {
    transform: scale(0.92) !important;
}
body.lbp-themed.lbp-themed .address-delete-btn svg {
    width: 16px !important;
    height: 16px !important;
}

/* === Bouton MODIFIER : CTA Joy aligne a droite === */
body.lbp-themed.lbp-themed .address-saved .address-saved-actions {
    display: flex !important;
    justify-content: flex-end !important;
    margin-top: 0.8rem !important;
}
body.lbp-themed.lbp-themed .btn-edit-address {
    background: var(--joy-ink) !important;
    color: var(--joy-cream) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: 999px !important;
    padding: 9px 22px !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.88rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em !important;
    cursor: pointer !important;
    text-decoration: none !important;
    transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease !important;
    box-shadow: 0 2px 0 0 var(--joy-ink) !important;
    min-height: 40px !important;
}
body.lbp-themed.lbp-themed .btn-edit-address:hover {
    background: var(--joy-pink) !important;
    border-color: var(--joy-pink) !important;
    color: white !important;
}
body.lbp-themed.lbp-themed .btn-edit-address:active {
    transform: translateY(2px) !important;
    box-shadow: 0 0 0 0 var(--joy-ink) !important;
}
/* Etat ANNULER (toggle) : couleur coral pour signaler la fermeture */
body.lbp-themed.lbp-themed .btn-edit-address.is-cancel {
    background: transparent !important;
    color: var(--joy-ink) !important;
    border-color: var(--joy-ink) !important;
}
body.lbp-themed.lbp-themed .btn-edit-address.is-cancel:hover {
    background: var(--joy-cream-dark, #e8e0d0) !important;
    color: var(--joy-ink) !important;
    border-color: var(--joy-ink) !important;
}

/* Label de la carte : laisser place au bouton supprimer en haut a droite */
body.lbp-themed.lbp-themed .address-saved .address-saved-label {
    padding-right: 40px !important;
}

body.lbp-themed.lbp-themed .address-saved.is-selected,
body.lbp-themed.lbp-themed .address-option.is-selected {
    background: var(--joy-pink-tint) !important;
    box-shadow: 4px 4px 0 0 var(--joy-pink) !important;
}

body.lbp-themed.lbp-themed .btn-add-address {
    background: transparent !important;
    border: 2px dashed var(--joy-ink) !important;
    border-radius: var(--joy-radius-md) !important;
    padding: 1rem !important;
    color: var(--joy-ink) !important;
    font-family: var(--joy-font-body) !important;
    cursor: pointer !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
    max-width: 100% !important;
}

body.lbp-themed.lbp-themed .btn-add-address:hover {
    background: var(--joy-cream-warm) !important;
}

/* Transport choices */
body.lbp-themed.lbp-themed .transp-choices {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.7rem !important;
}

body.lbp-themed.lbp-themed .transp-option {
    background: var(--joy-cream-warm) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-md) !important;
    padding: 1rem 1.2rem !important;
    display: flex !important;
    align-items: center !important;
    gap: 1rem !important;
    cursor: pointer !important;
    transition: all 0.18s ease !important;
    box-shadow: var(--joy-shadow-sm) !important;
}

body.lbp-themed.lbp-themed .transp-option.is-selected {
    background: var(--joy-pink-tint) !important;
    box-shadow: var(--joy-shadow-pink) !important;
}

body.lbp-themed.lbp-themed .transp-icon {
    background: var(--joy-cobalt) !important;
    color: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    width: 44px !important;
    height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
    box-shadow: var(--joy-shadow-sm) !important;
}

body.lbp-themed.lbp-themed .transp-icon svg {
    width: 20px;
    height: 20px;
    color: inherit;
    stroke: currentColor;
}

body.lbp-themed.lbp-themed .transp-name {
    font-family: var(--joy-font-display) !important;
    font-size: 1.1rem !important;
    color: var(--joy-ink) !important;
    margin: 0 !important;
    line-height: 1.1 !important;
}

body.lbp-themed.lbp-themed .transp-meta {
    font-family: var(--joy-font-body) !important;
    font-size: 0.82rem !important;
    color: var(--joy-ink-soft) !important;
    margin: 0.2rem 0 0 !important;
}

body.lbp-themed.lbp-themed .transp-price {
    font-family: var(--joy-font-script) !important;
    color: var(--joy-pink-deep) !important;
    font-size: 1.3rem !important;
    margin-left: auto !important;
    line-height: 1 !important;
}

/* Envoi choices (lettre vs colis) */
body.lbp-themed.lbp-themed .envoi-choices {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)) !important;
    gap: 0.7rem !important;
}

body.lbp-themed.lbp-themed .envoi-option {
    background: var(--joy-cream-warm) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-md) !important;
    padding: 1rem !important;
    cursor: pointer !important;
    box-shadow: var(--joy-shadow-sm) !important;
    transition: all 0.18s ease !important;
}

body.lbp-themed.lbp-themed .envoi-option.is-selected {
    background: var(--joy-cobalt-tint) !important;
    box-shadow: 4px 4px 0 0 var(--joy-cobalt) !important;
}

body.lbp-themed.lbp-themed .envoi-badge-gold {
    display: inline-block !important;
    background: var(--joy-marigold) !important;
    color: var(--joy-ink) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.2rem 0.6rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.7rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    box-shadow: 2px 2px 0 0 var(--joy-ink) !important;
}

body.lbp-themed.lbp-themed .livraison-notice {
    background: var(--joy-yellow-tint) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-md) !important;
    padding: 0.9rem 1rem !important;
    display: flex !important;
    align-items: center !important;
    gap: 0.7rem !important;
    margin: 1rem 0 !important;
    box-shadow: var(--joy-shadow-sm) !important;
}

body.lbp-themed.lbp-themed .ln-icon {
    background: var(--joy-marigold) !important;
    color: var(--joy-ink) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    width: 38px !important;
    height: 38px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
}

body.lbp-themed.lbp-themed .payment-tabs {
    display: flex !important;
    gap: 0 !important;
    border-bottom: 2px solid var(--joy-line-strong) !important;
    margin-bottom: 1rem !important;
}

body.lbp-themed.lbp-themed .payment-tab {
    background: transparent !important;
    border: none !important;
    border-bottom: 3px solid transparent !important;
    padding: 0.7rem 1rem !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 700 !important;
    color: var(--joy-ink-soft) !important;
    cursor: pointer !important;
    margin-bottom: -2px;
    border-radius: 0 !important;
    box-shadow: none !important;
}

body.lbp-themed.lbp-themed .payment-tab.active {
    color: var(--joy-pink) !important;
    border-bottom-color: var(--joy-pink) !important;
}

/* Checkout summary recap */
body.lbp-themed.lbp-themed .checkout-summary {
    background: var(--joy-yellow-tint) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-lg) !important;
    box-shadow: var(--joy-shadow) !important;
    padding: 1.5rem !important;
    height: fit-content;
    position: sticky;
    top: 90px;
}

body.lbp-themed.lbp-themed .recap-item {
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-md) !important;
    padding: 0.7rem !important;
    margin-bottom: 0.5rem !important;
    display: grid !important;
    grid-template-columns: 56px 1fr auto !important;
    gap: 0.7rem !important;
    align-items: center !important;
    box-shadow: 2px 2px 0 0 var(--joy-ink) !important;
}

body.lbp-themed.lbp-themed .recap-item-perso {
    border-color: var(--joy-marigold) !important;
}

body.lbp-themed.lbp-themed .recap-thumb {
    width: 56px !important;
    height: 56px !important;
    border-radius: var(--joy-radius-sm) !important;
    overflow: hidden !important;
    background: var(--joy-yellow-tint) !important;
    padding: 0.3rem !important;
    border: 2px solid var(--joy-ink) !important;
}

body.lbp-themed.lbp-themed .recap-thumb img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    mix-blend-mode: multiply;
}

body.lbp-themed.lbp-themed .recap-name {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-ink) !important;
    font-size: 0.95rem !important;
    margin: 0 !important;
    line-height: 1.1 !important;
}

body.lbp-themed.lbp-themed .recap-price {
    font-family: var(--joy-font-script) !important;
    color: var(--joy-pink-deep) !important;
    font-size: 1.15rem !important;
    line-height: 1 !important;
}

body.lbp-themed.lbp-themed .recap-qty-ctrl {
    display: inline-flex !important;
    align-items: center !important;
    background: transparent !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    overflow: hidden !important;
    height: 28px !important;
}

body.lbp-themed.lbp-themed .recap-qty-ctrl button {
    width: 26px !important;
    height: 100% !important;
    background: transparent !important;
    border: none !important;
    cursor: pointer !important;
    color: var(--joy-ink);
    box-shadow: none !important;
    padding: 0 !important;
}

body.lbp-themed.lbp-themed .recap-qty-ctrl input {
    width: 28px !important;
    text-align: center !important;
    border: none !important;
    background: transparent !important;
    font-family: var(--joy-font-body);
    font-weight: 700;
    font-size: 0.85rem;
    color: var(--joy-ink);
}

body.lbp-themed.lbp-themed .checkout-help {
    background: var(--joy-cobalt-tint) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-md) !important;
    padding: 0.9rem !important;
    margin-top: 1rem !important;
    box-shadow: var(--joy-shadow-sm) !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.88rem !important;
    color: var(--joy-ink) !important;
}

body.lbp-themed.lbp-themed .checkout-loading {
    text-align: center !important;
    padding: 2rem !important;
    font-family: var(--joy-font-script) !important;
    font-size: 1.5rem !important;
    color: var(--joy-cobalt) !important;
}

body.lbp-themed.lbp-themed .checkout-checkbox {
    display: flex !important;
    align-items: flex-start !important;
    gap: 0.6rem !important;
    margin: 0.7rem 0 !important;
}

body.lbp-themed.lbp-themed .checkout-checkbox input[type="checkbox"] {
    accent-color: var(--joy-pink) !important;
    width: 18px !important;
    height: 18px !important;
    margin-top: 0.2rem !important;
    flex-shrink: 0;
}


/* ============================================================
   21. MON COMPTE (5 tabs : commandes, infos, adresses, prefs, securite)
   ============================================================ */
body.lbp-themed.lbp-themed .account-page {
    background: transparent !important;
    padding: 2rem 1.5rem 4rem !important;
}

body.lbp-themed.lbp-themed .account-container {
    max-width: 1300px !important;
    margin: 0 auto !important;
}

body.lbp-themed.lbp-themed .account-header {
    text-align: center !important;
    margin-bottom: 2.5rem !important;
}

body.lbp-themed.lbp-themed .account-header h1 {
    font-family: var(--joy-font-display) !important;
    font-size: clamp(2.5rem, 5vw, 4rem) !important;
    color: var(--joy-ink) !important;
    line-height: 0.95 !important;
    margin: 0 0 0.5rem !important;
}

body.lbp-themed.lbp-themed .account-header h1 em {
    color: var(--joy-pink) !important;
    font-style: italic !important;
}

body.lbp-themed.lbp-themed .account-header p {
    font-family: var(--joy-font-script) !important;
    color: var(--joy-cobalt) !important;
    font-size: 1.5rem !important;
    line-height: 1.2 !important;
    margin: 0 !important;
}

body.lbp-themed.lbp-themed .account-layout {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
}

@media (min-width: 900px) {
    body.lbp-themed.lbp-themed .account-layout {
        grid-template-columns: 260px 1fr !important;
        align-items: flex-start !important;
    }
}

body.lbp-themed.lbp-themed .account-nav {
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-lg) !important;
    box-shadow: var(--joy-shadow-sm) !important;
    padding: 0.8rem !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0.4rem !important;
    align-items: flex-start !important;
    position: sticky;
    top: 90px;
}

body.lbp-themed.lbp-themed .account-nav-link,
body.lbp-themed.lbp-themed .account-tab {
    width: 100% !important;
    background: transparent !important;
    border: 2px solid transparent !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.7rem 1rem !important;
    display: flex !important;
    align-items: center !important;
    gap: 0.7rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.92rem !important;
    font-weight: 600 !important;
    color: var(--joy-ink) !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: all 0.18s ease !important;
    text-align: left !important;
    box-shadow: none !important;
    line-height: 1.3 !important;
}

body.lbp-themed.lbp-themed .account-nav-link:hover,
body.lbp-themed.lbp-themed .account-tab:hover {
    background: var(--joy-pink-tint) !important;
}

body.lbp-themed.lbp-themed .account-nav-link svg,
body.lbp-themed.lbp-themed .account-tab svg {
    width: 18px !important;
    height: 18px !important;
    color: var(--joy-pink) !important;
    stroke: var(--joy-pink) !important;
    flex-shrink: 0 !important;
}

body.lbp-themed.lbp-themed .account-nav-link.active,
body.lbp-themed.lbp-themed .account-tab.active {
    background: var(--joy-pink) !important;
    color: var(--joy-cream-soft) !important;
    transform: rotate(-1deg) !important;
    box-shadow: 2px 2px 0 0 var(--joy-ink) !important;
    border-color: var(--joy-ink) !important;
}

body.lbp-themed.lbp-themed .account-nav-link.active svg,
body.lbp-themed.lbp-themed .account-tab.active svg {
    color: var(--joy-cream-soft) !important;
    stroke: var(--joy-cream-soft) !important;
}

body.lbp-themed.lbp-themed .count-badge {
    background: var(--joy-cream-soft) !important;
    color: var(--joy-pink-deep) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.7rem !important;
    font-weight: 800 !important;
    padding: 0.1rem 0.5rem !important;
    margin-left: auto !important;
    line-height: 1.4 !important;
}

body.lbp-themed.lbp-themed .account-nav-link.active .count-badge,
body.lbp-themed.lbp-themed .account-tab.active .count-badge {
    background: var(--joy-yellow) !important;
    color: var(--joy-ink) !important;
}

body.lbp-themed.lbp-themed .account-content {
    min-width: 0 !important;
}

body.lbp-themed.lbp-themed .account-section {
    background: var(--joy-cream) !important;
    margin-bottom: 1.5rem !important;
}

body.lbp-themed.lbp-themed .account-section h2 {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-ink) !important;
    font-size: 1.8rem !important;
    margin: 0 0 1.2rem !important;
    padding-bottom: 0.6rem !important;
    border-bottom: 2px dashed var(--joy-line-strong) !important;
}

body.lbp-themed.lbp-themed .account-section h3 {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-ink) !important;
    font-size: 1.3rem !important;
    margin: 0 0 0.8rem !important;
}

body.lbp-themed.lbp-themed .mc-card-subtitle {
    font-family: var(--joy-font-script) !important;
    color: var(--joy-cobalt) !important;
    font-size: 1.3rem !important;
    line-height: 1 !important;
    margin: 0 0 0.5rem !important;
}

body.lbp-themed.lbp-themed .mc-section-title {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-ink) !important;
    font-size: 1.5rem !important;
    margin: 0 0 1rem !important;
    line-height: 1.1 !important;
}

body.lbp-themed.lbp-themed .empty-state {
    background: var(--joy-cream-warm) !important;
    border: 2px dashed var(--joy-ink) !important;
    border-radius: var(--joy-radius-md) !important;
    padding: 2rem 1.5rem !important;
    text-align: center !important;
    color: var(--joy-ink-soft) !important;
}

/* Tab Commandes */
body.lbp-themed.lbp-themed .mc-detail-header {
    display: block !important;
    padding-bottom: 0.5rem !important;
    border-bottom: 2px dashed var(--joy-line-strong) !important;
    margin-bottom: 0.8rem !important;
}

/* Row 1 du header : titre + tags + bouton Recu PDF */
body.lbp-themed.lbp-themed .mc-detail-header > div:first-child {
    display: flex !important;
    align-items: center !important;
    gap: 0.7rem !important;
    flex-wrap: wrap !important;
    margin-bottom: 0.4rem !important;
}

body.lbp-themed.lbp-themed .mc-detail-header h2 {
    margin: 0 !important;
    flex: 0 1 auto !important;
}

body.lbp-themed.lbp-themed .mc-tag {
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.25rem 0.8rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    color: var(--joy-ink) !important;
    box-shadow: 2px 2px 0 0 var(--joy-ink) !important;
}

body.lbp-themed.lbp-themed .mc-tag-perso {
    background: var(--joy-marigold) !important;
}

body.lbp-themed.lbp-themed .mc-recu-btn {
    background: var(--joy-cobalt) !important;
    color: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.4rem 0.9rem !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 700 !important;
    font-size: 0.82rem !important;
    box-shadow: 2px 2px 0 0 var(--joy-ink) !important;
    text-decoration: none !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.4rem !important;
}

body.lbp-themed.lbp-themed .mc-detail-meta {
    font-family: var(--joy-font-body) !important;
    font-size: 0.88rem !important;
    color: var(--joy-ink-soft) !important;
    margin: 0 !important;
}

body.lbp-themed.lbp-themed .mc-detail-article {
    background: var(--joy-cream) !important;
    border: 1px solid var(--joy-cream-dark, #e8e0d0) !important;
    border-radius: 14px !important;
    padding: 1rem 1.2rem !important;
    box-shadow: none !important;
    display: grid !important;
    grid-template-columns: 90px 1fr auto !important;
    gap: 1.2rem !important;
    margin-bottom: 0.6rem !important;
    align-items: center !important;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease !important;
}

body.lbp-themed.lbp-themed .mc-detail-art-img {
    width: 90px !important;
    height: 90px !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: 10px !important;
    overflow: hidden !important;
    background: transparent !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

body.lbp-themed.lbp-themed .mc-detail-art-img img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    mix-blend-mode: normal !important;
    display: block !important;
}

body.lbp-themed.lbp-themed .mc-detail-art-body {
    min-width: 0 !important;
}

body.lbp-themed.lbp-themed .mc-detail-art-name {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-ink) !important;
    font-size: 1.15rem !important;
    line-height: 1.15 !important;
    margin: 0 !important;
    transition: color 0.18s ease !important;
}

body.lbp-themed.lbp-themed .mc-detail-art-variant {
    color: var(--joy-ink-soft, rgba(44, 24, 16, 0.65)) !important;
    font-size: 0.88rem !important;
    margin-top: 4px !important;
}

/* Prix : 3eme colonne, aligne a droite */
body.lbp-themed.lbp-themed .mc-detail-article > .mc-detail-art-body > div:first-child > span:last-child {
    font-family: var(--joy-font-script) !important;
    font-style: italic !important;
    color: var(--joy-pink) !important;
    font-size: 1.3rem !important;
    white-space: nowrap !important;
}

body.lbp-themed.lbp-themed .mc-detail-perso {
    background: var(--joy-marigold-tint) !important;
    border: 2px solid var(--joy-marigold) !important;
    border-radius: var(--joy-radius-md) !important;
    padding: 0.7rem !important;
    grid-column: 1 / -1 !important;
    margin-top: 0.5rem !important;
}

body.lbp-themed.lbp-themed .mc-detail-perso-title {
    font-family: var(--joy-font-body) !important;
    font-size: 0.7rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    color: var(--joy-ink) !important;
    margin: 0 0 0.3rem !important;
}

body.lbp-themed.lbp-themed .mc-detail-perso-val {
    font-family: var(--joy-font-body) !important;
    font-size: 0.9rem !important;
    color: var(--joy-pink-deep) !important;
    font-weight: 600 !important;
}

body.lbp-themed.lbp-themed .mc-detail-totals {
    border-top: 2px dashed var(--joy-line-strong) !important;
    padding-top: 0.8rem !important;
    margin-top: 0.8rem !important;
}

body.lbp-themed.lbp-themed .mc-detail-total-final {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-pink) !important;
    font-size: 1.6rem !important;
    border-top: 2px solid var(--joy-ink) !important;
    padding-top: 0.5rem !important;
    margin-top: 0.4rem !important;
    display: flex !important;
    justify-content: space-between !important;
}

/* Tab Confidentialite/Privacy */
body.lbp-themed.lbp-themed .mc-info-box {
    background: var(--joy-cobalt-tint) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-md) !important;
    padding: 1rem !important;
    box-shadow: 2px 2px 0 0 var(--joy-ink) !important;
    margin: 1rem 0 !important;
}

body.lbp-themed.lbp-themed .mc-checkbox-card,
body.lbp-themed.lbp-themed .mc-right-item {
    background: var(--joy-cream-warm) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-md) !important;
    padding: 0.9rem 1rem !important;
    box-shadow: 2px 2px 0 0 var(--joy-ink) !important;
    display: flex !important;
    gap: 0.8rem !important;
    margin-bottom: 0.6rem !important;
    align-items: flex-start !important;
}

/* Texte descriptif sous le titre des cases a cocher : prose normale, pas SHOUT */
body.lbp-themed.lbp-themed .mc-checkbox-card span {
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-weight: 400 !important;
}

body.lbp-themed.lbp-themed .mc-rgpd-badge {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.3rem !important;
    background: var(--joy-green-tint) !important;
    color: var(--joy-green-deep) !important;
    border: 2px solid var(--joy-green) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.2rem 0.7rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
}

/* Code OTP digits */
body.lbp-themed.lbp-themed .code-digit {
    width: 44px !important;
    height: 56px !important;
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-md) !important;
    text-align: center !important;
    font-family: var(--joy-font-display) !important;
    font-size: 1.6rem !important;
    color: var(--joy-ink) !important;
    box-shadow: 3px 3px 0 0 var(--joy-ink) !important;
}

body.lbp-themed.lbp-themed .code-digit:focus {
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(233, 30, 99, 0.4), 3px 3px 0 0 var(--joy-ink) !important;
    border-color: var(--joy-pink) !important;
}

/* Avoirs */
body.lbp-themed.lbp-themed .avoir-block {
    background: var(--joy-yellow-tint) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-md) !important;
    padding: 1rem !important;
    box-shadow: 2px 2px 0 0 var(--joy-ink) !important;
    margin-bottom: 0.7rem !important;
}

/* Accordions details/summary */
body.lbp-themed.lbp-themed .account-section details,
body.lbp-themed.lbp-themed details.mc-accordion {
    background: var(--joy-cream-warm) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-md) !important;
    box-shadow: 2px 2px 0 0 var(--joy-ink) !important;
    margin-bottom: 0.6rem !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    max-width: 100% !important;
}

body.lbp-themed.lbp-themed .account-section details summary,
body.lbp-themed.lbp-themed details.mc-accordion summary {
    padding: 0.9rem 1rem !important;
    cursor: pointer !important;
    font-family: var(--joy-font-display) !important;
    font-size: 1.15rem !important;
    color: var(--joy-ink) !important;
    list-style: none !important;
    position: relative !important;
    padding-right: 2.5rem !important;
}

body.lbp-themed.lbp-themed .account-section details summary::-webkit-details-marker,
body.lbp-themed.lbp-themed details.mc-accordion summary::-webkit-details-marker {
    display: none !important;
}

body.lbp-themed.lbp-themed .account-section details summary::after,
body.lbp-themed.lbp-themed details.mc-accordion summary::after {
    content: '+';
    position: absolute;
    right: 0.9rem;
    top: 50%;
    transform: translateY(-50%);
    width: 28px;
    height: 28px;
    background: var(--joy-pink);
    color: var(--joy-ink);
    border: 2px solid var(--joy-ink);
    border-radius: var(--joy-radius-pill);
    font-family: var(--joy-font-body);
    font-size: 1.1rem;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    transition: transform 0.25s ease, background 0.25s ease;
}

body.lbp-themed.lbp-themed .account-section details[open] summary::after,
body.lbp-themed.lbp-themed details.mc-accordion[open] summary::after {
    transform: translateY(-50%) rotate(45deg);
    background: var(--joy-cobalt);
    color: var(--joy-cream-soft);
}

body.lbp-themed.lbp-themed .account-section details > div,
body.lbp-themed.lbp-themed details.mc-accordion > div {
    padding: 0 1rem 1rem !important;
}


/* ============================================================
   22. BLOG / ARTICLE
   ============================================================ */
body.lbp-themed.lbp-themed .blog-grid,
body.lbp-themed.lbp-themed .blog-section .grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)) !important;
    gap: 1.5rem !important;
    max-width: var(--joy-container) !important;
    margin: 0 auto !important;
    padding: 0 1.5rem !important;
}

body.lbp-themed.lbp-themed .blog-card,
body.lbp-themed.lbp-themed .article-card {
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-lg) !important;
    box-shadow: var(--joy-shadow) !important;
    overflow: hidden !important;
    transition: transform 0.3s ease !important;
    text-decoration: none !important;
    color: var(--joy-ink) !important;
    display: block !important;
}

body.lbp-themed.lbp-themed .blog-grid .blog-card:nth-child(odd) { transform: rotate(-1deg); }
body.lbp-themed.lbp-themed .blog-grid .blog-card:nth-child(even) { transform: rotate(1deg); }

body.lbp-themed.lbp-themed .blog-card:hover {
    transform: rotate(0deg) translateY(-6px) !important;
}

body.lbp-themed.lbp-themed .blog-card-image,
body.lbp-themed.lbp-themed .blog-card img {
    width: 100% !important;
    aspect-ratio: 16 / 10 !important;
    object-fit: cover !important;
    border-bottom: 2px solid var(--joy-ink) !important;
    display: block !important;
}

body.lbp-themed.lbp-themed .blog-card-content,
body.lbp-themed.lbp-themed .blog-card-body {
    padding: 1.4rem !important;
}

body.lbp-themed.lbp-themed .blog-card h3,
body.lbp-themed.lbp-themed .blog-card .blog-card-title {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-ink) !important;
    font-size: 1.5rem !important;
    line-height: 1.05 !important;
    margin: 0 0 0.5rem !important;
    letter-spacing: -0.01em !important;
}

body.lbp-themed.lbp-themed .blog-card .blog-meta {
    font-family: var(--joy-font-body) !important;
    font-size: 0.7rem !important;
    color: var(--joy-ink-soft) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.12em !important;
    font-weight: 700 !important;
    margin: 0 0 0.5rem !important;
}

body.lbp-themed.lbp-themed .blog-card p {
    font-family: var(--joy-font-body) !important;
    color: var(--joy-ink-soft) !important;
    font-size: 0.92rem !important;
    line-height: 1.55 !important;
    margin: 0 !important;
}

/* Article page */
body.lbp-themed.lbp-themed .article-page,
body.lbp-themed.lbp-themed .blog-article-page {
    max-width: 760px !important;
    margin: 0 auto !important;
    padding: 2rem 1.5rem 4rem !important;
}

body.lbp-themed.lbp-themed .article-page h1 {
    font-family: var(--joy-font-display) !important;
    font-size: clamp(2.5rem, 6vw, 4rem) !important;
    color: var(--joy-ink) !important;
    text-align: center !important;
    margin: 0 0 1.5rem !important;
    line-height: 1 !important;
    letter-spacing: -0.02em !important;
}

body.lbp-themed.lbp-themed .article-image {
    aspect-ratio: 16 / 9 !important;
    width: 100% !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-lg) !important;
    box-shadow: var(--joy-shadow) !important;
    overflow: hidden !important;
    margin: 0 0 2rem !important;
}

body.lbp-themed.lbp-themed .article-image img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
}

body.lbp-themed.lbp-themed .article-content {
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    font-family: var(--joy-font-body) !important;
    color: var(--joy-ink) !important;
    font-size: 1.1rem !important;
    line-height: 1.8 !important;
}

body.lbp-themed.lbp-themed .article-content > p:first-of-type::first-letter {
    font-family: var(--joy-font-display);
    font-size: 5rem;
    color: var(--joy-pink);
    float: left;
    line-height: 0.85;
    margin: 0.3rem 0.6rem 0 0;
}

body.lbp-themed.lbp-themed .article-content h2 {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-ink) !important;
    font-size: 2rem !important;
    margin: 2rem 0 0.8rem !important;
    line-height: 1.05 !important;
}

body.lbp-themed.lbp-themed .article-content h3 {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-pink) !important;
    font-size: 1.5rem !important;
    margin: 1.5rem 0 0.5rem !important;
}

body.lbp-themed.lbp-themed .article-content p {
    margin-bottom: 1.2rem !important;
}

body.lbp-themed.lbp-themed .article-content blockquote {
    background: var(--joy-yellow-tint) !important;
    border-left: 4px solid var(--joy-pink) !important;
    padding: 1rem 1.5rem !important;
    margin: 1.5rem 0 !important;
    font-family: var(--joy-font-display) !important;
    font-style: italic !important;
    color: var(--joy-ink) !important;
    border-radius: var(--joy-radius-sm) !important;
}

body.lbp-themed.lbp-themed .article-content a {
    color: var(--joy-cobalt) !important;
    text-decoration: underline !important;
    text-decoration-color: var(--joy-marigold) !important;
    text-decoration-thickness: 2px !important;
    text-underline-offset: 3px !important;
}

body.lbp-themed.lbp-themed .article-content a:hover {
    color: var(--joy-pink) !important;
}

body.lbp-themed.lbp-themed .share-btn {
    /*background: transparent !important;*/
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    width: 42px !important;
    height: 42px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: var(--joy-ink) !important;
    box-shadow: 3px 3px 0 0 var(--joy-ink) !important;
    transition: all 0.18s ease !important;
}

body.lbp-themed.lbp-themed .share-btn:hover {
    background: var(--joy-pink) !important;
    color: var(--joy-cream-soft) !important;
}

/* ============================================================
   23. EVENEMENTS
   ============================================================ */
body.lbp-themed.lbp-themed .events-grid,
body.lbp-themed.lbp-themed .events-page-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)) !important;
    gap: 1.5rem !important;
    max-width: var(--joy-container) !important;
    margin: 0 auto !important;
    padding: 0 1.5rem !important;
}

body.lbp-themed.lbp-themed .event-card {
    background: var(--joy-cream-soft) !important;
    border: 3px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-lg) !important;
    box-shadow: var(--joy-shadow) !important;
    overflow: hidden !important;
    text-decoration: none !important;
    color: var(--joy-ink) !important;
    display: block !important;
    transition: transform 0.3s ease !important;
    position: relative;
}

body.lbp-themed.lbp-themed .events-grid .event-card:nth-child(3n+1) { transform: rotate(-1deg); }
body.lbp-themed.lbp-themed .events-grid .event-card:nth-child(3n+2) { transform: rotate(1deg) translateY(0.8rem); }
body.lbp-themed.lbp-themed .events-grid .event-card:nth-child(3n+3) { transform: rotate(-2deg); }

body.lbp-themed.lbp-themed .event-card:hover {
    transform: rotate(0deg) translateY(-6px) !important;
}

body.lbp-themed.lbp-themed .event-card-image,
body.lbp-themed.lbp-themed .event-card img {
    width: 100% !important;
    aspect-ratio: 16 / 10 !important;
    object-fit: cover !important;
    border-bottom: 2px solid var(--joy-ink) !important;
    display: block !important;
}

body.lbp-themed.lbp-themed .event-card-content,
body.lbp-themed.lbp-themed .event-card-body {
    padding: 1.5rem !important;
}

body.lbp-themed.lbp-themed .event-card h2,
body.lbp-themed.lbp-themed .event-card h3 {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-ink) !important;
    font-size: 1.6rem !important;
    margin: 0 0 0.5rem !important;
    line-height: 1 !important;
}

body.lbp-themed.lbp-themed .event-card .event-date {
    font-family: var(--joy-font-script) !important;
    color: var(--joy-pink-deep) !important;
    font-size: 1.4rem !important;
    line-height: 1 !important;
    margin: 0 0 0.5rem !important;
}

body.lbp-themed.lbp-themed .event-card p {
    font-family: var(--joy-font-body) !important;
    color: var(--joy-ink-soft) !important;
    font-size: 0.92rem !important;
    line-height: 1.5 !important;
    margin: 0 !important;
}

body.lbp-themed.lbp-themed .event-status {
    position: absolute !important;
    top: 1rem !important;
    left: 1rem !important;
    background: var(--joy-yellow) !important;
    color: var(--joy-ink) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.25rem 0.7rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.7rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    box-shadow: 2px 2px 0 0 var(--joy-ink) !important;
    z-index: 5;
}

body.lbp-themed.lbp-themed .event-status.event-live {
    background: var(--joy-coral) !important;
    color: var(--joy-cream-soft) !important;
}

body.lbp-themed.lbp-themed .event-status.event-passe {
    background: var(--joy-ink) !important;
    color: var(--joy-cream-soft) !important;
}

body.lbp-themed.lbp-themed .event-status.event-avenir {
    background: var(--joy-green) !important;
    color: var(--joy-cream-soft) !important;
}

/* ============================================================
   24. MODALES (perso-modal, login-modal)
   ============================================================ */
body.lbp-themed.lbp-themed .modal-overlay,
body.lbp-themed.lbp-themed .perso-modal,
body.lbp-themed.lbp-themed .lbp-login-modal {
    background: rgba(42, 26, 15, 0.55) !important;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    z-index: 9999 !important;
}

body.lbp-themed.lbp-themed .perso-modal-card {
    background: var(--joy-cream) !important;
    border: 3px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-xl) !important;
    box-shadow: 12px 12px 0 0 var(--joy-ink) !important;
    max-width: 720px !important;
    max-height: 92vh !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    display: block !important;
    padding: 0 !important;
    color: var(--joy-ink) !important;
}

body.lbp-themed.lbp-themed .perso-modal-title {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-ink) !important;
    font-size: 1.8rem !important;
    padding: 1.5rem 2.2rem !important;
    border-bottom: 2px solid var(--joy-line-strong) !important;
    margin: 0 !important;
    line-height: 1.1 !important;
}

body.lbp-themed.lbp-themed .perso-modal-close {
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    width: 38px !important;
    height: 38px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 2px 2px 0 0 var(--joy-ink) !important;
    color: var(--joy-ink) !important;
    cursor: pointer !important;
    position: absolute !important;
    top: 1rem !important;
    right: 1rem !important;
    z-index: 5;
    transition: all 0.18s ease !important;
}

body.lbp-themed.lbp-themed .perso-modal-close:hover {
    background: var(--joy-coral) !important;
    color: var(--joy-cream-soft) !important;
}

body.lbp-themed.lbp-themed .perso-intro {
    background: var(--joy-yellow-tint) !important;
    padding: 1rem 2.2rem !important;
    margin: 0 !important;
    color: var(--joy-ink) !important;
    border-bottom: 2px dashed var(--joy-line) !important;
}

body.lbp-themed.lbp-themed .perso-section-title {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-ink) !important;
    font-size: 1.3rem !important;
    margin: 0 0 0.7rem !important;
    line-height: 1 !important;
}

body.lbp-themed.lbp-themed .perso-variante-block,
body.lbp-themed.lbp-themed .perso-options-block,
body.lbp-themed.lbp-themed .perso-message-block,
body.lbp-themed.lbp-themed .perso-contact-block {
    padding: 1.2rem 2.2rem !important;
    border-bottom: 2px dashed var(--joy-line) !important;
}

body.lbp-themed.lbp-themed .perso-options-list {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.5rem !important;
}

body.lbp-themed.lbp-themed .perso-option-wrap {
    background: var(--joy-cream-warm) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-md) !important;
    padding: 0.8rem !important;
    box-shadow: 2px 2px 0 0 var(--joy-ink) !important;
    transition: background 0.18s ease !important;
}

body.lbp-themed.lbp-themed .perso-option-wrap:hover {
    background: var(--joy-yellow-tint) !important;
}

body.lbp-themed.lbp-themed .perso-option-row {
    display: flex !important;
    align-items: center !important;
    gap: 0.6rem !important;
}

body.lbp-themed.lbp-themed .perso-option-libelle {
    font-family: var(--joy-font-body) !important;
    font-weight: 600 !important;
    color: var(--joy-ink) !important;
    flex: 1 !important;
}

body.lbp-themed.lbp-themed .perso-option-prix {
    font-family: var(--joy-font-script) !important;
    color: var(--joy-pink-deep) !important;
    font-size: 1.2rem !important;
    line-height: 1 !important;
}

body.lbp-themed.lbp-themed .perso-option-prix.is-free {
    color: var(--joy-green-deep) !important;
}

body.lbp-themed.lbp-themed .perso-option-more {
    background: transparent !important;
    border: none !important;
    color: var(--joy-cobalt) !important;
    font-family: var(--joy-font-body) !important;
    text-decoration: underline !important;
    text-decoration-color: var(--joy-marigold) !important;
    text-decoration-thickness: 2px !important;
    cursor: pointer !important;
    box-shadow: none !important;
    padding: 0.2rem 0 !important;
    font-size: 0.85rem !important;
}

body.lbp-themed.lbp-themed .perso-option-desc {
    background: transparent !important;
    color: var(--joy-ink-soft) !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.85rem !important;
    line-height: 1.5 !important;
    border-top: 1px dashed var(--joy-line) !important;
    padding-top: 0.5rem !important;
    margin-top: 0.5rem !important;
}

body.lbp-themed.lbp-themed .perso-opt-input {
    accent-color: var(--joy-pink) !important;
    width: 18px;
    height: 18px;
}

body.lbp-themed.lbp-themed .perso-file-label {
    background: var(--joy-cobalt) !important;
    color: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.5rem 1rem !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    box-shadow: 3px 3px 0 0 var(--joy-ink) !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.4rem !important;
    font-size: 0.85rem !important;
}

body.lbp-themed.lbp-themed .perso-summary {
    background: var(--joy-pink-tint) !important;
    border-top: 3px solid var(--joy-ink) !important;
    padding: 1rem 2.2rem !important;
}

body.lbp-themed.lbp-themed .perso-summary-total {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-pink) !important;
    font-size: 1.5rem !important;
    border-top: 2px solid var(--joy-ink) !important;
    padding-top: 0.5rem !important;
    margin-top: 0.4rem !important;
    display: flex !important;
    justify-content: space-between !important;
}

body.lbp-themed.lbp-themed .perso-delai {
    background: var(--joy-yellow-tint) !important;
    padding: 0.7rem 2.2rem !important;
    border-top: 2px dashed var(--joy-line) !important;
    color: var(--joy-ink) !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.88rem !important;
}

body.lbp-themed.lbp-themed .perso-modal-footer {
    background: var(--joy-cream-soft) !important;
    padding: 1.2rem 2.2rem !important;
    border-top: 2px solid var(--joy-line-strong) !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0.6rem !important;
}

body.lbp-themed.lbp-themed .perso-legal {
    color: var(--joy-ink-mute) !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.78rem !important;
    text-align: center !important;
}

body.lbp-themed.lbp-themed .perso-field {
    margin-bottom: 0.7rem !important;
}

body.lbp-themed.lbp-themed .lbp-login-modal-card {
    background: var(--joy-cream) !important;
    border: 3px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-xl) !important;
    box-shadow: 8px 8px 0 0 var(--joy-ink) !important;
    max-width: 460px !important;
    padding: 2.5rem 2rem !important;
    position: relative;
    overflow: hidden;
}

body.lbp-themed.lbp-themed .lbp-login-modal-card::before {
    content: '';
    position: absolute;
    top: -3rem;
    right: -3rem;
    width: 10rem;
    aspect-ratio: 1;
    background-image: var(--joy-img-marigold);
    background-size: contain;
    background-repeat: no-repeat;
    pointer-events: none;
    --rot: 8deg;
    animation: joy-float 7s ease-in-out infinite;
    opacity: 0.7;
    z-index: 0;
}

body.lbp-themed.lbp-themed .lbp-login-modal-card > * {
    position: relative;
    z-index: 1;
}


/* ============================================================
   25. INPUTS UNIFIES
   ============================================================ */
body.lbp-themed.lbp-themed input[type="text"],
body.lbp-themed.lbp-themed input[type="email"],
body.lbp-themed.lbp-themed input[type="tel"],
body.lbp-themed.lbp-themed input[type="password"],
body.lbp-themed.lbp-themed input[type="number"],
body.lbp-themed.lbp-themed input[type="search"],
body.lbp-themed.lbp-themed input[type="url"],
body.lbp-themed.lbp-themed input[type="date"],
body.lbp-themed.lbp-themed textarea,
body.lbp-themed.lbp-themed select {
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.85rem 1.2rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.95rem !important;
    color: var(--joy-ink) !important;
    box-shadow: 2px 2px 0 0 var(--joy-ink) !important;
    width: 100%;
    transition: box-shadow 0.18s ease, border-color 0.18s ease !important;
}

body.lbp-themed.lbp-themed textarea {
    border-radius: var(--joy-radius-md) !important;
    min-height: 110px !important;
    line-height: 1.5;
    resize: vertical;
}

body.lbp-themed.lbp-themed select {
    appearance: none !important;
    -webkit-appearance: none !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none' stroke='%232A1A0F' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E") !important;
    background-position: right 1rem center !important;
    background-repeat: no-repeat !important;
    padding-right: 2.5rem !important;
    cursor: pointer;
}

body.lbp-themed.lbp-themed input:focus,
body.lbp-themed.lbp-themed textarea:focus,
body.lbp-themed.lbp-themed select:focus {
    outline: none !important;
    border-color: var(--joy-pink) !important;
    box-shadow: 0 0 0 4px rgba(233, 30, 99, 0.20), 2px 2px 0 0 var(--joy-ink) !important;
}

body.lbp-themed.lbp-themed input::placeholder,
body.lbp-themed.lbp-themed textarea::placeholder {
    color: rgba(42, 26, 15, 0.4) !important;
}

body.lbp-themed.lbp-themed label {
    font-family: var(--joy-font-body) !important;
    font-weight: 700 !important;
    font-size: 0.78rem !important;
    color: var(--joy-ink) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    margin-bottom: 0.4rem !important;
    display: inline-block;
}

body.lbp-themed.lbp-themed input[type="checkbox"],
body.lbp-themed.lbp-themed input[type="radio"] {
    accent-color: var(--joy-pink) !important;
    width: 18px !important;
    height: 18px !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin-right: 0.4rem !important;
}

/* ============================================================
   26. BOUTONS GLOBAUX
   ============================================================ */
body.lbp-themed.lbp-themed .btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.5rem !important;
    border-radius: var(--joy-radius-pill) !important;
    border: 2px solid var(--joy-ink) !important;
    box-shadow: 3px 3px 0 0 var(--joy-ink) !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 700 !important;
    font-size: 0.95rem !important;
    padding: 0.75rem 1.4rem !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: transform 0.18s ease, box-shadow 0.18s ease !important;
    line-height: 1.3 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}

body.lbp-themed.lbp-themed .btn:hover:not(:disabled) {
    transform: translate(-1px, -1px) !important;
    box-shadow: 4px 4px 0 0 var(--joy-ink) !important;
}

body.lbp-themed.lbp-themed .btn-primary,
body.lbp-themed.lbp-themed .btn-gold {
    background: var(--joy-pink) !important;
    color: var(--joy-cream-soft) !important;
}

body.lbp-themed.lbp-themed .btn-secondary {
    background: var(--joy-cobalt) !important;
    color: var(--joy-cream-soft) !important;
}

body.lbp-themed.lbp-themed .btn-outline {
    background: transparent !important;
    color: var(--joy-ink) !important;
}

body.lbp-themed.lbp-themed .btn-outline:hover {
    background: var(--joy-ink) !important;
    color: var(--joy-cream-soft) !important;
}

body.lbp-themed.lbp-themed .btn-sm {
    padding: 0.5rem 1rem !important;
    font-size: 0.82rem !important;
}

body.lbp-themed.lbp-themed .btn-lg {
    padding: 1rem 1.8rem !important;
    font-size: 1.05rem !important;
}

body.lbp-themed.lbp-themed .btn[disabled],
body.lbp-themed.lbp-themed .btn:disabled {
    opacity: 0.55 !important;
    cursor: not-allowed !important;
    transform: none !important;
}

/* ============================================================
   27. ALERTS, PAGINATION, EMPTY, 404, WISHLIST, LEGAL
   ============================================================ */
body.lbp-themed.lbp-themed .alert,
body.lbp-themed.lbp-themed .toast,
body.lbp-themed.lbp-themed .flash-message {
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-md) !important;
    padding: 0.9rem 1.1rem !important;
    box-shadow: 3px 3px 0 0 var(--joy-ink) !important;
    color: var(--joy-ink) !important;
    font-family: var(--joy-font-body) !important;
    margin-bottom: 1rem !important;
    display: flex !important;
    align-items: flex-start !important;
    gap: 0.6rem !important;
}

body.lbp-themed.lbp-themed .alert-success,
body.lbp-themed.lbp-themed .toast-success {
    background: var(--joy-green-tint) !important;
    border-color: var(--joy-green) !important;
    color: var(--joy-green-deep) !important;
}

body.lbp-themed.lbp-themed .alert-error,
body.lbp-themed.lbp-themed .alert-danger,
body.lbp-themed.lbp-themed .toast-error {
    background: var(--joy-coral-tint) !important;
    border-color: var(--joy-coral) !important;
    color: var(--joy-ink) !important;
}

body.lbp-themed.lbp-themed .alert-warning,
body.lbp-themed.lbp-themed .toast-warning {
    background: var(--joy-yellow-tint) !important;
    border-color: var(--joy-marigold) !important;
    color: var(--joy-ink) !important;
}

body.lbp-themed.lbp-themed .alert-info,
body.lbp-themed.lbp-themed .toast-info {
    background: var(--joy-cobalt-tint) !important;
    border-color: var(--joy-cobalt) !important;
    color: var(--joy-ink) !important;
}

/* Pagination */
body.lbp-themed.lbp-themed .pagination {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 0.4rem !important;
    margin: 2rem 0 !important;
    flex-wrap: wrap !important;
}

body.lbp-themed.lbp-themed .pagination a,
body.lbp-themed.lbp-themed .pagination span {
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.45rem 0.85rem !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 700 !important;
    font-size: 0.88rem !important;
    color: var(--joy-ink) !important;
    text-decoration: none !important;
    box-shadow: 2px 2px 0 0 var(--joy-ink) !important;
    min-width: 38px !important;
    text-align: center !important;
    transition: all 0.18s ease !important;
}

body.lbp-themed.lbp-themed .pagination a:hover {
    background: var(--joy-pink-tint) !important;
}

body.lbp-themed.lbp-themed .pagination .current,
body.lbp-themed.lbp-themed .pagination .active {
    background: var(--joy-pink) !important;
    color: var(--joy-cream-soft) !important;
}

/* Wishlist page */
body.lbp-themed.lbp-themed .mes-preferes-page {
    background: transparent !important;
    padding: 2rem 1.5rem 4rem !important;
    max-width: var(--joy-container) !important;
    margin: 0 auto !important;
}

body.lbp-themed.lbp-themed .mes-preferes-page h1 {
    font-family: var(--joy-font-display) !important;
    text-align: center !important;
    color: var(--joy-ink) !important;
    font-size: clamp(2.5rem, 5vw, 4rem) !important;
    margin: 0 0 2rem !important;
}

body.lbp-themed.lbp-themed .mes-preferes-page h1 em {
    color: var(--joy-pink) !important;
    font-style: italic !important;
}

/* 404 */
body.lbp-themed.lbp-themed .page-404 {
    text-align: center !important;
    padding: 5rem 1.5rem !important;
    max-width: 720px !important;
    margin: 0 auto !important;
}

body.lbp-themed.lbp-themed .page-404 h1 {
    font-family: var(--joy-font-display) !important;
    font-size: clamp(1.7rem, 3.5vw, 2.4rem) !important;
    color: var(--joy-ink) !important;
    line-height: 1.15 !important;
    margin: 0 0 1rem !important;
    letter-spacing: -0.01em !important;
}

body.lbp-themed.lbp-themed .page-404 p {
    font-family: var(--joy-font-body) !important;
    color: var(--joy-ink-soft) !important;
    font-size: 1.1rem !important;
    margin: 0 0 2rem !important;
    line-height: 1.6 !important;
}

/* Login card */
body.lbp-themed.lbp-themed .login-card {
    background: var(--joy-cream-soft) !important;
    border: 3px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-xl) !important;
    box-shadow: 8px 8px 0 0 var(--joy-ink) !important;
    padding: 2.5rem 2rem !important;
    max-width: 460px !important;
    margin: 3rem auto !important;
    position: relative;
    overflow: hidden;
}

body.lbp-themed.lbp-themed .login-card::after {
    content: '';
    position: absolute;
    bottom: -3rem;
    left: -3rem;
    width: 10rem;
    aspect-ratio: 1;
    background-image: var(--joy-img-rose-pink);
    background-size: contain;
    background-repeat: no-repeat;
    --rot: -8deg;
    animation: joy-float 8s ease-in-out infinite;
    pointer-events: none;
    z-index: 0;
    opacity: 0.7;
}

body.lbp-themed.lbp-themed .login-card > * {
    position: relative;
    z-index: 1;
}

body.lbp-themed.lbp-themed .login-card h1,
body.lbp-themed.lbp-themed .login-card h2 {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-ink) !important;
    font-size: 2rem !important;
    text-align: center !important;
    margin: 0 0 1rem !important;
    line-height: 1 !important;
}

/* Legal pages */
body.lbp-themed.lbp-themed .legal-page,
body.lbp-themed.lbp-themed .cgv-page,
body.lbp-themed.lbp-themed .mentions-legales {
    max-width: 820px !important;
    margin: 0 auto !important;
    padding: 2rem 1.5rem 4rem !important;
}

body.lbp-themed.lbp-themed .legal-page h1 {
    font-family: var(--joy-font-display) !important;
    text-align: center !important;
    color: var(--joy-ink) !important;
    font-size: clamp(2.5rem, 5vw, 3.5rem) !important;
    margin: 0 0 2rem !important;
    letter-spacing: -0.02em !important;
}

body.lbp-themed.lbp-themed .legal-page h2 {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-pink) !important;
    font-size: 1.8rem !important;
    margin: 2rem 0 0.8rem !important;
    line-height: 1.05 !important;
}

body.lbp-themed.lbp-themed .legal-page h3 {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-ink) !important;
    font-size: 1.3rem !important;
    margin: 1.3rem 0 0.5rem !important;
}

body.lbp-themed.lbp-themed .legal-page p {
    font-family: var(--joy-font-body) !important;
    color: var(--joy-ink) !important;
    line-height: 1.7 !important;
    margin-bottom: 1rem !important;
}

/* ============================================================
   28. RESPONSIVE
   ============================================================ */
@media (max-width: 768px) {
    body.lbp-themed.lbp-themed .nav-center,
    body.lbp-themed.lbp-themed nav#mainNav .nav-center {
        display: none !important;
    }

    body.lbp-themed.lbp-themed .hero h1 {
        font-size: clamp(2.8rem, 12vw, 5rem) !important;
    }

    body.lbp-themed.lbp-themed .hero {
        padding: 2rem 1rem 4rem !important;
    }

    body.lbp-themed.lbp-themed .hero-content {
        width: 100% !important;
        max-width: 100% !important;
    }

    /* Tous les cards : annulent rotation */
    body.lbp-themed.lbp-themed .product-card,
    body.lbp-themed.lbp-themed .testimonial-card,
    body.lbp-themed.lbp-themed .store-card,
    body.lbp-themed.lbp-themed .blog-card,
    body.lbp-themed.lbp-themed .event-card,
    body.lbp-themed.lbp-themed .universe-card {
        transform: rotate(0deg) !important;
        margin: 0 !important;
    }

    body.lbp-themed.lbp-themed .testimonials,
    body.lbp-themed.lbp-themed .event-banner {
        padding: 4rem 1rem !important;
    }

    body.lbp-themed.lbp-themed .testimonials-grid .testimonial-card:nth-child(3n+2) {
        transform: rotate(0deg) !important;
    }

    body.lbp-themed.lbp-themed .stores-grid .store-card:nth-child(even) {
        transform: rotate(0deg) !important;
    }

    body.lbp-themed.lbp-themed .events-grid .event-card:nth-child(3n+2) {
        transform: rotate(0deg) !important;
    }

    body.lbp-themed.lbp-themed .collections-grid .collection-card:nth-child(3n+2) {
        transform: translateY(0) !important;
    }

    body.lbp-themed.lbp-themed .about-stats {
        flex-direction: column;
    }

    body.lbp-themed.lbp-themed .boutique-filters-bar {
        padding: 0.7rem 1rem !important;
        gap: 0.5rem !important;
    }

    body.lbp-themed.lbp-themed .boutique-tools {
        margin-left: 0 !important;
        width: 100%;
        justify-content: flex-start;
    }

    body.lbp-themed.lbp-themed .product-detail h1,
    body.lbp-themed.lbp-themed .product-detail-title {
        font-size: clamp(2rem, 8vw, 3rem) !important;
    }

    body.lbp-themed.lbp-themed .cart-item {
        grid-template-columns: 80px 1fr !important;
    }

    body.lbp-themed.lbp-themed .cart-item-remove {
        grid-column: 2;
        justify-self: end;
    }

    body.lbp-themed.lbp-themed .checkout-summary,
    body.lbp-themed.lbp-themed .cart-summary {
        position: static !important;
    }

    body.lbp-themed.lbp-themed .account-nav {
        position: static !important;
        flex-direction: row !important;
        flex-wrap: wrap !important;
        overflow-x: auto;
    }

    body.lbp-themed.lbp-themed .account-nav-link {
        flex: 1;
        min-width: max-content;
    }

    body.lbp-themed.lbp-themed .perso-modal-card {
        max-height: 96vh !important;
        max-width: 96vw !important;
    }

    body.lbp-themed.lbp-themed .perso-modal-title,
    body.lbp-themed.lbp-themed .perso-intro,
    body.lbp-themed.lbp-themed .perso-variante-block,
    body.lbp-themed.lbp-themed .perso-options-block,
    body.lbp-themed.lbp-themed .perso-message-block,
    body.lbp-themed.lbp-themed .perso-contact-block,
    body.lbp-themed.lbp-themed .perso-summary,
    body.lbp-themed.lbp-themed .perso-modal-footer,
    body.lbp-themed.lbp-themed .perso-delai {
        padding-left: 1.2rem !important;
        padding-right: 1.2rem !important;
    }
}

@media (max-width: 600px) {
    body.lbp-themed.lbp-themed .hero {
        padding: 1.5rem 1rem 3rem !important;
    }

    body.lbp-themed.lbp-themed .hero-cta {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0.7rem !important;
    }

    body.lbp-themed.lbp-themed .checkout-section,
    body.lbp-themed.lbp-themed .cart-items,
    body.lbp-themed.lbp-themed .cart-summary,
    body.lbp-themed.lbp-themed .checkout-summary {
        padding: 1rem !important;
    }
}


/* ============================================================
   29. MOSAIC GRID OVERRIDES (priorite max)
   - Force le carousel a devenir une grille mosaique statique
   - Masque les fleches du carousel quand mosaique active
   - Override les regles plus generiques de .products-grid
   ============================================================ */

/* SELECTEURS COMBINES - specificite haute (0,4,1) - prevaut sur .products-grid (0,3,1).
   Sur mobile, on annule la grille pour redevenir un carousel horizontal (voir ligne 1135). */
@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .products-grid.joy-mosaic-grid,
    body.lbp-themed.lbp-themed .carousel-track.joy-mosaic-grid {
        display: grid !important;
        grid-template-columns: repeat(12, 1fr) !important;
        gap: 1.5rem !important;
        overflow: visible !important;
        padding: 1.5rem 3rem !important;
        flex-direction: unset !important;
        flex-wrap: unset !important;
        scroll-snap-type: none !important;
        max-width: var(--joy-container) !important;
        margin: 0 auto !important;
    }
}

/* === MASQUER FLECHES + RESET WRAPPER quand mosaique sur DESKTOP === */
@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .carousel-wrapper.joy-mosaic-wrapper {
        max-width: var(--joy-container) !important;
        padding: 0 !important;
        overflow: visible !important;
        position: relative;
    }

    body.lbp-themed.lbp-themed .carousel-wrapper.joy-mosaic-wrapper .carousel-prev,
    body.lbp-themed.lbp-themed .carousel-wrapper.joy-mosaic-wrapper .carousel-next,
    body.lbp-themed.lbp-themed .carousel-wrapper.joy-mosaic-wrapper .carousel-arrow,
    body.lbp-themed.lbp-themed .carousel-wrapper.joy-mosaic-wrapper .carousel-dots {
        display: none !important;
    }

    /* Override fixed-width cards quand mosaique active (desktop) */
    body.lbp-themed.lbp-themed .carousel-track.joy-mosaic-grid > .product-card,
    body.lbp-themed.lbp-themed .carousel-track.joy-mosaic-grid > .product-card.carousel-card {
        flex: none !important;
        width: auto !important;
        max-width: none !important;
        min-width: 0 !important;
        scroll-snap-align: none !important;
    }
}

/* === MOSAIC PATTERNS - reaffirme les spans Casa Flora === */
/* Mobile : la mosaique est ANNULEE sur mobile (voir bloc plus haut ligne 1135).
   Les cards deviennent un carousel horizontal flex-row scrollable.
   On ne re-force PAS le mode grid ici. */

/* Desktop : pattern Casa Flora 5+4+3+3+4+5 avec row-span sur le premier */
@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .products-grid.joy-mosaic-grid > .product-card:nth-child(6n+1),
    body.lbp-themed.lbp-themed .carousel-track.joy-mosaic-grid > .product-card:nth-child(6n+1) {
        grid-column: span 5 !important;
        grid-row: span 2 !important;
        aspect-ratio: 3 / 4 !important;
    }
    body.lbp-themed.lbp-themed .products-grid.joy-mosaic-grid > .product-card:nth-child(6n+2),
    body.lbp-themed.lbp-themed .carousel-track.joy-mosaic-grid > .product-card:nth-child(6n+2) {
        grid-column: span 4 !important;
        grid-row: auto !important;
        aspect-ratio: 1 / 1 !important;
    }
    body.lbp-themed.lbp-themed .products-grid.joy-mosaic-grid > .product-card:nth-child(6n+3),
    body.lbp-themed.lbp-themed .carousel-track.joy-mosaic-grid > .product-card:nth-child(6n+3) {
        grid-column: span 3 !important;
        grid-row: auto !important;
        aspect-ratio: 1 / 1 !important;
    }
    body.lbp-themed.lbp-themed .products-grid.joy-mosaic-grid > .product-card:nth-child(6n+4),
    body.lbp-themed.lbp-themed .carousel-track.joy-mosaic-grid > .product-card:nth-child(6n+4) {
        grid-column: span 3 !important;
        grid-row: auto !important;
        aspect-ratio: 3 / 4 !important;
    }
    body.lbp-themed.lbp-themed .products-grid.joy-mosaic-grid > .product-card:nth-child(6n+5),
    body.lbp-themed.lbp-themed .carousel-track.joy-mosaic-grid > .product-card:nth-child(6n+5) {
        grid-column: span 4 !important;
        grid-row: auto !important;
        aspect-ratio: 1 / 1 !important;
    }
    body.lbp-themed.lbp-themed .products-grid.joy-mosaic-grid > .product-card:nth-child(6n+6),
    body.lbp-themed.lbp-themed .carousel-track.joy-mosaic-grid > .product-card:nth-child(6n+6) {
        grid-column: span 5 !important;
        grid-row: auto !important;
        aspect-ratio: 3 / 2 !important;
    }
}

/* Override aspect-ratio par defaut sur .product-card quand dans mosaique */
body.lbp-themed.lbp-themed .joy-mosaic-grid > .product-card {
    aspect-ratio: unset;
}

/* Override la regle data-cols sur boutique quand en mosaique : ignore data-cols */
body.lbp-themed.lbp-themed .products-grid.joy-mosaic-grid[data-cols="2"],
body.lbp-themed.lbp-themed .products-grid.joy-mosaic-grid[data-cols="3"],
body.lbp-themed.lbp-themed .products-grid.joy-mosaic-grid[data-cols="4"] {
    grid-template-columns: repeat(12, 1fr) !important;
}

/* ============================================================
   30. BOUTIQUE - corrections aliases markup reel
   - .cols-btn (et non .boutique-cols-btn)
   - .page-hero remplace .banner-boutique
   ============================================================ */

/* Boutons cols toggle (markup reel = .cols-btn) */
body.lbp-themed.lbp-themed .boutique-cols-toggle .cols-btn {
    background: transparent !important;
    border: none !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.25rem 0.55rem !important;
    color: var(--joy-ink) !important;
    cursor: pointer !important;
    line-height: 1 !important;
    transition: background 0.18s ease, color 0.18s ease !important;
    box-shadow: none !important;
    height: 30px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

body.lbp-themed.lbp-themed .boutique-cols-toggle .cols-btn.active {
    background: var(--joy-ink) !important;
    color: var(--joy-cream-soft) !important;
}

body.lbp-themed.lbp-themed .boutique-cols-toggle .cols-btn svg {
    width: 14px !important;
    height: 14px !important;
    stroke: currentColor !important;
    color: inherit !important;
}

/* PAGE HERO (titre + breadcrumb haut de page) - remplace banner-boutique */
body.lbp-themed.lbp-themed .page-hero {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    padding: 3rem 1.5rem 2rem !important;
    text-align: center !important;
    max-width: 1100px !important;
    margin: 0 auto !important;
    position: relative;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .page-hero {
        padding: 4rem 3rem 2rem !important;
    }
}

body.lbp-themed.lbp-themed .page-hero .breadcrumb {
    font-family: var(--joy-font-body) !important;
    font-size: 0.85rem !important;
    color: var(--joy-ink-soft) !important;
    margin: 0 0 1rem !important;
    display: inline-flex !important;
    flex-wrap: wrap !important;
    gap: 0.4rem !important;
    align-items: center !important;
    justify-content: center !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}

body.lbp-themed.lbp-themed .page-hero .breadcrumb a {
    color: var(--joy-cobalt) !important;
    text-decoration: none !important;
}

body.lbp-themed.lbp-themed .page-hero .breadcrumb a:hover {
    color: var(--joy-pink) !important;
}

body.lbp-themed.lbp-themed .page-hero h1 {
    font-family: var(--joy-font-display) !important;
    font-size: clamp(3rem, 8vw, 6rem) !important;
    color: var(--joy-ink) !important;
    line-height: 0.9 !important;
    letter-spacing: -0.03em !important;
    margin: 0 0 1rem !important;
    text-align: center !important;
}

body.lbp-themed.lbp-themed .page-hero h1 em {
    color: var(--joy-pink) !important;
    font-style: italic !important;
}

body.lbp-themed.lbp-themed .page-hero p {
    font-family: var(--joy-font-body) !important;
    color: var(--joy-ink-soft) !important;
    font-size: 1.05rem !important;
    line-height: 1.55 !important;
    max-width: 640px !important;
    margin: 0 auto !important;
}

/* Filtres - meilleure visibilite : on garde la barre sticky et on s'assure
   qu'elle est bien en haut de la liste de produits */
body.lbp-themed.lbp-themed .boutique-layout {
    padding: 0 !important;
}

body.lbp-themed.lbp-themed .boutique-main {
    padding: 0 1.5rem 4rem !important;
    max-width: var(--joy-container) !important;
    margin: 0 auto !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .boutique-main {
        padding: 0 3rem 4rem !important;
    }
}

/* Si on a une breadcrumb dans page-hero : reduire l'espace */
body.lbp-themed.lbp-themed .page-hero + .boutique-layout .boutique-filters-bar {
    margin-top: 0 !important;
}


/* ============================================================
   31. BOUTIQUE - REFONTE FILTRES HORIZONTAUX + GRILLE PROPRE
   - Onglets categories scrollables horizontalement (jamais de wrap)
   - Outils (recherche/tri/affichage/reset) alignes a droite, fixes
   - Grille produits standard 3/4 colonnes selon data-cols
   - Cards aspect 4/5, taille confortable (pas rikiki)
   ============================================================ */

/* Container des filtres : ligne unique, sticky, padding aere */
body.lbp-themed.lbp-themed .boutique-filters-bar {
    position: sticky !important;
    top: 0 !important;
    z-index: 20 !important;
    background: rgba(251, 246, 233, 0.96) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
    border-top: 2px solid var(--joy-ink) !important;
    border-bottom: 2px solid var(--joy-ink) !important;
    padding: 0.85rem 1.5rem !important;
    margin: 0 0 2rem !important;
    display: block !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .boutique-filters-bar {
        padding: 1rem 3rem !important;
    }
}

/* .boutique-tools = ligne unique : tabs (flex 1, scrollable) + outils (fixed) */
body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-tools {
    display: flex !important;
    align-items: center !important;
    gap: 0.7rem !important;
    flex-wrap: nowrap !important;
    width: 100% !important;
    max-width: var(--joy-container) !important;
    margin: 0 auto !important;
    min-width: 0 !important;
}

/* Onglets categories : prennent l'espace dispo, scroll horizontal sur overflow */
body.lbp-themed.lbp-themed .boutique-tabs {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
    gap: 0.5rem !important;
    padding: 2px 2px 6px !important;
    margin: 0 !important;
    -webkit-overflow-scrolling: touch;
}

body.lbp-themed.lbp-themed .boutique-tabs::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
}

body.lbp-themed.lbp-themed .boutique-tab {
    flex-shrink: 0 !important;
    white-space: nowrap !important;
}

/* Tools a droite : ne se reduisent pas */
body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-search-form,
body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-sort-select,
body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-cols-toggle,
body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-reset {
    flex-shrink: 0 !important;
    margin-left: 0 !important;
    padding: 0 !important;
}

/* Premier tool (search) : marge a gauche pour separer des tabs */
body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-search-form {
    margin-left: 0.5rem !important;
}

/* === MOBILE : tabs et outils sur deux lignes (tabs au-dessus) === */
@media (max-width: 767px) {
    body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-tools {
        flex-wrap: wrap !important;
        gap: 0.6rem !important;
    }
    body.lbp-themed.lbp-themed .boutique-tabs {
        flex: 1 1 100% !important;
        order: -1 !important;
        margin: 0 -1.5rem !important;
        padding: 2px 1.5rem 6px !important;
    }
    body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-search-form {
        margin-left: 0 !important;
    }
}

/* === GRILLE BOUTIQUE : standard data-cols, taille confortable === */
/* Override des regles mosaiques precedentes pour le scope boutique.
   Mobile : data-cols 1 ou 2. Desktop : data-cols 2/3/4. */
body.lbp-themed.lbp-themed .boutique-main .products-grid,
body.lbp-themed.lbp-themed .boutique-layout .products-grid {
    display: grid !important;
    gap: 1rem !important;
    grid-template-columns: 1fr 1fr !important; /* Mobile default : 2 colonnes */
    max-width: var(--joy-container) !important;
    margin: 0 auto !important;
    padding: 0 1rem !important;
    overflow: visible !important;
    /* Annule la mosaique si elle etait appliquee */
    grid-auto-rows: auto !important;
    grid-auto-flow: row !important;
    box-sizing: border-box !important;
    width: 100% !important;
}

/* Mobile : data-cols controle 1 ou 2 colonnes */
@media (max-width: 767px) {
    body.lbp-themed.lbp-themed .boutique-main .products-grid[data-cols="1"],
    body.lbp-themed.lbp-themed .boutique-layout .products-grid[data-cols="1"] {
        grid-template-columns: 1fr !important;
    }
    body.lbp-themed.lbp-themed .boutique-main .products-grid[data-cols="2"],
    body.lbp-themed.lbp-themed .boutique-layout .products-grid[data-cols="2"] {
        grid-template-columns: 1fr 1fr !important;
    }
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .boutique-main .products-grid,
    body.lbp-themed.lbp-themed .boutique-layout .products-grid {
        gap: 1.5rem !important;
        padding: 0 3rem !important;
    }
    body.lbp-themed.lbp-themed .boutique-main .products-grid[data-cols="2"],
    body.lbp-themed.lbp-themed .boutique-layout .products-grid[data-cols="2"] {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    body.lbp-themed.lbp-themed .boutique-main .products-grid[data-cols="3"],
    body.lbp-themed.lbp-themed .boutique-layout .products-grid[data-cols="3"] {
        grid-template-columns: repeat(3, 1fr) !important;
    }
    body.lbp-themed.lbp-themed .boutique-main .products-grid[data-cols="4"],
    body.lbp-themed.lbp-themed .boutique-layout .products-grid[data-cols="4"] {
        grid-template-columns: repeat(4, 1fr) !important;
    }
}

/* Cards boutique : aspect 4/5 (haute), pas de span mosaique */
body.lbp-themed.lbp-themed .boutique-main .products-grid > .product-card,
body.lbp-themed.lbp-themed .boutique-layout .products-grid > .product-card {
    grid-column: span 1 !important;
    grid-row: auto !important;
    aspect-ratio: 4 / 5 !important;
    width: 100% !important;
    flex: none !important;
}

/* Annule la mosaique si .joy-mosaic-grid traine encore en classe sur la boutique */
body.lbp-themed.lbp-themed .boutique-main .products-grid.joy-mosaic-grid,
body.lbp-themed.lbp-themed .boutique-layout .products-grid.joy-mosaic-grid {
    grid-template-columns: 1fr !important; /* Mobile : 1 colonne */
}

@media (min-width: 600px) {
    body.lbp-themed.lbp-themed .boutique-main .products-grid.joy-mosaic-grid,
    body.lbp-themed.lbp-themed .boutique-layout .products-grid.joy-mosaic-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .boutique-main .products-grid.joy-mosaic-grid[data-cols="3"],
    body.lbp-themed.lbp-themed .boutique-layout .products-grid.joy-mosaic-grid[data-cols="3"] {
        grid-template-columns: repeat(3, 1fr) !important;
    }
    body.lbp-themed.lbp-themed .boutique-main .products-grid.joy-mosaic-grid[data-cols="4"],
    body.lbp-themed.lbp-themed .boutique-layout .products-grid.joy-mosaic-grid[data-cols="4"] {
        grid-template-columns: repeat(4, 1fr) !important;
    }
}

body.lbp-themed.lbp-themed .boutique-main .products-grid.joy-mosaic-grid > .product-card,
body.lbp-themed.lbp-themed .boutique-layout .products-grid.joy-mosaic-grid > .product-card {
    grid-column: span 1 !important;
    grid-row: auto !important;
    aspect-ratio: 4 / 5 !important;
}


/* ============================================================
   32. CASA FLORA REFINEMENTS - reproduction fidele
   - Utility classes shadow-fiesta(*)
   - Refonte .about (full-bleed pink/90 + cream text + decor)
   - Refonte .custom-orders (sur-mesure: 2 cards cobalt+marigold)
   - Process steps (Comment ca marche - 4 etapes)
   - Tokens semantiques shadcn (background, foreground, primary, etc.)
   ============================================================ */

/* === SHADOW UTILITY CLASSES (Tailwind-style) === */
body.lbp-themed.lbp-themed .shadow-fiesta {
    box-shadow: 8px 8px 0 0 var(--joy-ink) !important;
}
body.lbp-themed.lbp-themed .shadow-fiesta-pink {
    box-shadow: 8px 8px 0 0 var(--joy-pink) !important;
}
body.lbp-themed.lbp-themed .shadow-fiesta-cobalt {
    box-shadow: 8px 8px 0 0 var(--joy-cobalt) !important;
}
body.lbp-themed.lbp-themed .shadow-fiesta-marigold {
    box-shadow: 8px 8px 0 0 var(--joy-marigold) !important;
}

/* === TEXT-STROKE-INK utility (Casa Flora hero "casa." effect) === */
body.lbp-themed.lbp-themed .text-stroke-ink {
    -webkit-text-stroke: 2px var(--joy-ink);
    color: transparent;
}

/* === ABOUT - "À propos" Casa Flora style === */
/* Section pleine largeur fond pink/90 + texte cream + decor fleurs */
body.lbp-themed.lbp-themed .about {
    position: relative !important;
    background: color-mix(in oklab, var(--joy-pink) 90%, transparent) !important;
    color: var(--joy-cream) !important;
    border-top: 4px solid var(--joy-ink) !important;
    border-bottom: 4px solid var(--joy-ink) !important;
    padding: 6rem 1.5rem !important;
    overflow: hidden !important;
    margin: 0 !important;
    border-radius: 0 !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .about {
        padding: 6rem 3rem !important;
    }
}

/* Decor fleurs about : anemone TL float + blossom BR rotate */
body.lbp-themed.lbp-themed .about::before {
    content: '';
    position: absolute;
    top: 2rem;
    left: -2.5rem;
    width: clamp(120px, 18vw, 224px);
    aspect-ratio: 1;
    background-image: var(--joy-img-anemone);
    background-size: contain;
    background-repeat: no-repeat;
    --rot: 0deg;
    animation: joy-float 8s ease-in-out infinite;
    pointer-events: none;
    z-index: 1;
}

body.lbp-themed.lbp-themed .about::after {
    content: '';
    position: absolute;
    bottom: 0;
    right: 0;
    width: clamp(140px, 20vw, 256px);
    aspect-ratio: 1;
    background-image: var(--joy-img-blossom-white);
    background-size: contain;
    background-repeat: no-repeat;
    transform: rotate(-12deg);
    pointer-events: none;
    z-index: 1;
}

/* Override le grid 2 cols precedent : maintenant container centre */
body.lbp-themed.lbp-themed .about-grid {
    display: block !important;
    grid-template-columns: none !important;
    max-width: 1100px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    position: relative;
    z-index: 2;
}

/* Section header about : eyebrow yellow script + h2 cream display avec italic */
body.lbp-themed.lbp-themed .about .section-header,
body.lbp-themed.lbp-themed .about-header {
    text-align: left !important;
    max-width: none !important;
    margin: 0 0 2.5rem !important;
    padding: 0 !important;
}

body.lbp-themed.lbp-themed .about .section-label {
    color: var(--joy-yellow) !important;
}

body.lbp-themed.lbp-themed .about .section-title,
body.lbp-themed.lbp-themed .about-text h2 {
    color: var(--joy-cream) !important;
    font-size: clamp(2.6rem, 6vw, 5rem) !important;
    line-height: 1.05 !important;
    margin: 0.4rem 0 0 !important;
}

body.lbp-themed.lbp-themed .about .section-title em,
body.lbp-themed.lbp-themed .about-text h2 em {
    color: var(--joy-cream) !important;
    -webkit-text-fill-color: var(--joy-cream) !important;
    font-style: italic !important;
}

body.lbp-themed.lbp-themed .about .section-subtitle {
    color: rgba(255, 255, 255, 0.85) !important;
    max-width: none !important;
    margin: 0 !important;
    text-align: left !important;
}

/* Video / image about - reduit et a droite */
body.lbp-themed.lbp-themed .about-video {
    display: none !important; /* Casa Flora about n'a pas de video, juste decor + texte */
}

body.lbp-themed.lbp-themed .about-text {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .about-text {
        grid-template-columns: 1fr 1fr !important;
    }
}

body.lbp-themed.lbp-themed .about-text p {
    color: rgba(251, 246, 233, 0.92) !important;
    font-size: 1.05rem !important;
    line-height: 1.7 !important;
    margin: 0 !important;
}

/* Stats grid : 3 cols, milieu translateY-4, couleurs fiesta */
body.lbp-themed.lbp-themed .about-stats {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 1rem !important;
    margin: 3rem 0 0 !important;
    flex-direction: unset !important;
    flex-wrap: unset !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .about-stats {
        gap: 1.5rem !important;
    }
}

body.lbp-themed.lbp-themed .about-stats .stat {
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-lg) !important;
    box-shadow: 8px 8px 0 0 var(--joy-ink) !important;
    padding: 1.5rem 1rem !important;
    text-align: center !important;
    flex: none !important;
    min-width: 0 !important;
    transform: rotate(0) !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .about-stats .stat {
        padding: 2rem 1.2rem !important;
    }
}

/* 3 stats : marigold(ink), cobalt(cream translateY-4), yellow(ink) */
body.lbp-themed.lbp-themed .about-stats .stat:nth-child(3n+1) {
    background: var(--joy-marigold) !important;
    color: var(--joy-ink) !important;
}
body.lbp-themed.lbp-themed .about-stats .stat:nth-child(3n+2) {
    background: var(--joy-cobalt) !important;
    color: var(--joy-cream) !important;
    transform: translateY(1rem) !important;
}
body.lbp-themed.lbp-themed .about-stats .stat:nth-child(3n+3) {
    background: var(--joy-yellow) !important;
    color: var(--joy-ink) !important;
}

body.lbp-themed.lbp-themed .about-stats .stat-number {
    color: inherit !important;
    font-size: clamp(2.5rem, 5vw, 3.5rem) !important;
    font-family: var(--joy-font-display) !important;
    line-height: 1 !important;
    margin-bottom: 0.4rem !important;
}

body.lbp-themed.lbp-themed .about-stats .stat-label {
    color: inherit !important;
    opacity: 0.95;
    font-size: 0.72rem !important;
    letter-spacing: 0.15em !important;
}

/* === SUR-MESURE - 2 cards cobalt + marigold avec rotation === */
body.lbp-themed.lbp-themed .custom-orders {
    padding: 6rem 1.5rem !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .custom-orders {
        padding: 6rem 3rem !important;
    }
}

/* Le grid 2 cols : custom-text gauche, custom-visual droite OU une grille de 2 cards colorees */
/* Casa Flora montre 2 grandes cards alignees : on adapte */
body.lbp-themed.lbp-themed .custom-orders-grid,
body.lbp-themed.lbp-themed .custom-grid {
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .custom-orders-grid,
    body.lbp-themed.lbp-themed .custom-grid {
        grid-template-columns: 1fr 1fr !important;
        gap: 2rem !important;
    }
}

/* Si la structure est text+visual, on stylise le custom-text comme card cobalt */
body.lbp-themed.lbp-themed .custom-orders-grid .custom-text,
body.lbp-themed.lbp-themed .custom-grid .custom-text {
    background: var(--joy-cobalt) !important;
    color: var(--joy-cream) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: 2.5rem !important;
    box-shadow: 8px 8px 0 0 var(--joy-ink) !important;
    padding: 2.5rem 2rem !important;
    transform: rotate(-1deg) !important;
    position: relative;
    overflow: hidden;
}

body.lbp-themed.lbp-themed .custom-orders-grid .custom-text::after,
body.lbp-themed.lbp-themed .custom-grid .custom-text::after {
    content: '';
    position: absolute;
    right: -2rem;
    bottom: -2rem;
    width: 12rem;
    aspect-ratio: 1;
    background-image: var(--joy-img-rose-red);
    background-size: contain;
    background-repeat: no-repeat;
    transform: rotate(12deg);
    pointer-events: none;
}

body.lbp-themed.lbp-themed .custom-orders-grid .custom-text > *,
body.lbp-themed.lbp-themed .custom-grid .custom-text > * {
    position: relative;
    z-index: 1;
}

body.lbp-themed.lbp-themed .custom-orders-grid .custom-text h2,
body.lbp-themed.lbp-themed .custom-grid .custom-text h2 {
    color: var(--joy-cream) !important;
    font-size: clamp(2rem, 4vw, 3rem) !important;
    margin: 0 0 0.8rem !important;
}

body.lbp-themed.lbp-themed .custom-orders-grid .custom-text h2 em,
body.lbp-themed.lbp-themed .custom-grid .custom-text h2 em {
    color: var(--joy-cream) !important;
    -webkit-text-fill-color: var(--joy-cream) !important;
}

body.lbp-themed.lbp-themed .custom-orders-grid .custom-text p,
body.lbp-themed.lbp-themed .custom-grid .custom-text p {
    color: rgba(251, 246, 233, 0.85) !important;
}

body.lbp-themed.lbp-themed .custom-orders-grid .custom-text .custom-tags .tag,
body.lbp-themed.lbp-themed .custom-grid .custom-text .custom-tag {
    background: rgba(251, 246, 233, 0.15) !important;
    color: var(--joy-cream) !important;
    border: none !important;
    box-shadow: none !important;
    transform: none !important;
}

/* La card visuelle a droite : marigold + rotate */
body.lbp-themed.lbp-themed .custom-orders-grid .custom-visual,
body.lbp-themed.lbp-themed .custom-grid .custom-visual {
    background: var(--joy-marigold) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: 2.5rem !important;
    box-shadow: 8px 8px 0 0 var(--joy-cobalt) !important;
    transform: rotate(1deg) !important;
    overflow: hidden;
    position: relative;
    aspect-ratio: 4 / 5;
}

body.lbp-themed.lbp-themed .custom-orders-grid .custom-visual::after,
body.lbp-themed.lbp-themed .custom-grid .custom-visual::after {
    content: '';
    position: absolute;
    right: -2rem;
    bottom: -2rem;
    width: 12rem;
    aspect-ratio: 1;
    background-image: var(--joy-img-anemone-2);
    background-size: contain;
    background-repeat: no-repeat;
    transform: rotate(-12deg);
    pointer-events: none;
}

/* === FAQ - card open avec bg-yellow + sign rotate 45deg === */
body.lbp-themed.lbp-themed .faq-item[open],
body.lbp-themed.lbp-themed .faq-item.open {
    background: var(--joy-yellow) !important;
}

body.lbp-themed.lbp-themed .faq-item {
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    box-shadow: 8px 8px 0 0 var(--joy-ink) !important;
    border-radius: var(--joy-radius-lg) !important;
}

body.lbp-themed.lbp-themed .faq-item:nth-child(4n+1),
body.lbp-themed.lbp-themed .faq-item:nth-child(4n+2),
body.lbp-themed.lbp-themed .faq-item:nth-child(4n+3),
body.lbp-themed.lbp-themed .faq-item:nth-child(4n+4) {
    background: var(--joy-cream-soft) !important;
}

body.lbp-themed.lbp-themed .faq-item[open]:nth-child(4n+1),
body.lbp-themed.lbp-themed .faq-item[open]:nth-child(4n+2),
body.lbp-themed.lbp-themed .faq-item[open]:nth-child(4n+3),
body.lbp-themed.lbp-themed .faq-item[open]:nth-child(4n+4),
body.lbp-themed.lbp-themed .faq-item.open:nth-child(4n+1),
body.lbp-themed.lbp-themed .faq-item.open:nth-child(4n+2),
body.lbp-themed.lbp-themed .faq-item.open:nth-child(4n+3),
body.lbp-themed.lbp-themed .faq-item.open:nth-child(4n+4) {
    background: var(--joy-yellow) !important;
}

body.lbp-themed.lbp-themed .faq-question {
    padding: 1.5rem 1.6rem !important;
}

body.lbp-themed.lbp-themed .faq-question-text {
    font-size: 1.25rem !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .faq-question-text {
        font-size: 1.5rem !important;
    }
}

body.lbp-themed.lbp-themed .faq-question-icon {
    background: var(--joy-pink) !important;
    color: var(--joy-cream) !important;
    width: 36px !important;
    height: 36px !important;
    font-family: var(--joy-font-display) !important;
    font-size: 1.5rem !important;
    border: 2px solid var(--joy-ink) !important;
}

/* === MARQUEE Casa Flora - text plus gros, font display === */
body.lbp-themed.lbp-themed .marquee-band,
body.lbp-themed.lbp-themed .marquee {
    background: var(--joy-pink) !important;
    border-top: 4px solid var(--joy-ink) !important;
    border-bottom: 4px solid var(--joy-ink) !important;
    padding: 1.25rem 0 !important;
}

body.lbp-themed.lbp-themed .marquee-track,
body.lbp-themed.lbp-themed .marquee > div {
    font-family: var(--joy-font-display) !important;
    font-size: clamp(1.75rem, 3.5vw, 3rem) !important;
    color: var(--joy-cream) !important;
    gap: 2.5rem !important;
}


/* ============================================================
   33. LAYOUT GLOBAL FULL-WIDTH + REFONTE BOUTIQUE
   - Suppression des max-width: 1320px qui empechaient le full-screen
   - Sections edge-to-edge avec padding lateral uniquement
   - Boutique : page-hero gauche + filtres ligne unique + grille 1/2/3
   ============================================================ */

/* === GLOBAL : sections en pleine largeur === */
body.lbp-themed.lbp-themed main,
body.lbp-themed.lbp-themed > main {
    width: 100% !important;
    max-width: none !important;
    overflow-x: clip;
}

/* Force full-width sur les grilles & containers principaux qui avaient max-width */
body.lbp-themed.lbp-themed .featured-products,
body.lbp-themed.lbp-themed .collections,
body.lbp-themed.lbp-themed .about,
body.lbp-themed.lbp-themed .stores,
body.lbp-themed.lbp-themed .faq-accueil,
body.lbp-themed.lbp-themed .related-products,
body.lbp-themed.lbp-themed .blog-section,
body.lbp-themed.lbp-themed .custom-orders,
body.lbp-themed.lbp-themed .testimonials,
body.lbp-themed.lbp-themed .newsletter,
body.lbp-themed.lbp-themed .event-banner {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

body.lbp-themed.lbp-themed .event-banner {
    display: flex;
    justify-content: center !important;
}

/* Container interieurs des sections : largeur naturelle, padding lateral */
body.lbp-themed.lbp-themed .featured-products .section-header,
body.lbp-themed.lbp-themed .collections .section-header,
body.lbp-themed.lbp-themed .stores .section-header,
body.lbp-themed.lbp-themed .related-products .section-header,
body.lbp-themed.lbp-themed .faq-accueil .section-header,
body.lbp-themed.lbp-themed .blog-section .section-header {
    max-width: none !important;
    padding: 0 1.5rem 2rem !important;
    margin: 0 0 2rem !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .featured-products .section-header,
    body.lbp-themed.lbp-themed .collections .section-header,
    body.lbp-themed.lbp-themed .stores .section-header,
    body.lbp-themed.lbp-themed .related-products .section-header,
    body.lbp-themed.lbp-themed .faq-accueil .section-header,
    body.lbp-themed.lbp-themed .blog-section .section-header {
        padding: 0 3rem 2rem !important;
    }
}

/* Grilles de la home (featured, collections, stores, blog) full width */
body.lbp-themed.lbp-themed .featured-products .products-grid,
body.lbp-themed.lbp-themed .featured-products .carousel-wrapper,
body.lbp-themed.lbp-themed .collections-grid,
body.lbp-themed.lbp-themed .stores-grid,
body.lbp-themed.lbp-themed .blog-grid,
body.lbp-themed.lbp-themed .events-grid,
body.lbp-themed.lbp-themed .related-products .products-grid {
    max-width: none !important;
    margin: 0 !important;
    padding: 0 1.5rem !important;
    width: 100% !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .featured-products .products-grid,
    body.lbp-themed.lbp-themed .featured-products .carousel-wrapper,
    body.lbp-themed.lbp-themed .collections-grid,
    body.lbp-themed.lbp-themed .stores-grid,
    body.lbp-themed.lbp-themed .blog-grid,
    body.lbp-themed.lbp-themed .events-grid,
    body.lbp-themed.lbp-themed .related-products .products-grid {
        padding: 0 3rem !important;
    }
}

/* Footer full width */
body.lbp-themed.lbp-themed footer .footer-grid,
body.lbp-themed.lbp-themed footer .footer-bottom {
    max-width: none !important;
    width: 100% !important;
    margin: 0 0 2rem !important;
}

/* footer-bottom : pas de margin-bottom (collé en bas du footer) */
body.lbp-themed.lbp-themed footer .footer-bottom {
    margin-bottom: 0 !important;
}

/* ============================================================
   BOUTIQUE - REFONTE COMPLETE
   ============================================================ */

/* LAYOUT - full width */
body.lbp-themed.lbp-themed .boutique-layout,
body.lbp-themed.lbp-themed .boutique-page {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.lbp-themed.lbp-themed main.boutique-main,
body.lbp-themed.lbp-themed .boutique-main {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 3rem 1.5rem 5rem !important;
    min-height: 60vh;
    box-sizing: border-box;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed main.boutique-main,
    body.lbp-themed.lbp-themed .boutique-main {
        padding: 4rem 3rem 6rem !important;
    }
}

/* PAGE HERO (titre boutique + breadcrumb + paragraphe) - GAUCHE, grand */
body.lbp-themed.lbp-themed .page-hero {
    position: relative !important;
    padding: 2.5rem 1.5rem 2rem !important;
    max-width: none !important;
    margin: 0 !important;
    text-align: left !important;
    width: 100% !important;
    overflow: hidden !important;
    background: transparent !important;
    box-sizing: border-box;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .page-hero {
        padding: 3rem 3rem 2.5rem !important;
    }
}

/* Decor butterfly TR + anemone BL sur page-hero */
body.lbp-themed.lbp-themed .page-hero::before {
    content: '';
    position: absolute;
    top: 0;
    right: 1.5rem;
    width: clamp(96px, 12vw, 176px);
    aspect-ratio: 1;
    background-image: var(--joy-img-butterfly-vintage);
    background-size: contain;
    background-repeat: no-repeat;
    pointer-events: none;
    animation: joy-wiggle 3s ease-in-out infinite;
    z-index: 1;
    opacity: 0.85;
}

body.lbp-themed.lbp-themed .page-hero::after {
    content: '';
    position: absolute;
    bottom: -1rem;
    left: -2rem;
    width: clamp(120px, 16vw, 224px);
    aspect-ratio: 1;
    background-image: var(--joy-img-anemone-2);
    background-size: contain;
    background-repeat: no-repeat;
    pointer-events: none;
    --rot: 0deg;
    animation: joy-float 8s ease-in-out infinite;
    z-index: 1;
    opacity: 0.8;
}

/* Breadcrumb au-dessus du titre, en script cobalt */
body.lbp-themed.lbp-themed .page-hero .breadcrumb {
    position: relative;
    z-index: 5;
    font-family: var(--joy-font-script) !important;
    font-size: 1.5rem !important;
    color: var(--joy-cobalt) !important;
    margin: 0 0 0.5rem !important;
    text-align: left !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    display: flex !important;
    align-items: center !important;
    gap: 0.4rem !important;
    flex-wrap: wrap;
    line-height: 1.2 !important;
    font-weight: 500 !important;
}

body.lbp-themed.lbp-themed .page-hero .breadcrumb a {
    color: var(--joy-cobalt) !important;
    text-decoration: none !important;
}

body.lbp-themed.lbp-themed .page-hero .breadcrumb a:hover {
    color: var(--joy-pink) !important;
    text-decoration: underline;
    text-decoration-color: var(--joy-marigold);
    text-decoration-thickness: 2px;
}

body.lbp-themed.lbp-themed .page-hero .breadcrumb span {
    color: var(--joy-ink) !important;
}

/* Titre h1 - grand, gauche, italique pink optionnel */
body.lbp-themed.lbp-themed .page-hero h1 {
    position: relative;
    z-index: 5;
    font-family: var(--joy-font-display) !important;
    font-size: clamp(3rem, 9vw, 7rem) !important;
    color: var(--joy-ink) !important;
    line-height: 0.9 !important;
    letter-spacing: -0.03em !important;
    margin: 0 0 1rem !important;
    text-align: left !important;
    max-width: 60rem !important;
    font-weight: 400 !important;
}

body.lbp-themed.lbp-themed .page-hero h1 em {
    color: var(--joy-pink) !important;
    font-style: italic !important;
    -webkit-text-fill-color: var(--joy-pink) !important;
}

body.lbp-themed.lbp-themed .page-hero p {
    position: relative;
    z-index: 5;
    font-family: var(--joy-font-body) !important;
    color: var(--joy-ink-soft) !important;
    font-size: 1.1rem !important;
    line-height: 1.55 !important;
    max-width: 36rem !important;
    margin: 0 !important;
    text-align: left !important;
}

/* === FILTRES : ligne unique sticky, full width === */
body.lbp-themed.lbp-themed .boutique-filters-bar {
    position: sticky !important;
    top: 0 !important;
    z-index: 30 !important;
    background: color-mix(in oklab, var(--joy-cream) 95%, transparent) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
    border-top: 2px solid var(--joy-ink) !important;
    border-bottom: 2px solid var(--joy-ink) !important;
    padding: 0.85rem 1.5rem !important;
    margin: 0 !important;
    width: 100% !important;
    max-width: none !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 0.5rem !important;
    overflow: visible !important;
    box-sizing: border-box;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .boutique-filters-bar {
        padding: 1rem 3rem !important;
        gap: 0.6rem !important;
    }
}

/* boutique-tools : reste en flex normal (pas display:contents) - voir section 46 */
/* Onglets categories : prennent l'espace, scrollables horizontalement, JAMAIS de wrap */
body.lbp-themed.lbp-themed .boutique-tabs {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
    flex: 1 1 0 !important;
    min-width: 0 !important;
    gap: 0.4rem !important;
    padding: 2px 2px 4px !important;
    margin: 0 !important;
    -webkit-overflow-scrolling: touch;
    align-items: center;
}

body.lbp-themed.lbp-themed .boutique-tabs::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
}

body.lbp-themed.lbp-themed .boutique-tab {
    flex: 0 0 auto !important;
    flex-shrink: 0 !important;
    white-space: nowrap !important;
    text-decoration: none !important;
}

/* Tools : largeur fixe, ne reduisent pas */
body.lbp-themed.lbp-themed .boutique-filters-bar > .boutique-search-form,
body.lbp-themed.lbp-themed .boutique-filters-bar > .boutique-sort-select,
body.lbp-themed.lbp-themed .boutique-filters-bar > .boutique-cols-toggle,
body.lbp-themed.lbp-themed .boutique-filters-bar > .boutique-reset {
    flex: 0 0 auto !important;
    flex-shrink: 0 !important;
}

/* === GRILLE PRODUITS BOUTIQUE - 1/2/3 cols Casa Flora style === */
body.lbp-themed.lbp-themed .boutique-main .products-grid,
body.lbp-themed.lbp-themed .boutique-layout .products-grid,
body.lbp-themed.lbp-themed .boutique-main .products-grid.joy-mosaic-grid,
body.lbp-themed.lbp-themed .boutique-layout .products-grid.joy-mosaic-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    grid-auto-rows: auto !important;
    grid-auto-flow: row !important;
}

@media (min-width: 640px) {
    body.lbp-themed.lbp-themed .boutique-main .products-grid,
    body.lbp-themed.lbp-themed .boutique-layout .products-grid,
    body.lbp-themed.lbp-themed .boutique-main .products-grid.joy-mosaic-grid,
    body.lbp-themed.lbp-themed .boutique-layout .products-grid.joy-mosaic-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (min-width: 1024px) {
    body.lbp-themed.lbp-themed .boutique-main .products-grid,
    body.lbp-themed.lbp-themed .boutique-layout .products-grid,
    body.lbp-themed.lbp-themed .boutique-main .products-grid.joy-mosaic-grid,
    body.lbp-themed.lbp-themed .boutique-layout .products-grid.joy-mosaic-grid {
        grid-template-columns: repeat(3, 1fr) !important;
    }
    /* Honor data-cols=2 et data-cols=4 explicites */
    body.lbp-themed.lbp-themed .boutique-main .products-grid[data-cols="2"],
    body.lbp-themed.lbp-themed .boutique-layout .products-grid[data-cols="2"] {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    body.lbp-themed.lbp-themed .boutique-main .products-grid[data-cols="4"],
    body.lbp-themed.lbp-themed .boutique-layout .products-grid[data-cols="4"] {
        grid-template-columns: repeat(4, 1fr) !important;
    }
}

/* === Cards boutique : aspect 4/5, rotation alternee, hover lift === */
body.lbp-themed.lbp-themed .boutique-main .products-grid > .product-card,
body.lbp-themed.lbp-themed .boutique-layout .products-grid > .product-card {
    grid-column: span 1 !important;
    grid-row: auto !important;
    aspect-ratio: 4 / 5 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    flex: none !important;
    margin: 0 !important;
    box-sizing: border-box;
}

/* Rotation alternee odd / even (override data-joy-rot) */
body.lbp-themed.lbp-themed .boutique-main .products-grid > .product-card:nth-child(odd) {
    transform: rotate(1deg);
}
body.lbp-themed.lbp-themed .boutique-main .products-grid > .product-card:nth-child(even) {
    transform: rotate(-1deg);
}

body.lbp-themed.lbp-themed .boutique-main .products-grid > .product-card:hover,
body.lbp-themed.lbp-themed .boutique-layout .products-grid > .product-card:hover {
    transform: rotate(0deg) translateY(-8px) !important;
}

/* === RESPONSIVE FILTERS sur mobile === */
@media (max-width: 600px) {
    body.lbp-themed.lbp-themed .boutique-filters-bar {
        flex-wrap: wrap !important;
        padding: 0.7rem 1rem !important;
        gap: 0.4rem !important;
    }
    body.lbp-themed.lbp-themed .boutique-tabs {
        flex: 1 1 100% !important;
        order: -1 !important;
        margin: 0 -1rem 0.4rem !important;
        padding: 2px 1rem 4px !important;
    }
    body.lbp-themed.lbp-themed .boutique-filters-bar > .boutique-search-form,
    body.lbp-themed.lbp-themed .boutique-filters-bar > .boutique-sort-select,
    body.lbp-themed.lbp-themed .boutique-filters-bar > .boutique-cols-toggle,
    body.lbp-themed.lbp-themed .boutique-filters-bar > .boutique-reset {
        margin: 0 !important;
    }
    body.lbp-themed.lbp-themed .boutique-main {
        padding: 2rem 1rem 4rem !important;
    }
    body.lbp-themed.lbp-themed .page-hero {
        padding: 2rem 1rem 1.5rem !important;
    }
}


/* ============================================================
   34. AJUSTEMENTS FIDELITE CASA FLORA HOMEPAGE
   - Body sans gradient (cream pur)
   - Fallback min-height pour product-card si aspect-ratio fail
   - Marquee renforce (display font + items)
   - Logo "Casa Flora" style (pink display + cobalt script si markup permet)
   - Decorations renforcees
   ============================================================ */

/* Fallback aspect-ratio pour product-card (browsers anciens ou contextes ou la regle est outrepassee) */
body.lbp-themed.lbp-themed .product-card,
body.lbp-themed.lbp-themed article.product-card {
    min-height: 280px;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .product-card,
    body.lbp-themed.lbp-themed article.product-card {
        min-height: 320px;
    }
}

/* Force la visibilite de la grille de produits (defense en profondeur) */
body.lbp-themed.lbp-themed .products-grid {
    display: grid !important;
    visibility: visible !important;
    opacity: 1 !important;
}

body.lbp-themed.lbp-themed .product-card {
    visibility: visible !important;
    opacity: 1 !important;
}

/* === MARQUEE Casa Flora exact - bandeau pink avec items espaces === */
body.lbp-themed.lbp-themed .marquee-band,
body.lbp-themed.lbp-themed .marquee,
body.lbp-themed.lbp-themed .ticker {
    background: var(--joy-pink) !important;
    border-top: 4px solid var(--joy-ink) !important;
    border-bottom: 4px solid var(--joy-ink) !important;
    padding: 1.25rem 0 !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    position: relative;
    color: var(--joy-cream) !important;
}

body.lbp-themed.lbp-themed .marquee-band > *,
body.lbp-themed.lbp-themed .marquee > *,
body.lbp-themed.lbp-themed .ticker > * {
    font-family: var(--joy-font-display) !important;
    font-size: clamp(1.75rem, 3.5vw, 3rem) !important;
    color: var(--joy-cream) !important;
    line-height: 1 !important;
    letter-spacing: -0.01em !important;
}

/* === HERO BADGE - reduit, pill cobalt cream === */
body.lbp-themed.lbp-themed .hero-badge {
    font-size: 0.7rem !important;
    padding: 0.35rem 0.95rem !important;
    line-height: 1.3 !important;
}

/* === SECTION TITLE & LABEL - alignement gauche pour matcher Casa Flora === */
/* Casa Flora a les eyebrows + h2 alignes a gauche dans la plupart des sections,
   sauf newsletter et story qui sont centres */
body.lbp-themed.lbp-themed .featured-products .section-header,
body.lbp-themed.lbp-themed .stores .section-header,
body.lbp-themed.lbp-themed .custom-orders .section-header,
body.lbp-themed.lbp-themed .blog-section .section-header {
    text-align: left !important;
    max-width: none !important;
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .featured-products .section-header,
    body.lbp-themed.lbp-themed .stores .section-header,
    body.lbp-themed.lbp-themed .custom-orders .section-header,
    body.lbp-themed.lbp-themed .blog-section .section-header {
        padding-left: 3rem !important;
        padding-right: 3rem !important;
    }
}

body.lbp-themed.lbp-themed .featured-products .section-label,
body.lbp-themed.lbp-themed .stores .section-label,
body.lbp-themed.lbp-themed .custom-orders .section-label,
body.lbp-themed.lbp-themed .blog-section .section-label {
    text-align: left !important;
}

body.lbp-themed.lbp-themed .featured-products .section-title,
body.lbp-themed.lbp-themed .stores .section-title,
body.lbp-themed.lbp-themed .custom-orders .section-title,
body.lbp-themed.lbp-themed .blog-section .section-title {
    text-align: left !important;
    font-size: clamp(2.5rem, 7vw, 6rem) !important;
    line-height: 0.9 !important;
    margin-bottom: 0 !important;
}

body.lbp-themed.lbp-themed .featured-products .section-subtitle,
body.lbp-themed.lbp-themed .stores .section-subtitle,
body.lbp-themed.lbp-themed .custom-orders .section-subtitle,
body.lbp-themed.lbp-themed .blog-section .section-subtitle {
    text-align: left !important;
    margin: 0.5rem 0 0 !important;
}

/* Newsletter & testimonials restent centres */
body.lbp-themed.lbp-themed .newsletter .section-header,
body.lbp-themed.lbp-themed .testimonials .section-header,
body.lbp-themed.lbp-themed .faq-accueil .section-header {
    text-align: center !important;
}

/* === STORES (Points de vente) - layout asymetrique 2-col Casa Flora === */
body.lbp-themed.lbp-themed .stores {
    position: relative;
    padding: 6rem 0 !important;
}

body.lbp-themed.lbp-themed .stores::before {
    content: '';
    position: absolute;
    top: 2.5rem;
    right: 1.5rem;
    width: clamp(80px, 11vw, 160px);
    aspect-ratio: 1;
    background-image: var(--joy-img-butterfly-vintage);
    background-size: contain;
    background-repeat: no-repeat;
    pointer-events: none;
    animation: joy-wiggle 3s ease-in-out infinite;
    z-index: 1;
    opacity: 0.85;
}

body.lbp-themed.lbp-themed .stores::after {
    display: none !important;
}

/* === LOGO simple - garde pink script (markup CMS = un seul element) === */
/* Si le markup est <span class="font-display">Casa</span><span class="font-script">Flora</span>
   on peut styler differemment, mais sinon on reste sur script pink uniforme */
body.lbp-themed.lbp-themed .logo,
body.lbp-themed.lbp-themed nav .logo {
    font-family: var(--joy-font-script) !important;
    color: var(--joy-pink) !important;
    font-size: clamp(1.7rem, 3vw, 2.2rem) !important;
}

/* Si le logo CMS contient deux mots dans des spans separes : "La Boheme" - on peut
   styliser le 2eme mot en cobalt script si la structure le permet */
body.lbp-themed.lbp-themed .logo > span:nth-child(1),
body.lbp-themed.lbp-themed .logo > span:first-child {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-pink) !important;
}

body.lbp-themed.lbp-themed .logo > span:nth-child(2) {
    font-family: var(--joy-font-script) !important;
    color: var(--joy-cobalt) !important;
    margin-left: -0.2em;
    margin-top: -0.4em;
}

/* === NAVIGATION - 4 liens centres simples === */
body.lbp-themed.lbp-themed nav#mainNav,
body.lbp-themed.lbp-themed nav.main-nav {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 1.5rem 1.5rem !important;
    width: 100% !important;
    max-width: none !important;
    background: transparent !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed nav#mainNav,
    body.lbp-themed.lbp-themed nav.main-nav {
        padding: 1.5rem 3rem !important;
    }
}

/* === SHOP/Featured products header layout 2-cols (Casa Flora) === */
/* Casa Flora a "title gauche" + "filter pills droite" sur la meme ligne. */
body.lbp-themed.lbp-themed .featured-products .section-header {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    gap: 1.5rem !important;
}

body.lbp-themed.lbp-themed .featured-products .section-header > *:first-child {
    flex: 1 1 auto;
    min-width: 0;
}


/* ============================================================
   35. FEATURED FULL-WIDTH + REFONTE RESPONSIVE PRODUCT CARDS
   - Override inline style="max-width: 1280px" sur carousel-wrapper
   - Mobile: 1 col, 2 col, puis mosaique desktop seulement
   - Image area + title area separees pour lisibilite
   - z-index badges > title toujours
   ============================================================ */

/* === FORCE FULL-WIDTH sur featured-products (override inline style PHP) === */
body.lbp-themed.lbp-themed .featured-products .carousel-wrapper,
body.lbp-themed.lbp-themed .featured-products .carousel-wrapper[style],
html body.lbp-themed.lbp-themed.lbp-themed.lbp-themed .featured-products .carousel-wrapper {
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.lbp-themed.lbp-themed .featured-products .products-grid,
html body.lbp-themed.lbp-themed.lbp-themed.lbp-themed .featured-products .products-grid,
body.lbp-themed.lbp-themed .featured-products .products-grid.joy-mosaic-grid {
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 1.5rem !important;
    box-sizing: border-box;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .featured-products .products-grid,
    html body.lbp-themed.lbp-themed.lbp-themed.lbp-themed .featured-products .products-grid,
    body.lbp-themed.lbp-themed .featured-products .products-grid.joy-mosaic-grid {
        padding: 0 3rem !important;
    }
}

/* Carousel-track interieur (mosaic) full width */
body.lbp-themed.lbp-themed .carousel-track.joy-mosaic-grid {
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 1.5rem !important;
    box-sizing: border-box;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .carousel-track.joy-mosaic-grid {
        padding: 0 3rem !important;
    }
}

/* ============================================================
   PRODUCT CARDS - REFONTE LAYOUT IMAGE/TITRE/BADGES
   Image area : top, fond colore, image centree avec padding
   Title area : bas, zone reservee, image n'y entre pas
   Badges : top-left, z-index 10
   ============================================================ */

/* Image container : ne descend PAS jusqu'en bas, laisse zone titre */
body.lbp-themed.lbp-themed .product-card .product-image {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 92px !important; /* zone reservee titre + prix */
    width: auto !important;
    height: auto !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
    display: block !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .product-card .product-image {
        bottom: 100px !important;
    }
}

body.lbp-themed.lbp-themed .product-card .product-image img {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    padding: 1.25rem !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    transition: transform 0.5s ease !important;
    display: block !important;
    mix-blend-mode: normal;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .product-card .product-image img {
        padding: 2rem !important;
    }
}

/* Title area : occupe les 92px reservees, fond transparent */
body.lbp-themed.lbp-themed .product-card .product-info {
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 92px !important;
    padding: 0.75rem 1rem 1rem !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    margin: 0 !important;
    z-index: 4 !important;
    text-align: left !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-end !important;
    pointer-events: none;
    flex: none !important;
    overflow: hidden;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .product-card .product-info {
        height: 100px !important;
        padding: 0.85rem 1.25rem 1.1rem !important;
    }
}

body.lbp-themed.lbp-themed .product-card .product-info h3 {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-ink) !important;
    font-size: 1.05rem !important;
    line-height: 1 !important;
    margin: 0 !important;
    letter-spacing: -0.01em !important;
    font-weight: 400 !important;
    text-align: left !important;
    text-transform: none !important;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    word-break: break-word;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .product-card .product-info h3 {
        font-size: 1.3rem !important;
    }
}

@media (min-width: 1280px) {
    body.lbp-themed.lbp-themed .product-card .product-info h3 {
        font-size: 1.5rem !important;
    }
}

body.lbp-themed.lbp-themed .product-card .product-price,
body.lbp-themed.lbp-themed .product-card .product-info .product-price {
    font-family: var(--joy-font-script) !important;
    font-size: 1.15rem !important;
    margin: 0.2rem 0 0 !important;
    line-height: 1 !important;
    font-weight: 500 !important;
    text-align: left !important;
    color: rgba(42, 26, 15, 0.85) !important;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .product-card .product-price,
    body.lbp-themed.lbp-themed .product-card .product-info .product-price {
        font-size: 1.4rem !important;
    }
}

/* Badges TOP-LEFT : z-index plus haut que le titre */
body.lbp-themed.lbp-themed .product-card .product-badges-wrap {
    position: absolute !important;
    top: 0.75rem !important;
    left: 0.75rem !important;
    right: auto !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0.35rem !important;
    z-index: 10 !important;
    pointer-events: none;
    align-items: flex-start !important;
    max-width: calc(100% - 1.5rem);
}

body.lbp-themed.lbp-themed .product-card .product-badge {
    font-size: 0.55rem !important;
    padding: 0.22rem 0.6rem !important;
    line-height: 1.5 !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .product-card .product-badge {
        font-size: 0.625rem !important;
        padding: 0.25rem 0.75rem !important;
    }
}

body.lbp-themed.lbp-themed .product-card .product-perso-tag {
    font-size: 0.55rem !important;
    padding: 0.22rem 0.55rem !important;
    line-height: 1.5 !important;
    margin: 0 !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .product-card .product-perso-tag {
        font-size: 0.6rem !important;
        padding: 0.25rem 0.7rem !important;
    }
}

/* View arrow plus petit sur mobile, bottom-right de la card */
body.lbp-themed.lbp-themed .product-card .joy-view-arrow {
    bottom: 0.7rem !important;
    right: 0.7rem !important;
    padding: 0.35rem 0.7rem !important;
    font-size: 0.85rem !important;
    z-index: 5;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .product-card .joy-view-arrow {
        bottom: 1rem !important;
        right: 1rem !important;
        padding: 0.45rem 0.85rem !important;
        font-size: 0.95rem !important;
    }
}

/* ============================================================
   RESPONSIVE BREAKPOINTS PROPRES
   < 600px  : 1 col toujours (pas de mosaique)
   600-1023 : 2 cols
   >= 1024  : mosaique sur featured/home, 3+ cols sur boutique
   ============================================================ */

/* MOBILE PETIT : 1 colonne, pas de rotations, lisibilite max */
@media (max-width: 599px) {
    body.lbp-themed.lbp-themed .products-grid,
    body.lbp-themed.lbp-themed .products-grid.joy-mosaic-grid,
    body.lbp-themed.lbp-themed .carousel-track.joy-mosaic-grid {
        grid-template-columns: 1fr !important;
        gap: 1rem !important;
    }

    body.lbp-themed.lbp-themed .product-card,
    body.lbp-themed.lbp-themed .joy-mosaic-grid > .product-card {
        grid-column: span 1 !important;
        grid-row: auto !important;
        aspect-ratio: 4 / 3 !important;
        transform: none !important;
        min-height: 280px !important;
    }

    body.lbp-themed.lbp-themed .product-card[data-joy-rot] {
        transform: none !important;
    }

    body.lbp-themed.lbp-themed .product-card:hover {
        transform: translateY(-4px) !important;
    }
}

/* MOBILE MOYEN / TABLETTE : 2 colonnes, rotations leg, mosaique simple */
@media (min-width: 600px) and (max-width: 1023px) {
    body.lbp-themed.lbp-themed .products-grid,
    body.lbp-themed.lbp-themed .products-grid.joy-mosaic-grid,
    body.lbp-themed.lbp-themed .carousel-track.joy-mosaic-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 1.25rem !important;
    }

    body.lbp-themed.lbp-themed .product-card,
    body.lbp-themed.lbp-themed .joy-mosaic-grid > .product-card {
        grid-column: span 1 !important;
        grid-row: auto !important;
        aspect-ratio: 4 / 5 !important;
        min-height: 320px !important;
    }

    /* Rotations attenuees pour ne pas faire chevaucher les cards entre elles */
    body.lbp-themed.lbp-themed .product-card[data-joy-rot="-3"],
    body.lbp-themed.lbp-themed .product-card[data-joy-rot="-2"],
    body.lbp-themed.lbp-themed .product-card[data-joy-rot="-1"] {
        transform: rotate(-1deg) !important;
    }
    body.lbp-themed.lbp-themed .product-card[data-joy-rot="1"],
    body.lbp-themed.lbp-themed .product-card[data-joy-rot="2"],
    body.lbp-themed.lbp-themed .product-card[data-joy-rot="3"] {
        transform: rotate(1deg) !important;
    }

    body.lbp-themed.lbp-themed .product-card:hover {
        transform: rotate(0deg) translateY(-6px) !important;
    }
}

/* DESKTOP : mosaique asymetrique sur featured uniquement */
@media (min-width: 1024px) {
    /* Featured products (homepage) : mosaique 12 cols Casa Flora */
    body.lbp-themed.lbp-themed .featured-products .products-grid.joy-mosaic-grid,
    body.lbp-themed.lbp-themed .featured-products .carousel-track.joy-mosaic-grid {
        grid-template-columns: repeat(12, 1fr) !important;
        gap: 1.5rem !important;
    }

    /* Boutique : 3 cols standard (data-cols="2" ou "4" override) */
    body.lbp-themed.lbp-themed .boutique-main .products-grid,
    body.lbp-themed.lbp-themed .boutique-layout .products-grid,
    body.lbp-themed.lbp-themed .boutique-main .products-grid.joy-mosaic-grid,
    body.lbp-themed.lbp-themed .boutique-layout .products-grid.joy-mosaic-grid {
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 1.5rem !important;
    }
}

/* On grand desktop, products related grid (fiche produit) en 3 cols */
@media (min-width: 1024px) {
    body.lbp-themed.lbp-themed .related-products .products-grid {
        grid-template-columns: repeat(3, 1fr) !important;
    }
}

/* Override final : la mosaique reste asymetrique uniquement sur featured + grand ecran */
@media (max-width: 1023px) {
    body.lbp-themed.lbp-themed .joy-mosaic-grid > .product-card:nth-child(6n+1) {
        grid-column: span 1 !important;
        grid-row: auto !important;
    }
    body.lbp-themed.lbp-themed .joy-mosaic-grid > .product-card:nth-child(6n+6) {
        grid-column: span 1 !important;
    }
}

/* Section featured-products padding plus aere sur desktop pour respirer */
@media (min-width: 1024px) {
    body.lbp-themed.lbp-themed .featured-products {
        padding-top: 5rem !important;
        padding-bottom: 5rem !important;
    }
}

/* Section header de featured-products : titre + filter pills sur meme ligne sur desktop */
body.lbp-themed.lbp-themed .featured-products .section-header {
    padding-top: 2rem !important;
    padding-bottom: 3rem !important;
}

@media (min-width: 1024px) {
    body.lbp-themed.lbp-themed .featured-products .section-header {
        padding-bottom: 4rem !important;
    }
}


/* ============================================================
   36. CASA FLORA - REPRODUCTION FIDELE TOUTES SECTIONS
   ============================================================ */

/* ============================================================
   COLLECTIONS (Image 1) - 3 grandes cards droites
   - aspect 3/4, pas de rotation, border-radius 2.5rem
   - Eyebrow script italic + Title display BIG
   - Pill "Explore →" ink bottom-left
   - Flower bottom-right scale+rotate au hover
   ============================================================ */

/* Override toutes les rules collections precedentes */
body.lbp-themed.lbp-themed .collections-grid {
    grid-template-columns: 1fr !important;
    gap: 1.25rem !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .collections-grid {
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 1.5rem !important;
    }
}

/* Section 36 : transforms gerees plus bas (section 42) - on garde uniquement
   les bordures, ombres, radius. Les transforms / hover sont en section 42. */
body.lbp-themed.lbp-themed .collections-grid .collection-card,
body.lbp-themed.lbp-themed .collection-card {
    aspect-ratio: 3 / 4 !important;
    border-radius: 2.5rem !important;
    border: 2px solid var(--joy-ink) !important;
    box-shadow: 8px 8px 0 0 var(--joy-ink) !important;
    overflow: hidden !important;
    position: relative !important;
    transition: transform 0.3s ease !important;
}

/* Couleurs Casa Flora exactes : orange (marigold) / vert / pink */
body.lbp-themed.lbp-themed .collections-grid .collection-card:nth-child(3n+1) {
    background: var(--joy-marigold) !important;
}
body.lbp-themed.lbp-themed .collections-grid .collection-card:nth-child(3n+2) {
    background: var(--joy-green) !important;
    color: var(--joy-cream) !important;
}
body.lbp-themed.lbp-themed .collections-grid .collection-card:nth-child(3n+3) {
    background: var(--joy-pink) !important;
    color: var(--joy-cream) !important;
}

body.lbp-themed.lbp-themed .collection-card .collection-content,
body.lbp-themed.lbp-themed .collection-card > div:first-child {
    padding: 2rem !important;
    position: relative;
    z-index: 2;
}

body.lbp-themed.lbp-themed .collection-card .collection-subtitle,
body.lbp-themed.lbp-themed .collection-card .collection-eyebrow,
body.lbp-themed.lbp-themed .collection-card p {
    font-family: var(--joy-font-script) !important;
    font-style: italic !important;
    font-size: 1.4rem !important;
    color: rgba(42, 26, 15, 0.7) !important;
    margin: 0 0 0.3rem !important;
    line-height: 1 !important;
    font-weight: 500 !important;
}

body.lbp-themed.lbp-themed .collections-grid .collection-card:nth-child(3n+2) p,
body.lbp-themed.lbp-themed .collections-grid .collection-card:nth-child(3n+3) p,
body.lbp-themed.lbp-themed .collections-grid .collection-card:nth-child(3n+2) .collection-subtitle,
body.lbp-themed.lbp-themed .collections-grid .collection-card:nth-child(3n+3) .collection-subtitle {
    color: rgba(251, 246, 233, 0.85) !important;
}

body.lbp-themed.lbp-themed .collection-card h3,
body.lbp-themed.lbp-themed .collection-card .collection-title {
    font-family: var(--joy-font-display) !important;
    font-size: clamp(2.5rem, 5.5vw, 4.5rem) !important;
    color: inherit !important;
    line-height: 0.9 !important;
    letter-spacing: -0.02em !important;
    margin: 0 !important;
}

/* Pill "Explore →" en BAS-GAUCHE de la card, ink */
body.lbp-themed.lbp-themed .collection-link,
body.lbp-themed.lbp-themed .collection-card .collection-link,
body.lbp-themed.lbp-themed .collection-card .btn-explore,
body.lbp-themed.lbp-themed .collection-card a:not(.collection-card) {
    position: absolute !important;
    bottom: 1.5rem !important;
    left: 2rem !important;
    right: auto !important;
    background: var(--joy-ink) !important;
    color: var(--joy-cream) !important;
    border: none !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.65rem 1.25rem !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 700 !important;
    font-size: 0.82rem !important;
    text-decoration: none !important;
    text-transform: lowercase !important;
    letter-spacing: 0 !important;
    z-index: 5 !important;
    box-shadow: none !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.4rem !important;
    line-height: 1 !important;
}

body.lbp-themed.lbp-themed .collection-link:hover {
    transform: translateY(-2px);
}

/* Flower decorative bottom-right - position et taille = comme Casa Flora */
body.lbp-themed.lbp-themed .collection-card::before {
    content: '';
    position: absolute;
    bottom: -2.5rem;
    right: -2.5rem;
    width: 70%;
    aspect-ratio: 1;
    background-image: var(--joy-img-rose-pink);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    transition: transform 0.7s ease;
    pointer-events: none;
    z-index: 1;
}

body.lbp-themed.lbp-themed .collections-grid .collection-card:nth-child(3n+1)::before {
    background-image: var(--joy-img-poppy);
}
body.lbp-themed.lbp-themed .collections-grid .collection-card:nth-child(3n+2)::before {
    background-image: var(--joy-img-anemone);
}
body.lbp-themed.lbp-themed .collections-grid .collection-card:nth-child(3n+3)::before {
    background-image: var(--joy-img-blossom-white);
}

body.lbp-themed.lbp-themed .collection-card:hover::before {
    transform: scale(1.1) rotate(12deg) !important;
}

body.lbp-themed.lbp-themed .collection-card .collection-icon {
    display: none !important;
}

/* ============================================================
   POINTS DE VENTE (Image 2) - 2 cols layout asymetrique
   - LEFT: section-header (titre + intro + 2 pill buttons)
   - RIGHT: 1 grande card avec details
   ============================================================ */

@media (min-width: 1024px) {
    body.lbp-themed.lbp-themed .stores {
        display: grid !important;
        grid-template-columns: minmax(280px, 1fr) 1.6fr !important;
        gap: 3rem !important;
        align-items: center !important;
        padding-left: 3rem !important;
        padding-right: 3rem !important;
    }

    body.lbp-themed.lbp-themed .stores > .section-header {
        text-align: left !important;
        max-width: none !important;
        padding: 0 !important;
        margin: 0 !important;
        grid-column: 1 !important;
    }

    body.lbp-themed.lbp-themed .stores > .stores-grid {
        grid-column: 2 !important;
        padding: 0 !important;
        margin: 0 !important;
        grid-template-columns: 1fr !important;
    }
}

/* Section-header points de vente : align left avec eyebrow + title + 2 pills */
body.lbp-themed.lbp-themed .stores .section-label {
    color: var(--joy-cobalt) !important;
    font-style: italic !important;
}

body.lbp-themed.lbp-themed .stores .section-title {
    text-align: left !important;
}

body.lbp-themed.lbp-themed .stores .section-title em {
    color: var(--joy-pink) !important;
    font-style: italic !important;
}

/* Grande card Boutique LOCO (1 seule card visible large) */
@media (min-width: 1024px) {
    body.lbp-themed.lbp-themed .stores-grid > .store-card {
        background: transparent !important;
        border: 2px solid var(--joy-ink) !important;
        border-radius: 2rem !important;
        box-shadow: 8px 8px 0 0 var(--joy-ink) !important;
        transform: none !important;
        padding: 2rem !important;
        overflow: hidden !important;
    }

    body.lbp-themed.lbp-themed .stores-grid > .store-card:hover {
        transform: translate(-2px, -2px) !important;
    }

    /* Cache l'image dans la grande card boutique */
    body.lbp-themed.lbp-themed .stores-grid > .store-card .store-card-image,
    body.lbp-themed.lbp-themed .stores-grid > .store-card > img {
        display: none !important;
    }
}

/* ============================================================
   A PROPOS - STATS PILL ROUNDED (Image 3)
   ============================================================ */

body.lbp-themed.lbp-themed .about-stats .stat {
    border-radius: 2.5rem !important;
    aspect-ratio: 5 / 3 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 1.25rem 1rem !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .about-stats .stat {
        padding: 1.5rem 1.5rem !important;
    }
}

body.lbp-themed.lbp-themed .about-stats .stat-label {
    text-align: center !important;
    line-height: 1.2 !important;
}

/* ============================================================
   SUR MESURE (Image 4) - 2 cards landscape side-by-side
   ============================================================ */

@media (min-width: 1024px) {
    body.lbp-themed.lbp-themed .custom-orders-grid,
    body.lbp-themed.lbp-themed .custom-grid {
        grid-template-columns: 1fr 1fr !important;
        gap: 2rem !important;
    }

    body.lbp-themed.lbp-themed .custom-orders-grid .custom-text,
    body.lbp-themed.lbp-themed .custom-grid .custom-text {
        min-height: 240px !important;
        aspect-ratio: 16 / 9 !important;
        transform: rotate(-1deg) !important;
        padding: 1.75rem !important;
        border-radius: 2rem !important;
    }

    body.lbp-themed.lbp-themed .custom-orders-grid .custom-visual,
    body.lbp-themed.lbp-themed .custom-grid .custom-visual {
        min-height: 240px !important;
        aspect-ratio: 16 / 9 !important;
        background: var(--joy-marigold) !important;
        transform: rotate(1deg) !important;
        padding: 1.75rem !important;
        border-radius: 2rem !important;
    }

    /* Si custom-visual contient du texte (Decorations & textile) */
    body.lbp-themed.lbp-themed .custom-orders-grid .custom-visual h3,
    body.lbp-themed.lbp-themed .custom-grid .custom-visual h3 {
        font-family: var(--joy-font-display) !important;
        color: var(--joy-ink) !important;
        font-size: 1.8rem !important;
        margin: 0 0 0.5rem !important;
    }
}

/* Section-header sur mesure : title left + badge yellow right */
body.lbp-themed.lbp-themed .custom-orders .section-header {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    gap: 1rem !important;
}

body.lbp-themed.lbp-themed .custom-orders .section-header > .header-cta,
body.lbp-themed.lbp-themed .custom-orders .section-header > a.btn,
body.lbp-themed.lbp-themed .custom-orders .section-header .badge-cta {
    background: var(--joy-yellow) !important;
    color: var(--joy-ink) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.6rem 1.2rem !important;
    box-shadow: 4px 4px 0 0 var(--joy-ink) !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 700 !important;
    font-size: 0.85rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    text-decoration: none !important;
    flex-shrink: 0;
}

/* Tags pills inside cards */
body.lbp-themed.lbp-themed .custom-orders-grid .custom-text .custom-tags .tag,
body.lbp-themed.lbp-themed .custom-grid .custom-text .custom-tags .tag {
    background: rgba(251, 246, 233, 0.2) !important;
    color: var(--joy-cream) !important;
    border: none !important;
    box-shadow: none !important;
    transform: none !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    font-size: 0.7rem !important;
    padding: 0.3rem 0.8rem !important;
}

body.lbp-themed.lbp-themed .custom-orders-grid .custom-visual .custom-tags .tag,
body.lbp-themed.lbp-themed .custom-grid .custom-visual .custom-tags .tag {
    background: rgba(42, 26, 15, 0.15) !important;
    color: var(--joy-ink) !important;
    border: none !important;
    box-shadow: none !important;
    transform: none !important;
}

/* ============================================================
   COMMENT CA MARCHE (Image 5) - 4 etapes numerotees
   Si les universe-cards sont presentes : 4 cards colorees horizontales
   ============================================================ */

@media (min-width: 1024px) {
    body.lbp-themed.lbp-themed .universe-cards,
    body.lbp-themed.lbp-themed .process-steps {
        grid-template-columns: repeat(4, 1fr) !important;
        gap: 1.25rem !important;
    }
}

/* 4 couleurs sequentielles : pink, yellow, green, blue */
body.lbp-themed.lbp-themed .universe-cards .universe-card:nth-child(4n+1) {
    background: var(--joy-pink) !important;
    color: var(--joy-cream) !important;
    transform: rotate(0deg) !important;
}
body.lbp-themed.lbp-themed .universe-cards .universe-card:nth-child(4n+2) {
    background: var(--joy-yellow) !important;
    color: var(--joy-ink) !important;
    transform: rotate(0deg) !important;
}
body.lbp-themed.lbp-themed .universe-cards .universe-card:nth-child(4n+3) {
    background: var(--joy-green) !important;
    color: var(--joy-cream) !important;
    transform: rotate(0deg) !important;
}
body.lbp-themed.lbp-themed .universe-cards .universe-card:nth-child(4n+4) {
    background: var(--joy-cobalt) !important;
    color: var(--joy-cream) !important;
    transform: rotate(0deg) !important;
}

body.lbp-themed.lbp-themed .universe-card {
    text-align: left !important;
    padding: 1.5rem !important;
    border-radius: 1.5rem !important;
    border: 2px solid var(--joy-ink) !important;
    box-shadow: 6px 6px 0 0 var(--joy-ink) !important;
    aspect-ratio: 1.6 / 1 !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
}

/* Numero badge cercle outline sur le coin top-left */
body.lbp-themed.lbp-themed .universe-card::before {
    content: counter(universe-counter);
    counter-increment: universe-counter;
    position: absolute;
    top: -16px;
    left: 16px;
    width: 32px;
    height: 32px;
    background: var(--joy-cream);
    color: var(--joy-ink);
    border: 2px solid var(--joy-ink);
    border-radius: 50%;
    font-family: var(--joy-font-body);
    font-weight: 700;
    font-size: 0.95rem;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 5;
    box-shadow: 2px 2px 0 0 var(--joy-ink);
}

body.lbp-themed.lbp-themed .universe-cards {
    counter-reset: universe-counter;
    padding-top: 1rem !important;
}

body.lbp-themed.lbp-themed .universe-card {
    position: relative !important;
}

/* Cache icon car pas dans Casa Flora */
body.lbp-themed.lbp-themed .universe-card .universe-icon {
    display: none !important;
}

body.lbp-themed.lbp-themed .universe-card h3,
body.lbp-themed.lbp-themed .universe-card .universe-title {
    color: inherit !important;
    font-size: 1.35rem !important;
    text-align: left !important;
    margin: 0 0 0.5rem !important;
    line-height: 1.05 !important;
}

body.lbp-themed.lbp-themed .universe-card p {
    color: inherit !important;
    opacity: 0.9;
    text-align: left !important;
    font-size: 0.85rem !important;
    line-height: 1.45 !important;
}

/* ============================================================
   FAQ (Image 6) - icone pill pink + signe blanc
   ============================================================ */

body.lbp-themed.lbp-themed .faq-question-icon {
    background: var(--joy-pink) !important;
    color: var(--joy-cream) !important;
    border: 2px solid var(--joy-ink) !important;
    width: 36px !important;
    height: 36px !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 800 !important;
    font-size: 1.4rem !important;
    line-height: 1 !important;
    box-shadow: 2px 2px 0 0 var(--joy-ink) !important;
}

/* Open : reste pink mais signe rotate */
body.lbp-themed.lbp-themed .faq-item[open] .faq-question-icon,
body.lbp-themed.lbp-themed .faq-item.open .faq-question-icon {
    background: var(--joy-pink) !important;
    transform: rotate(45deg) !important;
}

/* FAQ items toujours cream-soft (pas de bg yellow open dans image 6) */
body.lbp-themed.lbp-themed .faq-item,
body.lbp-themed.lbp-themed .faq-list .faq-item:nth-child(4n+1),
body.lbp-themed.lbp-themed .faq-list .faq-item:nth-child(4n+2),
body.lbp-themed.lbp-themed .faq-list .faq-item:nth-child(4n+3),
body.lbp-themed.lbp-themed .faq-list .faq-item:nth-child(4n+4),
body.lbp-themed.lbp-themed .faq-item[open]:nth-child(4n+1),
body.lbp-themed.lbp-themed .faq-item[open]:nth-child(4n+2),
body.lbp-themed.lbp-themed .faq-item[open]:nth-child(4n+3),
body.lbp-themed.lbp-themed .faq-item[open]:nth-child(4n+4) {
    background: var(--joy-cream-soft) !important;
}

body.lbp-themed.lbp-themed .faq-question-text {
    font-family: var(--joy-font-display) !important;
}

body.lbp-themed.lbp-themed .faq-question-text em {
    color: var(--joy-pink) !important;
    font-style: italic !important;
}

/* ============================================================
   NEWSLETTER (Image 7) - card yellow avec animations fleurs
   ============================================================ */

/* S'assurer que les fleurs sont VISIBLES et animees */
body.lbp-themed.lbp-themed .newsletter-inner::before,
body.lbp-themed.lbp-themed .newsletter > .container::before,
body.lbp-themed.lbp-themed .newsletter-content::before,
body.lbp-themed.lbp-themed .newsletter::before {
    content: '' !important;
    position: absolute !important;
    top: -2rem !important;
    left: -2rem !important;
    width: clamp(10rem, 18vw, 16rem) !important;
    aspect-ratio: 1 !important;
    background-image: var(--joy-img-marigold) !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    pointer-events: none !important;
    z-index: 1 !important;
    --rot: 8deg !important;
    animation: joy-float 7s ease-in-out infinite !important;
    opacity: 1 !important;
    display: block !important;
}

body.lbp-themed.lbp-themed .newsletter-inner::after,
body.lbp-themed.lbp-themed .newsletter > .container::after,
body.lbp-themed.lbp-themed .newsletter-content::after,
body.lbp-themed.lbp-themed .newsletter::after {
    content: '' !important;
    position: absolute !important;
    bottom: -2rem !important;
    right: -2rem !important;
    width: clamp(11rem, 20vw, 17rem) !important;
    aspect-ratio: 1 !important;
    background-image: var(--joy-img-anemone) !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    pointer-events: none !important;
    z-index: 1 !important;
    --rot: -8deg !important;
    animation: joy-float 8s ease-in-out infinite reverse !important;
    opacity: 1 !important;
    display: block !important;
}

/* ============================================================
   HEADER BOUTIQUE (Image 8) + HEADER BLOG (Image 10)
   - Header massif gauche-aligne
   - Eyebrow script blue/cobalt
   - h1 display avec italic pink
   - Decorations: butterfly TR + flower BL
   ============================================================ */

body.lbp-themed.lbp-themed .page-hero h1 em {
    color: var(--joy-pink) !important;
    font-style: italic !important;
    -webkit-text-fill-color: var(--joy-pink) !important;
}

/* Filtre row sous le header (Casa Flora style: ALL ink + outlined pills) */
body.lbp-themed.lbp-themed .boutique-filters-bar,
body.lbp-themed.lbp-themed .blog-filters-bar {
    border-top: 2px solid var(--joy-ink) !important;
    border-bottom: 2px solid var(--joy-ink) !important;
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

body.lbp-themed.lbp-themed .boutique-tab,
body.lbp-themed.lbp-themed .blog-tab {
    background: transparent !important;
    border: 2px solid var(--joy-ink) !important;
    color: var(--joy-ink) !important;
    box-shadow: none !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    font-size: 0.78rem !important;
    padding: 0.5rem 1.1rem !important;
}

body.lbp-themed.lbp-themed .boutique-tab.active,
body.lbp-themed.lbp-themed .blog-tab.active,
body.lbp-themed.lbp-themed .boutique-tab[aria-current="page"],
body.lbp-themed.lbp-themed .blog-tab[aria-current="page"] {
    background: var(--joy-ink) !important;
    color: var(--joy-cream) !important;
    border-color: var(--joy-ink) !important;
}

body.lbp-themed.lbp-themed .boutique-count,
body.lbp-themed.lbp-themed .blog-count {
    color: var(--joy-cobalt) !important;
    font-style: italic !important;
}

/* ============================================================
   FICHE PRODUIT (Image 9) - layout 2 cols
   - LEFT: media card geante avec couleur de fond + flower + butterfly BR
   - RIGHT: maker / titre / meta / prix / desc / features / qty + add-to-cart pill
   ============================================================ */

body.lbp-themed.lbp-themed .product-detail .add-to-cart,
body.lbp-themed.lbp-themed .product-detail-page .add-to-cart,
body.lbp-themed.lbp-themed .btn-add-cart {
    width: 100% !important;
    flex: 1 !important;
    min-width: 0 !important;
    height: 60px !important;
    font-size: 1.1rem !important;
    box-shadow: 6px 6px 0 0 var(--joy-ink) !important;
}

body.lbp-themed.lbp-themed .product-detail .qty-and-cart,
body.lbp-themed.lbp-themed .product-actions {
    display: flex !important;
    gap: 0.8rem !important;
    align-items: stretch !important;
    flex-wrap: nowrap !important;
}

body.lbp-themed.lbp-themed .product-detail .qty-ctrl,
body.lbp-themed.lbp-themed .quantity-control {
    height: 60px !important;
    flex-shrink: 0;
}

body.lbp-themed.lbp-themed .product-features li {
    border: none !important;
    padding: 0.4rem 0 0.4rem 1.5rem !important;
    margin: 0 !important;
}

body.lbp-themed.lbp-themed .product-features li::before {
    content: '✿' !important;
    color: var(--joy-pink) !important;
    font-size: 1rem !important;
}

/* ============================================================
   ARTICLES BLOG (Image 11 + 12) - cards image top + cream bottom
   Layout split : couleur en haut, texte en cream en bas
   ============================================================ */

body.lbp-themed.lbp-themed .blog-card,
body.lbp-themed.lbp-themed .article-card {
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: 2rem !important;
    box-shadow: 8px 8px 0 0 var(--joy-ink) !important;
    overflow: hidden !important;
    transform: rotate(0deg) !important;
    display: flex !important;
    flex-direction: column !important;
}

body.lbp-themed.lbp-themed .blog-grid .blog-card:nth-child(odd),
body.lbp-themed.lbp-themed .blog-grid .blog-card:nth-child(even) {
    transform: rotate(0deg) !important;
}

body.lbp-themed.lbp-themed .blog-card:hover {
    transform: translateY(-6px) !important;
}

/* Image area : prend 60% de la card avec couleur de fond */
body.lbp-themed.lbp-themed .blog-card .blog-card-image,
body.lbp-themed.lbp-themed .blog-card > img,
body.lbp-themed.lbp-themed .article-card-image {
    aspect-ratio: 1 / 1 !important;
    width: 100% !important;
    object-fit: cover !important;
    border-bottom: 2px solid var(--joy-ink) !important;
    border-radius: 0 !important;
    flex: 0 0 auto !important;
    position: relative;
    background: var(--joy-pink) !important;
}

/* Couleurs de fond alternees pour image area */
body.lbp-themed.lbp-themed .blog-grid .blog-card:nth-child(3n+1) .blog-card-image {
    background: var(--joy-pink) !important;
}
body.lbp-themed.lbp-themed .blog-grid .blog-card:nth-child(3n+2) .blog-card-image {
    background: var(--joy-yellow) !important;
}
body.lbp-themed.lbp-themed .blog-grid .blog-card:nth-child(3n+3) .blog-card-image {
    background: var(--joy-cobalt) !important;
}

/* Tag badge top-left sur l'image */
body.lbp-themed.lbp-themed .blog-card .blog-tag,
body.lbp-themed.lbp-themed .blog-card .blog-meta-tag,
body.lbp-themed.lbp-themed .article-card .article-tag {
    position: absolute !important;
    top: 1rem !important;
    left: 1rem !important;
    background: var(--joy-cream-soft) !important;
    color: var(--joy-ink) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.25rem 0.75rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.65rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.12em !important;
    box-shadow: 2px 2px 0 0 var(--joy-ink) !important;
    z-index: 5;
}

/* Body cream area en bas */
body.lbp-themed.lbp-themed .blog-card-content,
body.lbp-themed.lbp-themed .blog-card-body {
    padding: 1.4rem 1.5rem !important;
    background: var(--joy-cream-soft) !important;
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0.4rem !important;
}

body.lbp-themed.lbp-themed .blog-card .blog-meta {
    color: var(--joy-cobalt) !important;
    font-style: italic !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.7rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.12em !important;
    margin: 0 !important;
}

body.lbp-themed.lbp-themed .blog-card h3,
body.lbp-themed.lbp-themed .blog-card .blog-card-title {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-ink) !important;
    font-size: 1.3rem !important;
    line-height: 1.05 !important;
    margin: 0 !important;
}

body.lbp-themed.lbp-themed .blog-card p {
    color: var(--joy-ink-soft) !important;
    font-size: 0.92rem !important;
    line-height: 1.5 !important;
    margin: 0 !important;
}


/* ============================================================
   37. CORRECTIONS FINALES + STRUCTURES CASA FLORA INJECTEES
   - section-header featured-products en flex column centre
   - boutique page-hero + filtres bien rendus
   - styles dedies aux structures injectees par joy.js
   ============================================================ */

/* === FEATURED PRODUCTS section-header : flex column centered === */
body.lbp-themed.lbp-themed .featured-products .section-header {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 1.5rem !important;
    flex-direction: column !important;
    align-content: center !important;
    text-align: center !important;
}

body.lbp-themed.lbp-themed .featured-products .section-label,
body.lbp-themed.lbp-themed .featured-products .section-title,
body.lbp-themed.lbp-themed .featured-products .section-subtitle {
    text-align: center !important;
    width: 100% !important;
}

/* === BOUTIQUE PAGE-HERO + FILTRES - corrections === */

/* Le page-hero doit s'afficher ABOVE des filtres avec espace */
body.lbp-themed.lbp-themed .page-hero {
    margin-bottom: 0 !important;
}

/* Fix : les decos butterfly + anemone ne doivent pas couvrir le contenu */
body.lbp-themed.lbp-themed .page-hero::before,
body.lbp-themed.lbp-themed .page-hero::after {
    z-index: 1 !important;
    opacity: 0.7;
}

body.lbp-themed.lbp-themed .page-hero > * {
    position: relative;
    z-index: 5 !important;
}

/* Filtres bar : visibilite et structure horizontale propre */
body.lbp-themed.lbp-themed .boutique-filters-bar {
    background: var(--joy-cream) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border-top: 2px solid var(--joy-ink) !important;
    border-bottom: 2px solid var(--joy-ink) !important;
    padding: 1rem 1.5rem !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 0.6rem !important;
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
    overflow: visible !important;
    position: sticky !important;
    top: 0 !important;
    z-index: 30 !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .boutique-filters-bar {
        padding: 1rem 3rem !important;
        gap: 0.7rem !important;
    }
}

@media (max-width: 599px) {
    body.lbp-themed.lbp-themed .boutique-filters-bar {
        flex-wrap: wrap !important;
    }
}

/* Tabs Casa Flora : pills outlined ink, actif = ink fill */
body.lbp-themed.lbp-themed .boutique-tab {
    background: transparent !important;
    border: 2px solid var(--joy-ink) !important;
    color: var(--joy-ink) !important;
    box-shadow: none !important;
    padding: 0.5rem 1rem !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    text-decoration: none !important;
    flex-shrink: 0 !important;
    line-height: 1.3 !important;
}

body.lbp-themed.lbp-themed .boutique-tab:hover {
    background: var(--joy-cream-soft) !important;
    transform: translateY(-1px);
}

body.lbp-themed.lbp-themed .boutique-tab.active {
    background: var(--joy-ink) !important;
    color: var(--joy-cream) !important;
    border-color: var(--joy-ink) !important;
}

/* ============================================================
   STRUCTURES INJECTEES PAR joy.js (Casa Flora exact)
   ============================================================ */

/* === STORES "Où me trouver" - 2 cols asymetrique injecte === */

body.lbp-themed.lbp-themed .joy-stores-rebuild {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 2.5rem !important;
    align-items: center !important;
    width: 100% !important;
    max-width: var(--joy-container) !important;
    margin: 0 auto !important;
    padding: 0 1.5rem !important;
    box-sizing: border-box !important;
    position: relative;
}

@media (min-width: 1024px) {
    body.lbp-themed.lbp-themed .joy-stores-rebuild {
        grid-template-columns: minmax(320px, 1fr) 1.5fr !important;
        gap: 3rem !important;
        padding: 0 3rem !important;
    }
}

body.lbp-themed.lbp-themed .joy-stores-left {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 1rem !important;
    text-align: left !important;
}

body.lbp-themed.lbp-themed .joy-stores-left .joy-eyebrow {
    font-family: var(--joy-font-script) !important;
    font-style: italic !important;
    color: var(--joy-cobalt) !important;
    font-size: 1.5rem !important;
    line-height: 1 !important;
    margin: 0 !important;
    font-weight: 500 !important;
}

body.lbp-themed.lbp-themed .joy-stores-left h2 {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-ink) !important;
    font-size: clamp(2.5rem, 6vw, 4.5rem) !important;
    line-height: 0.95 !important;
    letter-spacing: -0.02em !important;
    margin: 0 !important;
    text-align: left !important;
}

body.lbp-themed.lbp-themed .joy-stores-left h2 em {
    color: var(--joy-pink) !important;
    font-style: italic !important;
}

body.lbp-themed.lbp-themed .joy-stores-left > p {
    color: var(--joy-ink-soft) !important;
    font-size: 1rem !important;
    line-height: 1.55 !important;
    margin: 0 !important;
    max-width: 28rem !important;
}

body.lbp-themed.lbp-themed .joy-stores-pills {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.6rem !important;
    margin-top: 0.6rem !important;
}

body.lbp-themed.lbp-themed .joy-stores-pill {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.4rem !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.45rem 1rem !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 700 !important;
    font-size: 0.78rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    box-shadow: 3px 3px 0 0 var(--joy-ink) !important;
    line-height: 1.3 !important;
    white-space: nowrap;
}

body.lbp-themed.lbp-themed .joy-stores-pill-1 {
    background: var(--joy-marigold) !important;
    color: var(--joy-ink) !important;
}

body.lbp-themed.lbp-themed .joy-stores-pill-2 {
    background: var(--joy-green) !important;
    color: var(--joy-cream) !important;
}

/* RIGHT card - grosse card avec contenu structure */
body.lbp-themed.lbp-themed .joy-stores-card {
    position: relative !important;
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: 2.5rem !important;
    box-shadow: 8px 8px 0 0 var(--joy-ink) !important;
    padding: 2rem !important;
    overflow: visible !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .joy-stores-card {
        padding: 2.5rem !important;
    }
}

body.lbp-themed.lbp-themed .joy-stores-card-tags {
    display: flex !important;
    align-items: center !important;
    gap: 0.7rem !important;
    flex-wrap: wrap !important;
    margin: 0 0 1rem !important;
}

body.lbp-themed.lbp-themed .joy-stores-card-badge {
    display: inline-block !important;
    background: var(--joy-pink) !important;
    color: var(--joy-cream) !important;
    border: none !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.3rem 0.85rem !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 700 !important;
    font-size: 0.75rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    line-height: 1.4 !important;
}

body.lbp-themed.lbp-themed .joy-stores-card-city {
    font-family: var(--joy-font-script) !important;
    font-style: italic !important;
    color: var(--joy-cobalt) !important;
    font-size: 1.25rem !important;
    line-height: 1 !important;
}

body.lbp-themed.lbp-themed .joy-stores-card h3 {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-ink) !important;
    font-size: clamp(1.6rem, 3vw, 2.4rem) !important;
    line-height: 1 !important;
    margin: 0 0 0.8rem !important;
    letter-spacing: -0.01em !important;
}

body.lbp-themed.lbp-themed .joy-stores-card-desc {
    color: var(--joy-ink-soft) !important;
    font-size: 0.95rem !important;
    line-height: 1.55 !important;
    margin: 0 0 1.4rem !important;
}

body.lbp-themed.lbp-themed .joy-stores-card-info {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 0.9rem !important;
    margin: 0 0 1.4rem !important;
}

@media (max-width: 480px) {
    body.lbp-themed.lbp-themed .joy-stores-card-info {
        grid-template-columns: 1fr !important;
    }
}

body.lbp-themed.lbp-themed .joy-stores-info-block {
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 1rem 1.25rem !important;
    box-shadow: 4px 4px 0 0 var(--joy-ink) !important;
    line-height: 1.3 !important;
}

body.lbp-themed.lbp-themed .joy-stores-info-block.is-yellow {
    background: var(--joy-yellow) !important;
    color: var(--joy-ink) !important;
}

body.lbp-themed.lbp-themed .joy-stores-info-block.is-pink {
    background: var(--joy-pink) !important;
    color: var(--joy-cream) !important;
}

body.lbp-themed.lbp-themed .joy-stores-info-label {
    font-family: var(--joy-font-script) !important;
    font-style: italic !important;
    font-size: 1.1rem !important;
    line-height: 1 !important;
    margin: 0 0 0.3rem !important;
    display: block;
}

body.lbp-themed.lbp-themed .joy-stores-info-value {
    font-family: var(--joy-font-display) !important;
    font-size: 1.05rem !important;
    line-height: 1.15 !important;
    display: block;
}

body.lbp-themed.lbp-themed .joy-stores-card-cta {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
    background: var(--joy-ink) !important;
    color: var(--joy-cream) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.7rem 1.4rem !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 700 !important;
    font-size: 0.92rem !important;
    text-decoration: none !important;
    box-shadow: 4px 4px 0 0 var(--joy-pink) !important;
    transition: transform 0.18s ease !important;
}

body.lbp-themed.lbp-themed .joy-stores-card-cta:hover {
    transform: translate(-2px, -2px) !important;
}

/* Decoration butterfly TR */
body.lbp-themed.lbp-themed .joy-stores-card::before {
    content: '';
    position: absolute;
    top: -2.5rem;
    right: -1rem;
    width: 6rem;
    aspect-ratio: 1;
    background-image: var(--joy-img-butterfly-monarch);
    background-size: contain;
    background-repeat: no-repeat;
    pointer-events: none;
    animation: joy-wiggle 3s ease-in-out infinite;
    z-index: 5;
}

/* === SUR MESURE - 2 cards horizontales (universe-card) injectees === */

body.lbp-themed.lbp-themed .custom-orders .section-header {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    text-align: left !important;
    gap: 1rem 2rem !important;
}

body.lbp-themed.lbp-themed .custom-orders .section-header .section-label,
body.lbp-themed.lbp-themed .custom-orders .section-header .section-title,
body.lbp-themed.lbp-themed .custom-orders .section-header .section-subtitle {
    text-align: left !important;
    width: 100% !important;
    max-width: none !important;
}

body.lbp-themed.lbp-themed .custom-orders .section-header .section-label {
    color: var(--joy-cobalt) !important;
    font-style: italic !important;
}

body.lbp-themed.lbp-themed .custom-orders .section-header .section-title {
    flex: 1 1 100% !important;
    margin-bottom: 0 !important;
}

body.lbp-themed.lbp-themed .custom-orders .section-header .section-title em {
    color: var(--joy-pink) !important;
    font-style: italic !important;
}

body.lbp-themed.lbp-themed .custom-orders .section-header .section-subtitle {
    flex: 1 1 0;
    margin: 0 !important;
    min-width: 280px;
}

body.lbp-themed.lbp-themed .custom-orders .joy-surmesure-badge {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.4rem !important;
    background: var(--joy-yellow) !important;
    color: var(--joy-ink) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.55rem 1.2rem !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 700 !important;
    font-size: 0.85rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    box-shadow: 4px 4px 0 0 var(--joy-ink) !important;
    text-decoration: none !important;
    flex-shrink: 0 !important;
    line-height: 1.3 !important;
}

/* 2 universe-cards horizontales sur desktop */
body.lbp-themed.lbp-themed .custom-orders .custom-universes {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
    margin: 2rem 0 !important;
}

@media (min-width: 1024px) {
    body.lbp-themed.lbp-themed .custom-orders .custom-universes {
        grid-template-columns: 1fr 1fr !important;
        gap: 2rem !important;
    }
}

body.lbp-themed.lbp-themed .custom-orders .universe-card {
    aspect-ratio: auto !important;
    min-height: 280px !important;
    padding: 2rem !important;
    border-radius: 2.5rem !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    text-align: left !important;
    position: relative !important;
    overflow: hidden !important;
    border: 2px solid var(--joy-ink) !important;
    box-shadow: 8px 8px 0 0 var(--joy-ink) !important;
}

@media (min-width: 1024px) {
    body.lbp-themed.lbp-themed .custom-orders .universe-card {
        aspect-ratio: 16 / 9 !important;
        min-height: 280px !important;
    }
}

/* Reset numero badge sur sur-mesure (pas de numerotation pour les 2 univers) */
body.lbp-themed.lbp-themed .custom-orders .custom-universes::before,
body.lbp-themed.lbp-themed .custom-orders .universe-card::before {
    display: none !important;
}

body.lbp-themed.lbp-themed .custom-orders .custom-universes {
    counter-reset: none !important;
    padding-top: 0 !important;
}

/* Card 1 = cobalt cream, Card 2 = marigold ink */
body.lbp-themed.lbp-themed .custom-orders .custom-universes .universe-card:nth-child(2n+1) {
    background: var(--joy-cobalt) !important;
    color: var(--joy-cream) !important;
    transform: rotate(-1deg) !important;
}

body.lbp-themed.lbp-themed .custom-orders .custom-universes .universe-card:nth-child(2n+2) {
    background: var(--joy-marigold) !important;
    color: var(--joy-ink) !important;
    transform: rotate(1deg) !important;
}

body.lbp-themed.lbp-themed .custom-orders .universe-card .universe-icon {
    display: none !important;
}

body.lbp-themed.lbp-themed .custom-orders .universe-card h3 {
    font-family: var(--joy-font-display) !important;
    color: inherit !important;
    font-size: 1.7rem !important;
    margin: 0 0 0.7rem !important;
    line-height: 1.05 !important;
    text-align: left !important;
}

body.lbp-themed.lbp-themed .custom-orders .universe-card p {
    color: inherit !important;
    opacity: 0.92;
    font-size: 0.95rem !important;
    line-height: 1.55 !important;
    margin: 0 0 1rem !important;
    text-align: left !important;
    max-width: 28rem !important;
}

body.lbp-themed.lbp-themed .custom-orders .universe-card .universe-list {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.5rem !important;
    list-style: none !important;
    padding: 0 !important;
    margin: auto 0 0 !important;
}

body.lbp-themed.lbp-themed .custom-orders .universe-card .universe-list li {
    display: inline-block !important;
    padding: 0.3rem 0.85rem !important;
    border-radius: var(--joy-radius-pill) !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.7rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    line-height: 1.4 !important;
    background: rgba(255, 255, 255, 0.18) !important;
    color: inherit !important;
    border: none !important;
}

body.lbp-themed.lbp-themed .custom-orders .custom-universes .universe-card:nth-child(2n+2) .universe-list li {
    background: rgba(42, 26, 15, 0.15) !important;
    color: var(--joy-ink) !important;
}

body.lbp-themed.lbp-themed .custom-orders .universe-card::after {
    content: '';
    position: absolute;
    bottom: -2rem;
    right: -2rem;
    width: 12rem;
    aspect-ratio: 1;
    background-image: var(--joy-img-rose-red);
    background-size: contain;
    background-repeat: no-repeat;
    pointer-events: none;
    transform: rotate(12deg);
    z-index: -1;
}

body.lbp-themed.lbp-themed .custom-orders .custom-universes .universe-card:nth-child(2n+2)::after {
    background-image: var(--joy-img-anemone-2);
    transform: rotate(-12deg);
}

/* === COMMENT CA MARCHE - 4 etapes injectees a partir des custom-features === */

body.lbp-themed.lbp-themed .joy-process-section {
    padding: 4rem 1.5rem !important;
    margin: 0 !important;
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .joy-process-section {
        padding: 4rem 3rem !important;
    }
}

body.lbp-themed.lbp-themed .joy-process-header {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    gap: 1rem 2rem !important;
    margin: 0 0 3rem !important;
    max-width: var(--joy-container) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

body.lbp-themed.lbp-themed .joy-process-header h2 {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-ink) !important;
    font-size: clamp(2.5rem, 6vw, 4.5rem) !important;
    line-height: 0.95 !important;
    letter-spacing: -0.02em !important;
    margin: 0 !important;
}

body.lbp-themed.lbp-themed .joy-process-header > p {
    color: var(--joy-ink-soft) !important;
    font-size: 1rem !important;
    line-height: 1.55 !important;
    margin: 0 !important;
    max-width: 24rem !important;
}

body.lbp-themed.lbp-themed .joy-process-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1.5rem 1rem !important;
    max-width: var(--joy-container) !important;
    margin: 0 auto 3rem !important;
    padding-top: 1rem !important;
}

@media (min-width: 600px) {
    body.lbp-themed.lbp-themed .joy-process-grid {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (min-width: 1024px) {
    body.lbp-themed.lbp-themed .joy-process-grid {
        grid-template-columns: repeat(4, 1fr) !important;
        gap: 2rem 1.25rem !important;
    }
}

body.lbp-themed.lbp-themed .joy-process-step {
    position: relative !important;
    padding: 1.5rem 1.5rem 1.5rem !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: 1.5rem !important;
    box-shadow: 6px 6px 0 0 var(--joy-ink) !important;
    text-align: left !important;
    min-height: 160px !important;
    display: flex !important;
    flex-direction: column !important;
}

body.lbp-themed.lbp-themed .joy-process-grid .joy-process-step:nth-child(4n+1) {
    background: var(--joy-pink) !important;
    color: var(--joy-cream) !important;
}
body.lbp-themed.lbp-themed .joy-process-grid .joy-process-step:nth-child(4n+2) {
    background: var(--joy-yellow) !important;
    color: var(--joy-ink) !important;
}
body.lbp-themed.lbp-themed .joy-process-grid .joy-process-step:nth-child(4n+3) {
    background: var(--joy-green) !important;
    color: var(--joy-cream) !important;
}
body.lbp-themed.lbp-themed .joy-process-grid .joy-process-step:nth-child(4n+4) {
    background: var(--joy-cobalt) !important;
    color: var(--joy-cream) !important;
}

body.lbp-themed.lbp-themed .joy-process-step .joy-process-num {
    position: absolute !important;
    top: -16px !important;
    left: 16px !important;
    width: 32px !important;
    height: 32px !important;
    background: var(--joy-cream) !important;
    color: var(--joy-ink) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: 50% !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 800 !important;
    font-size: 0.92rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 2px 2px 0 0 var(--joy-ink) !important;
    z-index: 5 !important;
}

body.lbp-themed.lbp-themed .joy-process-step h3,
body.lbp-themed.lbp-themed .joy-process-step strong {
    font-family: var(--joy-font-display) !important;
    font-size: 1.3rem !important;
    line-height: 1.05 !important;
    color: inherit !important;
    margin: 0 0 0.5rem !important;
    text-align: left !important;
    font-weight: 400 !important;
    display: block !important;
}

body.lbp-themed.lbp-themed .joy-process-step p,
body.lbp-themed.lbp-themed .joy-process-step span {
    color: inherit !important;
    opacity: 0.92;
    font-size: 0.85rem !important;
    line-height: 1.5 !important;
    margin: 0 !important;
    text-align: left !important;
    display: block !important;
}

/* Bottom row : testimonial card LEFT + CTA card RIGHT */
body.lbp-themed.lbp-themed .joy-process-bottom {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
    max-width: var(--joy-container) !important;
    margin: 0 auto !important;
}

@media (min-width: 1024px) {
    body.lbp-themed.lbp-themed .joy-process-bottom {
        grid-template-columns: 1.6fr 1fr !important;
        gap: 2rem !important;
    }
}

body.lbp-themed.lbp-themed .joy-process-testimonial {
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: 2rem !important;
    box-shadow: 8px 8px 0 0 var(--joy-ink) !important;
    padding: 2rem !important;
}

body.lbp-themed.lbp-themed .joy-process-testimonial-eyebrow {
    font-family: var(--joy-font-script) !important;
    font-style: italic !important;
    color: var(--joy-cobalt) !important;
    font-size: 1.2rem !important;
    margin: 0 0 1rem !important;
    line-height: 1 !important;
}

body.lbp-themed.lbp-themed .joy-process-testimonial blockquote {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-ink) !important;
    font-size: clamp(1.3rem, 2.5vw, 1.8rem) !important;
    line-height: 1.2 !important;
    margin: 0 0 1rem !important;
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
    font-style: normal !important;
}

body.lbp-themed.lbp-themed .joy-process-testimonial blockquote em {
    color: var(--joy-pink) !important;
    font-style: italic !important;
}

body.lbp-themed.lbp-themed .joy-process-testimonial cite {
    font-family: var(--joy-font-body) !important;
    font-style: normal !important;
    color: var(--joy-ink-mute) !important;
    font-size: 0.9rem !important;
}

body.lbp-themed.lbp-themed .joy-process-cta {
    background: var(--joy-pink) !important;
    color: var(--joy-cream) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: 2rem !important;
    box-shadow: 8px 8px 0 0 var(--joy-ink) !important;
    padding: 2rem !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: space-between !important;
    min-height: 180px !important;
}

body.lbp-themed.lbp-themed .joy-process-cta-eyebrow {
    font-family: var(--joy-font-script) !important;
    font-style: italic !important;
    color: var(--joy-yellow) !important;
    font-size: 1.2rem !important;
    margin: 0 0 0.4rem !important;
    line-height: 1 !important;
}

body.lbp-themed.lbp-themed .joy-process-cta h3 {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-cream) !important;
    font-size: clamp(1.5rem, 2.8vw, 2rem) !important;
    line-height: 1 !important;
    margin: 0 0 0.6rem !important;
}

body.lbp-themed.lbp-themed .joy-process-cta p {
    color: rgba(251, 246, 233, 0.85) !important;
    font-size: 0.9rem !important;
    margin: 0 0 1.2rem !important;
    line-height: 1.5 !important;
}

body.lbp-themed.lbp-themed .joy-process-cta a {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.4rem !important;
    background: var(--joy-ink) !important;
    color: var(--joy-cream) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.7rem 1.3rem !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 700 !important;
    font-size: 0.9rem !important;
    text-decoration: none !important;
    align-self: flex-start;
    box-shadow: 4px 4px 0 0 var(--joy-yellow) !important;
    transition: transform 0.18s ease;
    line-height: 1.3 !important;
}

body.lbp-themed.lbp-themed .joy-process-cta a:hover {
    transform: translate(-2px, -2px);
}

/* Tags row */
body.lbp-themed.lbp-themed .joy-process-tags {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.5rem !important;
    max-width: var(--joy-container) !important;
    margin: 2rem auto 0 !important;
    padding: 0 !important;
}

body.lbp-themed.lbp-themed .joy-process-tags .tag,
body.lbp-themed.lbp-themed .joy-process-tags a {
    display: inline-block !important;
    background: transparent !important;
    color: var(--joy-ink) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.4rem 1rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    text-decoration: none !important;
    box-shadow: none !important;
    line-height: 1.3 !important;
}

body.lbp-themed.lbp-themed .joy-process-tags a:hover {
    background: var(--joy-ink) !important;
    color: var(--joy-cream) !important;
}

/* Cache l'ancien custom-grid quand la nouvelle structure est injectee */
body.lbp-themed.lbp-themed .custom-orders.joy-rebuilt .custom-grid {
    display: none !important;
}


/* ============================================================
   38. NEWSLETTER - OVERRIDES FINAUX (spec utilisateur)
   ============================================================ */

/* === SUPPRIMER les fleurs decoratives ::before/::after === */
body.lbp-themed.lbp-themed .newsletter::before,
body.lbp-themed.lbp-themed .newsletter::after,
body.lbp-themed.lbp-themed .newsletter-inner::before,
body.lbp-themed.lbp-themed .newsletter-inner::after,
body.lbp-themed.lbp-themed .newsletter-content::before,
body.lbp-themed.lbp-themed .newsletter-content::after,
body.lbp-themed.lbp-themed .newsletter > .container::before,
body.lbp-themed.lbp-themed .newsletter > .container::after {
    display: none !important;
    content: none !important;
    background: none !important;
    background-image: none !important;
    animation: none !important;
}

/* === Newsletter et newsletter-content : full width === */
body.lbp-themed.lbp-themed .newsletter,
body.lbp-themed.lbp-themed .newsletter-content,
body.lbp-themed.lbp-themed .newsletter-inner {
    max-width: 100% !important;
}

/* === .newsletter > * : flex column centre avec padding === */
body.lbp-themed.lbp-themed .newsletter > * {
    z-index: 2;
    padding: 3rem 10rem !important;
    margin-top: 3rem;
    display: flex;
    flex-direction: column;
    align-content: center;
    align-items: center;
}

/* Fallback mobile : padding 10rem casse sous 900px */
@media (max-width: 900px) {
    body.lbp-themed.lbp-themed .newsletter > * {
        padding: 2.5rem 2rem !important;
        margin-top: 1.5rem;
    }
}

@media (max-width: 600px) {
    body.lbp-themed.lbp-themed .newsletter > * {
        padding: 2rem 1.25rem !important;
        margin-top: 1rem;
    }
}

/* === Form : column toujours (mobile + desktop) === */
body.lbp-themed.lbp-themed .newsletter form,
body.lbp-themed.lbp-themed .newsletter-form {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.75rem !important;
    max-width: 600px !important;
    margin: 0 auto !important;
    width: 100%;
}

/* === Newsletter input group (input + bouton sur une ligne) === */
body.lbp-themed.lbp-themed .newsletter-input-group {
    display: flex !important;
    gap: 0.5rem !important;
    margin-bottom: 1rem !important;
    width: 100% !important;
}

/* === H2 newsletter : font display 4.5rem === */
body.lbp-themed.lbp-themed .newsletter h2,
body.lbp-themed.lbp-themed .newsletter .section-title {
    font-family: var(--joy-font-display) !important;
    font-size: 4.5rem !important;
    color: var(--joy-ink) !important;
    line-height: 0.95 !important;
    margin: 0 0 1rem !important;
    letter-spacing: -0.02em !important;
    max-width: 700px !important;
    text-align: center !important;
}

@media (max-width: 768px) {
    body.lbp-themed.lbp-themed .newsletter h2,
    body.lbp-themed.lbp-themed .newsletter .section-title {
        font-size: 2.75rem !important;
    }
}

@media (max-width: 480px) {
    body.lbp-themed.lbp-themed .newsletter h2,
    body.lbp-themed.lbp-themed .newsletter .section-title {
        font-size: 2.25rem !important;
    }
}

/* === Newsletter consent span : ink opacite 0.7, pas uppercase === */
body.lbp-themed.lbp-themed .newsletter-consent span,
body.lbp-themed .newsletter-consent span {
    color: var(--joy-ink) !important;
    opacity: 0.7 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    font-weight: 400 !important;
}

/* === Liens : pink-deep avec !important === */
body.lbp-themed.lbp-themed a {
    color: var(--joy-pink-deep) !important;
    text-decoration: none;
    transition: color 0.18s ease;
}

/* === Newsletter reassurance svg : pink-deep === */
body.lbp-themed.lbp-themed .newsletter-reassurance svg,
body.lbp-themed .newsletter-reassurance svg {
    color: var(--joy-pink-deep) !important;
    stroke: var(--joy-pink-deep) !important;
}

/* === Supprimer newsletter-icon === */
body.lbp-themed.lbp-themed .newsletter-icon,
body.lbp-themed.lbp-themed .newsletter .newsletter-icon,
body.lbp-themed.lbp-themed .newsletter > .newsletter-icon {
    display: none !important;
}


/* ============================================================
   39. BOUTIQUE - CORRECTIONS ENTETE + FILTRES (markup reel)
   ============================================================ */

/* Le page-hero est en DEHORS de .boutique-layout, donc plein largeur direct */
body.lbp-themed.lbp-themed > main > .page-hero,
body.lbp-themed.lbp-themed main > .page-hero,
body.lbp-themed.lbp-themed .page-hero {
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
    background: transparent !important;
    text-align: left !important;
    margin: 0 !important;
    padding: 3rem 1.5rem 2rem !important;
    position: relative !important;
    overflow: hidden !important;
    z-index: 1;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .page-hero {
        padding: 4rem 3rem 3rem !important;
    }
}

/* H1 Boutique massif */
body.lbp-themed.lbp-themed .page-hero h1 {
    font-family: var(--joy-font-display) !important;
    font-size: clamp(3rem, 9vw, 7rem) !important;
    color: var(--joy-ink) !important;
    line-height: 0.9 !important;
    letter-spacing: -0.03em !important;
    margin: 0.5rem 0 1rem !important;
    text-align: left !important;
    max-width: 60rem !important;
    font-weight: 400 !important;
    position: relative !important;
    z-index: 5 !important;
}

body.lbp-themed.lbp-themed .page-hero h1 em {
    color: var(--joy-pink) !important;
    font-style: italic !important;
}

/* Breadcrumb script cobalt above title */
body.lbp-themed.lbp-themed .page-hero .breadcrumb {
    font-family: var(--joy-font-script) !important;
    font-style: italic !important;
    font-size: 1.4rem !important;
    color: var(--joy-cobalt) !important;
    font-weight: 500 !important;
    margin: 0 !important;
    padding: 0 !important;
    line-height: 1.2 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    position: relative !important;
    z-index: 5 !important;
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 0.4rem !important;
    text-align: left !important;
}

body.lbp-themed.lbp-themed .page-hero .breadcrumb a {
    color: var(--joy-cobalt) !important;
    text-decoration: none !important;
    font-style: italic !important;
}

body.lbp-themed.lbp-themed .page-hero .breadcrumb a:hover {
    color: var(--joy-pink) !important;
}

body.lbp-themed.lbp-themed .page-hero .breadcrumb span {
    color: var(--joy-ink) !important;
    font-style: italic !important;
}

body.lbp-themed.lbp-themed .page-hero p {
    color: var(--joy-ink-soft) !important;
    font-size: 1.05rem !important;
    line-height: 1.55 !important;
    margin: 0 !important;
    max-width: 36rem !important;
    text-align: left !important;
    position: relative !important;
    z-index: 5 !important;
}

/* Filtres bar : visibilite garantie, z-index haut, sticky propre */
body.lbp-themed.lbp-themed .boutique-layout {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
}

body.lbp-themed.lbp-themed .boutique-layout > .boutique-filters-bar,
body.lbp-themed.lbp-themed .boutique-filters-bar {
    position: sticky !important;
    top: 0 !important;
    z-index: 30 !important;
    background: var(--joy-cream) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border-top: 2px solid var(--joy-ink) !important;
    border-bottom: 2px solid var(--joy-ink) !important;
    padding: 0.85rem 1.5rem !important;
    margin: 0 !important;
    width: 100% !important;
    max-width: none !important;
    display: flex !important;
    align-items: center !important;
    box-sizing: border-box !important;
    overflow: visible !important;
    visibility: visible !important;
    opacity: 1 !important;
    min-height: 64px !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .boutique-filters-bar {
        padding: 1rem 3rem !important;
    }
}

/* boutique-tools : reste en flex normal (pas display:contents) - voir section 46 */
/* Tabs : flex 1 (prend tout l'espace), scroll horizontal sans wrap, sans scrollbar */
body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-tabs {
    display: flex !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
    flex: 1 1 0 !important;
    min-width: 0 !important;
    gap: 0.5rem !important;
    padding: 2px 2px 4px !important;
    margin: 0 !important;
    -webkit-overflow-scrolling: touch !important;
    align-items: center !important;
}

body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-tabs::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
}

body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-tab {
    flex: 0 0 auto !important;
    flex-shrink: 0 !important;
    white-space: nowrap !important;
    background: transparent !important;
    border: 2px solid var(--joy-ink) !important;
    color: var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.5rem 1rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    text-decoration: none !important;
    box-shadow: none !important;
    line-height: 1.3 !important;
    transition: background 0.18s ease, color 0.18s ease, transform 0.18s ease !important;
}

body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-tab:hover {
    background: var(--joy-cream-soft) !important;
    transform: translateY(-1px);
}

body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-tab.active {
    background: var(--joy-ink) !important;
    color: var(--joy-cream) !important;
    border-color: var(--joy-ink) !important;
}

/* Search form : compact, expansible */
body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-search-form {
    flex: 0 0 auto !important;
    display: flex !important;
    align-items: center !important;
    margin: 0 !important;
    position: relative !important;
}

body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-search-toggle {
    background: transparent !important;
    border: 2px solid var(--joy-ink) !important;
    color: var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    width: 38px !important;
    height: 38px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    padding: 0 !important;
    transition: background 0.18s ease;
}

body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-search-toggle:hover {
    background: var(--joy-cream-soft) !important;
}

body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-search-input {
    width: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    margin: 0 !important;
    transition: width 0.25s ease, padding 0.25s ease, border 0.25s ease !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.85rem !important;
    color: var(--joy-ink) !important;
    box-shadow: none !important;
    height: 38px !important;
    border-radius: var(--joy-radius-pill) !important;
    box-sizing: border-box !important;
}

body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-search-form[data-expanded="true"] .boutique-search-input {
    width: 200px !important;
    padding: 0 0.9rem !important;
    border: 2px solid var(--joy-ink) !important;
    margin-left: 0.4rem !important;
}

/* Sort select */
body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-sort-select {
    flex: 0 0 auto !important;
    background: transparent !important;
    border: 2px solid var(--joy-ink) !important;
    color: var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.4rem 2rem 0.4rem 1rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    cursor: pointer !important;
    height: 38px !important;
    -webkit-appearance: none !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none' stroke='%232a1a0f' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='1 1 5 5 9 1'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 0.85rem center !important;
    max-width: 200px;
}

/* Cols toggle */
body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-cols-toggle {
    flex: 0 0 auto !important;
    display: flex !important;
    gap: 0 !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    overflow: hidden !important;
    height: 38px !important;
    align-items: stretch !important;
}

body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-cols-toggle .cols-btn {
    background: transparent !important;
    border: none !important;
    border-right: 1px solid var(--joy-ink) !important;
    color: var(--joy-ink) !important;
    padding: 0 0.6rem !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: background 0.18s ease;
    min-width: 36px !important;
}

body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-cols-toggle .cols-btn:last-child {
    border-right: none !important;
}

body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-cols-toggle .cols-btn:hover {
    background: var(--joy-cream-soft) !important;
}

body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-cols-toggle .cols-btn.active {
    background: var(--joy-ink) !important;
    color: var(--joy-cream) !important;
}

/* Reset cross button */
body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-reset {
    flex: 0 0 auto !important;
    width: 38px !important;
    height: 38px !important;
    border-radius: 50% !important;
    border: 2px solid var(--joy-ink) !important;
    color: var(--joy-ink) !important;
    background: var(--joy-yellow) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    text-decoration: none !important;
    transition: transform 0.18s ease;
}

body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-reset:hover {
    transform: rotate(90deg);
}

/* Mobile : filtres en wrap */
@media (max-width: 599px) {
    body.lbp-themed.lbp-themed .boutique-filters-bar {
        flex-wrap: wrap !important;
        padding: 0.7rem 1rem !important;
        gap: 0.5rem !important;
    }
    body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-tabs {
        flex: 1 1 100% !important;
        order: -1 !important;
        margin: 0 -1rem 0.4rem !important;
        padding: 2px 1rem 4px !important;
    }
    body.lbp-themed.lbp-themed .page-hero {
        padding: 2rem 1rem 1.5rem !important;
    }
    body.lbp-themed.lbp-themed .page-hero h1 {
        font-size: 2.75rem !important;
    }
}


/* ============================================================
   40. NEWSLETTER FLEURS ANIMEES + STORES FIX
   ============================================================ */

/* === Newsletter : reactive les fleurs decoratives DANS .newsletter-content === */
/* La regle 38 supprime ::before/::after sur .newsletter et .newsletter-content
   Pour reintroduire les fleurs animees DEDANS sans casser les tailles voulues,
   on les ajoute via 2 spans purement decoratifs injectes par le JS, OU via
   ::before/::after sur .newsletter-content avec position:absolute interne. */

/* On va utiliser ::before/::after de .newsletter-content avec specifite max
   pour outrepasser la regle "display: none" de la section 38 */
body.lbp-themed.lbp-themed.lbp-themed .newsletter-content::before {
    content: '' !important;
    display: block !important;
    position: absolute !important;
    top: -1.5rem !important;
    left: -2rem !important;
    width: clamp(8rem, 16vw, 14rem) !important;
    aspect-ratio: 1 !important;
    background-image: var(--joy-img-marigold) !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    pointer-events: none !important;
    z-index: 1 !important;
    --rot: 8deg !important;
    animation: joy-float 7s ease-in-out infinite !important;
    opacity: 1 !important;
    background-color: transparent !important;
}

body.lbp-themed.lbp-themed.lbp-themed .newsletter-content::after {
    content: '' !important;
    display: block !important;
    position: absolute !important;
    bottom: -1.5rem !important;
    right: -2rem !important;
    width: clamp(9rem, 18vw, 16rem) !important;
    aspect-ratio: 1 !important;
    background-image: var(--joy-img-anemone) !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    pointer-events: none !important;
    z-index: 1 !important;
    --rot: -8deg !important;
    animation: joy-float 8s ease-in-out infinite reverse !important;
    opacity: 1 !important;
    background-color: transparent !important;
}

/* La newsletter (section parent) doit avoir overflow:visible pour ne pas couper
   les fleurs ; .newsletter-content a position:relative pour que les pseudos
   se positionnent correctement par rapport a elle */
body.lbp-themed.lbp-themed .newsletter {
    overflow: visible !important;
    position: relative !important;
}

body.lbp-themed.lbp-themed .newsletter-content {
    position: relative !important;
    overflow: visible !important;
}

/* Le contenu interieur (h2, p, form...) doit etre AU-DESSUS des fleurs */
body.lbp-themed.lbp-themed .newsletter-content > * {
    position: relative !important;
    z-index: 2 !important;
}

/* === STORES "Ou me trouver" - fix d'affichage === */
/* Si la section a la classe .joy-rebuilt mais que le JS n'a pas charge a temps,
   il faut que le markup d'origine reste visible en fallback. */

/* Forcer la visibilite explicite de la section stores et son contenu */
body.lbp-themed.lbp-themed section.stores {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 100% !important;
    max-width: none !important;
    padding: 5rem 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    position: relative !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed section.stores {
        padding: 6rem 0 !important;
    }
}

/* Quand JS a fait son travail (.joy-rebuilt), on affiche .joy-stores-rebuild,
   tout le reste de la section est masque. */
body.lbp-themed.lbp-themed section.stores.joy-rebuilt > *:not(.joy-stores-rebuild) {
    display: none !important;
}

/* La grille de la rebuild doit etre toujours bien stylee */
body.lbp-themed.lbp-themed .joy-stores-rebuild {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
    align-items: center !important;
    width: 100% !important;
    max-width: 1320px !important;
    margin: 0 auto !important;
    padding: 0 1.5rem !important;
    box-sizing: border-box !important;
    visibility: visible !important;
    opacity: 1 !important;
}

@media (min-width: 1024px) {
    body.lbp-themed.lbp-themed .joy-stores-rebuild {
        grid-template-columns: minmax(300px, 1fr) 1.4fr !important;
        gap: 3rem !important;
        padding: 0 3rem !important;
    }
}

/* Si le JS n'a PAS reussi a transformer la section (echec, slow...), 
   on garde un fallback acceptable avec le markup d'origine en pleine largeur */
body.lbp-themed.lbp-themed section.stores:not(.joy-rebuilt) {
    padding-left: 1.5rem !important;
    padding-right: 1.5rem !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed section.stores:not(.joy-rebuilt) {
        padding-left: 3rem !important;
        padding-right: 3rem !important;
    }
}

/* La section-header dans le fallback : aligne a gauche */
body.lbp-themed.lbp-themed section.stores:not(.joy-rebuilt) .section-header {
    text-align: left !important;
    max-width: none !important;
    padding: 0 !important;
    margin: 0 0 2rem !important;
}

body.lbp-themed.lbp-themed section.stores:not(.joy-rebuilt) .section-label {
    color: var(--joy-cobalt) !important;
    font-style: italic !important;
}

body.lbp-themed.lbp-themed section.stores:not(.joy-rebuilt) .section-title {
    text-align: left !important;
    font-size: clamp(2.5rem, 6vw, 4.5rem) !important;
}

body.lbp-themed.lbp-themed section.stores:not(.joy-rebuilt) .section-title em {
    color: var(--joy-pink) !important;
    font-style: italic !important;
}

body.lbp-themed.lbp-themed section.stores:not(.joy-rebuilt) .stores-grid {
    grid-template-columns: 1fr !important;
    max-width: 1100px !important;
    margin: 0 auto !important;
    padding: 0 !important;
}


/* ============================================================
   41. STORES - PRESERVATION DES SAUTS DE LIGNE
   ============================================================ */

/* La valeur (adresse / horaires) doit afficher les <br> proprement avec
   un line-height legerement aere et une typographie display chunky */
body.lbp-themed.lbp-themed .joy-stores-info-value {
    font-family: var(--joy-font-display) !important;
    font-size: 1.1rem !important;
    line-height: 1.2 !important;
    display: block !important;
    margin: 0 !important;
    letter-spacing: -0.01em !important;
}

body.lbp-themed.lbp-themed .joy-stores-info-value br {
    display: block !important;
    content: '' !important;
    margin-top: 0.15rem !important;
}

/* La fleur derriere Chartres (\u2740 = ❀) reprend la teinte cobalt */
body.lbp-themed.lbp-themed .joy-stores-card-city {
    color: var(--joy-cobalt) !important;
}

/* La card de droite ne doit pas etre tronquee : overflow visible pour le butterfly */
body.lbp-themed.lbp-themed .joy-stores-card {
    overflow: visible !important;
}

/* Voir la boutique : pill noir/cream avec ombre pink (Casa Flora) */
body.lbp-themed.lbp-themed .joy-stores-card-cta {
    margin-top: 0.5rem !important;
    box-shadow: 4px 4px 0 0 var(--joy-pink) !important;
}


/* ============================================================
   42. COLLECTIONS GRILLE DESTRUCTUREE + SUR MESURE WIDE
   - Collections : 3 cards avec offsets verticaux differents (rythme Casa Flora)
   - Sur mesure : cards landscape larges avec aspect ratio ~3/1
   ============================================================ */

/* ============================================================
   COLLECTIONS - GRID DESTRUCTUREE
   Card 1 : pas d'offset, rotation -1deg
   Card 2 : translateY +2.5rem (decalee vers le bas), rotation +1deg
   Card 3 : translateY -1rem (legerement vers le haut), rotation -0.5deg
   ============================================================ */

@media (min-width: 1024px) {
    body.lbp-themed.lbp-themed .collections-grid {
        grid-template-columns: 1fr 1fr 1fr !important;
        gap: 2rem !important;
        align-items: start !important;
        padding: 2rem 3rem 4rem !important;
    }

    /* RESET : on annule tout transform: rotate(0deg) precedent et
       on applique le pattern destructure */
    body.lbp-themed.lbp-themed .collections-grid > .collection-card:nth-child(3n+1),
    body.lbp-themed.lbp-themed .collections-grid .collection-card:nth-child(3n+1) {
        transform: rotate(-1deg) !important;
        margin-top: 0 !important;
        aspect-ratio: 3 / 4 !important;
    }

    body.lbp-themed.lbp-themed .collections-grid > .collection-card:nth-child(3n+2),
    body.lbp-themed.lbp-themed .collections-grid .collection-card:nth-child(3n+2) {
        transform: rotate(1deg) translateY(2.5rem) !important;
        margin-top: 0 !important;
        aspect-ratio: 3 / 4 !important;
    }

    body.lbp-themed.lbp-themed .collections-grid > .collection-card:nth-child(3n+3),
    body.lbp-themed.lbp-themed .collections-grid .collection-card:nth-child(3n+3) {
        transform: rotate(-0.5deg) translateY(-0.5rem) !important;
        margin-top: 0 !important;
        aspect-ratio: 3 / 4 !important;
    }

    /* Hover : redresse + leve */
    body.lbp-themed.lbp-themed .collections-grid > .collection-card:nth-child(3n+1):hover {
        transform: rotate(0deg) translateY(-8px) !important;
    }

    body.lbp-themed.lbp-themed .collections-grid > .collection-card:nth-child(3n+2):hover {
        transform: rotate(0deg) translateY(2rem) !important;
    }

    body.lbp-themed.lbp-themed .collections-grid > .collection-card:nth-child(3n+3):hover {
        transform: rotate(0deg) translateY(-1.5rem) !important;
    }
}

/* Mobile : cards en colonne unique sans offsets */
@media (max-width: 1023px) {
    body.lbp-themed.lbp-themed .collections-grid > .collection-card,
    body.lbp-themed.lbp-themed .collections-grid .collection-card,
    body.lbp-themed.lbp-themed .collections-grid > .collection-card:nth-child(3n+1),
    body.lbp-themed.lbp-themed .collections-grid > .collection-card:nth-child(3n+2),
    body.lbp-themed.lbp-themed .collections-grid > .collection-card:nth-child(3n+3) {
        transform: none !important;
        margin-top: 0 !important;
    }
}

/* ============================================================
   SUR MESURE - CARDS LANDSCAPE LARGES
   Aspect ratio ~3/1 au lieu de 16/9 pour matcher l'image Casa Flora
   Section pleine largeur, gap reduit pour que les cards soient larges
   ============================================================ */

body.lbp-themed.lbp-themed .custom-orders {
    width: 100% !important;
    max-width: none !important;
    padding: 5rem 1.5rem !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

@media (min-width: 768px) {
    body.lbp-themed.lbp-themed .custom-orders {
        padding: 6rem 3rem !important;
    }
}

/* Section header full-width */
body.lbp-themed.lbp-themed .custom-orders > .section-header,
body.lbp-themed.lbp-themed .custom-orders .section-header {
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 0 3rem !important;
}

/* Conteneur des univers : grille 2 cols sur desktop, full width */
body.lbp-themed.lbp-themed .custom-orders .custom-universes {
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

@media (min-width: 1024px) {
    body.lbp-themed.lbp-themed .custom-orders .custom-universes {
        grid-template-columns: 1fr 1fr !important;
        gap: 2rem !important;
    }
}

/* Cards landscape larges : aspect-ratio ~3/1 sur desktop */
@media (min-width: 1024px) {
    body.lbp-themed.lbp-themed .custom-orders .custom-universes .universe-card,
    body.lbp-themed.lbp-themed .custom-orders .universe-card {
        aspect-ratio: 2.6 / 1 !important;
        min-height: 260px !important;
        max-height: none !important;
        width: 100% !important;
        padding: 2rem 2.5rem !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: space-between !important;
        align-items: flex-start !important;
        position: relative !important;
        overflow: hidden !important;
    }
}

@media (min-width: 1280px) {
    body.lbp-themed.lbp-themed .custom-orders .custom-universes .universe-card,
    body.lbp-themed.lbp-themed .custom-orders .universe-card {
        aspect-ratio: 2.8 / 1 !important;
        padding: 2.5rem 3rem !important;
    }
}

/* Mobile / tablette : cards moins larges, hauteur naturelle */
@media (max-width: 1023px) {
    body.lbp-themed.lbp-themed .custom-orders .custom-universes .universe-card,
    body.lbp-themed.lbp-themed .custom-orders .universe-card {
        aspect-ratio: auto !important;
        min-height: 240px !important;
        padding: 1.75rem !important;
    }
}

/* Titre h3 plus grand sur desktop pour les cards larges */
@media (min-width: 1024px) {
    body.lbp-themed.lbp-themed .custom-orders .universe-card h3 {
        font-size: 2rem !important;
        line-height: 1 !important;
        margin: 0 0 0.6rem !important;
    }

    body.lbp-themed.lbp-themed .custom-orders .universe-card p {
        font-size: 1rem !important;
        line-height: 1.5 !important;
        max-width: 32rem !important;
    }

    /* Liste de tags en bas avec espace propre */
    body.lbp-themed.lbp-themed .custom-orders .universe-card .universe-list {
        margin-top: 1rem !important;
    }
}

/* Decoration fleur : positionnee bottom-right sans deborder excessivement */
body.lbp-themed.lbp-themed .custom-orders .universe-card::after {
    bottom: -1rem !important;
    right: -1rem !important;
    width: clamp(8rem, 14vw, 13rem) !important;
    z-index: -1 !important;
}


/* ============================================================
   43. FORCE FINALE - Specificite max pour collections destructurees
   et sur-mesure wide. Garanti dernier mot dans la cascade.
   ============================================================ */

@media (min-width: 1024px) {
    /* Spec maximale : html + body + 3x lbp-themed pour ecraser TOUT */
    html body.lbp-themed.lbp-themed.lbp-themed .collections-grid {
        display: grid !important;
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 2rem !important;
        align-items: start !important;
        padding: 3rem 3rem 5rem !important;
        max-width: none !important;
        width: 100% !important;
    }

    /* Pattern Casa Flora exact :
       - cards aspect 4/5 droites (pas de rotation au repos)
       - index pair (1er, 3eme...) : pas d'offset
       - index impair (2eme, 4eme...) : translateY 3rem (48px) sur md+
       - hover : -translate-y-2 (-8px), AUCUNE rotation
       - fleur interne : scale 1.1 + rotate 12deg au hover
    */
    html body.lbp-themed.lbp-themed.lbp-themed .collections-grid > .collection-card {
        aspect-ratio: 4 / 5 !important;
        transform: translateY(0) !important;
        margin: 0 !important;
    }
    html body.lbp-themed.lbp-themed.lbp-themed .collections-grid > .collection-card:nth-child(2n) {
        transform: translateY(3rem) !important;
    }

    /* Hover : juste -8px, sans rotation */
    html body.lbp-themed.lbp-themed.lbp-themed .collections-grid > .collection-card:hover {
        transform: translateY(-0.5rem) !important;
    }
    html body.lbp-themed.lbp-themed.lbp-themed .collections-grid > .collection-card:nth-child(2n):hover {
        transform: translateY(calc(3rem - 0.5rem)) !important;
    }

    /* === SUR MESURE - cards landscape large === */
    html body.lbp-themed.lbp-themed.lbp-themed .custom-orders {
        padding: 6rem 3rem !important;
    }

    html body.lbp-themed.lbp-themed.lbp-themed .custom-orders .custom-universes {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 2rem !important;
        max-width: none !important;
        width: 100% !important;
    }

    html body.lbp-themed.lbp-themed.lbp-themed .custom-orders .custom-universes .universe-card {
        aspect-ratio: 2.7 / 1 !important;
        min-height: 240px !important;
        max-height: none !important;
        height: auto !important;
        width: 100% !important;
        padding: 2rem 2.5rem !important;
        display: flex !important;
        flex-direction: column !important;
        justify-content: space-between !important;
        align-items: flex-start !important;
        position: relative !important;
        overflow: hidden !important;
    }

    html body.lbp-themed.lbp-themed.lbp-themed .custom-orders .custom-universes .universe-card:nth-child(2n+1) {
        transform: rotate(-1deg) !important;
    }
    html body.lbp-themed.lbp-themed.lbp-themed .custom-orders .custom-universes .universe-card:nth-child(2n+2) {
        transform: rotate(1deg) !important;
    }

    html body.lbp-themed.lbp-themed.lbp-themed .custom-orders .universe-card h3 {
        font-size: 2rem !important;
        line-height: 1 !important;
        margin: 0 0 0.6rem !important;
    }

    html body.lbp-themed.lbp-themed.lbp-themed .custom-orders .universe-card p {
        font-size: 0.95rem !important;
        line-height: 1.5 !important;
        margin: 0 0 1rem !important;
        max-width: 36rem !important;
    }
}

@media (min-width: 1280px) {
    html body.lbp-themed.lbp-themed.lbp-themed .custom-orders .custom-universes .universe-card {
        aspect-ratio: 3 / 1 !important;
        padding: 2.5rem 3rem !important;
    }
    html body.lbp-themed.lbp-themed.lbp-themed .custom-orders .universe-card h3 {
        font-size: 2.4rem !important;
    }
}


/* ============================================================
   44. SUR MESURE - custom-content + custom-orders-bg full width
   custom-content est le wrapper parent qui contient section-header,
   custom-universes et custom-grid. Sans cette regle il herite d'un
   max-width du CMS qui empeche les cards de s'elargir.
   ============================================================ */

html body.lbp-themed.lbp-themed.lbp-themed .custom-orders {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 5rem 1.5rem !important;
    box-sizing: border-box !important;
    position: relative !important;
}

@media (min-width: 768px) {
    html body.lbp-themed.lbp-themed.lbp-themed .custom-orders {
        padding: 6rem 3rem !important;
    }
}

/* Le bg de la section custom-orders s'etale full width */
html body.lbp-themed.lbp-themed.lbp-themed .custom-orders .custom-orders-bg {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
}

/* CUSTOM-CONTENT : wrapper parent full width */
html body.lbp-themed.lbp-themed.lbp-themed .custom-orders .custom-content {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    position: relative !important;
    z-index: 2 !important;
    box-sizing: border-box !important;
    display: block !important;
}

/* Section-header dans custom-content : full width aussi */
html body.lbp-themed.lbp-themed.lbp-themed .custom-orders .custom-content .section-header {
    max-width: none !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 0 3rem !important;
}

/* Custom-universes : grille 2 cols full width */
html body.lbp-themed.lbp-themed.lbp-themed .custom-orders .custom-content .custom-universes {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
}

@media (min-width: 1024px) {
    html body.lbp-themed.lbp-themed.lbp-themed .custom-orders .custom-content .custom-universes {
        grid-template-columns: 1fr 1fr !important;
        gap: 2rem !important;
    }
}

/* Custom-grid (testimonial + tags) en bas : full width aussi */
html body.lbp-themed.lbp-themed.lbp-themed .custom-orders .custom-content .custom-grid {
    width: 100% !important;
    max-width: none !important;
    margin: 3rem 0 0 !important;
    padding: 0 !important;
}


/* ============================================================
   45. Z-INDEX universe-card content au-dessus de la fleur
   La fleur ::after est en z-index: -1, donc le contenu doit
   etre explicitement positionne pour creer son propre stacking.
   ============================================================ */

html body.lbp-themed.lbp-themed.lbp-themed .custom-orders .universe-card > * {
    position: relative !important;
    z-index: 1 !important;
}


/* ============================================================
   46. BOUTIQUE - REFONTE FINALE FILTRES + LAYOUT
   - Filter bar : NON sticky (reste en flow normal sous page-hero)
   - boutique-tools : flex normal (pas display:contents) pour layout propre
   - Breadcrumb aligne a gauche avec le titre
   - Cards plus grandes avec rotation visible et bonne hauteur
   ============================================================ */

/* === FILTER BAR : reset complet + flex normal === */
html body.lbp-themed.lbp-themed.lbp-themed .boutique-filters-bar {
    position: relative !important;
    top: auto !important;
    z-index: 5 !important;
    background: transparent !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border-top: 2px solid var(--joy-ink) !important;
    border-bottom: 2px solid var(--joy-ink) !important;
    padding: 1rem 1.5rem !important;
    margin: 0 0 3rem !important;
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box !important;
    overflow: visible !important;
    display: block !important;
    min-height: 0 !important;
}

/* boutique-tools : VRAI flex container (pas display:contents) */
html body.lbp-themed.lbp-themed.lbp-themed .boutique-filters-bar .boutique-tools {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 0.6rem !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    overflow: visible !important;
}

@media (min-width: 768px) {
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-filters-bar .boutique-tools {
        gap: 0.7rem !important;
    }
}

@media (max-width: 599px) {
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-filters-bar .boutique-tools {
        flex-wrap: wrap !important;
    }
}

/* Tabs : flex 1 (prennent toute la place dispo), scroll horizontal sans wrap */
html body.lbp-themed.lbp-themed.lbp-themed .boutique-filters-bar .boutique-tabs {
    display: flex !important;
    flex: 1 1 0 !important;
    min-width: 0 !important;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    scrollbar-width: none !important;
    gap: 0.5rem !important;
    padding: 2px 2px 4px !important;
    margin: 0 !important;
    align-items: center !important;
    position: relative !important;
    justify-content: flex-start;
}

html body.lbp-themed.lbp-themed.lbp-themed .boutique-filters-bar .boutique-tabs::-webkit-scrollbar {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
}

/* === PAGE HERO - breadcrumb + titre LEFT === */
html body.lbp-themed.lbp-themed.lbp-themed .page-hero {
    text-align: left !important;
    padding: 3rem 1.5rem 2.5rem !important;
}

@media (min-width: 768px) {
    html body.lbp-themed.lbp-themed.lbp-themed .page-hero {
        padding: 4rem 3rem 3rem !important;
    }
}

html body.lbp-themed.lbp-themed.lbp-themed .page-hero .breadcrumb {
    text-align: left !important;
    justify-content: flex-start !important;
    margin: 0 0 0.5rem !important;
    padding: 0 !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .page-hero h1 {
    text-align: left !important;
    margin: 0.25rem 0 1rem !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .page-hero p {
    text-align: left !important;
    margin: 0 !important;
}

/* === BOUTIQUE LAYOUT - ordre vertical propre === */
html body.lbp-themed.lbp-themed.lbp-themed .boutique-layout {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    position: relative !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .boutique-layout > main.boutique-main {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 1.5rem 5rem !important;
    box-sizing: border-box !important;
}

@media (min-width: 768px) {
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-layout > main.boutique-main {
        padding: 0 3rem 6rem !important;
    }
}

/* === PRODUCTS GRID - aere, rotations alternees plus visibles === */
html body.lbp-themed.lbp-themed.lbp-themed .boutique-main .products-grid,
html body.lbp-themed.lbp-themed.lbp-themed .boutique-layout .products-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

@media (min-width: 640px) {
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-main .products-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 1.75rem !important;
    }
}

@media (min-width: 1024px) {
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-main .products-grid {
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 2rem !important;
    }
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-main .products-grid[data-cols="2"] {
        grid-template-columns: repeat(2, 1fr) !important;
    }
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-main .products-grid[data-cols="4"] {
        grid-template-columns: repeat(4, 1fr) !important;
    }
}

/* Cards : rotations alternees plus visibles, aspect 4/5 */
html body.lbp-themed.lbp-themed.lbp-themed .boutique-main .products-grid > .product-card {
    grid-column: span 1 !important;
    grid-row: auto !important;
    aspect-ratio: 4 / 5 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    flex: none !important;
    margin: 0 !important;
}

@media (min-width: 1024px) {
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-main .products-grid > .product-card:nth-child(odd) {
        transform: rotate(1deg) !important;
    }
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-main .products-grid > .product-card:nth-child(even) {
        transform: rotate(-1deg) !important;
    }
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-main .products-grid > .product-card:hover {
        transform: rotate(0deg) translateY(-0.5rem) !important;
    }
}

@media (max-width: 1023px) {
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-main .products-grid > .product-card {
        transform: none !important;
    }
}


/* ============================================================
   47. A PROPOS + FICHE PRODUIT - matching Casa Flora
   ============================================================ */

/* === A PROPOS - structure verticale: titre / 2 cols texte / stats === */

/* about-grid : block (1 colonne unique au lieu de 2)
   pour permettre la cascade verticale */
html body.lbp-themed.lbp-themed.lbp-themed .about .about-grid {
    display: block !important;
    grid-template-columns: none !important;
    max-width: 1280px !important;
    width: 100% !important;
    margin: 0 auto !important;
    padding: 0 !important;
    position: relative;
    z-index: 2;
}

/* Cache la video about (Casa Flora n'en a pas) */
html body.lbp-themed.lbp-themed.lbp-themed .about .about-video {
    display: none !important;
}

/* about-text : grid 2 cols pour les paragraphes,
   mais h2 et about-stats span all cols */
html body.lbp-themed.lbp-themed.lbp-themed .about .about-text {
    display: grid !important;
    grid-template-columns: 1fr !important;
    column-gap: 3rem !important;
    row-gap: 2rem !important;
    width: 100% !important;
    max-width: none !important;
}

@media (min-width: 768px) {
    html body.lbp-themed.lbp-themed.lbp-themed .about .about-text {
        grid-template-columns: 1fr 1fr !important;
    }
}

/* H2 : full width (span 2 cols), align gauche */
html body.lbp-themed.lbp-themed.lbp-themed .about .about-text h2,
html body.lbp-themed.lbp-themed.lbp-themed .about-text h2 {
    grid-column: 1 / -1 !important;
    color: var(--joy-cream) !important;
    font-family: var(--joy-font-display) !important;
    font-size: clamp(2.6rem, 6vw, 5rem) !important;
    line-height: 1.05 !important;
    letter-spacing: -0.02em !important;
    margin: 0 0 2rem !important;
    text-align: left !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .about .about-text h2 em {
    color: var(--joy-cream) !important;
    -webkit-text-fill-color: var(--joy-cream) !important;
    font-style: italic !important;
}

/* Section-icon : eyebrow yellow script "à propos" au-dessus du h2 */
html body.lbp-themed.lbp-themed.lbp-themed .about .section-icon-left {
    grid-column: 1 / -1 !important;
    color: var(--joy-yellow) !important;
    margin: 0 !important;
}

/* Paragraphes : 1 par colonne (auto-flow par grid) */
html body.lbp-themed.lbp-themed.lbp-themed .about .about-text p {
    color: rgba(251, 246, 233, 0.92) !important;
    font-size: 1rem !important;
    line-height: 1.7 !important;
    margin: 0 !important;
    grid-column: span 1 !important;
}

@media (max-width: 767px) {
    html body.lbp-themed.lbp-themed.lbp-themed .about .about-text p {
        grid-column: 1 / -1 !important;
    }
}

/* Stats : full width (span 2 cols), 3 cols internes, centrees */
html body.lbp-themed.lbp-themed.lbp-themed .about .about-text .about-stats,
html body.lbp-themed.lbp-themed.lbp-themed .about .about-stats {
    grid-column: 1 / -1 !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 240px)) !important;
    gap: 1.25rem !important;
    margin: 3rem auto 0 !important;
    justify-content: center !important;
    width: 100% !important;
    max-width: 800px !important;
}

@media (max-width: 600px) {
    html body.lbp-themed.lbp-themed.lbp-themed .about .about-stats {
        grid-template-columns: 1fr !important;
    }
}

/* === FICHE PRODUIT - layout 2 cols Casa Flora === */

/* Le wrapper .product-detail passe en grid 2 cols */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
    width: 100% !important;
    max-width: 1400px !important;
    margin: 0 auto !important;
    padding: 2rem 1.5rem 4rem !important;
    box-sizing: border-box !important;
    align-items: start !important;
}

@media (min-width: 768px) {
    html body.lbp-themed.lbp-themed.lbp-themed .product-detail {
        padding: 3rem 3rem 5rem !important;
    }
}

@media (min-width: 1024px) {
    html body.lbp-themed.lbp-themed.lbp-themed .product-detail {
        grid-template-columns: 1fr 1fr !important;
        gap: 4rem !important;
    }
}

/* GALLERIE : carte colorée géante avec image */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-gallery {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    position: relative !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media {
    width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    background: var(--joy-yellow) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: 2.5rem !important;
    box-shadow: 8px 8px 0 0 var(--joy-ink) !important;
    overflow: hidden !important;
    position: relative !important;
    margin: 0 !important;
}

/* Couleur de fond auto basee sur data-joy-bg (pose par joy.js) */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-joy-bg="pink"] {
    background: var(--joy-pink) !important;
}
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-joy-bg="teal"] {
    background: var(--joy-teal) !important;
}
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-joy-bg="cobalt"] {
    background: var(--joy-cobalt) !important;
}
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-joy-bg="marigold"] {
    background: var(--joy-marigold) !important;
}
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-joy-bg="green"] {
    background: var(--joy-green) !important;
}
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-joy-bg="coral"] {
    background: var(--joy-coral) !important;
}
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-joy-bg="purple"] {
    background: var(--joy-purple) !important;
}

/* Override par swatch admin (data-swatch) sur la fiche produit : meme specificite que data-joy-bg */
/* Roses */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-swatch="joy-pink"]      { background: var(--joy-pink) !important; }
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-swatch="joy-pink-deep"] { background: var(--joy-pink-deep) !important; }
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-swatch="joy-pink-soft"] { background: var(--joy-pink-soft) !important; }
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-swatch="joy-pink-tint"] { background: var(--joy-pink-tint) !important; }
/* Coraux */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-swatch="joy-coral"]      { background: var(--joy-coral) !important; }
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-swatch="joy-coral-tint"] { background: var(--joy-coral-tint) !important; }
/* Marigolds */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-swatch="joy-marigold"]      { background: var(--joy-marigold) !important; }
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-swatch="joy-marigold-deep"] { background: var(--joy-marigold-deep) !important; }
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-swatch="joy-marigold-tint"] { background: var(--joy-marigold-tint) !important; }
/* Jaunes */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-swatch="joy-yellow"]      { background: var(--joy-yellow) !important; }
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-swatch="joy-yellow-soft"] { background: var(--joy-yellow-soft) !important; }
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-swatch="joy-yellow-tint"] { background: var(--joy-yellow-tint) !important; }
/* Verts */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-swatch="joy-green"]      { background: var(--joy-green) !important; }
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-swatch="joy-green-deep"] { background: var(--joy-green-deep) !important; }
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-swatch="joy-green-tint"] { background: var(--joy-green-tint) !important; }
/* Teals */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-swatch="joy-teal"]      { background: var(--joy-teal) !important; }
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-swatch="joy-teal-tint"] { background: var(--joy-teal-tint) !important; }
/* Cobalts */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-swatch="joy-cobalt"]      { background: var(--joy-cobalt) !important; }
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-swatch="joy-cobalt-deep"] { background: var(--joy-cobalt-deep) !important; }
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-swatch="joy-cobalt-tint"] { background: var(--joy-cobalt-tint) !important; }
/* Violets */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-swatch="joy-purple"]      { background: var(--joy-purple) !important; }
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-swatch="joy-purple-tint"] { background: var(--joy-purple-tint) !important; }
/* Cremes */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-swatch="joy-cream-soft"] { background: var(--joy-cream-soft) !important; }
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-swatch="joy-cream-warm"] { background: var(--joy-cream-warm) !important; }
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-swatch="joy-cream-deep"] { background: var(--joy-cream-deep) !important; }
/* Encres */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-swatch="joy-ink-soft"] { background: var(--joy-ink-soft) !important; }
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-swatch="joy-ink-mute"] { background: var(--joy-ink-mute) !important; }

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media img,
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media video {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    padding: 2rem !important;
    background: transparent !important;
    margin: 0 !important;
    border-radius: 0 !important;
    border: 0 !important;
    mix-blend-mode: normal;
}

/* Tag categorie top-left de la grande card (pill cream outline ink) */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-details > span:first-child {
    display: none !important;
}

/* Reaffiche la categorie sur la galerie en haut a gauche */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media::before {
    content: attr(data-joy-category);
    position: absolute;
    top: 1rem;
    left: 1rem;
    background: var(--joy-cream-soft);
    color: var(--joy-ink);
    border: 2px solid var(--joy-ink);
    border-radius: var(--joy-radius-pill);
    padding: 0.4rem 1rem;
    font-family: var(--joy-font-body);
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    z-index: 5;
    box-shadow: 2px 2px 0 0 var(--joy-ink);
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media:not([data-joy-category])::before,
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-main-media[data-joy-category=""]::before {
    display: none !important;
}

/* Butterfly bottom-right (deja injecte par joy.js) */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .joy-gallery-butterfly {
    position: absolute !important;
    bottom: 1rem !important;
    right: 1rem !important;
    width: 5rem !important;
    height: 5rem !important;
    pointer-events: none !important;
    z-index: 5 !important;
    animation: joy-wiggle 3s ease-in-out infinite !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .joy-gallery-butterfly img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
}

/* Thumbnails : 3 pills rounded sous la grande card */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-thumbnails {
    display: flex !important;
    gap: 0.75rem !important;
    margin: 1rem 0 0 !important;
    padding: 0 !important;
    flex-wrap: wrap !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-thumbnails .thumb-item {
    width: 64px !important;
    height: 64px !important;
    border-radius: 1.25rem !important;
    border: 2px solid var(--joy-ink) !important;
    overflow: hidden !important;
    cursor: pointer !important;
    background: var(--joy-cream-soft) !important;
    padding: 4px !important;
    transition: transform 0.15s ease !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-thumbnails .thumb-item.active {
    border-color: var(--joy-pink) !important;
    box-shadow: 0 0 0 2px var(--joy-pink) inset !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-thumbnails .thumb-item img,
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-thumbnails .thumb-item video {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: 0.75rem !important;
}

/* === DETAILS : right column === */

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-details {
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 1rem !important;
}

/* Maker / by Lupita Reyes -> en script italique cobalt
   On va styler la 1ere ligne (eyebrow par defaut "categorie") en script cobalt
   Mais elle est cachee plus haut. Donc on stylise le badges row si present. */

/* Title h1 de la fiche produit : Abril Fatface gros */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-title-row {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 1rem !important;
    margin: 0 !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-title-row h1,
html body.lbp-themed.lbp-themed.lbp-themed .product-detail h1 {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-ink) !important;
    font-size: clamp(2.5rem, 5vw, 4rem) !important;
    line-height: 1 !important;
    letter-spacing: -0.02em !important;
    margin: 0 !important;
    font-weight: 400 !important;
    text-align: left !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-title-row h1 em {
    color: var(--joy-pink) !important;
    font-style: italic !important;
}

/* Tagline / description courte sous le titre */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-tagline {
    color: var(--joy-ink-mute) !important;
    font-size: 0.85rem !important;
    line-height: 1.4 !important;
    margin: 0 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.12em !important;
    font-weight: 700 !important;
}

/* Prix : pink display gros */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-price-display,
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-price {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-pink) !important;
    font-size: 2.5rem !important;
    line-height: 1 !important;
    margin: 0.5rem 0 !important;
    font-weight: 400 !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-price-old,
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .price-old {
    color: var(--joy-ink-mute) !important;
    text-decoration: line-through !important;
    font-size: 1.2rem !important;
    margin-right: 0.5rem !important;
}

/* Description longue */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-description,
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-description-full {
    color: var(--joy-ink-soft) !important;
    font-size: 1rem !important;
    line-height: 1.6 !important;
    margin: 1rem 0 !important;
    border-bottom: 1px solid var(--joy-line) !important;
    padding-bottom: 1.5rem !important;
}

/* Features list - bullet flower pink */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-features,
html body.lbp-themed.lbp-themed.lbp-themed .product-detail ul.product-features {
    list-style: none !important;
    padding: 0 !important;
    margin: 0.5rem 0 1.5rem !important;
    border-bottom: 1px solid var(--joy-line) !important;
    padding-bottom: 1.5rem !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-features li {
    position: relative !important;
    padding: 0.4rem 0 0.4rem 1.6rem !important;
    color: var(--joy-ink-soft) !important;
    font-size: 0.95rem !important;
    line-height: 1.5 !important;
    border: none !important;
    margin: 0 !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-features li::before {
    content: '\2740' !important; /* ❀ flower */
    position: absolute !important;
    left: 0 !important;
    top: 0.4rem !important;
    color: var(--joy-pink) !important;
    font-size: 1rem !important;
    line-height: 1.5 !important;
}

/* Quantity + Add to cart row */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-actions,
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .qty-and-cart,
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .quantity-add-row {
    display: flex !important;
    align-items: stretch !important;
    gap: 0.8rem !important;
    margin: 1rem 0 !important;
    flex-wrap: nowrap !important;
}

/* Quantity controls : pill outlined */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .quantity-control,
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .qty-ctrl {
    display: flex !important;
    align-items: center !important;
    background: transparent !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0 0.5rem !important;
    height: 56px !important;
    flex-shrink: 0 !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .quantity-control button,
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .qty-ctrl button {
    background: transparent !important;
    border: 0 !important;
    color: var(--joy-ink) !important;
    width: 32px !important;
    height: 32px !important;
    font-size: 1.2rem !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: none !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .quantity-control input,
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .qty-ctrl input {
    border: 0 !important;
    background: transparent !important;
    width: 36px !important;
    text-align: center !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 700 !important;
    font-size: 1rem !important;
    padding: 0 !important;
    color: var(--joy-ink) !important;
}

/* Add to cart : full pink pill avec ombre */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .add-to-cart,
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .btn-add-cart,
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .btn-cart {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    background: var(--joy-pink) !important;
    color: var(--joy-cream) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0 1.5rem !important;
    height: 56px !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 700 !important;
    font-size: 1.05rem !important;
    cursor: pointer !important;
    box-shadow: 6px 6px 0 0 var(--joy-ink) !important;
    transition: transform 0.18s ease !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.5rem !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    line-height: 1 !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .add-to-cart:hover {
    transform: translate(-2px, -2px) !important;
}

/* Free shipping in script blue under the row */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-shipping-note,
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .free-shipping-note {
    font-family: var(--joy-font-script) !important;
    font-style: italic !important;
    color: var(--joy-cobalt) !important;
    font-size: 1.1rem !important;
    margin: 0.5rem 0 0 !important;
    line-height: 1 !important;
}


/* ============================================================
   48. COLLECTIONS - ANIMATION CASA FLORA EXACTE
   - Utilise CSS native "translate" (pas transform: translateY)
     pour pouvoir composer avec rotate sans clobber
   - Cards droites au repos (pas de rotation)
   - Index pair : translate 0 ; impair : translate y 3rem
   - Hover : translate y -0.5rem (pas de rotation sur la card)
   - SEULE la fleur ::before scale + rotate 12deg au hover
   - Card ENTIEREMENT cliquable (link overlay absolu)
   - Aucune animation sur le bouton "Voir la collection"
   ============================================================ */

/* RESET total des transforms anciens */
html body.lbp-themed.lbp-themed.lbp-themed .collections-grid > .collection-card,
html body.lbp-themed.lbp-themed.lbp-themed .collections-grid .collection-card {
    transform: none !important;
    aspect-ratio: 4 / 5 !important;
    margin: 0 !important;
    transition: translate 0.3s ease, transform 0.3s ease !important;
    position: relative !important;
}

/* Pattern destructure en utilisant translate (CSS native) */
@media (min-width: 768px) {
    html body.lbp-themed.lbp-themed.lbp-themed .collections-grid > .collection-card:nth-child(2n) {
        translate: 0 3rem !important;
        transform: none !important;
    }
}

/* HOVER : translate y -0.5rem (pas de rotation sur la card) */
@media (hover: hover) {
    html body.lbp-themed.lbp-themed.lbp-themed .collections-grid > .collection-card:hover {
        translate: 0 -0.5rem !important;
        transform: none !important;
    }
    html body.lbp-themed.lbp-themed.lbp-themed .collections-grid > .collection-card:nth-child(2n):hover {
        translate: 0 calc(3rem - 0.5rem) !important;
        transform: none !important;
    }
}

/* Mobile : pas de translate destructure */
@media (max-width: 767px) {
    html body.lbp-themed.lbp-themed.lbp-themed .collections-grid > .collection-card {
        translate: 0 0 !important;
    }
}

/* CARD ENTIEREMENT CLIQUABLE : gerer en JS (cf joy.js makeCollectionCardsClickable)
   Le bouton "Voir la collection" reste visible avec son style pill.
   Le curseur de la card devient pointer via JS pour indiquer la cliquabilite. */
html body.lbp-themed.lbp-themed.lbp-themed .collections-grid .collection-card[data-joy-clickable="true"] {
    cursor: pointer !important;
}

/* Le lien visible : aucune animation, juste son style pill normal.
   Au hover de la card, le bouton ne bouge pas mais reste mis en evidence */
html body.lbp-themed.lbp-themed.lbp-themed .collections-grid .collection-card .collection-link {
    transition: none !important;
    transform: none !important;
    translate: none !important;
    position: relative !important;
    z-index: 3 !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .collections-grid .collection-card .collection-link:hover {
    transform: none !important;
    translate: none !important;
}

/* L'icone, le titre, le paragraphe restent visibles, sous le link overlay */
html body.lbp-themed.lbp-themed.lbp-themed .collections-grid .collection-card > .collection-icon,
html body.lbp-themed.lbp-themed.lbp-themed .collections-grid .collection-card > h3,
html body.lbp-themed.lbp-themed.lbp-themed .collections-grid .collection-card > p {
    position: relative !important;
    z-index: 2 !important;
}

/* La fleur ::before reste sous le contenu mais au-dessus du fond */
html body.lbp-themed.lbp-themed.lbp-themed .collections-grid .collection-card::before {
    z-index: 1 !important;
    transition: scale 0.7s ease, rotate 0.7s ease, transform 0.7s ease !important;
    transform: none !important;
}

/* HOVER sur la card : la fleur scale + rotate (CSS native scale/rotate) */
@media (hover: hover) {
    html body.lbp-themed.lbp-themed.lbp-themed .collections-grid .collection-card:hover::before {
        scale: 1.1 !important;
        rotate: 12deg !important;
        transform: none !important;
    }
}

/* ============================================================
   49. STORES - card rotation + info-block border-radius
   ============================================================ */

html body.lbp-themed.lbp-themed.lbp-themed .joy-stores-card {
    transform: rotate(-1deg) !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .joy-stores-info-block,
html body.lbp-themed.lbp-themed.lbp-themed .joy-stores-info-block.is-yellow,
html body.lbp-themed.lbp-themed.lbp-themed .joy-stores-info-block.is-pink {
    border-radius: 32px !important;
}


/* ============================================================
   50. BOUTIQUE-MAIN overflow visible + mainNav fixed
   ============================================================ */

html body.lbp-themed.lbp-themed.lbp-themed .boutique-layout > main.boutique-main {
    overflow: visible !important;
}

html body.lbp-themed.lbp-themed.lbp-themed nav#mainNav.scrolled,
html body.lbp-themed.lbp-themed.lbp-themed #mainNav.scrolled {
    position: fixed !important;
    background: var(--joy-cream) !important;
    padding: 0.5rem !important;
    box-shadow: 0 2px 16px rgba(0, 0, 0, 0.04) !important;
}


/* ============================================================
   51. COLLECTIONS - LAYOUT INTERIEUR DES CARDS
   - Eyebrow (p description) + Titre (h3) en HAUT-GAUCHE
   - Bouton "Voir la collection" en BAS-GAUCHE (pill ink)
   - Fleur en bas-droite (deja en ::before)
   - Icone cachee (Casa Flora ne l'affiche pas)
   - Texte INK sur tous les fonds (orange, vert, pink)
   ============================================================ */

html body.lbp-themed.lbp-themed.lbp-themed .collections-grid .collection-card,
html body.lbp-themed.lbp-themed.lbp-themed .collections-grid > .collection-card {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    padding: 2rem !important;
    color: var(--joy-ink) !important;
    text-align: left !important;
    overflow: hidden !important;
    position: relative !important;
}

@media (min-width: 768px) {
    html body.lbp-themed.lbp-themed.lbp-themed .collections-grid .collection-card,
    html body.lbp-themed.lbp-themed.lbp-themed .collections-grid > .collection-card {
        padding: 2.5rem !important;
    }
}

/* Force le texte INK partout (override section 36 qui mettait cream sur vert/pink) */
html body.lbp-themed.lbp-themed.lbp-themed .collections-grid .collection-card,
html body.lbp-themed.lbp-themed.lbp-themed .collections-grid .collection-card:nth-child(3n+1),
html body.lbp-themed.lbp-themed.lbp-themed .collections-grid .collection-card:nth-child(3n+2),
html body.lbp-themed.lbp-themed.lbp-themed .collections-grid .collection-card:nth-child(3n+3) {
    color: var(--joy-ink) !important;
}

/* Cache l'icone categorie (Casa Flora ne l'utilise pas dans la card) */
html body.lbp-themed.lbp-themed.lbp-themed .collections-grid .collection-card .collection-icon {
    display: none !important;
}

/* Eyebrow : description (p) au-dessus du titre, en script italique */
html body.lbp-themed.lbp-themed.lbp-themed .collections-grid .collection-card p {
    order: 1 !important;
    font-family: var(--joy-font-script) !important;
    font-style: italic !important;
    font-weight: 400 !important;
    font-size: 1rem !important;
    line-height: 1.2 !important;
    color: var(--joy-ink) !important;
    margin: 0 0 0.3rem !important;
    text-align: left !important;
    max-width: 90% !important;
    position: relative !important;
    z-index: 2 !important;
}

@media (min-width: 768px) {
    html body.lbp-themed.lbp-themed.lbp-themed .collections-grid .collection-card p {
        font-size: 1.1rem !important;
    }
}

/* Force ink (override le subtitle blanc/cream eventuel) */
html body.lbp-themed.lbp-themed.lbp-themed .collections-grid .collection-card:nth-child(3n+2) p,
html body.lbp-themed.lbp-themed.lbp-themed .collections-grid .collection-card:nth-child(3n+3) p {
    color: var(--joy-ink) !important;
}

/* Titre h3 : top-left, grand display */
html body.lbp-themed.lbp-themed.lbp-themed .collections-grid .collection-card h3 {
    order: 2 !important;
    font-family: var(--joy-font-display) !important;
    font-size: clamp(2.2rem, 4.5vw, 3.8rem) !important;
    line-height: 0.95 !important;
    letter-spacing: -0.02em !important;
    color: var(--joy-ink) !important;
    margin: 0 !important;
    text-align: left !important;
    font-weight: 400 !important;
    max-width: 100% !important;
    position: relative !important;
    z-index: 2 !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .collections-grid .collection-card:nth-child(3n+2) h3,
html body.lbp-themed.lbp-themed.lbp-themed .collections-grid .collection-card:nth-child(3n+3) h3 {
    color: var(--joy-ink) !important;
}

/* Bouton "Voir la collection" : bottom-left, pill ink avec margin-top auto
   pour pousser en bas dans le flex column */
html body.lbp-themed.lbp-themed.lbp-themed .collections-grid .collection-card .collection-link {
    order: 3 !important;
    margin-top: auto !important;
    margin-bottom: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    align-self: flex-start !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.4rem !important;
    background: var(--joy-ink) !important;
    color: var(--joy-cream) !important;
    border: 0 !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.55rem 1.25rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.02em !important;
    text-decoration: none !important;
    text-transform: none !important;
    box-shadow: none !important;
    line-height: 1 !important;
    position: relative !important;
    z-index: 3 !important;
    transition: none !important;
    transform: none !important;
    translate: none !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .collections-grid .collection-card .collection-link:hover,
html body.lbp-themed.lbp-themed.lbp-themed .collections-grid .collection-card .collection-link:focus {
    background: var(--joy-ink) !important;
    color: var(--joy-cream) !important;
    transform: none !important;
    translate: none !important;
    box-shadow: none !important;
}


/* ============================================================
   52. COLLECTIONS - bouton "Voir la collection" en bas-gauche absolu
   Plus colle au coin que dans la version flex avec margin-top:auto
   ============================================================ */

html body.lbp-themed.lbp-themed.lbp-themed .collections-grid .collection-card .collection-link {
    position: absolute !important;
    bottom: 1.25rem !important;
    left: 1.25rem !important;
    margin: 0 !important;
    align-self: auto !important;
}

@media (min-width: 768px) {
    html body.lbp-themed.lbp-themed.lbp-themed .collections-grid .collection-card .collection-link {
        bottom: 1.5rem !important;
        left: 1.5rem !important;
    }
}


/* ============================================================
   53. NEWSLETTER reassurance span color
   ============================================================ */

body.lbp-themed .newsletter-reassurance span {
    color: var(--joy-pink-deep) !important;
    opacity: 0.7;
}


/* ============================================================
   54. EVENT-DETAILS - lisibilite et visibilite ameliorees
   "Informations Pratiques" sur fond sombre du event-banner :
   on transforme le panneau en carte cream contrastee Casa Flora
   ============================================================ */

html body.lbp-themed.lbp-themed.lbp-themed .event-banner .event-details,
html body.lbp-themed.lbp-themed.lbp-themed .event-details.fade-in,
html body.lbp-themed.lbp-themed.lbp-themed .event-details.fade-in.visible,
html body.lbp-themed.lbp-themed.lbp-themed .event-details {
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-color: var(--joy-ink) !important;
    border-radius: 2rem !important;
    box-shadow: 8px 8px 0 0 var(--joy-ink) !important;
    padding: 2rem !important;
    color: var(--joy-ink) !important;
}

@media (min-width: 768px) {
    html body.lbp-themed.lbp-themed.lbp-themed .event-details {
        padding: 2.5rem !important;
    }
}

/* Titre du panneau "Informations Pratiques" */
html body.lbp-themed.lbp-themed.lbp-themed .event-banner .event-details h3,
html body.lbp-themed.lbp-themed.lbp-themed .event-details h3,
html body.lbp-themed.lbp-themed.lbp-themed .event-details h4 {
    color: var(--joy-ink) !important;
    font-family: var(--joy-font-display) !important;
    font-size: 1.6rem !important;
    line-height: 1.1 !important;
    margin: 0 0 1.25rem !important;
    font-weight: 400 !important;
    letter-spacing: -0.01em !important;
    text-shadow: none !important;
    opacity: 1 !important;
}

/* Liste des infos : ink, opacity 1, espacement clair */
html body.lbp-themed.lbp-themed.lbp-themed .event-banner .event-details p,
html body.lbp-themed.lbp-themed.lbp-themed .event-banner .event-details li,
html body.lbp-themed.lbp-themed.lbp-themed .event-banner .event-details span,
html body.lbp-themed.lbp-themed.lbp-themed .event-details p,
html body.lbp-themed.lbp-themed.lbp-themed .event-details li,
html body.lbp-themed.lbp-themed.lbp-themed .event-details span {
    color: var(--joy-ink) !important;
    opacity: 1 !important;
    font-family: var(--joy-font-body) !important;
    font-size: 1rem !important;
    line-height: 1.55 !important;
}

/* Liste event-info : items en ligne flex, separateur subtil */
html body.lbp-themed.lbp-themed.lbp-themed .event-details .event-info {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .event-details .event-info > li {
    display: flex !important;
    align-items: flex-start !important;
    gap: 0.85rem !important;
    padding: 0.85rem 0 !important;
    border-bottom: 1px solid var(--joy-line, rgba(42, 26, 15, 0.12)) !important;
    color: var(--joy-ink) !important;
    line-height: 1.4 !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .event-details .event-info > li:last-child {
    border-bottom: 0 !important;
    padding-bottom: 0 !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .event-details .event-info > li:first-child {
    padding-top: 0 !important;
}

/* Icones SVG en pink-deep (accent vif) sur fond cream */
html body.lbp-themed.lbp-themed.lbp-themed .event-details .event-info > li svg {
    flex-shrink: 0 !important;
    width: 22px !important;
    height: 22px !important;
    color: var(--joy-pink-deep, var(--joy-pink)) !important;
    /* Si l'admin a defini une couleur custom via --icon-color, elle prime */
    color: var(--icon-color, var(--joy-pink-deep, var(--joy-pink))) !important;
    margin-top: 0.1rem !important;
}

/* Texte des items : ink fort, font body */
html body.lbp-themed.lbp-themed.lbp-themed .event-details .event-info > li span {
    color: var(--joy-ink) !important;
    opacity: 1 !important;
    font-weight: 500 !important;
    font-size: 1rem !important;
    line-height: 1.45 !important;
    flex: 1 !important;
}


/* ============================================================
   55. A PROPOS - integration video 2 cols
   - Mobile : stack vertical (video au-dessus du contenu)
   - Desktop >= 1024px : video gauche / contenu (titre + texte + stats) droite
   - Override section 47 qui cachait about-video
   ============================================================ */

/* Force le grid 2 cols sur desktop, override le block de section 47 */
html body.lbp-themed.lbp-themed.lbp-themed .about .about-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 2rem !important;
    width: 100% !important;
    max-width: 1280px !important;
    margin: 0 auto !important;
    padding: 0 !important;
    align-items: start !important;
}

@media (min-width: 1024px) {
    html body.lbp-themed.lbp-themed.lbp-themed .about .about-grid {
        grid-template-columns: 5fr 6fr !important;  /* video legerement plus etroite que contenu */
        gap: 3.5rem !important;
        align-items: center !important;
    }
}

/* About-video : visible (override le display:none de section 47) */
html body.lbp-themed.lbp-themed.lbp-themed .about .about-video {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    position: relative !important;
}

/* Video frame Casa Flora-style : carte coloree avec border ink + ombre 8px */
html body.lbp-themed.lbp-themed.lbp-themed .about .about-video .video-frame {
    width: 100% !important;
    aspect-ratio: 4 / 5 !important;
    background: var(--joy-yellow) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: 2.5rem !important;
    box-shadow: 8px 8px 0 0 var(--joy-ink) !important;
    overflow: hidden !important;
    position: relative !important;
    transform: rotate(-1deg) !important;
    transition: transform 0.3s ease !important;
    margin: 0 !important;
    padding: 0 !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .about .about-video .video-frame:hover {
    transform: rotate(0deg) translateY(-0.5rem) !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .about .about-video video {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    display: block !important;
    border-radius: 0 !important;
    border: 0 !important;
    margin: 0 !important;
}

@media (min-width: 1024px) {
    html body.lbp-themed.lbp-themed.lbp-themed .about .about-video .video-frame {
        aspect-ratio: 4 / 5 !important;
    }
}

/* Mobile : video moins haute pour ne pas dominer */
@media (max-width: 1023px) {
    html body.lbp-themed.lbp-themed.lbp-themed .about .about-video .video-frame {
        aspect-ratio: 16 / 10 !important;
        max-width: 600px !important;
        margin: 0 auto !important;
    }
}

/* About-text : maintenant en colonne unique (puisque video prend la moitié)
   On override le grid 2 cols de section 47 */
html body.lbp-themed.lbp-themed.lbp-themed .about .about-text {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: none !important;
    gap: 1.5rem !important;
    width: 100% !important;
    max-width: none !important;
}

/* Titre h2 : naturellement sur toute la largeur du contenu */
html body.lbp-themed.lbp-themed.lbp-themed .about .about-text h2 {
    grid-column: auto !important;
    font-family: var(--joy-font-display) !important;
    font-size: clamp(2.4rem, 4.5vw, 4rem) !important;
    line-height: 1.05 !important;
    letter-spacing: -0.02em !important;
    margin: 0 0 0.5rem !important;
    text-align: left !important;
    color: var(--joy-cream) !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .about .about-text h2 em {
    color: var(--joy-cream) !important;
    -webkit-text-fill-color: var(--joy-cream) !important;
    font-style: italic !important;
}

/* Eyebrow "à propos" yellow script au-dessus du h2 */
html body.lbp-themed.lbp-themed.lbp-themed .about .section-icon-left {
    grid-column: auto !important;
    color: var(--joy-yellow) !important;
    margin: 0 !important;
    order: -1 !important;
}

/* Paragraphes : pleine largeur du contenu droit (1 col) */
html body.lbp-themed.lbp-themed.lbp-themed .about .about-text p {
    color: rgba(251, 246, 233, 0.92) !important;
    font-size: 1rem !important;
    line-height: 1.7 !important;
    margin: 0 !important;
    grid-column: auto !important;
    max-width: none !important;
}

/* Stats : 3 colonnes contenues dans la colonne droite, gauche-alignees */
html body.lbp-themed.lbp-themed.lbp-themed .about .about-text .about-stats,
html body.lbp-themed.lbp-themed.lbp-themed .about .about-stats {
    grid-column: auto !important;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 1rem !important;
    margin: 1.5rem 0 0 !important;
    width: 100% !important;
    max-width: none !important;
    justify-content: flex-start !important;
}

@media (max-width: 600px) {
    html body.lbp-themed.lbp-themed.lbp-themed .about .about-stats {
        grid-template-columns: 1fr !important;
    }
}


/* ============================================================
   56. EVENT-DETAILS rotation + pin fleur
   ABOUT-VIDEO : video full height + butterfly pin (en ::after)
   ============================================================ */

/* === EVENT-DETAILS : rotation -1deg + fleur en pin === */
html body.lbp-themed.lbp-themed.lbp-themed .event-details,
html body.lbp-themed.lbp-themed.lbp-themed .event-details.fade-in,
html body.lbp-themed.lbp-themed.lbp-themed .event-details.fade-in.visible {
    transform: rotate(-1deg) !important;
    overflow: visible !important;  /* pour que la fleur depasse */
}

/* Fleur "pin" en haut-droite de la card event-details */
html body.lbp-themed.lbp-themed.lbp-themed .event-details::before {
    content: '' !important;
    position: absolute !important;
    top: -1.5rem !important;
    right: -1.25rem !important;
    width: 4.5rem !important;
    height: 4.5rem !important;
    background-image: var(--joy-img-anemone-2) !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    transform: rotate(18deg) !important;
    z-index: 5 !important;
    pointer-events: none !important;
    animation: joy-wiggle 4s ease-in-out infinite !important;
}

/* === ABOUT-VIDEO : video remplit toute la hauteur du cadre === */

/* IMPORTANT: ecrase max-height: 500px du style.css natif sur .video-frame video */
html body.lbp-themed.lbp-themed.lbp-themed .about .about-video .video-frame video,
html body.lbp-themed.lbp-themed.lbp-themed .about .about-video video,
html body.lbp-themed.lbp-themed.lbp-themed .about-video video,
html body.lbp-themed.lbp-themed.lbp-themed .video-frame video {
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    min-height: 0 !important;
    object-fit: cover !important;
    object-position: center center !important;
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    position: absolute !important;
    inset: 0 !important;
}

/* Le video-frame sans padding ; overflow VISIBLE pour que ::after (butterfly)
   ne soit pas coupe. La video elle-meme recoit le border-radius pour garder
   les coins arrondis du cadre Casa Flora. */
html body.lbp-themed.lbp-themed.lbp-themed .about .about-video .video-frame {
    padding: 0 !important;
    position: relative !important;
    overflow: visible !important;
}

/* Application du border-radius directement sur la video pour clipping coins
   (puisque .video-frame est en overflow visible) */
html body.lbp-themed.lbp-themed.lbp-themed .about .about-video .video-frame video,
html body.lbp-themed.lbp-themed.lbp-themed .about .about-video video,
html body.lbp-themed.lbp-themed.lbp-themed .about-video video,
html body.lbp-themed.lbp-themed.lbp-themed .video-frame video {
    border-radius: calc(2.5rem - 2px) !important;  /* legerement < frame radius pour bordure ink visible */
}

/* Le wrapper about-video et ses parents : overflow visible pour le papillon */
html body.lbp-themed.lbp-themed.lbp-themed .about .about-video,
html body.lbp-themed.lbp-themed.lbp-themed .about .about-grid,
html body.lbp-themed.lbp-themed.lbp-themed .about {
    overflow: visible !important;
}

/* Butterfly "pin" en BAS-GAUCHE du cadre video, en ::after pour ne PAS etre coupe */
html body.lbp-themed.lbp-themed.lbp-themed .about .about-video .video-frame::after {
    content: '' !important;
    position: absolute !important;
    bottom: -1.25rem !important;
    left: -1.25rem !important;
    width: 5rem !important;
    height: 5rem !important;
    background-image: var(--joy-img-butterfly-vintage) !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    transform: rotate(1deg) !important;
    z-index: 5 !important;
    pointer-events: none !important;
    animation: joy-wiggle 3.5s ease-in-out infinite !important;
    border: none !important;
}


/* ============================================================
   57. FICHE PRODUIT - finitions Casa Flora
   - Header (categorie + badges) en script italique cobalt + pills propres
   - Prix display Abril Fatface gros pink
   - Tagline en uppercase tracking
   - Description longue : carte cream avec border + ombre
   - Meta (ref, materiaux) en pills outlined ink
   - FAQ produit avec style Casa Flora
   ============================================================ */

/* === HEADER : "by Lupita Reyes" en script cobalt italique === */
/* Le span categorie au-dessus du h1 */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-details > span:first-child {
    display: inline-block !important;
    font-family: var(--joy-font-script) !important;
    font-style: italic !important;
    font-size: 1.3rem !important;
    line-height: 1 !important;
    color: var(--joy-cobalt) !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    margin: 0 0 0.6rem !important;
    font-weight: 400 !important;
}

/* Badges row sous le titre : pills outlined ink */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-details .product-badge-head,
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-badge-head {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.3rem !important;
    background: transparent !important;
    color: var(--joy-ink) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.28rem 0.85rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.7rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    line-height: 1 !important;
    box-shadow: none !important;
    height: auto !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .badge-promo,
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-badge-head.badge-promo {
    background: var(--joy-pink) !important;
    color: var(--joy-cream) !important;
    border-color: var(--joy-ink) !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .badge-perso-head,
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-badge-head.badge-perso-head {
    background: var(--joy-marigold) !important;
    color: var(--joy-ink) !important;
    border-color: var(--joy-ink) !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .badge-rupture,
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-badge-head.badge-rupture {
    background: var(--joy-ink) !important;
    color: var(--joy-cream) !important;
}

/* === TITLE ROW : titre + heart fav === */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-title-row {
    display: flex !important;
    align-items: flex-start !important;
    justify-content: space-between !important;
    gap: 1rem !important;
    margin: 0.4rem 0 0.3rem !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .fav-heart-btn {
    background: transparent !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: 50% !important;
    width: 44px !important;
    height: 44px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: var(--joy-ink) !important;
    cursor: pointer !important;
    flex-shrink: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    transition: transform 0.15s ease !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .fav-heart-btn:hover {
    transform: translate(-1px, -1px) !important;
    box-shadow: 2px 2px 0 0 var(--joy-ink) !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .fav-heart-btn.is-fav {
    background: var(--joy-pink) !important;
    color: var(--joy-cream) !important;
}

/* === TAGLINE under title : uppercase tracking + svg cobalt === */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-tagline {
    color: var(--joy-ink-mute, rgba(42, 26, 15, 0.7)) !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.78rem !important;
    line-height: 1.4 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.12em !important;
    font-weight: 700 !important;
    margin: 0.5rem 0 0.5rem !important;
    display: block !important;
}

/* "En savoir plus →" link sous tagline */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .tagline-more {
    color: var(--joy-pink) !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    font-size: 0.9rem !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    border-bottom: 1px solid var(--joy-pink) !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .tagline-more:hover {
    color: var(--joy-pink-deep, var(--joy-pink)) !important;
    border-bottom-color: var(--joy-pink-deep, var(--joy-pink)) !important;
}

/* === PRIX : Abril Fatface gros pink === */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-price,
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-price-big {
    font-family: var(--joy-font-display) !important;
    line-height: 1 !important;
    margin: 0.8rem 0 1.2rem !important;
    display: flex !important;
    flex-direction: row-reverse !important;
    justify-content: flex-end !important;
    flex-wrap: wrap !important;
    align-items: baseline !important;
    gap: 0.6rem !important;
    font-weight: 400 !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-price .current-price,
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-price-big .current-price {
    color: var(--joy-pink) !important;
    font-family: var(--joy-font-display) !important;
    font-size: 2.6rem !important;
    line-height: 1 !important;
    font-weight: 400 !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-price .old-price,
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-price-big .old-price {
    color: var(--joy-ink-mute, rgba(42, 26, 15, 0.5)) !important;
    text-decoration: line-through !important;
    font-family: var(--joy-font-display) !important;
    font-size: 1.4rem !important;
    line-height: 1 !important;
    font-weight: 400 !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .price-variant-note {
    display: block !important;
    width: 100% !important;
    color: var(--joy-cobalt) !important;
    font-family: var(--joy-font-script) !important;
    font-style: italic !important;
    font-size: 0.95rem !important;
    margin-top: 0.4rem !important;
}

/* === PRODUCT-META : pills outlined ink === */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-meta {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 0.5rem !important;
    margin: 1.2rem 0 0 !important;
    padding: 1.2rem 0 0 !important;
    border-top: 1px solid var(--joy-line, rgba(42, 26, 15, 0.12)) !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-meta p {
    display: inline-flex !important;
    align-items: baseline !important;
    gap: 0.3rem !important;
    background: transparent !important;
    color: var(--joy-ink) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.4rem 0.9rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.8rem !important;
    line-height: 1.2 !important;
    margin: 0 !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-meta p strong {
    font-weight: 700 !important;
    color: var(--joy-ink) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    font-size: 0.7rem !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-meta p .meta-value {
    font-weight: 500 !important;
    color: var(--joy-ink) !important;
}

/* === DESCRIPTION LONGUE : carte cream avec border et fleur pin === */
/* DESKTOP ONLY : sur mobile, la regle responsive section padding prend le dessus */
@media (min-width: 768px) {
    html body.lbp-themed.lbp-themed.lbp-themed .product-long-description,
    html body.lbp-themed.lbp-themed.lbp-themed section.product-long-description {
        margin: 5rem auto 4rem !important;
        padding: 3rem 1.5rem !important;
        background: transparent !important;
        border-top: 0 !important;
        max-width: 1280px !important;
        width: 100% !important;
        box-sizing: border-box !important;
        position: relative !important;
    }
}

@media (min-width: 768px) {
    html body.lbp-themed.lbp-themed.lbp-themed .product-long-description {
        padding: 4rem 3rem !important;
    }
}

html body.lbp-themed.lbp-themed.lbp-themed .product-long-description > div {
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: 2.5rem !important;
    box-shadow: 8px 8px 0 0 var(--joy-ink) !important;
    padding: 2.5rem 2rem !important;
    max-width: 880px !important;
    margin: 0 auto !important;
    position: relative !important;
    transform: rotate(-0.5deg) !important;
}

@media (min-width: 768px) {
    html body.lbp-themed.lbp-themed.lbp-themed .product-long-description > div {
        padding: 3.5rem 4rem !important;
    }
}

/* Fleur "pin" coin haut-droite */
html body.lbp-themed.lbp-themed.lbp-themed .product-long-description > div::before {
    content: '' !important;
    position: absolute !important;
    top: -1.75rem !important;
    right: -1.5rem !important;
    width: 5rem !important;
    height: 5rem !important;
    background-image: var(--joy-img-rose-red) !important;
    background-size: contain !important;
    background-repeat: no-repeat !important;
    background-position: center !important;
    transform: rotate(15deg) !important;
    z-index: 5 !important;
    pointer-events: none !important;
    animation: joy-wiggle 4s ease-in-out infinite !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-long-description h2 {
    font-family: var(--joy-font-display) !important;
    font-size: clamp(2rem, 4vw, 2.8rem) !important;
    color: var(--joy-ink) !important;
    line-height: 1 !important;
    margin: 0 0 1.5rem !important;
    text-align: left !important;
    font-weight: 400 !important;
    letter-spacing: -0.02em !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-long-description h2 em {
    color: var(--joy-pink) !important;
    font-style: italic !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-long-description .product-description,
html body.lbp-themed.lbp-themed.lbp-themed .product-long-description .article-content {
    color: var(--joy-ink-soft, var(--joy-ink)) !important;
    font-family: var(--joy-font-body) !important;
    font-size: 1rem !important;
    line-height: 1.75 !important;
    text-align: left !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-long-description .article-content p {
    margin: 0 0 1rem !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-long-description .article-content p:last-child {
    margin-bottom: 0 !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-long-description .article-content h3 {
    font-family: var(--joy-font-display) !important;
    font-size: 1.5rem !important;
    color: var(--joy-ink) !important;
    margin: 1.5rem 0 0.6rem !important;
    font-weight: 400 !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-long-description .article-content ul,
html body.lbp-themed.lbp-themed.lbp-themed .product-long-description .article-content ol {
    margin: 0.6rem 0 1rem 1.5rem !important;
    padding: 0 !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-long-description .article-content li {
    margin-bottom: 0.4rem !important;
    line-height: 1.6 !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-long-description .article-content a {
    color: var(--joy-pink) !important;
    text-decoration: underline !important;
    text-underline-offset: 3px !important;
}

/* === FAQ produit : style Casa Flora === */
html body.lbp-themed.lbp-themed.lbp-themed .product-faq {
    max-width: 880px !important;
    margin: 4rem auto !important;
    padding: 0 1.5rem !important;
    width: 100% !important;
    box-sizing: border-box !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-faq .product-faq-header {
    text-align: center !important;
    margin-bottom: 2rem !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-faq .product-faq-eyebrow {
    display: inline-block !important;
    font-family: var(--joy-font-script) !important;
    font-style: italic !important;
    font-size: 1.3rem !important;
    color: var(--joy-cobalt) !important;
    margin-bottom: 0.5rem !important;
    font-weight: 400 !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-faq .product-faq-title {
    font-family: var(--joy-font-display) !important;
    font-size: clamp(2rem, 4vw, 2.8rem) !important;
    color: var(--joy-ink) !important;
    line-height: 1 !important;
    margin: 0 !important;
    font-weight: 400 !important;
    letter-spacing: -0.02em !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-faq .faq-list {
    display: flex !important;
    flex-direction: column !important;
    gap: 1rem !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-faq .faq-item {
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: 1.5rem !important;
    box-shadow: 4px 4px 0 0 var(--joy-ink) !important;
    overflow: hidden !important;
    transition: transform 0.2s ease !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-faq .faq-item:hover {
    transform: translate(-1px, -1px) !important;
    box-shadow: 5px 5px 0 0 var(--joy-ink) !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-faq .faq-item.open {
    background: var(--joy-cream) !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-faq .faq-question {
    width: 100% !important;
    background: transparent !important;
    border: 0 !important;
    padding: 1.1rem 1.5rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 1rem !important;
    cursor: pointer !important;
    text-align: left !important;
    color: var(--joy-ink) !important;
    font-family: var(--joy-font-display) !important;
    font-size: 1.1rem !important;
    line-height: 1.3 !important;
    font-weight: 400 !important;
    box-shadow: none !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-faq .faq-question-icon {
    flex-shrink: 0 !important;
    width: 32px !important;
    height: 32px !important;
    border-radius: 50% !important;
    background: var(--joy-pink) !important;
    color: var(--joy-cream) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: transform 0.3s ease !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-faq .faq-item.open .faq-question-icon {
    transform: rotate(45deg) !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-faq .faq-answer {
    max-height: 0 !important;
    overflow: hidden !important;
    transition: max-height 0.4s ease !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-faq .faq-item.open .faq-answer {
    max-height: 800px !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-faq .faq-answer-content {
    padding: 0 1.5rem 1.2rem !important;
    color: var(--joy-ink-soft, var(--joy-ink)) !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.95rem !important;
    line-height: 1.7 !important;
}

/* ============================================================
   58. RELATED PRODUCTS - carousel horizontal Casa Flora
   ============================================================ */

html body.lbp-themed.lbp-themed.lbp-themed .related-products {
    max-width: none !important;
    width: 100% !important;
    margin: 4rem 0 !important;
    padding: 4rem 0 !important;
    background: transparent !important;
    overflow: hidden !important;
    position: relative !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .related-products .section-header {
    max-width: 1280px !important;
    margin: 0 auto 2.5rem !important;
    padding: 0 1.5rem !important;
    text-align: center !important;
}

@media (min-width: 768px) {
    html body.lbp-themed.lbp-themed.lbp-themed .related-products .section-header {
        padding: 0 3rem !important;
    }
}

html body.lbp-themed.lbp-themed.lbp-themed .related-products .section-title {
    font-family: var(--joy-font-display) !important;
    font-size: clamp(2.4rem, 5vw, 4rem) !important;
    color: var(--joy-ink) !important;
    line-height: 1 !important;
    margin: 0 0 0.5rem !important;
    font-weight: 400 !important;
    letter-spacing: -0.02em !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .related-products .section-subtitle {
    font-family: var(--joy-font-script) !important;
    font-style: italic !important;
    color: var(--joy-cobalt) !important;
    font-size: 1.2rem !important;
    margin: 0 !important;
}

/* Slider wrap : conteneur des fleches + grille */
html body.lbp-themed.lbp-themed.lbp-themed .related-products .related-slider-wrap {
    position: relative !important;
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* La grille devient un FLEX horizontal scrollable */
html body.lbp-themed.lbp-themed.lbp-themed .related-products .related-slider-wrap .products-grid {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 1.5rem !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    scroll-behavior: smooth !important;
    scroll-snap-type: x mandatory !important;
    padding: 1rem 1.5rem 2rem !important;
    margin: 0 !important;
    max-width: none !important;
    width: 100% !important;
    box-sizing: border-box !important;
    grid-template-columns: none !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
}

@media (min-width: 768px) {
    html body.lbp-themed.lbp-themed.lbp-themed .related-products .related-slider-wrap .products-grid {
        gap: 2rem !important;
        padding: 1rem 3rem 2rem !important;
    }
}

html body.lbp-themed.lbp-themed.lbp-themed .related-products .related-slider-wrap .products-grid::-webkit-scrollbar {
    display: none !important;
    height: 0 !important;
    width: 0 !important;
}

/* Cards : taille fixe, scroll-snap aligned start */
html body.lbp-themed.lbp-themed.lbp-themed .related-products .related-slider-wrap .products-grid > .product-card {
    flex: 0 0 calc(80% - 1rem) !important;
    max-width: 320px !important;
    min-width: 240px !important;
    scroll-snap-align: start !important;
    aspect-ratio: 4 / 5 !important;
    grid-column: auto !important;
}

@media (min-width: 640px) {
    html body.lbp-themed.lbp-themed.lbp-themed .related-products .related-slider-wrap .products-grid > .product-card {
        flex: 0 0 calc(50% - 1rem) !important;
    }
}

@media (min-width: 1024px) {
    html body.lbp-themed.lbp-themed.lbp-themed .related-products .related-slider-wrap .products-grid > .product-card {
        flex: 0 0 calc(33.33% - 1.4rem) !important;
    }
}

@media (min-width: 1280px) {
    html body.lbp-themed.lbp-themed.lbp-themed .related-products .related-slider-wrap .products-grid > .product-card {
        flex: 0 0 calc(25% - 1.5rem) !important;
    }
}

/* Si pas d'overflow (peu de produits), centrer */
html body.lbp-themed.lbp-themed.lbp-themed .related-products .related-slider-wrap.is-not-overflowing .products-grid {
    justify-content: center !important;
    overflow-x: visible !important;
}

/* === FLECHES de navigation : pills cream/ink === */
html body.lbp-themed.lbp-themed.lbp-themed .related-products .related-arrow {
    position: absolute !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 48px !important;
    height: 48px !important;
    border-radius: 50% !important;
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    color: var(--joy-ink) !important;
    cursor: pointer !important;
    z-index: 10 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 3px 3px 0 0 var(--joy-ink) !important;
    transition: transform 0.18s ease, background 0.18s ease !important;
    padding: 0 !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .related-products .related-arrow:hover {
    background: var(--joy-pink) !important;
    color: var(--joy-cream) !important;
    transform: translateY(calc(-50% - 2px)) !important;
    box-shadow: 5px 5px 0 0 var(--joy-ink) !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .related-products .related-prev {
    left: 0.5rem !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .related-products .related-next {
    right: 0.5rem !important;
}

@media (min-width: 768px) {
    html body.lbp-themed.lbp-themed.lbp-themed .related-products .related-prev {
        left: 1.25rem !important;
    }
    html body.lbp-themed.lbp-themed.lbp-themed .related-products .related-next {
        right: 1.25rem !important;
    }
}

/* Cacher les fleches quand pas d'overflow */
html body.lbp-themed.lbp-themed.lbp-themed .related-products .related-slider-wrap.is-not-overflowing .related-arrow {
    display: none !important;
}

/* CTA "Voir tous les articles" */
html body.lbp-themed.lbp-themed.lbp-themed .related-products .related-cta,
html body.lbp-themed.lbp-themed.lbp-themed .related-products .btn.btn-secondary {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.4rem !important;
    background: transparent !important;
    color: var(--joy-ink) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.7rem 1.5rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.85rem !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    box-shadow: 4px 4px 0 0 var(--joy-ink) !important;
    transition: transform 0.18s ease, background 0.18s ease, color 0.18s ease !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .related-products .related-cta:hover,
html body.lbp-themed.lbp-themed.lbp-themed .related-products .btn.btn-secondary:hover {
    background: var(--joy-ink) !important;
    color: var(--joy-cream) !important;
    transform: translate(-2px, -2px) !important;
    box-shadow: 6px 6px 0 0 var(--joy-ink) !important;
}

/* ============================================================
   59. MODALE PERSONNALISATION - refonte complete Casa Flora
   ============================================================ */

html body.lbp-themed.lbp-themed.lbp-themed .perso-modal {
    position: fixed !important;
    inset: 0 !important;
    z-index: 9999 !important;
    background: rgba(42, 26, 15, 0.65) !important;
    backdrop-filter: blur(4px) !important;
    -webkit-backdrop-filter: blur(4px) !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 1rem !important;
    overflow-y: auto !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .perso-modal[style*="display: flex"],
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal[style*="display:flex"] {
    display: flex !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card {
    background: var(--joy-cream) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: 2rem !important;
    box-shadow: 10px 10px 0 0 var(--joy-ink) !important;
    max-width: 720px !important;
    width: 100% !important;
    max-height: calc(100vh - 2rem) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: 2rem !important;
    position: relative !important;
    margin: auto !important;
    box-sizing: border-box !important;
    transform: rotate(-0.3deg) !important;
}

@media (min-width: 768px) {
    html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card {
        padding: 3rem 3.5rem !important;
    }
}

/* Bouton de fermeture : pill ink en haut-droite */
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-close {
    position: absolute !important;
    top: 1rem !important;
    right: 1rem !important;
    width: 40px !important;
    height: 40px !important;
    border-radius: 50% !important;
    background: var(--joy-ink) !important;
    color: var(--joy-cream) !important;
    border: 2px solid var(--joy-ink) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    box-shadow: 3px 3px 0 0 var(--joy-pink) !important;
    transition: transform 0.18s ease !important;
    padding: 0 !important;
    z-index: 10 !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-close:hover {
    transform: translate(-1px, -1px) rotate(90deg) !important;
    box-shadow: 4px 4px 0 0 var(--joy-pink) !important;
}

/* Titre de la modale : Abril Fatface display */
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-title {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-ink) !important;
    font-size: clamp(1.8rem, 4vw, 2.6rem) !important;
    line-height: 1 !important;
    margin: 0 0 0.5rem !important;
    font-weight: 400 !important;
    letter-spacing: -0.02em !important;
    padding-right: 3rem !important;
}

/* Eyebrow "personnalisez votre" en script cobalt - injectee via :before */
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-title::before {
    content: 'creation unique' !important;
    display: block !important;
    font-family: var(--joy-font-script) !important;
    font-style: italic !important;
    font-size: 1.1rem !important;
    color: var(--joy-cobalt) !important;
    margin-bottom: 0.4rem !important;
    line-height: 1 !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
}

/* Intro descriptif */
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card .perso-intro {
    color: var(--joy-ink-soft, var(--joy-ink)) !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.95rem !important;
    line-height: 1.6 !important;
    margin: 0.5rem 0 1.5rem !important;
    padding: 0.8rem 1rem !important;
    background: var(--joy-cream-soft, rgba(255,255,255,0.5)) !important;
    border-left: 3px solid var(--joy-pink) !important;
    border-radius: 0 0.8rem 0.8rem 0 !important;
}

/* Section title (h3 interne) */
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card .perso-section-title {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-ink) !important;
    font-size: 1.2rem !important;
    margin: 1.4rem 0 0.8rem !important;
    font-weight: 400 !important;
    line-height: 1.1 !important;
    display: flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card .perso-section-title::before {
    content: '\2740' !important;
    color: var(--joy-pink) !important;
    font-size: 1rem !important;
}

/* Champs de formulaire : pills outlined */
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card .perso-field,
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card input[type="text"],
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card input[type="email"],
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card input[type="tel"],
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card input[type="number"],
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card select,
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card textarea {
    width: 100% !important;
    background: var(--joy-cream) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: 1rem !important;
    padding: 0.7rem 1rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.95rem !important;
    color: var(--joy-ink) !important;
    box-shadow: none !important;
    transition: box-shadow 0.18s ease !important;
    box-sizing: border-box !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card textarea {
    min-height: 100px !important;
    resize: vertical !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card .perso-field:focus,
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card input:focus,
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card select:focus,
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card textarea:focus {
    outline: 0 !important;
    box-shadow: 3px 3px 0 0 var(--joy-pink) !important;
    transform: translate(-1px, -1px) !important;
}

/* Labels au-dessus des champs */
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card label {
    display: block !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    color: var(--joy-ink) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    margin: 0 0 0.4rem !important;
}

/* Bloc variantes */
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card .perso-variante-block {
    margin: 0 0 1.5rem !important;
    padding: 1rem !important;
    background: var(--joy-cream-soft) !important;
    border: 2px dashed var(--joy-ink) !important;
    border-radius: 1.25rem !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card .perso-variante-block .perso-section-title {
    margin-top: 0 !important;
}

/* Info / erreur variante */
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card #perso-variante-info {
    color: var(--joy-pink-deep, var(--joy-pink)) !important;
    font-family: var(--joy-font-script) !important;
    font-style: italic !important;
    font-size: 1rem !important;
    margin-top: 0.5rem !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card #perso-variante-error,
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card #perso-error {
    color: var(--joy-cream) !important;
    background: #dc2626 !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: 0.8rem !important;
    padding: 0.7rem 1rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.9rem !important;
    margin: 0.5rem 0 !important;
    box-shadow: 3px 3px 0 0 var(--joy-ink) !important;
}

/* Resume / total */
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card .perso-summary,
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card #perso-summary {
    background: var(--joy-yellow) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: 1.25rem !important;
    padding: 1.2rem 1.4rem !important;
    margin: 1.5rem 0 1rem !important;
    box-shadow: 4px 4px 0 0 var(--joy-ink) !important;
    transform: rotate(-0.5deg) !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card .perso-summary-line,
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card .perso-summary > div:not(.perso-summary-total):not(.perso-delai) {
    display: flex !important;
    justify-content: space-between !important;
    align-items: baseline !important;
    padding: 0.4rem 0 !important;
    color: var(--joy-ink) !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.95rem !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card .perso-summary-total {
    display: flex !important;
    justify-content: space-between !important;
    align-items: baseline !important;
    padding: 0.7rem 0 0.4rem !important;
    margin-top: 0.5rem !important;
    border-top: 2px solid var(--joy-ink) !important;
    font-family: var(--joy-font-display) !important;
    font-size: 1.4rem !important;
    color: var(--joy-ink) !important;
    line-height: 1 !important;
    font-weight: 400 !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card .perso-summary-total span:last-child {
    color: var(--joy-pink) !important;
    font-family: var(--joy-font-display) !important;
    font-size: 1.8rem !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card .perso-delai {
    margin-top: 0.6rem !important;
    padding-top: 0.6rem !important;
    border-top: 1px dashed var(--joy-ink) !important;
    color: var(--joy-cobalt) !important;
    display: flex !important;
    align-items: center !important;
    gap: 2px !important;
}

/* Footer modale */
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card .perso-modal-footer {
    margin-top: 1.5rem !important;
    padding-top: 1.5rem !important;
    border-top: 1px solid var(--joy-line, rgba(42, 26, 15, 0.12)) !important;
    text-align: center !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card .perso-legal {
    color: var(--joy-ink-mute, rgba(42, 26, 15, 0.65)) !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.82rem !important;
    line-height: 1.5 !important;
    margin: 0 0 1rem !important;
    font-style: italic !important;
}

/* Bouton submit : pink full pill */
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card .btn.btn-gold,
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card #perso-submit-btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.5rem !important;
    background: var(--joy-pink) !important;
    color: var(--joy-cream) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0.9rem 2rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    cursor: pointer !important;
    box-shadow: 5px 5px 0 0 var(--joy-ink) !important;
    transition: transform 0.18s ease !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    line-height: 1 !important;
    width: auto !important;
    min-width: 220px !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card .btn.btn-gold:hover,
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card #perso-submit-btn:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 7px 7px 0 0 var(--joy-ink) !important;
}

/* Etape succes */
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card #perso-step-success {
    text-align: center !important;
    padding: 2rem 1rem !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card #perso-step-success > div:first-child {
    background: var(--joy-green) !important;
    border: 2px solid var(--joy-ink) !important;
    box-shadow: 4px 4px 0 0 var(--joy-ink) !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card #perso-step-success h2 {
    font-family: var(--joy-font-display) !important;
    color: var(--joy-ink) !important;
    font-size: 2rem !important;
    margin: 0 0 0.8rem !important;
    font-weight: 400 !important;
    letter-spacing: -0.01em !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card #perso-step-success p {
    color: var(--joy-ink-soft, var(--joy-ink)) !important;
    font-family: var(--joy-font-body) !important;
    font-size: 1rem !important;
    line-height: 1.6 !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card #perso-step-success p strong {
    color: var(--joy-pink) !important;
    font-family: var(--joy-font-display) !important;
    font-size: 1.2rem !important;
    font-weight: 400 !important;
}


/* ============================================================
   60. CORRECTIONS SUITE FEEDBACK USER
   - reassurance-grid : un seul bloc unifie au lieu de 3 cards
   - variant-color-swatch : pas de background (couleur deja appliquee)
   - perso-modal : padding reduit
   - perso-intro & perso-modal-footer : ameliores
   - product-long-description : pas de rotation
   - product-description : pas de max-width
   - product-faq : pas de degrades/backgrounds parasites
   - media-counter : width fit-content
   ============================================================ */

/* === REASSURANCE-GRID : un seul bloc cream avec items en GRILLE === */
html body.lbp-themed.lbp-themed.lbp-themed .reassurance-grid,
html body.lbp-themed.lbp-themed.lbp-themed .product-reassurance {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)) !important;
    gap: 0 !important;
    margin: 1.5rem 0 !important;
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: 1.25rem !important;
    box-shadow: 4px 4px 0 0 var(--joy-ink) !important;
    padding: 0.5rem !important;
}

/* Items individuels : pas de fond colore, separateur vertical fin entre eux */
html body.lbp-themed.lbp-themed.lbp-themed .reassurance-grid .reassurance-item,
html body.lbp-themed.lbp-themed.lbp-themed .reassurance-grid .reassurance-item:nth-child(3n+1),
html body.lbp-themed.lbp-themed.lbp-themed .reassurance-grid .reassurance-item:nth-child(3n+2),
html body.lbp-themed.lbp-themed.lbp-themed .reassurance-grid .reassurance-item:nth-child(3n+3) {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0.7rem 0.8rem !important;
    margin: 0 !important;
    border-right: 1px solid rgba(42, 26, 15, 0.12) !important;
    border-bottom: 0 !important;
}

/* Le dernier item : pas de separateur a droite */
html body.lbp-themed.lbp-themed.lbp-themed .reassurance-grid .reassurance-item:last-child {
    border-right: 0 !important;
}

/* Sur ecran etroit (1 ou 2 cols), le separateur passe en bas */
@media (max-width: 600px) {
    html body.lbp-themed.lbp-themed.lbp-themed .reassurance-grid .reassurance-item {
        border-right: 0 !important;
        border-bottom: 1px solid rgba(42, 26, 15, 0.12) !important;
    }
    html body.lbp-themed.lbp-themed.lbp-themed .reassurance-grid .reassurance-item:last-child {
        border-bottom: 0 !important;
    }
}

/* === VARIANT-COLOR-SWATCH : pas de background ici (couleur appliquee inline par l'admin) === */
/* Aucune regle background : on laisse l'inline style admin gerer la couleur */

/* === MEDIA-COUNTER : width fit-content === */
html body.lbp-themed.lbp-themed.lbp-themed .media-counter {
    width: fit-content !important;
}

/* === PRODUCT-LONG-DESCRIPTION : pas de rotation === */
html body.lbp-themed.lbp-themed.lbp-themed .product-long-description > div {
    transform: none !important;
}

/* === PRODUCT-DESCRIPTION : pas de max-width === */
html body.lbp-themed.lbp-themed.lbp-themed .product-description,
html body.lbp-themed.lbp-themed.lbp-themed .product-long-description .product-description,
html body.lbp-themed.lbp-themed.lbp-themed .product-long-description .article-content {
    max-width: none !important;
}

/* === PRODUCT-FAQ : pas de degrades, juste contenu propre === */
html body.lbp-themed.lbp-themed.lbp-themed .product-faq,
html body.lbp-themed.lbp-themed.lbp-themed .product-faq .product-faq-header,
html body.lbp-themed.lbp-themed.lbp-themed .product-faq .faq-list,
html body.lbp-themed.lbp-themed.lbp-themed .product-faq .faq-item,
html body.lbp-themed.lbp-themed.lbp-themed .product-faq .faq-question,
html body.lbp-themed.lbp-themed.lbp-themed .product-faq .faq-answer,
html body.lbp-themed.lbp-themed.lbp-themed .product-faq .faq-answer-content {
    background: transparent !important;
    background-image: none !important;
    background-color: transparent !important;
}

/* On reaffirme uniquement le minimum sur les faq-items pour garder le contour propre */
html body.lbp-themed.lbp-themed.lbp-themed .product-faq .faq-item {
    border: 2px solid var(--joy-ink) !important;
    border-radius: 1.25rem !important;
    box-shadow: 4px 4px 0 0 var(--joy-ink) !important;
    overflow: hidden !important;
}

/* === PERSO-MODAL : padding reduit === */
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card {
    padding: 1.5rem !important;
}

@media (min-width: 768px) {
    html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card {
        padding: 2rem 2.5rem !important;
    }
}

/* === PERSO-INTRO ameliore : citation moderne avec fleur === */
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card .perso-intro {
    position: relative !important;
    color: var(--joy-ink) !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.95rem !important;
    line-height: 1.6 !important;
    margin: 1rem 0 1.5rem !important;
    padding: 1rem 1.2rem 1rem 2.5rem !important;
    background: var(--joy-yellow-tint, rgba(245, 204, 92, 0.18)) !important;
    border: 0 !important;
    border-radius: 1rem !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card .perso-intro::before {
    content: '\2740' !important;
    position: absolute !important;
    top: 1.05rem !important;
    left: 1rem !important;
    color: var(--joy-pink) !important;
    font-size: 1.1rem !important;
    line-height: 1 !important;
}

/* === PERSO-MODAL-FOOTER ameliore : disposition plus aeree, legal et CTA mieux separes === */
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card .perso-modal-footer {
    margin-top: 1.5rem !important;
    padding-top: 1.5rem !important;
    border-top: 2px dashed rgba(42, 26, 15, 0.18) !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 1rem !important;
    text-align: center !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card .perso-legal {
    color: var(--joy-cobalt) !important;
    font-family: var(--joy-font-script) !important;
    font-style: italic !important;
    font-size: 0.95rem !important;
    line-height: 1.5 !important;
    margin: 0 !important;
    max-width: 480px !important;
    font-weight: 400 !important;
}


/* ============================================================
   61. FICHE PRODUIT - corrections position fav-heart + spacing actions
   - fav-heart-btn : aligne dans la title-row avec le h1 (pas position:absolute)
   - reduction des marges verticales pour remonter les boutons add-to-cart
     et personnaliser au-dessus de la ligne de flottaison
   ============================================================ */

/* === FAV HEART : repositionne dans le flux normal de title-row === */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-title-row {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 0.8rem !important;
    margin: 0.2rem 0 0.2rem !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-title-row .fav-heart-btn,
html body.lbp-themed.lbp-themed.lbp-themed .product-detail #fav-heart-btn {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    inset: auto !important;
    flex-shrink: 0 !important;
    align-self: center !important;
    width: 44px !important;
    height: 44px !important;
    background: transparent !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: 50% !important;
    color: var(--joy-ink) !important;
    box-shadow: none !important;
    z-index: auto !important;
    margin: 0 !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .fav-heart-btn:hover {
    transform: translate(-1px, -1px) !important;
    box-shadow: 2px 2px 0 0 var(--joy-ink) !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .fav-heart-btn.is-fav {
    background: var(--joy-pink) !important;
    border-color: var(--joy-ink) !important;
    color: var(--joy-cream) !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .fav-heart-btn svg {
    width: 20px !important;
    height: 20px !important;
}

/* === Reduction des espacements verticaux pour faire remonter les CTAs === */

/* Padding du wrapper product-detail moins haut */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail {
    padding: 1.5rem 1.5rem 4rem !important;
}

@media (min-width: 768px) {
    html body.lbp-themed.lbp-themed.lbp-themed .product-detail {
        padding: 2rem 3rem 5rem !important;
    }
}

/* Mobile : pas de padding sur le wrapper (le container parent gere deja le padding,
   evite le triple padding qui reduit trop le contenu) */
@media (max-width: 767px) {
    html body.lbp-themed.lbp-themed.lbp-themed .product-detail {
        padding: 0 !important;
    }
}

/* Eyebrow categorie : marge reduite */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-details > span:first-child {
    margin: 0 0 0.4rem !important;
    font-size: 1.2rem !important;
}

/* Title-row : marges minimales */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-title-row {
    margin: 0.2rem 0 0.4rem !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-title-row h1 {
    font-size: clamp(2rem, 4.5vw, 3.4rem) !important;
}

/* Tagline : padding interieur plus serre */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-tagline {
    margin: 0.3rem 0 0.3rem !important;
}

/* Prix : marges reduites */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-price,
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-price-big {
    margin: 0.5rem 0 0.7rem !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-price .current-price,
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-price-big .current-price {
    font-size: 2.2rem !important;
}

/* Description : padding-bottom reduit pour gagner de l'espace */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-description {
    margin: 0.5rem 0 !important;
    padding-bottom: 0.8rem !important;
}

/* Features : marges + padding internes serres */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-features,
html body.lbp-themed.lbp-themed.lbp-themed .product-detail ul.product-features {
    margin: 0.3rem 0 0.8rem !important;
    padding-bottom: 0.8rem !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-features li {
    padding: 0.25rem 0 0.25rem 1.6rem !important;
}

/* Variants section : marge reduite */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-variants,
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .variants-section {
    margin: 0.5rem 0 0.8rem !important;
}

/* Reassurance grid (un bloc) : marge reduite */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .reassurance-grid,
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-reassurance {
    margin: 1rem 0 0.8rem !important;
}

/* Actions row (qty + add to cart) : marge plus serree */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-actions,
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .qty-and-cart,
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .quantity-add-row {
    margin: 0.6rem 0 0.6rem !important;
}

/* Sur la galerie : padding reduit autour de l'image pour qu'elle prenne
   moins de place verticale */
@media (min-width: 1024px) {
    html body.lbp-themed.lbp-themed.lbp-themed .product-detail {
        align-items: start !important;
    }

    /* Sticky sur la colonne details pour que les CTAs restent visibles
       quand l'image est plus haute */
    html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-details {
        position: sticky !important;
        top: 5rem !important;
        align-self: start !important;
    }
}


/* ============================================================
   62. CORRECTIONS FINALES (suite feedback user)
   ============================================================ */

/* === REASSURANCE-GRID en 2x2 === */
html body.lbp-themed.lbp-themed.lbp-themed .reassurance-grid,
html body.lbp-themed.lbp-themed.lbp-themed .product-reassurance {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 0 !important;
}

/* Items en 2x2 : separateurs droite + bas (sauf sur les bords) */
html body.lbp-themed.lbp-themed.lbp-themed .reassurance-grid .reassurance-item,
html body.lbp-themed.lbp-themed.lbp-themed .reassurance-grid .reassurance-item:nth-child(3n+1),
html body.lbp-themed.lbp-themed.lbp-themed .reassurance-grid .reassurance-item:nth-child(3n+2),
html body.lbp-themed.lbp-themed.lbp-themed .reassurance-grid .reassurance-item:nth-child(3n+3) {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0.7rem 0.8rem !important;
    margin: 0 !important;
    border-right: 1px solid rgba(42, 26, 15, 0.12) !important;
    border-bottom: 1px solid rgba(42, 26, 15, 0.12) !important;
}

/* Reset borders sur les bords de la grille 2x2 */
/* Colonne droite (2eme et 4eme item) : pas de border-right */
html body.lbp-themed.lbp-themed.lbp-themed .reassurance-grid .reassurance-item:nth-child(2n) {
    border-right: 0 !important;
}

/* Derniere ligne (3eme et 4eme item dans une grille a 4 items) : pas de border-bottom */
html body.lbp-themed.lbp-themed.lbp-themed .reassurance-grid .reassurance-item:nth-last-child(-n+2) {
    border-bottom: 0 !important;
}

/* Si nombre impair d'items, le dernier element seul sur sa ligne */
html body.lbp-themed.lbp-themed.lbp-themed .reassurance-grid .reassurance-item:last-child:nth-child(odd) {
    border-right: 0 !important;
}

/* === PERSO-MODAL-TITLE : pas de padding, pas de border === */
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-title {
    padding: 0 !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    border: 0 !important;
    border-bottom: 0 !important;
}

/* === PERSO-OPTIONS-BLOCK : pas de padding === */
html body.lbp-themed.lbp-themed.lbp-themed .perso-options-block {
    padding: 0 !important;
}

/* === PERSO-SUMMARY : pas de rotation === */
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card .perso-summary,
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card #perso-summary,
html body.lbp-themed.lbp-themed.lbp-themed .perso-summary {
    transform: none !important;
}

/* === PERSO-DELAI et PERSO-LEGAL : font normal + 1.2rem === */
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card .perso-delai,
html body.lbp-themed.lbp-themed.lbp-themed .perso-delai {
    font-style: normal !important;
    font-size: 1.2rem !important;
    font-family: var(--joy-font-body) !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card .perso-legal,
html body.lbp-themed.lbp-themed.lbp-themed .perso-legal {
    font-style: normal !important;
    font-size: 1.2rem !important;
    font-family: var(--joy-font-body) !important;
}

/* === PERSO-MODAL-FOOTER : background none === */
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card .perso-modal-footer,
html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-footer {
    background: none !important;
    background-color: transparent !important;
    background-image: none !important;
}


/* ============================================================
   63. PRODUCT-FAQ - corrections finales
   - border supprimee sur .product-faq (le wrapper)
   - eyebrow sans uppercase, letter-spacing 0
   - Animation FAQ fluide avec grid-template-rows (technique moderne)
     au lieu de max-height qui causait deux-temps
   ============================================================ */

/* === product-faq sans border === */
html body.lbp-themed.lbp-themed.lbp-themed .product-faq {
    border: 0 !important;
    border-top: 0 !important;
    border-bottom: 0 !important;
    border-left: 0 !important;
    border-right: 0 !important;
}

/* === eyebrow propre, sans uppercase ni letter-spacing === */
html body.lbp-themed.lbp-themed.lbp-themed .product-faq .product-faq-eyebrow {
    text-transform: none !important;
    letter-spacing: 0 !important;
}

/* === Animation FAQ fluide en un seul temps === */
/* On utilise grid-template-rows 0fr -> 1fr qui s'anime vers la hauteur EXACTE
   du contenu, contrairement a max-height qui sautait. */

html body.lbp-themed.lbp-themed.lbp-themed .product-faq .faq-answer,
html body.lbp-themed.lbp-themed.lbp-themed .faq-answer {
    display: grid !important;
    grid-template-rows: 0fr !important;
    max-height: none !important;
    overflow: hidden !important;
    padding: 0 !important;
    transition: grid-template-rows 0.35s ease !important;
}

/* Le contenu interieur dans une div .faq-answer-content doit avoir min-height: 0
   pour que grid-template-rows: 0fr le compresse vraiment a 0 */
html body.lbp-themed.lbp-themed.lbp-themed .product-faq .faq-answer-content,
html body.lbp-themed.lbp-themed.lbp-themed .faq-answer > div,
html body.lbp-themed.lbp-themed.lbp-themed .faq-answer > * {
    min-height: 0 !important;
    overflow: hidden !important;
    padding: 0 1.4rem !important;
    transition: padding 0.35s ease !important;
}

/* Etat OUVERT : grid-template-rows 1fr -> contenu prend sa taille naturelle */
html body.lbp-themed.lbp-themed.lbp-themed .product-faq .faq-item.open .faq-answer,
html body.lbp-themed.lbp-themed.lbp-themed .product-faq .faq-item[open] .faq-answer,
html body.lbp-themed.lbp-themed.lbp-themed .faq-item.open .faq-answer,
html body.lbp-themed.lbp-themed.lbp-themed .faq-item[open] .faq-answer {
    grid-template-rows: 1fr !important;
    max-height: none !important;
    padding: 0 !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .product-faq .faq-item.open .faq-answer-content,
html body.lbp-themed.lbp-themed.lbp-themed .product-faq .faq-item[open] .faq-answer-content,
html body.lbp-themed.lbp-themed.lbp-themed .faq-item.open .faq-answer > div,
html body.lbp-themed.lbp-themed.lbp-themed .faq-item[open] .faq-answer > div,
html body.lbp-themed.lbp-themed.lbp-themed .faq-item.open .faq-answer > *,
html body.lbp-themed.lbp-themed.lbp-themed .faq-item[open] .faq-answer > * {
    padding: 0 1.4rem 1.4rem !important;
}


/* ============================================================
   64. CORRECTIONS PERSO MODAL (suite feedback user)
   - perso-options-block : padding-bottom 1.2rem
   - perso-message-block : padding 0 + padding-bottom 1.2rem
   - perso-delai et perso-legal : font script
   ============================================================ */

html body.lbp-themed.lbp-themed.lbp-themed .perso-options-block {
    padding-bottom: 1.2rem !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .perso-message-block {
    padding: 0 !important;
    padding-bottom: 1.2rem !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card .perso-delai,
html body.lbp-themed.lbp-themed.lbp-themed .perso-delai {
    font-family: var(--joy-font-script) !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card .perso-legal,
html body.lbp-themed.lbp-themed.lbp-themed .perso-legal {
    font-family: var(--joy-font-script) !important;
}


/* ============================================================
   65. PERSO-CONTACT-BLOCK
   ============================================================ */

html body.lbp-themed.lbp-themed.lbp-themed .perso-contact-block {
    padding: 0 !important;
    padding-bottom: 1.2rem !important;
}


/* ============================================================
   66. PERSO-OPTION-DESC + PERSO-OPT-INPUT
   - perso-option-desc : sans uppercase, font normal, letter-spacing 0
   - perso-opt-input : checkbox/radio custom Casa Flora (visibles)
   ============================================================ */

/* === perso-option-desc : texte propre, lisible === */
html body.lbp-themed.lbp-themed.lbp-themed .perso-option-desc {
    text-transform: none !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
}

/* === PERSO-OPT-INPUT : checkbox/radio custom Casa Flora === */

/* Reset complet de l'input + style custom */
html body.lbp-themed.lbp-themed.lbp-themed .perso-opt-input,
html body.lbp-themed.lbp-themed.lbp-themed input.perso-opt-input,
html body.lbp-themed.lbp-themed.lbp-themed input[type="checkbox"].perso-opt-input,
html body.lbp-themed.lbp-themed.lbp-themed input[type="radio"].perso-opt-input {
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    width: 22px !important;
    height: 22px !important;
    min-width: 22px !important;
    min-height: 22px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 2px solid var(--joy-ink) !important;
    background: var(--joy-cream) !important;
    cursor: pointer !important;
    position: relative !important;
    flex-shrink: 0 !important;
    display: inline-block !important;
    vertical-align: middle !important;
    box-shadow: none !important;
    transition: background 0.15s ease, transform 0.15s ease !important;
    accent-color: var(--joy-pink) !important;
}

/* Checkbox : carre arrondi */
html body.lbp-themed.lbp-themed.lbp-themed input[type="checkbox"].perso-opt-input {
    border-radius: 6px !important;
}

/* Radio : cercle */
html body.lbp-themed.lbp-themed.lbp-themed input[type="radio"].perso-opt-input {
    border-radius: 50% !important;
}

/* Hover : ombre pink subtle */
html body.lbp-themed.lbp-themed.lbp-themed .perso-opt-input:hover {
    box-shadow: 2px 2px 0 0 var(--joy-pink) !important;
    transform: translate(-1px, -1px) !important;
}

/* CHECKED : remplir en pink + check mark/dot blanc */
html body.lbp-themed.lbp-themed.lbp-themed .perso-opt-input:checked {
    background: var(--joy-pink) !important;
    border-color: var(--joy-ink) !important;
}

/* Checkbox checked : afficher un check blanc */
html body.lbp-themed.lbp-themed.lbp-themed input[type="checkbox"].perso-opt-input:checked::after {
    content: '' !important;
    position: absolute !important;
    left: 5px !important;
    top: 1px !important;
    width: 6px !important;
    height: 11px !important;
    border: solid var(--joy-cream) !important;
    border-width: 0 2.5px 2.5px 0 !important;
    transform: rotate(45deg) !important;
    pointer-events: none !important;
}

/* Radio checked : afficher un dot blanc au centre */
html body.lbp-themed.lbp-themed.lbp-themed input[type="radio"].perso-opt-input:checked::after {
    content: '' !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: 8px !important;
    height: 8px !important;
    background: var(--joy-cream) !important;
    border-radius: 50% !important;
    pointer-events: none !important;
}

/* Focus accessible : ring pink */
html body.lbp-themed.lbp-themed.lbp-themed .perso-opt-input:focus,
html body.lbp-themed.lbp-themed.lbp-themed .perso-opt-input:focus-visible {
    outline: 0 !important;
    box-shadow: 0 0 0 3px var(--joy-pink-tint, rgba(255, 80, 130, 0.25)) !important;
}

/* Disabled */
html body.lbp-themed.lbp-themed.lbp-themed .perso-opt-input:disabled {
    opacity: 0.5 !important;
    cursor: not-allowed !important;
    background: var(--joy-cream-soft) !important;
}


/* ============================================================
   67. PERSO-OPT-INPUT : c'est un WRAPPER <div>, pas un input
   - Reset complet des styles custom checkbox/radio appliques par erreur
   - Affichage conditionnel : uniquement si l'option (label parent) est cochee
   ============================================================ */

/* RESET : .perso-opt-input est un <div>, pas un input - on annule tous
   les styles checkbox/radio appliques par erreur en section 66 */
html body.lbp-themed.lbp-themed.lbp-themed div.perso-opt-input,
html body.lbp-themed.lbp-themed.lbp-themed .perso-option-wrap > .perso-opt-input,
html body.lbp-themed.lbp-themed.lbp-themed .perso-opt-input:not(input) {
    appearance: auto !important;
    -webkit-appearance: auto !important;
    -moz-appearance: auto !important;
    width: 100% !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    border: 0 !important;
    background: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    cursor: default !important;
    transform: none !important;
    display: none !important; /* CACHE PAR DEFAUT */
    padding: 0.8rem 1rem 0 !important;
    margin: 0 !important;
}

/* Annule aussi les ::after (check mark / dot) qui auraient ete
   ajoutes par erreur sur le wrapper */
html body.lbp-themed.lbp-themed.lbp-themed div.perso-opt-input::after,
html body.lbp-themed.lbp-themed.lbp-themed .perso-option-wrap > .perso-opt-input::after,
html body.lbp-themed.lbp-themed.lbp-themed .perso-opt-input:not(input)::after {
    display: none !important;
    content: none !important;
}

/* AFFICHAGE CONDITIONNEL : si le label parent contient un input coche,
   alors le sibling .perso-opt-input devient visible */
html body.lbp-themed.lbp-themed.lbp-themed .perso-option-wrap:has(.perso-option input:checked) > .perso-opt-input,
html body.lbp-themed.lbp-themed.lbp-themed .perso-option-wrap:has(input.perso-opt-input:checked) > .perso-opt-input {
    display: block !important;
}

/* Cas alternatif : l'input checkbox/radio est un FRERE direct du wrapper
   (depend de la structure HTML) */
html body.lbp-themed.lbp-themed.lbp-themed .perso-option:has(input:checked) ~ .perso-opt-input {
    display: block !important;
}

/* === Restreindre les styles custom checkbox/radio aux VRAIS inputs === */
/* Annule la regle generique de section 66 qui visait .perso-opt-input
   et la limite aux input[type=checkbox/radio] DANS .perso-option */

/* On reactive l'apparence native UNIQUEMENT pour les input wrapper qui
   ne sont pas le vrai checkbox de la perso-option */

/* === Style propre des INPUTS DE FORMULAIRE dans .perso-opt-input === */
html body.lbp-themed.lbp-themed.lbp-themed .perso-opt-input .perso-field,
html body.lbp-themed.lbp-themed.lbp-themed .perso-opt-input input[type="text"],
html body.lbp-themed.lbp-themed.lbp-themed .perso-opt-input input[type="number"],
html body.lbp-themed.lbp-themed.lbp-themed .perso-opt-input select,
html body.lbp-themed.lbp-themed.lbp-themed .perso-opt-input textarea {
    appearance: auto !important;
    -webkit-appearance: auto !important;
    width: 100% !important;
    height: auto !important;
    min-height: 42px !important;
    padding: 0.55rem 0.9rem !important;
    background: var(--joy-cream) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: 0.7rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.9rem !important;
    color: var(--joy-ink) !important;
    cursor: text !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
    margin: 0 !important;
    display: block !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .perso-opt-input select {
    cursor: pointer !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .perso-opt-input .perso-field:focus,
html body.lbp-themed.lbp-themed.lbp-themed .perso-opt-input input:focus,
html body.lbp-themed.lbp-themed.lbp-themed .perso-opt-input select:focus,
html body.lbp-themed.lbp-themed.lbp-themed .perso-opt-input textarea:focus {
    outline: 0 !important;
    box-shadow: 3px 3px 0 0 var(--joy-pink) !important;
}


/* ============================================================
   68. CORRECTIONS PERSO (suite)
   - perso-opt-input checkbox/radio : reset minimal (juste pad/margin/cursor/accent)
   - .perso-option:hover (et .perso-option-wrap:hover) : pas de background
   - .perso-file-label : background cobalt-tint
   - perso-opt-input :hover/focus : pas de box-shadow
   ============================================================ */

/* === PERSO-OPT-INPUT (vrai input checkbox/radio) : reset minimal === */
/* On ne force plus appearance:none ni le carre 22x22 custom ni la border ink :
   on laisse l'apparence native du navigateur, avec juste accent-color pink */
html body.lbp-themed.lbp-themed.lbp-themed input.perso-opt-input,
html body.lbp-themed.lbp-themed.lbp-themed input[type="checkbox"].perso-opt-input,
html body.lbp-themed.lbp-themed.lbp-themed input[type="radio"].perso-opt-input {
    -webkit-appearance: none !important;
    margin: 0 !important;
    padding: 0 !important;
    background: none !important;
    cursor: pointer !important;
    position: relative !important;
    flex-shrink: 0 !important;
    vertical-align: middle !important;
    box-shadow: none !important;
    transition: background 0.15s ease, transform 0.15s ease !important;
    accent-color: var(--joy-pink) !important;
}

/* Annule le ::after (check mark / dot) ajoute par section 66 sur les vrais inputs */
html body.lbp-themed.lbp-themed.lbp-themed input.perso-opt-input::after,
html body.lbp-themed.lbp-themed.lbp-themed input[type="checkbox"].perso-opt-input::after,
html body.lbp-themed.lbp-themed.lbp-themed input[type="radio"].perso-opt-input::after {
    display: none !important;
    content: none !important;
}

/* === Pas de box-shadow sur :hover/:focus de .perso-opt-input === */
html body.lbp-themed.lbp-themed.lbp-themed .perso-opt-input:hover,
html body.lbp-themed.lbp-themed.lbp-themed .perso-opt-input:focus,
html body.lbp-themed.lbp-themed.lbp-themed .perso-opt-input:focus-visible {
    box-shadow: none !important;
}

/* === .perso-option:hover et .perso-option-wrap:hover : pas de background === */
html body.lbp-themed.lbp-themed.lbp-themed .perso-option:hover,
html body.lbp-themed.lbp-themed.lbp-themed .perso-option-wrap:hover {
    background: transparent !important;
}

/* === .perso-file-label : background cobalt-tint === */
html body.lbp-themed.lbp-themed.lbp-themed .perso-file-label {
    background: var(--joy-cobalt-tint) !important;
}


/* ============================================================
   69. PERSO-OPT-INPUT WRAPPER - padding ajuste
   ============================================================ */

html body.lbp-themed.lbp-themed.lbp-themed div.perso-opt-input,
html body.lbp-themed.lbp-themed.lbp-themed .perso-option-wrap > .perso-opt-input,
html body.lbp-themed.lbp-themed.lbp-themed .perso-opt-input:not(input) {
    padding: 0 1rem 0.95rem !important;
}


/* ============================================================
   70. LBP-LOGIN-BTN - bouton submit de la modale login
   Style Casa Flora : pill pink full + ombre ink + slide au hover
   ============================================================ */

html body.lbp-themed.lbp-themed.lbp-themed .lbp-login-modal .lbp-login-btn {
    width: 100% !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.5rem !important;
    padding: 0.95rem 1.5rem !important;
    height: auto !important;
    background: var(--joy-pink) !important;
    color: var(--joy-cream) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    font-family: var(--joy-font-body) !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    text-decoration: none !important;
    cursor: pointer !important;
    box-shadow: 5px 5px 0 0 var(--joy-ink) !important;
    transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease !important;
    margin-top: 1.2rem !important;
    box-sizing: border-box !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .lbp-login-modal .lbp-login-btn:hover:not(:disabled) {
    background: var(--joy-pink) !important;
    color: var(--joy-cream) !important;
    transform: translate(-2px, -2px) !important;
    box-shadow: 7px 7px 0 0 var(--joy-ink) !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .lbp-login-modal .lbp-login-btn:active:not(:disabled) {
    transform: translate(0, 0) !important;
    box-shadow: 3px 3px 0 0 var(--joy-ink) !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .lbp-login-modal .lbp-login-btn:focus,
html body.lbp-themed.lbp-themed.lbp-themed .lbp-login-modal .lbp-login-btn:focus-visible {
    outline: 0 !important;
    box-shadow: 5px 5px 0 0 var(--joy-ink), 0 0 0 3px var(--joy-yellow) !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .lbp-login-modal .lbp-login-btn:disabled {
    opacity: 0.45 !important;
    cursor: not-allowed !important;
    transform: none !important;
    background: var(--joy-pink) !important;
    color: var(--joy-cream) !important;
    box-shadow: 3px 3px 0 0 var(--joy-ink) !important;
}


/* ============================================================
   71. VARIANT-OPTION-BTN selected : color white
   ============================================================ */

body.lbp-themed.lbp-themed .variant-option-btn.selected {
    color: white !important;
}


/* ============================================================
   72. QTY-CTRL - input[type=number] reset complet
   Le qty-ctrl est un wrapper pill outlined. L'input a l'interieur
   ne doit pas avoir lui-meme un style pill (sinon double bordure).
   ============================================================ */

html body.lbp-themed.lbp-themed.lbp-themed .qty-ctrl input[type="number"],
html body.lbp-themed.lbp-themed.lbp-themed .quantity-control input[type="number"],
html body.lbp-themed.lbp-themed.lbp-themed .quantity-add-row .qty-ctrl input[type="number"],
html body.lbp-themed.lbp-themed.lbp-themed .product-actions .qty-ctrl input[type="number"] {
    background: transparent !important;
    padding: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
}


/* ============================================================
   73. [DESACTIVE] Prix inline avec actions
   Cette section forcait le prix dans la actions row, mais cassait
   l'affichage natif sur les fiches sans qty visible. Le prix garde
   maintenant sa position naturelle (sous la tagline, au-dessus du
   bouton "Ajouter au panier").
   ============================================================ */


/* ============================================================
   74. CHECKOUT - corrections finales
   - alert-info ameliore (cobalt-tint vif + border)
   - checkout-summary background cream-soft
   - checkout-section sans border/shadow/padding (aside epure)
   - checkout-help sans box (bg/border/shadow none)
   - stripe-error display none
   - Toggle formulaire d'adresse : cache si adresses sauvegardees
   ============================================================ */

/* === ALERT-INFO ameliore === */
html body.lbp-themed.lbp-themed.lbp-themed .alert,
html body.lbp-themed.lbp-themed.lbp-themed .alert.alert-info {
    background: var(--joy-cobalt-tint, rgba(46, 78, 189, 0.12)) !important;
    border: 2px solid var(--joy-cobalt) !important;
    border-radius: 1rem !important;
    color: var(--joy-ink) !important;
    padding: 1rem 1.25rem !important;
    font-family: var(--joy-font-body) !important;
    font-size: 0.95rem !important;
    line-height: 1.55 !important;
    box-shadow: 3px 3px 0 0 var(--joy-cobalt) !important;
    margin: 1rem 0 !important;
    display: flex !important;
    align-items: flex-start !important;
    gap: 0.7rem !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .alert.alert-info::before {
    content: '\2731' !important; /* fleur 8 branches */
    color: var(--joy-cobalt) !important;
    font-size: 1.2rem !important;
    line-height: 1.55 !important;
    flex-shrink: 0 !important;
    width: 1.2rem !important;
    min-width: 1.2rem !important;
    text-align: center !important;
    display: inline-block !important;
    margin-top: 0 !important;
}

/* Protege les icones inline (SVG / img / i) directement enfants d'une alerte
   pour qu'elles ne se compriment pas et ne se chevauchent pas avec le texte. */
html body.lbp-themed.lbp-themed.lbp-themed .alert > svg,
html body.lbp-themed.lbp-themed.lbp-themed .alert > img,
html body.lbp-themed.lbp-themed.lbp-themed .alert > i {
    flex-shrink: 0 !important;
    align-self: flex-start !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .alert.alert-info a {
    color: var(--joy-cobalt) !important;
    text-decoration: underline !important;
    font-weight: 600 !important;
}

/* === CHECKOUT-SUMMARY : fond cream-soft === */
html body.lbp-themed.lbp-themed.lbp-themed .checkout-summary {
    background: var(--joy-cream-soft) !important;
}

/* === CHECKOUT-SECTION : style cream avec border + ombre === */
html body.lbp-themed.lbp-themed.lbp-themed .checkout-section {
    background: var(--joy-cream-soft) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-lg) !important;
    box-shadow: var(--joy-shadow-sm) !important;
    padding: 1.5rem !important;
    margin-bottom: 1.2rem !important;
}

/* === ASIDE > CHECKOUT-SECTION : version epuree (recap commande, etc.) === */
html body.lbp-themed.lbp-themed.lbp-themed aside .checkout-section {
    background: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin-bottom: 1.2rem !important;
}

/* === CHECKOUT-HELP : aucun cadre === */
html body.lbp-themed.lbp-themed.lbp-themed .checkout-help {
    background: none !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 1rem 0 0 !important;
}

/* === STRIPE-ERROR : cache par defaut === */
html body.lbp-themed.lbp-themed.lbp-themed .stripe-error,
html body.lbp-themed.lbp-themed.lbp-themed #stripe-error,
html body.lbp-themed.lbp-themed.lbp-themed #card-errors:empty {
    display: none !important;
}

/* === FORMULAIRE D'ADRESSE : cache si adresses enregistrees existent === */
/* Detection : .address-picker presente dans le checkout-section
   => le bloc des form-group qui suit doit etre cache par defaut.
   On utilise une classe .joy-address-form-fields ajoutee par JS au runtime. */

html body.lbp-themed.lbp-themed.lbp-themed .joy-address-form-fields {
    display: none !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .joy-address-form-fields.is-visible {
    display: block !important;
}


/* ============================================================
   75. CART-ITEM : grid 5 colonnes precises
   image | infos | qty | prix | remove
   ============================================================ */

html body.lbp-themed.lbp-themed.lbp-themed .cart-item {
    grid-template-columns: 101px 1fr 110px 110px 40px !important;
}


/* ============================================================
   76. FAV-HEART-BTN - couleurs SVG
   ============================================================ */

/* Etat NON favori : pink stroke + fill (coeur creux pink) */
html body.lbp-themed.lbp-themed.lbp-themed .product-detail .fav-heart-btn svg {
    color: var(--joy-pink);
    stroke: var(--joy-pink);
    fill: var(--joy-pink);
}

/* Etat FAVORI (.is-fav) : ink stroke + cream fill (coeur ink avec interieur cream) */
body.lbp-themed.lbp-themed .fav-heart-btn.is-fav svg {
    color: var(--joy-ink) !important;
    stroke: var(--joy-ink) !important;
    fill: var(--joy-cream-soft) !important;
}


/* ============================================================
   77. CART-ITEM responsive (uniquement)
   - Desktop >=900px : 5 cols [101 | 1fr | 110 | 110 | 40]
   - Tablette 600-899px : 4 cols [80 | 1fr | auto | 40] - prix masque/integre
   - Mobile <600px : 2 cols [70 | 1fr] avec controls empiles
   ============================================================ */

/* Tablette / petit desktop */
@media (max-width: 899px) {
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item {
        grid-template-columns: 90px 1fr auto 40px !important;
        gap: 1rem !important;
        align-items: center !important;
    }

    html body.lbp-themed.lbp-themed.lbp-themed .cart-item-image {
        width: 90px !important;
        height: 90px !important;
    }

    /* Le prix passe sous les controles dans la colonne info */
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item .cart-item-price {
        grid-column: 1 / -1 !important;
        text-align: right !important;
        font-size: 1.1rem !important;
        margin-top: 0.5rem !important;
    }
}

/* Mobile */
@media (max-width: 599px) {
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item {
        grid-template-columns: 70px 1fr !important;
        gap: 0.8rem !important;
        align-items: flex-start !important;
        position: relative !important;
        padding: 1rem 0 !important;
    }

    html body.lbp-themed.lbp-themed.lbp-themed .cart-item-image {
        width: 70px !important;
        height: 70px !important;
        padding: 0.3rem !important;
    }

    /* Tout ce qui n'est ni image ni remove va dans la colonne 2 */
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item > *:not(.cart-item-image):not(.cart-item-remove):not(.remove-item) {
        grid-column: 2 / 3 !important;
    }

    /* Bouton remove en haut a droite via position absolute */
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item .cart-item-remove,
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item .remove-item,
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item button[aria-label*="upprimer"],
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item button[title*="upprimer"] {
        position: absolute !important;
        top: 1rem !important;
        right: 0 !important;
        margin: 0 !important;
        grid-column: auto !important;
        z-index: 2 !important;
    }

    /* Titre h3 plus petit + place pour le X a droite */
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item h3 {
        font-size: 1rem !important;
        line-height: 1.15 !important;
        padding-right: 2.5rem !important;
        margin: 0 0 0.4rem !important;
    }

    /* Tag "16 cm" / variantes plus compact */
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item .cart-item-variants,
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item .cart-item-variant,
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item .item-variant {
        font-size: 0.85rem !important;
        padding: 0.2rem 0.6rem !important;
    }

    /* Lien "Deplacer vers mes preferes" plus discret */
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item .move-to-fav,
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item .cart-item-fav-link {
        font-size: 0.85rem !important;
        margin: 0.3rem 0 !important;
    }

    /* Quantite + prix sur la meme ligne, bien repartis */
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item .cart-item-controls,
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item .qty-ctrl,
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item .quantity-control {
        margin-top: 0.5rem !important;
    }

    /* Si prix existe : le mettre a droite de la qty */
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item .cart-item-price {
        font-size: 1.05rem !important;
        text-align: right !important;
        margin-top: 0.4rem !important;
    }

    /* Si .cart-item-controls + .cart-item-price sont les enfants directs,
       les mettre cote a cote avec flex */
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item:has(.cart-item-controls + .cart-item-price) .cart-item-controls,
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item:has(.cart-item-controls + .cart-item-price) .cart-item-price {
        display: inline-flex !important;
        vertical-align: middle !important;
    }

    /* qty-ctrl plus compact mobile */
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item .qty-ctrl,
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item .quantity-control {
        height: 40px !important;
        padding: 0 0.3rem !important;
    }

    html body.lbp-themed.lbp-themed.lbp-themed .cart-item .qty-ctrl button,
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item .quantity-control button {
        width: 28px !important;
        height: 28px !important;
        font-size: 1rem !important;
    }

    html body.lbp-themed.lbp-themed.lbp-themed .cart-item .qty-ctrl input,
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item .quantity-control input {
        width: 30px !important;
    }
}


/* ============================================================
   78. CHECKOUT-GRID + RECAP-ITEM + ALERT-INFO + CART-ITEM v2
   ============================================================ */

/* === CHECKOUT-GRID : ratio + gap === */
@media (min-width: 900px) {
    body.lbp-themed.lbp-themed .checkout-grid {
        grid-template-columns: 1.9fr 1fr !important;
        gap: 3rem !important;
    }
}

/* === RECAP-ITEM : sans cadre, juste cream-soft === */
html body.lbp-themed.lbp-themed.lbp-themed .recap-item {
    background: var(--joy-cream-soft) !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin-bottom: 0.5rem !important;
    display: grid !important;
    grid-template-columns: 56px 1fr auto !important;
    gap: 0.7rem !important;
    align-items: center !important;
    box-shadow: none !important;
}

/* === ALERT-INFO : icone qui ne chevauche plus le titre === */
/* On supprime le ::before pseudo et on garde juste un padding-left
   pour la barre laterale visuelle */
html body.lbp-themed.lbp-themed.lbp-themed .alert.alert-info::before {
    display: none !important;
    content: none !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .alert,
html body.lbp-themed.lbp-themed.lbp-themed .alert.alert-info {
    display: block !important;
    padding: 1rem 1.25rem !important;
}


/* ============================================================
   79. CART-ITEM v3 : layout aligne avec le markup panier.php
   Structure HTML :
     .cart-item (grid 3 cols)
       ├─ .cart-item-image    (col 1)
       ├─ .cart-item-info     (col 2)
       │   ├─ h3 (titre)
       │   ├─ .variants
       │   ├─ .cart-item-controls-row (qty + petit X)
       │   └─ .move-wishlist-form (lien preferes)
       └─ .cart-item-price    (col 3)
   ============================================================ */

/* GRID PRINCIPAL : 3 colonnes [image | infos | prix] */
html body.lbp-themed.lbp-themed.lbp-themed .cart-item {
    display: grid !important;
    grid-template-columns: 70px 1fr auto !important;
    gap: 1.2rem !important;
    align-items: flex-start !important;
    padding: 1.2rem 0 !important;
}

/* === Colonne 2 : .cart-item-info en flex column === */
html body.lbp-themed.lbp-themed.lbp-themed .cart-item .cart-item-info {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.4rem !important;
    min-width: 0 !important;
    align-self: flex-start !important;
}

/* Titre h3 */
html body.lbp-themed.lbp-themed.lbp-themed .cart-item .cart-item-info h3 {
    margin: 0 !important;
    font-size: 1.2rem !important;
    line-height: 1.2 !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .cart-item .cart-item-info h3 a {
    color: inherit !important;
    text-decoration: none !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .cart-item .cart-item-info h3 a:hover {
    color: var(--joy-pink) !important;
}

/* Variantes pill discret */
html body.lbp-themed.lbp-themed.lbp-themed .cart-item .cart-item-info .variants {
    align-self: flex-start !important;
    background: var(--joy-cream-soft) !important;
    color: var(--joy-ink) !important;
    border: 0 !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0 !important;
    font-size: 0.85rem !important;
    margin: 0 !important;
}

/* Row qty + remove inline */
html body.lbp-themed.lbp-themed.lbp-themed .cart-item .cart-item-controls-row {
    display: flex !important;
    align-items: center !important;
    gap: 0.5rem !important;
    margin: 0.4rem 0 0 !important;
    flex-wrap: wrap !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .cart-item .cart-item-controls-row .cart-item-quantity,
html body.lbp-themed.lbp-themed.lbp-themed .cart-item .cart-item-controls-row .qty-form,
html body.lbp-themed.lbp-themed.lbp-themed .cart-item .cart-item-controls-row .cart-item-remove-form {
    margin: 0 !important;
    display: inline-flex !important;
}

/* qty-ctrl plus compact */
html body.lbp-themed.lbp-themed.lbp-themed .cart-item .qty-ctrl {
    height: 38px !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-pill) !important;
    padding: 0 0.4rem !important;
    background: transparent !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .cart-item .qty-btn {
    width: 28px !important;
    height: 28px !important;
    background: transparent !important;
    border: 0 !important;
    color: var(--joy-ink) !important;
    cursor: pointer !important;
    font-size: 1.1rem !important;
    box-shadow: none !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .cart-item .qty-input {
    width: 32px !important;
    text-align: center !important;
    border: 0 !important;
    background: transparent !important;
    padding: 0 !important;
    box-shadow: none !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 600 !important;
}

/* Petit bouton remove discret */
html body.lbp-themed.lbp-themed.lbp-themed .cart-item .cart-item-remove {
    background: transparent !important;
    color: var(--joy-ink-mute, rgba(42, 26, 15, 0.55)) !important;
    border: 0 !important;
    border-radius: 50% !important;
    width: 32px !important;
    height: 32px !important;
    padding: 0 !important;
    box-shadow: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    transition: color 0.15s ease, background 0.15s ease !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .cart-item .cart-item-remove:hover {
    color: var(--joy-pink) !important;
    background: var(--joy-pink-tint, rgba(233, 30, 99, 0.08)) !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .cart-item .cart-item-remove svg {
    width: 16px !important;
    height: 16px !important;
}

/* Lien wishlist en dessous : sur DESKTOP, span toute la largeur en row 2 du grid */
html body.lbp-themed.lbp-themed.lbp-themed .cart-item .move-wishlist-form {
    margin: 0.3rem 0 0 !important;
}
html body.lbp-themed.lbp-themed.lbp-themed .cart-item > .move-wishlist-form {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    justify-self: start !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .cart-item .link-wishlist {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    color: var(--joy-cobalt) !important;
    font-family: var(--joy-font-script) !important;
    font-style: italic !important;
    font-size: 1rem !important;
    cursor: pointer !important;
    text-decoration: underline !important;
    text-decoration-color: var(--joy-yellow) !important;
    text-decoration-thickness: 2px !important;
    text-underline-offset: 3px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.3rem !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .cart-item .link-wishlist:hover {
    color: var(--joy-pink) !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .cart-item .link-wishlist svg {
    color: var(--joy-cobalt) !important;
    stroke: var(--joy-cobalt) !important;
}

/* === Colonne 3 : prix === */
html body.lbp-themed.lbp-themed.lbp-themed .cart-item .cart-item-price {
    text-align: right !important;
    font-family: var(--joy-font-script) !important;
    font-style: italic !important;
    color: var(--joy-pink) !important;
    font-size: 1.4rem !important;
    line-height: 1 !important;
    margin: 0.4rem 0 0 !important;
    align-self: flex-start !important;
    white-space: nowrap !important;
}

/* === RESPONSIVE cart-item v3 === */
@media (max-width: 599px) {
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item {
        grid-template-columns: 70px 1fr !important;
        gap: 0.8rem !important;
    }

    html body.lbp-themed.lbp-themed.lbp-themed .cart-item .cart-item-image {
        width: 70px !important;
        height: 70px !important;
    }

    /* Le prix passe sous le titre dans la col 2 */
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item .cart-item-price {
        grid-column: 2 / 3 !important;
        text-align: left !important;
        font-size: 1.2rem !important;
        margin: 0.2rem 0 0 !important;
    }

    html body.lbp-themed.lbp-themed.lbp-themed .cart-item .cart-item-info h3 {
        font-size: 1.05rem !important;
    }
}


/* ============================================================
   80. CART-ITEM v3 - FORCE ORDRE explicite des enfants .cart-item-info
   pour eviter tout conflit avec d'anciennes regles natives
   ============================================================ */

/* Ordre explicite via order property : titre, variants, controls, wishlist */
html body.lbp-themed.lbp-themed.lbp-themed .cart-item .cart-item-info > h3 {
    order: 1 !important;
}
html body.lbp-themed.lbp-themed.lbp-themed .cart-item .cart-item-info > .variants {
    order: 2 !important;
}
html body.lbp-themed.lbp-themed.lbp-themed .cart-item .cart-item-info > .cart-item-controls-row {
    order: 3 !important;
}
html body.lbp-themed.lbp-themed.lbp-themed .cart-item .cart-item-info > .move-wishlist-form {
    order: 4 !important;
}

/* Securite : si une ancienne regle native met .cart-item en 5 cols,
   on overrride avec spec maximale - DESKTOP */
html body.lbp-themed.lbp-themed.lbp-themed.lbp-themed .cart-item {
    grid-template-columns: 100px 1fr auto !important;
    grid-template-rows: auto !important;
}

/* Si dans .cart-item il y a des enfants directs ANCIENNEMENT structure
   (qty/remove en dehors de .cart-item-info), on les masque (defensive) */
html body.lbp-themed.lbp-themed.lbp-themed .cart-item > .cart-item-quantity,
html body.lbp-themed.lbp-themed.lbp-themed .cart-item > form:not(.cart-item-info form):not(.cart-item-info > form) {
    /* On ne masque PAS - juste on s'assure qu'ils ne cassent pas le layout */
    /* (regle volontairement vide - placeholder pour future safeguard) */
}


/* ============================================================ */
/* JOY THEME v2 - Blog index, Article, Events index, Event page */
/* ============================================================ */

/* Palette rythmique : 6 couleurs vibrantes cyclees par data-joy-color */
/* Palette rythmique : 6 couleurs vibrantes cyclees par data-joy-color
   Ordre : jaune, vert, orange, bleu, rose, violet
   --joy-bg = couleur de fond | --joy-fg = couleur du texte qui contraste
   --joy-pill-bg/fg = pill (badge) qui ressort sur le fond */
body.lbp-themed.lbp-themed [data-joy-color="0"] { --joy-bg: #FFD133; --joy-fg: #2c1810; --joy-pill-bg: #fef3da; --joy-pill-fg: #2c1810; } /* jaune */
body.lbp-themed.lbp-themed [data-joy-color="1"] { --joy-bg: #21B354; --joy-fg: #fef3da; --joy-pill-bg: #fef3da; --joy-pill-fg: #2c1810; } /* vert */
body.lbp-themed.lbp-themed [data-joy-color="2"] { --joy-bg: #FF8A0E; --joy-fg: #2c1810; --joy-pill-bg: #fef3da; --joy-pill-fg: #2c1810; } /* orange */
body.lbp-themed.lbp-themed [data-joy-color="3"] { --joy-bg: #2643F0; --joy-fg: #fef3da; --joy-pill-bg: #fef3da; --joy-pill-fg: #2c1810; } /* bleu */
body.lbp-themed.lbp-themed [data-joy-color="4"] { --joy-bg: #FF1F7E; --joy-fg: #2c1810; --joy-pill-bg: #fef3da; --joy-pill-fg: #2c1810; } /* rose */
body.lbp-themed.lbp-themed [data-joy-color="5"] { --joy-bg: #9333EA; --joy-fg: #fef3da; --joy-pill-bg: #fef3da; --joy-pill-fg: #2c1810; } /* violet */

/* Variables utiles */
body.lbp-themed.lbp-themed {
    --joy-cream: #FBF1DD;
    --joy-cream-dark: #F5E6C9;
    --joy-ink: #2c1810;
    --joy-ink-soft: #5a3f2a;
    --joy-pink: #FF1F7E;
    --joy-blue: #2643F0;
    --joy-shadow: 7px 7px 0 #2c1810;
    --joy-shadow-sm: 4px 4px 0 #2c1810;
    --joy-radius: 24px;
    --joy-radius-sm: 16px;
    --joy-script: 'Caveat', 'Permanent Marker', cursive;
    --joy-serif: 'Cormorant', 'Cormorant Garamond', 'Playfair Display', Georgia, serif;
}

/* ============== 1) BLOG INDEX (le journal) ============== */

body.lbp-themed.lbp-themed .page-content { background: var(--joy-cream); }

/* Sur les pages article et evenement (qui ont un hero plein largeur colore),
   on remonte le <main> sous le nav transparent pour que le bg coloré 
   demarre au top de la page. Le hero compense avec un padding-top qui 
   inclut la hauteur du nav. */
body.lbp-themed.lbp-themed.page-article main.page-content,
body.lbp-themed.lbp-themed.page-evenement main.page-content {
    margin-top: calc(-1 * (var(--lbp-logo-h, 50px) + 3rem));
}
body.lbp-themed.lbp-themed .blog-section { background: var(--joy-cream); padding: 3rem 0 6rem; }
body.lbp-themed.lbp-themed .blog-section .container { max-width: 1240px; }

/* Hero "a la une" : split 50/50 avec card colore + decalage shadow */
body.lbp-themed.lbp-themed .blog-hero {
    grid-template-columns: 1.1fr 1fr !important;
    background: var(--joy-cream) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius) !important;
    box-shadow: var(--joy-shadow) !important;
    overflow: hidden !important;
    margin-bottom: 5rem !important;
    position: relative;
}

body.lbp-themed.lbp-themed .blog-hero .blog-hero-image {
    background: var(--joy-bg, #FF1F7E) !important;
    border-right: none !important;
    display: flex !important;
    align-items: center !important;
    aspect-ratio: 1 / 1;
    justify-content: center !important;
    width: 100%;
}
body.lbp-themed.lbp-themed .blog-hero .blog-hero-image img {
    object-fit: cover !important;
    mix-blend-mode: multiply;
    padding: 0;
    height: 100%;
    width: 100%;
}
body.lbp-themed.lbp-themed .blog-hero .blog-hero-image picture {
    width: 100%;
    height: 100%;
}
body.lbp-themed.lbp-themed .blog-hero-content {
    padding: 3.5rem 3rem !important;
    background: var(--joy-cream) !important;
    position: relative;
}
body.lbp-themed.lbp-themed .blog-hero-content .blog-tag {
    background: var(--joy-ink) !important;
    color: var(--joy-cream) !important;
    border-radius: 999px !important;
    padding: 6px 16px !important;
    font-size: 0.7rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    display: inline-block !important;
    margin-bottom: 0 !important;
}
body.lbp-themed.lbp-themed .blog-hero-content .blog-card-category {
    color: var(--joy-blue) !important;
    background: transparent !important;
    padding: 0 !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    border: none !important;
    display: none;
}
body.lbp-themed.lbp-themed .blog-hero-content h2 {
    font-family: var(--joy-serif) !important;
    font-size: clamp(2.2rem, 4vw, 3.4rem) !important;
    line-height: 1.05 !important;
    font-weight: 700 !important;
    color: var(--joy-ink) !important;
    margin: 1rem 0 1.25rem !important;
    letter-spacing: -0.01em;
}
body.lbp-themed.lbp-themed .blog-hero-content h2 a {
    color: inherit !important;
    text-decoration: none !important;
}
body.lbp-themed.lbp-themed .blog-hero-excerpt {
    color: var(--joy-ink-soft) !important;
    font-size: 1.05rem !important;
    line-height: 1.6 !important;
    margin-bottom: 1.5rem !important;
}
body.lbp-themed.lbp-themed .blog-hero .blog-card-meta {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin-top: auto !important;
    padding-top: 1rem;
}
body.lbp-themed.lbp-themed .blog-hero .blog-card-date {
    font-family: var(--joy-script) !important;
    color: var(--joy-blue) !important;
    font-size: 1.25rem !important;
    font-weight: 500 !important;
}
body.lbp-themed.lbp-themed .blog-hero .blog-card-date::before { content: 'par Kalina · '; }
body.lbp-themed.lbp-themed .blog-hero .blog-card-date svg { display: none !important; }
body.lbp-themed.lbp-themed .blog-hero .btn-read {
    background: var(--joy-pink) !important;
    color: white !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: 999px !important;
    padding: 12px 22px !important;
    font-weight: 700 !important;
    font-size: 0.95rem !important;
    box-shadow: 3px 3px 0 var(--joy-ink);
    transition: transform 0.15s, box-shadow 0.15s;
    text-decoration: none !important;
}
body.lbp-themed.lbp-themed .blog-hero .btn-read:hover {
    transform: translate(-2px, -2px);
    box-shadow: 5px 5px 0 var(--joy-ink);
}
body.lbp-themed.lbp-themed .blog-hero .btn-read::after { content: ' →'; }

/* Grille des autres articles : cards rythmiques colorees */
body.lbp-themed.lbp-themed .blog-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)) !important;
    gap: 2rem !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    width: 100% !important;
}

/* Mobile : blog-hero passe en COLONNE (image au-dessus, contenu en-dessous) */
@media (max-width: 899px) {
    body.lbp-themed.lbp-themed .blog-hero {
        grid-template-columns: 1fr !important;
        margin-bottom: 2.5rem !important;
        box-shadow: 4px 4px 0 var(--joy-ink) !important;
    }
    body.lbp-themed.lbp-themed .blog-hero .blog-hero-image {
        min-height: 220px !important;
        max-height: 280px !important;
        border-right: none !important;
        border-bottom: 2px solid var(--joy-ink) !important;
    }
    body.lbp-themed.lbp-themed .blog-hero-content {
        padding: 1.5rem !important;
    }
    body.lbp-themed.lbp-themed .blog-hero-content h2 {
        font-size: clamp(1.4rem, 5.5vw, 2rem) !important;
        line-height: 1.15 !important;
        margin: 0.6rem 0 0.8rem !important;
    }
    body.lbp-themed.lbp-themed .blog-hero-excerpt {
        font-size: 0.95rem !important;
        line-height: 1.5 !important;
        margin-bottom: 1rem !important;
        display: -webkit-box;
        -webkit-line-clamp: 3;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

}


@media (max-width: 767px) {
    body.lbp-themed.lbp-themed .blog-grid {
        display: flex !important;
        flex-direction: column !important;
    }
}
body.lbp-themed.lbp-themed .blog-card {
    background: var(--joy-cream) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius) !important;
    box-shadow: var(--joy-shadow-sm) !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    transition: transform 0.2s, box-shadow 0.2s;
    position: relative;
}
body.lbp-themed.lbp-themed .blog-card:hover {
    transform: translate(-2px, -2px);
    box-shadow: 7px 7px 0 var(--joy-ink) !important;
}
body.lbp-themed.lbp-themed .blog-card-image {
    background: var(--joy-bg, #FFD133) !important;
    aspect-ratio: 4/3 !important;
    border-bottom: 2px solid var(--joy-ink) !important;
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden;
}
body.lbp-themed.lbp-themed .blog-card-image img {
    object-fit: cover !important;
    mix-blend-mode: multiply;
    width: 100% !important;
    height: 100% !important;
    padding: 0 !important;
    bordeer-bottom: none !important;
}
body.lbp-themed.lbp-themed picture {
    width: 100%;
    height: 100%;
}
/* Pill categorie en overlay sur l'image - SUPPRIME (doublon avec categorie au-dessus du titre) */
body.lbp-themed.lbp-themed .blog-card-image::before { content: none !important; }

/* Placeholder sans image : montre quand meme la couleur de fond */
body.lbp-themed.lbp-themed .blog-card-placeholder,
body.lbp-themed.lbp-themed .blog-hero-placeholder {
    background: transparent !important;
    color: var(--joy-fg, var(--joy-ink)) !important;
    opacity: 0.5;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Pour l'article-image (image principale au milieu de l'article) :
   si elle n'existe pas, le hero descend simplement sans gap. */
/* Style unifie pour tous les articles (avec ou sans image principale) : pas d'encadre */
body.lbp-themed.lbp-themed .article-single .article-header + .article-content,
body.lbp-themed.lbp-themed .article-single .article-image + .article-content {
    margin-top: 0;
}
body.lbp-themed.lbp-themed .article-single .article-header + .article-content > .container,
body.lbp-themed.lbp-themed .article-single .article-image + .article-content > .container {
    padding-top: 1rem;
    background: transparent;
    border: 0;
    box-shadow: none;
    padding-left: 24px;
    padding-right: 24px;
}
body.lbp-themed.lbp-themed .blog-card-content {
    padding: 1.5rem !important;
    background: var(--joy-cream) !important;
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
}
body.lbp-themed.lbp-themed .blog-card-content .blog-card-category {
    color: var(--joy-blue) !important;
    background: transparent !important;
    padding: 0 !important;
    font-size: 0.7rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    margin-bottom: 8px !important;
    border: none !important;
}
body.lbp-themed.lbp-themed .blog-card h2 {
    font-family: var(--joy-serif) !important;
    font-size: 1.4rem !important;
    line-height: 1.1 !important;
    font-weight: 700 !important;
    color: var(--joy-ink) !important;
    margin: 0 0 0.5rem !important;
}
body.lbp-themed.lbp-themed .blog-card h2 a { color: inherit !important; text-decoration: none !important; }
body.lbp-themed.lbp-themed .blog-card .blog-card-excerpt {
    color: var(--joy-ink-soft) !important;
    font-size: 0.9rem !important;
    line-height: 1.5 !important;
    margin-bottom: 1rem !important;
    flex: 1;
}
body.lbp-themed.lbp-themed .blog-card .blog-card-meta {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin-top: auto !important;
}
body.lbp-themed.lbp-themed .blog-card .blog-card-date {
    font-family: var(--joy-script) !important;
    color: var(--joy-blue) !important;
    font-size: 1.05rem !important;
    font-weight: 500 !important;
}
body.lbp-themed.lbp-themed .blog-card .blog-card-date svg { display: none !important; }
body.lbp-themed.lbp-themed .blog-card .blog-card-link {
    background: var(--joy-ink) !important;
    color: var(--joy-cream) !important;
    border-radius: 999px !important;
    padding: 8px 16px !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    border: 1.5px solid var(--joy-ink);
}
body.lbp-themed.lbp-themed .blog-card .blog-card-link::after { content: ' →'; }

/* ============== 2) ARTICLE PAGE ============== */

body.lbp-themed.lbp-themed .article-single {
    background: var(--joy-cream) !important;
}
body.lbp-themed.lbp-themed .article-single .article-header {
    background: var(--joy-bg, #FF1F7E) !important;
    color: var(--joy-fg, var(--joy-ink)) !important;
    padding: calc(4rem + var(--lbp-logo-h, 50px)) 0 5rem !important;
    margin: 0 !important;
    position: relative;
    overflow: hidden;
}
body.lbp-themed.lbp-themed .article-single .article-header .container {
    max-width: 980px !important;
    position: relative;
    z-index: 2;
}
body.lbp-themed.lbp-themed .article-back-link {
    display: inline-block;
    font-family: var(--joy-script);
    font-size: 1.3rem;
    color: var(--joy-fg, var(--joy-ink)) !important;
    text-decoration: underline !important;
    text-underline-offset: 4px;
    margin-bottom: 1.5rem;
    font-weight: 500;
}
body.lbp-themed.lbp-themed .article-single .article-meta-top {
    display: flex !important;
    align-items: center !important;
    gap: 1rem !important;
    flex-wrap: wrap !important;
    margin-bottom: 1.5rem !important;
}
body.lbp-themed.lbp-themed .article-single .article-category {
    background: var(--joy-pill-bg, white) !important;
    color: var(--joy-pill-fg, var(--joy-ink)) !important;
    padding: 7px 18px !important;
    border-radius: 999px !important;
    font-size: 0.75rem !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    border: 1.5px solid var(--joy-ink) !important;
}
body.lbp-themed.lbp-themed .article-single .article-date {
    color: var(--joy-fg, var(--joy-ink)) !important;
    opacity: 0.85;
    font-size: 0.85rem !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
}
body.lbp-themed.lbp-themed .article-single .article-date svg { width: 14px; height: 14px; }
body.lbp-themed.lbp-themed .article-single .article-header h1 {
    font-family: var(--joy-serif) !important;
    font-size: clamp(2.5rem, 6vw, 5rem) !important;
    line-height: 1.05 !important;
    font-weight: 700 !important;
    color: var(--joy-fg, var(--joy-ink)) !important;
    margin: 0.5rem 0 1.5rem !important;
    letter-spacing: -0.015em;
}
body.lbp-themed.lbp-themed .article-single .article-intro {
    font-size: 1.2rem !important;
    line-height: 1.5 !important;
    color: var(--joy-fg, var(--joy-ink)) !important;
    opacity: 0.92;
    margin-bottom: 1.5rem !important;
    max-width: 720px;
    font-family: inherit !important;
}
body.lbp-themed.lbp-themed .article-single .article-author {
    margin-top: 1rem !important;
    font-family: var(--joy-script) !important;
    font-size: 1.4rem !important;
    color: var(--joy-fg, var(--joy-ink)) !important;
}
body.lbp-themed.lbp-themed .article-single .article-author span { font-family: inherit !important; }
body.lbp-themed.lbp-themed .article-single .article-author strong {
    font-weight: inherit !important;
    font-family: inherit !important;
}

/* Image principale entre hero et contenu : carde avec offset shadow */
body.lbp-themed.lbp-themed .article-single .article-image {
    max-width: 880px !important;
    margin: -3rem auto 3rem !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius) !important;
    box-shadow: var(--joy-shadow) !important;
    overflow: hidden !important;
    background: var(--joy-cream) !important;
    position: relative;
    z-index: 3;
    padding: 0 !important;
}

/* Contenu : drop cap + large lecture */
body.lbp-themed.lbp-themed .article-single .article-content {
    padding: 1rem 0 4rem !important;
}
body.lbp-themed.lbp-themed .article-single .article-content .container {
    max-width: 720px !important;
}
body.lbp-themed.lbp-themed .article-single .article-body {
    font-size: 1.13rem !important;
    line-height: 1.75 !important;
    color: var(--joy-ink) !important;
}
body.lbp-themed.lbp-themed .article-single .article-body > p:first-of-type::first-letter {
    float: left;
    font-family: var(--joy-serif);
    font-size: 5.2em;
    line-height: 0.85;
    font-weight: 700;
    color: var(--joy-pink);
    margin: 0.05em 0.12em -0.05em 0;
}

/* Tags */
body.lbp-themed.lbp-themed .article-single .article-tags {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    flex-wrap: wrap !important;
    margin: 2.5rem 0 !important;
    padding-top: 2rem !important;
    border-top: 1px dashed var(--joy-ink) !important;
}
body.lbp-themed.lbp-themed .article-single .article-tags .tags-label {
    font-family: var(--joy-script) !important;
    font-size: 1.1rem !important;
    color: var(--joy-blue) !important;
}
body.lbp-themed.lbp-themed .article-single .article-tags .tag {
    background: var(--joy-cream-dark) !important;
    color: var(--joy-ink) !important;
    padding: 6px 14px !important;
    border-radius: 999px !important;
    font-size: 0.82rem !important;
    border: 1.5px solid var(--joy-ink);
    font-weight: 600;
}

/* ============== 3) EVENTS INDEX ============== */

body.lbp-themed.lbp-themed .events-list {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 2rem !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
@media (max-width: 1100px) {
    body.lbp-themed.lbp-themed .events-list { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 720px) {
    body.lbp-themed.lbp-themed .events-list { grid-template-columns: 1fr !important; }
}
body.lbp-themed.lbp-themed .event-card-link { display: block; }
body.lbp-themed.lbp-themed .event-card {
    background: var(--joy-cream) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius) !important;
    box-shadow: var(--joy-shadow-sm) !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    padding: 0 !important;
    transition: transform 0.2s, box-shadow 0.2s;
    position: relative;
    grid-template-columns: none !important;
}
body.lbp-themed.lbp-themed .event-card:hover {
    transform: translate(-2px, -2px);
    box-shadow: 7px 7px 0 var(--joy-ink) !important;
}
/* Banniere coloree en haut avec date dans le coin */
body.lbp-themed.lbp-themed .event-card .event-date {
    background: var(--joy-bg, #FF8A0E) !important;
    color: var(--joy-fg, var(--joy-ink)) !important;
    border: none !important;
    border-bottom: 2px solid var(--joy-ink) !important;
    border-radius: 0 !important;
    padding: 1.75rem 1.75rem 1.5rem !important;
    aspect-ratio: 4/3;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    position: relative !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}
body.lbp-themed.lbp-themed .event-card .event-date .day {
    font-family: var(--joy-serif) !important;
    font-size: 4.5rem !important;
    line-height: 1 !important;
    font-weight: 700 !important;
    color: var(--joy-fg, var(--joy-ink)) !important;
    margin: 0 !important;
}
body.lbp-themed.lbp-themed .event-card .event-date .month {
    font-family: var(--joy-script) !important;
    font-size: 1.6rem !important;
    color: var(--joy-fg, var(--joy-ink)) !important;
    text-transform: lowercase !important;
    margin-top: 4px !important;
    letter-spacing: 0;
}
body.lbp-themed.lbp-themed .event-card .event-date .year {
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    color: var(--joy-fg, var(--joy-ink)) !important;
    opacity: 0.9;
    letter-spacing: 0.08em !important;
    margin-top: 6px !important;
}
/* Status pill en haut a droite */
body.lbp-themed.lbp-themed .event-card .event-date::after {
    content: 'À VENIR';
    position: absolute;
    top: 16px;
    right: 16px;
    background: var(--joy-pill-bg, white);
    color: var(--joy-pill-fg, var(--joy-ink));
    padding: 6px 14px;
    border-radius: 999px;
    font-size: 0.7rem;
    font-weight: 800;
    letter-spacing: 0.1em;
    border: 1.5px solid var(--joy-ink);
    box-shadow: 2px 2px 0 var(--joy-ink);
}
body.lbp-themed.lbp-themed .event-card.passed .event-date::after { content: 'PASSÉ'; opacity: 0.7; }

body.lbp-themed.lbp-themed .event-card .event-content {
    background: var(--joy-cream) !important;
    padding: 1.5rem 1.75rem 1.75rem !important;
    flex: 1 !important;
    display: flex !important;
    flex-direction: column !important;
}
body.lbp-themed.lbp-themed .event-card .event-content h3 {
    font-family: var(--joy-serif) !important;
    font-size: 1.45rem !important;
    line-height: 1.1 !important;
    font-weight: 700 !important;
    color: var(--joy-ink) !important;
    margin: 0.3rem 0 0.6rem !important;
}
body.lbp-themed.lbp-themed .event-card .event-meta {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 12px !important;
    margin-bottom: 0.75rem !important;
}
body.lbp-themed.lbp-themed .event-card .event-meta span {
    color: var(--joy-pink) !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.05em !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 4px !important;
}
body.lbp-themed.lbp-themed .event-card .event-meta svg {
    width: 14px !important;
    height: 14px !important;
}
body.lbp-themed.lbp-themed .event-card .event-description {
    color: var(--joy-ink-soft) !important;
    font-size: 0.92rem !important;
    line-height: 1.55 !important;
    margin-bottom: 1.25rem !important;
    flex: 1;
}
body.lbp-themed.lbp-themed .event-card .event-content > span:last-child {
    background: var(--joy-pink) !important;
    color: white !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: 999px !important;
    padding: 8px 16px !important;
    font-size: 0.82rem !important;
    font-weight: 700 !important;
    text-decoration: none !important;
    box-shadow: 2px 2px 0 var(--joy-ink);
    align-self: flex-start;
    margin-top: 0 !important;
}

/* ============== 4) EVENT DETAIL PAGE ============== */

body.lbp-themed.lbp-themed main[data-joy-color] { background: var(--joy-cream); }
body.lbp-themed.lbp-themed main[data-joy-color] .event-hero {
    background: var(--joy-bg, #FF8A0E) !important;
    color: var(--joy-fg, var(--joy-ink)) !important;
    padding: calc(4rem + var(--lbp-logo-h, 50px) + 3rem) 0 5rem !important;
    position: relative;
    overflow: hidden;
}
body.lbp-themed.lbp-themed main[data-joy-color] .event-back {
    max-width: 1100px;
    margin: 0 auto 1.5rem;
    padding: 0 24px;
}
body.lbp-themed.lbp-themed main[data-joy-color] .event-back a {
    font-family: var(--joy-script) !important;
    font-size: 1.3rem !important;
    color: var(--joy-fg, var(--joy-ink)) !important;
    text-decoration: underline !important;
    text-underline-offset: 4px !important;
    font-weight: 500 !important;
}
body.lbp-themed.lbp-themed main[data-joy-color] .event-back a svg { display: none !important; }
body.lbp-themed.lbp-themed main[data-joy-color] .event-hero-inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 24px;
    grid-template-columns: 1fr !important;
    gap: 1.5rem !important;
}
body.lbp-themed.lbp-themed main[data-joy-color] .event-hero-date { display: none !important; }
body.lbp-themed.lbp-themed main[data-joy-color] .event-hero-info h1 {
    font-family: var(--joy-serif) !important;
    font-size: clamp(2.5rem, 6vw, 5rem) !important;
    line-height: 1.05 !important;
    font-weight: 700 !important;
    color: var(--joy-fg, var(--joy-ink)) !important;
    margin: 1rem 0 1.5rem !important;
    letter-spacing: -0.015em;
}
body.lbp-themed.lbp-themed main[data-joy-color] .event-status-badge {
    display: inline-block !important;
    background: var(--joy-pill-bg, var(--joy-cream)) !important;
    color: var(--joy-pill-fg, var(--joy-ink)) !important;
    padding: 6px 14px !important;
    border-radius: 999px !important;
    font-size: 0.7rem !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    border: 1.5px solid var(--joy-ink) !important;
    box-shadow: 2px 2px 0 var(--joy-ink) !important;
    margin-right: 8px !important;
}
body.lbp-themed.lbp-themed main[data-joy-color] .event-status-badge.past { opacity: 0.7; }

body.lbp-themed.lbp-themed main[data-joy-color] .event-meta-row {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 1.25rem !important;
    margin-top: 1.5rem !important;
    color: var(--joy-fg, var(--joy-ink)) !important;
    opacity: 0.92;
}
body.lbp-themed.lbp-themed main[data-joy-color] .event-meta-row span {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    font-size: 0.92rem !important;
    font-weight: 600 !important;
    color: var(--joy-fg, var(--joy-ink)) !important;
}
body.lbp-themed.lbp-themed main[data-joy-color] .event-meta-row svg {
    color: var(--joy-fg, var(--joy-ink)) !important;
    stroke: var(--joy-fg, var(--joy-ink)) !important;
    width: 16px !important;
    height: 16px !important;
    opacity: 0.85;
}

/* Tags / details : pills outline */
body.lbp-themed.lbp-themed main[data-joy-color] .event-detail-section,
body.lbp-themed.lbp-themed main[data-joy-color] .event-info-box {
    background: #FFD133 !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius) !important;
    box-shadow: var(--joy-shadow) !important;
    padding: 2rem !important;
}
body.lbp-themed.lbp-themed main[data-joy-color] .event-info-box h3,
body.lbp-themed.lbp-themed main[data-joy-color] .event-detail-section h2 {
    font-family: var(--joy-script) !important;
    font-size: 1.5rem !important;
    color: var(--joy-pink) !important;
    font-weight: 500 !important;
    text-transform: lowercase !important;
}


/* ============== Event card avec image de couverture ============== */
/* L'image de couverture reste en background sur la banniere date.
   Un encadre colore (joy-bg cyclique) entoure SPECIFIQUEMENT le bloc
   day/month/year (.event-date-inner) en haut a gauche, par-dessus l'image. */
body.lbp-themed.lbp-themed .event-card.has-cover .event-date {
    background-image: var(--event-cover) !important;
    background-size: cover !important;
    background-position: center !important;
    background-repeat: no-repeat !important;
    position: relative !important;
}
/* Le wrapper interne devient l'encadre colore */
body.lbp-themed.lbp-themed .event-card.has-cover .event-date-inner {
    background: var(--joy-bg, var(--gold, #d4a574)) !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: 12px !important;
    box-shadow: 2px 2px 0 0 var(--joy-ink) !important;
    padding: 0.6rem 1rem 0.7rem !important;
    display: inline-flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    position: relative !important;
    z-index: 2 !important;
}
/* Les span gardent leur couleur de contraste */
body.lbp-themed.lbp-themed .event-card.has-cover .event-date-inner .day,
body.lbp-themed.lbp-themed .event-card.has-cover .event-date-inner .month,
body.lbp-themed.lbp-themed .event-card.has-cover .event-date-inner .year {
    color: var(--joy-fg, white) !important;
    text-shadow: none !important;
}
/* Pill de status reste au-dessus de tout */
body.lbp-themed.lbp-themed .event-card.has-cover .event-date .event-type-pill {
    z-index: 3 !important;
}
body.lbp-themed.lbp-themed .event-card.has-cover .event-date::after {
    background: var(--joy-cream) !important;
    color: var(--joy-ink) !important;
    border-color: var(--joy-ink) !important;
    z-index: 3 !important;
}

/* Pour les cards SANS cover, le wrapper .event-date-inner est neutre
   (transparent, le bg de l'event-date suffit) */
body.lbp-themed.lbp-themed .event-card:not(.has-cover) .event-date-inner {
    display: inline-flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
}

/* === Override hero detail event avec cover img (aligne sur article-image du blog) === */
body.lbp-themed.lbp-themed .event-cover-wrap {
    max-width: 880px !important;
    margin: -3rem auto 3rem !important;
    padding: 0 24px !important;
    position: relative;
    z-index: 3;
}
body.lbp-themed.lbp-themed .event-cover-img {
    width: 100% !important;
    max-height: 540px !important;
    object-fit: cover !important;
    object-position: center !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius) !important;
    box-shadow: var(--joy-shadow) !important;
    background: var(--joy-cream) !important;
    display: block !important;
}

/* === Images dans le corps de l'article (event + blog) - thematique Joy === */
body.lbp-themed.lbp-themed .event-body figure.cms-image,
body.lbp-themed.lbp-themed .event-body img {
    border: 2px solid var(--joy-ink) !important;
    border-radius: var(--joy-radius-sm) !important;
    box-shadow: var(--joy-shadow-sm) !important;
}
body.lbp-themed.lbp-themed .event-body figure.cms-image figcaption,
body.lbp-themed.lbp-themed .article-body figure.cms-image figcaption {
    color: var(--joy-blue) !important;
    font-family: var(--joy-script) !important;
    font-size: 1.05rem !important;
    margin-top: 0.75rem !important;
    text-align: center !important;
    font-style: normal !important;
}

/* ============== Pill "type" sur event card et detail (Joy) ============== */
body.lbp-themed.lbp-themed .event-card .event-type-pill {
    position: absolute;
    top: 14px;
    left: 14px;
    background: var(--joy-cream) !important;
    color: var(--joy-ink) !important;
    border: 1.5px solid var(--joy-ink) !important;
    border-radius: 999px !important;
    padding: 5px 14px !important;
    font-size: 0.68rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    box-shadow: 2px 2px 0 var(--joy-ink) !important;
    z-index: 3;
    margin-right: 0 !important;
}

body.lbp-themed.lbp-themed main[data-joy-color] .event-hero-info .event-type-pill {
    position: static !important;
    display: inline-block !important;
    background: var(--joy-pill-bg, var(--joy-cream)) !important;
    color: var(--joy-pill-fg, var(--joy-ink)) !important;
    border: 1.5px solid var(--joy-ink) !important;
    border-radius: 999px !important;
    padding: 7px 18px !important;
    font-size: 0.75rem !important;
    font-weight: 800 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    margin-right: 8px !important;
    box-shadow: none !important;
}

/* ============== Decalage zigzag des cards (3 cols) ============== */
body.lbp-themed.lbp-themed .events-list > *:nth-child(3n+1) { margin-top: 0; }
body.lbp-themed.lbp-themed .events-list > *:nth-child(3n+2) { margin-top: 40px; }
body.lbp-themed.lbp-themed .events-list > *:nth-child(3n+3) { margin-top: -20px; }
@media (max-width: 1100px) {
    body.lbp-themed.lbp-themed .events-list > *:nth-child(2n+2) { margin-top: 30px; }
    body.lbp-themed.lbp-themed .events-list > *:nth-child(2n+1) { margin-top: 0; }
    body.lbp-themed.lbp-themed .events-list > *:nth-child(3n+3) { margin-top: 30px; }
}
@media (max-width: 720px) {
    body.lbp-themed.lbp-themed .events-list > *:nth-child(n) { margin-top: 0; }
}

/* event-content : pas de margin auto */
body.lbp-themed.lbp-themed .event-card .event-content,
body.lbp-themed.lbp-themed .event-content {
    margin: 0 !important;
}

/* === MODE HEADER ON DARK (theme Joy) === 
   Override la couleur rose des liens nav en blanc quand le hero est fonce. */
html body.lbp-themed.lbp-themed.header-on-dark nav#mainNav:not(.scrolled) .nav-center > li > a,
html body.lbp-themed.lbp-themed.header-on-dark nav#mainNav:not(.scrolled) .nav-center > li > a.active,
body.lbp-themed.lbp-themed.header-on-dark nav#mainNav:not(.scrolled) .nav-right .nav-icon,
body.lbp-themed.lbp-themed.header-on-dark nav#mainNav:not(.scrolled) .nav-right a {
    color: #fff !important;
}
body.lbp-themed.lbp-themed.header-on-dark nav#mainNav:not(.scrolled) .menu-toggle span,
body.lbp-themed.lbp-themed.header-on-dark nav#mainNav:not(.scrolled) .mobile-menu-btn span {
    background: #fff !important;
}

/* === BOUTIQUE TABS : flèches scroll (override Joy) === */
body.lbp-themed.lbp-themed .boutique-tabs-arrow {
    background: var(--joy-cream, #fbf6e9) !important;
    color: var(--joy-ink, #2c1810) !important;
    border: 2px solid var(--joy-ink, #2c1810) !important;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08) !important;
}
body.lbp-themed.lbp-themed .boutique-tabs-arrow:hover {
    background: var(--joy-ink, #2c1810) !important;
    color: var(--joy-cream, #fbf6e9) !important;
}
body.lbp-themed.lbp-themed .boutique-tabs-wrap::before {
    background: linear-gradient(to right, var(--joy-cream, #fbf6e9) 0%, rgba(251, 246, 233, 0)) !important;
}
body.lbp-themed.lbp-themed .boutique-tabs-wrap::after {
    background: linear-gradient(to left, var(--joy-cream, #fbf6e9) 0%, rgba(251, 246, 233, 0)) !important;
}

/* === Centrage du page-hero (breadcrumb + h1 + description) sur blog, evenements, boutique === */
/* Spécificité maximale : html + 4x lbp-themed + page-X + .page-hero + child */
html body.lbp-themed.lbp-themed.lbp-themed.lbp-themed.page-blog .page-hero,
html body.lbp-themed.lbp-themed.lbp-themed.lbp-themed.page-blog .page-hero .container,
html body.lbp-themed.lbp-themed.lbp-themed.lbp-themed.page-evenements .page-hero,
html body.lbp-themed.lbp-themed.lbp-themed.lbp-themed.page-boutique .page-hero {
    text-align: center !important;
}

html body.lbp-themed.lbp-themed.lbp-themed.lbp-themed.page-blog .page-hero h1,
html body.lbp-themed.lbp-themed.lbp-themed.lbp-themed.page-evenements .page-hero h1,
html body.lbp-themed.lbp-themed.lbp-themed.lbp-themed.page-boutique .page-hero h1 {
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
}

html body.lbp-themed.lbp-themed.lbp-themed.lbp-themed.page-blog .page-hero p,
html body.lbp-themed.lbp-themed.lbp-themed.lbp-themed.page-evenements .page-hero p,
html body.lbp-themed.lbp-themed.lbp-themed.lbp-themed.page-boutique .page-hero p {
    text-align: center !important;
    margin-left: auto !important;
    margin-right: auto !important;
    max-width: 640px !important;
}

html body.lbp-themed.lbp-themed.lbp-themed.lbp-themed.page-blog .page-hero p *,
html body.lbp-themed.lbp-themed.lbp-themed.lbp-themed.page-evenements .page-hero p *,
html body.lbp-themed.lbp-themed.lbp-themed.lbp-themed.page-boutique .page-hero p * {
    text-align: center !important;
}

html body.lbp-themed.lbp-themed.lbp-themed.lbp-themed.page-blog .page-hero .breadcrumb,
html body.lbp-themed.lbp-themed.lbp-themed.lbp-themed.page-evenements .page-hero .breadcrumb,
html body.lbp-themed.lbp-themed.lbp-themed.lbp-themed.page-boutique .page-hero .breadcrumb {
    justify-content: center !important;
    text-align: center !important;
    display: flex !important;
    margin-left: auto !important;
    margin-right: auto !important;
    width: fit-content !important;
}


/* ============================================================
   IMAGES DECORATIVES CUSTOMISABLES PAR L'ADMIN
   Pour chaque pseudo-element ::before/::after qui porte une image
   decorative, on definit ici une variable CSS surchargeable avec
   fallback sur l'image Joy par defaut.
   L'admin pose ces variables via un <style> dans le head
   (cf includes/header-front.php).
   ============================================================ */

/* Hero accueil */
body.lbp-themed.lbp-themed .hero::before { background-image: var(--joy-bg-hero-before, var(--joy-img-anemone-2)) !important; }
body.lbp-themed.lbp-themed .hero::after { background-image: var(--joy-bg-hero-after, var(--joy-img-butterfly-vintage)) !important; }

/* Bandeau evenement */
body.lbp-themed.lbp-themed .event-banner::before { background-image: var(--joy-bg-event-banner-before, var(--joy-img-butterfly-orange)) !important; }
body.lbp-themed.lbp-themed .event-banner::after { background-image: var(--joy-bg-event-banner-after, var(--joy-img-marigold)) !important; }

/* Section "Ou me trouver" (stores) */
body.lbp-themed.lbp-themed .stores::before { background-image: var(--joy-bg-stores-before, var(--joy-img-peony)) !important; }
body.lbp-themed.lbp-themed .joy-stores-card::before { background-image: var(--joy-bg-stores-card-before, var(--joy-img-butterfly-monarch)) !important; }

/* Section A propos */
body.lbp-themed.lbp-themed .about::before { background-image: var(--joy-bg-about-before, var(--joy-img-anemone)) !important; }
body.lbp-themed.lbp-themed .about::after { background-image: var(--joy-bg-about-after, var(--joy-img-blossom-white)) !important; }
html body.lbp-themed.lbp-themed.lbp-themed .about .about-video .video-frame::after { background-image: var(--joy-bg-about-video-after, var(--joy-img-butterfly-vintage)) !important; }

/* Section Sur mesure (custom-orders) */
body.lbp-themed.lbp-themed .custom-orders::before { background-image: var(--joy-bg-custom-orders-before, var(--joy-img-marigold)) !important; }

/* Section Temoignages */
body.lbp-themed.lbp-themed .testimonials::before { background-image: var(--joy-bg-testimonials-before, var(--joy-img-butterfly-monarch)) !important; }
body.lbp-themed.lbp-themed .testimonials::after { background-image: var(--joy-bg-testimonials-after, var(--joy-img-rose-pink)) !important; }

/* Section Newsletter */
body.lbp-themed.lbp-themed .newsletter-content::before { background-image: var(--joy-bg-newsletter-before, var(--joy-img-marigold)) !important; }
body.lbp-themed.lbp-themed .newsletter-content::after { background-image: var(--joy-bg-newsletter-after, var(--joy-img-anemone)) !important; }

/* Page-hero (boutique, blog, evenements) - une config separee par page */
body.lbp-themed.lbp-themed.page-boutique .page-hero::before { background-image: var(--joy-bg-page-hero-boutique-before, var(--joy-img-butterfly-vintage)) !important; opacity: 1 !important; }
body.lbp-themed.lbp-themed.page-boutique .page-hero::after { background-image: var(--joy-bg-page-hero-boutique-after, var(--joy-img-anemone-2)) !important; opacity: 1 !important; }
body.lbp-themed.lbp-themed.page-blog .page-hero::before { background-image: var(--joy-bg-page-hero-blog-before, var(--joy-img-butterfly-vintage)) !important; opacity: 1 !important; }
body.lbp-themed.lbp-themed.page-blog .page-hero::after { background-image: var(--joy-bg-page-hero-blog-after, var(--joy-img-anemone-2)) !important; opacity: 1 !important; }
body.lbp-themed.lbp-themed.page-evenements .page-hero::before { background-image: var(--joy-bg-page-hero-evenements-before, var(--joy-img-butterfly-vintage)) !important; opacity: 1 !important; }
body.lbp-themed.lbp-themed.page-evenements .page-hero::after { background-image: var(--joy-bg-page-hero-evenements-after, var(--joy-img-anemone-2)) !important; opacity: 1 !important; }
/* Fallback global si une page n'a pas de body.page-X (compatibilite) */
body.lbp-themed.lbp-themed .page-hero::before { background-image: var(--joy-bg-page-hero-before, var(--joy-img-butterfly-vintage)); opacity: 1 !important; }
body.lbp-themed.lbp-themed .page-hero::after { background-image: var(--joy-bg-page-hero-after, var(--joy-img-anemone-2)); opacity: 1 !important; }

/* ============================================================
   MOBILE RESPONSIVE FIXES
   ------------------------------------------------------------
   Ajouts pour ameliorer l'experience mobile :
   - Empeche le scroll horizontal sur mobile (decors qui debordent)
   - Reduit la taille des decors fleurs/papillons sur petits ecrans
   - Augmente les paddings de container pour respirer
   - Garantit que tous les medias (img, video, iframe) restent contenus
   ============================================================ */

/* --- Anti-scroll horizontal global --- */
body.lbp-themed.lbp-themed {
    overflow-x: hidden !important;
}
html:has(body.lbp-themed) {
    overflow-x: hidden;
}

/* --- Mobile (< 768px) : reduit les decors qui debordent --- */
@media (max-width: 767px) {

    /* Hero : decors fleur+papillon reduits et rentres dans le viewport */
    body.lbp-themed.lbp-themed .hero::before {
        width: 8rem !important;
        left: -1.5rem !important;
        top: 1rem !important;
        opacity: 0.85;
    }
    body.lbp-themed.lbp-themed .hero::after {
        width: 7rem !important;
        right: -1rem !important;
        top: 0.5rem !important;
        opacity: 0.85;
    }

    /* Hero h1 : reduit le min pour eviter qu'il pousse en largeur */
    body.lbp-themed.lbp-themed .hero h1 {
        font-size: clamp(2.6rem, 11vw, 4.5rem) !important;
        line-height: 0.92 !important;
        word-break: break-word;
        overflow-wrap: anywhere;
    }

    /* Page-hero des pages internes (boutique, blog, evenements) */
    body.lbp-themed.lbp-themed .page-hero::before,
    body.lbp-themed.lbp-themed .page-hero::after {
        width: 6rem !important;
        opacity: 0.7;
    }
    body.lbp-themed.lbp-themed .page-hero::before {
        right: -1rem !important;
    }
    body.lbp-themed.lbp-themed .page-hero::after {
        right: -1rem !important;
    }

    /* Page-hero titres : eviter les debordements et reduire un peu */
    body.lbp-themed.lbp-themed .page-hero h1,
    body.lbp-themed.lbp-themed .page-hero .page-title {
        font-size: clamp(2rem, 9vw, 3.5rem) !important;
        line-height: 1 !important;
        word-break: break-word;
        overflow-wrap: anywhere;
    }

    /* Decors testimonials, sections diverses : rentre les decors */
    body.lbp-themed.lbp-themed .testimonials::before,
    body.lbp-themed.lbp-themed .testimonials::after {
        max-width: 7rem !important;
    }

    /* Collection-card decoration : reduit le decalage right negatif */
    body.lbp-themed.lbp-themed .collection-card::before {
        right: -0.5rem !important;
        width: 4rem !important;
    }

    /* Tous les containers : padding lateral confortable */
    body.lbp-themed.lbp-themed .container,
    body.lbp-themed.lbp-themed main,
    body.lbp-themed.lbp-themed section {
        padding-left: max(1rem, env(safe-area-inset-left)) !important;
        padding-right: max(1rem, env(safe-area-inset-right)) !important;
        box-sizing: border-box;
    }
    body.lbp-themed.lbp-themed main[data-joy-color] .event-hero {
        padding: calc(4rem + var(--lbp-logo-h, 50px)) 0 5rem !important;
    }

    /* Tous les containers : padding lateral confortable */
    body.lbp-themed.lbp-themed.page-article main.page-content,
    body.lbp-themed.lbp-themed.page-evenement main.page-content {
        padding: 0 !important;
        box-sizing: border-box;
    }

    /* Images / videos / iframes : ne jamais depasser */
    body.lbp-themed.lbp-themed img,
    body.lbp-themed.lbp-themed video,
    body.lbp-themed.lbp-themed iframe,
    body.lbp-themed.lbp-themed embed,
    body.lbp-themed.lbp-themed object {
        max-width: 100% !important;
        height: auto;
    }

    /* Tableaux : permettre le scroll interne au lieu de pousser la page */
    body.lbp-themed.lbp-themed table {
        max-width: 100%;
        display: block;
        overflow-x: auto;
    }

    /* Boutons CTA : assez grands pour les doigts */
    body.lbp-themed.lbp-themed .btn,
    body.lbp-themed.lbp-themed .btn-primary,
    body.lbp-themed.lbp-themed .btn-secondary {
        min-height: 44px;
        font-size: 0.95rem !important;
    }

    /* Texte plus lisible sur mobile : leger boost de la taille des paragraphes */
    body.lbp-themed.lbp-themed p:not(.hero p):not(.page-hero p) {
        font-size: 1rem !important;
        line-height: 1.6 !important;
    }
    body.lbp-themed.lbp-themed p.mc-card-subtitle:not(.hero p):not(.page-hero p) {
        font-size: 1.2rem !important;
    }

    /* Titres section : tailles confortables sur mobile */
    body.lbp-themed.lbp-themed h2:not(.hero h2):not(.page-hero h2) {
        font-size: clamp(1.8rem, 6vw, 2.8rem) !important;
        line-height: 1.1 !important;
        word-break: break-word;
    }
    body.lbp-themed.lbp-themed h3 {
        font-size: clamp(1.3rem, 4.5vw, 1.8rem) !important;
        line-height: 1.2 !important;
    }

    /* Product cards en mobile : meilleur padding et taille */
    body.lbp-themed.lbp-themed .product-card .product-info h3,
    body.lbp-themed.lbp-themed .product-card .product-name {
        font-size: 1rem !important;
    }
}

/* --- Tres petit mobile (< 380px) : ajustements supplementaires --- */
@media (max-width: 379px) {
    body.lbp-themed.lbp-themed .hero::before,
    body.lbp-themed.lbp-themed .hero::after {
        width: 6rem !important;
        opacity: 0.6;
    }
    body.lbp-themed.lbp-themed .hero h1 {
        font-size: clamp(2.2rem, 10vw, 3.5rem) !important;
    }
    body.lbp-themed.lbp-themed .container,
    body.lbp-themed.lbp-themed main,
    body.lbp-themed.lbp-themed section {
        padding-left: 0.75rem !important;
        padding-right: 0.75rem !important;
    }
}

/* ============================================================
   MOBILE RESPONSIVE V2 - Refonte globale du mobile
   ------------------------------------------------------------
   Travail systematique sur toutes les pages pour ameliorer
   lisibilite, paddings, ergonomie sur smartphone (< 768px).
   Ajoute apres la section V1 pour overrider quand necessaire.
   ============================================================ */

/* ============ 0) FLECHES CAROUSEL : NOIR FRANC EN PARTOUT ============ */
/* Specificite triple pour ecraser tout - currentColor sur le SVG */
html body.lbp-themed.lbp-themed.lbp-themed .media-nav,
html body.lbp-themed.lbp-themed.lbp-themed .gallery-nav-btn {
    color: #1a0f08 !important;
}
html body.lbp-themed.lbp-themed.lbp-themed .media-nav svg,
html body.lbp-themed.lbp-themed.lbp-themed .gallery-nav-btn svg {
    color: #1a0f08 !important;
    stroke: #1a0f08 !important;
    stroke-width: 2.4 !important;
}
html body.lbp-themed.lbp-themed.lbp-themed .media-nav:hover svg,
html body.lbp-themed.lbp-themed.lbp-themed .gallery-nav-btn:hover svg {
    color: var(--joy-cream-soft) !important;
    stroke: var(--joy-cream-soft) !important;
}

/* ============ 1) ARTICLE SHARE : icones avec bonne couleur ============ */
/* Le SVG est en fill="currentColor" + on force la couleur a #fff
   uniquement quand le bouton a deja un bg coloree. On enleve
   le forced-white sur svg path et on met seulement svg fill */
body.lbp-themed.lbp-themed .article-share .share-btn,
.article-single .article-share .share-btn { color: #fff !important; }
body.lbp-themed.lbp-themed .article-share .share-btn svg,
.article-single .article-share .share-btn svg { color: #fff !important; fill: currentColor !important; }
body.lbp-themed.lbp-themed .article-share .share-btn svg path,
.article-single .article-share .share-btn svg path { fill: currentColor !important; }

/* ============ 2) MOBILE GLOBAL OVERRIDES ============ */
@media (max-width: 767px) {

    /* === Reset paddings body : evite le double-padding heritée === */
    body.lbp-themed.lbp-themed {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    /* === Article single : reduit le padding global et celui du body === */
    body.lbp-themed.lbp-themed.page-article .article-single .container,
    body.lbp-themed.lbp-themed.page-article .article-content,
    body.lbp-themed.lbp-themed.page-article .article-body,
    body.lbp-themed.lbp-themed.page-article .article-tags,
    body.lbp-themed.lbp-themed.page-article .article-share,
    body.lbp-themed.lbp-themed.page-article .related-articles .container,
    body.lbp-themed.lbp-themed.page-article .article-nav .container {
        padding-left: 14px !important;
        padding-right: 14px !important;
    }
    body.lbp-themed.lbp-themed.page-article .article-image {
        padding-left: 0px !important;
        padding-right: 0px !important;
        margin-top: -1.5rem !important;
    }
    body.lbp-themed.lbp-themed.page-article .article-content {
        padding-left: 0px !important;
        padding-right: 0px !important;
    }
    body.lbp-themed.lbp-themed.page-article .article-content {
        padding-top: 2rem !important;
        padding-bottom: 2rem !important;
    }
    body.lbp-themed.lbp-themed.page-article .article-share {
        flex-wrap: wrap !important;
        gap: 0.6rem !important;
    }
    body.lbp-themed.lbp-themed.page-article .related-articles {
        padding-top: 2rem !important;
        padding-bottom: 2rem !important;
    }

    /* === Blog (liste) : moins de padding, grille meilleure === */
    body.lbp-themed.lbp-themed.page-blog main.page-content {
        padding: 1rem !important;
    }
    body.lbp-themed.lbp-themed.page-blog .blog-section {
        padding: 0 !important;
    }
    body.lbp-themed.lbp-themed.page-blog .container,
    body.lbp-themed.lbp-themed.page-blog .blog-section .container {
        padding: 0 !important;
    }

    /* === Evenements liste : cards plus compactes === */
    body.lbp-themed.lbp-themed.page-evenements .evenements-grid,
    body.lbp-themed.lbp-themed.page-evenements .events-grid {
        grid-template-columns: 1fr !important;
        gap: 1rem !important;
    }
    body.lbp-themed.lbp-themed .section-label {
        font-size: 1.475rem !important;
    }

    body.lbp-themed.lbp-themed.page-evenements .evenement-card .evenement-content,
    body.lbp-themed.lbp-themed.page-evenements .event-card .event-content {
        padding: 1rem !important;
        gap: 12px !important;
    }

    body.lbp-themed.lbp-themed .event-card .event-date {
        aspect-ratio: 4/3;
        gap: 4px;
    }
    body.lbp-themed.lbp-themed.page-evenements .container,
    body.lbp-themed.lbp-themed.page-evenement .container {
        padding-left: 14px !important;
        padding-right: 14px !important;
    }
    body.lbp-themed.lbp-themed.page-evenement main.page-content,
    body.lbp-themed.lbp-themed.page-evenements main.page-content {
        padding-top: 0 !important;
    }
    body.lbp-themed.lbp-themed.page-evenement .evenement-detail,
    body.lbp-themed.lbp-themed.page-evenement .event-detail {
        padding: 1rem 0 2rem !important;
    }

    /* === ACCUEIL : hero plus lisible, moins disperse === */
    body.lbp-themed.lbp-themed .hero {
        padding-top: 1.5rem !important;
        padding-bottom: 1.5rem !important;
        padding-left: 1.1rem !important;
        padding-right: 1.1rem !important;
    }
    body.lbp-themed.lbp-themed .hero-content {
        padding: 0 !important;
    }
    body.lbp-themed.lbp-themed .hero h1 {
        font-size: clamp(2.5rem, 10.5vw, 4rem) !important;
        line-height: 0.95 !important;
        margin: 1rem 0 0 !important;
    }
    body.lbp-themed.lbp-themed .hero-subtitle {
        font-size: 1rem !important;
        line-height: 1.55 !important;
        margin: 1rem 0 0 !important;
        max-width: 100% !important;
    }
    body.lbp-themed.lbp-themed .hero-badge {
        font-size: 0.66rem !important;
        padding: 0.28rem 0.85rem !important;
        margin: 0 0 0.5rem !important;
    }
    body.lbp-themed.lbp-themed .hero-cta,
    body.lbp-themed.lbp-themed .hero-actions {
        margin-top: 1.5rem !important;
        gap: 0.7rem !important;
    }
    /* Reduit la place des decors hero pour ne pas chasser le texte */
    body.lbp-themed.lbp-themed .hero::before {
        width: 6.5rem !important;
        left: -1.2rem !important;
        top: 0.5rem !important;
        opacity: 0.7;
    }
    body.lbp-themed.lbp-themed .hero::after {
        width: 6rem !important;
        right: -0.8rem !important;
        top: 0.2rem !important;
        opacity: 0.7;
    }

    /* === ACCUEIL : Featured Products - 1 card par ecran sur mobile === */
    /* Mode grille classique : 1 colonne */
    body.lbp-themed.lbp-themed .featured-products .products-grid,
    body.lbp-themed.lbp-themed section.featured-products .products-grid {
        grid-template-columns: 1fr !important;
        gap: 1.25rem !important;
        padding: 0 0.6rem !important;
    }
    body.lbp-themed.lbp-themed .featured-products .product-card,
    body.lbp-themed.lbp-themed section.featured-products .product-card {
        padding: 0 !important; /* le padding sera defini par la mosaic ou par le carousel */
    }
    /* aspect-ratio est gere par la mosaic. On ne touche que les cards qui ne sont
       NI dans une mosaic, NI dans un carousel-track (= grilles classiques) */
    body.lbp-themed.lbp-themed .featured-products .products-grid:not(.joy-mosaic-grid) > .product-card,
    body.lbp-themed.lbp-themed section.featured-products .products-grid:not(.joy-mosaic-grid) > .product-card {
        aspect-ratio: auto !important;
        padding: 1rem !important;
    }
    body.lbp-themed.lbp-themed .featured-products .products-grid:not(.joy-mosaic-grid) > .product-card .product-image,
    body.lbp-themed.lbp-themed section.featured-products .products-grid:not(.joy-mosaic-grid) > .product-card .product-image {
        aspect-ratio: 4/5 !important;
    }
    /* Mode carousel : chaque card prend toute la largeur visible (scroll snap) */
    body.lbp-themed.lbp-themed .featured-products .carousel-wrapper {
        max-width: 100% !important;
        padding: 0 !important;
    }
    /* Mode carousel sans mosaique : 1 card par ecran avec scroll snap.
       NE PAS s'appliquer quand .joy-mosaic-grid est presente (la mosaic
       gere son propre layout en grille). */
    body.lbp-themed.lbp-themed .featured-products .carousel-track:not(.joy-mosaic-grid) {
        padding: 1rem 0.6rem !important;
        gap: 0.9rem !important;
        scroll-snap-type: x mandatory !important;
        scroll-padding: 0.6rem !important;
    }
    body.lbp-themed.lbp-themed .carousel-track:not(.joy-mosaic-grid) > .product-card,
    body.lbp-themed.lbp-themed .product-card.carousel-card:not(.joy-mosaic-grid > *) {
        flex: 0 0 calc(100vw - 2.2rem) !important;
        width: calc(100vw - 2.2rem) !important;
        max-width: 340px !important;
        scroll-snap-align: start !important;
    }
    /* Fleches du carousel : reduites en mobile et bien positionnees */
    body.lbp-themed.lbp-themed .featured-products .carousel-arrow {
        width: 36px !important;
        height: 36px !important;
    }
    body.lbp-themed.lbp-themed .featured-products .carousel-prev {
        left: 0.3rem !important;
    }
    body.lbp-themed.lbp-themed .featured-products .carousel-next {
        right: 0.3rem !important;
    }

    /* === ACCUEIL : Collections grid centrees === */
    body.lbp-themed.lbp-themed .collections-grid {
        grid-template-columns: minmax(0, 1fr) !important;
        justify-items: center !important;
        padding: 0 1rem !important;
        gap: 1.1rem !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    body.lbp-themed.lbp-themed .collections-grid .collection-card {
        width: 100% !important;
        max-width: 100% !important;
        aspect-ratio: 3/4 !important;
        transform: none !important; /* annule les rotations/translations desktop */
    }

    /* === BOUTIQUE : filtres plus lisibles === */
    body.lbp-themed.lbp-themed .boutique-filters-bar {
        padding: 0.6rem 0.9rem !important;
        margin: 0 0 1.2rem !important;
    }
    body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-tools {
        gap: 0.5rem !important;
        flex-wrap: wrap !important;
    }
    body.lbp-themed.lbp-themed .boutique-tabs {
        margin: 0 -0.9rem !important;
        padding: 4px 0.9rem 8px !important;
        gap: 0.4rem !important;
    }
    body.lbp-themed.lbp-themed .boutique-tab {
        font-size: 0.78rem !important;
        padding: 0.4rem 0.9rem !important;
    }
    /* Outils : passer search en pleine largeur si pas de place */
    body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-search-form {
        flex: 1 1 100% !important;
        margin-left: 0 !important;
        margin-top: 0.3rem !important;
    }
    body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-search-form input[type="search"],
    body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-search-form input[type="text"] {
        width: 100% !important;
        padding: 0.55rem 1rem !important;
        font-size: 0.88rem !important;
    }
    body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-sort-select,
    body.lbp-themed.lbp-themed .boutique-filters-bar select {
        padding: 0.5rem 2rem 0.5rem 0.9rem !important;
        font-size: 0.85rem !important;
    }
    body.lbp-themed.lbp-themed .boutique-filters-bar .boutique-cols-toggle {
        display: none !important; /* en mobile : pas pertinent */
    }
    body.lbp-themed.lbp-themed .boutique-main {
        padding: 0 0.8rem 3rem !important;
    }
    body.lbp-themed.lbp-themed .boutique-main .products-grid,
    body.lbp-themed.lbp-themed .boutique-layout .products-grid {
        padding: 0 !important;
        gap: 0.9rem !important;
        grid-template-columns: 1fr !important; /* FORCE 1 colonne mobile */
        max-width: 100% !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    /* Card individuelle : prend toute la largeur du parent, jamais de debordement */
    body.lbp-themed.lbp-themed .boutique-main .products-grid > .product-card,
    body.lbp-themed.lbp-themed .boutique-layout .products-grid > .product-card {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        aspect-ratio: auto !important; /* annule le 4/5 contraignant en mobile */
        margin: 0 !important;
        box-sizing: border-box !important;
    }
    body.lbp-themed.lbp-themed .boutique-main .products-grid > .product-card .product-image,
    body.lbp-themed.lbp-themed .boutique-layout .products-grid > .product-card .product-image {
        aspect-ratio: 4/5 !important;
        width: 100% !important;
    }

    /* === PAGE PRODUIT : moins de paddings et meilleur layout === */
    body.lbp-themed.lbp-themed.page-produit main,
    body.lbp-themed.lbp-themed.page-produit .container,
    body.lbp-themed.lbp-themed.page-produit .product-container {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }
    body.lbp-themed.lbp-themed.page-produit .product-detail {
        gap: 1.2rem !important;
        padding: 0.5rem 0 !important;
    }
    body.lbp-themed.lbp-themed.page-produit .product-gallery {
        gap: 0.6rem !important;
        padding: 0 !important;
    }
    body.lbp-themed.lbp-themed.page-produit .product-main-media {
        border-radius: 22px !important;
    }
    body.lbp-themed.lbp-themed.page-produit .product-thumbnails {
        gap: 0.5rem !important;
    }
    /* Flecheset compteur du carousel produit : taille reduite mobile */
    body.lbp-themed.lbp-themed.page-produit .media-nav {
        width: 38px !important;
        height: 38px !important;
    }
    body.lbp-themed.lbp-themed.page-produit .media-nav.prev { left: 0.4rem !important; }
    body.lbp-themed.lbp-themed.page-produit .media-nav.next { right: 0.4rem !important; }
    body.lbp-themed.lbp-themed.page-produit .media-counter {
        bottom: 0.5rem !important;
        left: 0.5rem !important;
        padding: 0.22rem 0.7rem !important;
        font-size: 0.65rem !important;
    }
    /* Curseur pointer pour signaler la lightbox */
    body.lbp-themed.lbp-themed.page-produit .product-main-media img,
    body.lbp-themed.lbp-themed.page-produit .product-main-media video {
        cursor: zoom-in;
    }
    body.lbp-themed.lbp-themed.page-produit .product-details {
        padding: 0 !important;
    }
    body.lbp-themed.lbp-themed.page-produit .product-title-row h1,
    body.lbp-themed.lbp-themed.page-produit .product-details h1 {
        font-size: clamp(1.8rem, 7vw, 2.4rem) !important;
        line-height: 1.05 !important;
        word-break: break-word;
    }
    /* Bouton fav : taille mobile */
    body.lbp-themed.lbp-themed.page-produit .fav-heart-btn {
        width: 42px !important;
        height: 42px !important;
        flex-shrink: 0 !important;
    }
    /* Prix : pas le geant */
    body.lbp-themed.lbp-themed.page-produit .product-price-big {
        font-size: 1.8rem !important;
    }
    /* Bandeau avantages (livraison, paiement, etc) : reduit */
    body.lbp-themed.lbp-themed.page-produit .product-reassurance,
    body.lbp-themed.lbp-themed.page-produit .reassurance-grid {
        padding: 0.85rem !important;
        gap: 0.8rem !important;
    }
    body.lbp-themed.lbp-themed.page-produit .reassurance-item {
        padding: 0.4rem !important;
        font-size: 0.82rem !important;
    }

    /* === ALERTES (succes, info, warning) plus douces et bien centrees === */
    body.lbp-themed.lbp-themed .alert {
        padding: 0.85rem 1rem !important;
        font-size: 0.92rem !important;
        line-height: 1.5 !important;
        border-radius: 14px !important;
        margin: 0.6rem 0 1rem !important;
        display: flex !important;
        align-items: flex-start !important;
        gap: 0.6rem !important;
        flex-wrap: wrap !important;
    }
    body.lbp-themed.lbp-themed .alert a {
        word-break: break-word;
    }

    /* === MODALE PERSONNALISATION : delai mieux affiche === */
    body.lbp-themed.lbp-themed .perso-modal-card {
        max-height: calc(100vh - 1rem) !important;
        margin: 0.5rem !important;
        border-radius: 18px !important;
    }
    body.lbp-themed.lbp-themed .perso-delai {
        padding: 0.6rem 1rem !important;
        font-size: 0.82rem !important;
        line-height: 1.4 !important;
        display: flex !important;
        align-items: center !important;
        gap: 0.5rem !important;
    }
    body.lbp-themed.lbp-themed .perso-delai svg {
        flex-shrink: 0 !important;
    }
    body.lbp-themed.lbp-themed .perso-modal-footer {
        padding: 1rem !important;
    }
    /* Recap total estime : bloc plus compact, valeurs alignees */
    body.lbp-themed.lbp-themed .perso-recap,
    body.lbp-themed.lbp-themed .perso-modal .perso-recap {
        padding: 0.9rem 1rem !important;
        font-size: 0.92rem !important;
    }
    body.lbp-themed.lbp-themed .perso-recap-row {
        gap: 0.5rem !important;
    }
    /* Bouton "Envoyer ma demande" plein largeur */
    body.lbp-themed.lbp-themed .perso-modal-footer .btn,
    body.lbp-themed.lbp-themed .perso-modal-footer button[type="submit"] {
        width: 100% !important;
        min-height: 48px !important;
    }

    /* === MODALE LOGIN mobile : padding 2rem sur la card, 0 sur le body === */
    body.lbp-themed.lbp-themed .lbp-login-modal-card {
        padding: 2rem !important;
        margin: 0.5rem !important;
        max-width: calc(100vw - 1rem) !important;
        border-radius: 18px !important;
    }
    body.lbp-themed.lbp-themed .lbp-login-modal-body {
        padding: 0 !important;
    }
    body.lbp-themed.lbp-themed .lbp-login-modal-card::before {
        width: 7rem !important;
        top: -2rem !important;
        right: -2rem !important;
        opacity: 0.5 !important;
    }
    body.lbp-themed.lbp-themed .lbp-login-modal-card h2,
    body.lbp-themed.lbp-themed .lbp-login-modal-card .login-title {
        font-size: 1.6rem !important;
        margin-bottom: 0.4rem !important;
    }

    /* === PANIER : refonte mobile complete === */
    body.lbp-themed.lbp-themed.page-panier .container,
    body.lbp-themed.lbp-themed.page-panier main {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }
    /* Hero panier : padding reduit en mobile (le centrage est applique globalement plus bas) */
    body.lbp-themed.lbp-themed.page-panier .page-hero {
        padding: 1.5rem 1rem 1rem !important;
    }

    /* === Cart-item MOBILE : meme layout que le recap checkout
       Row 1 : image (col 1) | titre (col 2) | prix (col 3)
       Row 2 : image (continue) | variant (col 2)
       Row 3 : image (continue) | controls qty + supprimer (col 2)
       Row 4 : wishlist (full width)
       === */
    html body.lbp-themed.lbp-themed.lbp-themed.lbp-themed .cart-item {
        display: grid !important;
        grid-template-columns: 70px 1fr auto !important;
        grid-template-areas:
            "image title    price"
            "image variant  price"
            "image controls price"
            "wishlist wishlist wishlist" !important;
        gap: 4px 0.9rem !important;
        padding: 8px 0 !important;
        background: transparent !important;
        border: none !important;
        border-bottom: none !important;
        border-radius: 0 !important;
        margin-bottom: 0 !important;
        position: relative !important;
        align-items: start !important;
        text-align: left !important;
    }
    /* Image : col 1, span rows 1-3 (a cote de title/variant/controls) */
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item-image {
        grid-area: image !important;
        width: 70px !important;
        height: 70px !important;
        border: 2px solid var(--joy-ink) !important;
        border-radius: var(--joy-radius-md, 14px) !important;
        flex-shrink: 0 !important;
        margin: 0 !important;
        align-self: start !important;
        background: var(--joy-yellow-tint) !important;
        padding: 0.3rem !important;
    }
    /* Info : display:contents pour que ses enfants soient enfants directs du grid */
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item-info {
        display: contents !important;
    }
    /* Titre : col 2 row 1 */
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item h3,
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item-name {
        grid-area: title !important;
        font-size: 1rem !important;
        line-height: 1.2 !important;
        margin: 0 !important;
        text-align: left !important;
        padding-right: 0 !important;
    }
    /* Variante : col 2 row 2 */
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item .variants,
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item-meta {
        grid-area: variant !important;
        font-size: 0.85rem !important;
        margin: 0 !important;
        text-align: left !important;
        color: rgba(44, 24, 16, 0.65) !important;
    }
    /* Prix : col 3 span 3 rows, aligne a droite, centre vertical */
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item .cart-item-price {
        grid-area: price !important;
        font-family: var(--joy-font-script) !important;
        color: var(--joy-pink-deep) !important;
        font-size: 1.25rem !important;
        text-align: right !important;
        align-self: center !important;
        margin: 0 !important;
        width: auto !important;
    }
    /* Controls (qty + supprimer) : col 2 row 3 */
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item-controls-row {
        grid-area: controls !important;
        display: flex !important;
        flex-direction: row !important;
        gap: 0.5rem !important;
        align-items: center !important;
        margin: 4px 0 0 !important;
        margin-left: 0 !important;
        width: auto !important;
    }
    /* Quantite : largeur naturelle (pas full width) */
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item .cart-item-quantity {
        flex: 0 0 auto !important;
        margin: 0 !important;
        order: 0 !important;
    }
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item .qty-form,
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item .qty-ctrl {
        width: auto !important;
    }
    /* Bouton supprimer MASQUE sur mobile */
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item-controls-row .cart-item-remove-form,
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item .cart-item-remove,
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item .cart-item-remove-form {
        display: none !important;
    }
    /* WISHLIST : row 4, pleine largeur, sous l'item, lien texte + icone */
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item > .move-wishlist-form {
        grid-area: wishlist !important;
        margin: 8px 0 0 !important;
        display: flex !important;
        justify-content: flex-start !important;
        width: 100% !important;
    }
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item > .move-wishlist-form .link-wishlist {
        display: inline-flex !important;
        align-items: center !important;
        gap: 6px !important;
        padding: 6px 0 !important;
        width: auto !important;
        min-width: 0 !important;
        height: auto !important;
        border: none !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        color: var(--joy-cobalt, #1a4fd9) !important;
        text-decoration: underline !important;
        text-decoration-color: var(--joy-marigold, #ffb547) !important;
        text-decoration-thickness: 1.5px !important;
        text-underline-offset: 3px !important;
        font-family: var(--joy-font-script, cursive) !important;
        font-size: 0.95rem !important;
    }
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item > .move-wishlist-form .link-wishlist .link-wishlist-label {
        display: inline !important; /* Texte visible sous l'item */
    }
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item > .move-wishlist-form .link-wishlist svg {
        width: 14px !important;
        height: 14px !important;
        flex-shrink: 0 !important;
        margin: 0 !important;
    }
    body.lbp-themed.lbp-themed .cart-item-remove,
    body.lbp-themed.lbp-themed .cart-item button[aria-label*="upprimer"],
    body.lbp-themed.lbp-themed .cart-item .cart-item-remove {
        width: 38px !important;
        height: 38px !important;
    }
    body.lbp-themed.lbp-themed .qty-control,
    body.lbp-themed.lbp-themed .cart-qty {
        gap: 0.4rem !important;
    }
    body.lbp-themed.lbp-themed .cart-summary,
    body.lbp-themed.lbp-themed .panier-resume,
    body.lbp-themed.lbp-themed .cart-totals {
        padding: 1rem !important;
        border-radius: 16px !important;
        margin-top: 0 !important;
    }
    /* Reduit l'espace entre la liste d'articles et le recap */
    body.lbp-themed.lbp-themed.page-panier .cart-items {
        padding-bottom: 0.4rem !important;
        margin-bottom: 0.4rem !important;
    }
    body.lbp-themed.lbp-themed .cart-summary-row {
        font-size: 0.95rem !important;
    }
    body.lbp-themed.lbp-themed .cart-summary-total,
    body.lbp-themed.lbp-themed .cart-total {
        font-size: 1.1rem !important;
    }

    /* === CHECKOUT : ergonomie ============ */
    body.lbp-themed.lbp-themed.page-checkout .container,
    body.lbp-themed.lbp-themed.page-checkout main,
    body.lbp-themed.lbp-themed.page-checkout .checkout-layout {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }
    body.lbp-themed.lbp-themed.page-checkout .page-hero {
        padding: 1.5rem 0.5rem 1rem !important;
    }
    /* Bloc "Vous avez deja un compte ?" : pleine largeur */
    body.lbp-themed.lbp-themed .checkout-login-trigger,
    body.lbp-themed.lbp-themed .checkout-account-prompt,
    body.lbp-themed.lbp-themed .login-trigger-box {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0.9rem 1rem !important;
        margin: 0 0 1rem !important;
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 0.5rem !important;
        align-items: center !important;
        justify-content: space-between !important;
        box-sizing: border-box !important;
    }
    body.lbp-themed.lbp-themed .checkout-login-trigger .login-link,
    body.lbp-themed.lbp-themed .checkout-account-prompt a {
        margin-left: auto;
        font-weight: 700 !important;
    }
    /* Recap commande en HAUT en mobile (l'asideRight passe au-dessus) */
    body.lbp-themed.lbp-themed .checkout-layout {
        display: flex !important;
        flex-direction: column !important;
        gap: 1rem !important;
    }
    body.lbp-themed.lbp-themed .checkout-layout .checkout-summary,
    body.lbp-themed.lbp-themed .checkout-layout aside,
    body.lbp-themed.lbp-themed .checkout-layout .checkout-sidebar,
    body.lbp-themed.lbp-themed .checkout-layout .order-summary,
    body.lbp-themed.lbp-themed .checkout-layout .order-summary-card {
        order: -1 !important;
        margin: 0 0 0.5rem !important;
        padding: 1rem !important;
        border-radius: 18px !important;
    }
    body.lbp-themed.lbp-themed .checkout-layout .checkout-main,
    body.lbp-themed.lbp-themed .checkout-layout .checkout-form-main {
        order: 1 !important;
    }
    /* Bloc formulaire : padding plus humain */
    body.lbp-themed.lbp-themed .checkout-block,
    body.lbp-themed.lbp-themed .checkout-section,
    body.lbp-themed.lbp-themed .checkout-form .form-section {
        padding: 1rem !important;
        margin-bottom: 1rem !important;
        border-radius: 18px !important;
    }
    body.lbp-themed.lbp-themed .checkout-block h2,
    body.lbp-themed.lbp-themed .checkout-section h2,
    body.lbp-themed.lbp-themed .checkout-form .form-section h2 {
        font-size: 1.35rem !important;
        margin: 0 0 0.6rem !important;
        line-height: 1.1 !important;
    }
    body.lbp-themed.lbp-themed .checkout-form .form-row,
    body.lbp-themed.lbp-themed .checkout-form .form-grid {
        grid-template-columns: 1fr !important;
        gap: 0.7rem !important;
    }
    body.lbp-themed.lbp-themed .checkout-form label {
        font-size: 0.78rem !important;
    }
    body.lbp-themed.lbp-themed .checkout-form input,
    body.lbp-themed.lbp-themed .checkout-form select,
    body.lbp-themed.lbp-themed .checkout-form textarea {
        font-size: 1rem !important; /* >= 16px : iOS ne zoome pas */
        padding: 0.75rem 1rem !important;
    }
    /* Modes de livraison : cards plus compactes */
    body.lbp-themed.lbp-themed .shipping-option,
    body.lbp-themed.lbp-themed .checkout-shipping-option {
        padding: 0.85rem !important;
        gap: 0.7rem !important;
    }
    body.lbp-themed.lbp-themed .shipping-option-content {
        gap: 0.2rem !important;
    }

    /* === ESPACE CLIENT : aside + onglets === */
    body.lbp-themed.lbp-themed.page-mon-compte .container,
    body.lbp-themed.lbp-themed.page-mon-compte main {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }
    /* Bonjour Marie : plus petit en mobile */
    body.lbp-themed.lbp-themed.page-mon-compte h1,
    body.lbp-themed.lbp-themed.page-mon-compte .compte-welcome h1 {
        font-size: clamp(1.8rem, 7vw, 2.5rem) !important;
        line-height: 1.1 !important;
        margin: 1rem 0 1.2rem !important;
    }
    /* Cards de navigation : pleine largeur, plus compactes */
    body.lbp-themed.lbp-themed .compte-nav,
    body.lbp-themed.lbp-themed .compte-tabs-nav,
    body.lbp-themed.lbp-themed .compte-sidebar {
        padding: 0.85rem !important;
        margin: 0 0 1.2rem !important;
        border-radius: 18px !important;
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 0.55rem !important;
    }
    body.lbp-themed.lbp-themed .compte-nav-item,
    body.lbp-themed.lbp-themed .compte-tab-link,
    body.lbp-themed.lbp-themed .compte-sidebar a,
    body.lbp-themed.lbp-themed .compte-sidebar .nav-link {
        padding: 0.7rem 0.8rem !important;
        font-size: 0.85rem !important;
        line-height: 1.2 !important;
        gap: 0.45rem !important;
        border-radius: 14px !important;
        justify-content: center !important;
        text-align: center !important;
        min-height: 48px !important;
        display: flex !important;
        align-items: center !important;
    }
    /* Onglet actif : visuel plus marque */
    body.lbp-themed.lbp-themed .compte-nav-item.active,
    body.lbp-themed.lbp-themed .compte-tab-link.active,
    body.lbp-themed.lbp-themed .compte-sidebar a.active {
        font-weight: 700 !important;
    }
    /* Contenu commandes / profil */
    body.lbp-themed.lbp-themed .compte-content,
    body.lbp-themed.lbp-themed .compte-section,
    body.lbp-themed.lbp-themed .compte-tab-pane {
        padding: 1rem !important;
        border-radius: 18px !important;
    }
    body.lbp-themed.lbp-themed .compte-content h2,
    body.lbp-themed.lbp-themed .compte-section h2 {
        font-size: 1.4rem !important;
        margin: 0 0 0.8rem !important;
    }
    /* Cards de commande (mes commandes) : layout vertical mobile */
    body.lbp-themed.lbp-themed .commande-card,
    body.lbp-themed.lbp-themed .order-card {
        padding: 0.9rem !important;
        gap: 0.8rem !important;
        border-radius: 16px !important;
    }
    body.lbp-themed.lbp-themed .commande-card-header {
        flex-wrap: wrap !important;
        gap: 0.4rem !important;
    }

    /* === DETAIL COMMANDE : layout deux colonnes -> une === */
    body.lbp-themed.lbp-themed .commande-detail,
    body.lbp-themed.lbp-themed .order-detail,
    body.lbp-themed.lbp-themed .commande-detail-layout,
    body.lbp-themed.lbp-themed .commande-detail-grid {
        grid-template-columns: 1fr !important;
        gap: 1rem !important;
        display: grid !important;
    }
    body.lbp-themed.lbp-themed .commande-detail-main,
    body.lbp-themed.lbp-themed .commande-detail-side {
        max-width: 100% !important;
        min-width: 0 !important;
    }
    /* Card "Commande LBP-XXX" : empile tout */
    body.lbp-themed.lbp-themed .commande-header {
        padding: 1rem !important;
        gap: 0.6rem !important;
    }
    body.lbp-themed.lbp-themed .commande-header-row {
        flex-wrap: wrap !important;
        gap: 0.5rem !important;
    }
    body.lbp-themed.lbp-themed .commande-detail h1,
    body.lbp-themed.lbp-themed .commande-header h1 {
        font-size: clamp(1.4rem, 5.5vw, 2rem) !important;
        line-height: 1.1 !important;
        word-break: break-word !important;
    }
    body.lbp-themed.lbp-themed .commande-detail .commande-item {
        padding: 0.85rem !important;
    }
    body.lbp-themed.lbp-themed .commande-detail .commande-total {
        font-size: 1.1rem !important;
        white-space: nowrap !important;
    }
    /* Messagerie embed plus compacte */
    body.lbp-themed.lbp-themed .messagerie,
    body.lbp-themed.lbp-themed .sav-thread,
    body.lbp-themed.lbp-themed .message-thread {
        margin-top: 1rem !important;
        padding: 0.9rem !important;
        border-radius: 16px !important;
    }

    /* === Mon Profil : champs plus compacts === */
    body.lbp-themed.lbp-themed .profile-form .form-row,
    body.lbp-themed.lbp-themed .mon-profil-form .form-grid {
        grid-template-columns: 1fr !important;
        gap: 0.6rem !important;
    }

    /* === FOOTER : reduit gros titres et paddings === */
    body.lbp-themed.lbp-themed footer .footer-grid {
        gap: 1.5rem !important;
        padding: 2rem 1rem !important;
    }
    body.lbp-themed.lbp-themed footer h4,
    body.lbp-themed.lbp-themed footer .footer-column h4 {
        font-size: 1.05rem !important;
        margin-bottom: 0.6rem !important;
    }
    body.lbp-themed.lbp-themed footer .footer-brand p {
        font-size: 0.92rem !important;
        line-height: 1.55 !important;
    }
    body.lbp-themed.lbp-themed footer .footer-bottom {
        padding: 1rem !important;
        font-size: 0.82rem !important;
    }

    /* === Cards / panneaux : radius plus humain en mobile === */
    body.lbp-themed.lbp-themed .card,
    body.lbp-themed.lbp-themed .panel {
        border-radius: 18px !important;
    }
}

/* ============ 3) FAVORITES dropdown CSS (utilitaire) ============ */
/* Le menu avatar du header desktop sera cache en mobile (deja via nav-right hidden) */

/* ============ 4) Lightbox des medias produit : structure ============ */
.lbp-lightbox {
    position: fixed;
    inset: 0;
    z-index: 10000;
    display: none;
    background: rgba(0, 0, 0, 0.92);
    align-items: center;
    justify-content: center;
    padding: 24px;
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
}
.lbp-lightbox.lbp-lightbox-img {
    background: #fff;
}
.lbp-lightbox.open {
    display: flex;
    animation: lbp-lb-fade 0.18s ease-out;
}
@keyframes lbp-lb-fade {
    from { opacity: 0; }
    to { opacity: 1; }
}
.lbp-lightbox-media-wrap {
    position: relative;
    max-width: 100%;
    max-height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.lbp-lightbox img,
.lbp-lightbox video {
    max-width: 100%;
    max-height: calc(100vh - 80px);
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
    border-radius: 6px;
}
.lbp-lightbox-close {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 10001;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(0, 0, 0, 0.1);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #1a0f08;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
    transition: transform 0.12s ease, background 0.12s ease;
}
.lbp-lightbox-close:hover {
    background: #fff;
    transform: scale(1.05);
}
.lbp-lightbox-close svg {
    width: 22px;
    height: 22px;
}
.lbp-lightbox.lbp-lightbox-video .lbp-lightbox-close {
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
    border-color: rgba(255, 255, 255, 0.25);
    backdrop-filter: blur(8px);
}
.lbp-lightbox.lbp-lightbox-video .lbp-lightbox-close:hover {
    background: rgba(255, 255, 255, 0.25);
}
.lbp-lightbox-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.92);
    border: 1px solid rgba(0, 0, 0, 0.1);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #1a0f08;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.2);
    z-index: 10001;
    transition: background 0.12s ease, transform 0.12s ease;
}
.lbp-lightbox-nav:hover {
    transform: translateY(-50%) scale(1.05);
}
.lbp-lightbox-prev { left: 14px; }
.lbp-lightbox-next { right: 14px; }
.lbp-lightbox.lbp-lightbox-video .lbp-lightbox-nav {
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
    border-color: rgba(255, 255, 255, 0.25);
    backdrop-filter: blur(8px);
}
.lbp-lightbox-counter {
    position: absolute;
    bottom: 18px;
    left: 50%;
    transform: translateX(-50%);
    padding: 6px 14px;
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.55);
    color: #fff;
    font-family: var(--font-body, 'Lato', sans-serif);
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    z-index: 10001;
}
.lbp-lightbox.lbp-lightbox-img .lbp-lightbox-counter {
    background: rgba(20, 14, 8, 0.85);
    color: #fff;
}
@media (max-width: 767px) {
    .lbp-lightbox { padding: 12px; }
    .lbp-lightbox-nav {
        width: 42px;
        height: 42px;
    }
    .lbp-lightbox-prev { left: 8px; }
    .lbp-lightbox-next { right: 8px; }
}
body.lbp-lightbox-open { overflow: hidden; }

/* ============================================================
   MOBILE TABBAR & DRAWER - Style adapte au theme Joy
   ------------------------------------------------------------
   Surchage les variables CSS de la tabbar et le style du drawer
   pour respecter le design Joy : crème, encre noire, bordures
   epaisses 2px, shadow joy, pink pour l'actif.
   ============================================================ */

/* === TABBAR JOY === */
body.lbp-themed.lbp-themed .mobile-tabbar {
    --lbp-tabbar-bg: var(--joy-cream-soft, #fef9eb) !important;
    --lbp-tabbar-fg: var(--joy-ink-soft, #5a3f2a) !important;
    --lbp-tabbar-active: var(--joy-pink, #FF1F7E) !important;
    --lbp-tabbar-border: var(--joy-ink, #2c1810) !important;
    --lbp-tabbar-badge: var(--joy-pink, #FF1F7E) !important;
    --lbp-tabbar-badge-fg: var(--joy-cream-soft, #fef9eb) !important;
    --lbp-tabbar-shadow: 0 -4px 0 0 var(--joy-ink, #2c1810) !important;
    border-top-width: 2px !important;
}
body.lbp-themed.lbp-themed .mobile-tabbar .mobile-tab {
    font-family: var(--joy-font-body, var(--font-body)) !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    font-weight: 600 !important;
}
body.lbp-themed.lbp-themed .mobile-tabbar .mobile-tab.active {
    color: var(--joy-pink, #FF1F7E) !important;
    font-weight: 700 !important;
}
body.lbp-themed.lbp-themed .mobile-tabbar .mobile-tab.active::before {
    background: var(--joy-pink, #FF1F7E) !important;
    height: 4px !important;
    width: 34px !important;
}

/* === DRAWER JOY : refonte complete pour style Joy === */

/* Container : fond cream chaud, gros padding pour respirer.
   z-index 9999 pour passer AU-DESSUS du nav fixed (qui est a 100).
   Sans ca, le header "Menu" + bloc user sont caches sous le nav scrolled. */
html body.lbp-themed.lbp-themed.lbp-themed .mobile-drawer {
    background: var(--joy-cream, #FBF1DD) !important;
    border-left: 2px solid var(--joy-ink, #2c1810) !important;
    box-shadow: none !important;
    padding-bottom: max(48px, env(safe-area-inset-bottom)) !important;
    z-index: 99999 !important;
}
html body.lbp-themed.lbp-themed.lbp-themed .mobile-drawer.open {
    box-shadow: -12px 0 40px rgba(44, 24, 16, 0.18) !important;
}
html body.lbp-themed.lbp-themed.lbp-themed .mobile-drawer-backdrop {
    z-index: 99998 !important;
}

/* Header du drawer : titre "Menu" en script Joy + croix bordee */
body.lbp-themed.lbp-themed .mobile-drawer-header {
    border-bottom: 2px solid var(--joy-ink, #2c1810) !important;
    padding: 22px 22px 18px !important;
    background: var(--joy-cream-soft, #fef9eb) !important;
    flex-shrink: 0 !important;
}
body.lbp-themed.lbp-themed .mobile-drawer-title {
    font-family: var(--joy-font-script) !important;
    color: var(--joy-pink, #FF1F7E) !important;
    font-weight: 600 !important;
    font-size: 1.8rem !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    line-height: 1 !important;
}
body.lbp-themed.lbp-themed .mobile-drawer-close {
    color: var(--joy-ink, #2c1810) !important;
    border: 2px solid var(--joy-ink, #2c1810) !important;
    background: var(--joy-cream-soft, #fef9eb) !important;
    width: 40px !important;
    height: 40px !important;
    border-radius: 50% !important;
    box-shadow: 2px 2px 0 0 var(--joy-ink, #2c1810) !important;
    transition: transform 0.18s ease, background 0.18s ease, color 0.18s ease !important;
    flex-shrink: 0 !important;
}
body.lbp-themed.lbp-themed .mobile-drawer-close:hover {
    background: var(--joy-ink, #2c1810) !important;
    color: var(--joy-cream-soft, #fef9eb) !important;
    transform: translate(-1px, -1px) !important;
}

/* Zone utilisateur connecte : carte CLIQUABLE menant a mon-compte */
body.lbp-themed.lbp-themed .mobile-drawer-user {
    background: var(--joy-cream-soft, #fef9eb) !important;
    border-bottom: 2px solid var(--joy-ink, #2c1810) !important;
    padding: 18px 22px !important;
    gap: 14px !important;
    flex-shrink: 0 !important;
    text-decoration: none !important;
    cursor: pointer !important;
    transition: background 0.18s ease !important;
}
body.lbp-themed.lbp-themed .mobile-drawer-user:hover {
    background: rgba(255, 31, 126, 0.07) !important;
}
body.lbp-themed.lbp-themed .mobile-drawer-avatar {
    background: var(--joy-pink, #FF1F7E) !important;
    color: var(--joy-cream-soft, #fef9eb) !important;
    border: 2px solid var(--joy-ink, #2c1810) !important;
    box-shadow: 2px 2px 0 0 var(--joy-ink, #2c1810) !important;
    width: 46px !important;
    height: 46px !important;
    font-family: var(--joy-font-body) !important;
    font-weight: 800 !important;
    font-size: 0.95rem !important;
    letter-spacing: 0.04em !important;
}
body.lbp-themed.lbp-themed .mobile-drawer-user-name {
    font-family: var(--joy-font-body) !important;
    color: var(--joy-ink, #2c1810) !important;
    font-weight: 700 !important;
    font-size: 0.98rem !important;
}
body.lbp-themed.lbp-themed .mobile-drawer-user-email {
    color: rgba(44, 24, 16, 0.6) !important;
    font-size: 0.78rem !important;
}

/* === Nav : liens TOUJOURS alignes a gauche, spec maximale.
   Le centrage observe vient de l'absence de width 100% explicite + d'un
   stretch incomplet sur le parent. On force tout. */
html body.lbp-themed.lbp-themed.lbp-themed .mobile-drawer-nav,
.mobile-drawer-nav {
    padding: 12px 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    position: relative !important;
}
html body.lbp-themed.lbp-themed.lbp-themed .mobile-drawer-nav a {
    font-family: var(--joy-font-body) !important;
    color: var(--joy-ink, #2c1810) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    font-size: 0.82rem !important;
    font-weight: 700 !important;
    padding: 14px 22px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    text-align: left !important;
    gap: 14px !important;
    width: 100% !important;
    box-sizing: border-box !important;
    border-left: 3px solid transparent !important;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease !important;
    text-decoration: none !important;
}
html body.lbp-themed.lbp-themed.lbp-themed .mobile-drawer-nav a:hover {
    background: rgba(255, 31, 126, 0.07) !important;
    color: var(--joy-pink, #FF1F7E) !important;
}
html body.lbp-themed.lbp-themed.lbp-themed .mobile-drawer-nav a.active {
    color: var(--joy-pink, #FF1F7E) !important;
    background: rgba(255, 31, 126, 0.1) !important;
    border-left: 3px solid var(--joy-pink, #FF1F7E) !important;
}
html body.lbp-themed.lbp-themed.lbp-themed .mobile-drawer-nav .mobile-drawer-icon {
    color: inherit !important;
    width: 22px !important;
    height: 22px !important;
    flex-shrink: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}
/* Pour les liens SANS icone : remplir avec une puce ronde rose pour aligner
   les textes verticalement avec ceux qui ont une icone */
html body.lbp-themed.lbp-themed.lbp-themed .mobile-drawer-nav a:not(:has(.mobile-drawer-icon))::before {
    content: '';
    display: inline-block;
    width: 22px;
    height: 22px;
    flex-shrink: 0;
    background-image: radial-gradient(circle, var(--joy-pink, #FF1F7E) 3px, transparent 4px);
    background-size: 22px 22px;
    background-position: center;
    background-repeat: no-repeat;
}

/* Divider : ligne pointillee Joy */
html body.lbp-themed.lbp-themed.lbp-themed .mobile-drawer-divider {
    background: transparent !important;
    height: 0 !important;
    border-top: 2px dashed var(--joy-ink, #2c1810) !important;
    margin: 8px 22px !important;
    opacity: 0.25 !important;
}

/* Section ACCOUNT plus discrete que la nav principale */
html body.lbp-themed.lbp-themed.lbp-themed .mobile-drawer-account a {
    font-size: 0.78rem !important;
    padding: 12px 22px !important;
}

/* Bouton "Me deconnecter" : rouge accent */
html body.lbp-themed.lbp-themed.lbp-themed .mobile-drawer-logout {
    color: var(--joy-coral, #FF6B4A) !important;
}
html body.lbp-themed.lbp-themed.lbp-themed .mobile-drawer-logout:hover {
    background: rgba(255, 107, 74, 0.1) !important;
    color: var(--joy-coral, #FF6B4A) !important;
}
html body.lbp-themed.lbp-themed.lbp-themed .mobile-drawer-logout .mobile-drawer-icon {
    color: var(--joy-coral, #FF6B4A) !important;
}

/* === BURGER button : adapte Joy === */
body.lbp-themed.lbp-themed #mainNav .mobile-menu-btn {
    color: var(--joy-ink, #2c1810) !important;
}

/* === Tabbar : safe-area bottom : on s'assure que sur les iPhones avec barre du bas,
   la tab bar ne soit pas mangee */
@supports (padding: env(safe-area-inset-bottom)) {
    .mobile-tabbar {
        padding-bottom: max(4px, env(safe-area-inset-bottom));
    }
}

/* ============================================================
   MOSAIC DOTS - indicateurs de pagination du carousel mobile
   Affiche uniquement sous le carousel sur mobile (< 768px).
   En desktop, la mosaic est statique donc pas de dots.
   ============================================================ */
.lbp-mosaic-dots {
    display: none; /* cache par defaut, affiche en mobile */
    justify-content: center;
    align-items: center;
    gap: 0.55rem;
    padding: 0.4rem 1rem 1.5rem;
    margin: 0;
}
@media (max-width: 767px) {
    .lbp-mosaic-dots { display: flex; }
}
.lbp-mosaic-dots .lbp-mosaic-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: rgba(44, 24, 16, 0.22);
    border: none;
    padding: 0;
    margin: 0;
    cursor: pointer;
    transition: all 0.2s ease;
    -webkit-tap-highlight-color: transparent;
}
.lbp-mosaic-dots .lbp-mosaic-dot:hover {
    background: rgba(44, 24, 16, 0.45);
    transform: scale(1.15);
}
.lbp-mosaic-dots .lbp-mosaic-dot.active {
    background: var(--joy-pink, #FF1F7E);
    width: 26px;
    border-radius: 5px;
    transform: scale(1);
}
/* Variante encadree comme le reste du theme Joy */
body.lbp-themed.lbp-themed .lbp-mosaic-dots .lbp-mosaic-dot {
    background: rgba(44, 24, 16, 0.22);
}
body.lbp-themed.lbp-themed .lbp-mosaic-dots .lbp-mosaic-dot.active {
    background: var(--joy-pink, #FF1F7E);
}

/* ============================================================
   BOUTIQUE - Toggle cols mobile/desktop + filtres ameliores
   ============================================================ */

/* Cache les boutons cols selon le viewport - specificite haute pour ecraser .boutique-cols-toggle .cols-btn { display: inline-flex !important } */
html body.lbp-themed.lbp-themed.lbp-themed .boutique-cols-toggle .cols-btn-mobile { display: none !important; }
html body.lbp-themed.lbp-themed.lbp-themed .boutique-cols-toggle .cols-btn-desktop { display: inline-flex !important; }
@media (max-width: 767px) {
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-cols-toggle .cols-btn-mobile { display: inline-flex !important; }
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-cols-toggle .cols-btn-desktop { display: none !important; }
}

/* === Mobile boutique : tabs ligne 1, puis loupe + tri + cols sur la MEME ligne 2 === */
@media (max-width: 767px) {
    /* Layout grid pour les outils : tabs prend la 1ere ligne entierement,
       puis 3 colonnes en ligne 2 (loupe a gauche, tri au milieu, cols a droite) */
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-filters-bar .boutique-tools {
        display: grid !important;
        grid-template-columns: auto 1fr auto !important;
        grid-template-rows: auto auto !important;
        gap: 0.55rem 0.55rem !important;
        align-items: center !important;
        flex-wrap: unset !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    /* Ligne 1 : tabs full width */
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-filters-bar .boutique-tabs-wrap {
        grid-column: 1 / -1 !important;
        grid-row: 1 !important;
        min-width: 0 !important;
        width: 100% !important;
    }
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-filters-bar > .boutique-tabs {
        /* fallback si pas de wrap encore */
        grid-column: 1 / -1 !important;
        grid-row: 1 !important;
    }
    /* Ligne 2 col 1 : loupe (bouton compact) */
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-filters-bar .boutique-search-form {
        grid-column: 1 !important;
        grid-row: 2 !important;
        margin: 0 !important;
        position: relative !important;
        display: inline-flex !important;
        align-items: center !important;
    }
    /* Input cache, deployable au clic */
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-filters-bar .boutique-search-form .boutique-search-input {
        position: absolute !important;
        left: 0 !important;
        top: calc(100% + 0.4rem) !important;
        width: 0 !important;
        max-width: 0 !important;
        padding: 0 !important;
        border: none !important;
        opacity: 0 !important;
        pointer-events: none !important;
        transition: all 0.25s ease !important;
        z-index: 30 !important;
        box-shadow: 0 6px 24px rgba(0,0,0,0.12) !important;
    }
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-filters-bar .boutique-search-form[data-expanded="true"] .boutique-search-input {
        width: calc(100vw - 1.8rem) !important;
        max-width: 360px !important;
        padding: 0.6rem 1rem !important;
        border: 2px solid var(--joy-ink, #2c1810) !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        background: var(--joy-cream-soft, #fef9eb) !important;
    }
    /* Ligne 2 col 2 : tri (extensible mais limite) */
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-filters-bar .boutique-sort-select {
        grid-column: 2 !important;
        grid-row: 2 !important;
        min-width: 0 !important;
        max-width: 100% !important;
        width: 100% !important;
        margin: 0 !important;
    }
    /* Ligne 2 col 3 : cols-toggle (1 / 2 cols seulement) */
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-filters-bar .boutique-cols-toggle {
        grid-column: 3 !important;
        grid-row: 2 !important;
        margin: 0 !important;
        display: inline-flex !important;
        gap: 2px !important;
    }
    /* Reset eventuel : se met apres cols sur ligne 2 si present (en remettant en flex) */
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-filters-bar .boutique-reset {
        grid-column: 3 !important;
        grid-row: 2 !important;
        justify-self: end !important;
    }
}

/* === FLECHES SCROLL TABS : positionnement mobile === */
@media (max-width: 767px) {
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-tabs-wrap {
        position: relative !important;
        /* PAS de padding lateral : le 1er tag doit etre aligne a gauche
           avec le reste du contenu. Les fleches sont en position absolute
           par-dessus, pas dans le flow. */
    }
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-tabs-arrow {
        width: 28px !important;
        height: 28px !important;
        z-index: 10 !important;
        box-shadow: 0 2px 8px rgba(0,0,0,0.15) !important;
    }
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-tabs-arrow-left { left: 0 !important; }
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-tabs-arrow-right { right: 0 !important; }
}

/* ============================================================
   BOUTIQUE GRILLE - MOBILE : 1 colonne ou 2 colonnes (data-cols)
   Pattern fourni par la cliente
   ============================================================ */
@media (max-width: 767px) {
    /* Mode 1 colonne : aspect-ratio libre, plus d'air */
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-main .products-grid[data-cols="1"],
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-layout .products-grid[data-cols="1"] {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 1rem !important;
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-main .products-grid[data-cols="1"] > .product-card,
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-layout .products-grid[data-cols="1"] > .product-card {
        aspect-ratio: 4/5 !important;
    }

    /* Mode 2 colonnes : CSS fourni par la cliente */
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-main .products-grid[data-cols="2"],
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-layout .products-grid[data-cols="2"] {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 1rem !important;
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-main .products-grid[data-cols="2"] > .product-card,
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-layout .products-grid[data-cols="2"] > .product-card {
        aspect-ratio: 4/5 !important;
        min-width: 0 !important;
        max-width: 100% !important;
        width: 100% !important;
    }
    /* Image padding reduit pour le mode 2 cols */
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-main .products-grid[data-cols="2"] > .product-card .product-image img,
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-layout .products-grid[data-cols="2"] > .product-card .product-image img {
        padding: 0.2rem !important;
    }
    /* Info bloc en bas, 92px de haut, padding maitrise */
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-main .products-grid[data-cols="2"] > .product-card .product-info,
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-layout .products-grid[data-cols="2"] > .product-card .product-info {
        position: absolute !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        height: 92px !important;
        padding: 0 1rem 1rem !important;
        background: transparent !important;
        border: none !important;
        border-radius: 0 !important;
        margin: 0 !important;
        z-index: 4 !important;
        text-align: left !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        justify-content: flex-end !important;
        pointer-events: none;
        flex: none !important;
        overflow: hidden;
    }
    /* h3 en uppercase pour le mode 2 cols, taille reduite */
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-main .products-grid[data-cols="2"] > .product-card .product-info h3,
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-main .products-grid[data-cols="2"] > .product-card .product-info .product-name,
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-layout .products-grid[data-cols="2"] > .product-card .product-info h3,
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-layout .products-grid[data-cols="2"] > .product-card .product-info .product-name {
        font-size: 0.8rem !important;
        line-height: 1.2 !important;
        text-transform: uppercase !important;
        letter-spacing: 0.02em !important;
    }
    /* Prix reduit + ellipsis */
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-main .products-grid[data-cols="2"] > .product-card .product-price,
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-layout .products-grid[data-cols="2"] > .product-card .product-price {
        font-family: var(--joy-font-script) !important;
        font-size: 1rem !important;
        margin: 0.2rem 0 0 !important;
        line-height: 1 !important;
        font-weight: 500 !important;
        text-align: left !important;
        color: rgba(42, 26, 15, 0.85) !important;
        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        max-width: 100% !important;
    }
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-main .products-grid[data-cols="2"] > .product-card .product-price .current-price,
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-layout .products-grid[data-cols="2"] > .product-card .product-price .current-price {
        font-family: var(--joy-font-script) !important;
        color: rgba(42, 26, 15, 0.85) !important;
        font-size: 1.5rem !important;
        font-weight: 500 !important;
    }
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-main .products-grid[data-cols="2"] > .product-card .product-price .old-price,
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-layout .products-grid[data-cols="2"] > .product-card .product-price .old-price {
        font-size: 0.75rem !important;
    }
    /* Badges plus compacts en 2 cols */
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-main .products-grid[data-cols="2"] > .product-card .product-badge,
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-main .products-grid[data-cols="2"] > .product-card .product-perso-tag,
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-layout .products-grid[data-cols="2"] > .product-card .product-badge,
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-layout .products-grid[data-cols="2"] > .product-card .product-perso-tag {
        font-size: 0.55rem !important;
        padding: 3px 8px !important;
        letter-spacing: 0.04em !important;
    }
}

/* === Overrides demandes par Kristina === */
html body.lbp-themed.lbp-themed.lbp-themed .page-hero {
    padding: 2rem 1.5rem 1rem !important;
}
html body.lbp-themed.lbp-themed.lbp-themed .boutique-tabs-arrow {
    z-index: 9999 !important;
}

/* === Pseudo-elements ::before/::after du wrap : DESACTIVES sur mobile.
   Le mask-image sur .boutique-tabs (plus bas) suffit pour l'effet de fondu. */
@media (max-width: 767px) {
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-tabs-wrap::before,
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-tabs-wrap::after {
        display: none !important;
        content: none !important;
    }
}

/* === Toggle cols : alignement propre des boutons dans le wrapper pill ===
   - le wrapper a border-radius: pill + overflow:hidden
   - les boutons internes : border-radius 0, AUCUN border-right (separateurs supprimes)
   - tout est aligne en hauteur via align-items: stretch */
html body.lbp-themed.lbp-themed.lbp-themed .boutique-cols-toggle {
    padding: 0 !important;
    height: 38px !important;
    overflow: hidden !important;
    background: var(--joy-cream-soft, #fef9eb) !important;
    border: 2px solid var(--joy-ink, #2c1810) !important;
    align-items: stretch !important;
    gap: 0 !important;
}
html body.lbp-themed.lbp-themed.lbp-themed .boutique-cols-toggle .cols-btn {
    border-radius: 0 !important;
    height: 100% !important;
    min-width: 38px !important;
    padding: 0 0.7rem !important;
    border: none !important;
    border-right: none !important;
    margin: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
    color: var(--joy-ink, #2c1810) !important;
}
/* Bouton actif : fond ink, pas de coin arrondi - le wrapper s'en charge via overflow:hidden */
html body.lbp-themed.lbp-themed.lbp-themed .boutique-cols-toggle .cols-btn.active {
    background: var(--joy-ink, #2c1810) !important;
    color: var(--joy-cream-soft, #fef9eb) !important;
    border-radius: 0 !important;
}
html body.lbp-themed.lbp-themed.lbp-themed .boutique-cols-toggle .cols-btn svg {
    width: 14px !important;
    height: 14px !important;
}

/* === Fondu natif sur les bords des tabs via mask-image ===
   Conditionnel selon les classes posees par le JS :
   - .can-scroll-left  -> fondu a gauche (on peut scroller vers la gauche)
   - .can-scroll-right -> fondu a droite (on peut scroller vers la droite)
   Au chargement initial : seul le fondu DROIT est applique (le 1er tag reste entier). */
@media (max-width: 767px) {
    /* Par defaut : fondu UNIQUEMENT a droite (etat initial : pas de scroll a gauche) */
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-tabs-wrap .boutique-tabs,
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-filters-bar .boutique-tabs {
        -webkit-mask-image: linear-gradient(
            to right,
            black 0,
            black calc(100% - 36px),
            transparent 100%
        ) !important;
        mask-image: linear-gradient(
            to right,
            black 0,
            black calc(100% - 36px),
            transparent 100%
        ) !important;
        -webkit-mask-repeat: no-repeat;
        mask-repeat: no-repeat;
        -webkit-mask-size: 100% 100%;
        mask-size: 100% 100%;
    }
    /* Si on peut scroller a gauche : fondu aux DEUX cotes */
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-tabs-wrap.can-scroll-left .boutique-tabs {
        -webkit-mask-image: linear-gradient(
            to right,
            transparent 0,
            black 36px,
            black calc(100% - 36px),
            transparent 100%
        ) !important;
        mask-image: linear-gradient(
            to right,
            transparent 0,
            black 36px,
            black calc(100% - 36px),
            transparent 100%
        ) !important;
    }
    /* Si on est a la fin (plus de scroll a droite) ET qu'on peut scroller a gauche :
       fondu uniquement a GAUCHE (le dernier tag reste entier) */
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-tabs-wrap.can-scroll-left:not(.can-scroll-right) .boutique-tabs {
        -webkit-mask-image: linear-gradient(
            to right,
            transparent 0,
            black 36px,
            black 100%
        ) !important;
        mask-image: linear-gradient(
            to right,
            transparent 0,
            black 36px,
            black 100%
        ) !important;
    }
    /* Si on ne peut scroller NI a gauche NI a droite (tout tient sur l'ecran) : aucun fondu */
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-tabs-wrap:not(.can-scroll-left):not(.can-scroll-right) .boutique-tabs {
        -webkit-mask-image: none !important;
        mask-image: none !important;
    }
}

/* ============================================================
   MON COMPTE - MOBILE COMPLET
   Optimisation de TOUS les composants de la page mon-compte
   ============================================================ */
@media (max-width: 767px) {

    /* --- Structure : padding compacte (PAS d'overflow restrictif qui couperait les ombres Joy) --- */
    body.lbp-themed.lbp-themed.page-mon-compte .account-section,
    body.lbp-themed.lbp-themed .account-section {
        padding: 1rem 0 2rem !important;
        max-width: 100% !important;
    }
    body.lbp-themed.lbp-themed .account-container {
        padding: 0 14px !important;
        max-width: 100% !important;
    }
    /* Layout + content : juste box-sizing, pas de clip qui couperait les ombres */
    body.lbp-themed.lbp-themed.page-mon-compte .account-layout,
    body.lbp-themed.lbp-themed.page-mon-compte .account-content {
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    /* SECURITE : tous les enfants directs de account-content en border-box
       pour qu'un padding + width:100% ne deborde JAMAIS du parent */
    body.lbp-themed.lbp-themed.page-mon-compte .account-content > *,
    body.lbp-themed.lbp-themed.page-mon-compte .account-content > * > * {
        box-sizing: border-box !important;
        max-width: 100% !important;
    }
    body.lbp-themed.lbp-themed .account-header {
        padding: 0 0 0.5rem !important;
        text-align: center !important;
    }
    body.lbp-themed.lbp-themed .account-header h1 {
        font-size: clamp(1.6rem, 7vw, 2.2rem) !important;
        line-height: 1.1 !important;
        margin: 0.5rem 0 1rem !important;
    }

    /* --- Layout : 1 colonne, nav en haut --- */
    body.lbp-themed.lbp-themed .account-layout {
        grid-template-columns: 1fr !important;
        gap: 1rem !important;
    }

    /* --- ACCOUNT-NAV : barre horizontale scrollable (style tabs) --- */
    html body.lbp-themed.lbp-themed.lbp-themed .account-nav {
        position: relative !important;
        top: auto !important;
        flex-direction: row !important;
        align-items: stretch !important;
        gap: 0.5rem !important;
        padding: 0.6rem 0.5rem !important;
        margin: 0 -12px 0.5rem !important;
        background: transparent !important;
        border: none !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        scroll-snap-type: x proximity;
        scroll-padding: 0.5rem;
        flex-wrap: nowrap !important;
        /* Fondu droite pour suggerer le scroll */
        -webkit-mask-image: linear-gradient(
            to right, black 0, black calc(100% - 24px), transparent 100%
        );
        mask-image: linear-gradient(
            to right, black 0, black calc(100% - 24px), transparent 100%
        );
    }
    body.lbp-themed.lbp-themed .account-nav::-webkit-scrollbar { display: none; height: 0; }

    /* --- ONGLETS : pills compacts avec icone + label + badge --- */
    html body.lbp-themed.lbp-themed.lbp-themed .account-nav-link,
    html body.lbp-themed.lbp-themed.lbp-themed .account-tab {
        flex: 0 0 auto !important;
        width: auto !important;
        padding: 0.55rem 0.95rem !important;
        font-size: 0.78rem !important;
        font-weight: 700 !important;
        gap: 0.5rem !important;
        border: 2px solid var(--joy-ink, #2c1810) !important;
        background: var(--joy-cream-soft, #fef9eb) !important;
        border-radius: 999px !important;
        white-space: nowrap !important;
        min-height: 38px !important;
        line-height: 1 !important;
        scroll-snap-align: start;
        transform: none !important; /* annule la rotation desktop */
        box-shadow: none !important;
        letter-spacing: 0.03em !important;
        text-transform: none !important;
    }
    body.lbp-themed.lbp-themed .account-nav-link svg,
    body.lbp-themed.lbp-themed .account-tab svg {
        width: 16px !important;
        height: 16px !important;
        flex-shrink: 0 !important;
    }
    html body.lbp-themed.lbp-themed.lbp-themed .account-nav-link.active,
    html body.lbp-themed.lbp-themed.lbp-themed .account-tab.active {
        background: var(--joy-ink, #2c1810) !important;
        color: var(--joy-cream-soft, #fef9eb) !important;
        transform: none !important;
        box-shadow: none !important;
        border-color: var(--joy-ink, #2c1810) !important;
    }
    body.lbp-themed.lbp-themed .account-nav-link.active svg,
    body.lbp-themed.lbp-themed .account-tab.active svg {
        color: var(--joy-cream-soft, #fef9eb) !important;
        stroke: var(--joy-cream-soft, #fef9eb) !important;
    }
    /* Badge dans onglet : taille reduite */
    body.lbp-themed.lbp-themed .account-nav .count-badge {
        font-size: 0.62rem !important;
        padding: 0.05rem 0.4rem !important;
        margin-left: 0 !important;
        line-height: 1.3 !important;
        min-width: 18px !important;
    }

    /* --- CONTENU : pleine largeur, marges compactes --- */
    body.lbp-themed.lbp-themed .account-content {
        padding: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
        border-radius: 0 !important;
    }
    body.lbp-themed.lbp-themed .account-header {
        margin-bottom: 0.2rem !important;
    }
    body.lbp-themed.lbp-themed .account-section h2 {
        font-size: 1.5rem !important;
        margin: 0.5rem 0 1rem !important;
        line-height: 1.15 !important;
    }
    body.lbp-themed.lbp-themed .account-section h3 {
        font-size: 1.1rem !important;
        margin: 1rem 0 0.5rem !important;
    }

    /* --- ALERTES : padding mobile-friendly + espace pour icone --- */
    body.lbp-themed.lbp-themed .alert,
    html body.lbp-themed.lbp-themed.lbp-themed .alert,
    html body.lbp-themed.lbp-themed.lbp-themed .alert.alert-info {
        padding: 0.8rem 1rem !important;
        padding-left: 2.7rem !important;
        font-size: 0.9rem !important;
        margin: 0 0 1rem !important;
        border-radius: 14px !important;
    }

    /* --- FORMULAIRES : column, inputs ≥ 16px (anti-zoom iOS) --- */
    body.lbp-themed.lbp-themed .form-row {
        flex-direction: column !important;
        display: flex !important;
        gap: 0.9rem !important;
    }
    body.lbp-themed.lbp-themed .form-group {
        width: 100% !important;
        min-width: 0 !important;
    }
    body.lbp-themed.lbp-themed .form-group label {
        font-size: 0.85rem !important;
        font-weight: 700 !important;
        margin-bottom: 0.35rem !important;
        display: block !important;
    }
    body.lbp-themed.lbp-themed .form-group input,
    body.lbp-themed.lbp-themed .form-group select,
    body.lbp-themed.lbp-themed .form-group textarea,
    body.lbp-themed.lbp-themed .profile-form input,
    body.lbp-themed.lbp-themed .profile-form select,
    body.lbp-themed.lbp-themed .profile-form textarea,
    body.lbp-themed.lbp-themed .account-section input[type="text"],
    body.lbp-themed.lbp-themed .account-section input[type="email"],
    body.lbp-themed.lbp-themed .account-section input[type="tel"],
    body.lbp-themed.lbp-themed .account-section input[type="password"],
    body.lbp-themed.lbp-themed .account-section input[type="date"],
    body.lbp-themed.lbp-themed .account-section select,
    body.lbp-themed.lbp-themed .account-section textarea {
        font-size: 16px !important; /* anti-zoom iOS */
        width: 100% !important;
        padding: 0.7rem 0.9rem !important;
        border-radius: 12px !important;
        min-height: 44px !important;
        box-sizing: border-box !important;
    }
    body.lbp-themed.lbp-themed .account-section textarea {
        min-height: 90px !important;
    }

    /* --- Profile form : boutons pleine largeur --- */
    body.lbp-themed.lbp-themed .profile-form button[type="submit"],
    body.lbp-themed.lbp-themed .account-section form button[type="submit"],
    body.lbp-themed.lbp-themed .account-section .btn,
    body.lbp-themed.lbp-themed .account-section button.btn-gold {
        width: 100% !important;
        min-height: 48px !important;
        font-size: 0.95rem !important;
        padding: 0.8rem 1rem !important;
        justify-content: center !important;
    }
    body.lbp-themed.lbp-themed .link-btn {
        font-size: 0.88rem !important;
    }

    /* --- ADRESSES : 1 colonne, cards compactes --- */
    body.lbp-themed.lbp-themed .addresses-grid {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 0.9rem !important;
    }
    body.lbp-themed.lbp-themed .address-saved {
        padding: 1rem !important;
        border-radius: 16px !important;
    }
    body.lbp-themed.lbp-themed .address-saved-label {
        font-size: 0.78rem !important;
        margin-bottom: 0.45rem !important;
    }
    body.lbp-themed.lbp-themed .address-saved-body {
        font-size: 0.9rem !important;
        line-height: 1.45 !important;
    }
    body.lbp-themed.lbp-themed .address-saved-actions {
        display: flex !important;
        flex-direction: row !important;
        flex-wrap: wrap !important;
        gap: 0.5rem !important;
        margin-top: 0.8rem !important;
    }
    body.lbp-themed.lbp-themed .address-saved-actions button,
    body.lbp-themed.lbp-themed .address-saved-actions a {
        flex: 1 1 calc(50% - 0.25rem) !important;
        min-height: 38px !important;
        padding: 0.5rem 0.7rem !important;
        font-size: 0.82rem !important;
        justify-content: center !important;
    }

    /* --- DETAIL COMMANDE (mc-*) : responsive ameliore + meilleure visibilite --- */

    /* Header de la commande : padding+gap, h2 lisible */
    body.lbp-themed.lbp-themed .mc-detail-header {
        padding: 1rem !important;
        border-radius: 14px !important;
        background: white !important;
        border: 2px solid var(--joy-ink) !important;
        margin-bottom: 1rem !important;
    }
    body.lbp-themed.lbp-themed .mc-info-box {
        padding: 1rem !important;
        border-radius: 14px !important;
    }
    /* La row du header (numero + tags + bouton recu PDF) : tout sur ligne + wrap */
    body.lbp-themed.lbp-themed .mc-detail-header > div[style*="flex"] {
        gap: 0.4rem !important;
        flex-wrap: wrap !important;
    }
    body.lbp-themed.lbp-themed .mc-detail-header h2 {
        font-size: 1.1rem !important;
        line-height: 1.2 !important;
        flex: 1 1 100% !important;
        margin: 0 0 0.4rem !important;
    }

    /* Meta : chaque info sur sa propre ligne pour mieux lire */
    body.lbp-themed.lbp-themed .mc-detail-meta {
        display: flex !important;
        flex-direction: column !important;
        gap: 0.35rem !important;
        font-size: 0.86rem !important;
        margin-top: 0.6rem !important;
        padding-top: 0.6rem !important;
        border-top: 1px dashed var(--joy-cream-dark, #e8e0d0) !important;
    }
    body.lbp-themed.lbp-themed .mc-detail-meta div {
        display: flex !important;
        gap: 0.4rem !important;
        align-items: center !important;
        flex-wrap: wrap !important;
    }
    body.lbp-themed.lbp-themed .mc-detail-meta strong {
        font-size: 0.72rem !important;
        min-width: 90px !important;
    }

    /* Tags : pills propres */
    body.lbp-themed.lbp-themed .mc-tag {
        font-size: 0.7rem !important;
        padding: 0.25rem 0.6rem !important;
        border-radius: 999px !important;
        white-space: nowrap !important;
    }

    /* Bouton Recu PDF : pleine largeur, dessous des tags */
    body.lbp-themed.lbp-themed .mc-recu-btn {
        width: 100% !important;
        min-height: 44px !important;
        justify-content: center !important;
        font-size: 0.88rem !important;
        margin-left: 0 !important;
        margin-top: 0.4rem !important;
        flex: 1 1 100% !important;
    }

    /* Article (carte produit) : layout row comme desktop (image gauche, infos droite) */
    body.lbp-themed.lbp-themed .mc-detail-article {
        display: grid !important;
        grid-template-columns: 90px 1fr !important;
        align-items: start !important;
        gap: 0.9rem !important;
        padding: 0.9rem !important;
        border-radius: 14px !important;
        background: var(--joy-cream-soft, #fef9eb) !important;
        border: 1px solid var(--joy-cream-dark, #e8e0d0) !important;
        margin-bottom: 0.7rem !important;
    }
    body.lbp-themed.lbp-themed .mc-detail-art-img {
        width: 90px !important;
        height: 90px !important;
        max-width: none !important;
        aspect-ratio: 1 / 1 !important;
        margin: 0 !important;
        border-radius: 10px !important;
        border: 2px solid var(--joy-ink) !important;
        background: transparent !important;
        padding: 0 !important;
        overflow: hidden !important;
    }
    body.lbp-themed.lbp-themed .mc-detail-art-img img {
        width: 100% !important;
        height: 100% !important;
        object-fit: cover !important;
    }
    body.lbp-themed.lbp-themed .mc-detail-art-body {
        width: 100% !important;
        text-align: left !important;
        min-width: 0 !important;
    }
    /* La row interne PHP (avec span "space-between") : devient block normal pour empiler */
    body.lbp-themed.lbp-themed .mc-detail-art-body > div[style*="space-between"] {
        display: block !important;
        text-align: left !important;
    }
    /* Le prix dans cette row : passe sous le titre/qte, font script pink */
    body.lbp-themed.lbp-themed .mc-detail-art-body > div[style*="space-between"] > span:last-child {
        display: inline-block !important;
        margin-top: 0.5rem !important;
        font-family: var(--joy-font-script) !important;
        font-style: italic !important;
        color: var(--joy-pink) !important;
        font-size: 1.2rem !important;
        font-weight: 400 !important;
    }
    body.lbp-themed.lbp-themed .mc-detail-art-name {
        font-size: 1rem !important;
        line-height: 1.25 !important;
        text-align: left !important;
        margin: 0 !important;
    }
    body.lbp-themed.lbp-themed .mc-detail-art-variant {
        font-size: 0.82rem !important;
        text-align: left !important;
        margin: 0 !important;
    }

    /* Personnalisations : carte distincte, lisible */
    body.lbp-themed.lbp-themed .mc-detail-perso {
        padding: 0.7rem !important;
        margin-top: 0.6rem !important;
        background: white !important;
        border: 1px solid var(--joy-cream-dark, #e8e0d0) !important;
        border-radius: 10px !important;
        text-align: left !important;
        grid-column: 1 / -1 !important;
    }
    body.lbp-themed.lbp-themed .mc-detail-perso-title {
        font-size: 0.78rem !important;
        text-transform: uppercase !important;
        letter-spacing: 0.04em !important;
        color: var(--joy-ink-soft, rgba(44, 24, 16, 0.65)) !important;
        margin-bottom: 0.3rem !important;
    }
    body.lbp-themed.lbp-themed .mc-detail-perso-opt {
        padding: 0.35rem 0 !important;
        border-bottom: 1px dashed var(--joy-cream-dark, #e8e0d0) !important;
    }
    body.lbp-themed.lbp-themed .mc-detail-perso-msg,
    body.lbp-themed.lbp-themed .mc-detail-perso-val {
        font-size: 0.85rem !important;
        word-break: break-word !important;
        overflow-wrap: anywhere !important;
        line-height: 1.4 !important;
    }

    /* Totaux : bloc lisible avec separations */
    body.lbp-themed.lbp-themed .mc-detail-totals {
        padding: 1rem !important;
        font-size: 0.92rem !important;
        background: var(--joy-yellow-tint, #fff6d6) !important;
        border: 2px solid var(--joy-ink) !important;
        border-radius: 14px !important;
        margin-top: 0.8rem !important;
    }
    body.lbp-themed.lbp-themed .mc-detail-total-row {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        gap: 0.5rem !important;
        padding: 0.35rem 0 !important;
        flex-wrap: nowrap !important;
    }
    /* Total final : meme style que desktop (font display, pink, gros) */
    body.lbp-themed.lbp-themed .mc-detail-total-final {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        font-family: var(--joy-font-display) !important;
        color: var(--joy-pink) !important;
        font-size: 1.6rem !important;
        font-weight: 400 !important;
        padding-top: 0.5rem !important;
        margin-top: 0.4rem !important;
        border-top: 2px solid var(--joy-ink) !important;
        flex-wrap: nowrap !important;
    }
    body.lbp-themed.lbp-themed .mc-detail-total-final span {
        white-space: nowrap !important;
    }

    /* RGPD/badges/section title */
    body.lbp-themed.lbp-themed .mc-section-title {
        font-size: 1.05rem !important;
        margin: 1.2rem 0 0.6rem !important;
    }
    body.lbp-themed.lbp-themed .mc-card-subtitle {
        font-size: 0.85rem !important;
    }
    body.lbp-themed.lbp-themed .mc-rgpd-badge {
        font-size: 0.78rem !important;
        padding: 0.6rem 0.8rem !important;
    }
    body.lbp-themed.lbp-themed .mc-right-item {
        padding: 0.7rem !important;
        font-size: 0.85rem !important;
    }

    /* --- CODES PROMO : digits affichage centré, lisible --- */
    body.lbp-themed.lbp-themed .code-digit {
        font-size: 1rem !important;
        padding: 0.5rem 0.55rem !important;
        min-width: 30px !important;
    }

    /* --- CHECKBOX CARDS (RGPD / confidentialité) --- */
    body.lbp-themed.lbp-themed .mc-checkbox-card {
        padding: 0.9rem !important;
        gap: 0.7rem !important;
    }
    body.lbp-themed.lbp-themed .mc-checkbox-card label {
        font-size: 0.88rem !important;
        line-height: 1.35 !important;
    }

    /* --- DETAILS / RÉSUMÉ (FAQ-like collapsibles) --- */
    body.lbp-themed.lbp-themed .account-section details {
        padding: 0 !important;
        border-radius: 14px !important;
        margin-bottom: 0.7rem !important;
    }
    body.lbp-themed.lbp-themed .account-section details summary {
        padding: 0.85rem 1rem !important;
        font-size: 0.92rem !important;
    }
    body.lbp-themed.lbp-themed .account-section details > div {
        padding: 0.5rem 1rem 1rem !important;
    }

    /* --- TABLES : scroll horizontal si trop large --- */
    body.lbp-themed.lbp-themed .account-section table {
        font-size: 0.82rem !important;
    }
    body.lbp-themed.lbp-themed .account-section .table-wrap,
    body.lbp-themed.lbp-themed .account-section .orders-table-wrap {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch;
    }

    /* --- EMPTY STATE --- */
    body.lbp-themed.lbp-themed .empty-state {
        padding: 1.5rem 1rem !important;
        text-align: center !important;
    }
    body.lbp-themed.lbp-themed .empty-state p {
        font-size: 0.95rem !important;
        margin-bottom: 1rem !important;
    }
    body.lbp-themed.lbp-themed .empty-state .btn,
    body.lbp-themed.lbp-themed .empty-state a.btn {
        width: 100% !important;
        max-width: 280px !important;
        margin: 0 auto !important;
    }
}

/* ============================================================
   ACCOUNT-NAV : fleches scroll (comme boutique-tabs-wrap)
   ============================================================ */
.account-nav-wrap {
    position: relative;
    display: flex;
    align-items: center;
    min-width: 0;
}
.account-nav-wrap .account-nav {
    flex: 1 1 auto;
    min-width: 0;
}
.account-nav-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 2px solid var(--joy-ink, #2c1810);
    background: var(--joy-cream-soft, #fef9eb);
    color: var(--joy-ink, #2c1810);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    z-index: 9999;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease, transform 0.2s ease, background 0.18s ease, color 0.18s ease;
    flex-shrink: 0;
}
.account-nav-arrow-left { left: -2px; }
.account-nav-arrow-right { right: -2px; }
.account-nav-wrap.can-scroll-left .account-nav-arrow-left,
.account-nav-wrap.can-scroll-right .account-nav-arrow-right {
    opacity: 1;
    pointer-events: auto;
}
.account-nav-arrow:hover {
    background: var(--joy-ink, #2c1810);
    color: var(--joy-cream-soft, #fef9eb);
    transform: translateY(-50%) scale(1.08);
}
/* Desktop & tablette : les fleches restent cachees car nav verticale */
@media (min-width: 768px) {
    .account-nav-arrow { display: none !important; }
}

/* ============================================================
   DETAIL COMMANDE : layout COLONNE complet sur mobile
   Le grid inline `1fr 360px` est annule, tout passe en une colonne.
   ============================================================ */
@media (max-width: 767px) {
    /* Annule le grid 2 colonnes du detail commande (style inline dans le PHP) */
    html body.lbp-themed.lbp-themed.lbp-themed .account-content > div[style*="grid-template-columns"] {
        display: block !important;
        grid-template-columns: none !important;
    }
    /* Les colonnes filles redeviennent block en pleine largeur, avec espacement */
    html body.lbp-themed.lbp-themed.lbp-themed .account-content > div[style*="grid-template-columns"] > div {
        width: 100% !important;
        margin-bottom: 1.1rem !important;
    }
    html body.lbp-themed.lbp-themed.lbp-themed .account-content > div[style*="grid-template-columns"] > div:last-child {
        margin-bottom: 0 !important;
    }

    /* mc-detail-header : tags qui s'enroulent, bouton Reçu PDF qui descend */
    body.lbp-themed.lbp-themed .mc-detail-header > div[style*="flex"][style*="wrap"] {
        gap: 8px !important;
    }
    body.lbp-themed.lbp-themed .mc-detail-header h2 {
        font-size: 1.15rem !important;
        margin: 0 0 0.3rem !important;
        flex: 1 1 100% !important;
    }
    body.lbp-themed.lbp-themed .mc-recu-btn {
        margin-left: 0 !important;
        flex: 1 1 100% !important;
        justify-content: center !important;
    }

    /* mc-detail-article : passe en colonne (image au-dessus centree, infos dessous) */
    body.lbp-themed.lbp-themed .mc-detail-article {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 0.7rem !important;
        padding: 0.9rem !important;
    }
    body.lbp-themed.lbp-themed .mc-detail-art-img {
        width: 100% !important;
        max-width: 200px !important;
        height: auto !important;
        aspect-ratio: 1 / 1 !important;
        margin: 0 auto !important;
    }
    body.lbp-themed.lbp-themed .mc-detail-art-img img {
        width: 100% !important;
        height: 100% !important;
        object-fit: contain !important;
    }
    body.lbp-themed.lbp-themed .mc-detail-art-body {
        width: 100% !important;
    }
    /* La ligne flex en haut du body (nom/variant a gauche + qty/prix a droite)
       passe en colonne aussi pour ne pas se chevaucher */
    body.lbp-themed.lbp-themed .mc-detail-art-body > div[style*="space-between"] {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 0.4rem !important;
    }

    /* Totaux du detail : meilleur affichage */
    body.lbp-themed.lbp-themed .mc-detail-total-row {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        gap: 0.5rem !important;
        padding: 0.3rem 0 !important;
    }
    body.lbp-themed.lbp-themed .mc-detail-total-final {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        font-weight: 700 !important;
        font-size: 1.05rem !important;
        padding-top: 0.5rem !important;
        margin-top: 0.5rem !important;
        border-top: 1px solid rgba(44, 24, 16, 0.15) !important;
    }
}

/* ============================================================
   MESSAGERIE SAV (mon-compte > detail commande)
   ============================================================ */
.sav-message-form {
    display: flex;
    flex-direction: column;
    gap: 10px;
    align-items: stretch;
}
.sav-message-input {
    flex: 1 1 auto;
    padding: 10px 14px;
    border: 1px solid #eeece8;
    border-radius: 14px;
    font-family: inherit;
    font-size: 16px; /* anti-zoom iOS */
    line-height: 1.4;
    resize: none; /* auto-resize gere en JS */
    min-height: 48px;
    max-height: 140px;
    overflow-y: hidden;
    width: 100%;
    box-sizing: border-box;
    transition: height 0.1s ease, border-color 0.15s ease;
}
.sav-message-input:focus {
    outline: none;
    border-color: var(--joy-pink, var(--gold-dark, #a08043));
}
.sav-message-send {
    width: 100%;
    flex-shrink: 0;
    padding: 12px 16px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    font-size: 0.95rem;
    font-weight: 700;
    cursor: pointer;
}
.sav-message-send-label {
    display: inline; /* libelle "Envoyer" visible partout */
}

/* Plus de surcharges mobile : meme style toutes tailles */

/* === Bulles messages : pas de debordement texte === */
body.lbp-themed.lbp-themed #sav-chat > div > div,
#sav-chat > div > div {
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
    hyphens: auto;
}

/* === Bouton toggle Modifier <-> Annuler (adresses) === */
body.lbp-themed.lbp-themed .link-btn.is-cancel {
    color: var(--joy-coral, #FF6B4A) !important;
}
body.lbp-themed.lbp-themed .link-btn.is-cancel:hover {
    color: var(--joy-coral, #FF6B4A) !important;
    opacity: 0.85;
}

/* ============================================================
   MON PROFIL & CONFIDENTIALITE - corrections mobile critiques
   ============================================================ */
@media (max-width: 767px) {

    /* ============================================================
       MON PROFIL (mobile) : amelioration complete coherence Joy
       ============================================================ */

    /* Titre + sous-titre */
    body.lbp-themed.lbp-themed.page-mon-compte .account-content h2 {
        font-size: 1.5rem !important;
        line-height: 1.15 !important;
        margin: 0 0 0.4rem !important;
    }
    body.lbp-themed.lbp-themed.page-mon-compte .mc-card-subtitle {
        font-size: 0.88rem !important;
        line-height: 1.5 !important;
        margin: 0 0 1.4rem !important;
    }

    /* Espacement entre groupes : aere */
    body.lbp-themed.lbp-themed.page-mon-compte .profile-form .form-group {
        margin-bottom: 1.3rem !important;
    }

    /* Labels : style typo Joy uniforme */
    body.lbp-themed.lbp-themed.page-mon-compte .profile-form .form-group > label {
        display: block !important;
        font-family: var(--joy-font-body) !important;
        font-size: 0.75rem !important;
        font-weight: 700 !important;
        text-transform: uppercase !important;
        letter-spacing: 0.06em !important;
        color: var(--joy-ink) !important;
        margin-bottom: 0.45rem !important;
    }

    /* Inputs / select / textarea : style Joy + font-size 16px (anti-zoom iOS) */
    body.lbp-themed.lbp-themed.page-mon-compte .profile-form input:not([type="radio"]):not([type="checkbox"]),
    body.lbp-themed.lbp-themed.page-mon-compte .profile-form select,
    body.lbp-themed.lbp-themed.page-mon-compte .profile-form textarea {
        width: 100% !important;
        padding: 12px 14px !important;
        font-size: 16px !important;
        line-height: 1.4 !important;
        border: 1.5px solid var(--joy-cream-dark, #e8e0d0) !important;
        border-radius: 12px !important;
        background: var(--joy-cream-soft, #fef9eb) !important;
        font-family: var(--joy-font-body) !important;
        color: var(--joy-ink) !important;
        min-height: 48px !important;
        box-shadow: none !important;
        transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
        box-sizing: border-box !important;
    }
    /* Focus : bordure pink */
    body.lbp-themed.lbp-themed.page-mon-compte .profile-form input:focus,
    body.lbp-themed.lbp-themed.page-mon-compte .profile-form select:focus,
    body.lbp-themed.lbp-themed.page-mon-compte .profile-form textarea:focus {
        outline: none !important;
        border-color: var(--joy-pink) !important;
        box-shadow: 0 0 0 3px rgba(255, 31, 126, 0.12) !important;
        background: white !important;
    }
    /* Email readonly : visuel attenue */
    body.lbp-themed.lbp-themed.page-mon-compte .profile-form input[type="email"][readonly] {
        background: var(--joy-cream, #fef7e6) !important;
        color: var(--joy-ink-soft, rgba(44, 24, 16, 0.6)) !important;
        cursor: not-allowed !important;
    }

    /* === RADIOS / CHECKBOXES : taille fixe (Safari les agrandit dans les flex containers) === */
    body.lbp-themed.lbp-themed.page-mon-compte .profile-form input[type="radio"],
    body.lbp-themed.lbp-themed.page-mon-compte .profile-form input[type="checkbox"] {
        width: 16px !important;
        height: 16px !important;
        min-width: 16px !important;
        min-height: 16px !important;
        max-width: 16px !important;
        max-height: 16px !important;
        flex-shrink: 0 !important;
        flex-grow: 0 !important;
        flex-basis: 16px !important;
        appearance: auto !important;
        -webkit-appearance: radio !important;
        accent-color: var(--joy-pink) !important;
        padding: 0 !important;
        margin: 0 !important;
        border-radius: 50% !important;
        align-self: center !important;
    }
    body.lbp-themed.lbp-themed.page-mon-compte .profile-form input[type="checkbox"] {
        -webkit-appearance: checkbox !important;
        border-radius: 3px !important;
    }

    /* === CIVILITE : Mme + M. cote a cote, "Je ne prefere pas..." pleine largeur dessous === */
    body.lbp-themed.lbp-themed.page-mon-compte .profile-form .form-group > div[style*="flex"][style*="nowrap"],
    body.lbp-themed.lbp-themed.page-mon-compte .profile-form .form-group > div[style*="display:flex"] {
        display: flex !important;
        flex-wrap: wrap !important;
        flex-direction: row !important;
        gap: 8px !important;
    }
    body.lbp-themed.lbp-themed.page-mon-compte .profile-form .form-group > div > label {
        flex: 1 1 calc(50% - 4px) !important;
        padding: 10px 8px !important;
        font-size: 0.85rem !important;
        font-family: var(--joy-font-body) !important;
        font-weight: 500 !important;
        white-space: normal !important;
        text-align: center !important;
        justify-content: center !important;
        align-items: center !important;
        min-width: 0 !important;
        min-height: 44px !important;
        line-height: 1.2 !important;
        border-radius: 999px !important;
        cursor: pointer !important;
    }
    /* La 3eme option ("Je ne prefere pas le dire") en pleine largeur sur la 2e ligne */
    body.lbp-themed.lbp-themed.page-mon-compte .profile-form .form-group > div > label:nth-child(3) {
        flex: 1 1 100% !important;
    }
    body.lbp-themed.lbp-themed.page-mon-compte .profile-form .form-group > div > label span {
        font-size: 0.85rem !important;
        line-height: 1.2 !important;
        text-align: center !important;
        word-break: keep-all !important;
    }
    body.lbp-themed.lbp-themed.page-mon-compte .profile-form .form-group > div > label input[type="radio"] {
        flex-shrink: 0 !important;
    }

    /* === Email + bouton "Changer mon email" en COLONNE === */
    body.lbp-themed.lbp-themed.page-mon-compte .profile-form .form-group > div[style*="display:flex"][style*="align-items:center"] {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 10px !important;
        flex-wrap: nowrap !important;
    }
    body.lbp-themed.lbp-themed.page-mon-compte .profile-form .form-group > div input[type="email"][readonly] {
        flex: none !important;
        width: 100% !important;
    }
    body.lbp-themed.lbp-themed.page-mon-compte .profile-form .form-group > div button.btn-outline {
        width: 100% !important;
        white-space: normal !important;
        min-height: 48px !important;
        font-size: 0.9rem !important;
        font-weight: 600 !important;
        border-radius: 999px !important;
        border: 1.5px solid var(--joy-ink) !important;
        background: transparent !important;
        color: var(--joy-ink) !important;
    }

    /* === Grid Prenom/Nom : devient 1 col sur tres petits ecrans === */
    body.lbp-themed.lbp-themed.page-mon-compte .profile-form > div[style*="grid-template-columns"] {
        gap: 1rem !important;
        margin-bottom: 1.3rem !important;
    }
    @media (max-width: 380px) {
        body.lbp-themed.lbp-themed.page-mon-compte .profile-form > div[style*="grid-template-columns:1fr 1fr"] {
            grid-template-columns: 1fr !important;
        }
    }

    /* === Bouton "Enregistrer" : pleine largeur, style Joy pink CTA === */
    body.lbp-themed.lbp-themed.page-mon-compte .profile-form > button[type="submit"],
    body.lbp-themed.lbp-themed.page-mon-compte .profile-form button[type="submit"].btn-gold {
        width: 100% !important;
        padding: 14px 24px !important;
        min-height: 52px !important;
        font-size: 1rem !important;
        font-weight: 700 !important;
        letter-spacing: 0.02em !important;
        border-radius: 999px !important;
        background: var(--joy-pink) !important;
        color: white !important;
        border: 2px solid var(--joy-ink) !important;
        /* Box-shadow vertical seulement : evite l'overflow horizontal */
        box-shadow: 0 3px 0 0 var(--joy-ink) !important;
        margin-top: 0.5rem !important;
        cursor: pointer !important;
        transition: transform 0.15s ease, box-shadow 0.15s ease !important;
    }
    body.lbp-themed.lbp-themed.page-mon-compte .profile-form > button[type="submit"]:active,
    body.lbp-themed.lbp-themed.page-mon-compte .profile-form button[type="submit"].btn-gold:active {
        transform: translateY(2px) !important;
        box-shadow: 0 1px 0 0 var(--joy-ink) !important;
    }

    /* === Profile-form : carte blanche mobile === */
    body.lbp-themed.lbp-themed.page-mon-compte .profile-form {
        background: white !important;
        padding: 24px !important;
        border-radius: 24px !important;
        border: 2px solid var(--joy-ink) !important;
        box-shadow: var(--joy-shadow-sm, 4px 4px 0 0 var(--joy-ink)) !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }

    /* === CONFIDENTIALITE : checkbox-card propre === */
    body.lbp-themed.lbp-themed .mc-checkbox-card {
        display: flex !important;
        flex-direction: row !important;
        align-items: flex-start !important;
        gap: 12px !important;
        padding: 14px !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        /* Box-shadow vertical seulement (evite overflow horizontal mobile) */
        box-shadow: 0 2px 0 0 var(--joy-ink) !important;
    }
    body.lbp-themed.lbp-themed .mc-checkbox-card input[type="checkbox"] {
        flex-shrink: 0 !important;
        width: 18px !important;
        height: 18px !important;
        margin-top: 2px !important;
    }
    body.lbp-themed.lbp-themed .mc-checkbox-card > div {
        flex: 1 1 auto !important;
        min-width: 0 !important;
        word-break: break-word !important;
        overflow-wrap: anywhere !important;
    }
    body.lbp-themed.lbp-themed .mc-checkbox-card strong,
    body.lbp-themed.lbp-themed .mc-checkbox-card span {
        word-break: break-word !important;
        overflow-wrap: anywhere !important;
    }

    /* === mc-info-box (bloc bleu) === */
    body.lbp-themed.lbp-themed .mc-info-box {
        padding: 1rem !important;
        font-size: 0.88rem !important;
        line-height: 1.5 !important;
        word-break: break-word !important;
    }

    /* === Vos droits : items propres === */
    body.lbp-themed.lbp-themed .mc-right-item {
        display: flex !important;
        align-items: flex-start !important;
        gap: 12px !important;
        padding: 0.8rem 1rem !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        /* Box-shadow vertical seulement (evite overflow horizontal mobile) */
        box-shadow: 0 2px 0 0 var(--joy-ink) !important;
    }
    body.lbp-themed.lbp-themed .mc-right-item > svg {
        flex-shrink: 0 !important;
        width: 18px !important;
        height: 18px !important;
    }
    body.lbp-themed.lbp-themed .mc-right-item > div {
        flex: 1 1 auto !important;
        min-width: 0 !important;
        font-size: 0.85rem !important;
        line-height: 1.5 !important;
        word-break: break-word !important;
    }

    /* === Badge RGPD : compact === */
    body.lbp-themed.lbp-themed .mc-rgpd-badge {
        padding: 0.8rem 1rem !important;
        font-size: 0.8rem !important;
        gap: 8px !important;
        margin-top: 1.5rem !important;
    }
}

/* ============================================================
   PAGE HERO : titre h1 + breadcrumb - centrage global
   ============================================================ */
html body.lbp-themed.lbp-themed.lbp-themed .page-hero h1 {
    text-align: center !important;
    margin: 0.25rem 0 1rem !important;
}

html body.lbp-themed.lbp-themed.lbp-themed .page-hero .breadcrumb {
    text-align: left !important;
    justify-content: center !important;
    margin: 0 0 0.5rem !important;
    padding: 0 !important;
}

/* ============================================================
   MODALE PERSONNALISER (mobile)
   ============================================================ */
@media (max-width: 767px) {
    /* Libelle option : taille reduite + line-height */
    html body.lbp-themed.lbp-themed.lbp-themed .perso-option-libelle {
        font-size: 0.85rem !important;
        line-height: 1.4 !important;
    }
    /* Bloc contact : flex column (au lieu de grid) */
    html body.lbp-themed.lbp-themed.lbp-themed .perso-contact-block {
        display: flex !important;
        flex-direction: column !important;
        gap: 8px !important;
    }
    /* Bloc delai : flex column avec gap 4px */
    html body.lbp-themed.lbp-themed.lbp-themed .perso-delai {
        display: flex !important;
        flex-direction: column !important;
        gap: 4px !important;
    }
}

/* === Champs Nom/Email du bloc contact perso === */
.perso-contact-fields {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
@media (max-width: 767px) {
    html body.lbp-themed.lbp-themed.lbp-themed .perso-contact-fields {
        display: flex !important;
        flex-direction: column !important;
        gap: 10px !important;
    }
}

/* === Cart-items : separateur entre articles (a partir du 2eme) === */
html body.lbp-themed.lbp-themed.lbp-themed .cart-item + .cart-item {
    border-top: 1px solid var(--joy-cream-dark) !important;
    padding-top: 12px !important;
}

/* === Reassurance items : flex column align-start sur mobile === */
@media (max-width: 767px) {
    html body.lbp-themed.lbp-themed.lbp-themed .reassurance-grid .reassurance-item,
    html body.lbp-themed.lbp-themed.lbp-themed .reassurance-grid .reassurance-item:nth-child(3n+1),
    html body.lbp-themed.lbp-themed.lbp-themed .reassurance-grid .reassurance-item:nth-child(3n+2),
    html body.lbp-themed.lbp-themed.lbp-themed .reassurance-grid .reassurance-item:nth-child(3n+3) {
        display: flex !important;
        flex-direction: column;
        align-items: flex-start !important;
    }
}

/* ============================================================
   CHECKOUT - mobile : btn-add-address margin, transp-icon hide
   recap-item separateur + padding
   ============================================================ */
@media (max-width: 767px) {
    /* Bouton ajouter une adresse : marges verticales */
    body.lbp-themed.lbp-themed .btn-add-address {
        margin-top: 8px !important;
        margin-bottom: 8px !important;
    }
    /* Icone transporteur masquee */
    body.lbp-themed.lbp-themed .transp-icon {
        display: none !important;
    }
    /* Recap-item : separateur du haut + padding */
    html body.lbp-themed.lbp-themed.lbp-themed .recap-item {
        border-top: 1px solid var(--joy-cream-dark) !important;
        padding-top: 8px !important;
        padding-bottom: 8px !important;
    }
}

/* ============================================================
   PANIER : harmoniser typo des lignes de produit avec le recap checkout
   (sans toucher au layout grid principal)
   ============================================================ */
@media (max-width: 767px) {
    /* Typographie style recap */
    html body.lbp-themed.lbp-themed.lbp-themed .cart-item .variants {
        font-size: 0.78rem !important;
    }
}

/* Separateur entre cart-items (a partir du 2eme) - desktop + mobile */
html body.lbp-themed.lbp-themed.lbp-themed .cart-item + .cart-item {
    border-top: 1px solid var(--joy-cream-dark) !important;
    padding-top: 12px !important;
}

/* ============================================================
   PAGE HERO PANIER : overflow visible + breadcrumb aligne centre
   ============================================================ */
body.lbp-themed.lbp-themed > main > .page-hero,
body.lbp-themed.lbp-themed main > .page-hero,
body.lbp-themed.lbp-themed .page-hero {
    overflow: visible !important;
}
/* Breadcrumb centre avec le titre (sur toutes tailles) */
html body.lbp-themed.lbp-themed.lbp-themed .page-hero .breadcrumb {
    display: flex !important;
    width: 100% !important;
    justify-content: center !important;
    text-align: center !important;
    margin: 0 0 0.5rem !important;
    padding: 0 !important;
}

/* === CHECKOUT mobile : layout grid en colonne (l'ordre est gere en JS, voir checkout.php) === */
@media (max-width: 899px) {
    body.lbp-themed.lbp-themed .checkout-grid {
        display: flex !important;
        flex-direction: column !important;
    }
    /* Marge entre le recap et la section paiement qui suit */
    body.lbp-themed.lbp-themed .checkout-summary {
        margin-bottom: 1.5rem !important;
    }
}

/* === Panier & Checkout : pas de max-width sur le h1 du hero === */
html body.lbp-themed.lbp-themed.lbp-themed.page-panier .page-hero h1,
html body.lbp-themed.lbp-themed.lbp-themed.page-checkout .page-hero h1 {
    max-width: none !important;
}

/* === Checkout summary : sticky en desktop (>= 900px) === */
@media (min-width: 900px) {
    html body.lbp-themed.lbp-themed.lbp-themed .checkout-summary {
        position: sticky !important;
        top: 90px !important;
        align-self: start !important; /* indispensable dans un grid pour que sticky fonctionne */
        height: fit-content !important;
    }
}

/* ============================================================
   FIX STICKY : page-checkout, sticky aside summary
   Force overflow:visible sur tous les ancetres + align-items
   ============================================================ */
@media (min-width: 900px) {
    /* Pas d'overflow restrictif sur les ancetres */
    body.lbp-themed.lbp-themed.page-checkout,
    body.lbp-themed.lbp-themed.page-checkout > main,
    body.lbp-themed.lbp-themed.page-checkout .checkout-page {
        overflow: visible !important;
    }
    /* Grid : align items en haut (pas stretch) pour que sticky fonctionne */
    body.lbp-themed.lbp-themed.page-checkout .checkout-grid {
        align-items: start !important;
        overflow: visible !important;
    }
    /* L'aside summary lui-meme */
    body.lbp-themed.lbp-themed.page-checkout .checkout-summary {
        position: sticky !important;
        top: 90px !important;
        align-self: start !important;
        height: fit-content !important;
        max-height: calc(100vh - 110px) !important;
        overflow-y: auto !important;
    }
}

/* ============================================================
   DETAIL COMMANDE : grid responsive + article cliquable
   ============================================================ */

/* Grid principal du detail : 2 cols desktop, 1 col en dessous de 1100px */
html body.lbp-themed.lbp-themed.lbp-themed .mc-detail-grid {
    display: grid !important;
    grid-template-columns: 1fr 360px !important;
    gap: 20px !important;
    align-items: start !important;
}
@media (max-width: 1100px) {
    html body.lbp-themed.lbp-themed.lbp-themed .mc-detail-grid {
        grid-template-columns: 1fr !important;
    }
}

/* Article cliquable : lien sans soulignement, hover effet subtile */
html body.lbp-themed.lbp-themed.lbp-themed .mc-detail-article-link {
    display: block !important;
    text-decoration: none !important;
    color: inherit !important;
}
html body.lbp-themed.lbp-themed.lbp-themed .mc-detail-article-link .mc-detail-article-clickable {
    cursor: pointer !important;
    position: relative !important;
    transition: background 0.2s ease, padding 0.2s ease, transform 0.2s ease !important;
}
/* Image : transition de scale + ombre pour preparer le hover */
html body.lbp-themed.lbp-themed.lbp-themed .mc-detail-article-link .mc-detail-art-img {
    transition: transform 0.25s ease, box-shadow 0.25s ease !important;
}
/* Nom : transition de couleur */
html body.lbp-themed.lbp-themed.lbp-themed .mc-detail-article-link .mc-detail-art-name {
    transition: color 0.18s ease !important;
}
/* Fleche au bout de la carte pour signaler "cliquable" */
html body.lbp-themed.lbp-themed.lbp-themed .mc-detail-article-link .mc-detail-article-clickable::after {
    content: "→" !important;
    position: absolute !important;
    right: 0.4rem !important;
    top: 50% !important;
    transform: translateY(-50%) translateX(-8px) !important;
    font-family: var(--joy-font-script) !important;
    font-size: 1.8rem !important;
    color: var(--joy-pink) !important;
    opacity: 0 !important;
    transition: opacity 0.22s ease, transform 0.22s ease !important;
    pointer-events: none !important;
}

/* === HOVER === */
/* L'article s'illumine en pink-tint subtil, "se detache" du flux */
html body.lbp-themed.lbp-themed.lbp-themed .mc-detail-article-link:hover .mc-detail-article-clickable {
    background: var(--joy-pink-tint, rgba(255, 31, 126, 0.06)) !important;
    border-radius: 12px !important;
    padding-left: 0.8rem !important;
    padding-right: 2.5rem !important;
}
/* Image : zoom subtil + petite ombre Joy pour "decoller" */
html body.lbp-themed.lbp-themed.lbp-themed .mc-detail-article-link:hover .mc-detail-art-img {
    transform: scale(1.05) rotate(-1.5deg) !important;
    box-shadow: 3px 3px 0 0 var(--joy-pink) !important;
}
/* Nom : pink + underline anime sous le texte */
html body.lbp-themed.lbp-themed.lbp-themed .mc-detail-article-link:hover .mc-detail-art-name {
    color: var(--joy-pink) !important;
    text-decoration: underline !important;
    text-decoration-thickness: 1.5px !important;
    text-underline-offset: 3px !important;
}
/* Fleche : apparait, glisse vers la droite */
html body.lbp-themed.lbp-themed.lbp-themed .mc-detail-article-link:hover .mc-detail-article-clickable::after {
    opacity: 1 !important;
    transform: translateY(-50%) translateX(0) !important;
}
/* Active (clic) : leger feedback tactile */
html body.lbp-themed.lbp-themed.lbp-themed .mc-detail-article-link:active .mc-detail-article-clickable {
    transform: scale(0.99) !important;
}

/* Image article : style harmonise (cf. regle principale plus haut) */

/* Totaux : force flex pour Sous-total/Frais/Total alignes proprement */
html body.lbp-themed.lbp-themed.lbp-themed .mc-detail-total-row {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 1rem !important;
}
html body.lbp-themed.lbp-themed.lbp-themed .mc-detail-total-final {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    gap: 1rem !important;
    flex-wrap: nowrap !important;
}
html body.lbp-themed.lbp-themed.lbp-themed .mc-detail-total-final span {
    white-space: nowrap !important;
}

/* Responsive tablette (entre 768 et 1100px) : ajustements pour eviter ecrasement */
@media (max-width: 1100px) and (min-width: 768px) {
    body.lbp-themed.lbp-themed .mc-detail-article {
        padding: 1rem 1.2rem !important;
    }
    body.lbp-themed.lbp-themed .mc-detail-art-img {
        width: 100px !important;
        height: 100px !important;
    }
    body.lbp-themed.lbp-themed .mc-detail-art-name {
        font-size: 1rem !important;
    }
}

/* ============================================================
   DETAIL COMMANDE : wrapper articles transparent + prix joy
   ============================================================ */
html body.lbp-themed.lbp-themed.lbp-themed .mc-detail-articles-wrap {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    overflow: visible !important;
}

/* Prix de l'article : style Joy (script italic pink, white-space nowrap) */
html body.lbp-themed.lbp-themed.lbp-themed .mc-detail-art-price {
    font-family: var(--joy-font-script) !important;
    font-style: italic !important;
    font-weight: 400 !important;
    color: var(--joy-pink) !important;
    font-size: 1.3rem !important;
    white-space: nowrap !important;
}

/* Total final : meme prix script pink que la ligne */
html body.lbp-themed.lbp-themed.lbp-themed .mc-detail-total-final span {
    color: var(--joy-pink) !important;
}

/* ============================================================
   FIX : Blog hero (À LA UNE) mobile UNIQUEMENT
   Les blog-card normales ne sont PAS touchees (elles etaient bien).
   ============================================================ */
@media (max-width: 767px) {
    /* Meta : passe en column (date au-dessus, bouton dessous) sur l'hero */
    html body.lbp-themed.lbp-themed.lbp-themed .blog-hero .blog-card-meta {
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        gap: 0.8rem !important;
        padding-top: 0.8rem !important;
    }
    /* Date "par Kalina · 08 May 2026" : taille raisonnable, pas de wrap mot-par-mot */
    html body.lbp-themed.lbp-themed.lbp-themed .blog-hero .blog-card-date {
        font-size: 1rem !important;
        line-height: 1.4 !important;
        white-space: normal !important;
        text-align: left !important;
    }
    /* Bouton Lire l'article : pleine largeur, pas un cercle */
    html body.lbp-themed.lbp-themed.lbp-themed .blog-hero .btn-read {
        width: 100% !important;
        align-self: stretch !important;
        text-align: center !important;
        padding: 12px 22px !important;
        font-size: 0.95rem !important;
        border-radius: 999px !important;
        white-space: nowrap !important;
    }
}

/* ============================================================
   DETAIL COMMANDE : encadre blanc unique englobant tout le detail
   (desktop ET mobile). L'encadre porte la bordure ink et le padding.
   Les elements interieurs n'ont plus de bg/border/padding propre.
   ============================================================ */
html body.lbp-themed.lbp-themed.lbp-themed .mc-detail-wrap {
    background: white !important;
    border: 2px solid var(--joy-ink) !important;
    border-radius: 16px !important;
    padding: 24px !important;
    box-shadow: var(--joy-shadow-sm, 4px 4px 0 0 var(--joy-ink)) !important;
    box-sizing: border-box !important;
    max-width: 100% !important;
}

/* Header : pas d'encadre propre, juste un separateur du bas */
html body.lbp-themed.lbp-themed.lbp-themed .mc-detail-wrap .mc-detail-header {
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px dashed var(--joy-cream-dark, #e8e0d0) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 0 1rem !important;
    margin-bottom: 1rem !important;
}

/* Articles : neutraliser fond/bordure/padding/shadow */
html body.lbp-themed.lbp-themed.lbp-themed .mc-detail-wrap .mc-detail-articles-wrap {
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
}
html body.lbp-themed.lbp-themed.lbp-themed .mc-detail-wrap .mc-detail-article {
    background: transparent !important;
    border: 0 !important;
    border-bottom: 1px dashed var(--joy-cream-dark, #e8e0d0) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0.8rem 0 !important;
    margin: 0 !important;
}
html body.lbp-themed.lbp-themed.lbp-themed .mc-detail-wrap .mc-detail-article:last-child {
    border-bottom: 0 !important;
}

/* Totaux : pas de carte jaune, juste les chiffres */
html body.lbp-themed.lbp-themed.lbp-themed .mc-detail-wrap .mc-detail-totals {
    background: transparent !important;
    border: 0 !important;
    border-top: 1px dashed var(--joy-cream-dark, #e8e0d0) !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 1rem 0 0 !important;
    margin: 0.5rem 0 0 !important;
}

/* Personnalisation card : pas de carte, juste indentation */
html body.lbp-themed.lbp-themed.lbp-themed .mc-detail-wrap .mc-detail-perso {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0.5rem 0 0 !important;
}

/* Info-box (adresse livraison/facturation) : pas de fond */
html body.lbp-themed.lbp-themed.lbp-themed .mc-detail-wrap .mc-info-box {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
}

/* Messagerie SAV : on conserve son cadre interne car c'est un composant
   distinct fonctionnellement, mais on adoucit les bordures */
html body.lbp-themed.lbp-themed.lbp-themed .mc-detail-wrap .mc-detail-grid > div:last-child > div {
    background: transparent !important;
    border: 1px solid var(--joy-cream-dark, #e8e0d0) !important;
    border-radius: 12px !important;
    box-shadow: none !important;
}

/* ============================================================
   PAGE PRODUIT - MOBILE : ajustements specifiques
   ============================================================ */
@media (max-width: 767px) {
    /* 1. Masquer la categorie (le span avec text-transform: uppercase, letter-spacing) */
    html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-details > span:first-child {
        display: none !important;
    }

    /* 2. Espace entre le breadcrumb et l'image (margin-bottom du breadcrumb) */
    html body.lbp-themed.lbp-themed.lbp-themed .product-detail .breadcrumb {
        margin-bottom: 1.5rem !important;
    }

    /* 3. product-tagline : pas d'uppercase ni letter-spacing, taille raisonnable */
    html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-tagline,
    html body.lbp-themed.lbp-themed.lbp-themed .product-tagline {
        text-transform: none !important;
        letter-spacing: 0 !important;
        font-size: 1rem !important;
        font-weight: 400 !important;
    }

    /* 4. variant-info : font-size raisonnable */
    html body.lbp-themed.lbp-themed.lbp-themed .product-detail .variant-info,
    html body.lbp-themed.lbp-themed.lbp-themed .variant-info {
        font-size: 0.85rem !important;
        line-height: 1.4 !important;
        text-transform: none !important;
        letter-spacing: 0 !important;
    }
    html body.lbp-themed.lbp-themed.lbp-themed .product-detail .variant-info > span:last-child,
    html body.lbp-themed.lbp-themed.lbp-themed .variant-info > span:last-child {
        font-size: 0.95rem !important;
    }

    /* 5. Supprimer le padding de description-longue mobile */
    html body.lbp-themed.lbp-themed.lbp-themed .product-long-description,
    html body.lbp-themed.lbp-themed.lbp-themed section.product-long-description {
        padding: 0 !important;
    }
    html body.lbp-themed.lbp-themed.lbp-themed .product-long-description > div {
        padding: 0 !important;
    }
}

/* === MOBILE : Modale personnalisation - perso-option sans padding === */
@media (max-width: 767px) {
    html body.lbp-themed.lbp-themed.lbp-themed .perso-option-wrap {
        padding: 0 !important;
    }
}

/* === MOBILE : Breadcrumb produit reduit a "< CATEGORIE" === */
@media (max-width: 767px) {
    /* font-size 0 sur le conteneur pour effacer les nodes texte " / "
       Les enfants visibles auront leur propre font-size restaure */
    html body.lbp-themed.lbp-themed.lbp-themed.page-produit .breadcrumb {
        font-size: 0 !important;
        line-height: 1 !important;
    }
    /* Cacher tous les liens et le span (nom produit) */
    html body.lbp-themed.lbp-themed.lbp-themed.page-produit .breadcrumb > a,
    html body.lbp-themed.lbp-themed.lbp-themed.page-produit .breadcrumb > span {
        display: none !important;
    }
    /* Afficher uniquement le DERNIER <a> (categorie, ou Boutique si pas de categorie) */
    html body.lbp-themed.lbp-themed.lbp-themed.page-produit .breadcrumb > a:last-of-type {
        display: inline-flex !important;
        align-items: center !important;
        gap: 4px !important;
        font-size: 1.2rem !important;
        line-height: 1.3 !important;
        margin-bottom: 12px !important;
        text-decoration: none !important;
        color: var(--joy-cobalt, var(--joy-blue, #2461db)) !important;
        font-family: var(--joy-font-script, var(--joy-script)) !important;
        font-weight: 500 !important;
    }
    /* Ajouter une chevron "<" avant le lien */
    html body.lbp-themed.lbp-themed.lbp-themed.page-produit .breadcrumb > a:last-of-type::before {
        content: '\02039  ' !important;
        font-family: var(--joy-font-body) !important;
        font-size: 1.05rem !important;
        font-weight: 700 !important;
        margin-right: 2px !important;
        display: inline-block !important;
    }
}

/* === MOBILE : ajustements supplementaires page produit === */
@media (max-width: 767px) {
    /* 1. Media-counter : marges left + bottom */
    body.lbp-themed.lbp-themed.page-produit .media-counter {
        margin-left: 8px !important;
        margin-bottom: 8px !important;
    }

    /* 2. Perso-option : supprimer margin-bottom
       (sélecteur explicite "label.perso-option" + parent .perso-modal-card
        pour battre la règle générique ".perso-modal-card label") */
    html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card label.perso-option,
    html body.lbp-themed.lbp-themed.lbp-themed .perso-modal-card .perso-option-wrap,
    html body.lbp-themed.lbp-themed.lbp-themed .perso-option-wrap,
    html body.lbp-themed.lbp-themed.lbp-themed label.perso-option {
        margin: 0 !important;
        margin-bottom: 0 !important;
    }

    /* 3. product-long-description > div : padding 24px (override la regle precedente) */
    html body.lbp-themed.lbp-themed.lbp-themed .product-long-description > div {
        padding: 24px !important;
    }
}

/* === MOBILE : page produit - gap product-details + lien en savoir plus === */
@media (max-width: 767px) {
    html body.lbp-themed.lbp-themed.lbp-themed .product-detail .product-details {
        gap: 0.4rem !important;
    }
    html body.lbp-themed.lbp-themed.lbp-themed .product-detail .tagline-more {
        margin-bottom: 0 !important;
    }
}

/* === MOBILE : FAQ produit - padding 0 === */
@media (max-width: 767px) {
    html body.lbp-themed.lbp-themed.lbp-themed .faq-list,
    html body.lbp-themed.lbp-themed.lbp-themed .product-faq {
        padding: 0 !important;
    }
}

/* === MOBILE : reduire marge entre FAQ et related-products + subtitle === */
@media (max-width: 767px) {
    html body.lbp-themed.lbp-themed.lbp-themed .related-products {
        padding-top: 1rem !important;
        margin-top: 0 !important;
    }
    html body.lbp-themed.lbp-themed.lbp-themed .product-faq {
        margin-bottom: 0 !important;
        padding-bottom: 0.5rem !important;
    }
    html body.lbp-themed.lbp-themed.lbp-themed .related-products .section-subtitle {
        font-size: 1.4rem !important;
    }
}

/* === DESKTOP + MOBILE : fleches related-products en couleur ink === */
html body.lbp-themed.lbp-themed.lbp-themed .related-products .related-arrow svg {
    color: var(--joy-ink) !important;
    stroke: var(--joy-ink) !important;
}

/* === MOBILE : accueil hero - badge avis centre sous la location === */
@media (max-width: 767px) {
    html body.lbp-themed.lbp-themed.lbp-themed .hero-reviews-badge {
        position: static !important;
        bottom: auto !important;
        right: auto !important;
        margin: 1rem auto 0 !important;
        display: inline-flex !important;
        align-self: center !important;
    }
    /* Le parent header doit centrer le badge en flex column si possible */
    html body.lbp-themed.lbp-themed.lbp-themed .hero {
        text-align: center !important;
    }
}

/* === MOBILE : accueil - featured-products section-header gap + marge produits === */
@media (max-width: 767px) {
    html body.lbp-themed.lbp-themed.lbp-themed .featured-products .section-header {
        gap: 1rem !important;
        margin-bottom: 24px !important;
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }
}

/* === MOBILE : accueil - reduire marge entre hero et featured-products === */
@media (max-width: 767px) {
    body.lbp-themed.lbp-themed .featured-products {
        padding-top: 1.5rem !important;
        margin-top: 0 !important;
    }
}

/* === MOBILE : accueil - padding hero === */
@media (max-width: 767px) {
    body.lbp-themed.lbp-themed .hero,
    body.lbp-themed.lbp-themed header.hero {
        padding: 2rem 1.5rem 2rem !important;
    }
}

/* === MOBILE : ajustements accueil + FAQ === */
@media (max-width: 767px) {
    /* 1. Section collections : marge en haut */
    html body.lbp-themed.lbp-themed.lbp-themed .collections {
        margin-top: 32px !important;
    }

    /* 2. Custom orders : header centre */
    html body.lbp-themed.lbp-themed.lbp-themed .custom-orders .section-header,
    body.lbp-themed.lbp-themed .custom-orders .section-header {
        text-align: center !important;
        align-items: center !important;
        justify-content: center !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
    body.lbp-themed.lbp-themed section.custom-orders .section-label,
    body.lbp-themed.lbp-themed section.custom-orders .section-title,
    body.lbp-themed.lbp-themed section.custom-orders .section-subtitle {
        text-align: center !important;
    }

    /* 3. Product-faq : margin-bottom (espace apres le bloc) */
    html body.lbp-themed.lbp-themed.lbp-themed .product-faq {
        margin-bottom: 2rem !important;
    }

    /* 4. Faq-list : padding left & right (overrride padding:0 precedent) */
    html body.lbp-themed.lbp-themed.lbp-themed .faq-list {
        padding-left: 1rem !important;
        padding-right: 1rem !important;
    }
}

/* === MOBILE : accueil - desactiver transitions/animations location-highlight + badge avis === */
@media (max-width: 767px) {
    html body.lbp-themed.lbp-themed.lbp-themed .location-highlight,
    html body.lbp-themed.lbp-themed.lbp-themed .location-highlight *,
    html body.lbp-themed.lbp-themed.lbp-themed .hero-reviews-badge,
    html body.lbp-themed.lbp-themed.lbp-themed .hero-reviews-badge * {
        transition: none !important;
        animation: none !important;
        transform: none !important;
    }
}

/* === MOBILE : custom-orders header - centrer (override de la regle desktop a spec elevee) === */
@media (max-width: 767px) {
    body.lbp-themed.lbp-themed .custom-orders .section-header .section-label,
    body.lbp-themed.lbp-themed .custom-orders .section-header .section-title,
    body.lbp-themed.lbp-themed .custom-orders .section-header .section-subtitle {
        text-align: center !important;
    }
}

/* === MOBILE : product-card titres - font-size 1.2rem === */
@media (max-width: 767px) {
    html body.lbp-themed.lbp-themed.lbp-themed .product-card .product-info h3,
    html body.lbp-themed.lbp-themed.lbp-themed .product-card .product-name {
        font-size: 1.2rem !important;
    }
}

/* === MOBILE : boutique-search-input expand - empecher debordement === */
@media (max-width: 767px) {
    /* Le parent .boutique-tools devient l'ancre de positionnement (au lieu du form) */
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-filters-bar .boutique-tools {
        position: relative !important;
    }
    /* Le form n'est plus l'ancre */
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-filters-bar .boutique-search-form {
        position: static !important;
    }
    /* Input expand : etire entre les bords du .boutique-tools sans deborder */
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-filters-bar .boutique-search-form[data-expanded="true"] .boutique-search-input {
        position: absolute !important;
        left: 0 !important;
        right: 0 !important;
        top: 100% !important;
        margin-top: 0.4rem !important;
        width: auto !important;
        max-width: none !important;
        box-sizing: border-box !important;
        padding: 0.6rem 1rem !important;
        border: 2px solid var(--joy-ink, #2c1810) !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        background: var(--joy-cream-soft, #fef9eb) !important;
    }
    /* Input cache : reset les left/right pour ne pas occuper d'espace */
    html body.lbp-themed.lbp-themed.lbp-themed .boutique-filters-bar .boutique-search-form .boutique-search-input {
        position: absolute !important;
        left: 0 !important;
        right: auto !important;
        top: 100% !important;
        width: 0 !important;
        max-width: 0 !important;
        padding: 0 !important;
        border: none !important;
        opacity: 0 !important;
        pointer-events: none !important;
    }
}

/* ============================================================
   SECTION PARTENAIRES & ORGANISATEURS (page detail evenement)
   ============================================================ */
body.lbp-themed.lbp-themed .event-partenaires {
    background: var(--joy-cream);
    padding: 3.5rem 5% 4rem;
    border-top: 2px dashed var(--joy-cream-dark, #e8e0d0);
}
body.lbp-themed.lbp-themed .event-partenaires-inner {
    max-width: 1000px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 3rem;
    align-items: center;
}
body.lbp-themed.lbp-themed .event-partenaires-group {
    display: flex;
    flex-direction: column;
    gap: 1.6rem;
    text-align: center;
    width: 100%;
}
/* Titre avec petits chevrons decoratifs de chaque cote */
body.lbp-themed.lbp-themed .event-partenaires-title {
    font-family: var(--joy-font-script);
    font-size: 1.8rem;
    color: var(--joy-cobalt, var(--joy-blue, #2461db));
    margin: 0 auto;
    text-align: center;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
    display: inline-flex;
    align-items: center;
    gap: 0.8rem;
}
body.lbp-themed.lbp-themed .event-partenaires-title::before,
body.lbp-themed.lbp-themed .event-partenaires-title::after {
    content: '';
    display: inline-block;
    width: 40px;
    height: 2px;
    background: var(--joy-cobalt, var(--joy-blue, #2461db));
    opacity: 0.4;
    border-radius: 2px;
}
body.lbp-themed.lbp-themed .event-partenaires-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    align-items: stretch;
    justify-content: center;
    max-width: 100%;
}
body.lbp-themed.lbp-themed .event-partenaire-card {
    background: white;
    border: 2px solid var(--joy-ink);
    border-radius: 14px;
    box-shadow: 4px 4px 0 0 var(--joy-ink);
    padding: 1.5rem 1.2rem 1.2rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.6rem;
    text-decoration: none;
    color: var(--joy-ink);
    width: 180px;
    min-height: 160px;
    transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}
/* Rotation polaroid alternee pour donner du caractere */
body.lbp-themed.lbp-themed .event-partenaires-grid > .event-partenaire-card:nth-child(odd) {
    transform: rotate(-1.2deg);
}
body.lbp-themed.lbp-themed .event-partenaires-grid > .event-partenaire-card:nth-child(even) {
    transform: rotate(1deg);
}
body.lbp-themed.lbp-themed a.event-partenaire-card:hover {
    transform: rotate(0deg) translate(-2px, -2px) !important;
    box-shadow: 6px 6px 0 0 var(--joy-pink) !important;
    border-color: var(--joy-pink) !important;
}
body.lbp-themed.lbp-themed .event-partenaire-logo {
    max-width: 100%;
    max-height: 80px;
    object-fit: contain;
    display: block;
    margin-bottom: 0.2rem;
}
body.lbp-themed.lbp-themed .event-partenaire-nom {
    font-family: var(--joy-font-body);
    font-size: 0.88rem;
    color: var(--joy-ink);
    text-align: center;
    line-height: 1.3;
    font-weight: 700;
}
@media (max-width: 767px) {
    body.lbp-themed.lbp-themed .event-partenaires {
        padding: 2rem 1rem 2.5rem;
    }
    body.lbp-themed.lbp-themed .event-partenaires-inner {
        gap: 2rem;
    }
    body.lbp-themed.lbp-themed .event-partenaires-title {
        font-size: 1.4rem;
    }
    body.lbp-themed.lbp-themed .event-partenaires-title::before,
    body.lbp-themed.lbp-themed .event-partenaires-title::after {
        width: 24px;
    }
    body.lbp-themed.lbp-themed .event-partenaires-grid {
        gap: 0.9rem;
    }
    body.lbp-themed.lbp-themed .event-partenaire-card {
        width: calc(50% - 0.5rem);
        min-height: 130px;
        padding: 1rem 0.7rem 0.8rem;
    }
    body.lbp-themed.lbp-themed .event-partenaire-logo {
        max-height: 55px;
    }
}

/* ============================================================
   PROCHAINS EVENEMENTS (sur page detail evenement) : reprise du
   style .event-card de la page liste, centre et bordure haut
   ============================================================ */
body.lbp-themed.lbp-themed .event-prochains-section {
    background: var(--joy-cream);
    padding: 3.5rem 5% 4rem;
    border-top: 2px dashed var(--joy-cream-dark, #e8e0d0);
}
body.lbp-themed.lbp-themed .event-prochains-inner {
    max-width: 1200px;
    margin: 0 auto;
}
body.lbp-themed.lbp-themed .event-prochains-title {
    font-family: var(--joy-font-display);
    font-size: 2.4rem;
    color: var(--joy-ink);
    text-align: center;
    margin: 0 0 2.5rem;
    line-height: 1.1;
}
body.lbp-themed.lbp-themed .event-prochains-grid {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 2rem !important;
    grid-template-columns: none !important;
    max-width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
}
body.lbp-themed.lbp-themed .event-prochains-grid > .event-card-link {
    width: 320px;
    max-width: 100%;
    display: block;
    text-decoration: none;
}
body.lbp-themed.lbp-themed .event-prochains-grid > .event-card-link > .event-card {
    height: 100% !important;
}
/* Rotation polaroid alternee sur les cards */
body.lbp-themed.lbp-themed .event-prochains-grid > .event-card-link:nth-child(odd) > .event-card {
    transform: rotate(-1deg);
}
body.lbp-themed.lbp-themed .event-prochains-grid > .event-card-link:nth-child(even) > .event-card {
    transform: rotate(1deg) translateY(0.4rem);
}
body.lbp-themed.lbp-themed .event-prochains-grid > .event-card-link:hover > .event-card {
    transform: rotate(0deg) translateY(-6px) !important;
}
@media (max-width: 767px) {
    body.lbp-themed.lbp-themed .event-prochains-section {
        padding: 2rem 1rem 2.5rem;
    }
    body.lbp-themed.lbp-themed .event-prochains-title {
        font-size: 1.8rem;
        margin-bottom: 1.5rem;
    }
    body.lbp-themed.lbp-themed .event-prochains-grid {
        gap: 1.25rem;
    }
    body.lbp-themed.lbp-themed .event-prochains-grid > .event-card-link {
        width: 100%;
    }
}

/* ============================================================
   LOGO ORGANISATEUR DANS LE HERO : badge compact, haut a droite
   ============================================================ */
body.lbp-themed.lbp-themed main[data-joy-color] .event-hero {
    position: relative;
}
body.lbp-themed.lbp-themed .event-hero-orga {
    position: absolute !important;
    top: calc(1.5rem + var(--lbp-logo-h, 50px) + 1rem);
    right: 1.5rem;
    background: white;
    border: 2px solid var(--joy-ink);
    border-radius: 14px;
    box-shadow: 3px 3px 0 0 var(--joy-ink);
    padding: 0.5rem 0.8rem 0.6rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.3rem;
    max-width: 140px;
    z-index: 5;
}
body.lbp-themed.lbp-themed .event-hero-orga-label {
    font-family: var(--joy-font-body);
    font-size: 0.65rem;
    color: var(--joy-ink-soft, #555);
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
    margin: 0;
    line-height: 1;
}
body.lbp-themed.lbp-themed .event-hero-orga-link {
    display: block;
    line-height: 0;
    text-decoration: none;
}
body.lbp-themed.lbp-themed .event-hero-orga-logo {
    max-width: 100px;
    max-height: 50px;
    width: auto;
    height: auto;
    object-fit: contain;
    display: block;
}
@media (max-width: 767px) {
    body.lbp-themed.lbp-themed .event-hero-orga {
        top: calc(1rem + var(--lbp-logo-h, 50px) + 0.6rem);
        right: 1rem;
        padding: 0.4rem 0.6rem 0.5rem;
        max-width: 100px;
    }
    body.lbp-themed.lbp-themed .event-hero-orga-label {
        font-size: 0.58rem;
    }
    body.lbp-themed.lbp-themed .event-hero-orga-logo {
        max-width: 75px;
        max-height: 38px;
    }
}

/* === MOBILE : event-card content - padding compact + gap === */
@media (max-width: 767px) {
    body.lbp-themed.lbp-themed .event-card .event-content,
    body.lbp-themed.lbp-themed .event-content {
        padding: 1rem !important;
        gap: 12px !important;
    }
}

/* ============================================================
   SECTION "ILS ME SOUTIENNENT" (homepage, juste avant le footer)
   ============================================================ */
body.lbp-themed.lbp-themed .soutiens-section {
    background: var(--joy-cream);
    padding: 4rem 5% 4.5rem;
    border-top: 2px dashed var(--joy-cream-dark, #e8e0d0);
}
body.lbp-themed.lbp-themed .soutiens-inner {
    max-width: 1100px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
    align-items: center;
}
body.lbp-themed.lbp-themed .soutiens-header {
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    align-items: center;
}
body.lbp-themed.lbp-themed .soutiens-label {
    font-family: var(--joy-font-body);
    font-size: 0.85rem;
    color: var(--joy-cobalt, var(--joy-blue, #2461db));
    text-transform: uppercase;
    letter-spacing: 0.15em;
    font-weight: 700;
}
body.lbp-themed.lbp-themed .soutiens-title {
    font-family: var(--joy-font-display);
    font-size: 2.4rem;
    color: var(--joy-ink);
    margin: 0;
    line-height: 1.1;
    font-weight: 400;
}
body.lbp-themed.lbp-themed .soutiens-subtitle {
    font-family: var(--joy-font-body);
    font-size: 1rem;
    color: var(--joy-ink-soft, #555);
    margin: 0;
    max-width: 600px;
    line-height: 1.5;
}
body.lbp-themed.lbp-themed .soutiens-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1.5rem;
    width: 100%;
}
body.lbp-themed.lbp-themed .soutien-card {
    background: white;
    border: 2px solid var(--joy-ink);
    border-radius: 14px;
    box-shadow: 4px 4px 0 0 var(--joy-ink);
    padding: 1.5rem 1.2rem 1.2rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    text-decoration: none;
    color: var(--joy-ink);
    width: 180px;
    min-height: 160px;
    transition: transform 0.22s ease, box-shadow 0.22s ease, border-color 0.22s ease;
}
body.lbp-themed.lbp-themed .soutiens-grid > .soutien-card:nth-child(odd) {
    transform: rotate(-1deg);
}
body.lbp-themed.lbp-themed .soutiens-grid > .soutien-card:nth-child(even) {
    transform: rotate(1deg);
}
body.lbp-themed.lbp-themed a.soutien-card:hover {
    transform: rotate(0deg) translate(-2px, -2px) !important;
    box-shadow: 6px 6px 0 0 var(--joy-pink) !important;
    border-color: var(--joy-pink) !important;
}
body.lbp-themed.lbp-themed .soutien-logo {
    max-width: 100%;
    max-height: 80px;
    object-fit: contain;
    display: block;
    margin-bottom: 0.2rem;
}
body.lbp-themed.lbp-themed .soutien-nom {
    font-family: var(--joy-font-body);
    font-size: 0.85rem;
    color: var(--joy-ink);
    text-align: center;
    line-height: 1.3;
    font-weight: 700;
}
@media (max-width: 767px) {
    body.lbp-themed.lbp-themed .soutiens-section {
        padding: 2.5rem 1rem 3rem;
    }
    body.lbp-themed.lbp-themed .soutiens-title {
        font-size: 1.8rem;
    }
    body.lbp-themed.lbp-themed .soutiens-grid {
        gap: 1rem;
    }
    body.lbp-themed.lbp-themed .soutien-card {
        width: calc(50% - 0.5rem);
        min-height: 130px;
        padding: 1rem 0.7rem 0.8rem;
    }
    body.lbp-themed.lbp-themed .soutien-logo {
        max-height: 55px;
    }
}

/* === FAQ + Pages legales : centrer UNIQUEMENT les textes/titres dans le hero ===
   - On NE touche PAS .page-hero (decorations, fond, padding restent intacts)
   - h1 et p prennent toute la largeur du hero et leur texte est centre */
html body.lbp-themed.lbp-themed.lbp-themed.page-faq .page-hero h1,
html body.lbp-themed.lbp-themed.lbp-themed.page-faq .page-hero p,
html body.lbp-themed.lbp-themed.lbp-themed.page-mentions-legales .page-hero h1,
html body.lbp-themed.lbp-themed.lbp-themed.page-mentions-legales .page-hero p,
html body.lbp-themed.lbp-themed.lbp-themed.page-cgv .page-hero h1,
html body.lbp-themed.lbp-themed.lbp-themed.page-cgv .page-hero p,
html body.lbp-themed.lbp-themed.lbp-themed.page-confidentialite .page-hero h1,
html body.lbp-themed.lbp-themed.lbp-themed.page-confidentialite .page-hero p,
html body.lbp-themed.lbp-themed.lbp-themed.page-contact .page-hero h1,
html body.lbp-themed.lbp-themed.lbp-themed.page-contact .page-hero p {
    max-width: 60% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
}

/* Mobile : on relâche pour rester lisible sur petit écran */
@media (max-width: 767px) {
    html body.lbp-themed.lbp-themed.lbp-themed.page-faq .page-hero h1,
    html body.lbp-themed.lbp-themed.lbp-themed.page-faq .page-hero p,
    html body.lbp-themed.lbp-themed.lbp-themed.page-mentions-legales .page-hero h1,
    html body.lbp-themed.lbp-themed.lbp-themed.page-mentions-legales .page-hero p,
    html body.lbp-themed.lbp-themed.lbp-themed.page-cgv .page-hero h1,
    html body.lbp-themed.lbp-themed.lbp-themed.page-cgv .page-hero p,
    html body.lbp-themed.lbp-themed.lbp-themed.page-confidentialite .page-hero h1,
    html body.lbp-themed.lbp-themed.lbp-themed.page-confidentialite .page-hero p,
    html body.lbp-themed.lbp-themed.lbp-themed.page-contact .page-hero h1,
    html body.lbp-themed.lbp-themed.lbp-themed.page-contact .page-hero p {
        max-width: 90% !important;
    }
}

/* === HEADER DESKTOP : hide-on-scroll-down, show-on-scroll-up === */
@media (min-width: 768px) {
    body nav#mainNav {
        transition: transform 0.28s ease !important;
        will-change: transform;
    }
    body nav#mainNav.nav-hidden {
        transform: translateY(-100%) !important;
    }
}

/* ============================================================
   ARTICLE - section "Ces articles pourraient vous interesser"
   (les cartes reutilisent EXACTEMENT le style .blog-card du blog)
   Layout : carousel horizontal avec fleches + decalage zigzag vertical
   ============================================================ */
body.lbp-themed.lbp-themed.page-article .related-articles {
    background: var(--joy-cream);
    padding: 4.5rem 0 5rem;
    margin-top: 3rem;
    border-top: 2px dashed rgba(44, 24, 16, 0.10);
}
body.lbp-themed.lbp-themed.page-article .related-articles .container {
    max-width: 1300px;
    margin: 0 auto;
    padding: 0;
}
body.lbp-themed.lbp-themed.page-article .related-articles-header {
    text-align: center;
    margin-bottom: 2.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    align-items: center;
    padding: 0 1.5rem;
}
body.lbp-themed.lbp-themed.page-article .related-articles-eyebrow {
    font-family: var(--joy-font-body);
    font-size: 0.78rem;
    color: var(--joy-cobalt, var(--joy-blue));
    text-transform: uppercase;
    letter-spacing: 0.18em;
    font-weight: 700;
}
body.lbp-themed.lbp-themed.page-article .related-articles h3 {
    font-family: var(--joy-font-display);
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    color: var(--joy-ink);
    margin: 0;
    line-height: 1.15;
    font-weight: 400;
}

/* === Slider wrap : conteneur des fleches + grille === */
body.lbp-themed.lbp-themed.page-article .related-articles-slider {
    position: relative;
    width: 100%;
    margin: 0;
    padding: 0;
}

/* La blog-grid devient un FLEX horizontal scrollable (override de la grille classique) */
html body.lbp-themed.lbp-themed.lbp-themed.page-article .related-articles-slider .blog-grid {
    display: flex !important;
    flex-wrap: nowrap !important;
    gap: 2rem !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    scroll-behavior: smooth !important;
    scroll-snap-type: x mandatory !important;
    padding: 2rem 3rem 3rem !important;
    margin: 0 !important;
    max-width: none !important;
    width: 100% !important;
    box-sizing: border-box !important;
    grid-template-columns: none !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
    align-items: flex-start !important;
}
html body.lbp-themed.lbp-themed.lbp-themed.page-article .related-articles-slider .blog-grid::-webkit-scrollbar {
    display: none !important;
}

/* Cards : taille fixe + scroll-snap */
html body.lbp-themed.lbp-themed.lbp-themed.page-article .related-articles-slider .blog-grid > .blog-card {
    flex: 0 0 calc(85% - 1rem) !important;
    max-width: 360px !important;
    min-width: 260px !important;
    scroll-snap-align: start !important;
}
@media (min-width: 640px) {
    html body.lbp-themed.lbp-themed.lbp-themed.page-article .related-articles-slider .blog-grid > .blog-card {
        flex: 0 0 calc(50% - 1rem) !important;
    }
}
@media (min-width: 1024px) {
    html body.lbp-themed.lbp-themed.lbp-themed.page-article .related-articles-slider .blog-grid > .blog-card {
        flex: 0 0 calc(33.33% - 1.4rem) !important;
    }
}

/* === DECALAGE ZIGZAG VERTICAL (un haut, un plus bas, un haut...) === */
/* Override de la rotation par defaut des blog-card pour combiner rotation + translateY */
html body.lbp-themed.lbp-themed.lbp-themed.page-article .related-articles-slider .blog-grid > .blog-card:nth-child(odd) {
    transform: rotate(-1deg) translateY(0) !important;
}
html body.lbp-themed.lbp-themed.lbp-themed.page-article .related-articles-slider .blog-grid > .blog-card:nth-child(even) {
    transform: rotate(1deg) translateY(2.5rem) !important;
}
html body.lbp-themed.lbp-themed.lbp-themed.page-article .related-articles-slider .blog-grid > .blog-card:hover {
    transform: rotate(0deg) translateY(-6px) !important;
}
html body.lbp-themed.lbp-themed.lbp-themed.page-article .related-articles-slider .blog-grid > .blog-card:nth-child(even):hover {
    transform: rotate(0deg) translateY(calc(2.5rem - 6px)) !important;
}

/* Si pas d'overflow (peu d'articles), centrer */
html body.lbp-themed.lbp-themed.lbp-themed.page-article .related-articles-slider.is-not-overflowing .blog-grid {
    justify-content: center !important;
    overflow-x: visible !important;
}
html body.lbp-themed.lbp-themed.lbp-themed.page-article .related-articles-slider.is-not-overflowing .related-arrow {
    display: none !important;
}

/* === FLECHES de navigation === */
body.lbp-themed.lbp-themed.page-article .related-articles-slider .related-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--joy-cream-soft, white);
    border: 2px solid var(--joy-ink);
    color: var(--joy-ink);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 3px 3px 0 0 var(--joy-ink);
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}
body.lbp-themed.lbp-themed.page-article .related-articles-slider .related-prev {
    left: 0.5rem;
}
body.lbp-themed.lbp-themed.page-article .related-articles-slider .related-next {
    right: 0.5rem;
}
body.lbp-themed.lbp-themed.page-article .related-articles-slider .related-arrow:hover {
    background: var(--joy-pink);
    color: white;
    transform: translateY(-50%) translate(-2px, -2px);
    box-shadow: 5px 5px 0 0 var(--joy-ink);
}
body.lbp-themed.lbp-themed.page-article .related-articles-slider .related-arrow svg {
    color: inherit;
    stroke: currentColor;
}
@media (min-width: 1024px) {
    body.lbp-themed.lbp-themed.page-article .related-articles-slider .related-prev {
        left: 1rem;
    }
    body.lbp-themed.lbp-themed.page-article .related-articles-slider .related-next {
        right: 1rem;
    }
}

/* Mobile : ajustements */
@media (max-width: 767px) {
    body.lbp-themed.lbp-themed.page-article .related-articles {
        padding: 3rem 0 3.5rem;
    }
    html body.lbp-themed.lbp-themed.lbp-themed.page-article .related-articles-slider .blog-grid {
        padding: 1.5rem 1rem 2.5rem !important;
        gap: 1.2rem !important;
    }
    html body.lbp-themed.lbp-themed.lbp-themed.page-article .related-articles-slider .blog-grid > .blog-card:nth-child(even) {
        transform: rotate(1deg) translateY(1.2rem) !important;
    }
    html body.lbp-themed.lbp-themed.lbp-themed.page-article .related-articles-slider .blog-grid > .blog-card:nth-child(even):hover {
        transform: rotate(0deg) translateY(calc(1.2rem - 6px)) !important;
    }
    /* Sur mobile les fleches sont moins utiles (swipe natif) */
    body.lbp-themed.lbp-themed.page-article .related-articles-slider .related-arrow {
        width: 38px;
        height: 38px;
    }
}


/* ============================================================
   AJOUTS MAI 2026 : nouveau systeme grid/carousel articles lies
   - .related-articles.is-grid-mode : grid simple si <=3 articles
   - .related-articles.is-carousel-mode : scroll horizontal si >3
   - .related-articles-footer + .related-articles-more-link : bouton "Voir tous les articles"
   ============================================================ */

/* Force la grille simple en mode <=3 articles (override le flex carousel par defaut) */
body.lbp-themed.lbp-themed .related-articles.is-grid-mode .blog-grid {
    display: grid !important;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)) !important;
    flex-wrap: initial !important;
    overflow-x: visible !important;
    scroll-snap-type: none !important;
    max-width: 1100px !important;
    margin: 0 auto !important;
}

body.lbp-themed.lbp-themed .related-articles.is-grid-mode .blog-grid .blog-card {
    flex: initial !important;
    scroll-snap-align: none !important;
}

/* Cache les fleches si pas en mode carousel */
body.lbp-themed.lbp-themed .related-articles.is-grid-mode .related-arrow {
    display: none !important;
}

/* Footer "Voir tous les articles" - style polaroid Joy avec rotation */
body.lbp-themed.lbp-themed .related-articles-footer {
    text-align: center !important;
    margin-top: clamp(2rem, 4vw, 3rem) !important;
}

body.lbp-themed.lbp-themed .related-articles-more-link {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0.6rem !important;
    padding: 0.95rem 2rem !important;
    background: var(--joy-cream, #FBF1DD) !important;
    color: var(--joy-ink, #2C1810) !important;
    border: 2px solid var(--joy-ink, #2C1810) !important;
    border-radius: 999px !important;
    font-family: var(--joy-font-body, 'DM Sans'), sans-serif !important;
    font-size: 0.88rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.14em !important;
    text-decoration: none !important;
    box-shadow: 4px 4px 0 0 var(--joy-ink, #2C1810) !important;
    transition: transform 0.2s, box-shadow 0.2s !important;
}

body.lbp-themed.lbp-themed .related-articles-more-link:hover {
    transform: translate(-2px, -2px) !important;
    box-shadow: 6px 6px 0 0 var(--joy-ink, #2C1810) !important;
    background: var(--joy-pink, #FF1F7E) !important;
    color: var(--joy-cream, #FBF1DD) !important;
}

body.lbp-themed.lbp-themed .related-articles-more-link svg {
    transition: transform 0.25s !important;
}

body.lbp-themed.lbp-themed .related-articles-more-link:hover svg {
    transform: translateX(3px) !important;
}

/* Sticky cart : la balise <picture> doit suivre la hauteur du container */
body.lbp-themed.lbp-themed .sticky-cart-product picture {
    width: auto;
    height: 100%;
}

/* =========================================================================
   PAGE CONTACT - Touches Joy exclusives (decorations + polaroids signature)
   ========================================================================= */

/* Tagline sous le H1 en script rose sur la page-hero
   (le centrage h1 + p est gere par le groupe FAQ/pages legales plus haut) */
body.lbp-themed.lbp-themed.page-contact .page-hero-tagline {
    font-family: var(--joy-font-script);
    font-size: 1.6rem;
    color: var(--joy-pink);
    line-height: 1.35;
    margin: 8px auto 0;
    font-weight: 400;
    text-align: center;
}

/* Card formulaire avec ombre douce + bordure creme */
body.lbp-themed.lbp-themed.page-contact .contact-form {
    border: 1px solid var(--joy-cream-deep);
    box-shadow: 0 4px 18px rgba(44, 44, 44, 0.06), 0 1px 3px rgba(44, 44, 44, 0.04);
}

/* Marigold orange en haut a droite du formulaire (animation wiggle) */
body.lbp-themed.lbp-themed.page-contact .contact-form::before {
    content: '';
    position: absolute;
    top: -32px;
    right: -22px;
    width: clamp(70px, 9vw, 110px);
    aspect-ratio: 1;
    background-image: var(--joy-img-marigold);
    background-size: contain;
    background-repeat: no-repeat;
    pointer-events: none;
    z-index: 2;
    animation: joy-wiggle 4s ease-in-out infinite;
    opacity: 0.92;
}

/* Anemone violette en bas a gauche (animation float) */
body.lbp-themed.lbp-themed.page-contact .contact-form::after {
    content: '';
    position: absolute;
    bottom: -34px;
    left: -28px;
    width: clamp(85px, 11vw, 140px);
    aspect-ratio: 1;
    background-image: var(--joy-img-anemone-2);
    background-size: contain;
    background-repeat: no-repeat;
    pointer-events: none;
    z-index: 2;
    animation: joy-float 7s ease-in-out infinite;
    opacity: 0.85;
}

/* Legend du fieldset en script rose */
body.lbp-themed.lbp-themed.page-contact .contact-form legend {
    font-family: var(--joy-font-script);
    color: var(--joy-pink);
    font-size: 1.55rem;
    font-weight: 400;
    margin-bottom: 12px;
}

/* RADIO CARDS : polaroid signature Joy (zigzag rotation) */
body.lbp-themed.lbp-themed.page-contact .contact-form .radio-card {
    box-shadow: 3px 3px 0 0 var(--joy-ink, #2c2c2c);
    border-radius: 6px;
    transition: transform 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
    background: white;
}

body.lbp-themed.lbp-themed.page-contact .contact-form .radio-card:nth-child(1) {
    transform: rotate(-1.5deg);
}
body.lbp-themed.lbp-themed.page-contact .contact-form .radio-card:nth-child(2) {
    transform: rotate(1.5deg);
}

body.lbp-themed.lbp-themed.page-contact .contact-form .radio-card:hover {
    transform: rotate(0) translateY(-3px);
    box-shadow: 5px 5px 0 0 var(--joy-pink);
}

body.lbp-themed.lbp-themed.page-contact .contact-form .radio-card.checked {
    background: var(--joy-cream);
    border-color: var(--joy-pink);
    box-shadow: 5px 5px 0 0 var(--joy-pink);
    transform: rotate(0);
}

body.lbp-themed.lbp-themed.page-contact .contact-form .radio-card .title {
    font-family: var(--joy-font-display);
    font-weight: 400;
    font-size: 1.1rem;
}

/* Bloc devis sur-mesure : bordure pointillee + papillon vintage */
body.lbp-themed.lbp-themed.page-contact .contact-form .devis-block {
    border: 1px dashed var(--joy-pink);
    background: var(--joy-cream);
    overflow: hidden;
}

body.lbp-themed.lbp-themed.page-contact .contact-form .devis-block::before {
    content: '';
    position: absolute;
    top: -20px;
    right: -16px;
    width: 90px;
    aspect-ratio: 1;
    background-image: var(--joy-img-butterfly-vintage);
    background-size: contain;
    background-repeat: no-repeat;
    pointer-events: none;
    opacity: 0.65;
    animation: joy-wiggle 5s ease-in-out infinite;
    z-index: 1;
}

/* Titre du bloc devis en script Caveat */
body.lbp-themed.lbp-themed.page-contact .contact-form .devis-block h3 {
    font-family: var(--joy-font-script);
    color: var(--joy-pink);
    font-size: 1.9rem;
    font-weight: 400;
    position: relative;
    z-index: 2;
}

/* Bouton Envoyer plus marque */
body.lbp-themed.lbp-themed.page-contact .contact-form button[type="submit"] {
    background: var(--joy-pink);
    color: white;
    border: none;
    border-radius: 8px;
    font-weight: 600;
    letter-spacing: 0.02em;
    box-shadow: 0 2px 6px rgba(233, 30, 99, 0.28);
    transition: transform 0.15s, box-shadow 0.15s, background 0.15s;
}

body.lbp-themed.lbp-themed.page-contact .contact-form button[type="submit"]:hover {
    background: var(--joy-pink-deep);
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(233, 30, 99, 0.38);
}

/* ============================================================
   PASTILLE DE STATUT DES CARTES EVENEMENT - ETAT "EN COURS"
   ============================================================
   La pastille en haut a droite des cartes evenement est un ::after sur
   .event-date. Elle ne connaissait que deux textes :
       .event-card              -> 'A VENIR'   (voir ligne ~14993)
       .event-card.passed       -> 'PASSE'     (voir ligne ~15008)
   Un evenement DEJA COMMENCE tombait donc dans le cas par defaut et
   affichait 'A VENIR', alors que sa fiche detail affichait 'En cours'.

   La classe .en-cours est posee par evenements.php et evenement.php a
   partir de lbp_evenement_statut().

   Regle placee en FIN DE FICHIER et classe doublee (.en-cours.en-cours)
   pour passer devant .event-card.has-cover .event-date::after (ligne
   ~15201), qui force background/color en !important sur les cartes
   ayant une image de couverture.
   ============================================================ */
body.lbp-themed.lbp-themed .event-card.en-cours.en-cours .event-date::after {
    content: 'EN COURS';
    /* Vert du theme assombri : --joy-green (oklch 0.62) sur texte creme ne
       donne que 3.28:1, sous le seuil WCAG AA de 4.5:1 pour du texte de
       11px. A 0.52 de clarte on obtient 5.01:1, meme famille de vert. */
    background: oklch(0.52 0.16 145) !important;
    color: var(--joy-cream-soft) !important;
    border-color: var(--joy-ink) !important;
    opacity: 1;
}
