/* ============================================================
   LV MEDIAS — Unified Stylesheet
   Version : Phase 2 — Juin 2026
   ============================================================

   SOMMAIRE :
   ──────────────────────────────────────────────────────────────
   1.  RESET & BASE ............... Reset, body, typo, liens
   2.  VARIABLES CSS .............. :root — couleurs, typo, spacing
   3.  LAYOUT UTILS ............... .lvm-container, .lvm-grid, .lvm-section
   4.  HEADER ..................... Navigation, logo, actions, drawers
   5.  MOBILE NAV ................. Hamburger, overlay plein écran (≤1300px)
   6.  BREADCRUMB ................. Fil d'Ariane custom
   7.  HOMEPAGE — HERO ............ Section hero principal
   8.  HOMEPAGE — SLIDER .......... Carrousel couvertures "À LA UNE"
   9.  HOMEPAGE — MAGAZINE VEDETTE  Section 2 colonnes vedette
   10. HOMEPAGE — CORPORATE ....... Bloc B2B régie publicitaire
   11. HOMEPAGE — NUMERO OFFERT ... Bloc numéro gratuit
   12. HOMEPAGE — NEWSLETTER ...... Section inscription newsletter
   13. HOMEPAGE — KIOSQUE VIP ..... Bandeau image cliquable
   14. HOMEPAGE — BANDEAU PUB ..... Carousel annonceurs (fade JS)
   15. HOMEPAGE — MARQUEE ......... Slider partenaires infinite scroll
   16. HOMEPAGE — ACTUALITÉS ...... 5 derniers articles en grille
   17. FOOTER ..................... 4 colonnes, social, copyright
   18. WOOCOMMERCE — PRODUIT ...... Fiche produit single (2 colonnes)
   19. WOOCOMMERCE — GRILLE ....... Cards produit (content-product)
   20. WOOCOMMERCE — PANIER ....... Page panier
   21. WOOCOMMERCE — CHECKOUT ..... Page commande
   22. WOOCOMMERCE — MON COMPTE ... Dashboard, onglets, viewer PDF
   23. FICHE MAGAZINE .............. Présentation complète par titre
   24. PAGES — SHOP LAYOUT ........ Sidebar sticky + grille par univers
   24. PAGES — CARDS .............. card-produit, card-abonnement, card-magazine
   25. PAGES — KIOSQUE VIP ........ Page centré vertical (coming soon)
   26. PAGES — PUBLICITÉ .......... Régie pub B2B
   27. PAGES — CONTACT ............ Formulaire + infos
   28. PAGES — BLOG / ARTICLES .... Archive, single, blog-card
   29. PAGES — 404 ................ Page erreur animée
   30. RESPONSIVE — MOBILE ........ Media queries globales (fin de fichier)
   ──────────────────────────────────────────────────────────────

   CONVENTIONS :
   - Variables CSS : --lvm-* (couleurs, typo, spacing, layout)
   - Classes BEM : .lvm-{bloc}__{element}--{modifier}
   - Breakpoints : 1300px (nav), 1024px (layout), 768px (mobile), 480px (small)
   - Fonts : Bebas Neue (--lvm-fd), Playfair Display (--lvm-fs), DM Sans (--lvm-fb)

   ============================================================ */

/* ── Base Reset ── */
/* Box-sizing reset */
*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    box-sizing: border-box;
    overflow-x: hidden;
}

/* Images responsives */
img {
    height: auto;
    max-width: 100%;
}

.hide {
    opacity: 0;
    display: none !important;
}

/* Accessibility — screen reader text */
.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute !important;
    width: 1px;
    word-wrap: normal !important;
}

.screen-reader-text:focus {
    background-color: var(--lvm-gris-c);
    border-radius: 3px;
    box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
    clip: auto !important;
    clip-path: none;
    color: var(--lvm-bleu-m);
    display: block;
    font-size: var(--lvm-base);
    font-weight: 700;
    height: auto;
    left: 5px;
    line-height: normal;
    padding: 15px 23px 14px;
    text-decoration: none;
    top: 5px;
    width: auto;
    z-index: 100000;
}

/* ============================================================
   ACCESSIBILITÉ — Focus visible + Skip link
   ============================================================ */

/* Skip link */
.skip-link {
    position: absolute;
    top: -100%;
    left: var(--lvm-4);
    background: var(--lvm-rouge);
    color: var(--lvm-blanc);
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    font-weight: 600;
    padding: var(--lvm-2) var(--lvm-4);
    border-radius: var(--lvm-r-sm);
    z-index: 9999;
    text-decoration: none;
    transition: top var(--lvm-t-fast);
}

.skip-link:focus {
    top: var(--lvm-2);
}

/* Contraste texte sur fond clair */
.lvm-section--alt {
    color: var(--lvm-text-1);
}

/* ============================================================
   LAYOUT
   ============================================================ */

/*
 * LV MEDIAS — Layout CSS
 * Header, footer, sections, grilles, responsive
 */

:root {
    /* Couleurs */
    --lvm-rouge: #e63946;
    --lvm-rouge-h: #c1121f;
    --lvm-jaune: #ffb703;
    --lvm-jaune-d: #fdd85d;
    --lvm-bleu: #1d3557;
    --lvm-bleu-m: #457b9d;
    --lvm-bleu-c: #a8dadc;
    --lvm-corail: #f4845f;

    /* Neutres */
    --lvm-blanc: #ffffff;
    --lvm-blanc-c: #fefae0;
    --lvm-gris-c: #f5f0eb;
    --lvm-gris-m: #767270;
    --lvm-gris-f: #6b6560;
    --lvm-noir: #2b2d42;
    --lvm-noir-p: #1a1a2e;

    /* Accents */
    --lvm-rose: #e84393;
    --lvm-turquoise: #00b4d8;
    --lvm-orange: #fb8500;

    /* Semantic */
    --lvm-primary: var(--lvm-rouge);
    --lvm-primary-h: var(--lvm-rouge-h);
    --lvm-secondary: var(--lvm-noir-p);
    --lvm-accent: var(--lvm-jaune);
    --lvm-success: #2ecc71;
    --lvm-text-1: var(--lvm-noir);
    --lvm-text-2: var(--lvm-gris-f);
    --lvm-text-3: var(--lvm-gris-m);
    --lvm-bg-1: var(--lvm-blanc);
    --lvm-bg-2: var(--lvm-gris-c);
    --lvm-bg-dark: var(--lvm-noir-p);
    --lvm-border: #e8e4df;
    --lvm-border-m: #d1ccc6;

    /* Typo */
    --lvm-fd: "Bebas Neue", sans-serif;
    --lvm-fs: "Playfair Display", serif;
    --lvm-fb: "DM Sans", sans-serif;

    /* Tailles typo — reduced ~20% per client */
    --lvm-xs: 0.65rem;
    --lvm-sm: 0.75rem;
    --lvm-base: 0.875rem;
    --lvm-md: 0.9375rem;
    --lvm-lg: 1rem;
    --lvm-xl: 1.25rem;
    --lvm-2xl: 1.5rem;
    --lvm-3xl: 1.875rem;
    --lvm-4xl: 2.5rem;
    --lvm-5xl: 3rem;
    --lvm-6xl: 4rem;

    /* Conteneur global */
    --lvm-container: 1280px;
    --lvm-edge-padding: 15px;

    /* Espacement */
    --lvm-1: 0.25rem;
    --lvm-2: 0.5rem;
    --lvm-3: 0.75rem;
    --lvm-4: 1rem;
    --lvm-5: 1.25rem;
    --lvm-6: 1.5rem;
    --lvm-8: 2rem;
    --lvm-10: 2.5rem;
    --lvm-12: 3rem;
    --lvm-16: 4rem;
    --lvm-20: 5rem;
    --lvm-24: 6rem;

    /* Radius */
    --lvm-r-sm: 6px;
    --lvm-r-md: 10px;
    --lvm-r-lg: 16px;
    --lvm-r-xl: 20px;
    --lvm-r-full: 50px;

    /* Ombres */
    --lvm-sh-card: 0 2px 20px rgba(0, 0, 0, 0.06);
    --lvm-sh-hover: 0 12px 40px rgba(0, 0, 0, 0.12);
    --lvm-sh-btn: 0 8px 25px rgba(230, 57, 70, 0.3);
    --lvm-sh-lg: 0 16px 50px rgba(0, 0, 0, 0.16);

    /* Transitions */
    --lvm-t-fast: 150ms ease;
    --lvm-t-base: 250ms ease;
    --lvm-t-slow: 400ms ease;
}

/* Responsive scale */
@media (max-width: 1024px) {
    :root {
        --lvm-5xl: 3rem;
        --lvm-4xl: 2.5rem;
        --lvm-3xl: 2rem;
    }
}

@media (max-width: 768px) {
    :root {
        --lvm-5xl: 2.5rem;
        --lvm-4xl: 2rem;
        --lvm-3xl: 1.75rem;
        --lvm-2xl: 1.5rem;
        --lvm-base: 0.9375rem;
    }
}

/* ============================================================
   GLOBAL
   ============================================================ */

body {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-base);
    color: var(--lvm-text-1);
    line-height: 1.7;
    -webkit-font-smoothing: antialiased;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    min-height: 100vh;
}

body > main,
body > .lvm-home {
    flex: 1;
}

/* Convention espacement homepage : var(--lvm-6) entre chaque section */
.lvm-home > section,
.lvm-home > .lvm-section-pub {
    margin-top: var(--lvm-6);
    margin-bottom: var(--lvm-6);
}

@media (max-width: 1300px) {
    .lvm-home > section,
    .lvm-home > .lvm-section-pub,
    .lvm-home > .lvm-section-kiosque {
        padding-left: var(--lvm-edge-padding, 15px);
        padding-right: var(--lvm-edge-padding, 15px);
    }

    .lvm-home > .lvm-section-pub img,
    .lvm-home > .lvm-section-kiosque img {
        border-radius: var(--lvm-r-md);
    }
}

.lvm-home > section:first-child {
    margin-top: 0;
}

@media (min-width: 769px) {
    .lvm-home > .lvm-marquee {
        padding-left: 0;
        padding-right: 0;
    }
}

body > .lvm-footer {
    margin-top: auto;
}

@media (max-width: 769px) {
    body > main,
    body > .lvm-home {
        flex: unset;
    }
    body > .lvm-footer {
        margin-top: 0;
    }

    .lvm-slider {
        margin-bottom: 0 !important;
    }
}

a {
    color: var(--lvm-rouge);
    transition: color var(--lvm-t-fast);
}

a:hover {
    color: var(--lvm-rouge-h);
}

h1,
h2,
h3,
h4,
h5 {
    font-family: var(--lvm-fd);
    color: var(--lvm-noir-p);
    letter-spacing: 0.03em;
    text-transform: uppercase;
    line-height: 1.15;
    margin: 0 0 0.5em;
}

h1 {
    font-size: var(--lvm-4xl);
}

h2 {
    font-size: var(--lvm-3xl);
}

h3 {
    font-size: var(--lvm-2xl);
}

h4 {
    font-size: var(--lvm-xl);
}

p {
    margin: 0 0 1em;
}

ul,
ol {
    margin: 0 0 1em 1.5em;
    padding: 0;
}

/* ============================================================
   LAYOUT UTILS
   ============================================================ */

.lvm-container {
    max-width: var(--lvm-container);
    margin: 0 auto;
}

.lvm-container-full {
    max-width: 100%;
    padding: 0 var(--lvm-8);
}

@media (max-width: 1300px) {
    .lvm-container {
        padding-left: var(--lvm-edge-padding, 15px);
        padding-right: var(--lvm-edge-padding, 15px);
    }
}

.lvm-container--narrow {
    max-width: 650px;
}

.lvm-section {
    padding: var(--lvm-16) var(--lvm-8);
}

.lvm-section-alt {
    background: var(--lvm-bg-2);
}

.lvm-section-dark {
    background: linear-gradient(135deg, var(--lvm-noir-p), var(--lvm-bleu));
    color: var(--lvm-blanc);
}

.lvm-section__label {
    font-size: var(--lvm-xs);
    font-weight: 700;
    color: var(--lvm-rouge);
    letter-spacing: 2px;
    text-transform: uppercase;
    text-align: center;
    margin-bottom: var(--lvm-2);
}

.lvm-section__subtitle {
    font-family: var(--lvm-fs);
    font-style: italic;
    color: var(--lvm-text-2);
    text-align: center;
    margin-top: calc(var(--lvm-2) * -1);
    margin-bottom: var(--lvm-10);
    font-size: var(--lvm-base);
    text-transform: none;
}

.lvm-section__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-3xl);
    color: var(--lvm-noir-p);
    text-align: left;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: var(--lvm-6);
}

.lvm-grid {
    display: grid;
    gap: var(--lvm-6);
}

.lvm-grid--2 {
    grid-template-columns: 1fr 1fr;
}

.lvm-grid--3 {
    grid-template-columns: repeat(3, 1fr);
}

.lvm-grid--4 {
    grid-template-columns: repeat(4, 1fr);
}

.lvm-grid--5 {
    grid-template-columns: repeat(5, 1fr);
}

.lvm-grid--product {
    grid-template-columns: 1fr 1fr;
    gap: var(--lvm-8);
}

.lvm-grid--sidebar {
    grid-template-columns: 1fr 380px;
    gap: var(--lvm-8);
    align-items: start;
}

.lvm-grid--gap-lg {
    gap: var(--lvm-10);
}

@media (max-width: 1024px) {
    .lvm-grid--4 {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 768px) {
    .lvm-section {
        padding: var(--lvm-12) var(--lvm-4);
    }

    .lvm-grid--2 {
        grid-template-columns: 1fr;
    }

    .lvm-grid--3 {
        grid-template-columns: 1fr 1fr;
    }

    .lvm-grid--4 {
        grid-template-columns: 1fr 1fr;
        gap: var(--lvm-3);
    }

    .lvm-grid--5 {
        grid-template-columns: repeat(2, 1fr);
    }

    .lvm-shop-content-magazine .lvm-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .lvm-grid--product {
        grid-template-columns: 1fr;
    }

    .lvm-grid--sidebar {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .lvm-shop-content-magazine .lvm-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 480px) {
    .lvm-grid--3 {
        grid-template-columns: 1fr;
    }

    .lvm-grid--gap-lg {
        gap: var(--lvm-4);
    }
}

/* ============================================================
   TOP BAR PROMO
   ============================================================ */

.lvm-topbar {
    background: var(--lvm-noir-p);
    padding: var(--lvm-2) var(--lvm-4);
    text-align: center;
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 700;
    color: var(--lvm-jaune);
    letter-spacing: 1px;
    text-transform: uppercase;
    position: relative;
    z-index: 100;
}

.lvm-topbar a {
    color: var(--lvm-jaune);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.lvm-topbar a:hover {
    color: var(--lvm-blanc);
}

/* ============================================================
   HEADER LVM
   ============================================================ */

.lvm-header {
    background: #ffffff;
    border-bottom: 1px solid #f0f0f0;
    position: sticky;
    top: 0;
    z-index: 100;
    padding-left: var(--lvm-4);
    padding-right: var(--lvm-4);
    /* margin-bottom: 20px; */
}

.home .lvm-header {
    margin-bottom: 20px;
}

.lvm-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    max-width: var(--lvm-container);
    margin: 0 auto;
    padding: 0.75rem 0;
}

.lvm-header__brand {
    display: flex;
    align-items: center;
    text-decoration: none;
    flex-shrink: 0;
}

.lvm-header__brand:hover .lvm-header__brand-name {
    color: var(--lvm-rouge);
}

.lvm-header__brand-name {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-logo-size, var(--lvm-4xl));
    font-weight: 700;
    color: #1a1a2e;
    letter-spacing: 0.06em;
    white-space: nowrap;
}

/* Actions droite : Compte + Panier + Recherche */
.lvm-header__actions {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-shrink: 0;
}

.lvm-header__action,
.lvm-search-toggle {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
    color: #2b2d42;
    transition: color var(--lvm-t-fast);
}

.lvm-header__action:hover,
.lvm-search-toggle:hover {
    color: var(--lvm-rouge);
}

.lvm-header__cart-badge {
    position: absolute;
    top: -6px;
    right: -8px;
    min-width: 16px;
    height: 16px;
    background: var(--lvm-jaune);
    color: var(--lvm-noir-p);
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 700;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 3px;
    line-height: 1;
}

/* Hamburger */
.lvm-menu-toggle {
    display: none;
    flex-direction: column;
    gap: 5px;
    background: none;
    border: none;
    cursor: pointer;
    padding: var(--lvm-2);
    z-index: 10;
}

.lvm-menu-toggle span {
    display: block;
    width: 24px;
    height: 2px;
    background: var(--lvm-noir-p);
    border-radius: 2px;
    transition: all var(--lvm-t-base);
}

.lvm-menu-toggle--open span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.lvm-menu-toggle--open span:nth-child(2) {
    opacity: 0;
}

.lvm-menu-toggle--open span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}

/* Navigation */
.lvm-nav {
    flex: 1;
}

.lvm-nav__menu {
    display: flex;
    align-items: center;
    gap: 0;
    list-style: none;
    margin: 0;
    padding: 0;
    justify-content: center;
}

.lvm-nav__menu > li {
    padding: 0 1.65rem;
    border-right: 2px solid var(--lvm-jaune);
    line-height: 1.2;
}

.lvm-nav__menu > li:last-child {
    border-right: none;
}

.lvm-nav__menu li a {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 700;
    color: #2b2d42;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    text-decoration: none;
    white-space: nowrap;
    display: block;
    transition: color var(--lvm-t-fast);
}

.lvm-nav__menu li a:hover {
    color: var(--lvm-rouge);
}

.lvm-nav__menu li.current-menu-item > a,
.lvm-nav__menu li.current-page-ancestor > a {
    text-decoration: underline;
    text-underline-offset: 4px;
    text-decoration-thickness: 2px;
    font-weight: 700;
}

/* Kiosque VIP — golden crown after text */
.lvm-nav-kiosque > a {
    display: inline-flex !important;
    align-items: center;
    gap: 4px;
}

.lvm-nav-kiosque > a::after {
    content: "";
    display: inline-block;
    width: 18px;
    height: 18px;
    background: url("https://www.lvmedias.com/wp-content/uploads/2026/07/COURONNE_-_KIOSQUE_VIP-e1784050664972-1.png")
        no-repeat center/contain;
    flex-shrink: 0;
    position: relative;
    top: -1px;
}

/* No submenus in desktop nav */
.lvm-nav__menu ul {
    display: none;
}

/* ============================================================
   DRAWERS (compte + panier)
   ============================================================ */

.lvm-drawer[hidden] {
    display: none;
}

.lvm-drawer {
    position: fixed;
    inset: 0;
    z-index: 200;
}

.lvm-drawer__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
}

.lvm-drawer__panel {
    position: absolute;
    top: 0;
    right: 0;
    width: 380px;
    height: 100vh;
    background: #fff;
    box-shadow: -4px 0 24px rgba(0, 0, 0, 0.15);
    overflow-y: auto;
    padding: var(--lvm-6);
    display: flex;
    flex-direction: column;
    animation: lvm-slide-in 0.3s ease;
}

@keyframes lvm-slide-in {
    from {
        transform: translateX(100%);
    }

    to {
        transform: translateX(0);
    }
}

.lvm-drawer__close {
    position: absolute;
    top: var(--lvm-4);
    right: var(--lvm-4);
    background: none;
    border: none;
    font-size: var(--lvm-2xl);
    cursor: pointer;
    color: var(--lvm-noir-p);
    line-height: 1;
}

.lvm-drawer__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-2xl);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    margin: 0 0 var(--lvm-6);
}

/* Drawer account — connected */
.lvm-drawer__greeting {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-lg);
    color: var(--lvm-noir-p);
    margin: 0 0 var(--lvm-4);
}

.lvm-drawer__nav {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.lvm-drawer__nav a {
    display: flex;
    align-items: center;
    gap: var(--lvm-3);
    padding: var(--lvm-3) var(--lvm-2);
    color: var(--lvm-noir-p);
    text-decoration: none;
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    font-weight: 500;
    border-radius: var(--lvm-r-sm);
    transition: background var(--lvm-t-fast);
}

.lvm-drawer__nav a:hover {
    background: #f5f0eb;
}

.lvm-drawer__nav a svg {
    flex-shrink: 0;
    color: var(--lvm-text-2);
}

.lvm-drawer__nav-logout {
    color: var(--lvm-rouge) !important;
}

/* Drawer account — forms */
.lvm-drawer__form {
    display: flex;
    flex-direction: column;
    gap: var(--lvm-2);
}

.lvm-drawer__form label {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 600;
    color: var(--lvm-noir-p);
    margin-top: var(--lvm-1);
}

.lvm-drawer__form input[type="text"],
.lvm-drawer__form input[type="password"],
.lvm-drawer__form input[type="email"] {
    width: 100%;
    padding: 0.6rem 0.75rem;
    border: 1px solid var(--lvm-border);
    border-radius: var(--lvm-r-sm);
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    box-sizing: border-box;
}

.lvm-drawer__form input:focus {
    border-color: var(--lvm-rouge);
    outline: none;
    box-shadow: 0 0 0 2px rgba(230, 57, 70, 0.15);
}

.lvm-drawer__form .lvm-btn {
    margin-top: var(--lvm-2);
}

.lvm-drawer__remember {
    display: flex;
    align-items: center;
    gap: var(--lvm-2);
    font-size: var(--lvm-xs);
    color: var(--lvm-text-2);
}

.lvm-drawer__forgot {
    font-size: var(--lvm-xs);
    color: var(--lvm-rouge);
    text-align: center;
    display: block;
    margin-top: var(--lvm-1);
}

/* Outline button dans le drawer = fond blanc → texte/border sombres */
.lvm-drawer .lvm-btn--outline {
    color: var(--lvm-noir-p);
    border-color: var(--lvm-noir-p);
}

.lvm-drawer .lvm-btn--outline:hover {
    background: var(--lvm-noir-p);
    color: var(--lvm-blanc);
}

.lvm-drawer__reg-note {
    font-size: var(--lvm-xs);
    color: var(--lvm-text-3);
    margin: 0;
    font-style: italic;
}

.lvm-drawer__sep {
    display: flex;
    align-items: center;
    gap: var(--lvm-3);
    margin: var(--lvm-3) 0;
    color: var(--lvm-text-3);
    font-size: var(--lvm-xs);
}

.lvm-drawer__sep::before,
.lvm-drawer__sep::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--lvm-border);
}

/* Drawer cart — shipping progress bar */
.lvm-drawer__shipping-bar {
    background: var(--lvm-gris-c);
    border-radius: var(--lvm-r-sm);
    padding: var(--lvm-3);
    margin-bottom: var(--lvm-4);
}

.lvm-drawer__shipping-bar p {
    font-size: var(--lvm-xs);
    color: var(--lvm-text-2);
    margin: 0 0 var(--lvm-2);
    text-align: center;
}

.lvm-drawer__progress {
    height: 4px;
    background: var(--lvm-border);
    border-radius: 2px;
    overflow: hidden;
}

.lvm-drawer__progress-fill {
    height: 100%;
    background: var(--lvm-rouge);
    border-radius: 2px;
    transition: width 0.4s ease;
}

/* Drawer cart — items */
.lvm-drawer__cart-items {
    flex: 1;
    overflow-y: auto;
}

.lvm-drawer__cart-item {
    display: flex;
    align-items: flex-start;
    gap: var(--lvm-3);
    padding: var(--lvm-3) 0;
    border-bottom: 1px solid var(--lvm-border);
}

.lvm-drawer__cart-img {
    width: 70px;
    flex-shrink: 0;
}

.lvm-drawer__cart-img img {
    width: 100%;
    border-radius: var(--lvm-r-md);
    aspect-ratio: 3/4;
    object-fit: cover;
}

.lvm-drawer__cart-info {
    flex: 1;
    min-width: 0;
}

.lvm-drawer__cart-name {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    font-weight: 600;
    color: var(--lvm-noir-p);
    line-height: 1.3;
}

.lvm-drawer__cart-meta {
    font-size: var(--lvm-xs);
    color: var(--lvm-text-3);
    margin-top: 2px;
}

.lvm-drawer__cart-line-total {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-sm);
    color: var(--lvm-rouge);
    margin-top: 4px;
}

.lvm-drawer__cart-remove {
    color: var(--lvm-text-3);
    text-decoration: none;
    flex-shrink: 0;
    padding: 2px;
    transition: color var(--lvm-t-fast);
}

.lvm-drawer__cart-remove:hover {
    color: var(--lvm-rouge);
}

/* Drawer cart — upsell */
.lvm-drawer__upsell {
    border-top: 1px solid var(--lvm-border);
    padding-top: var(--lvm-4);
    margin-top: var(--lvm-4);
}

.lvm-drawer__upsell-title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-sm);
    color: var(--lvm-noir-p);
    text-transform: uppercase;
    letter-spacing: 0.06em;
    margin: 0 0 var(--lvm-3);
}

.lvm-drawer__upsell-item {
    display: flex;
    align-items: center;
    gap: var(--lvm-3);
    padding: var(--lvm-2);
    border-radius: var(--lvm-r-sm);
    text-decoration: none;
    transition: background var(--lvm-t-fast);
    margin-bottom: var(--lvm-1);
}

.lvm-drawer__upsell-item:hover {
    background: var(--lvm-gris-c);
}

.lvm-drawer__upsell-img {
    width: 48px;
    flex-shrink: 0;
}

.lvm-drawer__upsell-img img {
    width: 100%;
    border-radius: var(--lvm-r-sm);
    aspect-ratio: 3/4;
    object-fit: cover;
}

.lvm-drawer__upsell-info {
    flex: 1;
}

.lvm-drawer__upsell-name {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 600;
    color: var(--lvm-noir-p);
}

.lvm-drawer__upsell-price {
    font-size: var(--lvm-xs);
    color: var(--lvm-rouge);
}

/* Drawer cart — footer */
.lvm-drawer__cart-footer {
    border-top: 2px solid var(--lvm-noir-p);
    padding-top: var(--lvm-4);
    margin-top: auto;
}

.lvm-drawer__cart-total {
    display: flex;
    justify-content: space-between;
    font-family: var(--lvm-fb);
    font-size: var(--lvm-base);
    margin-bottom: var(--lvm-4);
}

.lvm-drawer__view-cart {
    display: block;
    text-align: center;
    font-size: var(--lvm-xs);
    color: var(--lvm-text-2);
    margin-top: var(--lvm-3);
}

.lvm-drawer__view-cart:hover {
    color: var(--lvm-rouge);
}

/* Drawer cart — empty state */
.lvm-drawer__cart-empty {
    text-align: center;
    padding: var(--lvm-8) 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--lvm-3);
}

.lvm-drawer__cart-empty-title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-lg);
    color: var(--lvm-noir-p);
    margin: 0;
}

.lvm-drawer__cart-empty-sub {
    font-size: var(--lvm-sm);
    color: var(--lvm-text-2);
    margin: 0;
    max-width: 250px;
}

@media (max-width: 768px) {
    .lvm-drawer__panel {
        width: 100vw;
        overflow: hidden;
    }
}

/* Mobile nav */
@media (max-width: 1300px) {
    .lvm-header__brand {
        order: 1;
    }

    .lvm-header__actions {
        order: 2;
        margin-left: auto;
    }

    .lvm-menu-toggle {
        order: 3;
        display: flex;
        z-index: 1000;
    }

    .lvm-nav {
        display: none;
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        height: 100dvh;
        padding: 70px var(--lvm-6) var(--lvm-8);
        overflow-y: auto;
        /* Overlay plein écran — wireframe mobile */
        background: var(--lvm-noir-p);
        flex-direction: column;
        align-items: stretch;
        gap: 0;
        z-index: 199;
        flex: unset;
        justify-content: flex-start;
    }

    .lvm-nav--open {
        display: flex;
    }

    .lvm-nav__menu {
        flex-direction: column;
        align-items: stretch;
        width: 100%;
    }

    .lvm-nav__menu > li {
        padding: 0;
        border-right: none;
    }

    /* Items menu : style wireframe — Bebas Neue, grands, blancs */
    .lvm-nav__menu li a {
        font-family: var(--lvm-fd);
        font-size: var(--lvm-xl);
        letter-spacing: 0.04em;
        color: rgba(255, 255, 255, 0.75);
        padding: var(--lvm-3) 0;
        border-bottom: 1px solid rgba(255, 255, 255, 0.08);
        border-radius: 0;
        text-transform: uppercase;
    }

    .lvm-nav__menu li a:hover,
    .lvm-nav__menu li.current-menu-item > a,
    .lvm-nav__menu li.current-page-ancestor > a {
        color: var(--lvm-jaune);
    }

    .lvm-nav__menu li.current-menu-item > a {
        text-decoration: underline;
        text-underline-offset: 4px;
    }

    .lvm-nav__menu ul {
        display: none;
    }

    /* Hamburger sur fond sombre = barres blanches quand ouvert */
    .lvm-menu-toggle--open span {
        background: var(--lvm-blanc);
    }
}

@media (max-width: 768px) {
    .lvm-header__brand-name {
        font-size: var(--lvm-2xl);
    }
}

/* ============================================================
   BREADCRUMB
   ============================================================ */

.lvm-breadcrumb {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    color: var(--lvm-text-3);
    padding: var(--lvm-2) 0 var(--lvm-2);
    display: flex;
    align-items: center;
    gap: var(--lvm-2);
    flex-wrap: wrap;
    text-transform: uppercase;
    /* border-bottom: 1px solid var(--lvm-border);
    margin-bottom: var(--lvm-4); */
}

.lvm-breadcrumb a {
    color: var(--lvm-text-2);
    text-decoration: none;
    transition: color var(--lvm-t-fast);
}

.lvm-breadcrumb a:hover {
    color: var(--lvm-rouge);
}

.lvm-breadcrumb__sep {
    color: var(--lvm-text-3);
}

.lvm-breadcrumb strong {
    /* color: var(--lvm-noir-p); */
    font-weight: normal;
}

/* ============================================================
   HERO SECTION
   ============================================================ */

.lvm-hero {
    background: linear-gradient(
        135deg,
        var(--lvm-noir-p) 0%,
        var(--lvm-bleu) 100%
    );
    padding: var(--lvm-12) var(--lvm-8);
    text-align: center;
    position: relative;
    overflow: hidden;
    border-radius: var(--lvm-r-lg);
    max-width: var(--lvm-container);
    margin: var(--lvm-6) auto;
    box-shadow: var(--lvm-sh-lg);
}

.lvm-hero::before {
    content: "";
    position: absolute;
    top: -50%;
    right: -30%;
    width: 500px;
    height: 500px;
    background: radial-gradient(
        circle,
        rgba(230, 57, 70, 0.12),
        transparent 60%
    );
    pointer-events: none;
}

.lvm-hero::after {
    content: "";
    position: absolute;
    bottom: -30%;
    left: -20%;
    width: 400px;
    height: 400px;
    background: radial-gradient(
        circle,
        rgba(255, 183, 3, 0.08),
        transparent 50%
    );
    pointer-events: none;
}

.lvm-hero--small {
    padding: var(--lvm-16) var(--lvm-8);
}

.lvm-hero > * {
    position: relative;
    z-index: 1;
}

.lvm-hero__kicker {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 700;
    color: var(--lvm-jaune);
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: var(--lvm-3);
}

.lvm-hero__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-5xl);
    color: var(--lvm-blanc);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    line-height: 1;
    margin-bottom: var(--lvm-3);
}

.lvm-hero__subtitle {
    font-family: var(--lvm-fs);
    font-style: italic;
    font-size: var(--lvm-lg);
    color: rgba(255, 255, 255, 0.75);
    margin-bottom: 0;
}

.lvm-hero__ctas {
    display: flex;
    gap: var(--lvm-3);
    justify-content: center;
    margin-top: var(--lvm-8);
    flex-wrap: wrap;
}

@media (max-width: 768px) {
    .lvm-hero {
        padding: var(--lvm-16) var(--lvm-4);
    }

    .lvm-hero--small {
        padding: var(--lvm-12) var(--lvm-4);
    }

    .lvm-hero__ctas {
        flex-direction: column;
        align-items: center;
    }
}

/* ============================================================
   BOUTONS GLOBAUX
   ============================================================ */

.lvm-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--lvm-2);
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    text-decoration: none;
    line-height: 1;
    padding: var(--lvm-3) var(--lvm-6);
    border-radius: var(--lvm-r-full);
    border: none;
    cursor: pointer;
    transition: all var(--lvm-t-base);
}

.lvm-btn--primary {
    background: var(--lvm-primary);
    color: var(--lvm-blanc);
}

.lvm-btn--primary:hover {
    background: var(--lvm-primary-h);
    color: var(--lvm-blanc);
    transform: translateY(-2px);
    box-shadow: var(--lvm-sh-btn);
}

.lvm-btn--dark {
    background: var(--lvm-noir-p);
    color: var(--lvm-blanc);
}

.lvm-btn--dark:hover {
    background: var(--lvm-bleu);
    color: var(--lvm-blanc);
    transform: translateY(-2px);
}

.lvm-btn--outline {
    background: transparent;
    color: var(--lvm-noir-p);
    border: 2px solid var(--lvm-noir-p);
}

.lvm-btn--outline:hover {
    background: var(--lvm-blanc);
    color: var(--lvm-noir-p);
    border-color: var(--lvm-blanc);
}

.lvm-btn--outline-dark {
    background: transparent;
    color: var(--lvm-noir-p);
    border: 2px solid var(--lvm-noir-p);
}

.lvm-btn--outline-dark:hover {
    background: var(--lvm-noir-p);
    color: var(--lvm-blanc);
}

.lvm-btn--accent {
    background: var(--lvm-jaune);
    color: var(--lvm-noir-p);
}

.lvm-btn--accent:hover {
    background: var(--lvm-orange);
    color: var(--lvm-blanc);
    transform: translateY(-2px);
}

.lvm-btn--sm {
    font-size: var(--lvm-xs);
    padding: var(--lvm-2) var(--lvm-4);
}

/* ============================================================
   BADGES
   ============================================================ */

.lvm-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--lvm-1);
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 700;
    letter-spacing: 1px;
    text-transform: uppercase;
    padding: 3px 10px;
    border-radius: var(--lvm-r-sm);
}

.lvm-badge--promo {
    background: var(--lvm-rouge);
    color: var(--lvm-blanc);
}

