/* Gabarits de la boutique : chacun redessine toute la boutique par-dessus boutique.css (classe tpl-{clé} sur .shop,
   posée par ShopTheme.Classes). Éclat est le style de base de boutique.css : il n'a rien ici.
   Les couleurs (--brand, --accent), les coins (--radius) et la police (--font, --font-heading) restent ceux de la
   personnalisation, pour qu'on puisse ajuster chaque gabarit. Tailles en pixels entiers. */

/* ---------- Commun : en-tête au logo centré (Atelier, Nuit) ---------- */

@media (min-width: 1081px) {
    .shop.tpl-atelier:not(.logo-left) .shop-header-inner,
    .shop.tpl-nuit:not(.logo-left) .shop-header-inner,
    .shop.logo-center .shop-header-inner {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
        grid-template-areas: "search brand actions" "nav nav nav";
        row-gap: 8px;
        padding: 20px 32px 6px;
    }

    .shop.tpl-atelier:not(.logo-left) .shop-brand,
    .shop.tpl-nuit:not(.logo-left) .shop-brand,
    .shop.logo-center .shop-brand {
        grid-area: brand;
        justify-self: center;
    }

    .shop.tpl-atelier:not(.logo-left) .shop-nav,
    .shop.tpl-nuit:not(.logo-left) .shop-nav,
    .shop.logo-center .shop-nav {
        grid-area: nav;
        justify-content: center;
    }

    .shop.tpl-atelier:not(.logo-left) .shop-search,
    .shop.tpl-nuit:not(.logo-left) .shop-search,
    .shop.logo-center .shop-search {
        grid-area: search;
        justify-self: start;
        width: 100%;
        max-width: 260px;
        margin-left: 0;
    }

    .shop.tpl-atelier:not(.logo-left) .shop-actions,
    .shop.tpl-nuit:not(.logo-left) .shop-actions,
    .shop.logo-center .shop-actions {
        grid-area: actions;
        justify-self: end;
    }
}

/* Couleurs à plat (sans dégradé) : Atelier, Audace, Épure. */
.shop.tpl-atelier,
.shop.tpl-audace,
.shop.tpl-epure {
    --grad: linear-gradient(var(--brand), var(--brand));
}

/* =====================================================================
   ATELIER : éditorial. Papier crème, titres à empattements, logo centré,
   cartes sans cadre, majuscules espacées, beaucoup d'air.
   ===================================================================== */

.shop.tpl-atelier {
    --bg: #f6f2ea;
    --surface: #fbf8f3;
    --surface-2: #ede6da;
    --ink: #2b2420;
    --muted: #7a6f64;
    --line: #ddd3c4;
    --shadow: none;
    --shadow-lg: none;
}

.shop.tpl-atelier.theme-dark {
    --bg: #1c1916;
    --surface: #23201c;
    --surface-2: #2d2924;
    --ink: #f1ebe1;
    --muted: #a99d8f;
    --line: #3d362e;
}

.shop.tpl-atelier h1,
.shop.tpl-atelier h2,
.shop.tpl-atelier h3 {
    font-weight: 400;
    letter-spacing: -0.01em;
}