.lvm-badge--new {
    background: linear-gradient(135deg, #b8973b, #d4b85a);
    color: var(--lvm-blanc);
    font-weight: 700;
    letter-spacing: 0.04em;
    transition:
        transform var(--lvm-t-fast),
        box-shadow var(--lvm-t-fast);
}

.lvm-product-card:hover .lvm-badge--new {
    transform: scale(1.05);
    box-shadow: 0 2px 8px rgba(201, 168, 76, 0.4);
}

.lvm-badge--sub {
    background: rgba(29, 53, 87, 0.08);
    color: var(--lvm-bleu);
}

.lvm-badge--digi {
    background: rgba(0, 180, 216, 0.08);
    color: var(--lvm-turquoise);
}

/* ============================================================
   SECTION: 5 BONNES RAISONS
   ============================================================ */

.lvm-reasons {
    background: var(--lvm-bg-2);
    padding: var(--lvm-16) var(--lvm-8);
}

.lvm-reasons__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-3xl);
    color: var(--lvm-noir-p);
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: var(--lvm-10);
}

/* Wireframe: grille 2 cols, chaque item = icone gauche + texte droite */
.lvm-reasons__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--lvm-4);
    max-width: 900px;
    margin: 0 auto;
}

.lvm-reason {
    display: flex;
    gap: var(--lvm-4);
    align-items: flex-start;
    padding: var(--lvm-2) 0;
}

.lvm-reason__icon {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(230, 57, 70, 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--lvm-xl);
    flex-shrink: 0;
}

.lvm-reason__name,
.lvm-reason__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-sm);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    margin: 0;
    text-transform: uppercase;
    margin-bottom: var(--lvm-1);
}

.lvm-reason__desc {
    font-size: var(--lvm-xs);
    color: var(--lvm-text-2);
    line-height: 1.5;
    margin: 0;
}

@media (max-width: 768px) {
    .lvm-reasons {
        padding: var(--lvm-12) var(--lvm-4);
    }

    .lvm-reasons__grid {
        grid-template-columns: 1fr;
        gap: var(--lvm-3);
    }
}

/* ============================================================
   SECTION: BLOC CORPORATE B2B
   ============================================================ */

.lvm-corporate {
    background: linear-gradient(135deg, var(--lvm-noir-p), var(--lvm-bleu));
    padding: var(--lvm-10) var(--lvm-8);
    border-radius: var(--lvm-r-lg);
    max-width: var(--lvm-container);
    margin: var(--lvm-6) auto;
    box-shadow: var(--lvm-sh-lg);
}

.lvm-corporate__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--lvm-10);
    max-width: var(--lvm-container);
    margin: 0 auto;
    align-items: center;
}

.lvm-corporate__kicker {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 700;
    color: var(--lvm-jaune);
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: var(--lvm-2);
}

.lvm-corporate__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-3xl);
    color: var(--lvm-blanc);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: var(--lvm-4);
}

.lvm-corporate__text {
    font-size: var(--lvm-sm);
    color: rgba(255, 255, 255, 0.75);
    line-height: 1.8;
    margin-bottom: var(--lvm-6);
}

.lvm-corporate__ctas {
    display: flex;
    gap: var(--lvm-3);
    flex-wrap: wrap;
}

.lvm-corporate__visual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: var(--lvm-r-md);
}

.lvm-corporate__placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    color: rgba(255, 255, 255, 0.3);
    font-size: var(--lvm-sm);
    text-align: center;
    gap: var(--lvm-2);
}

.lvm-corporate__placeholder small {
    font-size: var(--lvm-xs);
    opacity: 0.6;
}

.lvm-corporate__visual {
    height: 300px;
    background: rgba(255, 255, 255, 0.05);
    border: 1px dashed rgba(255, 255, 255, 0.1);
    border-radius: var(--lvm-r-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

@media (max-width: 768px) {
    .lvm-corporate {
        padding: var(--lvm-12) var(--lvm-4);
    }

    .lvm-corporate__inner {
        grid-template-columns: 1fr;
    }

    .lvm-corporate__visual {
        height: 200px;
    }
}

/* ============================================================
   SECTION: LOGO CAROUSEL
   ============================================================ */

.lvm-logos {
    background: var(--lvm-blanc);
    padding: var(--lvm-8) var(--lvm-8);
    border-bottom: 1px solid var(--lvm-border);
}

.lvm-logos__label {
    text-align: center;
    font-size: var(--lvm-xs);
    font-weight: 700;
    color: var(--lvm-text-3);
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: var(--lvm-4);
}

.lvm-logos__track {
    display: flex;
    gap: var(--lvm-4);
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
}

.lvm-logos__item {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 38px;
    padding: 0 var(--lvm-4);
    background: var(--lvm-gris-c);
    border: 1px solid var(--lvm-border);
    border-radius: var(--lvm-r-md);
    font-family: var(--lvm-fd);
    font-size: var(--lvm-sm);
    color: var(--lvm-text-2);
    letter-spacing: 0.05em;
    text-decoration: none;
    white-space: nowrap;
    transition: all var(--lvm-t-fast);
}

.lvm-logos__item:hover {
    background: var(--lvm-rouge);
    color: var(--lvm-blanc);
    border-color: var(--lvm-rouge);
    transform: translateY(-2px);
}

.lvm-logos__item img {
    height: 24px;
    width: auto;
    object-fit: contain;
}

@media (max-width: 768px) {
    .lvm-logos {
        padding: var(--lvm-6) var(--lvm-4);
    }

    .lvm-logos__track {
        gap: var(--lvm-3);
    }

    .lvm-logos__item {
        font-size: var(--lvm-xs);
        height: 32px;
    }
}

/* ============================================================
   SECTION: NUMÉRO OFFERT
   ============================================================ */

.lvm-numero-offert {
    background: var(--lvm-gris-c);
    padding: var(--lvm-10) var(--lvm-8);
    border-radius: var(--lvm-r-lg);
    max-width: var(--lvm-container);
    margin: var(--lvm-6) auto;
    box-shadow: var(--lvm-sh-card);
}

.lvm-numero-offert__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--lvm-10);
    max-width: var(--lvm-container);
    margin: 0 auto;
    align-items: center;
}

.lvm-numero-offert__cover {
    height: 280px;
    background: var(--lvm-border);
    border-radius: var(--lvm-r-lg);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px dashed var(--lvm-border-m);
}

.lvm-numero-offert__cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: var(--lvm-r-lg);
}

.lvm-numero-offert__placeholder {
    font-size: var(--lvm-5xl);
    color: var(--lvm-text-3);
}

.lvm-numero-offert__kicker {
    font-size: var(--lvm-xs);
    font-weight: 700;
    color: var(--lvm-rouge);
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: var(--lvm-3);
}

.lvm-numero-offert__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-3xl);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: var(--lvm-4);
}

.lvm-numero-offert__desc {
    font-size: var(--lvm-sm);
    color: var(--lvm-text-2);
    line-height: 1.8;
    margin-bottom: var(--lvm-6);
}

@media (max-width: 768px) {
    .lvm-numero-offert {
        padding: var(--lvm-12) var(--lvm-4);
    }

    .lvm-numero-offert__inner {
        grid-template-columns: 1fr;
        gap: var(--lvm-6);
    }

    .lvm-numero-offert__cover {
        height: 220px;
    }
}

/* ============================================================
   EXPERTISE CARDS (page publicité)
   ============================================================ */

.lvm-expertise-card {
    background: var(--lvm-blanc);
    border: 1px solid var(--lvm-border);
    border-radius: var(--lvm-r-lg);
    padding: var(--lvm-6);
    text-align: center;
    transition: all var(--lvm-t-slow);
}

.lvm-expertise-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--lvm-sh-hover);
    border-color: #c9a84c;
}

.lvm-expertise-card__icon {
    font-size: var(--lvm-4xl);
    margin-bottom: var(--lvm-3);
}

.lvm-expertise-card h3 {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-xl);
    margin-bottom: var(--lvm-2);
}

.lvm-expertise-card p {
    font-size: var(--lvm-sm);
    color: var(--lvm-text-2);
    margin: 0;
}

/* ============================================================
   WOOCOMMERCE — GRILLE ARCHIVE / BOUTIQUE
   ============================================================ */

.woocommerce ul.products {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--lvm-6);
    list-style: none;
    padding: 0;
    margin: 0;
}

@media (max-width: 1024px) {
    .woocommerce ul.products {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 768px) {
    .woocommerce ul.products {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--lvm-3);
    }
}

/* Card produit */
.woocommerce ul.products li.product {
    border-radius: var(--lvm-r-lg) !important;
    overflow: hidden;
    box-shadow: var(--lvm-sh-card);
    transition: all var(--lvm-t-slow);
    margin: 0 !important;
    padding: 0 !important;
    background: var(--lvm-blanc);
    border: 1px solid var(--lvm-border);
}

.woocommerce ul.products li.product:hover {
    transform: translateY(-6px);
    box-shadow: var(--lvm-sh-hover);
}

.woocommerce ul.products li.product a img,
.woocommerce ul.products li.product .attachment-woocommerce_thumbnail {
    border-radius: 0 !important;
    transition: transform var(--lvm-t-slow);
}

.woocommerce ul.products li.product:hover a img {
    transform: scale(1.05);
}

.lvm-product-cat {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 700;
    color: var(--lvm-rouge);
    letter-spacing: 1.5px;
    text-transform: uppercase;
    padding: 0 var(--lvm-4);
    margin-top: var(--lvm-3);
    display: block;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--lvm-fd) !important;
    font-size: var(--lvm-base) !important;
    font-weight: 700 !important;
    color: var(--lvm-noir-p) !important;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    padding: var(--lvm-1) var(--lvm-4) 0 !important;
    margin: 0 !important;
}

.woocommerce ul.products li.product .price {
    font-family: var(--lvm-fd) !important;
    font-size: var(--lvm-lg) !important;
    color: var(--lvm-rouge) !important;
    padding: var(--lvm-1) var(--lvm-4);
}

.woocommerce ul.products li.product .price del {
    font-family: var(--lvm-fb) !important;
    font-size: var(--lvm-sm) !important;
    color: var(--lvm-gris-m) !important;
}

.woocommerce ul.products li.product .price ins {
    text-decoration: none;
    font-weight: 400;
}

.woocommerce ul.products li.product .onsale,
.woocommerce span.onsale {
    background: var(--lvm-rouge) !important;
    color: var(--lvm-blanc) !important;
    font-family: var(--lvm-fb);
    font-weight: 700;
    font-size: var(--lvm-xs);
    border-radius: var(--lvm-r-sm) !important;
    padding: 3px 10px !important;
    min-height: auto !important;
    min-width: auto !important;
    line-height: 1.6;
    top: 12px !important;
    left: 12px !important;
    right: auto !important;
}

.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product a.add_to_cart_button {
    display: block !important;
    text-align: center;
    font-family: var(--lvm-fb) !important;
    font-weight: 700 !important;
    font-size: var(--lvm-sm) !important;
    color: var(--lvm-blanc) !important;
    background: var(--lvm-noir-p) !important;
    padding: 0.625rem 1rem !important;
    border-radius: 0 0 var(--lvm-r-lg) var(--lvm-r-lg) !important;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    margin: var(--lvm-3) 0 0 !important;
    transition: background var(--lvm-t-base);
}

.woocommerce ul.products li.product .button:hover,
.woocommerce ul.products li.product a.add_to_cart_button:hover {
    background: var(--lvm-rouge) !important;
}

/* ============================================================
   WOOCOMMERCE — FICHE PRODUIT SINGLE
   ============================================================ */

@media screen and (max-width: 1250px) {
    .lvm-product-single {
        padding: 0 var(--lvm-4) var(--lvm-12);
    }
}

@media (max-width: 768px) {
    /* Sticky CTA mobile — wireframe mobile */
    .woocommerce.single-product form.cart {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        z-index: 90;
        background: var(--lvm-blanc);
        padding: var(--lvm-3) var(--lvm-4);
        box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.1);
        display: flex;
        align-items: center;
        gap: var(--lvm-3);
    }

    .woocommerce.single-product form.cart .button,
    .woocommerce.single-product .single_add_to_cart_button {
        flex: 1;
    }

    /* Espace pour le sticky CTA */
    .single-product #main-content {
        padding-bottom: 80px;
    }
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
    font-family: var(--lvm-fd) !important;
    font-size: var(--lvm-2xl) !important;
    color: var(--lvm-rouge) !important;
}

.woocommerce div.product p.price del {
    font-family: var(--lvm-fb) !important;
    font-size: var(--lvm-base) !important;
    color: var(--lvm-gris-m) !important;
}

.lvm-price-block {
    /* background: var(--lvm-bg-2); */
    /* border-radius: var(--lvm-r-md); */
    /* padding: var(--lvm-3) var(--lvm-4); */
    /* margin: var(--lvm-4) 0; */
}

.lvm-price-block__price {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-3xl);
    color: var(--lvm-jaune);
}

.lvm-price-block__row {
    display: flex;
    gap: var(--lvm-8);
    align-items: baseline;
    flex-wrap: wrap;
    margin-top: 15px;
}

.lvm-price-block__item {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    font-weight: 700;
    color: var(--lvm-noir-p);
    display: flex;
    flex-direction: column;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.lvm-price-block__item .woocommerce-Price-amount {
    /* font-family: var(--lvm-fd);
    font-size: var(--lvm-xl);
    color: var(--lvm-rouge); */
    font-family: var(--lvm-fd);
    font-size: var(--lvm-3xl);
    color: var(--lvm-jaune);
}

.lvm-price-block__meta {
    font-size: var(--lvm-xs);
    color: var(--lvm-text-2);
    margin-top: var(--lvm-1);
}

.lvm-info-box {
    background: rgba(29, 53, 87, 0.05);
    border-radius: var(--lvm-r-md);
    padding: var(--lvm-4);
    font-size: var(--lvm-sm);
    color: var(--lvm-bleu);
    line-height: 1.7;
    margin: var(--lvm-4) 0 var(--lvm-6);
}

.lvm-info-box strong {
    color: var(--lvm-noir-p);
}

.lvm-sub-badge,
.single-product h1.product_title.entry-title,
.lvm-product-format,
.lvm-price-block {
    padding-left: var(--lvm-4) !important;
    padding-right: var(--lvm-4) !important;
}

.lvm-sub-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--lvm-1);
    font-size: var(--lvm-xs);
    font-weight: 700;
    color: var(--lvm-jaune);
    /* background: rgba(29, 53, 87, 0.08); */
    padding: 3px 0;
    border-radius: var(--lvm-r-sm);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: var(--lvm-1);
}

.woocommerce div.product form.cart {
    /* display: flex; */
    align-items: center;
    gap: var(--lvm-3);
    flex-wrap: wrap;
}

.woocommerce div.product form.cart .button,
.woocommerce div.product .single_add_to_cart_button {
    font-family: var(--lvm-fb) !important;
    font-weight: 700 !important;
    font-size: var(--lvm-sm) !important;
    background: var(--lvm-btn-cart-bg, var(--lvm-noir-p)) !important;
    color: var(--lvm-btn-cart-text, var(--lvm-blanc)) !important;
    border-radius: var(--lvm-r-full) !important;
    padding: var(--lvm-3) var(--lvm-8) !important;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    transition: all var(--lvm-t-base);
    border: 1px solid var(--lvm-btn-cart-border, transparent) !important;
    border-radius: var(--lvm-r-md) !important;
    width: 100%;
    cursor: pointer;
    margin-top: 10px;
}

.woocommerce div.product form.cart .button:hover,
.woocommerce div.product .single_add_to_cart_button:hover {
    background: var(--lvm-btn-cart-bg-h, var(--lvm-rouge-h)) !important;
    border-color: var(--lvm-btn-cart-border-h, transparent) !important;
    color: var(--lvm-btn-cart-text-h, var(--lvm-blanc)) !important;
    transform: translateY(-2px);
    box-shadow: var(--lvm-sh-btn);
}

.woocommerce-variation-add-to-cart {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

@media (max-width: 768px) {
    .woocommerce.single-product form.cart {
        flex-direction: column;
    }

    .variations_form.cart {
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .variations_form .variations {
        flex: 0 0 calc(50% - 0.25rem);
        border: 0;
    }

    .variations_form .variations th.label {
        display: none;
    }

    .variations_form .variations td {
        display: block;
        padding: 0;
    }

    .variations_form .variations select {
        width: 100%;
    }

    .variations_form .reset_variations_alert {
        display: none;
    }

    .variations_form .single_variation_wrap {
        flex: 0 0 calc(50% - 0.25rem);
    }

    .woocommerce-variation-add-to-cart {
        display: flex;
        flex-wrap: wrap;
        gap: 0.5rem;
        width: 100%;
    }

    .woocommerce-variation-add-to-cart .quantity {
        width: 100%;
    }

    .woocommerce-variation-add-to-cart .quantity .qty {
        width: 100%;
    }

    .woocommerce-variation-add-to-cart .single_add_to_cart_button {
        width: 100%;
        margin-top: 0.25rem;
    }
}

.woocommerce .quantity .qty {
    border: 1px solid var(--lvm-border) !important;
    border-radius: var(--lvm-r-sm);
    padding: 8px;
    font-family: var(--lvm-fb);
    font-weight: 700;
}

/* Hide variation price breakdown (7€ / Numérique — / Papier —) */
.variations_form .woocommerce-variation-price {
    display: none;
}

/* Variations form responsive */
.variations_form .variations {
    width: 100%;
}

.variations_form .variations th.label {
    display: none;
}

.variations_form .variations td.value {
    padding: 0;
}

/* Style variation select */
.variations select {
    appearance: none;
    -webkit-appearance: none;
    background: #fff
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%232B2D42' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E")
        no-repeat right 12px center/12px;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 0.625rem 2.5rem 0.625rem 1rem;
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: #2b2d42;
    cursor: pointer;
    width: 100%;
}

.variations select:focus {
    outline: none;
    border-color: var(--lvm-rouge);
}

/* Tabs produit (style WC par défaut) */
.woocommerce div.product .woocommerce-tabs ul.tabs {
    padding: 0 !important;
    margin: 0 0 var(--lvm-4) !important;
    border-bottom: 2px solid var(--lvm-border) !important;
    list-style: none;
    display: flex;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
    background: transparent !important;
    border: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li a {
    font-family: var(--lvm-fb) !important;
    font-weight: 700 !important;
    font-size: var(--lvm-sm) !important;
    color: var(--lvm-text-2) !important;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    padding: var(--lvm-3) var(--lvm-4) !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
    border-bottom: 2px solid var(--lvm-rouge) !important;
    margin-bottom: -2px !important;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active a {
    color: var(--lvm-rouge) !important;
}

/* Cross-sells */
.woocommerce div.product .related h2,
.woocommerce div.product .upsells h2 {
    font-family: var(--lvm-fd) !important;
    font-size: var(--lvm-2xl) !important;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

/* ============================================================
   WOOCOMMERCE — PANIER
   ============================================================ */

.woocommerce-cart .woocommerce table.shop_table {
    border: none !important;
    border-radius: var(--lvm-r-lg) !important;
    overflow: hidden;
    box-shadow: var(--lvm-sh-card);
}

.woocommerce-cart .woocommerce table.shop_table th {
    background: var(--lvm-bg-2) !important;
    border: none !important;
    font-family: var(--lvm-fb);
    font-weight: 700;
    font-size: var(--lvm-xs);
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--lvm-noir-p);
    padding: var(--lvm-4) !important;
}

.woocommerce-cart .woocommerce table.shop_table td {
    border-color: var(--lvm-border) !important;
    padding: var(--lvm-4) !important;
    vertical-align: middle;
}

.woocommerce-cart .product-thumbnail img {
    border-radius: var(--lvm-r-sm) !important;
    width: 70px !important;
}

.woocommerce-cart .product-name a {
    font-family: var(--lvm-fd) !important;
    font-size: var(--lvm-base) !important;
    color: var(--lvm-noir-p) !important;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    text-decoration: none !important;
}

.woocommerce-cart .product-price,
.woocommerce-cart .product-subtotal {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-lg) !important;
    color: var(--lvm-rouge) !important;
}

.lvm-cart-recurrence {
    font-size: var(--lvm-xs);
    font-weight: 700;
    color: var(--lvm-bleu);
    background: rgba(29, 53, 87, 0.06);
    padding: 3px 8px;
    border-radius: var(--lvm-r-sm);
    margin-top: var(--lvm-2);
    display: inline-block;
}

/* Notifications WooCommerce — conteneur global */
.woocommerce-notices-wrapper {
    max-width: var(--lvm-container);
    margin: 0 auto;
    padding: var(--lvm-3) var(--lvm-4);
    box-sizing: border-box;
    width: 100%;
}

/* Toutes les notifs */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    font-weight: 500;
    color: var(--lvm-noir-p);
    background: var(--lvm-gris-c);
    border: none;
    border-left: 4px solid var(--lvm-noir-p);
    border-radius: var(--lvm-r-sm);
    padding: var(--lvm-3) var(--lvm-4);
    margin: var(--lvm-3) auto;
    max-width: 960px;
    width: calc(100% - var(--lvm-8));
    box-sizing: border-box;
    display: flex;
    align-items: center;
    gap: var(--lvm-3);
    list-style: none;
}

.woocommerce-message::before,
.woocommerce-info::before,
.woocommerce-error::before {
    display: none;
}

/* Erreurs */
.woocommerce-error {
    border-left-color: var(--lvm-rouge);
}

.woocommerce-error li {
    color: var(--lvm-rouge);
    font-weight: 600;
}

/* Bouton panier + fermer à droite */
.woocommerce-message .wc-forward,
.woocommerce-info .wc-forward {
    flex-shrink: 0;
}

.lvm-notice-actions {
    display: flex;
    align-items: center;
    gap: var(--lvm-2);
    margin-left: auto;
    flex-shrink: 0;
}

.lvm-notice-close {
    background: none;
    border: none;
    font-size: 1.4rem;
    color: var(--lvm-text-2);
    cursor: pointer;
    padding: 0;
    line-height: 1;
    flex-shrink: 0;
    transition: color var(--lvm-t-fast);
}

.lvm-notice-close:hover {
    color: var(--lvm-rouge);
}

.woocommerce-message .button.wc-forward,
.woocommerce-info .button.wc-forward {
    flex-shrink: 0;
    margin-left: auto;
}

.woocommerce a.button.wc-forward,
.woocommerce .cart .button,
.woocommerce .cart input.button {
    font-family: var(--lvm-fb) !important;
    font-weight: 700 !important;
    background: var(--lvm-rouge) !important;
    color: var(--lvm-blanc) !important;
    border-radius: var(--lvm-r-full) !important;
    padding: var(--lvm-3) var(--lvm-6) !important;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border: none !important;
    transition: all var(--lvm-t-base);
}

.woocommerce a.button.wc-forward:hover,
.woocommerce .cart .button:hover {
    background: var(--lvm-rouge-h) !important;
    transform: translateY(-2px);
    box-shadow: var(--lvm-sh-btn);
}

/* ============================================================
   WOOCOMMERCE — CHECKOUT
   ============================================================ */

.woocommerce-checkout h3 {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-xl);
    letter-spacing: 0.04em;
    color: var(--lvm-noir-p);
    text-transform: uppercase;
}

.woocommerce form .form-row select,
.woocommerce form .form-row textarea {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: var(--lvm-text-1);
    background: var(--lvm-gris-c);
    border: 1px solid var(--lvm-border-m);
    border-radius: var(--lvm-r-md);
    padding: var(--lvm-4);
    transition: border-color var(--lvm-t-base);
}

.woocommerce form .form-row select:focus,
.woocommerce form .form-row textarea:focus {
    border-color: #c9a84c;
    box-shadow: 0 0 0 3px rgba(201, 168, 76, 0.12);
    background: var(--lvm-blanc);
    outline: none;
}

.woocommerce-checkout-review-order-table {
    border-radius: var(--lvm-r-md) !important;
    overflow: hidden;
}

.woocommerce #place_order {
    font-family: var(--lvm-fb) !important;
    font-weight: 700 !important;
    font-size: var(--lvm-base) !important;
    background: var(--lvm-rouge) !important;
    color: var(--lvm-blanc) !important;
    border-radius: var(--lvm-r-full) !important;
    padding: var(--lvm-4) var(--lvm-8) !important;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    width: 100%;
    transition: all var(--lvm-t-base);
    border: none !important;
}

.woocommerce #place_order:hover {
    background: var(--lvm-rouge-h) !important;
    transform: translateY(-2px);
    box-shadow: var(--lvm-sh-btn);
}

/* Labels checkout blocks — au-dessus du champ, pas flottants */
.wc-block-components-text-input label,
.wc-block-checkout .wc-block-components-text-input label {
    position: static !important;
    transform: none !important;
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 600;
    color: var(--lvm-noir-p);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin-bottom: 4px;
    display: block;
    opacity: 1 !important;
}

.wc-block-components-text-input input,
.wc-block-checkout .wc-block-components-text-input input {
    padding: var(--lvm-3) var(--lvm-3) !important;
}

.wc-block-components-text-input.is-active label,
.wc-block-components-text-input.has-value label {
    transform: none !important;
    font-size: var(--lvm-xs) !important;
}

/* Bouton payer — déplacé visuellement sous le résumé commande */
.wc-block-checkout__actions {
    width: 100%;
    margin-top: var(--lvm-4);
}

.wp-block-woocommerce-checkout-fields-block {
    display: flex;
    flex-direction: column;
}

.wc-block-checkout__actions .wc-block-components-checkout-place-order-button,
.wc-block-checkout__actions button {
    font-family: var(--lvm-fb) !important;
    font-weight: 700 !important;
    font-size: var(--lvm-base) !important;
    background: var(--lvm-noir-p) !important;
    color: var(--lvm-blanc) !important;
    border-radius: var(--lvm-r-full) !important;
    padding: var(--lvm-4) var(--lvm-8) !important;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border: none !important;
    width: auto;
    transition: all var(--lvm-t-base);
}

.wc-block-checkout__actions button:hover {
    background: var(--lvm-rouge) !important;
    transform: translateY(-2px);
    box-shadow: var(--lvm-sh-btn);
}

/* ============================================================
   WOOCOMMERCE — MON COMPTE
   ============================================================ */

/* Mon compte nav — styles dans woocommerce.css (.lvm-account-nav) */

/* ============================================================
   FOOTER — 1 ligne horizontale
   ============================================================ */

.lvm-footer {
    background: #ededef;
    border-top: 1px solid #e0dcd6;
    padding: var(--lvm-6) var(--lvm-8);
}

.lvm-footer__row {
    display: flex;
    align-items: center;
    gap: var(--lvm-8);
}

.lvm-footer__brand-col {
    display: flex;
    align-items: center;
    gap: var(--lvm-2);
    flex-shrink: 0;
}

.lvm-footer__logo {
    width: 40px;
    height: 40px;
    object-fit: contain;
}

.lvm-footer__brand-name {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-2xl);
    font-weight: 700;
    color: var(--lvm-noir-p);
    letter-spacing: 0.06em;
    white-space: nowrap;
}

.lvm-footer__desc-col {
    flex: 1;
    min-width: 0;
}

.lvm-footer__desc-col p {
    font-size: var(--lvm-xs);
    color: var(--lvm-text-2);
    margin: 0;
    line-height: 1.5;
}

.lvm-footer__copy {
    font-size: var(--lvm-xs);
    color: var(--lvm-gris-m);
}

.lvm-footer__links-col {
    display: flex;
    gap: var(--lvm-4);
    flex-shrink: 0;
}

.lvm-footer__links-col a {
    font-size: var(--lvm-xs);
    color: var(--lvm-text-2);
    text-decoration: none;
    white-space: nowrap;
    transition: color var(--lvm-t-fast);
}

.lvm-footer__links-col a:hover {
    color: var(--lvm-rouge);
}

.lvm-footer__social-col {
    display: flex;
    gap: var(--lvm-3);
    flex-shrink: 0;
}

.lvm-footer__social-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--lvm-noir-p);
    color: var(--lvm-blanc);
    transition:
        transform 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94),
        box-shadow 0.25s ease,
        background var(--lvm-t-fast);
}

.lvm-footer__social-icon--youtube {
    background: #ff0000;
}
.lvm-footer__social-icon--facebook {
    background: #1877f2;
}
.lvm-footer__social-icon--instagram {
    background: #e4405f;
}
.lvm-footer__social-icon--tiktok {
    background: #000000;
}
.lvm-footer__social-icon--linkedin {
    background: #0a66c2;
}

/* Monochrome mode — setting Apparence > LV Medias > Réseaux sociaux */
.lvm-socials--mono .lvm-footer__social-icon,
.lvm-socials--mono .lvm-footer__social-icon--youtube,
.lvm-socials--mono .lvm-footer__social-icon--facebook,
.lvm-socials--mono .lvm-footer__social-icon--instagram,
.lvm-socials--mono .lvm-footer__social-icon--tiktok,
.lvm-socials--mono .lvm-footer__social-icon--linkedin {
    background: var(--lvm-noir-p);
}

.lvm-footer__social-icon:hover {
    transform: scale(1.15);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
    color: #fff;
}

@media (max-width: 768px) {
    .lvm-footer__row {
        flex-direction: column;
        text-align: center;
        gap: var(--lvm-4);
    }

    .lvm-footer__links-col {
        flex-wrap: wrap;
        justify-content: center;
    }
}

/* ============================================================
   FILTRES CATÉGORIE (Catalogue)
   ============================================================ */

.lvm-filters {
    display: flex;
    gap: var(--lvm-2);
    overflow-x: auto;
    padding-bottom: var(--lvm-2);
    margin-bottom: var(--lvm-6);
}

.lvm-filters a,
.lvm-filters button {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 600;
    padding: var(--lvm-2) var(--lvm-4);
    border-radius: var(--lvm-r-full);
    border: 1.5px solid var(--lvm-border-m);
    background: transparent;
    color: var(--lvm-text-2);
    white-space: nowrap;
    flex-shrink: 0;
    cursor: pointer;
    transition: all var(--lvm-t-fast);
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.lvm-filters a:hover,
.lvm-filters button:hover {
    border-color: var(--lvm-rouge);
    color: var(--lvm-rouge);
}

.lvm-filters a.active,
.lvm-filters .current-cat a,
.lvm-filters button.active {
    background: var(--lvm-rouge);
    color: var(--lvm-blanc);
    border-color: var(--lvm-rouge);
}

/* ============================================================
   FORMULAIRES — .lvm-form + WPForms (wireframe exact)
   ============================================================ */

.lvm-form input,
.lvm-form select,
.lvm-form textarea,
.wpforms-form input[type="text"],
.wpforms-form input[type="email"],
.wpforms-form input[type="tel"],
.wpforms-form input[type="url"],
.wpforms-form input[type="number"],
.wpforms-form select,
.wpforms-form textarea {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm) !important;
    border: 1px solid var(--lvm-border-m);
    border-radius: var(--lvm-r-md) !important;
    padding: var(--lvm-4) var(--lvm-4);
    width: 100%;
    box-sizing: border-box;
    transition:
        border-color var(--lvm-t-base),
        box-shadow var(--lvm-t-base) !important;
    background: var(--lvm-gris-c);
    color: var(--lvm-text-1) !important;
    outline: none;
}

div.wpforms-container-full .wpforms-form textarea.wpforms-field-large {
    height: 150px !important;
}

button#wpforms-submit-669 {
    background: var(--lvm-primary) !important;
    padding: 5px 15px !important;
}

.lvm-form input::placeholder,
.wpforms-form input::placeholder,
.wpforms-form textarea::placeholder {
    color: var(--lvm-gris-m);
}

.lvm-form input:focus,
.lvm-form select:focus,
.lvm-form textarea:focus,
.wpforms-form input:focus,
.wpforms-form select:focus,
.wpforms-form textarea:focus {
    border-color: #c9a84c !important;
    box-shadow: 0 0 0 3px rgba(201, 168, 76, 0.12) !important;
    background: var(--lvm-blanc) !important;
    outline: none !important;
}

.lvm-form label,
.wpforms-form .wpforms-field-label {
    font-family: var(--lvm-fb);
    font-weight: 600;
    font-size: var(--lvm-xs) !important;
    color: var(--lvm-text-2);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    display: block;
    margin-bottom: var(--lvm-2) !important;
}

/* .wpforms-form .wpforms-required-label {
    display: none;
} */

.lvm-form textarea,
.wpforms-form textarea {
    min-height: 120px;
    resize: vertical;
}

.wpforms-form .wpforms-field-container {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: var(--lvm-4);
}

.wpforms-form .wpforms-field {
    flex: 1 1 100%;
    margin: 0 !important;
    padding: 0 !important;
}

.wpforms-form .wpforms-field.wpforms-one-half {
    flex: 1 1 calc(50% - var(--lvm-4) / 2);
    min-width: 0;
}

.wpforms-form .wpforms-submit-container {
    margin-top: var(--lvm-4);
}

.wpforms-form button[type="submit"],
.wpforms-form input[type="submit"] {
    font-family: var(--lvm-fb) !important;
    font-size: var(--lvm-sm) !important;
    font-weight: 700 !important;
    letter-spacing: 0.05em !important;
    text-transform: uppercase !important;
    background: var(--lvm-noir-p) !important;
    color: var(--lvm-blanc) !important;
    border: none !important;
    border-radius: var(--lvm-r-full) !important;
    padding: var(--lvm-4) var(--lvm-8) !important;
    width: 100% !important;
    cursor: pointer !important;
    transition:
        background var(--lvm-t-base),
        transform var(--lvm-t-base),
        box-shadow var(--lvm-t-base) !important;
}

.lvm-form button[type="submit"] {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    background: var(--lvm-btn-submit-bg, var(--lvm-noir-p));
    color: var(--lvm-btn-submit-text, var(--lvm-blanc));
    border: 1px solid var(--lvm-btn-submit-border, transparent);
    border-radius: var(--lvm-r-full);
    padding: var(--lvm-4) var(--lvm-8);
    width: 100%;
    cursor: pointer;
    transition:
        background var(--lvm-t-base),
        transform var(--lvm-t-base),
        box-shadow var(--lvm-t-base);
}

.wpforms-form button[type="submit"]:hover {
    background: var(--lvm-rouge) !important;
    transform: translateY(-2px) !important;
    box-shadow: var(--lvm-sh-btn) !important;
}

.lvm-form button[type="submit"]:hover {
    background: var(--lvm-btn-submit-bg-h, var(--lvm-rouge));
    border-color: var(--lvm-btn-submit-border-h, transparent);
    color: var(--lvm-btn-submit-text-h, var(--lvm-blanc));
    transform: translateY(-2px);
    box-shadow: var(--lvm-sh-btn);
}

.wpforms-form .wpforms-error {
    font-size: var(--lvm-xs) !important;
    color: var(--lvm-rouge) !important;
    margin-top: var(--lvm-1) !important;
}

.wpforms-form .wpforms-field-error-message {
    display: block;
    color: var(--lvm-rouge);
    font-size: var(--lvm-xs);
    margin-top: 4px;
}

div#wpforms-669-field_1-container input {
    width: 48.5% !important;
}

/* Form layout */
.lvm-form > * + * {
    margin-top: var(--lvm-3);
}

.lvm-form > button[type="submit"] {
    width: 100%;
    margin-top: var(--lvm-1);
}

/* ============================================================
   CONTACT BLOCK
   ============================================================ */

.lvm-page-contact .lvm-grid--2 > div:last-child {
    position: sticky;
    top: var(--lvm-8);
    align-self: start;
}

.lvm-contact-block {
    background: var(--lvm-blanc);
    border: 1px solid var(--lvm-border);
    border-radius: var(--lvm-r-md);
    padding: var(--lvm-6);
    margin-bottom: var(--lvm-4);
    transition:
        border-color var(--lvm-t-fast),
        box-shadow var(--lvm-t-fast);
}

.lvm-contact-block:hover {
    border-color: #c9a84c;
    box-shadow: 0 4px 16px rgba(201, 168, 76, 0.08);
}

.lvm-contact-block:last-child {
    margin-bottom: 0;
}

.lvm-contact-block h3 {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-lg);
    margin-bottom: var(--lvm-3);
    letter-spacing: 0.03em;
}

.lvm-contact-block p {
    font-size: var(--lvm-sm);
    color: var(--lvm-text-2);
    line-height: 1.8;
}

.lvm-contact-block a {
    color: #c9a84c;
    text-decoration: none;
    font-weight: 500;
}

.lvm-contact-block a:hover {
    color: var(--lvm-rouge);
}

/* ============================================================
   WOOCOMMERCE — EDIT ACCOUNT FORM
   ============================================================ */

.woocommerce-EditAccountForm {
    max-width: 640px;
}

.woocommerce-EditAccountForm fieldset {
    border: 1.5px solid var(--lvm-border);
    border-radius: var(--lvm-r-md);
    padding: var(--lvm-6);
    margin: var(--lvm-6) 0 0;
}

.woocommerce-EditAccountForm fieldset legend {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-lg);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: 0 var(--lvm-2);
}

/* Page-level headings for contact/pub */
.lvm-page-contact .lvm-section__title,
.lvm-page-contact h1 {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-3xl);
    color: var(--lvm-noir-p);
    text-align: center;
    margin-bottom: var(--lvm-2);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.lvm-page-contact .lvm-section__subtitle {
    font-family: var(--lvm-fs);
    font-style: italic;
    color: var(--lvm-gris-f, var(--lvm-text-2));
    font-size: var(--lvm-lg);
    text-align: center;
    margin-bottom: var(--lvm-10);
}

/* ============================================================
   LEGAL CONTENT (mentions légales, CGV)
   ============================================================ */

/* Legal pages — smaller text */
.page-id-53 .lvm-page-content,
.page-id-417 .lvm-page-content,
.page-id-3 .lvm-page-content,
.lvm-legal-content {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: var(--lvm-text-1);
    line-height: 1.9;
}

.lvm-legal-content h2 {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-xl);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-top: var(--lvm-8);
    margin-bottom: var(--lvm-3);
    padding-bottom: var(--lvm-2);
    border-bottom: 2px solid var(--lvm-border);
}

.lvm-legal-content h3 {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-lg);
    color: var(--lvm-noir-p);
    margin-top: var(--lvm-6);
    margin-bottom: var(--lvm-2);
}

.lvm-legal-content p {
    margin-bottom: var(--lvm-4);
    color: var(--lvm-text-2);
}

.lvm-legal-content ul,
.lvm-legal-content ol {
    margin-bottom: var(--lvm-4);
    padding-left: var(--lvm-6);
    color: var(--lvm-text-2);
}

.lvm-legal-content li {
    margin-bottom: var(--lvm-2);
}

.lvm-legal-content a {
    color: var(--lvm-rouge);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.lvm-legal-content a:hover {
    color: var(--lvm-rouge-h);
}

.lvm-legal-content strong {
    color: var(--lvm-noir-p);
    font-weight: 600;
}

/* ============================================================
   DEFAULT PAGE CONTENT
   ============================================================ */

.lvm-page-content {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-base);
    color: var(--lvm-text-1);
    line-height: 1.8;
}

.lvm-page-content h2 {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-2xl);
    color: var(--lvm-noir-p);
    margin-top: var(--lvm-8);
    margin-bottom: var(--lvm-3);
}

.lvm-page-content h3 {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-xl);
    color: var(--lvm-noir-p);
    margin-top: var(--lvm-6);
    margin-bottom: var(--lvm-2);
}

.lvm-page-content p {
    margin-bottom: var(--lvm-4);
}

.lvm-page-content img {
    max-width: 100%;
    height: auto;
    border-radius: var(--lvm-r-md);
    margin: var(--lvm-4) 0;
}

.lvm-page-content ul,
.lvm-page-content ol {
    margin-bottom: var(--lvm-4);
    padding-left: var(--lvm-6);
}

.lvm-page-content li {
    margin-bottom: var(--lvm-2);
}

/* ============================================================
   PAGINATION
   ============================================================ */

.lvm-pagination {
    margin: var(--lvm-8) 0;
    text-align: center;
}

.lvm-pagination .nav-links {
    display: flex;
    gap: var(--lvm-2);
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
}

.lvm-pagination a,
.lvm-pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 0 var(--lvm-3);
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    font-weight: 500;
    color: var(--lvm-text-2);
    border: 1.5px solid var(--lvm-border);
    border-radius: var(--lvm-r-sm);
    text-decoration: none;
    transition: all var(--lvm-t-fast);
}

.lvm-pagination a:hover {
    border-color: var(--lvm-rouge);
    color: var(--lvm-rouge);
}

.lvm-pagination .current {
    background: var(--lvm-rouge);
    color: var(--lvm-blanc);
    border-color: var(--lvm-rouge);
}

/* ============================================================
   UTILITAIRES
   ============================================================ */

.lvm-subtitle {
    font-family: var(--lvm-fs);
    font-style: italic;
    color: var(--lvm-text-2);
}

.lvm-cat-label {
    font-size: var(--lvm-xs);
    font-weight: 600;
    color: var(--lvm-rouge);
    letter-spacing: 1px;
    text-transform: uppercase;
    margin-bottom: var(--lvm-1);
}

/* Placeholder image */
.lvm-placeholder {
    background: var(--lvm-bg-2);
    border-radius: var(--lvm-r-lg);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--lvm-gris-m);
    font-size: var(--lvm-4xl);
    aspect-ratio: 3/4;
}

.lvm-placeholder--tall {
    height: 250px;
    aspect-ratio: auto;
}

/* ── Accessibility: focus-visible (WCAG 2.4.7) ── */
:focus-visible {
    outline: 2px solid var(--lvm-rouge);
    outline-offset: 3px;
    border-radius: 2px;
}

:focus:not(:focus-visible) {
    outline: none;
}

/* ── Accessibility: prefers-reduced-motion (WCAG 2.3.3) ── */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* ============================================================
   COMPONENTS
   ============================================================ */

/* ============================================================
   LV MEDIAS — Composants Premium
   À ajouter à la suite du style.css existant
   ============================================================ */

/* ============================================================
   NEWSLETTER CTA
   ============================================================ */

.lvm-newsletter {
    background: linear-gradient(135deg, var(--lvm-noir-p), var(--lvm-bleu));
    padding: var(--lvm-10) var(--lvm-8);
    position: relative;
    overflow: hidden;
    border-radius: var(--lvm-r-lg);
    max-width: var(--lvm-container);
    margin: var(--lvm-6) auto;
    box-shadow: var(--lvm-sh-lg);
}

.lvm-newsletter::before {
    content: "";
    position: absolute;
    top: -40%;
    right: -15%;
    width: 500px;
    height: 500px;
    background: radial-gradient(
        circle,
        rgba(255, 183, 3, 0.1),
        transparent 60%
    );
    pointer-events: none;
}

.lvm-newsletter__inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--lvm-10);
    max-width: var(--lvm-container);
    margin: 0 auto;
    align-items: center;
    position: relative;
    z-index: 1;
}

.lvm-newsletter__kicker {
    font-size: var(--lvm-xs);
    font-weight: 700;
    color: var(--lvm-jaune);
    letter-spacing: 2px;
    text-transform: uppercase;
    margin-bottom: var(--lvm-2);
}

.lvm-newsletter__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-3xl);
    color: var(--lvm-blanc);
    margin-bottom: var(--lvm-3);
}

.lvm-newsletter__text {
    font-size: var(--lvm-sm);
    color: #fff;
    line-height: 1.8;
}

.lvm-newsletter__fallback {
    display: flex;
    gap: var(--lvm-3);
}

.lvm-newsletter__fallback input[type="email"] {
    flex: 1;
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    padding: var(--lvm-3) var(--lvm-4);
    border: 2px solid rgba(255, 255, 255, 0.15);
    border-radius: var(--lvm-r-full);
    background: rgba(255, 255, 255, 0.05);
    color: var(--lvm-blanc);
}

.lvm-newsletter__fallback input[type="email"]:focus {
    border-color: var(--lvm-rouge);
}

.lvm-newsletter__fallback input[type="email"]::placeholder {
    color: rgba(255, 255, 255, 0.3);
}

.lvm-newsletter__legal {
    font-size: var(--lvm-xs);
    color: #fff;
    margin-top: var(--lvm-3);
    line-height: 1.6;
}

.lvm-newsletter__legal a {
    color: #e63946;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* WPForms dans newsletter — layout horizontal, label masqué, padding reset */
.lvm-newsletter .wpforms-field-container {
    margin: 0;
}

.lvm-newsletter .wpforms-field {
    margin-bottom: 0;
    padding-bottom: 0;
}

/* Label masqué — placeholder fait office, pas besoin de floating label */
.lvm-newsletter .wpforms-field-label {
    display: none;
}

/* Disposition input + bouton côte à côte */
.lvm-newsletter .wpforms-form form {
    display: flex;
    gap: var(--lvm-3);
    align-items: flex-start;
    flex-wrap: wrap;
}

.lvm-newsletter .wpforms-field-container {
    flex: 1;
    min-width: 200px;
}

.lvm-newsletter .wpforms-submit-container {
    flex-shrink: 0;
}

.lvm-newsletter .wpforms-form input[type="email"],
.lvm-newsletter .wpforms-form input[type="text"] {
    width: 100%;
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    padding: var(--lvm-3) var(--lvm-5);
    border: 2px solid rgba(255, 255, 255, 0.15);
    border-radius: var(--lvm-r-full);
    background: rgba(255, 255, 255, 0.05);
    color: var(--lvm-blanc);
    outline: none;
    transition: border-color var(--lvm-t-fast);
    box-sizing: border-box;
}

.lvm-newsletter .wpforms-form input:focus {
    border-color: var(--lvm-jaune);
    box-shadow: 0 0 0 3px rgba(255, 183, 3, 0.15);
}

.lvm-newsletter .wpforms-form button[type="submit"] {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: var(--lvm-3) var(--lvm-6);
    background: var(--lvm-jaune);
    color: var(--lvm-noir-p);
    border: none;
    border-radius: var(--lvm-r-full);
    cursor: pointer;
    transition: background var(--lvm-t-fast);
    white-space: nowrap;
}

.lvm-newsletter .wpforms-form button[type="submit"]:hover {
    background: var(--lvm-jaune);
}

@media (max-width: 768px) {
    .lvm-newsletter {
        padding: var(--lvm-12) var(--lvm-4);
    }

    .lvm-newsletter__inner {
        grid-template-columns: 1fr;
        gap: var(--lvm-6);
    }

    .lvm-newsletter__fallback {
        flex-direction: column;
    }
}

@media (max-width: 480px) {
    .lvm-newsletter__fallback input[type="email"] {
        min-width: 0;
    }
}

/* ============================================================
   RÉASSURANCE FICHE PRODUIT
   ============================================================ */

.lvm-reassurance {
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap: 0;
    /* margin-top: var(--lvm-4); */
    padding: 0 0 var(--lvm-4);
    /* background: var(--lvm-gris-c);
    border-top: 1px solid var(--lvm-border);
    border-radius: var(--lvm-r-md); */
}

.lvm-reassurance__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    /* justify-content: center; */
    gap: var(--lvm-1);
    flex: 1 1 0;
    min-width: 0;
    position: relative;
    text-align: center;
    font-size: var(--lvm-xs);
    font-weight: 500;
    color: var(--lvm-noir-p);
    padding: var(--lvm-2) var(--lvm-3);
}

.lvm-reassurance__item:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 10%;
    bottom: 10%;
    right: 0;
    width: 1px;
    background: var(--lvm-border);
}

.lvm-reassurance__icon {
    margin-bottom: 10px;
}

.lvm-reassurance__icon svg {
    font-size: var(--lvm-xl);
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.lvm-reassurance__text {
    line-height: 1.3;
}

@media (max-width: 768px) {
    .lvm-reassurance {
        flex-wrap: wrap;
    }

    .lvm-reassurance__item {
        /* flex: 1 1 50%; */
        /* padding: var(--lvm-3); */
    }

    /* .lvm-reassurance__item:not(:last-child)::after {
        top: auto;
        bottom: 0;
        left: 10%;
        right: 10%;
        width: auto;
        height: 1px;
    } */

    /* .lvm-reassurance__item:nth-child(2n)::after {
        display: none;
    } */
}

@media (max-width: 600px) {
    .lvm-reassurance {
        flex-direction: column;
    }
    .lvm-reassurance__item:not(:last-child)::after {
        display: none;
    }
}

/* ============================================================
   RÉASSURANCE PANIER
   ============================================================ */

.lvm-cart-trust {
    background: var(--lvm-bg-2);
    border-radius: var(--lvm-r-lg);
    padding: var(--lvm-6);
    margin-top: var(--lvm-6);
}

.lvm-cart-trust__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-lg);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: var(--lvm-4);
    text-align: center;
}

.lvm-cart-trust__items {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--lvm-3);
    margin-bottom: var(--lvm-4);
}

.lvm-cart-trust__item {
    display: flex;
    align-items: center;
    gap: var(--lvm-2);
    font-size: var(--lvm-sm);
    font-weight: 500;
    color: var(--lvm-text-1);
}

.lvm-cart-trust__item span:first-child {
    font-size: var(--lvm-xl);
}

.lvm-cart-trust__payment {
    text-align: center;
    padding-top: var(--lvm-3);
    border-top: 1px solid var(--lvm-border);
}

.lvm-cart-trust__payment img {
    height: 28px;
    opacity: 0.5;
    transition: opacity var(--lvm-t-fast);
}

.lvm-cart-trust__payment img:hover {
    opacity: 0.8;
}

/* ============================================================
   CHECKOUT PREMIUM
   ============================================================ */

/* Barre de progression */
.lvm-checkout-header {
    margin-bottom: var(--lvm-8);
}

.lvm-checkout-progress {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    margin-bottom: var(--lvm-4);
}

.lvm-checkout-progress__step {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--lvm-1);
}

.lvm-checkout-progress__num {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    font-weight: 700;
    background: var(--lvm-bg-2);
    color: var(--lvm-gris-m);
    border: 2px solid var(--lvm-border);
    transition: all var(--lvm-t-base);
}

.lvm-checkout-progress__step.active .lvm-checkout-progress__num {
    background: var(--lvm-rouge);
    color: var(--lvm-blanc);
    border-color: var(--lvm-rouge);
    box-shadow: 0 4px 15px rgba(230, 57, 70, 0.25);
}

.lvm-checkout-progress__step.completed .lvm-checkout-progress__num {
    background: var(--lvm-success);
    color: var(--lvm-blanc);
    border-color: var(--lvm-success);
}

.lvm-checkout-progress__label {
    font-size: var(--lvm-xs);
    font-weight: 600;
    color: var(--lvm-gris-m);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.lvm-checkout-progress__step.active .lvm-checkout-progress__label {
    color: var(--lvm-noir-p);
}

.lvm-checkout-progress__step.completed .lvm-checkout-progress__label {
    color: var(--lvm-success);
}

.lvm-checkout-progress__line {
    flex: 1;
    height: 2px;
    background: var(--lvm-border);
    max-width: 120px;
    margin: 0 var(--lvm-2);
    margin-bottom: 20px;
    /* Compenser le label */
}

.lvm-checkout-progress__line.active {
    background: linear-gradient(90deg, var(--lvm-success), var(--lvm-rouge));
}

/* Trust bar checkout */
.lvm-checkout-trust {
    text-align: center;
    font-size: var(--lvm-xs);
    font-weight: 500;
    color: var(--lvm-gris-f);
    letter-spacing: 0.3px;
    padding: var(--lvm-2) var(--lvm-4);
    background: var(--lvm-bg-2);
    border-radius: var(--lvm-r-full);
    display: inline-block;
    margin: 0 auto;
    width: 100%;
}

/* Sous le bouton payer */
.lvm-checkout-submit-trust {
    text-align: center;
    margin-top: var(--lvm-4);
    padding-top: var(--lvm-3);
    border-top: 1px solid var(--lvm-border);
}

.lvm-checkout-submit-trust p:first-child {
    font-size: var(--lvm-sm);
    font-weight: 700;
    color: var(--lvm-success);
    margin-bottom: var(--lvm-1);
}

.lvm-checkout-submit-trust p:last-child {
    font-size: var(--lvm-xs);
    color: var(--lvm-gris-f);
}

/* ============================================================
   BARRE DE CONFIANCE SOUS HEADER
   ============================================================ */

.lvm-trust-bar {
    background: var(--lvm-bg-2);
    border-bottom: 1px solid var(--lvm-border);
}

.lvm-trust-bar__inner {
    display: flex;
    justify-content: center;
    gap: var(--lvm-8);
    padding: var(--lvm-2) var(--lvm-4);
    max-width: var(--lvm-container);
    margin: 0 auto;
    font-size: var(--lvm-xs);
    font-weight: 500;
    color: var(--lvm-text-2);
}

@media (max-width: 768px) {
    .lvm-trust-bar__inner {
        gap: var(--lvm-4);
        overflow-x: auto;
        justify-content: flex-start;
    }

    .lvm-trust-bar__inner span {
        white-space: nowrap;
        flex-shrink: 0;
    }
}

/* ============================================================
   BADGE LIVRAISON GRATUITE — Fiche produit
   ============================================================ */

.lvm-free-shipping {
    display: inline-flex;
    align-items: center;
    gap: var(--lvm-2);
    font-size: var(--lvm-xs);
    font-weight: 600;
    color: var(--lvm-success);
    background: rgba(46, 204, 113, 0.06);
    padding: var(--lvm-2) var(--lvm-3);
    border-radius: var(--lvm-r-sm);
    margin-bottom: var(--lvm-2);
}

/* ============================================================
   FLIPHTML5 EMBED
   ============================================================ */

.lvm-flip-embed {
    border-radius: var(--lvm-r-lg);
    overflow: hidden;
    box-shadow: var(--lvm-sh-card);
    aspect-ratio: 4/3;
}

.lvm-flip-embed iframe {
    width: 100%;
    height: 100%;
    border: none;
}

/* ============================================================
   THANK YOU PAGE
   ============================================================ */

.lvm-thankyou {
    text-align: center;
    padding: var(--lvm-8);
    background: linear-gradient(
        135deg,
        rgba(46, 204, 113, 0.04),
        rgba(255, 183, 3, 0.04)
    );
    border-radius: var(--lvm-r-lg);
    margin-bottom: var(--lvm-8);
}

.lvm-thankyou__icon {
    font-size: var(--lvm-5xl);
    margin-bottom: var(--lvm-3);
}

.lvm-thankyou__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-3xl);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: var(--lvm-3);
}

.lvm-thankyou__text {
    font-size: var(--lvm-sm);
    color: var(--lvm-text-2);
    line-height: 1.8;
    max-width: 600px;
    margin: 0 auto;
}

.lvm-thankyou__text a {
    color: var(--lvm-rouge);
    font-weight: 600;
}

/* Page confirmation commande (template WC classique) */
.woocommerce-order-received .lvm-page-content {
    max-width: var(--lvm-container);
    margin: 0 auto;
    padding: var(--lvm-6) var(--lvm-4);
    overflow-wrap: break-word;
    word-break: break-word;
}

.woocommerce-order-received .woocommerce {
    max-width: 900px;
    margin: 0 auto;
}

.woocommerce-thankyou-order-received {
    text-align: center;
    font-family: var(--lvm-fd);
    font-size: var(--lvm-2xl);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    padding: var(--lvm-8) var(--lvm-6);
    background: linear-gradient(
        135deg,
        rgba(46, 204, 113, 0.06),
        rgba(255, 183, 3, 0.06)
    );
    border-radius: var(--lvm-r-lg);
    margin-bottom: var(--lvm-6);
}

.woocommerce-order-received .woocommerce-notice--success::before {
    display: none;
}

.woocommerce-order-overview {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--lvm-6);
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: var(--lvm-3);
}

.woocommerce-order-overview li {
    background: var(--lvm-gris-c);
    border-radius: var(--lvm-r-md);
    padding: var(--lvm-4);
    text-align: center;
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    color: var(--lvm-text-2);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    overflow-wrap: break-word;
}

.woocommerce-order-overview li strong {
    display: block;
    font-size: var(--lvm-sm);
    color: var(--lvm-noir-p);
    margin-top: 4px;
    text-transform: none;
    word-break: break-all;
}

.woocommerce-order-received h2 {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-xl);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin: var(--lvm-8) 0 var(--lvm-4);
    padding-bottom: var(--lvm-3);
    border-bottom: 2px solid var(--lvm-gris-c);
}

.woocommerce-order-received table {
    width: 100%;
    border-collapse: collapse;
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    margin-bottom: var(--lvm-6);
    table-layout: fixed;
}

.woocommerce-order-received table th {
    text-align: left;
    font-weight: 700;
    color: var(--lvm-noir-p);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    font-size: var(--lvm-xs);
    padding: var(--lvm-3) var(--lvm-3);
    border-bottom: 2px solid var(--lvm-noir-p);
}

.woocommerce-order-received table td {
    padding: var(--lvm-3) var(--lvm-3);
    border-bottom: 1px solid var(--lvm-border);
    color: var(--lvm-text-1);
    overflow-wrap: break-word;
}

.woocommerce-order-received table tfoot th,
.woocommerce-order-received table tfoot td {
    border-bottom: none;
    border-top: 2px solid var(--lvm-noir-p);
    font-weight: 700;
}

.woocommerce-order-received address {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    font-style: normal;
    color: var(--lvm-text-2);
    line-height: 1.8;
    background: var(--lvm-gris-c);
    border-radius: var(--lvm-r-md);
    padding: var(--lvm-5);
}

.woocommerce-order-received .woocommerce-customer-details {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--lvm-4);
    margin-top: var(--lvm-4);
}

/* Boutons actions (voir commande, etc.) */
.woocommerce-order-received .woocommerce-button,
.woocommerce-order-received .button {
    font-family: var(--lvm-fb) !important;
    font-weight: 700 !important;
    font-size: var(--lvm-sm) !important;
    background: var(--lvm-noir-p) !important;
    color: var(--lvm-blanc) !important;
    border-radius: var(--lvm-r-full) !important;
    padding: var(--lvm-3) var(--lvm-6) !important;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border: none !important;
    text-decoration: none;
    display: inline-block;
    margin-top: var(--lvm-4);
    transition: all var(--lvm-t-base);
}

.woocommerce-order-received .woocommerce-button:hover,
.woocommerce-order-received .button:hover {
    background: var(--lvm-rouge) !important;
    transform: translateY(-2px);
}

/* Tableau commandes (mon compte — orders-table) */
.woocommerce-orders-table {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
}

.woocommerce-orders-table__row {
    border-bottom: 1px solid var(--lvm-border);
}

.woocommerce-orders-table__cell {
    padding: var(--lvm-3) var(--lvm-2);
}

@media (max-width: 768px) {
    .woocommerce-order-received .woocommerce-customer-details {
        grid-template-columns: 1fr;
    }

    .woocommerce-order-overview {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ============================================================
   PANIER — STYLE PREMIUM
   ============================================================ */

/* Totaux panier */
.woocommerce .cart_totals {
    background: var(--lvm-bg-2);
    border-radius: var(--lvm-r-lg) !important;
    padding: var(--lvm-6) !important;
}

.woocommerce .cart_totals h2 {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-xl);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.woocommerce .cart_totals table {
    border: none !important;
}

.woocommerce .cart_totals table td,
.woocommerce .cart_totals table th {
    border-color: var(--lvm-border) !important;
    padding: var(--lvm-3) 0 !important;
}

.woocommerce .cart_totals .order-total td {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-2xl) !important;
    color: var(--lvm-rouge) !important;
}

/* Bouton coupon */
.woocommerce .coupon .button {
    background: var(--lvm-noir-p) !important;
    border-radius: var(--lvm-r-full) !important;
}

/* Remove product (X) */
.woocommerce a.remove {
    color: var(--lvm-gris-m) !important;
    font-size: var(--lvm-xl) !important;
    width: 28px !important;
    height: 28px !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: all var(--lvm-t-fast);
}

.woocommerce a.remove:hover {
    background: var(--lvm-rouge) !important;
    color: var(--lvm-blanc) !important;
}

/* ============================================================
   CHECKOUT — STYLE PREMIUM
   ============================================================ */

/* Colonnes checkout */
.woocommerce-checkout .col2-set {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--lvm-8);
}

@media (max-width: 768px) {
    .woocommerce-checkout .col2-set {
        grid-template-columns: 1fr;
    }
}

/* Sections checkout */
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 {
    background: var(--lvm-blanc);
    border-radius: var(--lvm-r-lg);
    padding: var(--lvm-6);
    box-shadow: var(--lvm-sh-card);
}

/* Order review */
.woocommerce-checkout #order_review {
    background: var(--lvm-bg-2);
    border-radius: var(--lvm-r-lg);
    padding: var(--lvm-6);
}

.woocommerce-checkout #order_review_heading {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-xl);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: var(--lvm-4);
}

/* Payment methods */
.woocommerce-checkout #payment {
    background: var(--lvm-blanc) !important;
    border-radius: var(--lvm-r-lg) !important;
    border: 1px solid var(--lvm-border) !important;
}

.woocommerce-checkout #payment ul.payment_methods li {
    padding: var(--lvm-4) !important;
    border-bottom: 1px solid var(--lvm-border);
}

.woocommerce-checkout #payment ul.payment_methods li label {
    font-family: var(--lvm-fb);
    font-weight: 700;
    font-size: var(--lvm-sm);
    color: var(--lvm-noir-p);
}

.woocommerce-checkout #payment div.payment_box {
    background: var(--lvm-bg-2) !important;
    border-radius: var(--lvm-r-sm);
    font-size: var(--lvm-sm);
    color: var(--lvm-text-2);
}

/* ============================================================
   404 PAGE
   ============================================================ */

.lvm-404 {
    min-height: 100vh;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--lvm-gris-c, #fefae0);
    position: relative;
    overflow: hidden;
    padding: 2rem;
}

.lvm-404::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: radial-gradient(
        circle,
        rgba(230, 57, 70, 0.07) 1.5px,
        transparent 1.5px
    );
    background-size: 20px 20px;
    animation: dots-drift 25s linear infinite;
}

@keyframes dots-drift {
    0% {
        background-position: 0 0;
    }

    100% {
        background-position: 20px 40px;
    }
}

.lvm-404__orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(100px);
    pointer-events: none;
    animation: orb-float 10s ease-in-out infinite;
}

.lvm-404__orb--1 {
    width: 500px;
    height: 500px;
    background: rgba(230, 57, 70, 0.12);
    top: -15%;
    right: -10%;
}

.lvm-404__orb--2 {
    width: 400px;
    height: 400px;
    background: rgba(255, 183, 3, 0.15);
    bottom: -15%;
    left: -10%;
    animation-delay: -4s;
}

.lvm-404__orb--3 {
    width: 300px;
    height: 300px;
    background: rgba(29, 53, 87, 0.08);
    top: 50%;
    left: 40%;
    animation-delay: -7s;
}

@keyframes orb-float {
    0%,
    100% {
        transform: translate(0, 0) scale(1);
    }

    25% {
        transform: translate(25px, -20px) scale(1.05);
    }

    50% {
        transform: translate(-15px, 25px) scale(0.95);
    }

    75% {
        transform: translate(10px, 10px) scale(1.02);
    }
}

.lvm-404__content {
    position: relative;
    z-index: 1;
    text-align: center;
    max-width: 650px;
}

.lvm-404__number {
    font-family: var(--lvm-fd, "Bebas Neue", sans-serif);
    font-size: clamp(10rem, 25vw, 18rem);
    line-height: 0.8;
    letter-spacing: 0.06em;
    position: relative;
    display: inline-block;
    animation: number-entrance 0.7s cubic-bezier(0.34, 1.56, 0.64, 1) 0.1s both;
}