.shop.tpl-atelier .shop-announce {
    background: var(--ink);
    color: var(--bg);
    animation: none;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.shop.tpl-atelier .shop-header {
    background: var(--bg);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

.shop.tpl-atelier .shop-brand-mark {
    display: none;
}

.shop.tpl-atelier .shop-brand-name {
    font-size: 32px;
    font-weight: 400;
    letter-spacing: 0;
}

.shop.tpl-atelier .shop-nav a {
    color: var(--ink);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .16em;
    text-transform: uppercase;
}

    .shop.tpl-atelier .shop-nav a::after {
        height: 1px;
        background: var(--ink);
    }

.shop.tpl-atelier .shop-search {
    border-radius: 0;
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--line);
}

    .shop.tpl-atelier .shop-search:focus-within {
        box-shadow: none;
        border-color: var(--ink);
    }

.shop.tpl-atelier .cart-button {
    background: transparent;
    color: var(--ink);
    border: 1px solid var(--ink);
    border-radius: 0;
    box-shadow: none;
    font-weight: 500;
    letter-spacing: .08em;
    text-transform: uppercase;
    font-size: 12px;
}

    .shop.tpl-atelier .cart-button:hover {
        color: var(--bg);
        background: var(--ink);
    }

.shop.tpl-atelier .cart-count {
    background: var(--ink);
    color: var(--bg);
}

.shop.tpl-atelier .btn {
    letter-spacing: .12em;
    text-transform: uppercase;
    font-size: 12px;
    font-weight: 600;
}

.shop.tpl-atelier .btn-primary,
.shop.tpl-atelier .btn-brand {
    background: var(--brand);
    box-shadow: none;
}

    .shop.tpl-atelier .btn-primary:hover:not(:disabled),
    .shop.tpl-atelier .btn-brand:hover:not(:disabled) {
        transform: none;
        filter: brightness(1.25);
        box-shadow: none;
    }

/* Héros : sans cadre ni effets, grand titre en italique. */

.shop.tpl-atelier .hero {
    border-radius: 0;
    min-height: 540px;
    padding: 64px 56px;
}

.shop.tpl-atelier .hero-aurora {
    background: var(--surface-2);
    color: var(--ink);
}

    .shop.tpl-atelier .hero-aurora .blob,
    .shop.tpl-atelier .hero-aurora::after {
        display: none;
    }

.shop.tpl-atelier .hero-split {
    background: transparent;
    padding: 40px 0;
    gap: 64px;
}

    .shop.tpl-atelier .hero-split .hero-visual {
        transform: none;
        border-radius: 0;
        box-shadow: none;
        aspect-ratio: 4 / 5;
        background: var(--surface-2);
    }

.shop.tpl-atelier .hero h1 {
    font-size: clamp(44px, 5.5vw, 84px);
    line-height: 1.04;
}

    .shop.tpl-atelier .hero h1 span {
        background: none;
        color: inherit;
        font-style: italic;
    }

.shop.tpl-atelier .hero-image h1 span {
    color: #fff;
}

.shop.tpl-atelier .hero-badge {
    background: none;
    border: 0;
    padding: 0;
    backdrop-filter: none;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .2em;
    text-transform: uppercase;
}

    .shop.tpl-atelier .hero-badge .dot {
        display: none;
    }

.shop.tpl-atelier .hero-cta .btn {
    border-radius: var(--radius-sm);
    padding: 16px 32px;
    font-size: 12px;
}

.shop.tpl-atelier .hero-aurora .btn-ghost,
.shop.tpl-atelier .hero-split .btn-ghost {
    background: transparent;
    color: var(--ink);
    border: 1px solid var(--ink);
    backdrop-filter: none;
}

.shop.tpl-atelier .hero-stats {
    border-top: 1px solid var(--line);
    padding-top: 22px;
}

    .shop.tpl-atelier .hero-stats strong {
        font-family: var(--font-heading);
        font-weight: 400;
    }

.shop.tpl-atelier .hero-image .hero-stats {
    border-color: rgba(255, 255, 255, .3);
}

/* Avantages, titres de section, tuiles */

.shop.tpl-atelier .perk {
    background: transparent;
    border: 0;
    border-top: 1px solid var(--line);
    border-radius: 0;
    padding: 20px 0;
}

    .shop.tpl-atelier .perk .perk-icon {
        background: none;
        color: var(--ink);
    }

.shop.tpl-atelier .shop-section-head h2 {
    font-size: 40px;
    font-weight: 400;
}

.shop.tpl-atelier .shop-eyebrow {
    background: none;
    color: var(--muted);
    font-weight: 500;
    letter-spacing: .22em;
}

.shop.tpl-atelier .shop-link-arrow {
    color: var(--ink) !important;
    font-weight: 500;
    font-size: 13px;
    letter-spacing: .12em;
    text-transform: uppercase;
    border-bottom: 1px solid var(--ink);
}

.shop.tpl-atelier .cat-tile {
    border-radius: 0;
    aspect-ratio: 3 / 4;
    box-shadow: none;
    background: var(--surface-2);
    color: var(--ink) !important;
}

    .shop.tpl-atelier .cat-tile:has(img) {
        color: #fff !important;
    }

    .shop.tpl-atelier .cat-tile::after {
        background: linear-gradient(180deg, transparent 55%, rgba(30, 24, 18, .55) 100%);
    }

    .shop.tpl-atelier .cat-tile:not(:has(img))::after {
        display: none;
    }

    .shop.tpl-atelier .cat-tile strong {
        font-size: 28px;
        font-weight: 400;
    }

/* Produits : photo haute, pas de cadre, nom à empattements. */

.shop.tpl-atelier .product-grid {
    gap: 40px 24px;
}

.shop.tpl-atelier .product-card {
    background: transparent;
    border: 0;
    border-radius: 0;
}

    .shop.tpl-atelier .product-card:hover {
        transform: none;
        box-shadow: none;
    }

.shop.tpl-atelier .product-photo {
    aspect-ratio: 4 / 5;
    border-radius: var(--radius);
    background: var(--surface-2);
}

.shop.tpl-atelier .product-body {
    padding: 14px 0 0;
}

.shop.tpl-atelier .product-cat {
    font-size: 11px;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.shop.tpl-atelier .product-name {
    font-family: var(--font-heading);
    font-size: 20px;
    font-weight: 400;
}

.shop.tpl-atelier .product-code {
    display: none;
}

.shop.tpl-atelier .price span,
.shop.tpl-atelier .price-big {
    font-weight: 500;
}

.shop.tpl-atelier .product-card .btn {
    background: transparent;
    color: var(--ink);
    border: 0;
    border-bottom: 1px solid var(--ink);
    border-radius: 0;
    padding: 2px 0;
    box-shadow: none;
}

.shop.tpl-atelier .placeholder-code {
    background: none;
    color: var(--muted);
    font-weight: 500;
}

.shop.tpl-atelier .ribbon {
    border-radius: 0;
    background: var(--ink);
    color: var(--bg);
    font-size: 10px;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.shop.tpl-atelier .cta-band {
    border-radius: 0;
    background: var(--surface-2);
    color: var(--ink);
}

    .shop.tpl-atelier .cta-band::before {
        display: none;
    }

    .shop.tpl-atelier .cta-band h2 {
        font-weight: 400;
    }

    .shop.tpl-atelier .cta-band .btn {
        background: var(--ink);
        color: var(--bg);
        border-radius: var(--radius-sm);
    }

/* Pied de page clair. */

.shop.tpl-atelier .shop-footer {
    background: var(--surface-2);
    color: var(--muted);
}

    .shop.tpl-atelier .shop-footer::before {
        display: none;
    }

.shop.tpl-atelier .shop-footer-inner a {
    color: var(--muted);
}

    .shop.tpl-atelier .shop-footer-inner a:hover {
        color: var(--ink);
    }

.shop.tpl-atelier .shop-footer .shop-brand-name {
    color: var(--ink);
}

.shop.tpl-atelier .shop-footer-title {
    color: var(--ink);
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.shop.tpl-atelier .shop-social a {
    border-color: var(--line);
    border-radius: 0;
}

.shop.tpl-atelier .shop-footer-bottom {
    border-color: var(--line);
    color: var(--muted);
}

/* =====================================================================
   NUIT : luxe sombre. Noir profond, or, filets fins, majuscules espacées,
   titres à empattements en italique dorée, contenu centré.
   ===================================================================== */

.shop.tpl-nuit {
    --bg: #0a0a0b;
    --surface: #121214;
    --surface-2: #19191c;
    --ink: #f4efe6;
    --muted: #9b9488;
    --line: #2a2724;
    --shadow: 0 20px 40px -20px rgba(0, 0, 0, .8);
    --shadow-lg: 0 0 0 1px rgba(var(--brand-rgb), .5);
    --grad: linear-gradient(120deg, var(--brand), var(--accent) 50%, var(--brand));
}

.shop.tpl-nuit.theme-light {
    --bg: #faf7f0;
    --surface: #ffffff;
    --surface-2: #f2ece0;
    --ink: #1a1712;
    --muted: #7d7466;
    --line: #e6dccb;
    --shadow: 0 20px 40px -24px rgba(26, 23, 18, .35);
}

.shop.tpl-nuit h1,
.shop.tpl-nuit h2,
.shop.tpl-nuit h3 {
    font-weight: 500;
    letter-spacing: 0;
}

.shop.tpl-nuit .shop-announce {
    background: transparent;
    color: var(--brand);
    animation: none;
    border-bottom: 1px solid rgba(var(--brand-rgb), .3);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: .26em;
    text-transform: uppercase;
}

.shop.tpl-nuit .shop-header {
    background: var(--bg);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border-bottom-color: rgba(var(--brand-rgb), .3);
}

.shop.tpl-nuit .shop-brand-mark {
    display: none;
}

.shop.tpl-nuit .shop-brand-name {
    font-size: 28px;
    font-weight: 500;
    letter-spacing: .3em;
    text-transform: uppercase;
}

.shop.tpl-nuit .shop-nav a {
    color: var(--muted);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .22em;
    text-transform: uppercase;
}

    .shop.tpl-nuit .shop-nav a:hover,
    .shop.tpl-nuit .shop-nav a.active {
        color: var(--brand);
    }

    .shop.tpl-nuit .shop-nav a::after {
        height: 1px;
        background: var(--brand);
    }

.shop.tpl-nuit .shop-search {
    background: transparent;
    border: 1px solid var(--line);
    border-radius: 0;
}

    .shop.tpl-nuit .shop-search:focus-within {
        background: transparent;
        box-shadow: none;
    }

.shop.tpl-nuit .cart-button {
    background: transparent;
    color: var(--brand);
    border: 1px solid var(--brand);
    border-radius: 0;
    box-shadow: none;
    font-weight: 500;
    letter-spacing: .14em;
    text-transform: uppercase;
    font-size: 12px;
}

    .shop.tpl-nuit .cart-button:hover {
        color: var(--bg);
        background: var(--brand);
    }

.shop.tpl-nuit .cart-count {
    background: var(--brand);
    color: #0a0a0b;
}

.shop.tpl-nuit .btn {
    letter-spacing: .18em;
    text-transform: uppercase;
    font-size: 12px;
    font-weight: 500;
}

.shop.tpl-nuit .btn-brand {
    background: var(--brand);
    color: #0a0a0b;
    box-shadow: none;
}

.shop.tpl-nuit .btn-primary {
    background: transparent;
    color: var(--brand);
    border: 1px solid var(--brand);
    box-shadow: none;
}

    .shop.tpl-nuit .btn-primary:hover:not(:disabled),
    .shop.tpl-nuit .btn-brand:hover:not(:disabled) {
        background: var(--accent);
        border-color: var(--accent);
        color: #0a0a0b;
        transform: none;
        filter: none;
        box-shadow: none;
    }

/* Héros : noir avec un halo doré et un filet d'encadrement, texte centré. */

.shop.tpl-nuit .hero {
    border-radius: 0;
    min-height: 580px;
}

.shop.tpl-nuit .hero-aurora {
    background: #070708;
    color: #f4efe6;
}

    .shop.tpl-nuit .hero-aurora .blob {
        display: none;
    }

        .shop.tpl-nuit .hero-aurora .blob.b1 {
            display: block;
            width: 900px;
            height: 900px;
            top: -340px;
            left: calc(50% - 450px);
            filter: none;
            opacity: 1;
            animation: none;
            background: radial-gradient(circle, rgba(var(--brand-rgb), .28), transparent 62%);
        }

    .shop.tpl-nuit .hero-aurora::after {
        inset: 22px;
        background-image: none;
        mask-image: none;
        border: 1px solid rgba(var(--brand-rgb), .4);
    }

.shop.tpl-nuit .hero-aurora .hero-content,
.shop.tpl-nuit .hero-image .hero-content {
    margin: 0 auto;
    text-align: center;
}

    .shop.tpl-nuit .hero-aurora .hero-cta,
    .shop.tpl-nuit .hero-aurora .hero-stats,
    .shop.tpl-nuit .hero-image .hero-cta,
    .shop.tpl-nuit .hero-image .hero-stats {
        justify-content: center;
    }

    .shop.tpl-nuit .hero-aurora p.lead,
    .shop.tpl-nuit .hero-image p.lead {
        margin-left: auto;
        margin-right: auto;
    }

.shop.tpl-nuit .hero-split {
    background: var(--surface);
    border: 1px solid var(--line);
}

    .shop.tpl-nuit .hero-split .hero-visual {
        transform: none;
        border-radius: 0;
        box-shadow: none;
        outline: 1px solid rgba(var(--brand-rgb), .5);
        outline-offset: 10px;
    }

.shop.tpl-nuit .hero h1 {
    font-size: clamp(48px, 6vw, 92px);
    line-height: 1.02;
}

    .shop.tpl-nuit .hero h1 span {
        font-style: italic;
        background: linear-gradient(120deg, var(--brand), var(--accent));
        -webkit-background-clip: text;
        background-clip: text;
        color: transparent;
    }

.shop.tpl-nuit .hero-badge {
    background: none;
    border: 0;
    padding: 0;
    backdrop-filter: none;
    color: var(--brand);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .3em;
    text-transform: uppercase;
}

    .shop.tpl-nuit .hero-badge .dot {
        display: none;
    }

.shop.tpl-nuit .hero-cta .btn {
    border-radius: var(--radius-sm);
    padding: 16px 34px;
    font-size: 12px;
}

.shop.tpl-nuit .hero .btn-ghost {
    background: transparent;
    border-color: rgba(var(--brand-rgb), .5);
    color: inherit;
    backdrop-filter: none;
}

.shop.tpl-nuit .hero-stats strong {
    font-family: var(--font-heading);
    font-weight: 500;
    color: var(--brand);
}

/* Avantages, titres de section, tuiles */

.shop.tpl-nuit .perk {
    background: transparent;
    border-radius: 0;
}

    .shop.tpl-nuit .perk .perk-icon {
        background: none;
        border: 1px solid rgba(var(--brand-rgb), .45);
        border-radius: 50%;
        color: var(--brand);
    }

.shop.tpl-nuit .shop-section-head {
    flex-direction: column;
    align-items: center;
    text-align: center;
}

    .shop.tpl-nuit .shop-section-head h2 {
        font-size: 44px;
        font-weight: 500;
    }

.shop.tpl-nuit .shop-eyebrow {
    background: none;
    color: var(--brand);
    font-weight: 500;
    letter-spacing: .3em;
}

.shop.tpl-nuit .shop-link-arrow {
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .2em;
    text-transform: uppercase;
}

.shop.tpl-nuit .cat-tile {
    border-radius: 0;
    box-shadow: none;
    background: var(--surface-2);
    outline: 1px solid rgba(var(--brand-rgb), .4);
    outline-offset: -14px;
}

    .shop.tpl-nuit .cat-tile .cat-tile-body {
        left: 28px;
        right: 28px;
        bottom: 30px;
        text-align: center;
    }

    .shop.tpl-nuit .cat-tile strong {
        font-family: var(--font);
        font-size: 15px;
        font-weight: 500;
        letter-spacing: .24em;
        text-transform: uppercase;
        margin-bottom: 4px;
    }

    .shop.tpl-nuit .cat-tile span {
        color: var(--brand);
    }

/* Produits : cadre fin, survol doré. */

.shop.tpl-nuit .product-card {
    background: transparent;
    border-radius: 0;
}

    .shop.tpl-nuit .product-card:hover {
        transform: none;
        border-color: var(--brand);
    }

.shop.tpl-nuit .product-photo {
    aspect-ratio: 1;
}

.shop.tpl-nuit .product-body {
    text-align: center;
    padding: 18px 16px 20px;
}

.shop.tpl-nuit .product-cat {
    font-size: 11px;
    letter-spacing: .2em;
    text-transform: uppercase;
}

.shop.tpl-nuit .product-name {
    font-family: var(--font-heading);
    font-size: 21px;
    font-weight: 500;
}

    .shop.tpl-nuit .product-name:hover {
        color: var(--brand);
    }

.shop.tpl-nuit .product-code {
    display: none;
}

.shop.tpl-nuit .product-foot {
    flex-direction: column;
    align-items: center;
    gap: 12px;
}

.shop.tpl-nuit .price {
    align-items: center;
}

    .shop.tpl-nuit .price span,
    .shop.tpl-nuit .price-big {
        color: var(--brand);
        font-weight: 500;
    }

.shop.tpl-nuit .ribbon {
    border-radius: 0;
    background: #0a0a0b;
    color: var(--brand);
    border: 1px solid var(--brand);
    font-size: 10px;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.shop.tpl-nuit .cta-band {
    border-radius: 0;
    background: var(--surface);
    color: var(--ink);
    border: 1px solid rgba(var(--brand-rgb), .4);
}

    .shop.tpl-nuit .cta-band::before {
        display: none;
    }

    .shop.tpl-nuit .cta-band .btn {
        background: var(--brand);
        color: #0a0a0b;
        border-radius: var(--radius-sm);
    }

.shop.tpl-nuit .shop-footer {
    background: #050505;
}

    .shop.tpl-nuit .shop-footer::before {
        height: 1px;
        background: rgba(var(--brand-rgb), .6);
    }

.shop.tpl-nuit .shop-footer .shop-brand-name {
    font-size: 22px;
}

.shop.tpl-nuit .shop-footer-title {
    color: var(--brand);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: .2em;
    text-transform: uppercase;
}

.shop.tpl-nuit .shop-social a {
    border-radius: 0;
}

/* =====================================================================
   AUDACE : néo-brutal. Bordures noires épaisses, ombres franches décalées,
   couleurs vives à plat, majuscules, boutons qui s'enfoncent.
   ===================================================================== */

.shop.tpl-audace {
    --bg: #fffbea;
    --surface: #ffffff;
    --surface-2: #fff1bf;
    --ink: #111111;
    --muted: #3f3f3f;
    --line: #111111;
    --shadow: 6px 6px 0 var(--ink);
    --shadow-lg: 10px 10px 0 var(--ink);
    --edge: 3px solid var(--ink);
}

.shop.tpl-audace.theme-dark {
    --bg: #141414;
    --surface: #1f1f1f;
    --surface-2: #2a2a2a;
    --ink: #f5f5f5;
    --muted: #cfcfcf;
    --line: #f5f5f5;
}

.shop.tpl-audace h1,
.shop.tpl-audace h2,
.shop.tpl-audace .shop-brand-name,
.shop.tpl-audace .product-name {
    text-transform: uppercase;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.shop.tpl-audace .shop-announce {
    background: var(--accent);
    color: #111;
    animation: none;
    border-bottom: var(--edge);
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.shop.tpl-audace .shop-header {
    background: var(--bg);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border-bottom: var(--edge);
}

.shop.tpl-audace .shop-brand-mark {
    background: var(--brand);
    color: #111;
    border: var(--edge);
    box-shadow: 3px 3px 0 var(--ink);
}

.shop.tpl-audace .shop-nav a {
    color: var(--ink);
    font-weight: 700;
    text-transform: uppercase;
    font-size: 14px;
}

    .shop.tpl-audace .shop-nav a::after {
        display: none;
    }

    .shop.tpl-audace .shop-nav a:hover,
    .shop.tpl-audace .shop-nav a.active {
        background: var(--accent);
        color: #111;
    }

.shop.tpl-audace .shop-search {
    background: var(--surface);
    border: var(--edge);
    border-radius: var(--radius-sm);
}

    .shop.tpl-audace .shop-search:focus-within {
        border-color: var(--ink);
        box-shadow: 4px 4px 0 var(--ink);
    }

.shop.tpl-audace .cart-button {
    background: var(--brand);
    color: #111;
    border: var(--edge);
    border-radius: var(--radius-sm);
    box-shadow: 4px 4px 0 var(--ink);
    text-transform: uppercase;
}

    .shop.tpl-audace .cart-button:hover {
        color: #111;
        transform: translate(-2px, -2px);
        box-shadow: 6px 6px 0 var(--ink);
    }

.shop.tpl-audace .cart-count {
    background: #111;
    color: #fff;
}

.shop.tpl-audace .shop-actions .language-selector span.active::after {
    height: 3px;
    background: var(--ink);
}

/* Boutons : à plat, cadre noir, ombre décalée; ils « s'enfoncent » au clic. */

.shop.tpl-audace .btn {
    text-transform: uppercase;
    font-weight: 700;
}

.shop.tpl-audace .btn-primary,
.shop.tpl-audace .btn-brand,
.shop.tpl-audace .btn-outline-primary {
    background: var(--brand);
    color: #111;
    border: var(--edge);
    box-shadow: 4px 4px 0 var(--ink);
    transition: transform .12s ease, box-shadow .12s ease;
}

.shop.tpl-audace .btn-outline-primary {
    background: var(--surface);
    color: var(--ink);
}

    .shop.tpl-audace .btn-primary:hover:not(:disabled),
    .shop.tpl-audace .btn-brand:hover:not(:disabled),
    .shop.tpl-audace .btn-outline-primary:hover {
        color: #111;
        background: var(--accent);
        border-color: var(--ink);
        filter: none;
        transform: translate(-2px, -2px);
        box-shadow: 6px 6px 0 var(--ink);
    }

    .shop.tpl-audace .btn-primary:active,
    .shop.tpl-audace .btn-brand:active {
        transform: translate(4px, 4px);
        box-shadow: 0 0 0 var(--ink);
    }

.shop.tpl-audace .form-control,
.shop.tpl-audace .form-select {
    border: 2px solid var(--ink);
}

    .shop.tpl-audace .form-control:focus,
    .shop.tpl-audace .form-select:focus {
        border-color: var(--ink);
        box-shadow: 4px 4px 0 var(--ink);
    }

/* Héros : un bloc de couleur encadré, titre géant, mot surligné. */

.shop.tpl-audace .hero {
    border: var(--edge);
    border-radius: var(--radius);
    box-shadow: var(--shadow-lg);
    color: #111;
}

.shop.tpl-audace .hero-aurora {
    background: var(--accent);
}

    .shop.tpl-audace .hero-aurora .blob {
        display: none;
    }

    .shop.tpl-audace .hero-aurora::after {
        background-image: radial-gradient(rgba(0, 0, 0, .18) 2px, transparent 2px);
        background-size: 22px 22px;
        mask-image: linear-gradient(90deg, transparent 45%, #000);
    }

.shop.tpl-audace .hero-split {
    background: var(--brand);
}

    .shop.tpl-audace .hero-split .hero-visual {
        border: var(--edge);
        border-radius: var(--radius);
        transform: rotate(-2deg);
        box-shadow: 8px 8px 0 #111;
        background: var(--accent);
    }

.shop.tpl-audace .hero-image {
    color: #fff;
}

.shop.tpl-audace .hero h1 {
    font-size: clamp(44px, 6vw, 88px);
    line-height: 1.16;
}

    .shop.tpl-audace .hero h1 span {
        background: #fff;
        -webkit-background-clip: border-box;
        background-clip: border-box;
        color: #111;
        padding: 0 .12em;
        border: var(--edge);
        border-color: #111;
        box-decoration-break: clone;
        -webkit-box-decoration-break: clone;
        display: inline;
    }

.shop.tpl-audace .hero p.lead {
    opacity: 1;
    font-weight: 500;
}

.shop.tpl-audace .hero-badge {
    background: #fff;
    color: #111;
    border: 3px solid #111;
    border-radius: 0;
    backdrop-filter: none;
    font-weight: 700;
    text-transform: uppercase;
}

.shop.tpl-audace .hero-cta .btn {
    border-radius: var(--radius-sm);
    border-color: #111;
    box-shadow: 4px 4px 0 #111;
}

.shop.tpl-audace .hero .btn-brand {
    background: #111;
    color: #fff;
}

    .shop.tpl-audace .hero .btn-brand:hover:not(:disabled) {
        background: #fff;
        color: #111;
    }

.shop.tpl-audace .hero .btn-ghost {
    background: #fff;
    color: #111;
    border: 3px solid #111;
    backdrop-filter: none;
}

.shop.tpl-audace .hero-stats strong {
    font-size: 40px;
}

.shop.tpl-audace .hero-stats span {
    opacity: 1;
    font-weight: 600;
}

/* Avantages, titres de section, tuiles */

.shop.tpl-audace .perk {
    background: var(--surface);
    border: var(--edge);
    box-shadow: 5px 5px 0 var(--ink);
}

    .shop.tpl-audace .perk .perk-icon {
        background: var(--accent);
        color: #111;
        border: 2px solid #111;
    }

    .shop.tpl-audace .perk span {
        color: var(--muted);
    }

.shop.tpl-audace .shop-section-head h2 {
    font-size: 42px;
}

.shop.tpl-audace .shop-eyebrow {
    background: var(--ink);
    -webkit-background-clip: border-box;
    background-clip: border-box;
    color: var(--bg);
    padding: 4px 10px;
}

.shop.tpl-audace .shop-link-arrow {
    color: var(--ink) !important;
    text-transform: uppercase;
    border-bottom: 3px solid var(--brand);
}

.shop.tpl-audace .cat-tile {
    border: var(--edge);
    box-shadow: var(--shadow);
    background: var(--brand);
    transition: transform .15s, box-shadow .15s;
}

    .shop.tpl-audace .cat-tile:nth-child(3n+2) { background: var(--accent); }
    .shop.tpl-audace .cat-tile:nth-child(3n) { background: #8ecae6; }

    .shop.tpl-audace .cat-tile:hover {
        transform: translate(-3px, -3px);
        box-shadow: 9px 9px 0 var(--ink);
    }

    .shop.tpl-audace .cat-tile::after {
        display: none;
    }

    .shop.tpl-audace .cat-tile .cat-tile-body {
        left: 14px;
        right: 14px;
        bottom: 14px;
        background: #fff;
        color: #111;
        border: 3px solid #111;
        padding: 10px 14px;
    }

    .shop.tpl-audace .cat-tile strong {
        font-size: 20px;
        font-weight: 700;
        text-transform: uppercase;
    }

    .shop.tpl-audace .cat-tile span {
        opacity: 1;
        font-weight: 600;
    }

/* Produits : carte encadrée, ombre décalée, soulevée au survol. */

.shop.tpl-audace .product-card {
    background: var(--surface);
    border: var(--edge);
    box-shadow: var(--shadow);
    transition: transform .15s, box-shadow .15s;
}

    .shop.tpl-audace .product-card:hover {
        transform: translate(-3px, -3px);
        box-shadow: 9px 9px 0 var(--ink);
        border-color: var(--ink);
    }

.shop.tpl-audace .product-photo {
    border-bottom: var(--edge);
    background: var(--surface-2);
}

.shop.tpl-audace .placeholder-code {
    background: none;
    color: var(--ink);
}

.shop.tpl-audace .ribbon {
    border-radius: 0;
    background: var(--accent);
    color: #111;
    border: 2px solid #111;
    text-transform: uppercase;
    font-weight: 700;
}

.shop.tpl-audace .product-name {
    font-size: 16px;
}

.shop.tpl-audace .chip {
    border: 2px solid var(--ink);
    border-radius: var(--radius-sm);
}

    .shop.tpl-audace .chip.selected {
        background: var(--brand);
        color: #111;
        border-color: var(--ink);
        box-shadow: 3px 3px 0 var(--ink);
    }

.shop.tpl-audace .gallery-main,
.shop.tpl-audace .set-box,
.shop.tpl-audace .features,
.shop.tpl-audace .cart-line,
.shop.tpl-audace .summary,
.shop.tpl-audace .shop-cats,
.shop.tpl-audace .cart-lines,
.shop.tpl-audace .empty,
.shop.tpl-audace .checkout-card,
.shop.tpl-audace .order-summary,
.shop.tpl-audace .order-box,
.shop.tpl-audace .order-list .order-item {
    border: var(--edge);
    box-shadow: var(--shadow);
}

.shop.tpl-audace .cta-band {
    background: var(--brand);
    color: #111;
    border: var(--edge);
    box-shadow: var(--shadow-lg);
}

    .shop.tpl-audace .cta-band::before {
        display: none;
    }

    .shop.tpl-audace .cta-band .btn {
        background: #fff;
        color: #111;
        border: 3px solid #111;
        border-radius: var(--radius-sm);
        box-shadow: 4px 4px 0 #111;
    }

.shop.tpl-audace .shop-footer {
    background: #111;
    color: #e5e5e5;
    border-top: var(--edge);
}

    .shop.tpl-audace .shop-footer::before {
        display: none;
    }

.shop.tpl-audace .shop-footer-title {
    color: var(--accent);
    text-transform: uppercase;
}

.shop.tpl-audace .shop-social a {
    border: 2px solid #e5e5e5;
    border-radius: 0;
}

/* =====================================================================
   DOUCEUR : pastel et tout en rondeur. Fonds tendres, formes organiques,
   menu en pastilles, cartes moelleuses.
   ===================================================================== */

.shop.tpl-douceur {
    --bg: #fffaf6;
    --surface: #ffffff;
    --surface-2: color-mix(in srgb, var(--brand) 9%, #fff);
    --soft-accent: color-mix(in srgb, var(--accent) 22%, #fff);
    --ink: #3b2f35;
    --muted: #8a7a82;
    --line: #f0e3e7;
    --shadow: 0 14px 30px -18px rgba(var(--brand-rgb), .45);
    --shadow-lg: 0 24px 44px -20px rgba(var(--brand-rgb), .45);
    --grad: linear-gradient(120deg, var(--brand), color-mix(in srgb, var(--brand) 55%, var(--accent)));
}

.shop.tpl-douceur.theme-dark {
    --bg: #1d1719;
    --surface: #261f22;
    --surface-2: color-mix(in srgb, var(--brand) 14%, #261f22);
    --soft-accent: color-mix(in srgb, var(--accent) 20%, #261f22);
    --ink: #f6ecef;
    --muted: #b9a8b0;
    --line: #3a2f34;
}

.shop.tpl-douceur .shop-announce {
    background: var(--soft-accent);
    color: var(--ink);
    animation: none;
    font-weight: 700;
}

.shop.tpl-douceur .shop-header {
    border-bottom: 0;
}

.shop.tpl-douceur .shop-brand-mark {
    border-radius: 50%;
    background: var(--brand);
    box-shadow: none;
}

.shop.tpl-douceur .shop-nav a {
    color: var(--ink);
    border-radius: 999px;
    padding: 8px 16px;
    font-weight: 700;
}

    .shop.tpl-douceur .shop-nav a::after {
        display: none;
    }

    .shop.tpl-douceur .shop-nav a:hover {
        background: var(--surface-2);
    }

    .shop.tpl-douceur .shop-nav a.active {
        background: var(--brand);
        color: #fff;
    }

.shop.tpl-douceur .shop-search {
    background: var(--surface);
    border: 2px solid var(--line);
}

.shop.tpl-douceur .cart-button {
    background: var(--brand);
    color: #fff;
    box-shadow: var(--shadow);
}

    .shop.tpl-douceur .cart-button:hover {
        color: #fff;
    }

.shop.tpl-douceur .cart-count {
    background: #fff;
    color: var(--brand);
}

.shop.tpl-douceur .btn {
    border-radius: 999px;
    font-weight: 800;
}

.shop.tpl-douceur .btn-primary,
.shop.tpl-douceur .btn-brand {
    background: var(--brand);
}

/* Héros : fond pastel, bulles douces, photo en forme de galet. */

.shop.tpl-douceur .hero {
    border-radius: calc(var(--radius) * 2);
}

.shop.tpl-douceur .hero-aurora {
    background: var(--surface-2);
    color: var(--ink);
}

    .shop.tpl-douceur .hero-aurora .blob {
        filter: blur(50px);
        opacity: .7;
    }

        .shop.tpl-douceur .hero-aurora .blob.b1 { background: color-mix(in srgb, var(--brand) 40%, #fff); }
        .shop.tpl-douceur .hero-aurora .blob.b2 { background: color-mix(in srgb, var(--accent) 45%, #fff); }
        .shop.tpl-douceur .hero-aurora .blob.b3 { background: color-mix(in srgb, var(--accent) 30%, var(--bg)); }

    .shop.tpl-douceur .hero-aurora::after {
        display: none;
    }

.shop.tpl-douceur .hero-split {
    background: var(--soft-accent);
}

    .shop.tpl-douceur .hero-split .hero-visual {
        transform: none;
        aspect-ratio: 1;
        border-radius: 46% 54% 42% 58% / 52% 44% 56% 48%;
        box-shadow: var(--shadow-lg);
    }

.shop.tpl-douceur .hero h1 {
    font-weight: 800;
}

    .shop.tpl-douceur .hero-aurora h1 span,
    .shop.tpl-douceur .hero-split h1 span {
        background: none;
        color: var(--brand);
    }

.shop.tpl-douceur .hero-badge {
    background: var(--surface);
    color: var(--brand);
    border: 0;
    box-shadow: var(--shadow);
    font-weight: 700;
}

    .shop.tpl-douceur .hero-badge .dot {
        background: var(--accent);
        box-shadow: 0 0 0 4px rgba(var(--accent-rgb), .25);
    }

.shop.tpl-douceur .hero-aurora .btn-ghost,
.shop.tpl-douceur .hero-split .btn-ghost {
    background: var(--surface);
    color: var(--ink);
    border: 0;
    box-shadow: var(--shadow);
}

/* Avantages, titres de section, tuiles */

.shop.tpl-douceur .perk {
    background: var(--surface-2);
    border: 0;
}

    .shop.tpl-douceur .perk .perk-icon {
        border-radius: 50%;
        background: var(--surface);
    }

.shop.tpl-douceur .shop-section-head h2 {
    font-weight: 800;
}

.shop.tpl-douceur .shop-eyebrow {
    background: none;
    color: var(--brand);
    text-transform: none;
    letter-spacing: 0;
    font-size: 15px;
}

.shop.tpl-douceur .cat-tile {
    aspect-ratio: 1;
    border-radius: calc(var(--radius) * 1.4);
    background: color-mix(in srgb, var(--brand) 28%, #fff);
    box-shadow: none;
}

    .shop.tpl-douceur .cat-tile:nth-child(3n+2) { background: color-mix(in srgb, var(--accent) 35%, #fff); }
    .shop.tpl-douceur .cat-tile:nth-child(3n) { background: color-mix(in srgb, var(--brand) 18%, color-mix(in srgb, var(--accent) 20%, #fff)); }

    .shop.tpl-douceur .cat-tile::after {
        display: none;
    }

    .shop.tpl-douceur .cat-tile .cat-tile-body {
        left: 12px;
        right: 12px;
        bottom: 12px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
        padding: 10px 16px;
        border-radius: 999px;
        background: rgba(255, 255, 255, .94);
        color: #3b2f35;
    }

    .shop.tpl-douceur .cat-tile strong {
        font-size: 16px;
        font-weight: 800;
    }

/* Produits : carte moelleuse, photo arrondie à l'intérieur. */

.shop.tpl-douceur .product-card {
    border: 0;
    box-shadow: var(--shadow);
}

    .shop.tpl-douceur .product-card:hover {
        transform: translateY(-4px);
    }

.shop.tpl-douceur .product-photo {
    margin: 10px 10px 0;
    border-radius: calc(var(--radius) * .7);
    background: var(--surface-2);
}

.shop.tpl-douceur .placeholder-code {
    background: none;
    color: var(--brand);
}

.shop.tpl-douceur .ribbon {
    background: var(--accent);
}

.shop.tpl-douceur .product-name {
    font-weight: 800;
}

.shop.tpl-douceur .price span,
.shop.tpl-douceur .price-big {
    color: var(--brand);
}

.shop.tpl-douceur .cta-band {
    background: var(--soft-accent);
    color: var(--ink);
    border-radius: calc(var(--radius) * 2);
}

    .shop.tpl-douceur .cta-band::before {
        background: rgba(255, 255, 255, .45);
    }

    .shop.tpl-douceur .cta-band > * {
        position: relative;
    }

    .shop.tpl-douceur .cta-band .btn {
        background: var(--brand);
        color: #fff;
    }

.shop.tpl-douceur .shop-footer {
    background: var(--surface-2);
    color: var(--muted);
    border-radius: 40px 40px 0 0;
}

    .shop.tpl-douceur .shop-footer::before {
        display: none;
    }

.shop.tpl-douceur .shop-footer-inner a {
    color: var(--muted);
}

    .shop.tpl-douceur .shop-footer-inner a:hover {
        color: var(--brand);
    }

.shop.tpl-douceur .shop-footer .shop-brand-name,
.shop.tpl-douceur .shop-footer-title {
    color: var(--ink);
}

.shop.tpl-douceur .shop-social a {
    border-color: var(--line);
    background: var(--surface);
}

.shop.tpl-douceur .shop-footer-bottom {
    border-color: var(--line);
    color: var(--muted);
}

/* =====================================================================
   ÉPURE : minimal, à la manière des boutiques techno. Fond gris perle,
   grands titres centrés, cartes blanches sans bordure, rien de superflu.
   ===================================================================== */

.shop.tpl-epure {
    --bg: #f5f5f7;
    --surface: #ffffff;
    --surface-2: #f5f5f7;
    --ink: #1d1d1f;
    --muted: #6e6e73;
    --line: #e2e2e7;
    --shadow: 0 4px 24px rgba(0, 0, 0, .06);
    --shadow-lg: 0 18px 40px rgba(0, 0, 0, .1);
}

.shop.tpl-epure.theme-dark {
    --bg: #000000;
    --surface: #161617;
    --surface-2: #1d1d1f;
    --ink: #f5f5f7;
    --muted: #a1a1a6;
    --line: #2c2c2e;
    --shadow: none;
    --shadow-lg: 0 0 0 1px #3a3a3c;
}

.shop.tpl-epure h1,
.shop.tpl-epure h2 {
    font-weight: 700;
    letter-spacing: -0.035em;
}

.shop.tpl-epure .shop-announce {
    background: var(--surface);
    color: var(--muted);
    animation: none;
    font-weight: 500;
    font-size: 12px;
    border-bottom: 1px solid var(--line);
}

.shop.tpl-epure .shop-header-inner {
    padding-top: 8px;
    padding-bottom: 8px;
}

.shop.tpl-epure .shop-brand-mark {
    width: 30px;
    height: 30px;
    background: var(--ink);
    color: var(--bg);
    box-shadow: none;
    font-size: 12px;
}

.shop.tpl-epure .shop-brand-name {
    font-size: 18px;
    font-weight: 600;
}

.shop.tpl-epure .shop-nav a {
    color: var(--ink);
    opacity: .78;
    font-weight: 400;
    font-size: 14px;
}

    .shop.tpl-epure .shop-nav a::after {
        display: none;
    }

    .shop.tpl-epure .shop-nav a:hover,
    .shop.tpl-epure .shop-nav a.active {
        opacity: 1;
    }

.shop.tpl-epure .shop-search {
    height: 36px;
    background: var(--surface);
}

.shop.tpl-epure .cart-button {
    background: transparent;
    color: var(--ink);
    box-shadow: none;
    font-weight: 500;
}

    .shop.tpl-epure .cart-button:hover {
        color: var(--ink);
    }

.shop.tpl-epure .btn {
    border-radius: 999px;
    font-weight: 500;
}

.shop.tpl-epure .btn-primary,
.shop.tpl-epure .btn-brand {
    box-shadow: none;
}

    .shop.tpl-epure .btn-primary:hover:not(:disabled),
    .shop.tpl-epure .btn-brand:hover:not(:disabled) {
        transform: none;
        filter: brightness(1.1);
        box-shadow: none;
    }

/* Héros : pas de boîte, un très grand titre centré. */

.shop.tpl-epure .hero-aurora {
    background: transparent;
    color: var(--ink);
    min-height: 0;
    padding: 88px 24px 56px;
    text-align: center;
}

    .shop.tpl-epure .hero-aurora .blob,
    .shop.tpl-epure .hero-aurora::after {
        display: none;
    }

    .shop.tpl-epure .hero-aurora .hero-content {
        max-width: 900px;
        margin: 0 auto;
    }

    .shop.tpl-epure .hero-aurora .hero-cta,
    .shop.tpl-epure .hero-aurora .hero-stats {
        justify-content: center;
    }

    .shop.tpl-epure .hero-aurora p.lead {
        margin-left: auto;
        margin-right: auto;
        color: var(--muted);
        opacity: 1;
        font-size: 22px;
    }

.shop.tpl-epure .hero h1 {
    font-size: clamp(48px, 7vw, 104px);
    line-height: 1;
}

    .shop.tpl-epure .hero-aurora h1 span,
    .shop.tpl-epure .hero-split h1 span {
        background: linear-gradient(90deg, var(--brand), var(--accent));
        -webkit-background-clip: text;
        background-clip: text;
        color: transparent;
    }

.shop.tpl-epure .hero-badge {
    background: none;
    border: 0;
    padding: 0;
    backdrop-filter: none;
    color: var(--brand);
    font-size: 17px;
}

    .shop.tpl-epure .hero-badge .dot {
        display: none;
    }

.shop.tpl-epure .hero-image .hero-badge {
    color: #fff;
}

.shop.tpl-epure .hero-cta .btn {
    padding: 12px 24px;
    font-size: 17px;
}

.shop.tpl-epure .hero-aurora .btn-ghost,
.shop.tpl-epure .hero-split .btn-ghost {
    background: transparent;
    color: var(--brand);
    border: 0;
    backdrop-filter: none;
}

    .shop.tpl-epure .hero-aurora .btn-ghost::after,
    .shop.tpl-epure .hero-split .btn-ghost::after {
        content: " ›";
    }

.shop.tpl-epure .hero-stats strong {
    font-weight: 600;
}

.shop.tpl-epure .hero-split {
    background: var(--surface);
    border-radius: calc(var(--radius) * 1.4);
}

    .shop.tpl-epure .hero-split .hero-visual {
        transform: none;
        box-shadow: none;
        border-radius: var(--radius);
        background: linear-gradient(135deg, rgba(var(--brand-rgb), .15), rgba(var(--accent-rgb), .25));
    }

/* Avantages, titres de section, tuiles */

.shop.tpl-epure .perk {
    border: 0;
    flex-direction: column;
    text-align: center;
    padding: 24px 20px;
}

    .shop.tpl-epure .perk .perk-icon {
        border-radius: 50%;
        background: var(--surface-2);
    }

.shop.tpl-epure .shop-section-head {
    flex-direction: column;
    align-items: center;
    text-align: center;
}

    .shop.tpl-epure .shop-section-head h2 {
        font-size: 48px;
    }

.shop.tpl-epure .shop-eyebrow {
    background: none;
    color: var(--brand);
    text-transform: none;
    letter-spacing: 0;
    font-size: 17px;
    font-weight: 600;
}

.shop.tpl-epure .shop-link-arrow {
    font-weight: 500;
}

.shop.tpl-epure .cat-tile {
    aspect-ratio: 1;
    border-radius: calc(var(--radius) * 1.2);
    background: var(--surface);
    color: var(--ink) !important;
    box-shadow: none;
}

    .shop.tpl-epure .cat-tile::after {
        display: none;
    }

    .shop.tpl-epure .cat-tile img {
        top: 34%;
        height: 66%;
        z-index: 0;
    }

    .shop.tpl-epure .cat-tile .cat-tile-body {
        top: 24px;
        bottom: auto;
        text-align: center;
    }

    .shop.tpl-epure .cat-tile strong {
        font-size: 24px;
        font-weight: 600;
        letter-spacing: -0.02em;
    }

    .shop.tpl-epure .cat-tile span {
        color: var(--brand);
        opacity: 1;
    }

/* Produits : carte blanche, sans bordure, photo carrée. */

.shop.tpl-epure .product-card {
    border: 0;
    border-radius: calc(var(--radius) * 1.2);
}

    .shop.tpl-epure .product-card:hover {
        transform: scale(1.015);
    }

.shop.tpl-epure .product-photo {
    aspect-ratio: 1;
    background: var(--surface);
}

.shop.tpl-epure .product-body {
    padding: 4px 20px 20px;
}

.shop.tpl-epure .product-name {
    font-weight: 600;
    font-size: 17px;
}

.shop.tpl-epure .product-code {
    display: none;
}

.shop.tpl-epure .price span,
.shop.tpl-epure .price-big {
    font-weight: 500;
}

.shop.tpl-epure .placeholder-code {
    font-weight: 600;
}

.shop.tpl-epure .ribbon {
    background: transparent;
    color: #bf4800;
    padding: 0;
    font-weight: 500;
}

.shop.tpl-epure .cta-band {
    background: var(--surface);
    color: var(--ink);
    flex-direction: column;
    text-align: center;
    justify-content: center;
    padding: 64px 32px;
}

    .shop.tpl-epure .cta-band::before {
        display: none;
    }

    .shop.tpl-epure .cta-band h2 {
        font-size: 40px;
    }

    .shop.tpl-epure .cta-band p {
        color: var(--muted);
    }

    .shop.tpl-epure .cta-band .btn {
        background: var(--brand);
        color: #fff;
    }

.shop.tpl-epure .shop-footer {
    background: var(--surface-2);
    color: var(--muted);
    border-top: 1px solid var(--line);
    font-size: 13px;
}

    .shop.tpl-epure .shop-footer::before {
        display: none;
    }

.shop.tpl-epure .shop-footer-inner a {
    color: var(--muted);
    font-size: 13px;
}

    .shop.tpl-epure .shop-footer-inner a:hover {
        color: var(--ink);
    }

.shop.tpl-epure .shop-footer .shop-brand-name {
    color: var(--ink);
    font-size: 18px;
}

.shop.tpl-epure .shop-footer-title {
    color: var(--ink);
    font-size: 13px;
    font-weight: 600;
}

.shop.tpl-epure .shop-social a {
    border-color: var(--line);
}

.shop.tpl-epure .shop-footer-bottom {
    border-color: var(--line);
    color: var(--muted);
}

/* ---------- Sections de la page d'accueil, selon le gabarit ---------- */

.shop { overflow-x: clip; }

/* Atelier */
.shop.tpl-atelier .testimonial { background: transparent; border: 0; border-top: 1px solid var(--ink); border-radius: 0; padding: 24px 0 0; }
.shop.tpl-atelier .testimonial blockquote { font-family: var(--font-heading); font-style: italic; font-size: 22px; line-height: 1.45; }
.shop.tpl-atelier .testimonial-stars,
.shop.tpl-atelier .testimonial-avatar { display: none; }
.shop.tpl-atelier .faq-item { background: transparent; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; padding: 0; }
.shop.tpl-atelier .faq-item summary { font-family: var(--font-heading); font-weight: 400; font-size: 21px; }
.shop.tpl-atelier .faq-sign::before,
.shop.tpl-atelier .faq-sign::after { background: var(--ink); height: 1px; }
.shop.tpl-atelier .home-imagetext-photo { border-radius: 0; box-shadow: none; aspect-ratio: 4 / 5; background: var(--surface-2); }
.shop.tpl-atelier .home-imagetext-body h2,
.shop.tpl-atelier .home-richtext h2 { font-weight: 400; font-size: 44px; }
.shop.tpl-atelier .home-imagetext-body .btn { border-radius: var(--radius-sm); }
.shop.tpl-atelier .home-marquee { background: var(--surface-2); color: var(--ink); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.shop.tpl-atelier .home-marquee-group span { font-weight: 400; font-style: italic; }
.shop.tpl-atelier .home-marquee-group .home-marquee-dot { color: var(--accent); font-style: normal; }
.shop.tpl-atelier .cat-circle-photo { background: var(--surface-2); color: var(--ink); box-shadow: none; font-weight: 400; }
.shop.tpl-atelier .cat-circle strong { font-weight: 400; font-size: 18px; }

/* Nuit */
.shop.tpl-nuit .testimonial { background: transparent; border-radius: 0; text-align: center; align-items: center; padding: 36px 28px; }
.shop.tpl-nuit .testimonial blockquote { font-family: var(--font-heading); font-style: italic; font-size: 24px; line-height: 1.4; }
.shop.tpl-nuit .testimonial-stars { color: var(--brand); letter-spacing: 6px; font-size: 13px; }
.shop.tpl-nuit .testimonial figcaption { flex-direction: column; gap: 8px; }
.shop.tpl-nuit .testimonial figcaption > span:last-child { align-items: center; }
.shop.tpl-nuit .testimonial figcaption strong { font-weight: 500; letter-spacing: .18em; text-transform: uppercase; font-size: 12px; }
.shop.tpl-nuit .testimonial-avatar { background: transparent; border: 1px solid var(--brand); color: var(--brand); font-family: var(--font-heading); }
.shop.tpl-nuit .faq-item { background: transparent; border-radius: 0; }
.shop.tpl-nuit .faq-item summary { font-family: var(--font-heading); font-weight: 500; font-size: 21px; }
.shop.tpl-nuit .faq-sign::before,
.shop.tpl-nuit .faq-sign::after { height: 1px; }
.shop.tpl-nuit .home-imagetext-photo { border-radius: 0; box-shadow: none; outline: 1px solid rgba(var(--brand-rgb), .5); outline-offset: 12px; }
.shop.tpl-nuit .home-imagetext-body h2,
.shop.tpl-nuit .home-richtext h2 { font-weight: 500; font-size: 46px; }
.shop.tpl-nuit .home-imagetext-body .btn { border-radius: var(--radius-sm); }
.shop.tpl-nuit .home-marquee { background: transparent; color: var(--brand); border-top: 1px solid rgba(var(--brand-rgb), .4); border-bottom: 1px solid rgba(var(--brand-rgb), .4); }
.shop.tpl-nuit .home-marquee-group span { font-family: var(--font); font-size: 20px; font-weight: 500; letter-spacing: .3em; text-transform: uppercase; padding: 0 30px; }
.shop.tpl-nuit .home-marquee-group .home-marquee-dot { color: var(--ink); font-size: 12px; letter-spacing: 0; }
.shop.tpl-nuit .cat-circle-photo { box-shadow: 0 0 0 6px var(--bg), 0 0 0 7px rgba(var(--brand-rgb), .6); color: #0a0a0b; }
.shop.tpl-nuit .cat-circle strong { font-family: var(--font); font-weight: 500; letter-spacing: .2em; text-transform: uppercase; font-size: 13px; }

/* Audace */
.shop.tpl-audace .testimonial,
.shop.tpl-audace .faq-item { border: var(--edge); box-shadow: var(--shadow); }
.shop.tpl-audace .testimonial:nth-child(3n+1) { background: var(--surface-2); }
.shop.tpl-audace .testimonial blockquote { font-weight: 600; font-size: 18px; }
.shop.tpl-audace .testimonial-stars { color: #111; }
.shop.tpl-audace .testimonial-avatar { background: var(--brand); color: #111; border: 2px solid #111; border-radius: 0; }
.shop.tpl-audace .faq-item summary { text-transform: uppercase; }
.shop.tpl-audace .faq-item[open] { background: var(--surface-2); }
.shop.tpl-audace .faq-sign::before,
.shop.tpl-audace .faq-sign::after { background: var(--ink); height: 3px; }
.shop.tpl-audace .home-imagetext-photo { border: var(--edge); box-shadow: var(--shadow-lg); background: var(--accent); }
.shop.tpl-audace .home-imagetext-body h2,
.shop.tpl-audace .home-richtext h2 { text-transform: uppercase; font-size: 44px; }
.shop.tpl-audace .home-imagetext-body p,
.shop.tpl-audace .home-richtext p { color: var(--ink); }
.shop.tpl-audace .home-imagetext-body .btn { border-radius: var(--radius-sm); }
.shop.tpl-audace .home-marquee { background: var(--brand); color: #111; border-top: var(--edge); border-bottom: var(--edge); transform: rotate(-1.5deg); margin-top: 88px; }
.shop.tpl-audace .home-marquee-group span { text-transform: uppercase; font-size: 38px; }
.shop.tpl-audace .home-marquee-group .home-marquee-dot { color: #111; }
.shop.tpl-audace .cat-circle-photo { border: var(--edge); box-shadow: 4px 4px 0 var(--ink); background: var(--accent); color: #111; }
.shop.tpl-audace .cat-circle strong { text-transform: uppercase; }

/* Douceur */
.shop.tpl-douceur .testimonial { border: 0; box-shadow: var(--shadow); border-radius: calc(var(--radius) * 1.2); }
.shop.tpl-douceur .testimonial:nth-child(2) { background: var(--surface-2); }
.shop.tpl-douceur .testimonial-stars { color: var(--brand); }
.shop.tpl-douceur .testimonial-avatar { background: var(--soft-accent); color: var(--ink); }
.shop.tpl-douceur .faq-item { border: 0; background: var(--surface-2); }
.shop.tpl-douceur .home-imagetext-photo { border-radius: 46% 54% 42% 58% / 52% 44% 56% 48%; box-shadow: var(--shadow-lg); aspect-ratio: 1; }
.shop.tpl-douceur .home-marquee { background: var(--soft-accent); color: var(--ink); border-radius: 999px; margin-left: 0; margin-right: 0; }
.shop.tpl-douceur .home-marquee-group .home-marquee-dot { color: var(--brand); }
.shop.tpl-douceur .cat-circle-photo { background: var(--soft-accent); color: var(--brand); box-shadow: var(--shadow); }

/* Épure */
.shop.tpl-epure .testimonial { border: 0; border-radius: calc(var(--radius) * 1.2); }
.shop.tpl-epure .testimonial-stars { display: none; }
.shop.tpl-epure .testimonial blockquote { font-size: 19px; font-weight: 500; letter-spacing: -0.01em; }
.shop.tpl-epure .testimonial-avatar { background: var(--surface-2); color: var(--ink); }
.shop.tpl-epure .faq-item { border: 0; }
.shop.tpl-epure .faq-item summary { font-weight: 600; }
.shop.tpl-epure .home-imagetext-photo { box-shadow: none; border-radius: calc(var(--radius) * 1.4); }
.shop.tpl-epure .home-imagetext-body h2,
.shop.tpl-epure .home-richtext h2 { font-weight: 700; font-size: 48px; letter-spacing: -0.035em; }
.shop.tpl-epure .home-marquee { background: transparent; color: var(--ink); }
.shop.tpl-epure .home-marquee-group span { font-size: 56px; letter-spacing: -0.04em; }
.shop.tpl-epure .home-marquee-group .home-marquee-dot { color: var(--brand); }
.shop.tpl-epure .cat-circle-photo { background: var(--surface); color: var(--brand); box-shadow: none; }
.shop.tpl-epure .cat-circle strong { font-weight: 600; }

/* ---------- Réglages fins (ShopTheme.Classes) : par-dessus le gabarit ---------- */

.shop.header-static .shop-header {
    position: relative;
}

/* Produits par rangée */
@media (min-width: 900px) {
    .shop.cols-2 .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .shop.cols-3 .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .shop.cols-4 .product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .shop.cols-5 .product-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}

/* Forme des photos */
.shop.photo-square .product-card .product-photo { aspect-ratio: 1; }
.shop.photo-portrait .product-card .product-photo { aspect-ratio: 4 / 5; }
.shop.photo-landscape .product-card .product-photo { aspect-ratio: 4 / 3; }

.shop.photo-contain .product-card .product-photo img {
    object-fit: contain;
    padding: 14px;
}

/* Cartes de produits */
.shop.card-plain .product-grid .product-card,
.shop.card-plain .product-grid .product-card:hover {
    background: transparent;
    border-color: transparent;
    box-shadow: none;
}

.shop.card-plain .product-grid .product-photo {
    border-radius: var(--radius);
    border: 0;
}

.shop.card-plain .product-grid .product-body {
    padding-left: 0;
    padding-right: 0;
}

.shop.card-framed .product-grid .product-card {
    background: var(--surface);
    border: 1px solid var(--line);
    box-shadow: none;
}

    .shop.card-framed .product-grid .product-card:hover {
        border-color: var(--brand);
        box-shadow: none;
    }

.shop.card-raised .product-grid .product-card {
    background: var(--surface);
    border: 1px solid transparent;
    box-shadow: 0 14px 34px -16px rgba(0, 0, 0, .28);
}

    .shop.card-raised .product-grid .product-card:hover {
        border-color: transparent;
        box-shadow: 0 24px 48px -18px rgba(0, 0, 0, .35);
    }

/* Forme des boutons */
.shop.btn-square .btn,
.shop.btn-square .cart-button,
.shop.btn-square .chip {
    border-radius: 0 !important;
}

.shop.btn-rounded .btn,
.shop.btn-rounded .cart-button,
.shop.btn-rounded .chip {
    border-radius: 10px !important;
}

.shop.btn-pill .btn,
.shop.btn-pill .cart-button,
.shop.btn-pill .chip {
    border-radius: 999px !important;
}

/* Code et catégorie sur les cartes */
.shop.no-code .product-card .product-code { display: none; }
.shop.no-category .product-card .product-cat { display: none; }

/* Sans animations */
.shop.no-motion *,
.shop.no-motion *::before,
.shop.no-motion *::after {
    animation: none !important;
    transition: none !important;
}

/* ---------- Fiche produit, panier et caisse selon le gabarit ---------- */

/* Atelier : grande photo sans cadre, titre à empattements, filets fins, boutons noirs en majuscules. */
.shop.tpl-atelier .product-layout { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 64px; }
.shop.tpl-atelier .gallery-main { border-radius: 0; aspect-ratio: 4 / 5; background: var(--surface-2); border: 0; }
.shop.tpl-atelier .gallery-main img { background: var(--surface-2); }
.shop.tpl-atelier .gallery-thumbs button { border-radius: 0; }
.shop.tpl-atelier .buy-box .product-code { letter-spacing: .16em; text-transform: uppercase; font-family: var(--font); font-size: 11px; }
.shop.tpl-atelier .buy-box .product-title { font-weight: 400; font-size: 44px; }
.shop.tpl-atelier .buy-box .price-big { font-weight: 400; font-family: var(--font-heading); border-bottom: 1px solid var(--line); padding-bottom: 18px; }
.shop.tpl-atelier .chip { border-radius: 0; border-color: var(--line); }
.shop.tpl-atelier .chip.selected { background: var(--ink); color: var(--bg); box-shadow: none; }
.shop.tpl-atelier .stepper { border-radius: 0; }
.shop.tpl-atelier .buy-row .btn { letter-spacing: .14em; }
.shop.tpl-atelier .set-box,
.shop.tpl-atelier .features,
.shop.tpl-atelier .cart-lines,
.shop.tpl-atelier .summary,
.shop.tpl-atelier .checkout-card,
.shop.tpl-atelier .order-summary { border-radius: 0; box-shadow: none; }
.shop.tpl-atelier .features { background: transparent; border: 0; }
.shop.tpl-atelier .features h2 { font-weight: 400; font-size: 28px; }
.shop.tpl-atelier .features th { background: transparent; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.shop.tpl-atelier .cart-photo,
.shop.tpl-atelier .summary-line .thumb { border-radius: 0; }
.shop.tpl-atelier .shop-page-title { font-weight: 400; }

/* Nuit : photo encadrée d'un filet doré, informations centrées, prix doré. */
.shop.tpl-nuit .gallery-main { border-radius: 0; border: 1px solid rgba(var(--brand-rgb), .4); background: var(--surface); }
.shop.tpl-nuit .gallery-main img { background: var(--surface); }
.shop.tpl-nuit .gallery-thumbs button { border-radius: 0; }
.shop.tpl-nuit .buy-box { text-align: center; }
.shop.tpl-nuit .buy-box .product-code { letter-spacing: .3em; color: var(--brand); font-size: 11px; }
.shop.tpl-nuit .buy-box .product-title { font-weight: 500; font-size: 46px; }
.shop.tpl-nuit .buy-box .price-big { color: var(--brand); font-weight: 500; font-family: var(--font-heading); font-size: 34px; }
.shop.tpl-nuit .opt-chips,
.shop.tpl-nuit .buy-row { justify-content: center; }
.shop.tpl-nuit .chip { border-radius: 0; background: transparent; border-color: var(--line); }
.shop.tpl-nuit .chip.selected { background: transparent; color: var(--brand); border-color: var(--brand); box-shadow: inset 0 0 0 1px var(--brand); }
.shop.tpl-nuit .stepper { border-radius: 0; background: transparent; }
.shop.tpl-nuit .buy-row .btn-primary { background: var(--brand); color: #0a0a0b; }
.shop.tpl-nuit .buy-reassure { justify-items: center; border-color: rgba(var(--brand-rgb), .3); }
.shop.tpl-nuit .set-box,
.shop.tpl-nuit .features,
.shop.tpl-nuit .cart-lines,
.shop.tpl-nuit .summary,
.shop.tpl-nuit .checkout-card,
.shop.tpl-nuit .order-summary { border-radius: 0; background: transparent; border-color: rgba(var(--brand-rgb), .3); }
.shop.tpl-nuit .features { margin-left: auto; margin-right: auto; }
.shop.tpl-nuit .features h2 { font-weight: 500; text-align: center; font-size: 30px; }
.shop.tpl-nuit .features th { background: transparent; letter-spacing: .14em; text-transform: uppercase; font-size: 12px; }
.shop.tpl-nuit .summary-row.total,
.shop.tpl-nuit .totals .grand { color: var(--brand); }
.shop.tpl-nuit .cart-photo,
.shop.tpl-nuit .summary-line .thumb { border-radius: 0; }
.shop.tpl-nuit .shop-page-title { font-weight: 500; letter-spacing: .04em; }

/* Audace : tout encadré de noir avec ombres franches, titre géant en majuscules. */
.shop.tpl-audace .gallery-main { border: var(--edge); box-shadow: var(--shadow-lg); background: var(--accent); }
.shop.tpl-audace .gallery-thumbs button { border: 2px solid var(--ink); border-radius: 0; }
.shop.tpl-audace .gallery-thumbs button.active { box-shadow: 3px 3px 0 var(--ink); background: var(--brand); }
.shop.tpl-audace .buy-box { padding: 28px; border: var(--edge); box-shadow: var(--shadow-lg); background: var(--surface); }
.shop.tpl-audace .buy-box .product-title { font-size: 46px; text-transform: uppercase; }
.shop.tpl-audace .buy-box .price-big { display: inline-block; background: var(--accent); color: #111; padding: 4px 12px; border: var(--edge); }
.shop.tpl-audace .stepper { border: var(--edge); border-radius: 0; }
.shop.tpl-audace .buy-reassure { border-top: 3px solid var(--ink); color: var(--ink); font-weight: 600; }
.shop.tpl-audace .buy-reassure .icon { color: var(--ink); }
.shop.tpl-audace .features th { text-transform: uppercase; color: var(--ink); }
.shop.tpl-audace .features td,
.shop.tpl-audace .features th { border-top: 2px solid var(--ink); }
.shop.tpl-audace .summary { background: var(--accent); color: #111; }
.shop.tpl-audace .summary-row { color: #111; }
.shop.tpl-audace .cart-photo { border: 2px solid var(--ink); border-radius: 0; }
.shop.tpl-audace .shop-page-title { text-transform: uppercase; }

/* Douceur : photo sur fond pastel très arrondie, panneau d'achat moelleux. */
.shop.tpl-douceur .gallery-main { border-radius: calc(var(--radius) * 1.6); background: var(--surface-2); border: 0; }
.shop.tpl-douceur .gallery-main img { background: var(--surface-2); }
.shop.tpl-douceur .gallery-thumbs button { border-radius: 16px; }
.shop.tpl-douceur .buy-box { padding: 30px; border-radius: calc(var(--radius) * 1.4); background: var(--surface); box-shadow: var(--shadow); }
.shop.tpl-douceur .buy-box .product-title { font-weight: 800; }
.shop.tpl-douceur .buy-box .price-big { color: var(--brand); }
.shop.tpl-douceur .chip { border-radius: 999px; }
.shop.tpl-douceur .stepper { border-radius: 999px; }
.shop.tpl-douceur .buy-reassure { border: 0; background: var(--surface-2); border-radius: var(--radius); padding: 14px 16px; }
.shop.tpl-douceur .features,
.shop.tpl-douceur .cart-lines,
.shop.tpl-douceur .checkout-card { border: 0; box-shadow: var(--shadow); border-radius: calc(var(--radius) * 1.2); }
.shop.tpl-douceur .summary,
.shop.tpl-douceur .order-summary { border: 0; background: var(--surface-2); border-radius: calc(var(--radius) * 1.2); box-shadow: none; }
.shop.tpl-douceur .cart-photo,
.shop.tpl-douceur .summary-line .thumb { border-radius: 18px; }

/* Épure : grande photo sur fond blanc, titre très grand, bouton pleine largeur, beaucoup d'air. */
.shop.tpl-epure .product-layout { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 64px; }
.shop.tpl-epure .gallery-main { border: 0; border-radius: calc(var(--radius) * 1.2); background: var(--surface); }
.shop.tpl-epure .gallery-thumbs button { border-radius: 12px; }
.shop.tpl-epure .buy-box .product-code { display: none; }
.shop.tpl-epure .buy-box .product-title { font-size: 48px; letter-spacing: -0.035em; font-weight: 700; }
.shop.tpl-epure .buy-box .price-big { font-weight: 500; font-size: 22px; }
.shop.tpl-epure .chip { border-radius: 12px; padding: 12px 18px; background: var(--surface); }
.shop.tpl-epure .chip.selected { background: var(--surface); color: var(--ink); border-color: var(--brand); box-shadow: inset 0 0 0 1px var(--brand); }
.shop.tpl-epure .buy-row { flex-wrap: wrap; }
.shop.tpl-epure .buy-row .btn { flex-basis: 100%; border-radius: 999px; }
.shop.tpl-epure .stepper { border-radius: 999px; background: var(--surface); }
.shop.tpl-epure .set-box,
.shop.tpl-epure .features,
.shop.tpl-epure .cart-lines,
.shop.tpl-epure .summary,
.shop.tpl-epure .checkout-card,
.shop.tpl-epure .order-summary { border: 0; background: var(--surface); box-shadow: none; border-radius: calc(var(--radius) * 1.2); }
.shop.tpl-epure .features { padding: 24px; }
.shop.tpl-epure .features th { background: transparent; }
.shop.tpl-epure .shop-page-title { font-size: 48px; letter-spacing: -0.035em; }