@keyframes number-entrance {
    0% {
        opacity: 0;
        transform: translateY(50px) scale(0.9);
    }

    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.lvm-404__number span {
    background: linear-gradient(
        135deg,
        var(--lvm-rouge, #e63946) 0%,
        #c1121f 40%,
        var(--lvm-rouge, #e63946) 70%,
        var(--lvm-jaune, #ffb703) 100%
    );
    background-size: 200% 200%;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    animation: gradient-shift 5s ease infinite;
}

@keyframes gradient-shift {
    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}

.lvm-404__number::before,
.lvm-404__number::after {
    content: "404";
    position: absolute;
    top: 0;
    left: 0;
    font-family: var(--lvm-fd, "Bebas Neue", sans-serif);
    font-size: inherit;
    letter-spacing: inherit;
    line-height: inherit;
    opacity: 0;
}

.lvm-404__number::before {
    color: var(--lvm-rouge, #e63946);
    animation: glitch-1 4s ease-in-out infinite;
}

.lvm-404__number::after {
    color: var(--lvm-bleu-p, #1d3557);
    animation: glitch-2 4s ease-in-out infinite;
}

@keyframes glitch-1 {
    0%,
    92%,
    100% {
        opacity: 0;
        transform: translate(0);
    }

    93% {
        opacity: 0.3;
        transform: translate(-5px, -2px);
    }

    95% {
        opacity: 0;
        transform: translate(3px, 1px);
    }

    97% {
        opacity: 0.2;
        transform: translate(-2px, 3px);
    }
}

@keyframes glitch-2 {
    0%,
    90%,
    100% {
        opacity: 0;
        transform: translate(0);
    }

    92% {
        opacity: 0.25;
        transform: translate(4px, 2px);
    }

    94% {
        opacity: 0;
        transform: translate(-3px, -3px);
    }

    96% {
        opacity: 0.15;
        transform: translate(3px, -1px);
    }
}

.lvm-404__title {
    font-family: var(--lvm-fd, "Bebas Neue", sans-serif);
    font-size: clamp(1.4rem, 3vw, 2rem);
    color: var(--lvm-noir-p, #1a1a2e);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    margin: 1.5rem 0 0.5rem;
    animation: fade-up 0.6s ease 0.3s both;
}

.lvm-404__subtitle {
    font-family: var(--lvm-fs, "Playfair Display", serif);
    font-style: italic;
    font-size: clamp(0.85rem, 1.5vw, 1.1rem);
    color: var(--lvm-gris-f, #8a8580);
    margin-bottom: 2.5rem;
    animation: fade-up 0.6s ease 0.4s both;
}

@keyframes fade-up {
    0% {
        opacity: 0;
        transform: translateY(15px);
    }

    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

.lvm-404__ctas {
    display: flex;
    gap: 1rem;
    justify-content: center;
    flex-wrap: wrap;
    animation: fade-up 0.6s ease 0.5s both;
}

.lvm-404__btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-family: var(--lvm-fb, "DM Sans", sans-serif);
    font-size: var(--lvm-base);
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    text-decoration: none;
    padding: 0.8rem 2rem;
    border-radius: 50px;
    transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.lvm-404__btn--primary {
    background: var(--lvm-rouge, #e63946);
    color: #fff;
    box-shadow: 0 6px 20px rgba(230, 57, 70, 0.2);
}

.lvm-404__btn--primary:hover {
    background: #c1121f;
    color: #fff;
    transform: translateY(-3px) scale(1.02);
    box-shadow: 0 12px 35px rgba(230, 57, 70, 0.35);
}

.lvm-404__btn--outline {
    background: transparent;
    color: var(--lvm-noir-p, #1a1a2e);
    border: 2px solid var(--lvm-noir-p, #1a1a2e);
}

.lvm-404__btn--outline:hover {
    background: var(--lvm-noir-p, #1a1a2e);
    color: #fff;
    transform: translateY(-3px);
}

@media (max-width: 768px) {
    .lvm-404 {
        padding: 1.5rem;
        overflow: hidden;
    }

    .lvm-404__orb {
        display: none;
    }

    .lvm-404__ctas {
        flex-direction: column;
        align-items: center;
    }

    .lvm-404__btn {
        width: 100%;
        max-width: 280px;
        justify-content: center;
    }
}

/* ============================================================
   GRID MODIFIERS
   ============================================================ */

.lvm-grid--vcenter {
    align-items: center;
}

/* ============================================================
   MAGAZINE VEDETTE (homepage P1)
   ============================================================ */

.lvm-vedette__grid {
    gap: var(--lvm-8);
    align-items: center;
}

.lvm-vedette__cover {
    border-radius: var(--lvm-r-lg);
    width: 100%;
}

.lvm-vedette__placeholder {
    height: 350px;
    aspect-ratio: 3/4;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--lvm-gris-c, #f5f0eb);
    border-radius: var(--lvm-r-lg);
    font-size: var(--lvm-6xl);
}

.lvm-vedette__title {
    font-size: var(--lvm-2xl);
    margin: 0.75rem 0 0.25rem;
}

.lvm-vedette__subtitle {
    font-family: var(--lvm-fs);
    font-style: italic;
    color: var(--lvm-gris-f);
    margin-bottom: var(--lvm-4);
}

.lvm-vedette__ctas {
    display: flex;
    gap: var(--lvm-3);
    margin-top: var(--lvm-4);
}

.lvm-badge--reversible {
    background: rgba(232, 67, 147, 0.1);
    color: #e04397;
}

/* ============================================================
   DASHBOARD CARDS (Mon Compte P8)
   ============================================================ */

.lvm-dashboard__welcome {
    text-align: center;
    font-size: var(--lvm-sm);
    color: var(--lvm-text-1);
    line-height: 1.8;
    margin-bottom: var(--lvm-6);
}

.lvm-dashboard__welcome h2 {
    font-size: var(--lvm-2xl);
    margin-bottom: var(--lvm-1);
}

.lvm-dashboard__welcome p {
    font-size: var(--lvm-sm);
    color: var(--lvm-gris-f, #8a8580);
}

.lvm-dashboard__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--lvm-4);
}

.lvm-dashboard__card {
    background: var(--lvm-blanc);
    border: 1px solid var(--lvm-border);
    border-radius: var(--lvm-r-lg);
    padding: var(--lvm-6);
    text-align: center;
    transition: all var(--lvm-t-slow);
}

.lvm-dashboard__card:hover {
    transform: translateY(-4px);
    box-shadow: var(--lvm-sh-hover);
}

.lvm-dashboard__card-icon {
    font-size: var(--lvm-4xl);
    width: 56px;
    height: 56px;
    background: rgba(230, 57, 70, 0.06);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto var(--lvm-3);
}

.lvm-dashboard__card-title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-sm);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: var(--lvm-2);
}

.lvm-dashboard__card-value {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-xl);
    margin-bottom: var(--lvm-1);
}

.lvm-dashboard__card-meta {
    font-size: var(--lvm-xs);
    color: var(--lvm-gris-f, #8a8580);
}

.lvm-dashboard__card-link {
    display: block;
    font-size: var(--lvm-xs);
    font-weight: 700;
    color: var(--lvm-rouge);
    text-transform: uppercase;
    margin-top: var(--lvm-3);
    text-decoration: none;
}

.lvm-dashboard__card-link:hover {
    text-decoration: underline;
}

@media (max-width: 768px) {
    .lvm-dashboard__grid {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   WOOCOMMERCE
   ============================================================ */

/* ============================================================
   LV MEDIAS — CSS pour les templates WooCommerce overridés
   À ajouter à la suite du style.css existant
   ============================================================ */

/* ============================================================
   CARD PRODUIT ARCHIVE — content-product.php
   ============================================================ */

.lvm-product-card {
    background: var(--lvm-blanc);
    border-radius: var(--lvm-r-lg);
    overflow: hidden;
    box-shadow: var(--lvm-sh-card);
    transition: all var(--lvm-t-slow);
    margin: 0;
    padding: 0;
    border: 1px solid var(--lvm-border);
    display: flex;
    flex-direction: column;
}

.lvm-product-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--lvm-sh-hover);
}

/* Image container */
.lvm-product-card__img {
    position: relative;
    overflow: hidden;
    background: var(--lvm-bg-2);
}

.lvm-product-card__img a {
    display: block;
}

.lvm-product-card__img img {
    width: 100%;
    height: auto;
    display: block;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    transition: transform var(--lvm-t-slow);
}

.lvm-product-card:hover .lvm-product-card__img img {
    transform: scale(1.06);
}

/* Badge produit — pill dorée */
.lvm-product-card__badge {
    position: absolute;
    top: var(--lvm-3);
    left: var(--lvm-3);
    z-index: 2;
    display: inline-block;
    padding: 4px var(--lvm-3);
    border-radius: 4px;
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--lvm-blanc);
    background: linear-gradient(135deg, #b8973b, #d4b85a);
    transition:
        transform var(--lvm-t-fast),
        box-shadow var(--lvm-t-fast);
}

.lvm-product-card:hover .lvm-product-card__badge {
    transform: scale(1.05);
    box-shadow: 0 2px 8px rgba(201, 168, 76, 0.4);
}

/* Badge type abo */
.lvm-product-card__type,
.lvm-product-card__type-badge {
    position: absolute;
    bottom: var(--lvm-3);
    left: var(--lvm-3);
    font-size: var(--lvm-xs);
    font-weight: 700;
    color: var(--lvm-blanc);
    background: rgba(26, 26, 46, 0.75);
    backdrop-filter: blur(6px);
    padding: 3px 8px;
    border-radius: var(--lvm-r-sm);
    z-index: 2;
    letter-spacing: 0.3px;
}

/* Body */
.lvm-product-card__body {
    padding: var(--lvm-3) var(--lvm-4);
    flex: 1;
}

.lvm-product-card__cat {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 700;
    color: var(--lvm-rouge);
    letter-spacing: 1.5px;
    text-transform: uppercase;
    margin-bottom: var(--lvm-1);
}

.lvm-product-card__title-link {
    text-decoration: none;
}

.lvm-product-card__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-base);
    color: var(--lvm-noir-p);
    letter-spacing: 0.03em;
    text-transform: uppercase;
    margin: 0;
    line-height: 1.2;
}

.lvm-product-card__price {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-lg);
    color: var(--lvm-rouge);
    margin-top: var(--lvm-1);
}

.lvm-product-card__price del {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: var(--lvm-gris-m);
}

.lvm-product-card__price ins {
    text-decoration: none;
}

.lvm-product-card__period {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    color: var(--lvm-text-2);
    font-weight: 400;
}

.lvm-version-badge {
    font-weight: 700;
    color: var(--lvm-noir-p);
}

.lvm-product-hashtag {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    font-weight: 700;
    color: var(--lvm-noir-p);
    margin-bottom: var(--lvm-1);
}

.lvm-product-hashtag__sign {
    color: var(--lvm-noir-p);
}

.lvm-product-credit {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    color: var(--lvm-text-2);
    font-style: italic;
    margin-bottom: var(--lvm-2);
}

.single-product h1.product_title.entry-title {
    margin-bottom: 0px;
}

.lvm-product-sep {
    width: 40px;
    height: 3px;
    background: var(--lvm-jaune);
    margin: var(--lvm-1) var(--lvm-4) !important;
}

/* Action bouton */
.lvm-product-card__action {
    margin-top: auto;
    padding: 0 var(--lvm-3) var(--lvm-3);
}

.lvm-product-card__action .button,
.lvm-product-card__action .add_to_cart_button,
.lvm-product-card__action .product_type_subscription,
.lvm-product-card__btn {
    display: block;
    width: 100%;
    text-align: center;
    font-family: var(--lvm-fb);
    font-weight: 700;
    font-size: var(--lvm-sm);
    color: var(--lvm-blanc);
    background: var(--lvm-noir-p);
    padding: 0.625rem 1rem;
    border-radius: 6px;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    margin: 0;
    transition: background var(--lvm-t-base);
    border: none;
}

.lvm-product-card__action .button:hover,
.lvm-product-card__action .add_to_cart_button:hover,
.lvm-product-card__btn:hover {
    background: var(--lvm-rouge);
}

/* ============================================================
   PLACEHOLDER CARDS (quand aucun produit WooCommerce)
   ============================================================ */

.lvm-product-card--placeholder {
    cursor: default;
    opacity: 0.85;
}

.lvm-product-card--placeholder:hover {
    transform: none;
    box-shadow: var(--lvm-sh-card);
}

.lvm-product-card__img-placeholder,
.lvm-product-card__placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 3 / 4;
    background: linear-gradient(135deg, var(--lvm-bg-2), #f0ede8);
    border-bottom: 1px solid var(--lvm-border);
    font-size: var(--lvm-4xl);
}

.lvm-product-card__type-badge {
    display: inline-block;
    font-size: var(--lvm-xs);
    font-weight: 700;
    color: var(--lvm-bleu);
    background: rgba(29, 53, 87, 0.06);
    padding: 2px 8px;
    border-radius: var(--lvm-r-sm);
    margin: var(--lvm-1) 0;
    letter-spacing: 0.3px;
    text-transform: uppercase;
}

.lvm-placeholder-btn {
    display: block;
    width: 100%;
    text-align: center;
    font-family: var(--lvm-fb);
    font-weight: 700;
    font-size: var(--lvm-xs);
    color: var(--lvm-blanc);
    background: var(--lvm-noir-p);
    padding: var(--lvm-3);
    letter-spacing: 0.5px;
    text-transform: uppercase;
}

/* ============================================================
   SHOP / CATALOGUE / BOUTIQUE -- archive-product.php
   ============================================================ */

.lvm-shop {
    padding: 0;
}

.lvm-shop-content {
    margin-bottom: var(--lvm-10);
}

.lvm-shop__header {
    margin-bottom: var(--lvm-8);
}

.lvm-shop__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-2xl);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: var(--lvm-6);
}

.lvm-shop .woocommerce-result-count {
    font-size: var(--lvm-sm);
    color: var(--lvm-text-2);
    float: left;
    margin-bottom: var(--lvm-4);
}

.lvm-shop .woocommerce-ordering select {
    border: 1px solid var(--lvm-border);
    border-radius: var(--lvm-r-sm);
    padding: var(--lvm-2) var(--lvm-3);
    font-size: var(--lvm-sm);
    color: var(--lvm-text-2);
    font-family: var(--lvm-fb);
}

.lvm-shop .woocommerce-ordering {
    float: right;
    margin-bottom: var(--lvm-4);
}

/* Grid handled by .lvm-grid--4 in layout.css */
.lvm-shop .lvm-grid {
    clear: both;
}

.lvm-shop__pagination {
    text-align: center;
    margin-top: var(--lvm-8);
}

/* No products found */
.lvm-no-products {
    text-align: center;
    padding: var(--lvm-16) 0;
}

.lvm-no-products__msg {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-2xl);
    color: var(--lvm-noir-p);
    margin-bottom: var(--lvm-4);
}

.lvm-no-products .button {
    display: inline-block;
    font-family: var(--lvm-fb);
    font-weight: 700;
    font-size: var(--lvm-sm);
    background: var(--lvm-rouge);
    color: var(--lvm-blanc);
    padding: var(--lvm-3) var(--lvm-6);
    border-radius: var(--lvm-r-full);
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* ============================================================
   PANIER — cart.php
   ============================================================ */

.lvm-cart {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: var(--lvm-8);
    align-items: start;
}

@media (max-width: 1024px) {
    .lvm-cart {
        grid-template-columns: 1fr;
    }
}

.lvm-cart__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-2xl);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    display: flex;
    align-items: baseline;
    gap: var(--lvm-3);
    margin-bottom: var(--lvm-6);
}

.lvm-cart__count {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 700;
    color: var(--lvm-blanc);
    background: var(--lvm-rouge);
    padding: 3px 10px;
    border-radius: var(--lvm-r-full);
}

/* Cart item card */
.lvm-cart-item {
    display: grid;
    grid-template-columns: 80px 1fr auto auto;
    gap: var(--lvm-4);
    align-items: center;
    padding: var(--lvm-4);
    background: var(--lvm-blanc);
    border: 1px solid var(--lvm-border);
    border-radius: var(--lvm-r-md);
    margin-bottom: var(--lvm-3);
    transition: all var(--lvm-t-fast);
}

.lvm-cart-item:hover {
    border-color: var(--lvm-border-m);
    box-shadow: var(--lvm-sh-card);
}

.lvm-cart-item--sub {
    border-left: 3px solid var(--lvm-bleu);
}

.lvm-cart-item__img img {
    width: 80px;
    height: auto;
    border-radius: var(--lvm-r-sm);
}

.lvm-cart-item__name a {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-base);
    color: var(--lvm-noir-p);
    letter-spacing: 0.03em;
    text-transform: uppercase;
    text-decoration: none;
}

.lvm-cart-item__name a:hover {
    color: var(--lvm-rouge);
}

.lvm-cart-item__sub-badge {
    display: inline-block;
    font-size: var(--lvm-xs);
    font-weight: 700;
    color: var(--lvm-bleu);
    background: rgba(29, 53, 87, 0.06);
    padding: 2px 8px;
    border-radius: var(--lvm-r-sm);
    margin-top: var(--lvm-1);
}

.lvm-cart-item__meta {
    display: flex;
    align-items: center;
    gap: var(--lvm-4);
    margin-top: var(--lvm-2);
}

.lvm-cart-item__price {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-base);
    color: var(--lvm-text-2);
}

.lvm-cart-item__qty .quantity input {
    width: 50px;
    text-align: center;
    border: 1px solid var(--lvm-border);
    border-radius: var(--lvm-r-sm);
    padding: var(--lvm-1);
    font-family: var(--lvm-fb);
    font-weight: 700;
}

.lvm-cart-item__subtotal {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-lg);
    color: var(--lvm-rouge);
    text-align: right;
}

.lvm-cart-item__remove,
.lvm-cart-item__remove-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    font-size: var(--lvm-xl);
    color: var(--lvm-gris-m);
    text-decoration: none;
    transition: all var(--lvm-t-fast);
    cursor: pointer;
}

.lvm-cart-item__remove:hover,
.lvm-cart-item__remove-btn:hover {
    background: var(--lvm-rouge);
    color: var(--lvm-blanc);
}

/* Cart item download info */
.lvm-cart-item__download-info {
    font-size: var(--lvm-xs);
    color: var(--lvm-gris-f);
}

/* Coupon form (inline styles removed from cart.php) */
.lvm-coupon-form {
    display: flex;
    gap: var(--lvm-2);
    align-items: center;
    margin-top: var(--lvm-4);
}

.lvm-coupon-form__input {
    flex: 1;
    border: 1.5px solid var(--lvm-border);
    border-radius: var(--lvm-r-full);
    padding: var(--lvm-2) var(--lvm-4);
    font-size: var(--lvm-sm);
}

/* Actions panier */
.lvm-cart__actions {
    display: flex;
    gap: var(--lvm-3);
    align-items: center;
    justify-content: space-between;
    margin-top: var(--lvm-4);
    padding-top: var(--lvm-4);
    border-top: 1px solid var(--lvm-border);
}

.lvm-cart__coupon .coupon {
    display: flex;
    gap: var(--lvm-2);
}

.lvm-cart__coupon input {
    border: 1.5px solid var(--lvm-border);
    border-radius: var(--lvm-r-full);
    padding: var(--lvm-2) var(--lvm-4);
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
}

.lvm-cart__coupon input:focus {
    border-color: var(--lvm-rouge);
    box-shadow: 0 0 0 3px rgba(230, 57, 70, 0.08);
}

.lvm-cart__coupon .button {
    background: var(--lvm-noir-p);
    color: var(--lvm-blanc);
    border-radius: var(--lvm-r-full);
    padding: var(--lvm-2) var(--lvm-4);
    font-size: var(--lvm-xs);
}

/* Sidebar totaux */
.lvm-cart__sidebar {
    position: sticky;
    top: 80px;
    background: var(--lvm-bg-2);
    border-radius: var(--lvm-r-lg);
    padding: var(--lvm-6);
    border: 1px solid var(--lvm-border);
}

.lvm-cart__sidebar .cart_totals {
    background: transparent;
    border-radius: 0;
    padding: 0;
    border: none;
}

.lvm-cart__sidebar .cart_totals h2 {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-xl);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: var(--lvm-4);
}

.lvm-cart__sidebar .order-total td {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-2xl);
    color: var(--lvm-rouge);
}

@media (max-width: 768px) {
    .lvm-cart-item {
        grid-template-columns: 60px 1fr auto;
        gap: var(--lvm-2);
    }

    .lvm-cart-item__subtotal {
        grid-column: 2;
    }

    .lvm-cart-item__remove,
    .lvm-cart-item__remove-btn {
        grid-column: 3;
        grid-row: 1;
    }

    .lvm-cart__actions {
        flex-direction: column;
    }
}

/* ============================================================
   CHECKOUT — form-checkout.php
   ============================================================ */

/* Checkout : 2 colonnes — form gauche, recap sidebar droite */
.lvm-checkout {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: var(--lvm-8);
    align-items: start;
}

.lvm-checkout__page-title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-2xl);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: var(--lvm-6);
}

.lvm-checkout__section-title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-lg);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: var(--lvm-4);
}

.lvm-checkout__main {
    display: flex;
    flex-direction: column;
    gap: var(--lvm-6);
}

.lvm-checkout__billing,
.lvm-checkout__shipping {
    background: var(--lvm-blanc);
    border-radius: var(--lvm-r-lg);
    padding: var(--lvm-6);
    box-shadow: var(--lvm-sh-card);
    border: 1px solid var(--lvm-border);
}

/* Sidebar recap — sticky */
.lvm-checkout__sidebar-inner {
    background: var(--lvm-bg-2);
    border-radius: var(--lvm-r-lg);
    padding: var(--lvm-6);
    border: 1px solid var(--lvm-border);
    position: sticky;
    top: 80px;
}

@media (max-width: 768px) {
    .lvm-checkout {
        grid-template-columns: 1fr;
    }

    .lvm-checkout__sidebar {
        order: -1;
    }
}

/* ============================================================
   MON COMPTE — Layout 2 colonnes (wireframe P9)
   ============================================================ */

/* Page Mon Compte — fond crème pour alterner avec footer sombre */
.lvm-page-blog > .lvm-section,
.lvm-page-pub > .lvm-section,
.lvm-archive > .lvm-section,
.lvm-shop > .lvm-section,
.lvm-single > .lvm-section,
.lvm-page-default > .lvm-section {
    padding: 0 var(--lvm-4) var(--lvm-12);
}

@media screen and (max-width: 768px) {
    .lvm-page-blog > .lvm-section,
    .lvm-page-pub > .lvm-section,
    .lvm-archive > .lvm-section,
    .lvm-shop > .lvm-section,
    .lvm-single > .lvm-section,
    .lvm-page-default > .lvm-section {
        padding-left: var(--lvm-4);
        padding-right: var(--lvm-4);
    }
}

.woocommerce-account .lvm-page-default > .lvm-section {
    background: var(--lvm-blanc);
}

.woocommerce-account .lvm-page-content {
    max-width: 100%;
}

/* Login/Register — 2 colonnes propres */
.woocommerce-account #customer_login {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--lvm-8);
    max-width: 900px;
    margin: 0 auto;
}

.woocommerce-account #customer_login .u-column1,
.woocommerce-account #customer_login .u-column2 {
    background: var(--lvm-gris-c);
    border-radius: var(--lvm-r-lg);
    padding: var(--lvm-8);
}

.woocommerce-account #customer_login h2 {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-2xl);
    color: var(--lvm-noir-p);
    margin-bottom: var(--lvm-6);
    text-align: center;
}

.woocommerce-account .lost_password {
    text-align: center;
    margin-top: var(--lvm-3);
}

.woocommerce-account .lost_password a {
    font-size: var(--lvm-xs);
    color: #c9a84c;
}

@media (max-width: 768px) {
    .woocommerce-account #customer_login {
        grid-template-columns: 1fr;
        gap: var(--lvm-4);
    }

    .woocommerce-account #customer_login .u-column1,
    .woocommerce-account #customer_login .u-column2 {
        padding: var(--lvm-6);
    }
}

/* WooCommerce forms — Login, Register, Lost Password
   ---------------------------------------------------------- */

/* Espacement entre champs (WC utilise des <p> pour wrapper) */
p.woocommerce-form-row {
    display: block !important;
    margin-bottom: var(--lvm-4) !important;
    position: relative;
}

/* Inputs texte/email/password — unified WC */
.woocommerce-Input--text,
.woocommerce-Input--password,
.woocommerce-Input--email,
.woocommerce-Input,
input.input-text {
    display: block;
    width: 100%;
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: var(--lvm-text-1);
    background: var(--lvm-gris-c);
    border: 1px solid var(--lvm-border-m);
    border-radius: var(--lvm-r-md);
    padding: var(--lvm-4);
    box-sizing: border-box;
    transition:
        border-color var(--lvm-t-base),
        box-shadow var(--lvm-t-base);
}

.woocommerce-Input--text:focus,
.woocommerce-Input--password:focus,
.woocommerce-Input--email:focus,
.woocommerce-Input:focus,
input.input-text:focus {
    border-color: #c9a84c;
    box-shadow: 0 0 0 3px rgba(201, 168, 76, 0.12);
    background: var(--lvm-blanc);
    outline: none;
}

/* Labels — unified WC */
.woocommerce-form-row label:not(.woocommerce-form__label-for-checkbox),
.woocommerce form .form-row label {
    display: block;
    font-family: var(--lvm-fb);
    font-weight: 600;
    font-size: var(--lvm-xs);
    color: var(--lvm-text-2);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: var(--lvm-2);
}

/* Checkbox row */
p.form-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--lvm-3);
    margin-top: var(--lvm-2) !important;
}

/* Submit button — unified WC */
.woocommerce-button.button,
button.woocommerce-button,
.woocommerce-form-login__submit,
.woocommerce-form-register__submit,
.woocommerce-EditAccountForm button[type="submit"],
.woocommerce-account .woocommerce-EditAccountForm .woocommerce-Button {
    font-family: var(--lvm-fb);
    font-weight: 700;
    font-size: var(--lvm-sm);
    background: var(--lvm-noir-p);
    color: var(--lvm-blanc);
    border-radius: var(--lvm-r-full);
    padding: var(--lvm-4) var(--lvm-8);
    border: none;
    cursor: pointer;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    transition:
        background var(--lvm-t-base),
        transform var(--lvm-t-base),
        box-shadow var(--lvm-t-base);
    white-space: nowrap;
    width: 100%;
    text-align: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.woocommerce-button.button:hover,
button.woocommerce-button:hover,
.woocommerce-form-login__submit:hover,
.woocommerce-form-register__submit:hover,
.woocommerce-EditAccountForm button[type="submit"]:hover,
.woocommerce-account .woocommerce-EditAccountForm .woocommerce-Button:hover {
    background: var(--lvm-rouge);
    transform: translateY(-2px);
    box-shadow: var(--lvm-sh-btn);
}

/* Mot de passe perdu */
.woocommerce-LostPassword {
    margin-top: var(--lvm-3);
    font-size: var(--lvm-xs);
}

.woocommerce-LostPassword a {
    color: var(--lvm-bleu-m);
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* Password wrapper — for show/hide button */
.password-input {
    position: relative;
    display: block;
}

.show-password-input {
    position: absolute;
    right: var(--lvm-3);
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    cursor: pointer;
    color: var(--lvm-text-3);
    padding: 4px;
    line-height: 1;
}

/* WooCommerce — Login / Register forms */
.woocommerce-form-login,
.woocommerce-form-register,
.woocommerce-form-edit-account,
.woocommerce-address-fields {
    background: var(--lvm-blanc);
    border: 1px solid var(--lvm-border);
    border-radius: var(--lvm-r-md);
    padding: var(--lvm-8);
    max-width: 480px;
    margin: 0 auto;
}

.woocommerce-form-login__title,
.woocommerce-form-register__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-2xl);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: var(--lvm-6);
    text-align: center;
}

.woocommerce-LostPassword a,
.woocommerce-privacy-policy-text a {
    font-size: var(--lvm-xs);
    color: var(--lvm-rouge);
}

/* WooCommerce wraps nav + content — layout pleine largeur,
   navigation horizontale au-dessus du contenu (wireframe P8) */
.woocommerce-account .woocommerce {
    display: block !important;
}

.woocommerce-account .woocommerce-MyAccount-navigation {
    width: 100% !important;
    float: none !important;
}

.woocommerce-account .woocommerce-MyAccount-content {
    width: 100% !important;
    float: none !important;
}

/* Tableaux Mon Compte (commandes, abonnements, téléchargements) */
.woocommerce-account table.shop_table,
.woocommerce-account .woocommerce-orders-table,
.woocommerce-account .woocommerce-table--order-downloads {
    width: 100%;
    border-collapse: collapse;
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    border: none;
    border-radius: var(--lvm-r-md);
    overflow: hidden;
}

.woocommerce-account table.shop_table thead th,
.woocommerce-account .woocommerce-orders-table th {
    font-family: var(--lvm-fb);
    font-weight: 700;
    font-size: var(--lvm-xs);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--lvm-blanc);
    background: var(--lvm-noir-p);
    padding: var(--lvm-3) var(--lvm-4);
    border: none;
    text-align: left;
}

.woocommerce-account table.shop_table td,
.woocommerce-account .woocommerce-orders-table td {
    padding: var(--lvm-3) var(--lvm-4);
    border-bottom: 1px solid var(--lvm-border);
    color: var(--lvm-text-1);
    vertical-align: middle;
}

.woocommerce-account table.shop_table tbody tr:nth-child(even) {
    background: var(--lvm-gris-c);
}

.woocommerce-account table.shop_table tbody tr:hover {
    background: rgba(201, 168, 76, 0.06);
}

/* Boutons dans les tableaux (Voir, Renouveler, etc.) */
.woocommerce-account table .woocommerce-button,
.woocommerce-account table .button {
    font-family: var(--lvm-fb) !important;
    font-weight: 700 !important;
    font-size: var(--lvm-xs) !important;
    background: var(--lvm-noir-p) !important;
    color: var(--lvm-blanc) !important;
    border-radius: var(--lvm-r-full) !important;
    padding: 6px var(--lvm-4) !important;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border: none !important;
    text-decoration: none;
    display: inline-block;
    transition: all var(--lvm-t-base);
    white-space: nowrap;
}

.woocommerce-account table .woocommerce-button:hover,
.woocommerce-account table .button:hover {
    background: var(--lvm-rouge) !important;
    transform: translateY(-1px);
}

/* Titres sections Mon Compte */
.woocommerce-account .woocommerce-MyAccount-content > h2,
.woocommerce-account .woocommerce-MyAccount-content > h3 {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-xl);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin: 0 0 var(--lvm-4);
    padding-bottom: var(--lvm-3);
    border-bottom: 2px solid var(--lvm-gris-c);
}

/* Responsive tableaux */
@media (max-width: 768px) {
    .woocommerce-account table.shop_table,
    .woocommerce-account .woocommerce-orders-table {
        font-size: var(--lvm-xs);
    }

    .woocommerce-account table.shop_table td,
    .woocommerce-account table.shop_table th {
        padding: var(--lvm-2) var(--lvm-2);
    }
}

/* Override WC edit account form */
.woocommerce-account .woocommerce-EditAccountForm fieldset {
    border: none;
    padding: 0;
    margin: 0;
}

.woocommerce-account .woocommerce-EditAccountForm .form-row {
    margin-bottom: var(--lvm-4);
}

/* Titre h1 Mon Compte (wireframe P8) */
.lvm-myaccount__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-2xl);
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: var(--lvm-6);
}

/* Navigation horizontale Mon Compte (wireframe P8) */
.lvm-account-nav {
    background: var(--lvm-blanc);
    border-radius: var(--lvm-r-lg);
    padding: var(--lvm-3);
    border: 1px solid var(--lvm-border);
    margin-bottom: var(--lvm-6);
}

.lvm-account-nav ul {
    display: flex;
    flex-wrap: wrap;
    gap: var(--lvm-1);
    list-style: none;
    padding: 0;
    margin: 0;
}

@media (min-width: 769px) {
    .lvm-account-nav ul {
        justify-content: space-evenly;
    }
}

.lvm-account-nav a {
    display: flex;
    align-items: center;
    gap: var(--lvm-2);
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 600;
    color: var(--lvm-text-2);
    text-decoration: none;
    padding: var(--lvm-2) var(--lvm-3);
    border-radius: var(--lvm-r-full);
    white-space: nowrap;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    transition: all var(--lvm-t-fast);
}

@media (max-width: 768px) {
    .lvm-account-nav a {
        font-size: var(--lvm-xs);
        padding: 6px 10px;
        gap: 4px;
    }
}

.lvm-account-nav a:hover {
    background: rgba(230, 57, 70, 0.05);
    color: var(--lvm-rouge);
}

.lvm-account-nav .is-active a {
    background: var(--lvm-rouge);
    color: var(--lvm-blanc);
    box-shadow: 0 4px 12px rgba(230, 57, 70, 0.2);
}

/* ============================================================
   MON COMPTE — Tableaux WC (commandes, téléchargements)
   ============================================================ */

.woocommerce-account .woocommerce-orders-table,
.woocommerce-account .woocommerce-table--order-downloads {
    width: 100%;
    border-collapse: collapse;
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
}

.woocommerce-account .woocommerce-orders-table th,
.woocommerce-account .woocommerce-orders-table td,
.woocommerce-account .woocommerce-table--order-downloads th,
.woocommerce-account .woocommerce-table--order-downloads td {
    padding: var(--lvm-3) var(--lvm-4);
    text-align: left;
    border-bottom: 1px solid var(--lvm-border);
}

.woocommerce-account .woocommerce-orders-table th,
.woocommerce-account .woocommerce-table--order-downloads th {
    font-weight: 700;
    font-size: var(--lvm-xs);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--lvm-text-2);
    background: var(--lvm-gris-c);
}

.woocommerce-account .woocommerce-orders-table td {
    color: var(--lvm-noir-p);
}

.woocommerce-account
    .woocommerce-orders-table
    .woocommerce-orders-table__cell-order-number
    a {
    font-weight: 700;
    color: var(--lvm-rouge);
    text-decoration: none;
}

.woocommerce-account
    .woocommerce-orders-table
    .woocommerce-orders-table__cell-order-actions
    a {
    display: inline-block;
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 700;
    text-transform: uppercase;
    padding: 6px 14px;
    border-radius: var(--lvm-r-full);
    background: var(--lvm-rouge);
    color: var(--lvm-blanc);
    text-decoration: none;
    transition: background var(--lvm-t-fast);
}

.woocommerce-account
    .woocommerce-orders-table
    .woocommerce-orders-table__cell-order-actions
    a:hover {
    background: var(--lvm-rouge-h);
}

@media (max-width: 768px) {
    .woocommerce-account .woocommerce-orders-table,
    .woocommerce-account .woocommerce-orders-table thead,
    .woocommerce-account .woocommerce-orders-table tbody,
    .woocommerce-account .woocommerce-orders-table tr,
    .woocommerce-account .woocommerce-orders-table th,
    .woocommerce-account .woocommerce-orders-table td {
        display: block;
        width: 100%;
    }

    .woocommerce-account .woocommerce-orders-table thead {
        display: none;
    }

    .woocommerce-account .woocommerce-orders-table td {
        padding: var(--lvm-2) var(--lvm-3);
        border-bottom: none;
    }

    .woocommerce-account .woocommerce-orders-table td::before {
        content: attr(data-title);
        font-weight: 700;
        font-size: var(--lvm-xs);
        text-transform: uppercase;
        color: var(--lvm-text-2);
        display: block;
        margin-bottom: 2px;
    }

    .woocommerce-account .woocommerce-orders-table tr {
        border-bottom: 1px solid var(--lvm-border);
        padding: var(--lvm-3) 0;
    }
}

/* ============================================================
   SHOP HERO — visuel femme + titre
   ============================================================ */

.lvm-shop__hero {
    display: flex;
    align-items: center;
    gap: var(--lvm-8);
    margin-bottom: var(--lvm-8);
    background: var(--lvm-gris-c);
    border-radius: 12px;
    padding: var(--lvm-8) var(--lvm-10);
    overflow: hidden;
}

.lvm-shop__hero-text {
    flex: 1;
}

.lvm-shop__hero-sub {
    font-family: var(--lvm-fs);
    font-style: italic;
    color: var(--lvm-text-2);
    margin: var(--lvm-2) 0 0;
}

.lvm-shop__hero-visual {
    flex: 0 0 200px;
    max-height: 280px;
}

.lvm-shop__hero-visual img {
    max-height: 280px;
    width: auto;
    display: block;
}

@media (max-width: 768px) {
    .lvm-shop__hero {
        flex-direction: column;
        text-align: center;
        padding: var(--lvm-6);
    }

    .lvm-shop__hero-visual {
        flex: none;
        max-height: 200px;
    }

    .lvm-shop__hero-visual img {
        max-height: 200px;
        margin: 0 auto;
    }
}

.lvm-dashboard__card-meta--sm {
    font-size: var(--lvm-sm);
}

/* ============================================================
   SINGLE PRODUCT — 2 colonnes maquette
   ============================================================ */

.lvm-product-layout {
    display: grid;
    /* grid-template-columns: 1fr 1fr; */
    grid-template-columns: 2fr 3fr;
    /* gap: var(--lvm-8); */
    gap: var(--lvm-4);
    align-items: stretch;
    min-height: 500px;
    margin-bottom: 30px;
}

.lvm-product-layout__gallery {
    /* aspect-ratio: 3 / 4; */
    min-width: 0;
}

.lvm-product-layout__details {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-width: 0;
    overflow-wrap: break-word;
}

/* Galerie gauche — force width 100% (WC inline style override) */
.lvm-product-layout__gallery .woocommerce-product-gallery {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--lvm-2);
}

.lvm-product-layout__gallery .woocommerce-product-gallery__wrapper {
    border-radius: var(--lvm-r-lg);
}

.lvm-product-layout__gallery .woocommerce-product-gallery__wrapper img {
    width: 75%;
    max-width: 450px;
    margin: 0 auto;
    height: auto;
    display: block;
}

.lvm-product-layout__gallery .flex-control-thumbs {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: var(--lvm-3);
    margin: var(--lvm-3) 0 0;
    padding: 0;
    list-style: none;
}

.lvm-product-layout__gallery .flex-control-thumbs li {
    margin: 0;
}

.lvm-product-layout__gallery .flex-control-thumbs img {
    width: 100%;
    aspect-ratio: 3/4;
    object-fit: contain;
    background: var(--lvm-gris-c, #f5f5f5);
    /* border-radius: var(--lvm-r-sm); */
    border: 2px solid transparent;
    cursor: pointer;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
    transition:
        border-color var(--lvm-t-fast),
        box-shadow var(--lvm-t-fast),
        transform var(--lvm-t-fast);
}

.lvm-product-layout__gallery .flex-control-thumbs img.flex-active,
.lvm-product-layout__gallery .flex-control-thumbs img:hover {
    border-color: var(--lvm-rouge);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.14);
    transform: translateY(-2px);
}

.lvm-product-layout__gallery img {
    /* border-radius: var(--lvm-r-lg); */
}

/* Responsive */
@media (max-width: 768px) {
    .lvm-product-layout {
        grid-template-columns: 1fr;
    }

    .lvm-product-layout__gallery {
        max-width: 320px;
        margin: 0 auto;
    }

    .lvm-product-layout__details {
        overflow: hidden;
        word-wrap: break-word;
    }

    .lvm-product-ctas {
        flex-direction: column;
    }

    .lvm-product-ctas__btn {
        width: 100%;
        justify-content: center;
    }

    .variations select {
        max-width: 100%;
    }

    .lvm-price-block__meta {
        font-size: var(--lvm-xs);
    }
}

/* ============================================================
   PRODUCT — Notice version numérique
   ============================================================ */

/* Label "VERSION NUMÉRIQUE" au-dessus de la cover */
.lvm-product-format {
    display: block;
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #1a1a2e;
    margin-top: var(--lvm-1);
    margin-bottom: 0;
    text-align: left;
}

/* Badge "BIENTÔT DISPONIBLE" */
.lvm-product-card__badge--coming {
    background: var(--lvm-jaune);
    color: var(--lvm-noir-p);
}

.lvm-badge--coming {
    background: transparent;
    color: var(--lvm-noir-p);
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    font-weight: 700;
    padding: 0;
    border-radius: var(--lvm-r-sm);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    display: flex;
    gap: 8px;
}

.lvm-badge--coming .circle {
    background: var(--lvm-jaune);
    height: 10px;
    width: 10px;
    border-radius: 99999999999999px;
}

#lvm-stock-notify-email {
    background: transparent;
}

form.lvm-form.lvm-stock-notify-form button {
    border-radius: var(--lvm-r-md) !important;
}

.lvm-description-cta-block .wcsg_add_recipient_fields_container,
.lvm-description-cta-block .quantity,
.lvm-description-cta-block .reset_variations {
    display: none !important;
}

/* .lvm-coming-soon-notice { */
.lvm-description-cta-block {
    background: var(--lvm-gris-c);
    border-left: 4px solid var(--lvm-jaune);
    border-radius: var(--lvm-r-sm);
    padding: var(--lvm-2) var(--lvm-4);
    margin-top: var(--lvm-4);
    background: var(--lvm-blanc);
    border: 1px solid var(--lvm-border);
    border-radius: var(--lvm-r-lg);
    overflow: hidden;
    box-shadow: var(--lvm-sh-card);
}

.lvm-coming-soon-notice .lvm-badge {
    margin-bottom: var(--lvm-3);
}

.lvm-coming-soon-notice p {
    font-size: var(--lvm-sm);
    color: var(--lvm-text-2);
    margin: var(--lvm-2) 0 0;
}

.lvm-coming-soon-notice strong {
    color: var(--lvm-noir-p);
}

.lvm-stock-notify-msg {
    display: none;
    min-height: 1em;
}

.lvm-stock-notify-msg--visible {
    display: block;
}

.lvm-stock-notify-msg--error {
    color: var(--lvm-rouge);
}

.lvm-digital-notice {
    background: var(--lvm-gris-c);
    border-left: 4px solid var(--lvm-jaune);
    border-radius: var(--lvm-r-sm);
    padding: var(--lvm-4);
    margin-top: var(--lvm-4);
}

.lvm-digital-notice p {
    margin: 0 0 var(--lvm-2);
    font-size: var(--lvm-sm);
}

.lvm-digital-notice p:last-of-type {
    margin-bottom: var(--lvm-3);
}

/* ============================================================
   PDF VIEWER — Mes magazines (Mon Compte)
   ============================================================ */

.lvm-viewer__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-2xl);
    color: var(--lvm-noir-p);
    margin-bottom: var(--lvm-6);
}

/* ── Mes magazines — cards verticales compactes ── */

.lvm-viewer__count {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    font-weight: 400;
    color: var(--lvm-text-3);
    margin-left: var(--lvm-2);
}

.lvm-mag-card {
    border: 1px solid var(--lvm-border);
    /* border-radius: var(--lvm-r-md); */
    overflow: hidden;
    background: var(--lvm-blanc);
    transition:
        transform var(--lvm-t-base),
        box-shadow var(--lvm-t-base);
}

.lvm-mag-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--lvm-sh-hover);
}

.lvm-mag-card__cover {
    overflow: hidden;
}

.lvm-mag-card__cover img {
    width: 100%;
    height: auto;
    display: block;
}

/* Couverture liseuse DearFlip (embed [dflip type="thumb"]) : forcer la
   miniature générée par le plugin à occuper toute la largeur de la carte. */
.lvm-mag-card__cover--reader {
    position: relative;
    overflow: hidden;
    /* aspect-ratio: 3 / 4; */
    cursor: pointer;
    /* width: 90%; */
    margin: 0 auto;
    overflow: hidden;
}

/* Uniquement l'élément généré par dFlip lui-même — exclut explicitement
   la surcouche .lvm-mag-card__cover-overlay, qui est aussi un <div> enfant
   direct et serait sinon capturée par cette règle. */
.lvm-mag-card__cover--reader > div:not(.lvm-mag-card__cover-overlay),
.lvm-mag-card__cover--reader > img {
    /* width: 100% !important; */
    width: -webkit-fill-available !important;
    height: auto !important;
}

/* L'image principale du produit doit servir de couverture visible (au lieu
   de la miniature PDF auto-générée par dFlip) : superposée par-dessus, sans
   intercepter le clic, qui reste géré par l'élément dFlip en dessous.
   Dimensions forcées explicitement (pas de "auto"/fill-available) pour
   un rendu identique sur tous les navigateurs. */
.lvm-mag-card__cover-overlay {
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    pointer-events: none;
    z-index: 1;
}

.lvm-mag-card__cover-overlay img {
    width: 100% !important;
    height: 100% !important;
    /* object-fit: cover; */
    display: block;
    margin: 0;
    border-radius: 0;
}

.df-book-title {
    display: none !important;
}

/* Retirer les boutons "Partager" et "Télécharger" de la barre d'outils
   DearFlip, sur tout le site (pas seulement "Mes magazines") : la lecture
   ne doit jamais proposer de sortie du fichier. Réglage global équivalent
   côté DearFlip : dFlipBooks > Réglages globaux > Controls > Enable Download
   (à désactiver aussi si disponible dans votre licence). */
.df-ui-share,
.df-ui-download {
    display: none !important;
}

.lvm-mag-card__body {
    padding: var(--lvm-3);
}

.lvm-mag-card__title {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 600;
    color: var(--lvm-noir-p);
    margin: var(--lvm-3) 0 4px !important;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Titre magazine — Liseuse ("Mon compte > Mes magazines").
   Police et taille pilotees depuis Reglages LV Medias > Typographie
   (variables --lvm-liseuse-title-*, avec repli sur le style ci-dessus). */
.lvm-mag-card__title.lvm-mag-card__title_custom {
    font-family: var(--lvm-liseuse-title-font, var(--lvm-fb)) !important;
    font-size: var(--lvm-liseuse-title-size, var(--lvm-xs)) !important;
    font-weight: 600 !important;
}

.lvm-mag-card__meta {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    color: var(--lvm-text-3);
    margin-bottom: var(--lvm-2);
}

.lvm-mag-card__meta svg {
    flex-shrink: 0;
}

.lvm-mag-card__actions {
    display: flex;
    gap: var(--lvm-1);
}

.lvm-mag-card__btn {
    flex: 1;
    display: inline-block;
    text-align: center;
    font-family: var(--lvm-fb);
    font-weight: 700;
    font-size: 0.55rem;
    padding: 5px 6px;
    border-radius: 3px;
    border: none;
    cursor: pointer;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    white-space: nowrap;
    transition: opacity var(--lvm-t-fast);
}

.lvm-mag-card__btn:hover {
    opacity: 0.85;
}

.lvm-mag-card__btn--primary {
    background: var(--lvm-noir-p);
    color: #fff !important;
}

.lvm-mag-card__btn--secondary {
    background: var(--lvm-gris-c);
    color: var(--lvm-text-2) !important;
}

.lvm-mag-card__btn--secondary:hover {
    background: var(--lvm-border);
}

.lvm-mag-card__btn--gold {
    background: linear-gradient(135deg, #c9a84c, #e8d48b);
    color: var(--lvm-noir-p) !important;
    font-size: var(--lvm-sm);
    padding: 8px 16px;
    border-radius: var(--lvm-r-sm);
}

/* ── CTA Kiosque VIP en bas de page ── */

.lvm-mag-kiosque-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--lvm-4);
    margin-top: var(--lvm-8);
    padding: var(--lvm-5);
    background: linear-gradient(135deg, var(--lvm-noir-p), #2b2d42);
    border-radius: var(--lvm-r-md);
    color: #fff;
}

.lvm-mag-kiosque-cta__text {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.lvm-mag-kiosque-cta__text strong {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-lg);
}

.lvm-mag-kiosque-cta__text span {
    font-size: var(--lvm-sm);
    color: rgba(255, 255, 255, 0.7);
}

/* ── Pagination ── */

.lvm-pagination {
    display: flex;
    justify-content: center;
    gap: var(--lvm-1);
    margin-top: var(--lvm-6);
}

.lvm-pagination__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: var(--lvm-r-sm);
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    font-weight: 600;
    color: var(--lvm-text-2);
    text-decoration: none;
    border: 1px solid var(--lvm-border);
    transition: all var(--lvm-t-fast);
}

.lvm-pagination__link:hover {
    border-color: var(--lvm-noir-p);
    color: var(--lvm-noir-p);
}

.lvm-pagination__current {
    background: var(--lvm-noir-p);
    color: #fff !important;
    border-color: var(--lvm-noir-p);
}

@media (max-width: 768px) {
    .lvm-mag-kiosque-cta {
        flex-direction: column;
        text-align: center;
    }
}

/* Lightbox PDF viewer */
.lvm-viewer-lightbox[hidden] {
    display: none;
}

.lvm-viewer-lightbox {
    position: fixed;
    inset: 0;
    z-index: 300;
    display: flex;
    align-items: center;
    justify-content: center;
}

.lvm-viewer-lightbox__overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.7);
}

.lvm-viewer-lightbox__panel {
    position: relative;
    width: 95vw;
    height: 95vh;
    max-width: 900px;
    background: #fff;
    border-radius: 8px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.lvm-viewer-lightbox__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 6px 12px;
    background: var(--lvm-noir-p);
}

.lvm-viewer-lightbox .lvm-viewer-lightbox__title {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    color: #fff;
    margin: 0;
}

.lvm-viewer-lightbox__close {
    background: none;
    border: none;
    font-size: var(--lvm-xl);
    cursor: pointer;
    color: #fff;
    padding: 0;
    line-height: 1;
}

.lvm-viewer-lightbox__close:hover {
    color: var(--lvm-rouge);
}

.lvm-viewer-lightbox__nav {
    display: flex;
    align-items: center;
    gap: var(--lvm-3);
    color: #fff;
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
}

.lvm-viewer-lightbox__btn {
    background: rgba(255, 255, 255, 0.15);
    border: none;
    color: #fff;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    cursor: pointer;
    font-size: var(--lvm-sm);
    display: flex;
    align-items: center;
    justify-content: center;
}

.lvm-viewer-lightbox__btn:hover {
    background: rgba(255, 255, 255, 0.3);
}

.lvm-viewer-lightbox__body {
    flex: 1;
    overflow: auto;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    background: #2a2a2a;
    padding: var(--lvm-4);
    -webkit-user-select: none;
    user-select: none;
}

.lvm-viewer-lightbox__body canvas {
    max-width: 100%;
    height: auto;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
}

.lvm-viewer-lightbox__iframe {
    flex: 1;
    width: 100%;
    border: none;
}

@media (max-width: 768px) {
    .lvm-viewer-lightbox__panel {
        width: 100vw;
        height: 100vh;
        max-width: none;
        border-radius: 0;
    }
}

.lvm-viewer-empty {
    text-align: center;
    padding: var(--lvm-12) 0;
    color: var(--lvm-text-2);
}

.lvm-viewer-empty p {
    margin-bottom: var(--lvm-6);
}

@media (max-width: 768px) {
    .lvm-viewer__iframe {
        height: 500px;
    }
}

/* ============================================================
   DASHBOARD MON COMPTE — 3 tables (wireframe P9)
   ============================================================ */

.lvm-dashboard__heading {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-lg);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin: var(--lvm-6) 0 var(--lvm-3);
}

.lvm-dashboard__heading:first-of-type {
    margin-top: 0;
}

.lvm-dashboard__table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--lvm-xs);
}

.lvm-dashboard__table th {
    background: var(--lvm-bg-2);
    color: var(--lvm-noir-p);
    font-weight: 700;
    text-align: left;
    padding: var(--lvm-2) var(--lvm-3);
    letter-spacing: 0.5px;
    text-transform: uppercase;
    font-size: var(--lvm-xs);
}

.lvm-dashboard__table td {
    padding: var(--lvm-2) var(--lvm-3);
    border-bottom: 1px solid var(--lvm-border);
    color: var(--lvm-text-2);
}

.lvm-status {
    font-weight: 700;
}

.lvm-status--active {
    color: #2ecc71;
}

.lvm-status--pending {
    color: var(--lvm-jaune);
}

.lvm-link {
    color: var(--lvm-rouge);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.lvm-dashboard__empty {
    font-size: var(--lvm-sm);
    color: var(--lvm-gris-m);
    font-style: italic;
    margin-bottom: var(--lvm-4);
}

.lvm-dashboard__empty a {
    color: var(--lvm-rouge);
    font-weight: 600;
}

@media (max-width: 768px) {
    .lvm-dashboard__table {
        font-size: 0.6rem;
    }

    .lvm-dashboard__table th,
    .lvm-dashboard__table td {
        padding: var(--lvm-1) var(--lvm-2);
    }
}

/* ============================================================
   TABS FICHE PRODUIT — tabs.php
   ============================================================ */

.lvm-tabs {
    margin-top: var(--lvm-8);
}

.lvm-tabs__nav {
    display: flex;
    gap: var(--lvm-1);
    border-bottom: 2px solid var(--lvm-border);
    overflow-x: auto;
}

.lvm-tabs__btn {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    font-weight: 700;
    color: var(--lvm-text-2);
    letter-spacing: 0.5px;
    text-transform: uppercase;
    background: none;
    border: none;
    padding: var(--lvm-3) var(--lvm-4);
    cursor: pointer;
    position: relative;
    white-space: nowrap;
    flex-shrink: 0;
    transition: color var(--lvm-t-fast);
}

.lvm-tabs__btn::after {
    content: "";
    position: absolute;
    bottom: -2px;
    left: 0;
    right: 0;
    height: 2px;
    background: transparent;
    transition: background var(--lvm-t-fast);
}

.lvm-tabs__btn:hover {
    color: var(--lvm-noir-p);
}

.lvm-tabs__btn--active {
    color: var(--lvm-rouge);
}

.lvm-tabs__btn--active::after {
    background: var(--lvm-rouge);
}

.lvm-tabs__panel {
    padding: var(--lvm-4) 0;
    font-size: var(--lvm-sm);
    color: var(--lvm-text-1);
    line-height: 1.8;
}

.lvm-tabs__panel > h2 {
    display: none;
}

/* ============================================================
   RELATED PRODUCTS — Vous aimerez aussi
   ============================================================ */

.lvm-related {
    margin-top: var(--lvm-10);
    padding-top: var(--lvm-8);
    border-top: 1px solid var(--lvm-border);
}

@media (min-width: 769px) {
    .lvm-related {
        padding-bottom: var(--lvm-8);
    }
}

.lvm-related__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-xl);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    margin: 0 0 var(--lvm-6);
}

/* ============================================================
   CTA PUB — bas de fiche produit
   ============================================================ */

.lvm-product-cta-pub {
    margin-top: var(--lvm-10);
}

.lvm-product-cta-pub__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--lvm-6);
    background: linear-gradient(135deg, #1a1a2e, #1d3557);
    border-radius: 12px;
    padding: var(--lvm-6) var(--lvm-8);
}

.lvm-product-cta-pub__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-lg);
    color: #fff;
    letter-spacing: 0.04em;
    margin: 0 0 var(--lvm-1);
}

.lvm-product-cta-pub__desc {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: rgba(255, 255, 255, 0.65);
    margin: 0;
}

@media (max-width: 768px) {
    .lvm-product-cta-pub__inner {
        flex-direction: column;
        text-align: center;
        padding: var(--lvm-4);
    }
}

/* Checkout : payment section in left column */
.lvm-checkout__payment {
    background: var(--lvm-blanc);
    border-radius: var(--lvm-r-lg);
    padding: var(--lvm-6);
    box-shadow: var(--lvm-sh-card);
    border: 1px solid var(--lvm-border);
}

/* Checkout trust note */
.lvm-checkout__trust {
    text-align: center;
    font-size: var(--lvm-xs);
    color: var(--lvm-text-3);
    margin-top: var(--lvm-4);
}

/* Excerpt/subtitle italic (wireframe P3-P4) */
.lvm-product-single__summary .woocommerce-product-details__short-description {
    font-family: var(--lvm-fs);
    font-style: italic;
    color: var(--lvm-text-2);
    font-size: var(--lvm-sm);
    margin-bottom: var(--lvm-4);
}

/* Related products heading */
.woocommerce div.product .related > h2,
.woocommerce div.product .upsells > h2 {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-xl);
    color: var(--lvm-noir-p);
    letter-spacing: 0.03em;
    text-transform: uppercase;
    margin-bottom: var(--lvm-6);
}

/* ============================================================
   WOOCOMMERCE BLOCKS — PANIER (wc-block-cart)
   ============================================================ */

/* Layout 2 colonnes */
.wp-block-woocommerce-cart .wc-block-components-sidebar-layout {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: var(--lvm-8);
    align-items: start;
    max-width: var(--lvm-container);
    margin: 0 auto;
    padding: var(--lvm-8) var(--lvm-4);
}

@media (max-width: 1024px) {
    .wp-block-woocommerce-cart .wc-block-components-sidebar-layout {
        grid-template-columns: 1fr;
    }
}

/* Titre page panier */
.wp-block-woocommerce-cart .wp-block-heading,
.wc-block-cart .wp-block-heading {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-2xl);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: var(--lvm-6);
}

/* Table items panier */
.wc-block-cart-items {
    border: none;
}

.wc-block-cart-items table {
    width: 100%;
    border-collapse: collapse;
}

.wc-block-cart-items .wc-block-cart-items__row {
    border-bottom: 1px solid var(--lvm-border);
    transition: background var(--lvm-t-fast);
}

.wc-block-cart-items .wc-block-cart-items__row:hover {
    background: rgba(245, 240, 235, 0.3);
}

/* Image produit */
.wc-block-cart-item__image img {
    border-radius: var(--lvm-r-sm) !important;
    width: 80px;
    height: auto;
}

/* Nom produit */
.wc-block-cart-item__product .wc-block-components-product-name {
    font-family: var(--lvm-fd) !important;
    font-size: var(--lvm-base) !important;
    color: var(--lvm-noir-p) !important;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    text-decoration: none !important;
    display: block;
    margin-bottom: var(--lvm-1);
}

.wc-block-cart-item__product .wc-block-components-product-name:hover {
    color: var(--lvm-rouge) !important;
}

/* Metadata produit (variation, etc) */
.wc-block-cart-item__product .wc-block-components-product-metadata {
    font-size: var(--lvm-xs);
    color: var(--lvm-text-2);
}

/* Prix produit */
.wc-block-components-product-price {
    font-family: var(--lvm-fd);
    color: var(--lvm-rouge);
}

.wc-block-cart-item__total-price-and-sale-badge-wrapper
    .wc-block-components-product-price {
    font-size: var(--lvm-lg);
}

.wc-block-components-product-price__regular {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: var(--lvm-gris-m);
    text-decoration: line-through;
}

/* Sélecteur quantité */
.wc-block-components-quantity-selector {
    display: inline-flex;
    align-items: center;
    border: 1.5px solid var(--lvm-border);
    border-radius: var(--lvm-r-sm);
    overflow: hidden;
}

.wc-block-components-quantity-selector
    input.wc-block-components-quantity-selector__input {
    width: 44px;
    text-align: center;
    border: none !important;
    font-family: var(--lvm-fb);
    font-weight: 700;
    font-size: var(--lvm-sm);
    color: var(--lvm-noir-p);
    padding: var(--lvm-1) 0;
    background: transparent;
    -moz-appearance: textfield;
}

.wc-block-components-quantity-selector input::-webkit-inner-spin-button,
.wc-block-components-quantity-selector input::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.wc-block-components-quantity-selector
    .wc-block-components-quantity-selector__button {
    background: var(--lvm-bg-2) !important;
    border: none !important;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: var(--lvm-noir-p);
    font-size: var(--lvm-lg);
    transition: background var(--lvm-t-fast);
}

.wc-block-components-quantity-selector
    .wc-block-components-quantity-selector__button:hover {
    background: var(--lvm-rouge) !important;
    color: var(--lvm-blanc);
}

/* Lien supprimer */
.wc-block-cart-item__remove-link {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    color: var(--lvm-gris-m) !important;
    text-decoration: underline;
    text-underline-offset: 2px;
    transition: color var(--lvm-t-fast);
}

.wc-block-cart-item__remove-link:hover {
    color: var(--lvm-rouge) !important;
}

/* --- Sidebar totaux --- */
.wp-block-woocommerce-cart .wc-block-components-sidebar {
    background: var(--lvm-bg-2);
    border-radius: var(--lvm-r-lg);
    padding: var(--lvm-6);
    border: 1px solid var(--lvm-border);
    position: sticky;
    top: 80px;
}

/* Titre totaux */
.wc-block-cart__totals-title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-xl);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--lvm-noir-p);
    margin-bottom: var(--lvm-4);
}

/* Lignes de total */
.wc-block-components-totals-wrapper {
    border-color: var(--lvm-border) !important;
}

.wc-block-components-totals-item__label {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: var(--lvm-text-2);
}

.wc-block-components-totals-item__value {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-base);
    color: var(--lvm-noir-p);
}

/* Footer total (grand total) */
.wc-block-components-totals-footer-item
    .wc-block-components-totals-item__label {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-lg);
    color: var(--lvm-noir-p);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.wc-block-components-totals-footer-item
    .wc-block-components-totals-item__value {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-2xl) !important;
    color: var(--lvm-rouge) !important;
}

/* Coupon code */
.wc-block-components-totals-coupon .wc-block-components-totals-coupon__content {
    display: flex;
    gap: var(--lvm-2);
}

.wc-block-components-totals-coupon__content input {
    border: 1.5px solid var(--lvm-border) !important;
    border-radius: var(--lvm-r-full) !important;
    padding: var(--lvm-2) var(--lvm-4) !important;
    font-family: var(--lvm-fb) !important;
    font-size: var(--lvm-sm) !important;
}

.wc-block-components-totals-coupon__content input:focus {
    border-color: var(--lvm-rouge) !important;
    box-shadow: 0 0 0 3px rgba(230, 57, 70, 0.08) !important;
    outline: none;
}

.wc-block-components-totals-coupon__content button {
    background: var(--lvm-noir-p) !important;
    color: var(--lvm-blanc) !important;
    border-radius: var(--lvm-r-full) !important;
    padding: var(--lvm-2) var(--lvm-4) !important;
    font-family: var(--lvm-fb) !important;
    font-size: var(--lvm-xs) !important;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    border: none !important;
    cursor: pointer;
    transition: background var(--lvm-t-base);
}

.wc-block-components-totals-coupon__content button:hover {
    background: var(--lvm-rouge) !important;
}

/* Bouton vers checkout */
.wc-block-cart__submit-button,
.wc-block-cart__submit-container .wc-block-components-button {
    display: block !important;
    width: 100% !important;
    background: var(--lvm-rouge) !important;
    color: var(--lvm-blanc) !important;
    font-family: var(--lvm-fb) !important;
    font-weight: 700 !important;
    font-size: var(--lvm-sm) !important;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    text-align: center;
    padding: var(--lvm-4) !important;
    border-radius: var(--lvm-r-full) !important;
    border: none !important;
    cursor: pointer;
    transition: all var(--lvm-t-base);
    margin-top: var(--lvm-4);
}

.wc-block-cart__submit-button:hover,
.wc-block-cart__submit-container .wc-block-components-button:hover {
    background: var(--lvm-rouge-h) !important;
    transform: translateY(-2px);
    box-shadow: var(--lvm-sh-btn);
}

/* Livraison gratuite / options livraison */
.wc-block-components-shipping-rates-control {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
}

.wc-block-components-shipping-rates-control__package
    .wc-block-components-radio-control__label {
    font-weight: 600;
    color: var(--lvm-noir-p);
}

.wc-block-components-shipping-rates-control__package
    .wc-block-components-radio-control__description {
    color: var(--lvm-text-2);
    font-size: var(--lvm-xs);
}

/* Message panier vide */
.wc-block-cart--is-empty .wc-block-cart__empty-cart__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-2xl);
    color: var(--lvm-noir-p);
    text-transform: uppercase;
}

.wc-block-cart--is-empty .wp-block-button .wp-block-button__link {
    background: var(--lvm-rouge) !important;
    color: var(--lvm-blanc) !important;
    font-family: var(--lvm-fb);
    font-weight: 700;
    border-radius: var(--lvm-r-full);
    padding: var(--lvm-3) var(--lvm-6);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* ============================================================
   WOOCOMMERCE BLOCKS — CHECKOUT (wc-block-checkout)
   ============================================================ */

/* Layout 2 colonnes */
.wp-block-woocommerce-checkout .wc-block-components-sidebar-layout {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: var(--lvm-8);
    align-items: start;
    max-width: var(--lvm-container);
    margin: 0 auto;
    padding: var(--lvm-8) var(--lvm-4);
}

@media (max-width: 1024px) {
    .wp-block-woocommerce-checkout .wc-block-components-sidebar-layout {
        grid-template-columns: 1fr;
    }
}

/* Titre page */
.wp-block-woocommerce-checkout .wp-block-heading,
.wc-block-checkout .wp-block-heading {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-2xl);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: var(--lvm-6);
}

/* Main content zone */
.wp-block-woocommerce-checkout .wc-block-components-main {
    display: flex;
    flex-direction: column;
    gap: var(--lvm-6);
}

/* Checkout steps (billing, shipping, payment) */
.wc-block-checkout__form .wc-block-components-checkout-step {
    background: var(--lvm-blanc);
    border-radius: var(--lvm-r-lg);
    padding: var(--lvm-6);
    box-shadow: var(--lvm-sh-card);
    border: 1px solid var(--lvm-border);
    margin-bottom: var(--lvm-4);
}

.wc-block-components-checkout-step__heading {
    margin-bottom: var(--lvm-4);
}

.wc-block-components-checkout-step__title {
    font-family: var(--lvm-fd) !important;
    font-size: var(--lvm-lg) !important;
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.wc-block-components-checkout-step__description {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    color: var(--lvm-text-2);
    margin-top: var(--lvm-1);
}

/* Formulaire inputs */
.wc-block-components-text-input input,
.wc-block-components-text-input select,
.wc-block-checkout
    .wc-block-components-combobox
    .wc-block-components-combobox-control
    input,
.wc-block-components-address-form input,
.wc-block-components-address-form select {
    width: 100%;
    font-family: var(--lvm-fb) !important;
    font-size: var(--lvm-sm) !important;
    color: var(--lvm-text-1);
    background: var(--lvm-blanc);
    border: 1.5px solid var(--lvm-border) !important;
    border-radius: var(--lvm-r-sm) !important;
    padding: var(--lvm-3) var(--lvm-4) !important;
    transition: border-color var(--lvm-t-fast);
}

.wc-block-components-text-input input:focus,
.wc-block-components-address-form input:focus,
.wc-block-components-address-form select:focus {
    border-color: var(--lvm-rouge) !important;
    box-shadow: 0 0 0 3px rgba(230, 57, 70, 0.08) !important;
    outline: none !important;
}

/* Labels flottants */
.wc-block-components-text-input label {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    color: var(--lvm-text-2);
}

/* Adresse form grid */
.wc-block-components-address-form {
    display: grid;
    gap: var(--lvm-3);
}

/* Checkboxes et radios */
.wc-block-components-checkbox
    .wc-block-components-checkbox__input[type="checkbox"] {
    accent-color: var(--lvm-rouge);
}

.wc-block-components-checkbox .wc-block-components-checkbox__label {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: var(--lvm-text-1);
}

.wc-block-components-radio-control .wc-block-components-radio-control__option {
    padding: var(--lvm-3) var(--lvm-4);
    border: 1px solid var(--lvm-border);
    border-radius: var(--lvm-r-sm);
    margin-bottom: var(--lvm-2);
    transition: border-color var(--lvm-t-fast);
}

.wc-block-components-radio-control
    .wc-block-components-radio-control__option--checked {
    border-color: var(--lvm-rouge);
    background: rgba(230, 57, 70, 0.02);
}

.wc-block-components-radio-control__input {
    accent-color: var(--lvm-rouge);
}

.wc-block-components-radio-control__label {
    font-family: var(--lvm-fb);
    font-weight: 600;
    color: var(--lvm-noir-p);
}

.wc-block-components-radio-control__description {
    font-size: var(--lvm-xs);
    color: var(--lvm-text-2);
}

.wc-block-components-radio-control__secondary-label {
    font-family: var(--lvm-fd);
    color: var(--lvm-rouge);
}

/* Payment methods */
.wc-block-components-payment-method-label {
    font-family: var(--lvm-fb);
    font-weight: 700;
    font-size: var(--lvm-sm);
    color: var(--lvm-noir-p);
}

.wc-block-components-payment-method-icons {
    display: flex;
    gap: var(--lvm-1);
}

/* Place order button */
.wc-block-components-checkout-place-order-button,
.wc-block-checkout__actions .wc-block-components-button {
    display: block !important;
    width: 100% !important;
    background: var(--lvm-rouge) !important;
    color: var(--lvm-blanc) !important;
    font-family: var(--lvm-fb) !important;
    font-weight: 700 !important;
    font-size: var(--lvm-base) !important;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    text-align: center;
    padding: var(--lvm-4) var(--lvm-6) !important;
    border-radius: var(--lvm-r-full) !important;
    border: none !important;
    cursor: pointer;
    transition: all var(--lvm-t-base);
}

.wc-block-components-checkout-place-order-button:hover,
.wc-block-checkout__actions .wc-block-components-button:hover {
    background: var(--lvm-rouge-h) !important;
    transform: translateY(-2px);
    box-shadow: var(--lvm-sh-btn);
}

/* Trust text checkout */
.wc-block-checkout__actions
    .wc-block-components-checkout-return-to-cart-button {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: var(--lvm-text-2) !important;
    text-decoration: underline;
    text-underline-offset: 3px;
    background: none !important;
    border: none !important;
    cursor: pointer;
}

.wc-block-checkout__actions
    .wc-block-components-checkout-return-to-cart-button:hover {
    color: var(--lvm-rouge) !important;
}

/* --- Sidebar checkout (recap commande) --- */
.wp-block-woocommerce-checkout .wc-block-components-sidebar {
    background: var(--lvm-bg-2);
    border-radius: var(--lvm-r-lg);
    padding: var(--lvm-6);
    border: 1px solid var(--lvm-border);
    position: sticky;
    top: 80px;
}

/* Recap commande titre */
.wc-block-components-order-summary .wc-block-components-panel__button {
    font-family: var(--lvm-fd) !important;
    font-size: var(--lvm-lg) !important;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--lvm-noir-p);
}

/* Items dans la sidebar */
.wc-block-components-order-summary-item {
    border-bottom: 1px solid var(--lvm-border);
    padding: var(--lvm-3) 0;
}

.wc-block-components-order-summary-item__image img {
    border-radius: var(--lvm-r-sm);
}

.wc-block-components-order-summary-item__description
    .wc-block-components-product-name {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-sm);
    color: var(--lvm-noir-p);
    letter-spacing: 0.03em;
    text-transform: uppercase;
    text-decoration: none;
}

.wc-block-components-order-summary-item__total-price {
    font-family: var(--lvm-fd);
    color: var(--lvm-rouge);
}

.wc-block-components-order-summary-item__quantity {
    background: var(--lvm-rouge) !important;
    color: var(--lvm-blanc) !important;
    font-weight: 700;
    border-radius: var(--lvm-r-full);
}

/* Notices / errors */
.wc-block-components-notice-banner {
    border-radius: var(--lvm-r-sm);
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    padding: var(--lvm-3) var(--lvm-4);
}

.wc-block-components-notice-banner.is-error {
    border-color: var(--lvm-rouge);
    background: rgba(230, 57, 70, 0.05);
    color: var(--lvm-rouge);
}

.wc-block-components-notice-banner.is-success {
    border-color: var(--lvm-success);
    background: rgba(46, 204, 113, 0.05);
    color: var(--lvm-success);
}

.wc-block-components-notice-banner.is-info {
    border-color: var(--lvm-bleu);
    background: rgba(29, 53, 87, 0.04);
    color: var(--lvm-bleu);
}

/* ============================================================
   WOOCOMMERCE BLOCKS — THANK YOU / ORDER CONFIRMATION
   ============================================================ */

/* Conteneur global */
.woocommerce-order-received .entry-content,
.wp-block-woocommerce-order-confirmation-status,
.wp-block-woocommerce-order-confirmation-summary,
.wp-block-woocommerce-order-confirmation-totals,
.wp-block-woocommerce-order-confirmation-downloads,
.wp-block-woocommerce-order-confirmation-billing-address,
.wp-block-woocommerce-order-confirmation-shipping-address,
.wp-block-woocommerce-order-confirmation-additional-information {
    max-width: var(--lvm-container);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--lvm-4);
    padding-right: var(--lvm-4);
}

/* Statut commande — le bloc hero de confirmation */
.wp-block-woocommerce-order-confirmation-status {
    text-align: center;
    padding: var(--lvm-8);
    background: linear-gradient(
        135deg,
        rgba(46, 204, 113, 0.04),
        rgba(255, 183, 3, 0.04)
    );
    border-radius: var(--lvm-r-lg);
    margin-bottom: var(--lvm-6);
}

.wp-block-woocommerce-order-confirmation-status h1,
.wp-block-woocommerce-order-confirmation-status
    .wc-block-order-confirmation-status__title {
    font-family: var(--lvm-fd) !important;
    font-size: var(--lvm-3xl) !important;
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: var(--lvm-3);
}

.wp-block-woocommerce-order-confirmation-status p,
.wp-block-woocommerce-order-confirmation-status
    .wc-block-order-confirmation-status__description {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: var(--lvm-text-2);
    line-height: 1.8;
    max-width: 600px;
    margin: 0 auto;
}

/* Résumé commande */
.wp-block-woocommerce-order-confirmation-summary {
    background: var(--lvm-bg-2);
    border-radius: var(--lvm-r-lg);
    padding: var(--lvm-6);
    margin-bottom: var(--lvm-6);
    border: 1px solid var(--lvm-border);
}

.wp-block-woocommerce-order-confirmation-summary h2 {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-xl);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: var(--lvm-4);
}

.wp-block-woocommerce-order-confirmation-summary
    .wc-block-order-confirmation-summary-list-item {
    display: flex;
    justify-content: space-between;
    padding: var(--lvm-2) 0;
    border-bottom: 1px solid var(--lvm-border);
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
}

.wp-block-woocommerce-order-confirmation-summary
    .wc-block-order-confirmation-summary-list-item__key {
    color: var(--lvm-text-2);
}

.wp-block-woocommerce-order-confirmation-summary
    .wc-block-order-confirmation-summary-list-item__value {
    font-weight: 700;
    color: var(--lvm-noir-p);
}

/* Totaux — tableau détaillé */
.wp-block-woocommerce-order-confirmation-totals {
    margin-bottom: var(--lvm-6);
}

.wp-block-woocommerce-order-confirmation-totals
    .wc-block-order-confirmation-totals {
    background: var(--lvm-blanc);
    border-radius: var(--lvm-r-lg);
    padding: var(--lvm-6);
    box-shadow: var(--lvm-sh-card);
    border: 1px solid var(--lvm-border);
}

.wp-block-woocommerce-order-confirmation-totals h2 {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-xl);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: var(--lvm-4);
}

.wp-block-woocommerce-order-confirmation-totals table {
    width: 100%;
    border-collapse: collapse;
}

.wp-block-woocommerce-order-confirmation-totals th {
    background: var(--lvm-bg-2);
    font-family: var(--lvm-fb);
    font-weight: 700;
    font-size: var(--lvm-xs);
    letter-spacing: 1px;
    text-transform: uppercase;
    color: var(--lvm-noir-p);
    padding: var(--lvm-3) var(--lvm-4);
    text-align: left;
    border: none;
}

.wp-block-woocommerce-order-confirmation-totals td {
    padding: var(--lvm-3) var(--lvm-4);
    border-bottom: 1px solid var(--lvm-border);
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: var(--lvm-text-2);
    vertical-align: middle;
}

.wp-block-woocommerce-order-confirmation-totals .product-name {
    font-family: var(--lvm-fd);
    color: var(--lvm-noir-p);
    letter-spacing: 0.03em;
    text-transform: uppercase;
}

.wp-block-woocommerce-order-confirmation-totals .product-name a {
    text-decoration: none;
    color: inherit;
}

.wp-block-woocommerce-order-confirmation-totals .product-name a:hover {
    color: var(--lvm-rouge);
}

.wp-block-woocommerce-order-confirmation-totals tfoot .order-total td {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-2xl) !important;
    color: var(--lvm-rouge) !important;
    font-weight: 400;
}

.wp-block-woocommerce-order-confirmation-totals tfoot .order-total th {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-lg);
    text-transform: uppercase;
}

/* Téléchargements */
.wp-block-woocommerce-order-confirmation-downloads {
    margin-bottom: var(--lvm-6);
}

.wp-block-woocommerce-order-confirmation-downloads h2 {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-xl);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: var(--lvm-4);
}

.wp-block-woocommerce-order-confirmation-downloads table {
    width: 100%;
    border-collapse: collapse;
    background: var(--lvm-blanc);
    border-radius: var(--lvm-r-lg);
    overflow: hidden;
    box-shadow: var(--lvm-sh-card);
}

.wp-block-woocommerce-order-confirmation-downloads th {
    background: var(--lvm-bg-2);
    padding: var(--lvm-3) var(--lvm-4);
    font-family: var(--lvm-fb);
    font-weight: 700;
    font-size: var(--lvm-xs);
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--lvm-noir-p);
    text-align: left;
}

.wp-block-woocommerce-order-confirmation-downloads td {
    padding: var(--lvm-3) var(--lvm-4);
    border-bottom: 1px solid var(--lvm-border);
    font-size: var(--lvm-sm);
}

.wp-block-woocommerce-order-confirmation-downloads .button {
    background: var(--lvm-rouge) !important;
    color: var(--lvm-blanc) !important;
    font-family: var(--lvm-fb);
    font-weight: 700;
    font-size: var(--lvm-xs);
    border-radius: var(--lvm-r-full);
    padding: var(--lvm-2) var(--lvm-4);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Adresses facturation / livraison */
.wp-block-woocommerce-order-confirmation-billing-address,
.wp-block-woocommerce-order-confirmation-shipping-address {
    background: var(--lvm-blanc);
    border-radius: var(--lvm-r-lg);
    padding: var(--lvm-6);
    box-shadow: var(--lvm-sh-card);
    border: 1px solid var(--lvm-border);
    margin-bottom: var(--lvm-6);
}

.wp-block-woocommerce-order-confirmation-billing-address h2,
.wp-block-woocommerce-order-confirmation-shipping-address h2 {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-lg);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: var(--lvm-3);
}

.wp-block-woocommerce-order-confirmation-billing-address address,
.wp-block-woocommerce-order-confirmation-shipping-address address {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: var(--lvm-text-2);
    font-style: normal;
    line-height: 1.8;
}

/* Informations complémentaires */
.wp-block-woocommerce-order-confirmation-additional-information {
    background: var(--lvm-bg-2);
    border-radius: var(--lvm-r-lg);
    padding: var(--lvm-6);
    margin-bottom: var(--lvm-6);
}

.wp-block-woocommerce-order-confirmation-additional-information h2 {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-lg);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    text-transform: uppercase;
    margin-bottom: var(--lvm-3);
}

/* ============================================================
   WOOCOMMERCE BLOCKS — SHARED (composants partagés)
   ============================================================ */

/* Boutons WC Blocks generiques */
.wc-block-components-button {
    font-family: var(--lvm-fb) !important;
    font-weight: 700;
    border-radius: var(--lvm-r-full) !important;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    transition: all var(--lvm-t-base);
}

/* Panneau accordéon */
.wc-block-components-panel__button {
    font-family: var(--lvm-fb);
    font-weight: 700;
    color: var(--lvm-noir-p);
    font-size: var(--lvm-sm);
}

/* Liens dans les blocks WC */
.wc-block-components-checkout-step a,
.wc-block-cart a:not(.wc-block-components-product-name) {
    color: var(--lvm-rouge);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.wc-block-components-checkout-step a:hover,
.wc-block-cart a:not(.wc-block-components-product-name):hover {
    color: var(--lvm-rouge-h);
}

/* Spinner / loading */
.wc-block-components-spinner {
    border-color: var(--lvm-rouge) transparent transparent transparent;
}

/* Express payments */
.wc-block-components-express-payment {
    border: 1px solid var(--lvm-border);
    border-radius: var(--lvm-r-lg);
    padding: var(--lvm-4);
    margin-bottom: var(--lvm-4);
}

.wc-block-components-express-payment__title {
    font-family: var(--lvm-fb);
    font-weight: 700;
    font-size: var(--lvm-xs);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--lvm-text-2);
}

/* Responsive blocks checkout/cart mobile */
@media (max-width: 768px) {
    .wp-block-woocommerce-cart .wc-block-components-sidebar-layout,
    .wp-block-woocommerce-checkout .wc-block-components-sidebar-layout {
        padding: var(--lvm-4) var(--lvm-3);
    }

    .wc-block-checkout__form .wc-block-components-checkout-step {
        padding: var(--lvm-4);
    }

    .wp-block-woocommerce-cart .wc-block-components-sidebar,
    .wp-block-woocommerce-checkout .wc-block-components-sidebar {
        position: static;
        order: -1;
    }

    .wc-block-cart-items .wc-block-cart-items__row td {
        padding: var(--lvm-2) !important;
    }

    .wc-block-cart-item__image img {
        width: 60px;
    }

    /* Thank you responsive */
    .wp-block-woocommerce-order-confirmation-status {
        padding: var(--lvm-6) var(--lvm-3);
    }

    .wp-block-woocommerce-order-confirmation-billing-address,
    .wp-block-woocommerce-order-confirmation-shipping-address {
        padding: var(--lvm-4);
    }
}

/* ============================================================
   HOMEPAGE — SLIDER
   ============================================================ */

.lvm-slider {
    /* max-width: var(--lvm-container); */
    margin-left: auto;
    margin-right: auto;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: var(--lvm-3);
    padding: 0 !important;
}

.lvm-slider__pagination.swiper-pagination-clickable.swiper-pagination-bullets.swiper-pagination-horizontal.swiper-pagination-bullets-dynamic {
    position: relative;
    left: 0;
    margin: 6px auto;
    transform: none !important;
    justify-content: center;
    display: flex;
    align-items: center;
}

.lvm-slider__row {
    display: flex;
    align-items: stretch;
    gap: 8px;
}

.lvm-slider__intro {
    flex: 1;
    background: #ededef;
    border-radius: 8px;
    padding: var(--lvm-4);
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.lvm-slider__main {
    flex: 6;
    min-width: 0;
    position: relative;
    /* padding: 0 16px; */
}

.lvm-slider-swiper {
    overflow: hidden;
    width: 100%;
    height: 100%;
}

.lvm-slider-swiper .swiper-wrapper {
    transition-timing-function: linear !important;
}

/* Flèches : position absolute dans .lvm-slider__main, alignées sur les cartes */
.lvm-slider__main > .lvm-slider__arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 3;
    box-shadow: none;
    transition: opacity 0.2s;
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
    transform: scale(1) !important;
}

.lvm-slider__main > .lvm-slider__arrow--prev {
    left: 0;
}

.lvm-slider__main > .lvm-slider__arrow--next {
    right: 0;
}

/* Flèches toujours visibles, même en début/fin de slider ou s'il n'y a pas assez de slides */
.lvm-slider__arrow.swiper-button-disabled,
.lvm-slider__arrow.swiper-button-lock {
    display: flex !important;
    opacity: 1 !important;
    pointer-events: none;
}

.lvm-slider__pagination.swiper-pagination {
    position: static;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 100%;
    margin-top: var(--lvm-3);
}

.lvm-slider__pagination .swiper-pagination-bullet {
    width: 8px;
    height: 8px;
    background: var(--lvm-border-m);
    opacity: 1;
    border-radius: 50%;
    transition:
        background var(--lvm-t-fast),
        transform var(--lvm-t-fast);
    cursor: pointer;
}

.lvm-slider__pagination .swiper-pagination-bullet-active {
    background: var(--lvm-rouge);
    transform: scale(1.2);
}

.lvm-slider__label {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--lvm-rouge-h);
}

.lvm-slider__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-3xl);
    font-weight: 700;
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    margin: var(--lvm-1) 0 var(--lvm-2);
    white-space: nowrap;
}

.lvm-slider__sep {
    width: 30px;
    height: 2px;
    background: var(--lvm-noir-p);
    border: none;
    margin-bottom: var(--lvm-2);
}

.lvm-slider__subtitle {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    font-weight: 700;
    color: var(--lvm-text-2);
    margin: 0;
}

.lvm-slider__arrow {
    width: 32px;
    height: 32px;
    flex-shrink: 0;
    border-radius: 50%;
    border: none;
    background: var(--lvm-rouge);
    color: var(--lvm-blanc);
    font-size: var(--lvm-2xl);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background var(--lvm-t-fast);
    padding-bottom: 4px;
}

.lvm-slider__arrow:hover {
    background: var(--lvm-rouge);
}

.lvm-slider__arrow:focus-visible {
    outline: 2px solid var(--lvm-rouge);
    outline-offset: 2px;
}

.lvm-slider__arrow {
    transition: opacity 0.2s;
}

.lvm-slider-swiper .swiper-slide {
    height: auto;
}

.lvm-slider__card {
    width: 100%;
    /* border-radius: 8px; */
    overflow: hidden;
    display: block;
    text-decoration: none;
    aspect-ratio: 3 / 4;
    transition:
        transform var(--lvm-t-base),
        box-shadow var(--lvm-t-base);
}

.lvm-slider__card img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.lvm-slider__card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.3);
}

/* Slider responsive */
@media (max-width: 768px) {
    .lvm-slider {
        padding: 0 var(--lvm-4);
    }

    .lvm-slider__row {
        flex-direction: column;
        gap: var(--lvm-3);
    }

    .lvm-slider__intro {
        flex: none;
        width: 100%;
        height: auto;
        padding: var(--lvm-3);
        text-align: center;
        border-radius: 8px;
    }

    .lvm-slider__title {
        font-size: var(--lvm-2xl);
    }

    .lvm-slider__arrow {
        width: 32px;
        height: 32px;
        font-size: var(--lvm-base);
    }

    .lvm-slider__pagination.swiper-pagination-clickable.swiper-pagination-bullets.swiper-pagination-horizontal.swiper-pagination-bullets-dynamic {
        margin: 25px auto 10px;
        width: fit-content !important;
    }
}

/* ============================================================
   HOMEPAGE — KIOSQUE VIP (image bannière)
   ============================================================ */

.lvm-section-kiosque {
    /* max-width: var(--lvm-container); */
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
    padding: 0;
    overflow: hidden;
    /* border-radius: var(--lvm-r-md); */
    height: 150px;
    margin: 0 !important;
}

.lvm-section-kiosque img {
    width: 100%;
    height: 150px;
    display: block;
}

/* ============================================================
   HOMEPAGE — BANDEAU PUB (image bannière)
   ============================================================ */

.lvm-section-pub {
    max-width: var(--lvm-container);
    margin-left: auto;
    margin-right: auto;
    padding: 0;
    overflow: hidden;
    border-radius: var(--lvm-r-md);
}

.lvm-section-pub img {
    width: 100%;
    height: auto;
    display: block;
}

/* ============================================================
   HOMEPAGE — BLOC COMBINÉ (Bienvenue + Kiosque VIP à gauche,
   Actualités à droite, hauteurs alignées)
   ============================================================ */

.lvm-combo {
    max-width: var(--lvm-container);
    margin: var(--lvm-6) auto;
    /* padding: 0 var(--lvm-edge-padding, 15px); */
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: var(--lvm-6);
    align-items: stretch;
}

.lvm-combo__left {
    /* display: flex; */
    flex-direction: column;
    gap: var(--lvm-4);
}

/* .lvm-combo__left .lvm-section-pub {
    margin-top: 20px !important;
} */

.lvm-combo__left .lvm-section-pub,
.lvm-combo__left .lvm-section-kiosque {
    flex: 1;
    max-width: none;
    margin: 0;
    display: flex;
}

.lvm-combo__left .lvm-section-pub a,
.lvm-combo__left .lvm-section-kiosque a {
    display: block;
    width: 100%;
}

.lvm-combo__left .lvm-section-pub picture,
.lvm-combo__left .lvm-section-kiosque picture {
    display: block;
    height: 100%;
}

.lvm-combo__left .lvm-section-pub img,
.lvm-combo__left .lvm-section-kiosque img {
    width: 100%;
    /* height: 100%; */
    object-fit: cover;
}

.lvm-combo__right {
    display: flex;
}

.lvm-combo__right .lvm-actus {
    max-width: none;
    margin: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
}

.lvm-combo__right .lvm-actus__main {
    flex: 1;
}

.lvm-combo__right .lvm-actus__card {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.lvm-combo__right .lvm-actus__img {
    flex: 1;
    height: auto;
    min-height: 110px;
}

@media (max-width: 900px) {
    .lvm-combo {
        grid-template-columns: 1fr;
    }

    .lvm-combo__left .lvm-section-pub,
    .lvm-combo__left .lvm-section-kiosque {
        flex: none;
    }

    .lvm-combo__left .lvm-section-pub picture,
    .lvm-combo__left .lvm-section-kiosque picture,
    .lvm-combo__left .lvm-section-pub img,
    .lvm-combo__left .lvm-section-kiosque img {
        height: auto;
    }
}

@media (max-width: 768px) {
    .lvm-combo {
        padding: 0 var(--lvm-4);
        gap: var(--lvm-4);
    }
}

.lvm-pub-carousel__track {
    position: relative;
    height: 100%;
}

.lvm-pub-carousel__slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    transition: opacity 1s ease-in-out;
}

.lvm-pub-carousel__slide--active {
    opacity: 1;
}

/* ── Slider partenaires — infinite marquee ── */

.lvm-marquee {
    overflow: hidden;
    width: 100%;
    height: var(--marquee-h, 200px);
}

.lvm-marquee__track {
    display: flex;
    width: max-content;
    animation: lvm-marquee-scroll var(--marquee-speed, 20s) linear infinite;
}

.lvm-marquee:hover .lvm-marquee__track {
    animation-play-state: paused;
}

.lvm-marquee__item {
    flex-shrink: 0;
    width: 500px;
    height: var(--marquee-h, 350px);
    padding: 0 var(--lvm-2);
    position: relative;
    background: var(--lvm-gris-c);
}

@media (max-width: 768px) {
    .lvm-marquee {
        height: 200px;
        padding-left: 15px;
        padding-right: 15px;
    }

    .lvm-marquee__track {
        width: 100%;
        height: 100%;
        animation: none;
        position: relative;
    }

    .lvm-marquee__item {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        padding: 0;
        opacity: 0;
        transition: opacity 1s ease-in-out;
    }

    .lvm-marquee__item.lvm-marquee__item--active {
        opacity: 1;
    }
}

.lvm-marquee__caption {
    position: absolute;
    bottom: 0;
    left: var(--lvm-2);
    right: var(--lvm-2);
    padding: var(--lvm-2) var(--lvm-3);
    background: linear-gradient(transparent, rgba(0, 0, 0, 0.7));
    color: #fff;
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 700;
    border-radius: 0 0 var(--lvm-r-md) var(--lvm-r-md);
}

.lvm-marquee__item img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    border-radius: var(--lvm-r-md);
}

.lvm-marquee__item a {
    display: block;
    height: 100%;
}

@keyframes lvm-marquee-scroll {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-50%);
    }
}

@media (max-width: 768px) {
    .lvm-section-pub,
    .lvm-section-kiosque {
        max-width: 100%;
        border-radius: var(--lvm-r-md);
    }

    .lvm-section-pub img,
    .lvm-section-kiosque img {
        width: 100%;
        height: auto;
        border-radius: var(--lvm-r-md);
    }
}

@keyframes lvm-fade-in {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

/* ============================================================
   HOMEPAGE — ACTUALITÉS
   ============================================================ */

.lvm-actus {
    max-width: var(--lvm-container);
    margin-left: auto;
    margin-right: auto;
    padding: 0;
}

.lvm-actus__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--lvm-6);
}

.lvm-actus__header h2 {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-2xl);
    font-weight: 700;
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    margin: 0;
}

.lvm-actus__header a {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    font-weight: 700;
    color: var(--lvm-rouge);
    text-decoration: none;
}

.lvm-actus__header a:hover {
    color: var(--lvm-rouge);
}

.lvm-actus__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--lvm-4);
}

.home .lvm-actus__grid {
    grid-template-columns: repeat(2, 1fr);
}

.lvm-actus__card {
    display: flex;
    flex-direction: column;
    height: 100%;
    border: 1px solid var(--lvm-border);
    border-radius: var(--lvm-r-md);
    overflow: hidden;
    transition:
        transform var(--lvm-t-base),
        box-shadow var(--lvm-t-base);
}

.lvm-actus__card:hover {
    transform: translateY(-4px);
    box-shadow: var(--lvm-sh-hover);
}

.lvm-actus__link {
    text-decoration: none;
    color: inherit;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.lvm-actus__img {
    position: relative;
    height: 160px;
    overflow: hidden;
    aspect-ratio: 3/2;
}

.lvm-actus__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.lvm-actus__badge {
    /* position: absolute;
    top: var(--lvm-2);
    left: var(--lvm-2); */
    /* padding: 3px var(--lvm-2); */
    padding: 3px 6px;
    border-radius: 4px;
    font-family: var(--lvm-fb);
    /* font-size: var(--lvm-xs); */
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--lvm-blanc);
    background: var(--lvm-gris-m);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);
    /* display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden; */
    width: fit-content;
    margin-top: auto;
}

.lvm-actus__body {
    display: flex;
    flex-direction: column;
    flex: 1;
    padding: var(--lvm-3);
}

.lvm-actus__title {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    font-weight: 700;
    color: var(--lvm-noir-p);
    line-height: 1.3;
    margin: 0 0 var(--lvm-1);
    text-transform: none;
    letter-spacing: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.lvm-actus__excerpt {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    color: var(--lvm-text-3);
    line-height: 1.4;
    margin: 0 0 var(--lvm-1);
}

.lvm-actus__date {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    color: var(--lvm-gris-m);
    text-transform: uppercase;
    display: block;
}

.lvm-actus__read {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 700;
    color: var(--lvm-noir-p);
    /* text-transform: uppercase; */
    margin-top: auto;
    padding-top: var(--lvm-1);
}

.lvm-actus__arrow {
    transition: transform var(--lvm-t-base);
    color: var(--lvm-rouge);
}

.lvm-actus__card:hover .lvm-actus__arrow {
    transform: translateX(4px);
}

/* ============================================================
   PAGE BLOG / ACTUALITÉS
   ============================================================ */

/* Page header discret — breadcrumb + titre + accent doré */
.lvm-page-crumb {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    color: var(--lvm-text-3);
    padding: var(--lvm-6) 0 var(--lvm-2);
}

.lvm-page-crumb a {
    color: var(--lvm-text-3);
    text-decoration: none;
}

.lvm-page-crumb a:hover {
    color: var(--lvm-rouge);
}

.lvm-page-crumb__sep {
    margin: 0 var(--lvm-2);
    color: #c9a84c;
}

.lvm-page-head {
    padding: 0 0 var(--lvm-6);
    margin-bottom: var(--lvm-6);
    border-bottom: 1px solid var(--lvm-border);
}

.lvm-page-head h1 {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-3xl);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    margin: 0 0 var(--lvm-2);
}

.lvm-page-head__bar {
    display: block;
    width: 40px;
    height: 3px;
    background: linear-gradient(90deg, #b8973b, #d4b85a);
    border-radius: 2px;
}

.lvm-blog-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--lvm-6);
    padding: var(--lvm-8) 0;
}

.lvm-blog-card {
    border: 1px solid var(--lvm-border);
    border-radius: var(--lvm-r-md);
    overflow: hidden;
    background: var(--lvm-blanc);
    transition:
        transform var(--lvm-t-base),
        box-shadow var(--lvm-t-base);
}

.lvm-blog-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--lvm-sh-hover);
}

.lvm-blog-card__link {
    text-decoration: none;
    color: inherit;
    display: block;
    height: 100%;
}

.lvm-blog-card__img {
    position: relative;
    height: 200px;
    overflow: hidden;
}

.lvm-blog-card__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform var(--lvm-t-slow);
}

.lvm-blog-card:hover .lvm-blog-card__img img {
    transform: scale(1.03);
}

.lvm-blog-card__badge {
    position: absolute;
    top: var(--lvm-3);
    left: var(--lvm-3);
    padding: 4px var(--lvm-3);
    border-radius: 4px;
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 700;
    text-transform: uppercase;
    color: var(--lvm-blanc);
    background: var(--lvm-gris-m);
    letter-spacing: 0.05em;
}

.lvm-blog-card__body {
    /* padding: var(--lvm-4) var(--lvm-4) var(--lvm-6); */
    padding: var(--lvm-3);
}

.lvm-blog-card__title {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-base);
    font-weight: 700;
    color: var(--lvm-noir-p);
    line-height: 1.35;
    margin: 0 0 var(--lvm-2);
    text-transform: none;
    letter-spacing: 0;
}

.lvm-blog-card__excerpt {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: var(--lvm-text-3);
    line-height: 1.5;
    margin: 0 0 var(--lvm-3);
}

.lvm-blog-card__foot {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.lvm-blog-card__date {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    color: var(--lvm-gris-m);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.lvm-blog-card__cta {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 600;
    color: #c9a84c;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.lvm-blog-pagination {
    display: flex;
    justify-content: center;
    gap: var(--lvm-2);
    padding: 0 0 var(--lvm-10);
}

.lvm-blog-pagination a,
.lvm-blog-pagination span {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    padding: var(--lvm-2) var(--lvm-3);
    border-radius: var(--lvm-r-sm);
    text-decoration: none;
    color: var(--lvm-noir-p);
    transition: background var(--lvm-t-fast);
}

.lvm-blog-pagination .current {
    background: var(--lvm-rouge);
    color: var(--lvm-blanc);
}

.lvm-blog-pagination a:hover {
    background: var(--lvm-gris-c);
}

.lvm-blog-empty {
    text-align: center;
    padding: var(--lvm-16) 0;
    color: var(--lvm-text-3);
    font-size: var(--lvm-lg);
}

/* ============================================================
   ARTICLE SINGLE
   ============================================================ */

.lvm-article {
    max-width: 760px;
    margin: 0 auto;
    padding-bottom: var(--lvm-10);
}

.lvm-article__header {
    margin-bottom: var(--lvm-6);
}

.lvm-article__badge {
    display: inline-block;
    padding: 4px var(--lvm-3);
    border-radius: 4px;
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 700;
    text-transform: uppercase;
    color: var(--lvm-blanc);
    background: var(--lvm-gris-m);
    letter-spacing: 0.05em;
    margin-bottom: var(--lvm-3);
}

.lvm-article__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-3xl);
    color: var(--lvm-noir-p);
    letter-spacing: 0.03em;
    margin: 0 0 var(--lvm-3);
}

.lvm-article__meta {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    color: var(--lvm-text-3);
    margin-bottom: var(--lvm-3);
}

.lvm-article__meta-sep {
    color: #c9a84c;
    margin: 0 var(--lvm-2);
}

.lvm-article__bar {
    display: block;
    width: 40px;
    height: 3px;
    background: linear-gradient(90deg, #b8973b, #d4b85a);
    border-radius: 2px;
}

.lvm-article__hero {
    margin: 0 0 var(--lvm-8);
}

.lvm-article__hero-image {
    width: 100%;
    height: 420px;
    overflow: hidden;
}

.lvm-article__hero-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.lvm-article__credit {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: var(--lvm-gris-m);
    margin-top: var(--lvm-2);
    text-align: left;
}

.lvm-article__content {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-base);
    line-height: 1.8;
    color: var(--lvm-text-1);
    text-align: justify;
}

.lvm-article__content h2 {
    font-size: var(--lvm-xl);
    margin: var(--lvm-8) 0 var(--lvm-3);
}

.lvm-article__content h3 {
    font-size: var(--lvm-lg);
    margin: var(--lvm-6) 0 var(--lvm-2);
}

.lvm-article__content blockquote {
    border-left: 3px solid #c9a84c;
    padding: var(--lvm-4) var(--lvm-6);
    margin: var(--lvm-6) 0;
    font-family: var(--lvm-fs);
    font-style: italic;
    color: var(--lvm-text-2);
    background: var(--lvm-gris-c);
    border-radius: 0 var(--lvm-r-sm) var(--lvm-r-sm) 0;
}

.lvm-article__content a {
    color: var(--lvm-rouge);
}

.lvm-article__content a:hover {
    color: var(--lvm-rouge-h);
}

/* Content Gate — articles réservés VIP */
.lvm-content-gate__teaser {
    position: relative;
}

.lvm-content-gate__wall {
    position: relative;
    margin-top: -3rem;
    padding-top: 4rem;
    background: linear-gradient(to bottom, transparent, var(--lvm-bg-1) 3rem);
}

.lvm-content-gate__cta {
    text-align: center;
    padding: var(--lvm-8) var(--lvm-4);
    background: var(--lvm-bg-2);
    border-radius: var(--lvm-r-md);
}

.lvm-content-gate__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-2xl);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    margin: 0 0 var(--lvm-2);
}

.lvm-content-gate__text {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-base);
    color: var(--lvm-text-3);
    margin: 0 0 var(--lvm-4);
}

.lvm-article__content img {
    border-radius: var(--lvm-r-md);
    margin: var(--lvm-4) 0;
}

/* Tags */
.lvm-article__tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--lvm-2);
    margin-top: var(--lvm-8);
    padding-top: var(--lvm-6);
    border-top: 1px solid var(--lvm-border);
}

.lvm-article__tags a {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    color: var(--lvm-text-2);
    background: var(--lvm-gris-c);
    padding: var(--lvm-1) var(--lvm-3);
    border-radius: var(--lvm-r-full);
    text-decoration: none;
    transition:
        background var(--lvm-t-fast),
        color var(--lvm-t-fast);
}

.lvm-article__tags a:hover {
    background: var(--lvm-noir-p);
    color: var(--lvm-blanc);
}

/* Post nav */
.lvm-article__nav {
    display: flex;
    justify-content: space-between;
    gap: var(--lvm-4);
    max-width: 760px;
    margin: 0 auto;
    padding: var(--lvm-6) 0 var(--lvm-10);
    border-top: 1px solid var(--lvm-border);
}

.lvm-article__nav-link {
    text-decoration: none;
    color: inherit;
    flex: 1;
    padding: var(--lvm-4);
    border-radius: var(--lvm-r-md);
    transition: background var(--lvm-t-fast);
}

.lvm-article__nav-link:hover {
    background: var(--lvm-gris-c);
}

.lvm-article__nav-link--next {
    text-align: right;
}

.lvm-article__nav-label {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    color: #c9a84c;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    display: block;
    margin-bottom: var(--lvm-1);
}

.lvm-article__nav-title {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: var(--lvm-noir-p);
    font-weight: 600;
    display: block;
}

/* ============================================================
   ARTICLE — Post navigation
   ============================================================ */

.post-navigation {
    max-width: 760px;
    margin: 0 auto;
    padding: var(--lvm-6) 0 var(--lvm-10);
    border-top: 1px solid var(--lvm-border);
}

.post-navigation .screen-reader-text {
    display: none;
}

.post-navigation .nav-links {
    display: flex;
    justify-content: space-between;
    gap: var(--lvm-4);
}

.post-navigation .nav-previous,
.post-navigation .nav-next {
    flex: 1;
}

.post-navigation .nav-next {
    text-align: right;
}

.post-navigation a {
    display: block;
    padding: var(--lvm-4);
    border: 1px solid var(--lvm-border);
    border-radius: var(--lvm-r-md);
    text-decoration: none;
    color: var(--lvm-noir-p);
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    font-weight: 600;
    transition:
        background var(--lvm-t-fast),
        border-color var(--lvm-t-fast);
}

.post-navigation a:hover {
    background: var(--lvm-gris-c);
    border-color: #c9a84c;
    color: var(--lvm-noir-p);
}

@media (max-width: 768px) {
    .post-navigation .nav-links {
        flex-direction: column;
    }

    .post-navigation .nav-next {
        text-align: left;
    }
}

/* ============================================================
   MENU — Mon compte icône + dropdown
   ============================================================ */

.lvm-menu-account > a {
    font-size: 0;
}

.lvm-menu-account > a::before {
    content: "";
    display: inline-block;
    width: 20px;
    height: 20px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='1.5'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E")
        no-repeat center;
    vertical-align: middle;
}

.lvm-menu-account {
    position: relative;
}

.lvm-menu-account .sub-menu {
    position: absolute;
    top: 100%;
    right: 0;
    background: var(--lvm-blanc);
    border: 1px solid var(--lvm-border);
    border-radius: var(--lvm-r-md);
    box-shadow: var(--lvm-sh-hover);
    padding: var(--lvm-2) 0;
    min-width: 180px;
    display: none;
    z-index: 100;
}

.lvm-menu-account:hover .sub-menu,
.lvm-menu-account:focus-within .sub-menu {
    display: block;
}

.lvm-menu-account .sub-menu li {
    list-style: none;
}

.lvm-menu-account .sub-menu a {
    display: block;
    padding: var(--lvm-2) var(--lvm-4);
    font-size: var(--lvm-sm);
    color: var(--lvm-text-1);
    text-decoration: none;
    transition: background var(--lvm-t-fast);
}

.lvm-menu-account .sub-menu a:hover {
    background: var(--lvm-gris-c);
    color: var(--lvm-rouge);
}

/* ============================================================
   RESPONSIVE — Nouvelles sections
   ============================================================ */

@media (max-width: 1024px) {
    .lvm-blog-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    /* ── Global : marges mobiles homogènes sur tout le site ── */
    .lvm-hero,
    .lvm-slider,
    .lvm-corporate,
    .lvm-numero-offert,
    .lvm-newsletter,
    .lvm-actus,
    .lvm-section-kiosque,
    .lvm-section-pub {
        padding-left: var(--lvm-4);
        padding-right: var(--lvm-4);
    }

    .lvm-shop {
        padding-left: 0;
        padding-right: 0;
    }

    /* ── Slider ── */
    .lvm-slider__intro {
        flex: none;
        height: auto;
        flex-direction: row;
        align-items: center;
        gap: var(--lvm-3);
        padding: var(--lvm-3) var(--lvm-4);
    }

    .lvm-slider__sep,
    .lvm-slider__subtitle {
        display: none;
    }

    /* ── Actus ── */
    .lvm-actus__grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .lvm-actus__img {
        height: 120px;
    }

    /* ── Blog ── */
    .lvm-blog-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--lvm-4);
    }

    lvm-blog-card__img {
        height: 240px;
    }

    .lvm-article__title {
        font-size: var(--lvm-2xl);
    }

    .lvm-article__nav {
        flex-direction: column;
    }
}

@media (max-width: 480px) {
    .lvm-actus__grid {
        grid-template-columns: 1fr;
    }

    .lvm-actus__img {
        height: 160px;
    }

    .lvm-slider__intro {
        flex: 0 0 auto;
        width: 100%;
        height: auto;
    }
}

/* ============================================================
   PAGE MAGAZINES — grille 3 colonnes
   ============================================================ */

.lvm-magazine-card {
    background: var(--lvm-blanc);
    border: 1px solid var(--lvm-border);
    border-radius: var(--lvm-r-lg);
    overflow: hidden;
    box-shadow: var(--lvm-sh-card);
    transition:
        box-shadow var(--lvm-t-slow),
        transform var(--lvm-t-slow);
}

.lvm-magazine-card--boutique-only {
    border-radius: 0;
}

.lvm-magazine-card--boutique-only .lvm-magazine-card__title {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.lvm-magazine-card:hover {
    box-shadow: var(--lvm-sh-hover);
    transform: translateY(-4px);
}

.lvm-magazine-card__link {
    display: flex;
    flex-direction: column;
    height: 100%;
    text-decoration: none;
    color: inherit;
}

.lvm-magazine-card--kiosque .lvm-magazine-card {
    flex-direction: row;
}

.lvm-magazine-card--kiosque .lvm-magazine-card__link {
    flex-direction: row;
    padding: var(--lvm-2);
}

.lvm-magazine-card--kiosque .lvm-magazine-card__cover {
    width: 45%;
    /* border-radius: var(--lvm-r-lg); */
}

.lvm-magazine-card--kiosque .lvm-magazine-card__footer {
    border: none;
    padding: 15px 0 15px 15px !important;
}

.lvm-magazine-card--kiosque .lvm-magazine-card__footer h3 {
    font-family: var(--lvm-kv-card-title-font, var(--lvm-fd)) !important;
    font-size: var(--lvm-kv-card-title-size, var(--lvm-3xl)) !important;
    color: var(--lvm-noir-p);
    font-weight: 700 !important;
    margin: 0;
    text-align: left;
}

.lvm-magazine-card--kiosque .lvm-magazine-card__desc {
    margin-bottom: 0;
    font-family: var(--lvm-kv-card-desc-font, inherit);
    font-size: var(--lvm-kv-card-desc-size, inherit);
}

.lvm-magazine-card--kiosque .lvm-magazine-card__footer hr {
    height: 2px;
    background: var(--lvm-jaune);
    width: 28px;
    border: none;
    margin: 15px 0 0;
}

/* ============================================================
   Variante "kiosque" (page-kiosque-vip.php) — CTA "ANCIENS NUMÉROS"
   en bouton encadré (icône + texte) au lieu du lien texte + flèche.
   ============================================================ */

.lvm-magazine-card--kiosque {
    border: none;
}

.lvm-magazine-card--boutique.lvm-magazine-card--kiosque
    .lvm-magazine-card__cta {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    padding: 8px !important;
    border: 1px solid var(--lvm-jaune) !important;
    border-radius: 3px;
    background: none !important;
    color: var(--lvm-noir-p) !important;
    /* margin-top: 0 !important; */
    margin: 0 auto 0 0 !important;
    text-decoration: none;
    font-family: var(--lvm-kv-card-cta-font, inherit) !important;
    font-size: var(--lvm-kv-card-cta-size, 11px) !important;
    text-align: left;
}

.lvm-magazine-card--kiosque:hover .lvm-magazine-card__cta {
    background: var(--lvm-noir-p);
    border-color: var(--lvm-noir-p);
    color: #fff;
    opacity: 1;
}

.lvm-magazine-card--kiosque .lvm-magazine-card__cta svg {
    height: 20px;
    width: 20px;
}

.lvm-magazine-card--kiosque .lvm-magazine-card__cta svg path {
    stroke: var(--lvm-jaune);
}

.lvm-grid-kv {
    gap: var(--lvm-3);
}

@media (max-width: 1400px) {
    .lvm-grid-kv {
        grid-template-columns: repeat(4, 1fr);
    }
}

@media (max-width: 1200px) {
    .lvm-grid-kv {
        grid-template-columns: repeat(3, 1fr);
    }
    .lvm-magazine-card--boutique .lvm-magazine-card__footer {
        gap: 5px;
    }
}

@media (max-width: 1024px) {
    .lvm-grid-kv {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 600px) {
    .lvm-grid-kv {
        grid-template-columns: repeat(1, 1fr);
    }
}

.lvm-magazine-card__cover {
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: var(--lvm-gris-c);
    flex: 1;
}

.lvm-magazine-card__cover_2 {
    flex: unset;
}

.lvm-magazine-card__cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--lvm-t-slow);
}

.lvm-magazine-card:hover .lvm-magazine-card__cover img {
    transform: scale(1.05);
}

.lvm-magazine-card__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--lvm-2) var(--lvm-3);
    border-top: 1px solid var(--lvm-border);
}

.lvm-magazine-card__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-sm);
    color: var(--lvm-noir-p);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin: 0 0 var(--lvm-2);
}

/* Taille vignettes — setting Apparence > LV Medias > Pages > Magazines / Magazine-Boutique */
.lvm-magazine-card--title-sm .lvm-magazine-card__title {
    font-size: 13px;
}
.lvm-magazine-card--title-lg .lvm-magazine-card__title {
    font-size: 19px;
}
.lvm-magazine-card--title-sm .lvm-magazine-card__cover {
    aspect-ratio: 3 / 4;
}
.lvm-magazine-card--title-lg .lvm-magazine-card__cover {
    aspect-ratio: 2 / 3;
}
.lvm-magazine-card--title-sm .lvm-magazine-card__footer {
    padding: var(--lvm-1) var(--lvm-2);
}
.lvm-magazine-card--title-lg .lvm-magazine-card__footer {
    padding: var(--lvm-3) var(--lvm-4);
}

.lvm-shop-content-magazine {
    margin-bottom: var(--lvm-4);
}

.lvm-shop-content-magazine .lvm-grid {
    gap: var(--lvm-2) var(--lvm-4);
}

.lvm-magazine-card__desc {
    font-size: var(--lvm-sm);
    color: var(--lvm-text-2);
    margin: 0 0 var(--lvm-3);
    line-height: 1.5;
}

.lvm-magazine-card__price {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-xl);
    color: var(--lvm-rouge);
    display: block;
    margin-bottom: var(--lvm-2);
}

.lvm-magazine-card__cta {
    display: inline-block;
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 700;
    color: var(--lvm-blanc);
    background: var(--lvm-rouge);
    padding: 4px 10px;
    border-radius: 3px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    transition: opacity var(--lvm-t-base);
}

.lvm-magazine-card:hover .lvm-magazine-card__cta {
    opacity: 0.85;
}

/* ============================================================
   Variante "boutique" (page-magazine-boutique.php) — description
   sur 2 lignes + CTA texte + flèche, aligné en bas de carte.
   Scopée pour ne pas affecter la grille magazines existante.
   ============================================================ */
.lvm-magazine-card--boutique .lvm-magazine-card__footer {
    flex-direction: column;
    align-items: stretch;
    gap: 1px;
    flex: 1;
    padding: 10px;
}

.lvm-magazine-card--boutique .lvm-magazine-card__desc {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    margin: 0 0 var(--lvm-2);
}

.lvm-magazine-card--boutique .lvm-magazine-card__title {
    text-align: center;
}

.lvm-magazine-card--boutique .lvm-magazine-card__cta {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-top: auto;
    padding: 0 !important;
    background: none;
    color: var(--lvm-rouge);
    margin: auto auto 0;
    border: 1px solid var(--lvm-noir);
    padding: var(--lvm-2) var(--lvm-2) !important;
    min-width: 90%;
    text-align: center;
    display: block;
    color: var(--lvm-noir-p);
}

.lvm-magazine-card--boutique:hover .lvm-magazine-card__cta {
    opacity: 0.75;
}

/* ============================================================
   "D'autres titres arrivent bientôt" — bloc placeholder
   ============================================================ */
.lvm-magazine-more {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: var(--lvm-3);
    margin-top: var(--lvm-6);
    padding: var(--lvm-8) var(--lvm-4);
    border: 1px dashed var(--lvm-border);
    border-radius: var(--lvm-r-lg);
}

.lvm-magazine-more__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--lvm-gris-c);
    color: var(--lvm-gris-m);
    font-size: 22px;
    line-height: 1;
}

.lvm-magazine-more__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-base);
    color: var(--lvm-noir-p);
    text-transform: uppercase;
    letter-spacing: 0.03em;
    margin: 0;
}

.lvm-magazine-more__sub {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: var(--lvm-text-2);
    margin: 0;
}

/* ============================================================
   Bandeau bas de page — Page Magazine / Boutique
   ============================================================ */
.lvm-magboutique-banner {
    width: 100%;
    margin-top: var(--lvm-8);
}

.lvm-magboutique-banner--inline {
    margin-top: 0;
}

@media (max-width: 1024px) {
    .lvm-magboutique-banner--inline {
        grid-column: 1 / -1 !important;
    }
}

.lvm-magboutique-banner__link {
    display: block;
}

.lvm-magboutique-banner__img {
    display: block;
    width: 100%;
    height: auto;
}

.lvm-magboutique-banner-mobile {
    display: none;
}

@media (max-width: 768px) {
    .lvm-magboutique-banner-mobile {
        display: block;
    }
    .lvm-magboutique-banner-web {
        display: none;
    }
    .lvm-page-magazines .lvm-grid--3 {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 480px) {
    .lvm-page-magazines .lvm-grid--3 {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   PRODUCT — Réassurance
   ============================================================ */

/* ============================================================
   PRODUCT — Upsell abonnement
   ============================================================ */

.lvm-upsell-abo {
    background: linear-gradient(135deg, var(--lvm-noir-p), var(--lvm-bleu));
    color: var(--lvm-blanc);
    padding: var(--lvm-12) var(--lvm-4);
    margin-top: var(--lvm-12);
}

.lvm-upsell-abo__inner {
    text-align: center;
    max-width: 600px;
    margin: 0 auto;
}

.lvm-upsell-abo__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-3xl);
    color: var(--lvm-blanc);
    margin-bottom: var(--lvm-4);
}

.lvm-upsell-abo__desc {
    color: rgba(255, 255, 255, 0.7);
    margin-bottom: var(--lvm-6);
    line-height: 1.6;
}

/* ============================================================
   5 BONNES RAISONS
   ============================================================ */

.lvm-raisons {
    padding: var(--lvm-12) var(--lvm-4);
    background: var(--lvm-gris-c);
}

.lvm-raisons__grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: var(--lvm-4);
    margin-top: var(--lvm-8);
}

.lvm-raisons__item {
    text-align: center;
    background: var(--lvm-blanc);
    border-radius: var(--lvm-r-md);
    padding: var(--lvm-6) var(--lvm-3);
}

.lvm-raisons__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: var(--lvm-rouge);
    color: var(--lvm-blanc);
    border-radius: 50%;
    font-weight: 700;
    font-size: var(--lvm-base);
    margin-bottom: var(--lvm-3);
}

.lvm-raisons__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-base);
    color: var(--lvm-noir-p);
    margin-bottom: var(--lvm-2);
}

.lvm-raisons__desc {
    font-size: var(--lvm-sm);
    color: var(--lvm-text-2);
    line-height: 1.5;
}

@media (max-width: 1024px) {
    .lvm-raisons__grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 768px) {
    .lvm-raisons__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 480px) {
    .lvm-raisons__grid {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   PRODUCT — 3 CTAs cross-sell
   ============================================================ */

.lvm-product-ctas {
    display: flex;
    justify-content: space-between;
    gap: var(--lvm-1);
    margin-top: var(--lvm-1);
}

.lvm-product-ctas__btn {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 10px 0;
    border-radius: var(--lvm-r-sm);
    background: var(--lvm-btn-cta-bg, transparent);
    border: 1px solid var(--lvm-btn-cta-border, var(--lvm-noir-p));
    color: var(--lvm-btn-cta-text, var(--lvm-noir-p));
    text-decoration: none;
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    transition:
        background var(--lvm-t-fast),
        color var(--lvm-t-fast);
}

.lvm-product-ctas__btn:hover {
    background: var(--lvm-btn-cta-bg-h, var(--lvm-rouge));
    border-color: var(--lvm-btn-cta-border-h, var(--lvm-rouge));
    color: var(--lvm-btn-cta-text-h, #fff);
}

.lvm-preview-cta {
    margin-top: var(--lvm-2);
    display: none;
}

.lvm-preview-cta .lvm-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 100%;
    padding: 10px 0;
    border-radius: var(--lvm-r-sm);
    background: none;
    border: 1px solid var(--lvm-border);
    color: var(--lvm-noir-p);
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    cursor: pointer;
    transition:
        border-color var(--lvm-t-fast),
        color var(--lvm-t-fast);
}

.lvm-preview-cta .lvm-btn:hover {
    border-color: var(--lvm-rouge);
    color: var(--lvm-rouge);
}

/* ============================================================
   PAGE PUBLICITÉ
   ============================================================ */

/* Hero pub */
.lvm-pub-hero {
    display: flex;
    align-items: center;
    gap: var(--lvm-6);
    background: linear-gradient(135deg, #1a1a2e, #1d3557);
    border-radius: 16px;
    padding: var(--lvm-6) var(--lvm-8);
    margin-bottom: var(--lvm-8);
    overflow: hidden;
}

.lvm-pub-hero__text {
    flex: 1;
}

.lvm-pub-hero__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-4xl);
    color: #fff;
    letter-spacing: 0.04em;
    margin: 0 0 var(--lvm-2);
}

.lvm-pub-hero__sub {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: rgba(255, 255, 255, 0.65);
    margin: 0 0 var(--lvm-4);
    line-height: 1.6;
}

.lvm-pub-hero__visual {
    flex: 0 0 280px;
    text-align: center;
}

.lvm-pub-hero__visual img {
    max-height: 200px;
    width: auto;
}

/* Chiffres clés */
.lvm-pub-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--lvm-4);
    margin-bottom: var(--lvm-10);
}

.lvm-pub-stats__item {
    text-align: center;
    padding: var(--lvm-4);
    background: var(--lvm-gris-c);
    border-radius: 12px;
}

.lvm-pub-stats__num {
    display: block;
    font-family: var(--lvm-fd);
    font-size: var(--lvm-4xl);
    color: var(--lvm-rouge);
    letter-spacing: 0.04em;
}

.lvm-pub-stats__label {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    color: var(--lvm-text-2);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* Titre sections pub */
.lvm-pub-section-title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-xl);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    margin: 0 0 var(--lvm-6);
}

/* Cards expertises */
.lvm-pub-card {
    background: #fff;
    border: 1px solid var(--lvm-border);
    border-radius: 12px;
    padding: var(--lvm-6);
    transition:
        box-shadow var(--lvm-t-base),
        transform var(--lvm-t-base);
}

.lvm-pub-card:hover {
    box-shadow: var(--lvm-sh-hover);
    transform: translateY(-3px);
}

.lvm-pub-card__icon {
    font-size: var(--lvm-2xl);
    margin-bottom: var(--lvm-2);
}

.lvm-pub-card__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-lg);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    margin: 0 0 var(--lvm-2);
}

.lvm-pub-card__desc {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: var(--lvm-text-2);
    line-height: 1.6;
    margin: 0;
}

/* CTA intermédiaire */
.lvm-pub-cta-mid {
    display: flex;
    align-items: center;
    gap: var(--lvm-6);
    background: linear-gradient(135deg, #e63946, #ff6b4a);
    border-radius: 16px;
    padding: var(--lvm-6) var(--lvm-8);
    margin: var(--lvm-10) 0;
    overflow: hidden;
}

.lvm-pub-cta-mid__text {
    flex: 1;
}

.lvm-pub-cta-mid__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-2xl);
    color: #fff;
    letter-spacing: 0.04em;
    margin: 0 0 var(--lvm-2);
}

.lvm-pub-cta-mid__desc {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: rgba(255, 255, 255, 0.8);
    margin: 0;
    line-height: 1.6;
}

.lvm-pub-cta-mid__visual {
    flex: 0 0 160px;
    text-align: center;
}

.lvm-pub-cta-mid__visual img {
    max-height: 160px;
    width: auto;
}

/* Formulaire + contact */
.lvm-pub-contact {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: var(--lvm-8);
    align-items: start;
    margin-top: var(--lvm-8);
}

.lvm-pub-contact__card {
    background: var(--lvm-gris-c);
    border-radius: 12px;
    padding: var(--lvm-4) var(--lvm-6);
    margin-bottom: var(--lvm-4);
}

.lvm-pub-contact__card h3 {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-base);
    color: var(--lvm-noir-p);
    margin: 0 0 var(--lvm-2);
}

.lvm-pub-contact__card p {
    font-size: var(--lvm-sm);
    color: var(--lvm-text-2);
    margin: 0;
    line-height: 1.6;
}

.lvm-pub-contact__card a {
    color: var(--lvm-text-2);
    text-decoration: none;
}

.lvm-pub-contact__card a:hover {
    color: var(--lvm-rouge);
}

/* Style bouton formulaire pub */
.lvm-pub-contact__form .wpforms-submit {
    background: var(--lvm-rouge) !important;
    color: #fff !important;
    border: none !important;
    border-radius: 50px !important;
    padding: 0.75rem 2rem !important;
    font-family: var(--lvm-fb) !important;
    font-weight: 700 !important;
    font-size: var(--lvm-sm) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    cursor: pointer;
}

.lvm-pub-contact__form .wpforms-submit:hover {
    background: var(--lvm-rouge-h) !important;
}

@media (max-width: 768px) {
    .lvm-pub-hero {
        flex-direction: column;
        padding: var(--lvm-4);
    }

    .lvm-pub-hero__visual {
        display: none;
    }

    .lvm-pub-hero__title {
        font-size: var(--lvm-3xl);
    }

    .lvm-pub-stats {
        grid-template-columns: repeat(2, 1fr);
    }

    .lvm-pub-cta-mid {
        flex-direction: column;
        padding: var(--lvm-4);
    }

    .lvm-pub-cta-mid__visual {
        display: none;
    }

    .lvm-pub-contact {
        grid-template-columns: 1fr;
    }
}

.lvm-product-ctas__btn--gold {
    border-color: var(--lvm-btn-gold-border, transparent) !important;
    background: var(
        --lvm-btn-gold-bg,
        linear-gradient(135deg, #c9a84c, #f5d680)
    );
    color: var(--lvm-btn-gold-text, var(--lvm-noir-p));
}

.lvm-product-ctas__btn--gold:hover {
    border-color: var(--lvm-btn-gold-border-h, transparent) !important;
    background: var(
        --lvm-btn-gold-bg-h,
        linear-gradient(135deg, #b8932e, #e8c85c)
    );
    color: var(--lvm-btn-gold-text-h, var(--lvm-noir-p));
}

/* ============================================================
   À PROPOS — description + fiche technique
   ============================================================ */

.lvm-product-about {
    background: #f5f0eb;
    border-radius: 16px;
    padding: var(--lvm-8);
    margin-top: var(--lvm-8);
}

.lvm-product-about__inner {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: var(--lvm-8);
    align-items: start;
}

.lvm-product-about__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-xl);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    margin: 0 0 var(--lvm-4);
}

.lvm-product-about__desc {
    font-size: var(--lvm-sm);
    color: var(--lvm-text-2);
    line-height: 1.8;
}

.lvm-product-about__desc p {
    margin: 0 0 var(--lvm-3);
}

.lvm-product-about__specs-title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-base);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    margin: 0 0 var(--lvm-3);
}

.lvm-product-about__table {
    width: 100%;
    border-collapse: collapse;
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
}

.lvm-product-about__table tr {
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
}

.lvm-product-about__table td {
    padding: var(--lvm-2) 0;
    vertical-align: top;
}

.lvm-product-about__table td:first-child {
    font-weight: 600;
    color: var(--lvm-noir-p);
    width: 40%;
}

.lvm-product-about__table td:last-child {
    color: var(--lvm-text-2);
}

@media (max-width: 768px) {
    .lvm-product-about__inner {
        grid-template-columns: 1fr;
    }

    .lvm-product-about {
        padding: var(--lvm-4);
    }
}

.lvm-btn--gold {
    background: linear-gradient(135deg, #c9a84c, #f5d680, #c9a84c);
    color: var(--lvm-noir-p);
    border: none;
    font-weight: 700;
}

.lvm-btn--gold:hover {
    background: linear-gradient(135deg, #b8932e, #e8c85c, #b8932e);
    color: var(--lvm-noir-p);
}

/* ============================================================
   SEARCH RESULTS
   ============================================================ */

.lvm-search-results {
    max-width: 800px;
    margin: 0 auto;
    padding: var(--lvm-8) var(--lvm-4);
}

.lvm-search-result {
    margin-bottom: var(--lvm-6);
    padding-bottom: var(--lvm-6);
    border-bottom: 1px solid var(--lvm-border);
}

.lvm-search-result__title {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-lg);
    font-weight: 700;
    text-transform: none;
    letter-spacing: 0;
    margin: 0 0 var(--lvm-2);
}

.lvm-search-result__title a {
    color: var(--lvm-noir-p);
    text-decoration: none;
}

.lvm-search-result__title a:hover {
    color: var(--lvm-rouge);
}

.lvm-search-result__excerpt {
    font-size: var(--lvm-sm);
    color: var(--lvm-text-2);
    line-height: 1.6;
}

.lvm-search-result__excerpt p {
    margin: 0;
}

.lvm-search-result__empty {
    text-align: center;
    color: var(--lvm-text-2);
    padding: var(--lvm-12) 0;
}

/* ============================================================
   SEARCH OVERLAY
   ============================================================ */

/* ============================================================
   COMING SOON PAGES (Kiosque VIP + Abonnements)
   ============================================================ */

/* ============================================================
   PAGE CONTACT
   ============================================================ */

.lvm-contact {
    position: relative;
    padding: 0 0 var(--lvm-10);
}

.lvm-contact__body {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: var(--lvm-8);
    align-items: start;
}

.lvm-contact_form-bloc {
    display: flex;
}

.lvm-contact__left {
    width: 400px;
}

.lvm-contact__right {
    width: calc(100% - 400px);
}

@media (max-width: 1200px) {
    .lvm-contact__left {
        width: 300px;
    }

    .lvm-contact__right {
        width: calc(100% - 300px);
    }
}

@media (max-width: 1024px) {
    .lvm-contact_form-bloc {
        flex-direction: column;
    }
    .lvm-contact__left {
        display: none;
    }
    .lvm-contact__right {
        width: 100%;
    }
}

/* Colonne intro : badge + titre + sous-titre + description + illustration */
.lvm-contact__intro-badge {
    font-family: var(--lvm-fs);
    font-style: italic;
    font-size: var(--lvm-3xl);
    font-weight: 700;
    letter-spacing: 0.06em;
    color: var(--lvm-rose);
    margin-bottom: var(--lvm-1);
    display: block;
}

.lvm-contact__h1 {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-4xl);
    color: var(--lvm-noir-p);
    letter-spacing: 0.02em;
    line-height: 1.1;
    margin: 0 0 var(--lvm-2);
}

.lvm-contact__gold {
    font-family: var(--lvm-fs);
    font-style: italic;
    font-size: var(--lvm-md);
    color: var(--lvm-orange);
    margin: 0 0 var(--lvm-4);
}

.lvm-contact__desc {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    /* font-weight: 700; */
    color: var(--lvm-noir);
    line-height: 1.5;
    margin: 0;
    padding: var(--lvm-4) 0 0;
    position: relative;
}

.lvm-contact__desc::before {
    content: "";
    position: absolute;
    left: 0;
    width: 14%;
    height: 2px;
    background: var(--lvm-rouge);
    top: 0;
}

.lvm-contact__visual {
    border-radius: var(--lvm-r-xl);
    overflow: hidden;
}

.lvm-contact__visual img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: var(--lvm-r-xl);
}

/* Colonne formulaire */
.lvm-contact__form-col {
    position: relative;
    /* background: var(--lvm-blanc); */
    background: #fefae040;
    /* border: 1px solid var(--lvm-border); */
    border-radius: var(--lvm-r-xl);
    padding: var(--lvm-6) var(--lvm-6) var(--lvm-2);
    box-shadow: 0 18px 50px rgba(20, 21, 39, 0.08);
}

.lvm-contact__note-image {
    margin: 0 0 var(--lvm-4);
    position: absolute;
    width: 165px;
    z-index: 30;
    right: 15px;
    top: -12px;
}

.lvm-contact__note-image img {
    max-width: 100%;
    height: auto;
    display: block;
}

.lvm-contact__form-title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-2xl);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    margin: 0 0 var(--lvm-4);
    position: relative;
}

.lvm-contact__form-title::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -8px;
    width: 45px;
    height: 2px;
    background: var(--lvm-rouge);
}

.lvm-contact__note {
    position: absolute;
    top: -16px;
    right: var(--lvm-6);
    background: var(--lvm-jaune-d);
    color: var(--lvm-noir-p);
    font-family: var(--lvm-fs);
    font-style: italic;
    font-size: var(--lvm-sm);
    padding: var(--lvm-3) var(--lvm-4);
    border-radius: 2px;
    box-shadow: var(--lvm-sh-hover);
    transform: rotate(4deg);
}

/* WPForms dans le contact */
.lvm-contact__form-col .wpforms-submit {
    background: var(--lvm-rose) !important;
    color: #fff !important;
    border: none !important;
    border-radius: var(--lvm-r-full) !important;
    padding: 0.85rem 2.25rem !important;
    font-family: var(--lvm-fb) !important;
    font-weight: 700 !important;
    font-size: var(--lvm-sm) !important;
    text-transform: uppercase !important;
    letter-spacing: 0.04em !important;
    cursor: pointer;
    transition: background 0.2s !important;
}

.lvm-contact__form-col .wpforms-submit:hover {
    background: var(--lvm-rouge-h) !important;
}

/* Cartes de contact (sous le formulaire) */
.lvm-contact__cards {
    display: grid;
    grid-template-columns: 1fr 1fr;
    margin-top: var(--lvm-4);
    background: #fefae040;
    border-radius: var(--lvm-r-lg);
    /* max-width: 800px; */
    box-shadow: 0 18px 50px rgba(20, 21, 39, 0.08);
    padding: var(--lvm-5) 0;
}

.lvm-contact__card {
    display: flex;
    align-items: flex-start;
    gap: var(--lvm-4);
    padding: 0 10%;
    border-right: 1px solid rgba(214, 174, 73, 0.35);
}

@media (max-width: 1200px) {
    .lvm-contact__card {
        padding: 0 5%;
    }
}

@media (max-width: 1024px) {
    .lvm-contact__cards {
        grid-template-columns: 1fr;
        gap: 20px;
    }
    .lvm-contact__card {
        border: none !important;
    }
}

.lvm-contact__card--accent {
    border-left: 1px solid rgba(214, 174, 73, 0.35);
    border-right: none;
}

.lvm-contact__card-icon {
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--lvm-2xl);
    background: var(--lvm-orange);
    border-radius: 50%;
}

.lvm-contact__card-icon svg {
    height: 26px;
    width: 26px;
}

.lvm-contact__card--accent .lvm-contact__card-icon {
    background: var(--lvm-rouge);
}

.lvm-contact__card--accent .lvm-contact__card-icon svg {
    height: 30px;
    width: 30px;
}

.lvm-contact__card h3 {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-base);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    margin: 0 0 var(--lvm-1);
}

.lvm-contact__card a {
    display: inline-block;
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    font-weight: 700;
    color: var(--lvm-noir-p);
    text-decoration: none;
    margin: 0 0 var(--lvm-1);
}

.lvm-contact__card p,
.lvm-contact__card p a {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: var(--lvm-noir-p);
    margin: 0 0 var(--lvm-1);
    line-height: 1.5;
    font-weight: 400;
}

.lvm-contact__card a:hover {
    color: var(--lvm-rouge);
}

.lvm-contact__card-link {
    color: var(--lvm-rouge) !important;
}

@media (max-width: 1024px) {
    .lvm-contact__cards {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 900px) {
    .lvm-contact__body {
        grid-template-columns: 1fr;
    }

    .lvm-contact__intro {
        display: grid;
        grid-template-columns: 3fr 2fr;
    }

    .lvm-contact__desc {
        max-width: none;
    }
}

@media (max-width: 768px) {
    .lvm-contact__h1 {
        font-size: 1.6rem;
    }

    .lvm-contact__form-col {
        padding: var(--lvm-5) var(--lvm-4);
    }

    .lvm-contact__note {
        position: static;
        display: inline-block;
        transform: none;
        margin-bottom: var(--lvm-3);
    }
}

@media (max-width: 600px) {
    .lvm-contact__intro {
        grid-template-columns: 1fr;
    }

    .lvm-contact__note-image {
        width: 125px;
    }
}

/* ============================================================
   FICHE MAGAZINE — Présentation complète par titre
   ============================================================ */

.lvm-fiche {
    background: var(--lvm-blanc);
    padding: var(--lvm-6) 0 0;
}

.lvm-fiche__inner {
    max-width: var(--lvm-container);
    margin: 0 auto;
    padding: 0;
}

@media screen and (max-width: 1250px) {
    .lvm-fiche__inner {
        padding: 0 var(--lvm-4);
    }
}

.lvm-fiche__main {
    display: grid;
    grid-template-columns: 5fr 6fr;
    gap: var(--lvm-8);
    align-items: stretch;
}

.lvm-fiche__content {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

/* -- Covers -- */
.lvm-fiche__covers {
    position: relative;
}

.lvm-fiche__cover {
    width: 100%;
    height: auto;
    border-radius: var(--lvm-r-md);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
}

.lvm-fiche__covers--dual {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--lvm-3);
    align-items: end;
}

.lvm-fiche__covers--dual .lvm-fiche__cover--second {
    margin-top: var(--lvm-6);
}

/* -- Content -- */
.lvm-fiche__logo {
    max-width: 480px;
    height: auto;
    margin-bottom: var(--lvm-3);
}

.lvm-fiche__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-6xl);
    font-weight: 700;
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    margin: 0 0 var(--lvm-2);
    line-height: 0.95;
    text-transform: uppercase;
}

/* Sous-titre (DM Sans, bold, uppercase) */
.lvm-fiche__subtitle {
    display: flex;
    flex-direction: column;
    margin-bottom: var(--lvm-3);
}

.lvm-fiche__subtitle span {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--lvm-noir-p);
    line-height: 1.5;
}

.lvm-fiche__subtitle--accent {
    color: var(--fiche-color, var(--lvm-rouge)) !important;
}

/* Accroche (Playfair Display, italic) */
.lvm-fiche__accroche-wrap {
    margin-bottom: var(--lvm-4);
}

.lvm-fiche__accroche {
    font-family: var(--lvm-fs);
    font-size: var(--lvm-lg);
    font-style: italic;
    color: var(--lvm-noir-p);
    line-height: 1.4;
    margin: 0 0 var(--lvm-1);
}

.lvm-fiche__underline {
    display: block;
    width: 260px;
    height: auto;
    color: var(--fiche-color, var(--lvm-rouge));
    margin-top: -2px;
}

.lvm-fiche__sep {
    width: 40px;
    height: 3px;
    background: var(--fiche-color, var(--lvm-noir-p));
    margin-bottom: var(--lvm-4);
}

/* -- Rubriques -- */
.lvm-fiche__rubriques {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--lvm-4);
}

.lvm-fiche__rubrique {
    display: flex;
    align-items: flex-start;
    gap: var(--lvm-3);
}

.lvm-fiche__rubrique-icon {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.lvm-fiche__rubrique-icon img {
    width: 48px;
    height: 48px;
    object-fit: contain;
}

.lvm-fiche__rubrique-icon svg {
    width: 40px;
    height: 40px;
}

.lvm-fiche__rubrique-titre {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-base);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    color: var(--lvm-noir-p);
    display: block;
    margin-bottom: 3px;
}

.lvm-fiche__rubrique-desc {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: var(--lvm-text-2);
    line-height: 1.5;
    margin: 0;
}

/* -- CTAs (réutilise .lvm-product-ctas de la fiche produit) -- */
.lvm-fiche .lvm-product-ctas {
    margin-top: var(--lvm-5);
}

.lvm-fiche .lvm-product-ctas__btn:first-child {
    background: var(--fiche-color, var(--lvm-rouge));
    color: #fff;
}

.lvm-fiche .lvm-product-ctas__btn:first-child:hover {
    filter: brightness(0.85);
    color: #fff;
}

.lvm-fiche .lvm-product-ctas__btn:nth-child(2) {
    background: var(--lvm-noir-p);
    color: #fff;
}

.lvm-fiche .lvm-product-ctas__btn:nth-child(2):hover {
    background: var(--lvm-bleu);
    color: #fff;
}

/* -- Réassurances -- */
.lvm-fiche__reassurances {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    margin-top: var(--lvm-6);
    margin-bottom: var(--lvm-8);
    padding-top: var(--lvm-5);
}

.lvm-fiche__reassurance {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--lvm-3);
    text-align: left;
    padding: 0 var(--lvm-4);
    border-right: 1px solid var(--lvm-noir-p);
    justify-content: center;
}

.lvm-fiche__reassurance:last-child {
    border-right: none;
}

.lvm-fiche__reassurance-icon {
    display: flex;
    align-items: center;
    justify-content: center;
}

.lvm-fiche__reassurance-icon img {
    width: 40px;
    height: 40px;
    object-fit: contain;
}

.lvm-fiche__reassurance-icon svg {
    width: 36px;
    height: 36px;
}

.lvm-fiche__reassurance > span:last-child {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--lvm-noir-p);
    line-height: 1.4;
}

/* -- Responsive -- */
@media (max-width: 1024px) {
    .lvm-fiche__main {
        grid-template-columns: 1fr 1fr;
        gap: var(--lvm-6);
    }
}

@media (max-width: 768px) {
    .lvm-fiche {
        padding: var(--lvm-4) 0 0;
    }

    .lvm-fiche__main {
        grid-template-columns: 1fr;
        gap: var(--lvm-5);
    }

    .lvm-fiche__covers {
        max-width: 300px;
        margin: 0 auto;
    }

    .lvm-fiche__covers--dual {
        max-width: 100%;
    }

    .lvm-fiche__logo {
        max-width: 260px;
    }

    .lvm-fiche__title {
        font-size: var(--lvm-3xl);
    }

    .lvm-fiche__subtitle span {
        font-size: var(--lvm-xs);
    }

    .lvm-fiche__accroche {
        font-size: var(--lvm-base);
    }

    .lvm-fiche__reassurances {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--lvm-3);
    }

    .lvm-fiche__reassurance {
        border-right: none;
        padding: var(--lvm-2) 0;
    }
}

/* ============================================================
   VENTE AU N° / ABONNEMENTS — Layout univers thématiques
   ============================================================ */

.lvm-shop-layout {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: var(--lvm-8);
    align-items: start;
}

.lvm-shop-sidebar {
    position: sticky;
    top: 100px;
    display: flex;
    flex-direction: column;
    height: calc(100vh - 120px);
}

.lvm-shop-sidebar__magazine-top {
    margin-bottom: 20px;
}

.lvm-shop-sidebar_full-height {
    height: unset !important;
}

.lvm-shop-sidebar__label {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--lvm-rouge);
}

.lvm-shop-sidebar__bar {
    display: flex;
    height: 3px;
    width: 25%;
    margin: var(--lvm-2) 0 var(--lvm-4);
}

.lvm-shop-sidebar__bar::before,
.lvm-shop-sidebar__bar::after {
    content: "";
    flex: 1;
    height: 100%;
}

.lvm-shop-sidebar__bar::before {
    background: var(--lvm-rouge);
}

.lvm-shop-sidebar__bar::after {
    background: var(--lvm-jaune);
}

.lvm-shop-sidebar__center {
    margin: 5px auto;
    max-width: 50px;
}

.lvm-shop-sidebar__center::after {
    display: none !important;
}

.lvm-shop-sidebar__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-5xl);
    color: var(--lvm-noir-p);
    font-weight: 700;
    margin: 0 0 var(--lvm-2);
    line-height: 1.2;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

.lvm-shop-sidebar__title-magazine {
    margin-top: 20px;
}

.lvm-dot {
    color: var(--lvm-rouge);
}

.lvm-shop-sidebar__sub {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    font-weight: 700;
    color: var(--lvm-noir);
    line-height: 1.6;
    margin: 0 0 var(--lvm-6);
    padding: var(--lvm-3) 0;
    position: relative;
}

.lvm-shop-sidebar__sub::before,
.lvm-shop-sidebar__sub::after {
    content: "";
    position: absolute;
    left: 0;
    width: 14%;
    height: 2px;
    background: var(--lvm-rouge);
}

.lvm-shop-sidebar__sub::before {
    top: 0;
}

.lvm-shop-sidebar__sub::after {
    bottom: 0;
}

.lvm-shop-sidebar__visual {
    margin-top: auto;
}

.lvm-shop-sidebar__visual img {
    width: 100%;
    height: auto;
}

.lvm-univers {
    margin-bottom: var(--lvm-10);
}

.lvm-univers__header {
    display: flex;
    align-items: center;
    gap: var(--lvm-3);
    margin-bottom: var(--lvm-4);
}

.lvm-univers__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-xl);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    margin: 0;
    display: flex;
    align-items: center;
    gap: var(--lvm-2);
    white-space: nowrap;
    flex-shrink: 0;
}

@media (max-width: 768px) {
    .lvm-univers__title {
        font-size: var(--lvm-sm);
    }

    .lvm-univers__link {
        font-size: 0.5rem;
        white-space: nowrap;
    }
}

.lvm-univers__icon {
    display: flex;
    color: var(--lvm-noir);
}

.lvm-univers__link {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 700;
    color: var(--lvm-noir-p);
    text-decoration: none;
}

.lvm-univers__link:hover {
    color: var(--lvm-rouge);
}

.lvm-univers__line {
    flex: 1;
    height: 1px;
    background: var(--lvm-noir);
    min-width: 20px;
}

@media (max-width: 1024px) {
    .lvm-shop-layout {
        grid-template-columns: 220px 1fr;
        gap: var(--lvm-4);
    }

    .lvm-shop-layout--magazine,
    .lvm-shop-layout--actus {
        grid-template-columns: 1fr;
    }

    .lvm-shop-sidebar {
        position: relative;
        top: unset;
        flex-direction: row;
    }

    .lvm-shop-layout--magazine .lvm-shop-sidebar {
        display: grid;
        grid-template-columns: 2fr 1fr;
        gap: var(--lvm-4);
    }
}

@media (max-width: 768px) {
    .lvm-shop-layout {
        grid-template-columns: 1fr;
    }

    /* .lvm-shop-sidebar {
        position: static;
        height: auto;
        display: grid;
        grid-template-columns: 3fr 2fr;
        grid-template-rows: auto;
        gap: 0 var(--lvm-4);
    } */

    .lvm-shop-layout.lvm-shop-layout--actus .lvm-shop-sidebar__visual {
        margin-top: 0;
    }

    .lvm-shop-sidebar__label {
        grid-column: 1;
    }

    .lvm-shop-sidebar__bar {
        grid-column: 1;
    }

    .lvm-shop-sidebar__title {
        grid-column: 1;
        font-size: var(--lvm-3xl);
    }

    .lvm-shop-sidebar__sub {
        grid-column: 1;
    }

    .lvm-shop-sidebar__visual {
        /* grid-column: 2;
        grid-row: 1 / 5;
        align-self: end;
        margin-top: 0; */
    }

    .lvm-shop-sidebar__visual img {
        /* width: 140px; */
        height: auto;
    }
}

@media (max-width: 600px) {
    .lvm-shop-sidebar {
        grid-template-columns: 1fr;
    }

    .lvm-shop-layout--actus .lvm-shop-sidebar {
        flex-direction: column;
    }

    .lvm-shop-layout--magazine .lvm-shop-sidebar {
        grid-template-columns: 1fr;
    }
}

/* ============================================================
   PAGE ACTUALITÉS — Hero + grille catégories
   ============================================================ */

.lvm-actus-hero {
    position: relative;
    /* display: flex; */
    /* align-items: center; */
    /* min-height: 340px; */
    /* padding: var(--lvm-8); */
    padding: var(--lvm-4) 0;
    margin-bottom: var(--lvm-4);
    /* border-radius: 16px; */
    background-color: var(--lvm-noir-p);
    background-size: cover;
    background-position: center;
    overflow: hidden;
}

.lvm-actus-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    /* background: linear-gradient(
        100deg,
        rgba(26, 26, 46, 0.85) 0%,
        rgba(26, 26, 46, 0.75) 40%,
        rgba(26, 26, 46, 0.25) 100%
    ); */
}

.lvm-actus-hero__text {
    position: relative;
    z-index: 1;
    flex: 1;
    min-width: 0;
    /* max-width: 640px; */
}

.lvm-actus-hero__title {
    font-family: var(--lvm-fd);
    /* font-size: var(--lvm-4xl); */
    font-size: var(--lvm-2xl);
    color: var(--lvm-noir-p);
    letter-spacing: 0.02em;
    line-height: 1.15;
    margin: 0 0 var(--lvm-3);
    /* max-width: 440px; */
}

.lvm-actus-hero__sub {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-md);
    color: var(--lvm-noir-p);
    line-height: 1.4;
    margin: 0 0 var(--lvm-3);
    /* max-width: 360px; */
}

.lvm-actus-hero__btn {
    display: inline-flex;
    align-items: center;
    gap: var(--lvm-2);
}

.lvm-shop-layout--actus {
    align-items: start;
    gap: var(--lvm-12);
}

.lvm-shop-layout.lvm-shop-layout--actus .lvm-shop-sidebar__visual {
    margin-top: 15px;
}

.lvm-actus-cats__header {
    margin-bottom: var(--lvm-3);
}

.lvm-actus-cats__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-4xl);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    margin: 0 0 var(--lvm-1);
    text-align: center;
}

.lvm-actus-cats__sub {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: var(--lvm-text-3);
    margin: 0;
    text-align: center;
}

.lvm-actus-cats__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--lvm-3);
}

.lvm-actus-cat-tile {
    position: relative;
    display: flex;
    flex-direction: row;
    justify-content: center;
    align-items: center;
    gap: var(--lvm-2);
    min-height: 115px;
    padding: var(--lvm-4);
    /* border-radius: var(--lvm-r-md); */
    background-color: var(--lvm-gris-clair, #f2f0ee);
    background-size: cover;
    background-position: center;
    text-decoration: none;
    overflow: hidden;
    transition:
        transform var(--lvm-t-base),
        box-shadow var(--lvm-t-base);
}

.lvm-actus-cat-tile::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        180deg,
        rgba(26, 26, 46, 0.15) 0%,
        rgba(26, 26, 46, 0.75) 100%
    );
}

.lvm-actus-cat-tile:hover {
    transform: translateY(-4px);
    box-shadow: var(--lvm-sh-hover);
}

.lvm-actus-cat-tile--align-bottom {
    align-items: flex-end;
}

/* .lvm-actus-cat-tile__icon {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 45px;
    height: 45px;
    color: var(--lvm-blanc);
}

.lvm-actus-cat-tile__icon svg {
    width: 45px;
    height: 45 px;
} */

.lvm-actus-cat-tile .sep {
    height: 70px;
    width: 2px;
    background: #fff !important;
    margin: 0 6px;
}

.lvm-actus-cat-tile__label {
    position: relative;
    z-index: 1;
    font-family: var(--lvm-fd);
    font-size: var(--lvm-xl);
    /* font-weight: 700; */
    color: var(--lvm-blanc);
    letter-spacing: 0.02em;
    line-height: 1.3;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.4);
}

@media (max-width: 1024px) {
    .lvm-actus-cats__grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .lvm-actus-hero {
        /* min-height: 280px; */
        padding: var(--lvm-5);
    }

    .lvm-actus-hero__text {
        max-width: none;
    }

    .lvm-actus-hero__title {
        font-size: var(--lvm-xl);
    }

    .lvm-actus-cats__grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .lvm-actus-cats__grid {
        grid-template-columns: 1fr 1fr;
        gap: var(--lvm-1);
    }
}

/* ============================================================
   CARD ABONNEMENT (page Abonnements)
   ============================================================ */

.lvm-abo-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    border: 1px solid var(--lvm-border);
    border-radius: var(--lvm-r-md);
    overflow: hidden;
    background: #fff;
    transition:
        transform var(--lvm-t-base),
        box-shadow var(--lvm-t-base);
}

.lvm-abo-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--lvm-sh-hover);
}

.lvm-abo-card__link {
    display: block;
}

.lvm-abo-card__cover {
    overflow: hidden;
}

.lvm-abo-card__cover img {
    width: 100%;
    height: auto;
    display: block;
}

.lvm-abo-card__footer {
    display: flex;
    flex: 1 0 auto;
    align-items: center;
    justify-content: space-between;
    padding: var(--lvm-2) var(--lvm-3);
    border-top: 1px solid var(--lvm-border);
}

.lvm-abo-card__right {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 3px;
}

.lvm-abo-card__formats {
    display: flex;
    gap: var(--lvm-3);
}

.lvm-abo-card__format {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    color: var(--lvm-gris-m);
}

.lvm-abo-card__format small {
    font-family: var(--lvm-fb);
    font-size: 0.5rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.lvm-abo-card__format--active {
    color: var(--lvm-noir-p);
}

.lvm-abo-card__format svg {
    flex-shrink: 0;
}

.lvm-abo-card__price {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-lg);
    color: var(--lvm-noir-p);
    letter-spacing: 0.02em;
    text-align: right;
}

.lvm-abo-card__price small {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 400;
    color: var(--lvm-text-3);
}

.lvm-abo-card__btn {
    display: inline-block;
    white-space: nowrap;
    font-family: var(--lvm-fb);
    font-weight: 700;
    font-size: 0.55rem;
    color: var(--lvm-blanc) !important;
    background: var(--lvm-rouge);
    padding: 4px 8px;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    border: none;
    border-radius: 3px;
    cursor: pointer;
    transition: opacity var(--lvm-t-base);
}

.lvm-abo-card__btn:hover {
    opacity: 0.85;
}

/* ============================================================
   COMING SOON / KIOSQUE VIP / ABONNEMENTS
   ============================================================ */

.lvm-coming {
    display: flex;
    align-items: center;
    gap: 2rem;
    max-width: var(--lvm-container);
    margin: auto;
    width: 100%;
}

.lvm-coming__text {
    flex: 1;
}

.lvm-coming__visual {
    flex: 1;
    text-align: center;
}

.lvm-coming__visual img {
    max-height: 450px;
    width: auto;
    max-width: 100%;
    object-fit: contain;
    aspect-ratio: 967 / 1370;
}

.lvm-coming__badge {
    display: inline-block;
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 700;
    text-transform: uppercase;
    background: #e63946;
    color: #fff;
    border-radius: 4px;
    padding: 4px 12px;
    margin-bottom: 1rem;
}

.lvm-coming__h1 {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-4xl);
    color: #1a1a2e;
    letter-spacing: 0.04em;
    margin: 0 0 0.5rem;
}

.lvm-coming__desc {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-lg);
    color: #8a8580;
    line-height: 1.6;
    margin: 0 0 1.5rem;
}

.lvm-coming__form-title {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-base);
    font-weight: 700;
    text-transform: uppercase;
    color: #1a1a2e;
    margin: 0 0 0.5rem;
}

.lvm-kiosque-pricing {
    margin: var(--lvm-4) 0;
}

.lvm-kiosque-pricing__price {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-4xl);
    color: var(--lvm-jaune);
    letter-spacing: 0.02em;
}

.lvm-kiosque-pricing__price span {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-base);
    font-weight: 400;
    color: rgba(255, 255, 255, 0.6);
}

.lvm-kiosque-pricing__sub {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: rgba(255, 255, 255, 0.5);
    margin: var(--lvm-1) 0 0;
}

/* ── Kiosque VIP ── */

.lvm-kv {
    max-width: var(--lvm-container);
    margin: 0 auto;
    padding: 0 var(--lvm-4) var(--lvm-8);
}

/* Bannière pleine largeur (mode Actif) — visuel modifiable dans Réglages LV Medias > Kiosque VIP */
/* .lvm-kv-banner {
    width: 100%;
    margin-bottom: var(--lvm-6);
    overflow: hidden;
} */

.lvm-kv-banner__img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    margin-bottom: var(--lvm-10);
}

@media (max-width: 1024px) {
    .lvm-kv-banner__img {
        margin-bottom: var(--lvm-6);
    }
}

@media (max-width: 600px) {
    .lvm-kv-banner__img {
        margin-bottom: var(--lvm-4);
    }
}

/* Hero bloc — 2 colonnes */
.lvm-kv-hero {
    max-width: 1120px;
    margin: var(--lvm-6) auto var(--lvm-6);
    padding: 32px 40px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 48px;
    border: 1px solid rgba(214, 174, 73, 0.35);
    border-radius: 22px;
    background:
        radial-gradient(
            circle at top right,
            rgba(214, 174, 73, 0.18),
            transparent 34%
        ),
        linear-gradient(135deg, #ffffff 0%, #faf7ef 100%);
    box-shadow: 0 18px 50px rgba(20, 21, 39, 0.08);
}

.lvm-kv-hero__content {
    flex: 1;
    min-width: 0;
}

.lvm-kv__status {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
    color: #d6ae49;
    font-family: var(--lvm-fb);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.lvm-kv__status-dot {
    width: 8px;
    height: 8px;
    border-radius: 999px;
    background: #d6ae49;
}

.lvm-kv__status-line {
    display: none;
}

.lvm-kv__title {
    font-family: var(--lvm-fd);
    font-size: clamp(42px, 5vw, 72px);
    color: #1e1f33;
    letter-spacing: 0.08em;
    line-height: 0.95;
    text-transform: uppercase;
    margin: 0;
}

/* .lvm-kv__crown removed — element no longer in template */

.lvm-kv__diamond {
    display: none;
}

.lvm-kv__desc {
    max-width: 520px;
    margin: 18px 0 0;
    color: #666;
    font-family: var(--lvm-fb);
    font-size: 17px;
    line-height: 1.55;
}

.lvm-kv-hero__offer {
    width: 320px;
    flex: 0 0 320px;
    padding: 24px;
    text-align: center;
    border-radius: 18px;
    background: #ffffff;
    border: 1px solid rgba(30, 31, 51, 0.08);
    box-shadow: 0 14px 36px rgba(20, 21, 39, 0.1);
}

.lvm-kv__offer-label {
    margin-bottom: 10px;
    color: #d6ae49;
    font-family: var(--lvm-fb);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

/* Prix dans la carte hero */
.lvm-kv-hero__offer .lvm-kv__price {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 4px;
    margin-bottom: 8px;
    color: #1e1f33;
}

.lvm-kv-hero__offer .lvm-kv__price-amount {
    font-family: var(--lvm-fd);
    font-size: 42px;
    font-weight: 900;
    line-height: 1;
    color: var(--lvm-noir-p);
}

.lvm-kv-hero__offer .lvm-kv__price-period {
    font-family: var(--lvm-fb);
    font-size: 17px;
    color: var(--lvm-text-3);
}

.lvm-kv-hero__offer .lvm-kv__mention {
    margin: 12px 0 0;
    font-family: var(--lvm-fb);
    font-size: 12px;
    color: #777;
    line-height: 1.4;
}

.lvm-kv__offer-copy {
    margin: -4px 0 16px;
    color: #5f5f66;
    font-family: var(--lvm-fb);
    font-size: 14px;
    line-height: 1.45;
}

@media (max-width: 860px) {
    .lvm-kv-hero {
        margin: var(--lvm-4) var(--lvm-4);
        padding: 28px 22px;
        flex-direction: column;
        align-items: stretch;
        gap: 24px;
        text-align: center;
    }

    .lvm-kv__desc {
        margin-left: auto;
        margin-right: auto;
    }

    .lvm-kv-hero__offer {
        width: auto;
        flex: none;
    }
}

.lvm-kv__visual {
    margin: 0 calc(-1 * var(--lvm-4)) var(--lvm-6);
}

.lvm-kv__visual img {
    width: 50%;
    margin: auto;
    height: auto;
    display: block;
}

@media (max-width: 768px) {
    .lvm-kv__visual {
        display: flex;
        justify-content: center;
    }

    .lvm-kv__visual img {
        width: 250px;
    }
}

/* Privilèges en ligne */
.lvm-kv__privs {
    display: flex;
    justify-content: center;
    align-items: stretch;
    border: 1px solid var(--lvm-jaune);
    border-radius: var(--lvm-r-md);
    margin: var(--lvm-8) auto;
    max-width: var(--lvm-container) !important;
}

.lvm-kv__priv-item {
    flex: 1;
    padding: var(--lvm-4) var(--lvm-3);
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: var(--lvm-2);
    justify-content: center;
}

.lvm-kv__priv-icon {
    font-size: var(--lvm-2xl);
}

.lvm-kv__priv-item strong {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-lg);
    font-weight: normal;
    color: var(--lvm-noir-p);
    line-height: 1.2;
    text-transform: uppercase;
}

.lvm-kv__privs-sep {
    width: 1px;
    background: var(--lvm-border);
    align-self: stretch;
}

/* Formulaire */
.lvm-kv__form {
    text-align: left;
}

.lvm-kv__form-header {
    display: flex;
    gap: var(--lvm-3);
    align-items: flex-start;
    margin-bottom: var(--lvm-4);
}

.lvm-kv__form-icon {
    font-size: var(--lvm-xl);
    flex-shrink: 0;
}

.lvm-kv__form-header strong {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: var(--lvm-noir-p);
    display: block;
}

.lvm-kv__form-header p {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    color: var(--lvm-text-3);
    margin: var(--lvm-1) 0 0;
}

.lvm-kv__form .wpforms-submit {
    width: 100%;
    background: var(--lvm-noir-p) !important;
    color: var(--lvm-blanc) !important;
    font-family: var(--lvm-fb);
    font-weight: 700;
    font-size: var(--lvm-sm);
    letter-spacing: 0.04em;
    padding: var(--lvm-4) !important;
    border-radius: var(--lvm-r-md) !important;
}

.lvm-kv__form-privacy {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    color: var(--lvm-text-3);
    text-align: center;
    margin: var(--lvm-3) 0 0;
}

/* ── Kiosque VIP — Mode actif ── */

.lvm-kv--active {
    /* max-width: var(--lvm-container) !important; */
    max-width: 100% !important;
}

.lvm-kv__subscribe {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--lvm-3);
    margin-bottom: var(--lvm-6);
}

/* Prix dans le bloc subscribe (coming soon / bottom CTA) */
.lvm-kv__subscribe .lvm-kv__price {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 4px;
}

.lvm-kv__subscribe .lvm-kv__price-amount {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-4xl);
    color: var(--lvm-noir-p);
    line-height: 1;
}

.lvm-kv__subscribe .lvm-kv__price-period {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-lg);
    color: var(--lvm-text-3);
}

.lvm-kv__subscribe .lvm-kv__mention {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    color: var(--lvm-text-3);
    margin: 0;
}

.lvm-kv__vip-active {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--lvm-2);
    margin-bottom: var(--lvm-6);
    padding: var(--lvm-4);
    background: var(--lvm-gris-c);
    border-radius: var(--lvm-r-md);
}

.lvm-kv__vip-active p {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: var(--lvm-text-2);
    margin: 0;
}

.lvm-kv__vip-active a {
    color: var(--lvm-rouge);
    font-weight: 600;
}

.lvm-kv__catalog-title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-2xl);
    color: var(--lvm-noir-p);
    letter-spacing: 0.04em;
    margin: var(--lvm-6) 0 var(--lvm-4);
}

.lvm-mag-card__cover-link {
    display: block;
    text-decoration: none;
}

.lvm-kv__empty {
    color: var(--lvm-text-3);
    text-align: center;
    padding: var(--lvm-8) 0;
}

.lvm-kv__bottom-cta {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--lvm-3);
    margin-top: var(--lvm-10);
    padding: var(--lvm-8) var(--lvm-4);
    background: linear-gradient(135deg, var(--lvm-noir-p), #2b2d42);
    border-radius: var(--lvm-r-lg);
    color: #fff;
    text-align: center;
}

.lvm-kv__bottom-cta p {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-lg);
    margin: 0;
}

.lvm-kv__bottom-cta .lvm-kv__price-amount {
    color: #fff;
}

.lvm-kv__bottom-cta .lvm-kv__price-period {
    color: rgba(255, 255, 255, 0.6);
}

.lvm-btn--lg {
    font-size: var(--lvm-base) !important;
    padding: 12px 28px !important;
}

@media (max-width: 768px) {
    .lvm-kv__subscribe {
        gap: var(--lvm-2);
    }

    .lvm-kv__bottom-cta {
        padding: var(--lvm-6) var(--lvm-3);
    }
}

.lvm-vip-badge-bar {
    display: flex;
    align-items: center;
    gap: var(--lvm-3);
    padding: var(--lvm-3) var(--lvm-4);
    background: linear-gradient(135deg, #c9a84c, #e8d48b);
    border-radius: var(--lvm-r-md);
    color: var(--lvm-noir-p);
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    font-weight: 700;
    margin-bottom: var(--lvm-6);
}

@media (max-width: 768px) {
    .lvm-coming {
        flex-direction: column;
        min-height: auto;
    }

    .lvm-coming__visual {
        order: -1;
    }

    .lvm-coming__visual img {
        max-height: 280px;
    }

    .lvm-coming__h1 {
        font-size: 2rem;
    }
}

.lvm-search-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(26, 26, 46, 0.85);
    z-index: 10000;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding-top: 20vh;
}

.lvm-search-overlay[hidden] {
    display: none;
}

.lvm-search-overlay__form {
    display: flex;
    max-width: 600px;
    width: 90%;
    background: var(--lvm-blanc);
    border-radius: var(--lvm-r-full);
    overflow: hidden;
    box-shadow: var(--lvm-sh-lg);
}

.lvm-search-overlay__input {
    flex: 1;
    border: none;
    padding: var(--lvm-4) var(--lvm-6);
    font-size: var(--lvm-md);
    font-family: var(--lvm-fb);
    outline: none;
    background: transparent;
}

.lvm-search-overlay__submit {
    background: var(--lvm-rouge);
    border: none;
    color: var(--lvm-blanc);
    padding: var(--lvm-4) var(--lvm-6);
    cursor: pointer;
    transition: background var(--lvm-t-fast);
}

.lvm-search-overlay__submit:hover {
    background: var(--lvm-rouge-h);
}

/* Mobile touch targets — minimum 44px (WCAG 2.5.5) */
@media (max-width: 768px) {
    .lvm-btn,
    .lvm-btn--sm,
    .lvm-nav__cta,
    .lvm-product-card__btn,
    .lvm-product-card__action .button,
    .lvm-tabs__btn {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }
}

/* ── CARDS MOBILE (fin de fichier — priorité max) ── */
@media (max-width: 768px) {
    .lvm-abo-card__footer {
        flex-wrap: wrap;
        gap: var(--lvm-2);
    }

    .lvm-abo-card__right {
        flex-direction: row;
        align-items: center;
        gap: var(--lvm-2);
        width: 100%;
        justify-content: space-between;
    }

    .lvm-magazine-card__footer {
        flex-wrap: wrap;
        gap: var(--lvm-1);
    }
}

@media (max-width: 480px) {
    /* Cards : s'adaptent à la largeur */
    .lvm-abo-card,
    .lvm-magazine-card {
        width: 100%;
        min-width: 0;
    }

    .lvm-abo-card__footer {
        flex-direction: column;
        align-items: flex-start;
    }

    .lvm-abo-card__right {
        width: 100%;
        flex-direction: row;
        justify-content: space-between;
    }

    .lvm-abo-card__btn {
        white-space: nowrap;
        font-size: 0.5rem;
    }

    .lvm-abo-card__formats {
        gap: var(--lvm-2);
    }

    .lvm-abo-card__price {
        font-size: var(--lvm-sm);
    }

    .lvm-univers__title {
        font-size: var(--lvm-xs);
    }

    .lvm-univers__link {
        font-size: var(--lvm-xs);
    }
}

.woocommerce-product-gallery {
    background: transparent !important;
}

.lvm-fiche2-layout {
    display: grid;
    grid-template-columns: 240px 1fr;
    gap: var(--lvm-8);
    align-items: start;
    margin-bottom: var(--lvm-10);
    padding-top: 15px;
}

.lvm-fiche2-layout .lvm-univers {
    padding-top: 0 !important;
}

.lvm-fiche2-sidebar__cover {
    margin-bottom: var(--lvm-5);
}

.lvm-fiche2-sidebar__cover img {
    width: 100%;
    height: auto;
    /* border-radius: var(--lvm-r-md); */
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
}

.lvm-fiche2-sidebar__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-3xl);
    font-weight: 700;
    color: var(--lvm-noir-p);
    letter-spacing: 0.02em;
    margin: 0 0 var(--lvm-3);
}

.lvm-fiche2-sidebar__desc {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: var(--lvm-text-2);
    line-height: 1.6;
    margin: 0 0 var(--lvm-5);
}

.lvm-fiche2-sidebar__infos {
    list-style: none;
    margin: 0;
    padding: var(--lvm-4) 0;
    border-top: 1px solid var(--lvm-border);
    display: flex;
    flex-direction: column;
    gap: var(--lvm-3);
}

.lvm-fiche2-sidebar__infos li {
    display: flex;
    align-items: flex-start;
    gap: var(--lvm-2);
}

.lvm-fiche2-sidebar__info-icon {
    flex: none;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    margin-top: 2px;
    color: var(--fiche-color, var(--lvm-rouge));
}

.lvm-fiche2-sidebar__info-icon svg {
    width: 100%;
    height: 100%;
}

.lvm-fiche2-sidebar__info-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.lvm-fiche2-sidebar__info-label {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 700;
    letter-spacing: 0.05em;
    color: var(--fiche-color, var(--lvm-rouge));
}

.lvm-fiche2-sidebar__info-value {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: var(--lvm-noir-p);
}

.lvm-fiche2-sidebar__kiosque {
    display: flex;
    align-items: flex-start;
    gap: var(--lvm-2);
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: var(--lvm-text-2);
    line-height: 1.5;
    margin: 0 0 25px;
}

.lvm-fiche2-sidebar__kiosque-icon {
    flex: none;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    margin-top: 2px;
    color: var(--fiche-color, var(--lvm-rouge));
}

.lvm-fiche2-sidebar__kiosque-icon svg {
    width: 100%;
    height: 100%;
}

.lvm-fiche2-sidebar__kiosque a {
    color: var(--fiche-color, var(--lvm-rouge));
    font-weight: 700;
    text-decoration: none;
}

.lvm-fiche2-sidebar__kiosque a:hover {
    text-decoration: underline;
}

/* -- Card numéro V2 -- */
.lvm-numero-card {
    display: flex;
    flex-direction: column;
    background: var(--lvm-blanc);
    /* border-radius: var(--lvm-r-md); */
    overflow: hidden;
    box-shadow: var(--lvm-sh-card);
    border: 1px solid var(--lvm-border);
}

.lvm-numero-card__cover {
    display: block;
    position: relative;
    overflow: hidden;
    aspect-ratio: 3 / 4;
}

.lvm-numero-card__cover-full {
    aspect-ratio: unset;
    min-height: 250px;
}

.lvm-numero-card__cover-full img {
    height: auto !important;
}

.lvm-numero-card__cover img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.lvm-numero-card__body {
    padding: var(--lvm-4);
    display: flex;
    flex-direction: column;
    flex: 1;
    gap: var(--lvm-1);
}

.lvm-numero-card__cta {
    margin-top: auto;
}

.lvm-numero-card__title {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-base);
    font-weight: 700;
    color: var(--lvm-noir-p);
    text-decoration: none;
}

.lvm-numero-card__date {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: var(--lvm-text-2);
    margin-bottom: var(--lvm-2);
}

.lvm-numero-card__price {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-lg);
    font-weight: 700;
    color: var(--lvm-noir-p);
    margin-bottom: var(--lvm-3);
    display: flex;
    align-items: center;
    justify-content: start;
    gap: 5px;
}

.lvm-numero-card__price small {
    display: block;
    font-size: var(--lvm-xs);
    font-weight: 400;
    color: var(--lvm-text-3);
}

.lvm-numero-card__cta .button {
    display: block;
    width: 100%;
    text-align: center;
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #fff;
    background: var(--lvm-rouge);
    border-radius: var(--lvm-r-sm);
    padding: var(--lvm-3) var(--lvm-4);
    text-decoration: none;
}

.lvm-numero-card__cta .button:hover {
    background: var(--lvm-rouge-h);
}

.lvm-numero-card__soon {
    cursor: default;
    background: var(--lvm-gris-c);
    color: var(--lvm-text-3);
}

.lvm-numero-card__soon:hover {
    background: var(--lvm-gris-c);
}

/* -- Card numéro Kiosque VIP (sous-page catégorie) -- */
.lvm-numero-card__cover--reader {
    position: relative;
    overflow: hidden;
    cursor: pointer;
}

.lvm-numero-card__cover--reader > div:not(.lvm-numero-card__cover-overlay),
.lvm-numero-card__cover--reader > img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
}

.lvm-numero-card__cover-overlay {
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    pointer-events: none;
    z-index: 1;
}

.lvm-numero-card__cover-overlay img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    display: block;
}

.lvm-numero-card__cover--locked {
    position: relative;
}

.lvm-numero-card__cover--locked img {
    filter: grayscale(60%) brightness(0.75);
}

/* Taille des vignettes — setting Apparence > LV Medias > Kiosque VIP > Page intérieure kiosque */
.lvm-numero-grid--sm .lvm-numero-card__body {
    padding: var(--lvm-2);
}

.lvm-numero-grid--sm .lvm-numero-card__title {
    font-size: 13px;
}

.lvm-numero-grid--sm .lvm-numero-card__date {
    font-size: 11px;
}

.lvm-numero-grid--lg .lvm-numero-card__body {
    padding: var(--lvm-5);
}

.lvm-numero-grid--lg .lvm-numero-card__title {
    font-size: 19px;
}

.lvm-numero-grid--lg .lvm-numero-card__date {
    font-size: var(--lvm-base);
}

.lvm-numero-card__lock {
    position: absolute;
    top: var(--lvm-3);
    right: var(--lvm-3);
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.55);
    color: #fff;
    border-radius: 50%;
}

.lvm-numero-card__soon-badge {
    position: absolute;
    top: var(--lvm-3);
    right: var(--lvm-3);
    background: rgba(0, 0, 0, 0.55);
    color: #fff;
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 700;
    text-transform: uppercase;
    padding: var(--lvm-1) var(--lvm-2);
    border-radius: var(--lvm-r-sm);
}

.lvm-numero-card__read-hint {
    display: block;
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    color: var(--lvm-text-3);
    text-align: center;
}

.lvm-numero-card__locked-btn {
    background: var(--lvm-gris-c);
    color: var(--lvm-text-3);
}

.lvm-numero-card__locked-btn:hover {
    background: var(--lvm-gris-c);
}

/* -- Abonnements V2 : cartes tarifaires -- */
.lvm-abo-boxes {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--lvm-6);
    align-items: stretch;
}

.lvm-abo-box {
    display: flex;
    flex-direction: column;
    background: var(--lvm-blanc);
    border: 1px solid var(--lvm-border);
    border-radius: var(--lvm-r-lg);
    padding: var(--lvm-6);
}

.lvm-abo-box--gold {
    grid-column: span 2;
    background: var(--lvm-blanc-c);
    border-color: var(--lvm-jaune);
}

.lvm-abo-box__crown-img {
    display: block;
    height: 1.1em;
    width: auto;
}

.lvm-abo-box__top {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    justify-content: space-between;
    gap: var(--lvm-5);
    margin-bottom: 10px;
}

.lvm-abo-box__top-left {
    flex: 1;
    min-width: 0;
    width: 60%;
}

.lvm-abo-box__top-right {
    flex-shrink: 0;
    width: 40%;
}

.lvm-abo-box__visual-img {
    display: block;
    max-width: 100%;
    height: auto;
}

.lvm-abo-box__title {
    font-family: var(--lvm-fd);
    font-size: var(--lvm-lg);
    letter-spacing: 0.03em;
    color: var(--lvm-noir-p);
    margin: 0 0 var(--lvm-1);
    display: flex;
    align-items: center;
    gap: var(--lvm-2);
}

.lvm-abo-box__crown {
    font-size: 1em;
}

.lvm-abo-box__sub {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: var(--lvm-text-2);
    margin: 0 0 var(--lvm-3);
}

.lvm-abo-box__features {
    list-style: none;
    margin: var(--lvm-3) 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--lvm-2);
    flex: 1;
}

.lvm-abo-box__features li {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-sm);
    color: var(--lvm-text-1);
    padding-left: var(--lvm-5);
    position: relative;
}

.lvm-abo-box__features li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: var(--lvm-jaune);
    font-weight: 700;
}

.lvm-abo-box__bottom {
    margin-top: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--lvm-3);
}

.lvm-abo-box__price {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-2xl);
    font-weight: 700;
    color: var(--lvm-noir-p);
}

.lvm-abo-box__price small {
    font-size: var(--lvm-sm);
    font-weight: 400;
    color: var(--lvm-text-2);
}

.lvm-abo-box__btn {
    font-family: var(--lvm-fb);
    font-size: var(--lvm-xs);
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #fff;
    background: var(--lvm-rouge);
    border-radius: var(--lvm-r-sm);
    padding: var(--lvm-2) var(--lvm-4);
    text-decoration: none;
    white-space: nowrap;
}

.lvm-abo-box__btn:hover {
    background: var(--lvm-rouge-h);
    color: #fff;
}

.lvm-abo-box__btn--gold {
    background: var(--lvm-jaune);
    color: var(--lvm-noir-p);
}

.lvm-abo-box__btn--gold:hover {
    background: var(--lvm-jaune-d);
    color: var(--lvm-noir-p);
}

@media (max-width: 1024px) {
    .lvm-numero-card__cover-full {
        min-height: 230px;
    }
}

@media (max-width: 1024px) {
    .lvm-fiche2-layout {
        grid-template-columns: 1fr;
        gap: var(--lvm-4);
    }

    .lvm-abo-boxes {
        grid-template-columns: 1fr 1fr;
    }

    .lvm-fiche2-sidebar {
        display: grid;
        grid-template-columns: 2fr 1fr;
        gap: var(--lvm-4);
    }

    .lvm-fiche2-sidebar__cover {
        display: none;
    }

    .lvm-numero-card__cover-full {
        min-height: unset;
    }
}

@media (max-width: 768px) {
    /* .lvm-fiche2-layout {
        grid-template-columns: 1fr;
    } */

    .lvm-abo-boxes {
        grid-template-columns: 1fr;
    }

    .lvm-fiche2-sidebar {
        grid-template-columns: 1fr;
    }

    .lvm-fiche2-layout .lvm-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 600px) {
    .lvm-fiche2-layout .lvm-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .lvm-abo-box__top-left,
    .lvm-abo-box__top-right {
        width: 100%;
    }

    .lvm-abo-box__top,
    .lvm-abo-box__bottom {
        flex-direction: column;
    }

    .lvm-abo-box__bottom {
        align-items: start;
    }
}
