@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Playfair+Display:wght@500;600;700&display=swap');

:root{
    --peach:#f6d4ca;
    --peach-soft:#fff5f1;
    --coral:#f05e64;
    --coral-dark:#de4e57;
    --brown:#4a2926;
    --muted:#7b6965;
    --line:#eee3df;
    --white:#ffffff;
    --cream:#fffaf7;
    --gold:#d6a44d;
    --shadow:0 12px 35px rgba(73,41,38,.08);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
    margin:0;
    font-family:'DM Sans',Arial,sans-serif;
    color:var(--brown);
    background:#fff;
}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button,input{font:inherit}
.container{width:min(1320px,calc(100% - 48px));margin-inline:auto}

.topbar{
    background:linear-gradient(90deg,#fff2ec,#f7d8cf);
    border-bottom:1px solid rgba(95,55,48,.06);
    font-size:.84rem;
}
.topbar-inner{
    min-height:42px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    color:#3f302d;
}

.site-header{
    position:relative;
    z-index:10;
    background:#fff;
    border-bottom:1px solid #f0e8e5;
}
.header-inner{
    min-height:166px;
    display:grid;
    grid-template-columns:220px 1fr auto;
    align-items:center;
    gap:30px;
}
.brand{
    width:198px;
    align-self:center;
    justify-self:start;
    margin:0;
    position:relative;
    z-index:3;
}
.brand img{
    width:100%;
    max-height:154px;
    object-fit:contain;
    filter:drop-shadow(0 6px 9px rgba(90,54,45,.08));
}
.main-nav{
    display:flex;
    justify-content:center;
    gap:48px;
    font-family:'Playfair Display',serif;
    font-size:1.08rem;
}
.main-nav a{
    padding:18px 0 10px;
    position:relative;
}
.main-nav a::after{
    content:"";
    position:absolute;
    left:0;
    right:0;
    bottom:4px;
    height:2px;
    background:var(--coral);
    transform:scaleX(0);
    transition:.2s ease;
}
.main-nav a:hover::after,.main-nav a.active::after{transform:scaleX(1)}
.main-nav a.active{color:var(--coral)}

.header-actions{
    display:flex;
    align-items:center;
    gap:18px;
}
.icon-button,.cart-link{
    border:0;
    background:transparent;
    width:38px;
    height:38px;
    display:grid;
    place-items:center;
    font-size:1.5rem;
    cursor:pointer;
    color:#402a26;
    position:relative;
}
.cart-count{
    position:absolute;
    top:0;
    right:0;
    width:18px;
    height:18px;
    border-radius:50%;
    background:var(--coral);
    color:white;
    font:600 .68rem/18px 'DM Sans',sans-serif;
}
.menu-toggle{display:none;border:0;background:none;font-size:1.5rem}

.hero{
    background:linear-gradient(105deg,#fff7f4 0%,#fffaf8 47%,#f3d2c6 100%);
    overflow:hidden;
}
.hero-grid{
    display:grid;
    grid-template-columns:48% 52%;
    min-height:360px;
}
.hero-copy{
    padding:34px 40px 28px 180px;
    margin-left:-180px;
    display:flex;
    flex-direction:column;
    justify-content:center;
}
.eyebrow{
    color:var(--coral);
    font-weight:600;
    letter-spacing:.24em;
    font-size:.84rem;
}
.hero h1{
    margin:12px 0 14px;
    font-family:'Playfair Display',serif;
    font-size:clamp(2.35rem,3vw,3.75rem);
    line-height:1.02;
    letter-spacing:-.03em;
}
.hero h1 span{font-size:.6em}
.hero-copy>p{
    max-width:580px;
    line-height:1.7;
    color:#5f4d49;
    font-size:1.03rem;
}
.btn-primary{
    display:inline-flex;
    align-items:center;
    gap:22px;
    background:linear-gradient(90deg,var(--coral),#fa7275);
    color:#fff;
    padding:15px 26px;
    border-radius:999px;
    margin-top:14px;
    box-shadow:0 8px 20px rgba(240,94,100,.22);
}
.hero-points{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px;
    margin-top:20px;
}
.hero-points>div{
    display:flex;
    align-items:center;
    gap:12px;
}
.hero-points strong{
    color:var(--coral);
    font-size:1.8rem;
    font-weight:400;
}
.hero-points span{display:flex;flex-direction:column}
.hero-points small{color:#76635f;margin-top:3px}

.hero-visual{
    min-height:360px;
    display:flex;
    align-items:flex-end;
    justify-content:flex-end;
    padding:28px;
    background:
        radial-gradient(circle at 75% 30%,rgba(255,255,255,.72),transparent 26%),
        radial-gradient(circle at 60% 70%,rgba(255,239,233,.7),transparent 34%),
        linear-gradient(135deg,#ecd0c7,#ddb09e);
    position:relative;
}
.hero-visual::before{
    content:"";
    position:absolute;
    width:255px;
    height:255px;
    border-radius:50%;
    right:76px;
    top:28px;
    background:radial-gradient(circle,#fff8f5 0%,#f1cfc4 58%,rgba(226,176,157,.15) 70%);
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.6);
}
.hero-visual-card{
    position:relative;
    z-index:2;
    width:min(420px,100%);
    padding:22px 26px;
    border:1px solid rgba(255,255,255,.65);
    background:rgba(255,255,255,.42);
    backdrop-filter:blur(10px);
    border-radius:24px;
    box-shadow:var(--shadow);
}
.hero-visual-card strong{
    display:block;
    font:600 1.5rem/1.15 'Playfair Display',serif;
    margin:7px 0 12px;
}
.hero-visual-card small{color:#6f5851}
.hero-kicker{font-size:.75rem;letter-spacing:.22em;color:var(--coral-dark)}

.benefits{border-bottom:1px solid var(--line);background:#fff}
.benefits-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
}
.benefit{
    padding:22px 30px;
    display:flex;
    align-items:center;
    gap:18px;
    border-right:1px solid var(--line);
}
.benefit:last-child{border-right:0}
.benefit>span{font-size:1.55rem;color:var(--coral)}
.benefit div{display:flex;flex-direction:column;gap:4px}
.benefit small{color:#73615c}

.products-section{padding:54px 0 64px}
.section-heading{
    display:flex;
    justify-content:center;
    align-items:center;
    position:relative;
    margin-bottom:30px;
}
.section-heading h2{
    font:600 1.5rem/1.15 'Playfair Display',serif;
    margin:0;
}
.section-heading a{
    position:absolute;
    right:0;
    color:var(--coral);
    font-size:.93rem;
}
.products-grid{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:20px;
}
.product-image{
    height:230px;
    border-radius:10px;
    overflow:hidden;
    position:relative;
    display:grid;
    place-items:center;
    box-shadow:inset 0 0 0 1px rgba(80,40,35,.04);
}
.product-rose{background:linear-gradient(145deg,#e7c7ad,#f6e8d7)}
.product-cream{background:linear-gradient(145deg,#fff7eb,#efe0c9)}
.product-peach{background:linear-gradient(145deg,#eed4c9,#f9eee8)}
.product-blush{background:linear-gradient(145deg,#f6e7e3,#f0d7cc)}
.product-gold{background:linear-gradient(145deg,#ead6b9,#f7eee1)}
.badge{
    position:absolute;
    left:0;
    bottom:0;
    padding:6px 10px;
    background:#efb764;
    color:white;
    font-size:.66rem;
    font-weight:700;
}
.jewel-placeholder{
    width:118px;
    display:flex;
    justify-content:space-between;
}
.jewel-placeholder span{
    width:49px;height:92px;
    border:3px solid rgba(205,157,73,.8);
    border-radius:50% 50% 44% 44%;
    position:relative;
}
.jewel-placeholder span::before{
    content:"";
    position:absolute;
    width:32px;height:32px;
    border-radius:50%;
    background:rgba(245,177,178,.8);
    left:50%;top:24px;transform:translateX(-50%);
    box-shadow:0 22px 0 rgba(255,245,239,.82);
}
.product-info{
    padding:12px 2px 0;
    display:flex;
    justify-content:space-between;
    gap:12px;
}
.product-info h3{
    margin:0 0 6px;
    font:600 1.05rem 'Playfair Display',serif;
}
.product-info p{margin:0;font-weight:600}
.favorite{
    border:0;background:none;font-size:1.45rem;color:#6d3632;cursor:pointer;
}

.prefooter{
    background:linear-gradient(90deg,#fff4ef,#fde7df);
    border-top:1px solid #f3ddd6;
    padding:28px 0;
}
.prefooter-grid{
    display:grid;
    grid-template-columns:1.15fr .85fr 1.35fr;
    gap:48px;
    align-items:center;
}
.newsletter-copy{display:flex;gap:18px;align-items:center}
.newsletter-icon{
    width:58px;height:58px;border:2px solid #f28f74;border-radius:12px;
    display:grid;place-items:center;font-size:1.8rem;color:var(--coral);
}
.newsletter-copy h3{margin:0 0 4px;font:600 1.1rem 'Playfair Display',serif}
.newsletter-copy p{margin:0;line-height:1.45;color:#6c5954;font-size:.86rem}
.newsletter-form{display:grid;gap:9px}
.newsletter-form input{
    border:1px solid #f0ded7;border-radius:6px;padding:12px;background:#fff;
}
.newsletter-form button{
    border:0;border-radius:6px;padding:12px;background:var(--coral);color:white;cursor:pointer;
}
.instagram-block{display:flex;flex-direction:column;gap:4px;font-size:.82rem}
.instagram-strip{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin-top:8px}
.instagram-strip div{
    height:58px;border-radius:7px;
    background:
        radial-gradient(circle at 40% 40%,rgba(255,255,255,.72),transparent 16%),
        linear-gradient(135deg,#e9cdbf,#f9ece4);
}

.site-footer{padding:20px 0;background:#fff}
.footer-inner{
    display:flex;align-items:center;justify-content:space-between;gap:22px;
    font-size:.78rem;color:#66534f;
}
.footer-inner nav{display:flex;gap:30px}

@media (max-width:1100px){
    .header-inner{min-height:138px;grid-template-columns:175px 1fr auto}
    .brand{width:158px;height:126px}
    .main-nav{gap:28px}
    .hero-copy{padding-left:80px;margin-left:-80px}
    .products-grid{grid-template-columns:repeat(3,1fr)}
    .products-grid article:nth-child(n+4){display:none}
}

@media (max-width:820px){
    .container{width:min(100% - 28px,1320px)}
    .topbar-inner span:nth-child(2),.topbar-social{display:none}
    .topbar-inner{justify-content:center}
    .header-inner{min-height:112px;grid-template-columns:120px 1fr auto}
    .brand{width:108px;height:98px;margin:0}
    .main-nav{display:none;position:absolute;top:112px;left:0;right:0;background:white;flex-direction:column;padding:20px 28px;gap:10px;box-shadow:var(--shadow)}
    .main-nav.open{display:flex}
    .header-actions{display:none}
    .menu-toggle{display:block;justify-self:end}
    .hero-grid{grid-template-columns:1fr}
    .hero-copy{padding:42px 0 30px;margin-left:0}
    .hero-visual{min-height:285px;padding:20px}
    .hero-visual::before{width:260px;height:260px;right:20px;top:24px}
    .hero-points{grid-template-columns:1fr}
    .benefits-grid{grid-template-columns:1fr 1fr}
    .benefit:nth-child(2){border-right:0}
    .benefit{border-bottom:1px solid var(--line)}
    .products-grid{grid-template-columns:1fr 1fr}
    .products-grid article:nth-child(3){display:block}
    .section-heading{justify-content:space-between}
    .section-heading a{position:static}
    .prefooter-grid{grid-template-columns:1fr}
    .footer-inner{flex-direction:column;text-align:center}
}

@media (max-width:540px){
    .hero h1{font-size:2.5rem}
    .products-grid{grid-template-columns:1fr}
    .products-grid article{display:block!important}
    .product-image{height:280px}
    .benefits-grid{grid-template-columns:1fr}
    .benefit{border-right:0}
    .section-heading{align-items:flex-start;flex-direction:column;gap:8px}
}


/* V1.2 — séparation nette entre le logo et la bannière */
.site-header {
    overflow: visible;
}
.header-inner {
    position: relative;
}
.brand {
    height: 132px;
    display: flex;
    align-items: center;
}
.hero {
    position: relative;
    z-index: 1;
}


/* V1.3 — logo généreux + séparation nette avec la bannière */
.site-header {
    background: #fff;
    border-bottom: 1px solid #eadfda;
}

.header-inner {
    min-height: 166px;
}

.brand {
    width: 198px;
    height: 154px;
    margin: 0;
    overflow: visible;
}

.brand img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.hero {
    margin-top: 0;
    border-top: 0;
}

.hero-grid {
    min-height: 360px;
}

.hero-copy {
    min-height: 360px;
}

.hero-visual {
    min-height: 360px;
}


/* =========================================================
   V1.4 — LOGO PLUS GRAND ET BIEN ISOLE DU HERO
   ========================================================= */

@media (min-width: 1101px) {
    .header-inner {
        min-height: 196px;
        grid-template-columns: 250px 1fr auto;
    }

    .brand {
        width: 230px;
        height: 184px;
        margin: 0;
        align-self: center;
        justify-self: start;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .brand img {
        width: 230px;
        height: 184px;
        max-width: none;
        max-height: none;
        object-fit: contain;
        transform: scale(1.12);
        transform-origin: center;
    }

    .main-nav {
        align-self: center;
    }

    .header-actions {
        align-self: center;
    }

    /* La bannière reste compacte : on agrandit le header, pas le hero */
    .hero-grid,
    .hero-copy,
    .hero-visual {
        min-height: 360px;
    }
}

@media (min-width: 821px) and (max-width: 1100px) {
    .header-inner {
        min-height: 158px;
        grid-template-columns: 190px 1fr auto;
    }

    .brand {
        width: 172px;
        height: 146px;
        margin: 0;
    }

    .brand img {
        width: 172px;
        height: 146px;
        max-width: none;
        max-height: none;
        object-fit: contain;
        transform: scale(1.08);
    }
}


/* =========================================================
   V1.5 — GRAND LOGO EN CHEVAUCHEMENT SUR LE HERO
   ========================================================= */

@media (min-width: 1101px) {
    .site-header {
        overflow: visible;
        position: relative;
        z-index: 20;
    }

    .header-inner {
        min-height: 122px;
        grid-template-columns: 250px 1fr auto;
        position: relative;
    }

    .brand {
        position: absolute;
        left: 0;
        top: 8px;
        width: 245px;
        height: 245px;
        margin: 0;
        z-index: 30;
        display: flex;
        align-items: center;
        justify-content: center;
        pointer-events: auto;
    }

    .brand img {
        width: 245px;
        height: 245px;
        max-width: none;
        max-height: none;
        object-fit: contain;
        transform: none;
        filter: drop-shadow(0 8px 16px rgba(90,54,45,.10));
    }

    .main-nav {
        grid-column: 2;
        align-self: center;
    }

    .header-actions {
        grid-column: 3;
        align-self: center;
    }

    .hero {
        position: relative;
        z-index: 1;
    }

    .hero-copy {
        padding-left: 265px;
        margin-left: -180px;
    }

    .hero-grid,
    .hero-copy,
    .hero-visual {
        min-height: 360px;
    }
}

@media (min-width: 821px) and (max-width: 1100px) {
    .site-header {
        overflow: visible;
        position: relative;
        z-index: 20;
    }

    .header-inner {
        min-height: 112px;
        grid-template-columns: 200px 1fr auto;
        position: relative;
    }

    .brand {
        position: absolute;
        left: 0;
        top: 8px;
        width: 195px;
        height: 195px;
        margin: 0;
        z-index: 30;
    }

    .brand img {
        width: 195px;
        height: 195px;
        max-width: none;
        max-height: none;
        object-fit: contain;
        transform: none;
    }

    .main-nav {
        grid-column: 2;
    }

    .header-actions {
        grid-column: 3;
    }

    .hero-copy {
        padding-left: 210px;
        margin-left: -80px;
    }
}

@media (max-width: 820px) {
    .brand {
        position: static;
    }
}


/* =========================================================
   V1.6 — GRAND LOGO EN CHEVAUCHEMENT, SANS MASQUER LE TEXTE
   ========================================================= */

@media (min-width: 1101px) {

    /* On garde le menu fin */
    .header-inner {
        min-height: 122px;
        grid-template-columns: 250px 1fr auto;
    }

    /* Logo toujours grand et en chevauchement */
    .brand {
        position: absolute;
        left: 0;
        top: 8px;
        width: 245px;
        height: 245px;
        z-index: 30;
    }

    .brand img {
        width: 245px;
        height: 245px;
        object-fit: contain;
    }

    /*
       On donne un peu plus de largeur à la partie texte du hero.
       Cela permet de créer une vraie zone vide sous le logo
       sans écraser le titre.
    */
    .hero-grid {
        grid-template-columns: 55% 45%;
        min-height: 360px;
    }

    /*
       Le texte commence après la zone occupée par le logo.
       Le logo peut donc déborder visuellement sur le hero
       sans passer devant "BIJOUX FAITS MAIN" ni le titre.
    */
    .hero-copy {
        padding-left: 335px;
        padding-right: 34px;
        margin-left: -180px;
        min-height: 360px;
    }

    .hero h1 {
        font-size: clamp(2.25rem, 2.7vw, 3.45rem);
        line-height: 1.02;
        margin-top: 10px;
        margin-bottom: 12px;
    }

    .hero-copy > p {
        max-width: 520px;
        margin-top: 0;
        margin-bottom: 8px;
    }

    .btn-primary {
        margin-top: 10px;
    }

    .hero-points {
        margin-top: 20px;
        gap: 16px;
    }

    .hero-visual {
        min-height: 360px;
    }
}

/* Tablettes : même principe, mais avec des valeurs plus compactes */
@media (min-width: 821px) and (max-width: 1100px) {

    .brand {
        position: absolute;
        left: 0;
        top: 8px;
        width: 195px;
        height: 195px;
        z-index: 30;
    }

    .hero-grid {
        grid-template-columns: 56% 44%;
    }

    .hero-copy {
        padding-left: 245px;
        padding-right: 24px;
        margin-left: -80px;
    }

    .hero h1 {
        font-size: clamp(2rem, 3vw, 2.8rem);
    }
}


/* =========================================================
   V1.7 — COMPOSITION CALÉE SUR LA MAQUETTE DE RÉFÉRENCE
   Grand logo à gauche, chevauchement maîtrisé, texte dégagé.
   ========================================================= */

@media (min-width: 1101px) {

    .site-header {
        position: relative;
        z-index: 20;
        overflow: visible;
        background: #fff;
    }

    /* Menu fin : sa hauteur ne dépend plus du logo */
    .header-inner {
        min-height: 118px;
        grid-template-columns: 230px 1fr auto;
        position: relative;
    }

    /*
       Le logo est sorti du flux du menu.
       Il est légèrement décalé vers la gauche pour reproduire
       la composition de la maquette et éviter qu'il tombe
       au-dessus du texte du hero.
    */
    .brand {
        position: absolute;
        left: -32px;
        top: 8px;
        width: 245px;
        height: 245px;
        margin: 0;
        z-index: 40;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .brand img {
        display: block;
        width: 245px;
        height: 245px;
        max-width: none;
        max-height: none;
        object-fit: contain;
        transform: none;
    }

    .main-nav {
        grid-column: 2;
        align-self: center;
    }

    .header-actions {
        grid-column: 3;
        align-self: center;
    }

    /*
       IMPORTANT :
       on annule ici les anciens margin-left/padding hérités
       des versions précédentes.
    */
    .hero-grid {
        grid-template-columns: 55% 45%;
        min-height: 360px;
    }

    .hero-copy {
        min-height: 360px;
        margin: 0 !important;
        padding: 48px 34px 30px 200px !important;
        display: flex;
        flex-direction: column;
        justify-content: center;
    }

    .eyebrow {
        margin: 0 0 8px;
    }

    .hero h1 {
        margin: 0 0 13px;
        font-size: clamp(2.35rem, 2.8vw, 3.6rem);
        line-height: 1.03;
    }

    .hero-copy > p {
        max-width: 520px;
        margin: 0 0 12px;
    }

    .btn-primary {
        align-self: flex-start;
        margin-top: 4px;
    }

    .hero-points {
        margin-top: 22px;
        gap: 18px;
    }

    .hero-visual {
        min-height: 360px;
    }
}

/* Tablette : même logique, dimensions réduites */
@media (min-width: 821px) and (max-width: 1100px) {

    .site-header {
        position: relative;
        overflow: visible;
        z-index: 20;
    }

    .header-inner {
        min-height: 108px;
        grid-template-columns: 175px 1fr auto;
        position: relative;
    }

    .brand {
        position: absolute;
        left: -18px;
        top: 6px;
        width: 190px;
        height: 190px;
        margin: 0;
        z-index: 40;
    }

    .brand img {
        width: 190px;
        height: 190px;
        max-width: none;
        max-height: none;
        object-fit: contain;
        transform: none;
    }

    .hero-grid {
        grid-template-columns: 56% 44%;
    }

    .hero-copy {
        margin: 0 !important;
        padding: 42px 24px 28px 155px !important;
    }
}


/* =========================================================
   V1.8 — FOND BLANC COMPLET DERRIÈRE LE LOGO
   Le logo reste visuellement intact même lorsqu'il déborde
   sur la bannière rose.
   ========================================================= */

@media (min-width: 1101px) {

    .site-header {
        position: relative;
        z-index: 30;
        overflow: visible;
        background: #fff;
        border-bottom: 0;
    }

    .header-inner {
        position: relative;
        min-height: 118px;
        grid-template-columns: 230px 1fr auto;
    }

    /*
       Le bloc du logo devient une "pastille" blanche.
       Elle suit le logo lorsqu'il déborde sur le hero,
       ce qui évite que la moitié inférieure prenne la
       couleur rose de la bannière.
    */
    .brand {
        position: absolute;
        left: -32px;
        top: 8px;
        width: 245px;
        height: 245px;
        z-index: 50;
        margin: 0;
        border-radius: 50%;
        background: #fff;
        display: flex;
        align-items: center;
        justify-content: center;
        box-shadow: none;
    }

    .brand img {
        position: relative;
        z-index: 2;
        width: 245px;
        height: 245px;
        max-width: none;
        max-height: none;
        object-fit: contain;
        display: block;
    }

    /*
       Petit disque blanc légèrement plus grand que le PNG :
       il garantit qu'aucun trait ou fond du hero ne puisse
       apparaître à travers les zones transparentes du logo.
    */
    .brand::before {
        content: "";
        position: absolute;
        inset: 4px;
        border-radius: 50%;
        background: #fff;
        z-index: 1;
    }

    /*
       On supprime toute ligne de séparation sous le header
       dans la zone du logo.
    */
    .site-header::after {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        bottom: -1px;
        height: 1px;
        background: #eadfda;
        z-index: 1;
    }

    /*
       Masque blanc local sous le logo pour que le trait
       de séparation ne traverse jamais le visuel.
    */
    .header-inner::before {
        content: "";
        position: absolute;
        left: -42px;
        top: 0;
        width: 270px;
        height: 250px;
        background: #fff;
        border-radius: 50%;
        z-index: 5;
        pointer-events: none;
    }

    .brand {
        z-index: 10;
    }

    .main-nav,
    .header-actions {
        position: relative;
        z-index: 20;
    }

    .hero {
        position: relative;
        z-index: 1;
        border-top: 0 !important;
    }

    .hero-grid {
        grid-template-columns: 55% 45%;
        min-height: 360px;
    }

    .hero-copy {
        margin: 0 !important;
        padding: 48px 34px 30px 200px !important;
        min-height: 360px;
    }

    .hero-visual {
        min-height: 360px;
    }
}


/* Tablette : même principe avec un disque blanc réduit */
@media (min-width: 821px) and (max-width: 1100px) {

    .site-header {
        border-bottom: 0;
    }

    .brand {
        position: absolute;
        left: -18px;
        top: 6px;
        width: 190px;
        height: 190px;
        border-radius: 50%;
        background: #fff;
        z-index: 50;
    }

    .brand::before {
        content: "";
        position: absolute;
        inset: 3px;
        border-radius: 50%;
        background: #fff;
        z-index: 1;
    }

    .brand img {
        position: relative;
        z-index: 2;
    }

    .header-inner::before {
        content: "";
        position: absolute;
        left: -26px;
        top: 0;
        width: 208px;
        height: 198px;
        border-radius: 50%;
        background: #fff;
        z-index: 5;
        pointer-events: none;
    }

    .brand {
        z-index: 10;
    }

    .main-nav,
    .header-actions {
        position: relative;
        z-index: 20;
    }

    .hero {
        border-top: 0 !important;
    }
}


/* =========================================================
   V1.9 — FOND BLANC AJUSTÉ AU CERCLE DU LOGO
   ========================================================= */

@media (min-width: 1101px) {

    /*
       On retire le grand masque blanc de la V1.8.
       Il dépassait trop autour du logo.
    */
    .header-inner::before {
        display: none !important;
        content: none !important;
    }

    /*
       Le conteneur ne porte plus lui-même un gros disque blanc.
       Seul ::before crée le fond nécessaire.
    */
    .brand {
        background: transparent !important;
        border-radius: 0;
    }

    /*
       Fond blanc resserré :
       - légèrement plus petit que le PNG complet ;
       - centré derrière l'anneau doré ;
       - suffisant pour empêcher le rose de traverser ;
       - sans gros halo blanc autour des fleurs.
    */
    .brand::before {
        content: "";
        position: absolute;
        width: 205px;
        height: 205px;
        left: 20px;
        top: 20px;
        border-radius: 50%;
        background: #fff;
        z-index: 1;
        pointer-events: none;
    }

    .brand img {
        position: relative;
        z-index: 2;
    }

    /*
       On masque uniquement le petit morceau de trait qui
       passerait réellement derrière le logo, sans créer
       une grande forme blanche supplémentaire.
    */
    .site-header::after {
        left: 0;
        right: 0;
        z-index: 1;
    }

    .brand::after {
        content: "";
        position: absolute;
        left: 12px;
        right: 12px;
        top: 109px;
        height: 4px;
        background: #fff;
        z-index: 1;
        pointer-events: none;
    }
}

@media (min-width: 821px) and (max-width: 1100px) {

    .header-inner::before {
        display: none !important;
        content: none !important;
    }

    .brand {
        background: transparent !important;
        border-radius: 0;
    }

    .brand::before {
        content: "";
        position: absolute;
        width: 160px;
        height: 160px;
        left: 15px;
        top: 15px;
        border-radius: 50%;
        background: #fff;
        z-index: 1;
        pointer-events: none;
    }

    .brand img {
        position: relative;
        z-index: 2;
    }
}


/* =========================================================
   V1.10 — PAGE BOUTIQUE
   ========================================================= */

.shop-page {
    padding: 58px 0 78px;
    background: #fff;
}

main > section.be-standard-page {
    background: var(--white);
}

.shop-heading,
.be-page-heading {
    margin-bottom: 42px;
    padding-left: 4px;
}

.shop-heading h1,
.be-page-heading h1 {
    margin: 8px 0 10px;
    font: 600 clamp(2.4rem, 3vw, 3.5rem)/1.05 'Playfair Display', serif;
    color: var(--brown);
}

.shop-heading p,
.be-page-heading > p {
    max-width: none;
    width: 100%;
    margin: 0;
    color: var(--muted);
    line-height: 1.65;
}

.shop-layout {
    display: grid;
    grid-template-columns: 230px 1fr;
    gap: 48px;
    align-items: start;
}

.shop-sidebar {
    position: sticky;
    top: 20px;
}

.filter-block {
    padding: 0 0 28px;
    margin-bottom: 28px;
    border-bottom: 1px solid var(--line);
}

.filter-block:last-child {
    border-bottom: 0;
}

.filter-block h2 {
    margin: 0 0 16px;
    font: 600 1.05rem 'Playfair Display', serif;
}

.category-list {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.category-list a {
    display: block;
    padding: 10px 12px;
    border-radius: 6px;
    color: #6e5d58;
    font-size: .92rem;
    transition: .2s ease;
}

.category-list a:hover {
    background: var(--peach-soft);
    color: var(--coral-dark);
}

.category-list a.active {
    background: #fff0eb;
    color: var(--coral-dark);
    font-weight: 600;
}

.price-filter input[type="range"] {
    width: 100%;
    accent-color: var(--coral);
}

.price-values {
    display: flex;
    justify-content: space-between;
    margin-top: 8px;
    color: var(--muted);
    font-size: .78rem;
}

.check-line {
    display: flex;
    align-items: center;
    gap: 9px;
    color: #6e5d58;
    font-size: .9rem;
    cursor: pointer;
}

.check-line input {
    accent-color: var(--coral);
}

.shop-toolbar {
    min-height: 52px;
    margin-bottom: 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 18px;
    color: var(--muted);
    font-size: .82rem;
}

.shop-toolbar label {
    display: flex;
    align-items: center;
    gap: 10px;
}

.shop-toolbar select {
    min-width: 165px;
    padding: 10px 34px 10px 12px;
    border: 1px solid var(--line);
    border-radius: 6px;
    background: #fff;
    color: var(--brown);
}

.shop-products-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 30px 20px;
}

.shop-products-grid .product-image {
    height: 215px;
}

.product-category {
    display: block;
    margin-bottom: 5px;
    color: #a08b84;
    font-size: .7rem;
}

.pagination {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 42px;
}

.pagination a {
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border: 1px solid var(--line);
    border-radius: 6px;
    font-size: .86rem;
}

.pagination a.active {
    background: var(--coral);
    border-color: var(--coral);
    color: #fff;
}

@media (max-width: 1100px) {
    .shop-layout {
        grid-template-columns: 190px 1fr;
        gap: 30px;
    }

    .shop-products-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 820px) {
    .shop-page {
        padding-top: 42px;
    }

    .shop-layout {
        grid-template-columns: 1fr;
    }

    .shop-sidebar {
        position: static;
        display: grid;
        grid-template-columns: repeat(2, 1fr);
        gap: 18px;
    }

    .filter-block {
        padding: 18px;
        margin: 0;
        border: 1px solid var(--line);
        border-radius: 10px;
    }

    .shop-toolbar {
        align-items: flex-start;
        flex-direction: column;
    }

    .shop-products-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 540px) {
    .shop-sidebar {
        grid-template-columns: 1fr;
    }

    .shop-products-grid {
        grid-template-columns: 1fr;
    }

    .shop-products-grid .product-image {
        height: 285px;
    }
}


/* =========================================================
   V1.11 — ZONE DE SÉCURITÉ SOUS LE GRAND LOGO
   Sur toutes les pages internes, le premier contenu commence
   suffisamment bas pour ne jamais passer derrière le logo.
   La page d'accueil n'est pas concernée : son hero possède
   déjà son propre positionnement.
   ========================================================= */

/* Ordinateur */
@media (min-width: 1101px) {

    /*
       Le logo déborde d'environ 125 px sous le header.
       On réserve donc une vraie zone libre avant le contenu
       des pages Boutique / Produit / Panier / À propos / Contact.
    */
    main > section:first-child:not(.hero) {
        padding-top: 145px !important;
    }

    /*
       La page Boutique avait son propre padding supérieur.
       On le neutralise ici au profit de la règle commune.
    */
    .shop-page {
        padding-top: 145px !important;
    }

    /*
       Le titre reste aligné avec le contenu normal de la page :
       aucun décalage horizontal artificiel.
    */
    .shop-heading {
        padding-left: 4px;
        margin-top: 0;
    }
}

/* Tablette */
@media (min-width: 821px) and (max-width: 1100px) {

    main > section:first-child:not(.hero) {
        padding-top: 115px !important;
    }

    .shop-page {
        padding-top: 115px !important;
    }
}

/* Mobile :
   le logo revient dans le flux du header, donc inutile
   de conserver une grande zone vide.
*/
@media (max-width: 820px) {

    main > section:first-child:not(.hero) {
        padding-top: 46px !important;
    }

    .shop-page {
        padding-top: 46px !important;
    }
}


/* =========================================================
   V1.12 — FICHE PRODUIT
   ========================================================= */

.product-page {
    padding-bottom: 86px;
    background: #fff;
}

.breadcrumb {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin-bottom: 34px;
    color: #9a827a;
    font-size: .78rem;
}

.breadcrumb a:hover {
    color: var(--coral);
}

.product-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(420px, .95fr);
    gap: 70px;
    align-items: start;
}

.product-gallery {
    display: grid;
    grid-template-columns: 82px 1fr;
    gap: 18px;
}

.product-thumbs {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.thumb {
    width: 82px;
    height: 88px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: #fff8f4;
    display: grid;
    place-items: center;
    cursor: pointer;
    transition: .2s ease;
}

.thumb:hover,
.thumb.active {
    border-color: var(--coral);
    box-shadow: 0 0 0 2px rgba(240,94,100,.08);
}

.mini-jewel {
    width: 26px;
    height: 48px;
    border: 2px solid rgba(205,157,73,.85);
    border-radius: 50%;
    position: relative;
}

.mini-jewel::after {
    content: "";
    position: absolute;
    width: 19px;
    height: 19px;
    border-radius: 50%;
    background: rgba(245,177,178,.9);
    left: 50%;
    top: 13px;
    transform: translateX(-50%);
}

.mini-portrait {
    width: 48px;
    height: 58px;
    border-radius: 50% 50% 42% 42%;
    background: linear-gradient(145deg,#edc4b1,#f9e2d9);
}

.product-main-image {
    min-height: 535px;
    border-radius: 14px;
    overflow: hidden;
    position: relative;
    display: grid;
    place-items: center;
    box-shadow: inset 0 0 0 1px rgba(80,40,35,.05);
}

.large-jewel-placeholder {
    width: 220px;
    display: flex;
    justify-content: space-between;
}

.large-jewel-placeholder > span {
    width: 92px;
    height: 178px;
    border: 5px solid rgba(205,157,73,.86);
    border-radius: 48% 48% 44% 44%;
    position: relative;
}

.large-jewel-placeholder > span::before {
    content: "";
    position: absolute;
    width: 70px;
    height: 70px;
    border-radius: 50%;
    background: rgba(245,177,178,.88);
    left: 50%;
    top: 47px;
    transform: translateX(-50%);
    box-shadow: 0 54px 0 rgba(255,245,239,.86);
}

.product-detail {
    padding-top: 12px;
}

.product-detail h1 {
    margin: 10px 0 8px;
    font: 600 clamp(2.7rem, 3.6vw, 4.2rem)/1 'Playfair Display', serif;
    color: var(--brown);
}

.product-price {
    margin-bottom: 20px;
    color: var(--coral-dark);
    font: 600 1.5rem 'DM Sans', sans-serif;
}

.product-intro {
    max-width: 650px;
    margin: 0 0 26px;
    line-height: 1.7;
    color: #66534f;
}

.product-highlights {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    padding: 20px 0 24px;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.product-highlights > div {
    display: grid;
    grid-template-columns: 34px 1fr;
    column-gap: 8px;
    align-items: center;
}

.product-highlights > div > span {
    grid-row: 1 / span 2;
    color: var(--coral);
    font-size: 1.5rem;
}

.product-highlights strong {
    font-size: .83rem;
}

.product-highlights small {
    color: #89736c;
    font-size: .72rem;
}

.purchase-row {
    display: grid;
    grid-template-columns: 118px minmax(220px,1fr) 50px;
    gap: 12px;
    margin: 28px 0;
}

.quantity-box {
    display: grid;
    grid-template-columns: 34px 1fr 34px;
    border: 1px solid var(--line);
    border-radius: 8px;
    overflow: hidden;
}

.quantity-box button,
.quantity-box input {
    border: 0;
    background: #fff;
    text-align: center;
}

.quantity-box input {
    width: 100%;
    min-width: 0;
    -moz-appearance: textfield;
}

.quantity-box input::-webkit-outer-spin-button,
.quantity-box input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.qty-btn {
    cursor: pointer;
    color: var(--brown);
}

.add-to-cart {
    border: 0;
    border-radius: 8px;
    background: linear-gradient(90deg,var(--coral),#fa7275);
    color: #fff;
    font-weight: 600;
    cursor: pointer;
    box-shadow: 0 8px 20px rgba(240,94,100,.16);
}

.product-favorite {
    border: 1px solid var(--coral);
    border-radius: 8px;
    background: #fff;
    color: var(--coral);
    font-size: 1.5rem;
    cursor: pointer;
}

.product-accordions {
    border-top: 1px solid var(--line);
}

.product-accordions details {
    border-bottom: 1px solid var(--line);
}

.product-accordions summary {
    padding: 18px 2px;
    cursor: pointer;
    font-weight: 600;
    list-style: none;
    position: relative;
}

.product-accordions summary::-webkit-details-marker {
    display: none;
}

.product-accordions summary::after {
    content: "+";
    position: absolute;
    right: 4px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--coral);
    font-size: 1.2rem;
}

.product-accordions details[open] summary::after {
    content: "−";
}

.product-accordions details p,
.product-accordions details ul {
    margin: -4px 0 18px;
    padding-right: 28px;
    color: #76635f;
    line-height: 1.65;
    font-size: .9rem;
}

.product-accordions details ul {
    padding-left: 20px;
}

@media (max-width: 1100px) {
    .product-detail-grid {
        grid-template-columns: 1fr 1fr;
        gap: 38px;
    }

    .product-main-image {
        min-height: 460px;
    }

    .product-highlights {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 820px) {
    .product-detail-grid {
        grid-template-columns: 1fr;
    }

    .product-gallery {
        grid-template-columns: 1fr;
    }

    .product-thumbs {
        order: 2;
        flex-direction: row;
    }

    .product-main-image {
        min-height: 430px;
    }

    .product-detail {
        padding-top: 0;
    }
}

@media (max-width: 540px) {
    .product-main-image {
        min-height: 360px;
    }

    .thumb {
        width: 68px;
        height: 72px;
    }

    .purchase-row {
        grid-template-columns: 1fr 50px;
    }

    .quantity-box {
        grid-column: 1 / -1;
        height: 46px;
    }

    .add-to-cart,
    .product-favorite {
        min-height: 48px;
    }
}


/* =========================================================
   V1.13 — PANIER
   ========================================================= */

.cart-page {
    padding-bottom: 86px;
    background: #fff;
}

.cart-heading {
    margin-bottom: 42px;
}

.cart-heading h1 {
    margin: 8px 0 10px;
    font: 600 clamp(2.5rem, 3.2vw, 3.8rem)/1.05 'Playfair Display', serif;
}

.cart-heading p {
    margin: 0;
    color: var(--muted);
}

.cart-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) minmax(340px, .55fr);
    gap: 54px;
    align-items: start;
}

.cart-items {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.cart-item {
    display: grid;
    grid-template-columns: 160px 1fr;
    gap: 24px;
    padding: 0 0 28px;
    margin-bottom: 28px;
    border-bottom: 1px solid var(--line);
}

.cart-product-image {
    height: 160px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    overflow: hidden;
}

.cart-jewel-placeholder {
    width: 80px;
    display: flex;
    justify-content: space-between;
}

.cart-jewel-placeholder span {
    width: 34px;
    height: 68px;
    border: 3px solid rgba(205,157,73,.85);
    border-radius: 48%;
    position: relative;
}

.cart-jewel-placeholder span::after {
    content: "";
    position: absolute;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: rgba(245,177,178,.88);
    left: 50%;
    top: 20px;
    transform: translateX(-50%);
}

.cart-product-info {
    min-width: 0;
}

.cart-product-topline {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: start;
}

.cart-product-topline small {
    color: #a08b84;
    font-size: .72rem;
}

.cart-product-topline h2 {
    margin: 4px 0 0;
    font: 600 1.35rem 'Playfair Display', serif;
}

.remove-item {
    width: 34px;
    height: 34px;
    border: 0;
    background: transparent;
    color: #9b7c74;
    font-size: 1.6rem;
    cursor: pointer;
}

.cart-product-desc {
    margin: 12px 0 26px;
    color: #76635f;
    line-height: 1.55;
    font-size: .9rem;
}

.cart-item-bottom {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 20px;
}

.cart-quantity {
    width: 118px;
    height: 42px;
}

.cart-price {
    font-size: 1.08rem;
}

.continue-shopping {
    align-self: flex-start;
    margin-top: 2px;
    color: var(--coral-dark);
    font-size: .9rem;
}

.cart-summary {
    position: sticky;
    top: 26px;
    padding: 28px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: linear-gradient(180deg,#fffaf8,#fff);
    box-shadow: var(--shadow);
}

.cart-summary h2 {
    margin: 0 0 24px;
    font: 600 1.55rem 'Playfair Display', serif;
}

.summary-line {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 11px 0;
    color: #6f5b56;
}

.free-shipping {
    color: var(--coral-dark);
}

.shipping-progress {
    margin: 18px 0 24px;
    padding: 14px 0 18px;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.shipping-progress-top {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 10px;
    font-size: .78rem;
}

.shipping-progress-top strong {
    color: var(--coral-dark);
}

.shipping-bar {
    height: 7px;
    border-radius: 999px;
    background: #f1e2dc;
    overflow: hidden;
}

.shipping-bar span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg,var(--coral),#fa8b7e);
}

.promo-box {
    margin: 4px 0 24px;
}

.promo-box label {
    display: block;
    margin-bottom: 8px;
    font-size: .82rem;
    font-weight: 600;
}

.promo-box > div {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 8px;
}

.promo-box input {
    min-width: 0;
    padding: 11px 12px;
    border: 1px solid var(--line);
    border-radius: 7px;
    background: #fff;
}

.promo-box button {
    border: 1px solid var(--coral);
    border-radius: 7px;
    background: #fff;
    color: var(--coral-dark);
    padding: 0 14px;
    cursor: pointer;
}

.summary-total {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 20px;
    padding-top: 20px;
    border-top: 1px solid var(--line);
    font-size: 1.08rem;
}

.summary-total strong {
    font: 600 1.55rem 'Playfair Display', serif;
}

.tax-note {
    display: block;
    margin-top: 7px;
    color: #9b8780;
    line-height: 1.45;
}

.checkout-btn {
    margin-top: 22px;
    min-height: 52px;
    border-radius: 8px;
    background: linear-gradient(90deg,var(--coral),#fa7275);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 18px;
    font-weight: 600;
    box-shadow: 0 8px 20px rgba(240,94,100,.17);
}

.secure-note {
    display: flex;
    gap: 10px;
    align-items: center;
    justify-content: center;
    margin-top: 18px;
    color: #79655f;
}

.secure-note > span {
    color: var(--coral);
    font-size: 1.4rem;
}

.secure-note div {
    display: flex;
    flex-direction: column;
    font-size: .76rem;
}

.secure-note small {
    color: #9b8780;
    margin-top: 2px;
}

.cart-reassurance {
    margin-top: 64px;
    padding: 26px 0;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

.cart-reassurance > div {
    min-height: 58px;
    padding: 0 24px;
    display: grid;
    grid-template-columns: 42px 1fr;
    align-items: center;
    border-right: 1px solid var(--line);
}

.cart-reassurance > div:last-child {
    border-right: 0;
}

.cart-reassurance span {
    grid-row: 1 / span 2;
    color: var(--coral);
    font-size: 1.55rem;
}

.cart-reassurance strong {
    font-size: .86rem;
}

.cart-reassurance small {
    color: #89736c;
    font-size: .76rem;
}

@media (max-width: 980px) {
    .cart-layout {
        grid-template-columns: 1fr;
    }

    .cart-summary {
        position: static;
    }
}

@media (max-width: 620px) {
    .cart-item {
        grid-template-columns: 105px 1fr;
        gap: 16px;
    }

    .cart-product-image {
        height: 115px;
    }

    .cart-product-desc {
        margin-bottom: 16px;
    }

    .cart-item-bottom {
        align-items: flex-end;
        flex-direction: column-reverse;
    }

    .cart-quantity {
        align-self: flex-start;
    }

    .cart-summary {
        padding: 22px;
    }

    .cart-reassurance {
        grid-template-columns: 1fr;
    }

    .cart-reassurance > div {
        padding: 16px 4px;
        border-right: 0;
        border-bottom: 1px solid var(--line);
    }

    .cart-reassurance > div:last-child {
        border-bottom: 0;
    }
}


/* =========================================================
   V1.14 — HERO ACCUEIL AVEC VRAIE IMAGE
   Le grand logo V1.9+ reste inchangé.
   ========================================================= */

.hero-visual {
    position: relative;
    overflow: hidden;
    padding: 0 !important;
    background: #efd1c5;
    min-height: 360px;
}

.hero-photo {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center center;
}

/* Suppression définitive des éléments graphiques provisoires
   qui composaient auparavant le bloc rose de droite. */
.hero-visual::before,
.hero-visual-card {
    display: none !important;
}

/* Le fond de gauche reste très doux pour faire la transition
   avec la photographie et conserver l'esprit de la maquette. */
.hero {
    background: linear-gradient(
        90deg,
        #fff8f5 0%,
        #fffaf8 49%,
        #efd1c5 49%,
        #efd1c5 100%
    );
}

@media (min-width: 1101px) {
    .hero-grid,
    .hero-copy,
    .hero-visual {
        min-height: 360px;
    }

    .hero-photo {
        object-position: 50% 50%;
    }
}

@media (min-width: 821px) and (max-width: 1100px) {
    .hero-photo {
        object-position: 48% 50%;
    }
}

@media (max-width: 820px) {
    .hero {
        background: #fff8f5;
    }

    .hero-visual {
        min-height: 300px;
    }

    .hero-photo {
        position: absolute;
        object-position: 50% 45%;
    }
}

@media (max-width: 540px) {
    .hero-visual {
        min-height: 275px;
    }

    .hero-photo {
        object-position: 48% 50%;
    }
}


/* =========================================================
   V1.15 — ACCUEIL PLUS COMPACT
   Objectif : voir les Nouveautés dès l'arrivée sur la page.
   ========================================================= */

@media (min-width: 1101px) {

    /* Hero nettement moins haut */
    .hero-grid,
    .hero-copy,
    .hero-visual {
        min-height: 300px !important;
    }

    /* On compacte légèrement le contenu sans le rendre tassé */
    .hero-copy {
        padding-top: 26px !important;
        padding-bottom: 22px !important;
    }

    .hero h1 {
        font-size: clamp(2.2rem, 2.55vw, 3.25rem) !important;
        line-height: 1.01 !important;
        margin-bottom: 10px !important;
    }

    .hero-copy > p {
        line-height: 1.55 !important;
        margin-bottom: 8px !important;
    }

    .btn-primary {
        margin-top: 5px !important;
        padding: 13px 24px !important;
    }

    .hero-points {
        margin-top: 14px !important;
        gap: 14px !important;
    }

    .hero-points strong {
        font-size: 1.55rem !important;
    }

    /* La photo reste bien cadrée malgré la réduction de hauteur */
    .hero-photo {
        object-position: 50% 48% !important;
    }

    /* Barre des avantages plus fine */
    .benefit {
        padding-top: 15px !important;
        padding-bottom: 15px !important;
    }

    /* Les nouveautés remontent nettement */
    .products-section {
        padding-top: 30px !important;
        padding-bottom: 52px !important;
    }

    .section-heading {
        margin-bottom: 22px !important;
    }
}

@media (min-width: 821px) and (max-width: 1100px) {
    .hero-grid,
    .hero-copy,
    .hero-visual {
        min-height: 320px !important;
    }

    .hero-copy {
        padding-top: 30px !important;
        padding-bottom: 24px !important;
    }

    .hero h1 {
        font-size: clamp(2.1rem, 3vw, 2.9rem) !important;
    }

    .hero-points {
        margin-top: 16px !important;
    }

    .benefit {
        padding-top: 16px !important;
        padding-bottom: 16px !important;
    }

    .products-section {
        padding-top: 32px !important;
    }
}


/* =========================================================
   V1.16 — ACCUEIL ENCORE PLUS COMPACT
   Hero ≈ 245 px : les cartes Nouveautés doivent être visibles
   dès le premier écran sur un affichage desktop classique.
   ========================================================= */

@media (min-width: 1101px) {

    .hero-grid,
    .hero-copy,
    .hero-visual {
        min-height: 245px !important;
        height: 245px !important;
    }

    .hero-copy {
        padding-top: 18px !important;
        padding-bottom: 14px !important;
        justify-content: center !important;
    }

    .eyebrow {
        margin-bottom: 5px !important;
        font-size: .72rem !important;
    }

    .hero h1 {
        font-size: clamp(2rem, 2.3vw, 2.9rem) !important;
        line-height: .98 !important;
        margin: 0 0 8px !important;
    }

    .hero-copy > p {
        max-width: 520px !important;
        font-size: .88rem !important;
        line-height: 1.42 !important;
        margin-bottom: 6px !important;
    }

    .btn-primary {
        margin-top: 4px !important;
        padding: 11px 22px !important;
        min-height: 0 !important;
    }

    .hero-points {
        margin-top: 10px !important;
        gap: 12px !important;
    }

    .hero-point {
        min-height: 38px !important;
    }

    .hero-point > span {
        font-size: 1.3rem !important;
    }

    .hero-point strong {
        font-size: .80rem !important;
    }

    .hero-point small {
        font-size: .69rem !important;
    }

    /* Cadrage adapté au bandeau plus horizontal */
    .hero-photo {
        object-position: 50% 43% !important;
    }

    /* Barre de services plus basse */
    .benefits-bar {
        min-height: 58px !important;
    }

    .benefit {
        min-height: 58px !important;
        padding-top: 9px !important;
        padding-bottom: 9px !important;
    }

    .benefit strong {
        font-size: .79rem !important;
    }

    .benefit small {
        font-size: .68rem !important;
    }

    /* On rapproche encore les nouveautés */
    .products-section {
        padding-top: 20px !important;
        padding-bottom: 46px !important;
    }

    .section-heading {
        margin-bottom: 16px !important;
    }

    .section-heading h2 {
        margin-top: 0 !important;
        margin-bottom: 0 !important;
    }
}


/* =========================================================
   V1.17 — HARMONISATION VISUELLE DE L'ACCUEIL
   Objectif : moins de fouillis, meilleure hiérarchie,
   tailles de textes cohérentes et alignements plus propres.
   ========================================================= */

@media (min-width: 1101px) {

    /* ---------- HEADER / MENU ---------- */

    .main-nav {
        gap: 40px !important;
        font-size: 1rem !important;
    }

    .main-nav a {
        padding-top: 14px !important;
        padding-bottom: 10px !important;
    }


    /* ---------- HERO ---------- */

    .hero-copy {
        padding-top: 16px !important;
        padding-bottom: 14px !important;
    }

    .eyebrow {
        font-size: .70rem !important;
        letter-spacing: .21em !important;
        margin-bottom: 5px !important;
    }

    .hero h1 {
        font-size: clamp(2rem, 2.15vw, 2.75rem) !important;
        line-height: 1 !important;
        letter-spacing: -.025em !important;
        margin-bottom: 8px !important;
    }

    .hero-copy > p {
        max-width: 500px !important;
        font-size: .84rem !important;
        line-height: 1.46 !important;
        color: #675550 !important;
        margin-bottom: 6px !important;
    }

    .btn-primary {
        font-size: .82rem !important;
        padding: 10px 20px !important;
        gap: 14px !important;
    }

    /*
       Les trois arguments sous le bouton deviennent plus réguliers
       et moins "empilés" visuellement.
    */
    .hero-points {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        margin-top: 12px !important;
        gap: 18px !important;
        align-items: center !important;
    }

    .hero-points > div {
        min-width: 0 !important;
        gap: 9px !important;
        align-items: center !important;
    }

    .hero-points strong {
        flex: 0 0 auto !important;
        width: 25px !important;
        font-size: 1.32rem !important;
        line-height: 1 !important;
        text-align: center !important;
    }

    .hero-points span {
        min-width: 0 !important;
    }

    .hero-points b {
        font-size: .78rem !important;
        line-height: 1.15 !important;
        white-space: nowrap !important;
    }

    .hero-points small {
        font-size: .65rem !important;
        line-height: 1.2 !important;
        margin-top: 2px !important;
        white-space: nowrap !important;
    }


    /* ---------- BARRE DE RÉASSURANCE ---------- */

    .benefits-grid {
        align-items: stretch !important;
    }

    .benefit {
        min-height: 56px !important;
        padding: 10px 22px !important;
        gap: 12px !important;
        justify-content: center !important;
    }

    .benefit > span {
        flex: 0 0 auto !important;
        width: 28px !important;
        font-size: 1.25rem !important;
        text-align: center !important;
    }

    .benefit div {
        gap: 1px !important;
    }

    .benefit strong {
        font-size: .76rem !important;
        line-height: 1.15 !important;
    }

    .benefit small {
        font-size: .64rem !important;
        line-height: 1.2 !important;
        color: #7a6862 !important;
    }


    /* ---------- NOUVEAUTÉS ---------- */

    .products-section {
        padding-top: 18px !important;
        padding-bottom: 42px !important;
    }

    .section-heading {
        margin-bottom: 16px !important;
        min-height: 28px !important;
    }

    .section-heading h2 {
        font-size: 1.55rem !important;
        line-height: 1.1 !important;
    }

    .section-heading a {
        font-size: .76rem !important;
    }

    .products-grid {
        gap: 18px !important;
    }

    .product-image {
        height: 205px !important;
        border-radius: 9px !important;
    }

    .badge {
        padding: 5px 8px !important;
        font-size: .59rem !important;
    }

    .product-info {
        padding-top: 9px !important;
        align-items: flex-start !important;
    }

    .product-info h3 {
        margin-bottom: 4px !important;
        font-size: .94rem !important;
        line-height: 1.2 !important;
    }

    .product-info p {
        font-size: .84rem !important;
        line-height: 1.2 !important;
    }

    .favorite {
        margin-top: 1px !important;
        font-size: 1.2rem !important;
    }
}

/* Tablette : même logique d'harmonisation */
@media (min-width: 821px) and (max-width: 1100px) {

    .main-nav {
        font-size: .96rem !important;
    }

    .hero h1 {
        font-size: clamp(2rem, 2.7vw, 2.7rem) !important;
    }

    .hero-copy > p {
        font-size: .84rem !important;
        line-height: 1.45 !important;
    }

    .hero-points b {
        font-size: .76rem !important;
    }

    .hero-points small {
        font-size: .64rem !important;
    }

    .benefit strong {
        font-size: .74rem !important;
    }

    .benefit small {
        font-size: .63rem !important;
    }

    .section-heading h2 {
        font-size: 1.5rem !important;
    }

    .product-info h3 {
        font-size: .92rem !important;
    }

    .product-info p {
        font-size: .82rem !important;
    }
}


/* =========================================================
   V1.18 — HERO PLUS AÉRÉ ET PLUS LISIBLE
   Objectif : conserver un accueil compact sans donner
   l'impression que tous les éléments sont entassés.
   ========================================================= */

@media (min-width: 1101px) {

    /* Un peu plus de place au texte, un peu moins à la photo */
    .hero-grid {
        grid-template-columns: 58% 42% !important;
        min-height: 258px !important;
        height: 258px !important;
    }

    .hero-copy,
    .hero-visual {
        min-height: 258px !important;
        height: 258px !important;
    }

    /* Respiration interne plus propre */
    .hero-copy {
        padding-top: 18px !important;
        padding-right: 42px !important;
        padding-bottom: 16px !important;
        justify-content: center !important;
    }

    .eyebrow {
        margin-bottom: 7px !important;
    }

    /* Titre légèrement moins large et mieux posé */
    .hero h1 {
        max-width: 650px !important;
        font-size: clamp(1.95rem, 2.05vw, 2.65rem) !important;
        line-height: 1.02 !important;
        margin-bottom: 10px !important;
    }

    /* Description plus courte visuellement, donc plus lisible */
    .hero-copy > p {
        max-width: 470px !important;
        font-size: .82rem !important;
        line-height: 1.5 !important;
        margin-bottom: 8px !important;
    }

    /* Bouton moins collé au texte */
    .btn-primary {
        margin-top: 3px !important;
        margin-bottom: 2px !important;
        padding: 10px 20px !important;
    }

    /*
       Les 3 arguments deviennent une vraie ligne indépendante :
       davantage d'espace au-dessus et entre chaque bloc.
    */
    .hero-points {
        margin-top: 15px !important;
        padding-top: 0 !important;
        gap: 24px !important;
        grid-template-columns: repeat(3, minmax(120px, 1fr)) !important;
        max-width: 610px !important;
    }

    .hero-points > div {
        gap: 10px !important;
        min-width: 0 !important;
    }

    .hero-points strong {
        width: 24px !important;
        font-size: 1.22rem !important;
    }

    .hero-points b {
        font-size: .75rem !important;
        line-height: 1.18 !important;
        white-space: nowrap !important;
    }

    .hero-points small {
        font-size: .63rem !important;
        line-height: 1.2 !important;
        margin-top: 3px !important;
        white-space: nowrap !important;
    }

    /* Cadrage photo légèrement recentré */
    .hero-photo {
        object-position: 48% 44% !important;
    }

    /* On garde les nouveautés très proches */
    .products-section {
        padding-top: 18px !important;
    }
}

@media (min-width: 821px) and (max-width: 1100px) {

    .hero-grid {
        grid-template-columns: 57% 43% !important;
    }

    .hero-copy {
        padding-right: 28px !important;
    }

    .hero h1 {
        max-width: 560px !important;
        line-height: 1.03 !important;
    }

    .hero-copy > p {
        max-width: 450px !important;
    }

    .hero-points {
        gap: 18px !important;
    }
}


/* =========================================================
   V1.19 — FINITIONS DU HAUT DE L'ACCUEIL
   - suppression des bandes rose foncé autour de la photo
   - textes du hero plus lisibles
   - barre de réassurance plus lisible
   - géométrie générale conservée
   ========================================================= */

@media (min-width: 1101px) {

    /* -----------------------------------------------------
       HERO : suppression des aplats rose foncé autour photo
       ----------------------------------------------------- */

    .hero {
        background: #fff9f7 !important;
    }

    .hero-grid {
        background: #fff9f7 !important;
    }

    .hero-visual {
        background: transparent !important;
        overflow: hidden !important;
    }

    /*
       La photo remplit désormais TOUTE sa colonne.
       Plus de bande saumon visible à gauche ou à droite.
    */
    .hero-photo {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        max-width: none !important;
        object-fit: cover !important;
        object-position: 50% 44% !important;
        margin: 0 !important;
    }


    /* -----------------------------------------------------
       LES 3 ENGAGEMENTS DU HERO
       ----------------------------------------------------- */

    .hero-points {
        margin-top: 14px !important;
        gap: 25px !important;
        max-width: 640px !important;
    }

    .hero-points > div {
        gap: 10px !important;
    }

    .hero-points strong {
        width: 27px !important;
        font-size: 1.38rem !important;
    }

    .hero-points b {
        font-size: .82rem !important;
        line-height: 1.16 !important;
        font-weight: 700 !important;
    }

    .hero-points small {
        font-size: .70rem !important;
        line-height: 1.25 !important;
        margin-top: 3px !important;
        color: #76625c !important;
    }


    /* -----------------------------------------------------
       BARRE PAIEMENT / EXPÉDITION / LIVRAISON / SERVICE
       ----------------------------------------------------- */

    .benefits-bar {
        min-height: 64px !important;
    }

    .benefit {
        min-height: 64px !important;
        padding-top: 11px !important;
        padding-bottom: 11px !important;
        gap: 13px !important;
    }

    .benefit > span {
        width: 30px !important;
        font-size: 1.35rem !important;
    }

    .benefit strong {
        font-size: .82rem !important;
        line-height: 1.15 !important;
        font-weight: 700 !important;
    }

    .benefit small {
        margin-top: 3px !important;
        font-size: .70rem !important;
        line-height: 1.22 !important;
        color: #715f59 !important;
    }


    /* -----------------------------------------------------
       TYPOGRAPHIE DU HERO
       On remonte légèrement la lisibilité sans augmenter
       la hauteur globale validée.
       ----------------------------------------------------- */

    .hero-copy > p {
        font-size: .86rem !important;
        line-height: 1.48 !important;
    }

    .btn-primary {
        font-size: .85rem !important;
    }


    /* -----------------------------------------------------
       NOUVEAUTÉS
       On conserve volontairement l'espace blanc validé.
       ----------------------------------------------------- */

    .products-section {
        padding-top: 24px !important;
    }

    .section-heading {
        margin-bottom: 17px !important;
    }

    .section-heading h2 {
        font-size: 1.58rem !important;
    }

    .section-heading a {
        font-size: .80rem !important;
    }

    .product-info h3 {
        font-size: 1rem !important;
        line-height: 1.2 !important;
    }

    .product-info p {
        font-size: .88rem !important;
    }

    .favorite {
        font-size: 1.25rem !important;
    }
}


/* Même suppression des bandes colorées sur tablette */
@media (min-width: 821px) and (max-width: 1100px) {

    .hero,
    .hero-grid {
        background: #fff9f7 !important;
    }

    .hero-visual {
        background: transparent !important;
    }

    .hero-photo {
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        max-width: none !important;
        object-fit: cover !important;
        margin: 0 !important;
    }

    .hero-points b {
        font-size: .80rem !important;
    }

    .hero-points small {
        font-size: .69rem !important;
    }

    .benefit strong {
        font-size: .80rem !important;
    }

    .benefit small {
        font-size: .68rem !important;
    }
}


/* =========================================================
   V1.20 — PREMIÈRE VRAIE PHOTO PRODUIT : ALMA
   ========================================================= */

.product-photo-card {
    background: #f5f1ed !important;
}

.product-real-photo {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: 50% 58%;
    transition: transform .25s ease;
}

.product-card:hover .product-real-photo {
    transform: scale(1.025);
}

/* Sur l'accueil, on privilégie la paire de boucles en gardant
   une petite respiration autour du support en bois. */
.products-section .product-real-photo {
    object-position: 50% 48%;
}

/* Sur la boutique, même cadrage pour garder une cohérence visuelle. */
.shop-products-grid .product-real-photo {
    object-position: 50% 48%;
}


/* =========================================================
   V1.21 — CADRAGE PRODUIT ALMA
   La vignette est maintenant préparée spécialement pour
   les cartes produits : plus besoin de couper les boucles.
   ========================================================= */

.product-real-photo {
    object-fit: cover !important;
    object-position: center center !important;
}

/* Alma dispose maintenant d'un fichier vignette 4:3 dédié. */
.product-photo-card .product-real-photo {
    width: 100% !important;
    height: 100% !important;
    object-position: center center !important;
}


/* =========================================================
   V1.22 — HERO ALLÉGÉ + BARRE DE RÉASSURANCE REORGANISÉE
   ========================================================= */

@media (min-width: 1101px) {
    .hero-copy {
        justify-content: center !important;
        padding-top: 22px !important;
        padding-bottom: 22px !important;
    }

    .hero h1 {
        margin-bottom: 10px !important;
    }

    .hero-copy > p {
        margin-bottom: 11px !important;
        max-width: 500px !important;
    }

    .btn-primary {
        margin-top: 4px !important;
        margin-bottom: 0 !important;
    }

    .hero-points {
        display: none !important;
    }

    .benefits {
        background: #fff !important;
    }

    .benefits-grid {
        grid-template-columns: repeat(4, 1fr) !important;
    }

    .benefit {
        min-height: 68px !important;
        padding: 12px 28px !important;
        gap: 14px !important;
    }

    .benefit > span {
        width: 32px !important;
        font-size: 1.45rem !important;
        color: var(--coral) !important;
    }

    .benefit strong {
        font-size: .86rem !important;
        line-height: 1.15 !important;
    }

    .benefit small {
        margin-top: 3px !important;
        font-size: .72rem !important;
        line-height: 1.2 !important;
        color: #75625c !important;
    }

    .products-section {
        padding-top: 24px !important;
    }
}

@media (min-width: 821px) and (max-width: 1100px) {
    .hero-points {
        display: none !important;
    }

    .hero-copy {
        justify-content: center !important;
    }

    .benefit {
        min-height: 66px !important;
    }

    .benefit strong {
        font-size: .82rem !important;
    }

    .benefit small {
        font-size: .70rem !important;
    }
}

@media (max-width: 820px) {
    .hero-points {
        display: none !important;
    }

    .benefits-grid {
        grid-template-columns: 1fr 1fr !important;
    }
}

@media (max-width: 540px) {
    .benefits-grid {
        grid-template-columns: 1fr !important;
    }
}


/* =========================================================
   V1.23 — DÉCALAGE DU TEXTE DU HERO VERS LA DROITE
   Le logo reste exactement à sa place.
   Seul le bloc texte est légèrement éloigné du logo.
   ========================================================= */

@media (min-width: 1101px) {
    .hero-copy {
        padding-left: 36px !important;
    }
}

@media (min-width: 821px) and (max-width: 1100px) {
    .hero-copy {
        padding-left: 28px !important;
    }
}

/* Sur mobile, aucun décalage supplémentaire */
@media (max-width: 820px) {
    .hero-copy {
        padding-left: 0 !important;
    }
}


/* =========================================================
   V1.24 — CORRECTION DU DÉCALAGE DU TEXTE DU HERO
   V1.23 avait remplacé le padding de sécurité du logo.
   On le rétablit, puis on ajoute seulement le décalage voulu.
   ========================================================= */

@media (min-width: 1101px) {
    .hero-copy {
        /* 200 px = zone de sécurité sous le grand logo
           + 36 px = décalage supplémentaire vers la droite */
        padding-left: 236px !important;
    }
}

@media (min-width: 821px) and (max-width: 1100px) {
    .hero-copy {
        /* 155 px de sécurité tablette + 28 px supplémentaires */
        padding-left: 183px !important;
    }
}

@media (max-width: 820px) {
    .hero-copy {
        padding-left: 0 !important;
    }
}


/* =========================================================
   V1.26 — NEWSLETTER / INSTAGRAM / FOOTER
   Plus sobre, plus élégant, plus cohérent avec l'accueil.
   ========================================================= */

.community-section {
    background: linear-gradient(90deg, #fff6f2, #fde9e2);
    border-top: 1px solid #f0dfd9;
    padding: 38px 0 34px;
}

.community-grid {
    display: grid;
    grid-template-columns: .95fr 1.35fr;
    gap: 54px;
    align-items: center;
}

.community-kicker {
    display: inline-block;
    margin-bottom: 8px;
    color: var(--coral);
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .20em;
}

.newsletter-panel h2,
.instagram-panel h2 {
    margin: 0;
    font: 600 1.55rem/1.15 'Playfair Display', serif;
    color: var(--brown);
}

.newsletter-panel p {
    max-width: 520px;
    margin: 10px 0 18px;
    color: #735f59;
    font-size: .86rem;
    line-height: 1.55;
}

.newsletter-form-wide {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    max-width: 520px;
}

.newsletter-form-wide input {
    min-height: 44px;
    padding: 0 14px;
    border: 1px solid #ead8d1;
    border-radius: 8px;
    background: rgba(255,255,255,.94);
    color: var(--brown);
}

.newsletter-form-wide button {
    min-height: 44px;
    padding: 0 20px;
    border: 0;
    border-radius: 8px;
    background: var(--coral);
    color: #fff;
    font-weight: 600;
    cursor: pointer;
    transition: .2s ease;
}

.newsletter-form-wide button:hover {
    background: var(--coral-dark);
}

.newsletter-note {
    display: block;
    margin-top: 8px;
    color: #9b8780;
    font-size: .69rem;
}

.instagram-panel {
    min-width: 0;
}

.instagram-heading {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    align-items: end;
    margin-bottom: 16px;
}

.instagram-handle {
    color: var(--coral-dark);
    font-size: .82rem;
    font-weight: 600;
    white-space: nowrap;
}

.instagram-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 9px;
}

.instagram-grid a {
    aspect-ratio: 1 / 1;
    display: block;
    overflow: hidden;
    border-radius: 9px;
    background: #f3e8e3;
    box-shadow: inset 0 0 0 1px rgba(92,55,48,.05);
}

.instagram-grid img,
.instagram-placeholder {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.instagram-placeholder.soft-1 {
    background: linear-gradient(145deg, #f4d9d3, #fff4ef);
}
.instagram-placeholder.soft-2 {
    background: linear-gradient(145deg, #f8e8dd, #f4d2c6);
}
.instagram-placeholder.soft-3 {
    background: linear-gradient(145deg, #f1ddd5, #fff8f3);
}
.instagram-placeholder.soft-4 {
    background: linear-gradient(145deg, #f6e6e0, #eed5cb);
}
.instagram-placeholder.soft-5 {
    background: linear-gradient(145deg, #f0d9d1, #fff2ed);
}

.footer-clean {
    background: #fff;
    border-top: 1px solid #f0e7e3;
    padding: 28px 0 16px;
}

.footer-main {
    display: grid;
    grid-template-columns: 1fr 2fr .8fr;
    gap: 38px;
    align-items: start;
}

.footer-brand {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.footer-brand strong {
    font: 600 1.2rem 'Playfair Display', serif;
}

.footer-brand span,
.footer-social span {
    color: #8c7770;
    font-size: .75rem;
}

.footer-nav {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 12px 24px;
    font-size: .78rem;
}

.footer-nav a:hover,
.footer-social a:hover {
    color: var(--coral-dark);
}

.footer-social {
    display: flex;
    flex-direction: column;
    gap: 6px;
    align-items: flex-end;
    font-size: .78rem;
}

.footer-bottom {
    margin-top: 24px;
    padding-top: 14px;
    border-top: 1px solid #f2e9e5;
    display: flex;
    justify-content: space-between;
    gap: 20px;
    color: #8b7771;
    font-size: .69rem;
}

/* Désactivation visuelle des anciens blocs, au cas où une règle
   héritée reste présente dans le CSS historique. */
.prefooter,
.prefooter-grid,
.footer-inner {
    display: none !important;
}

@media (max-width: 980px) {
    .community-grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .footer-main {
        grid-template-columns: 1fr;
        text-align: center;
    }

    .footer-nav {
        justify-content: center;
    }

    .footer-social {
        align-items: center;
    }
}

@media (max-width: 680px) {
    .community-section {
        padding: 30px 0;
    }

    .newsletter-form-wide {
        grid-template-columns: 1fr;
    }

    .instagram-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 8px;
    }

    .instagram-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .footer-bottom {
        flex-direction: column;
        text-align: center;
    }
}


/* =========================================================
   V1.27 — VRAIES CRÉATIONS DANS LES NOUVEAUTÉS
   Alma / Esmée / Lauana / Véronique
   ========================================================= */

.product-photo-card {
    background: #f7f1ed !important;
}

.product-real-photo {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
}

/* Les nouvelles photos sont verticales : cadrage légèrement personnalisé
   pour garder les bijoux bien présents dans les cartes. */
.product-card:nth-child(2) .product-real-photo {
    object-position: center 48% !important;
}

.product-card:nth-child(3) .product-real-photo {
    object-position: center 47% !important;
}

.product-card:nth-child(4) .product-real-photo {
    object-position: center 43% !important;
}

.product-card:nth-child(5) .product-image {
    background: linear-gradient(145deg, #fbf2ed, #f2ddd5) !important;
}

.product-card:nth-child(5) .jewel-placeholder {
    opacity: .55;
}

.product-info .coming-soon {
    color: #9b8179 !important;
    font-size: .78rem !important;
    font-weight: 400 !important;
}


/* =========================================================
   V1.28 — RENDEZ-VOUS / MARCHÉS / SALONS
   0 événement = aucun bloc sur l'accueil.
   ========================================================= */

.events-home {
    padding: 42px 0 46px;
    background: #fffaf7;
    border-top: 1px solid #f1e4df;
    border-bottom: 1px solid #f1e4df;
}

.events-home-heading {
    display: flex;
    justify-content: space-between;
    gap: 32px;
    align-items: flex-end;
    margin-bottom: 24px;
}

.events-home-heading h2 {
    margin: 6px 0 7px;
    font: 600 1.75rem/1.12 'Playfair Display', serif;
}

.events-home-heading p {
    margin: 0;
    color: #745f59;
    font-size: .84rem;
    line-height: 1.5;
}

.events-home-heading > a,
.events-home-footer a {
    color: var(--coral-dark);
    font-size: .78rem;
    white-space: nowrap;
}

.events-home-grid {
    display: grid;
    gap: 18px;
}

.events-home-grid.events-count-1 {
    grid-template-columns: minmax(0, 650px);
}

.events-home-grid.events-count-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.events-home-grid.events-count-3 {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.event-card {
    display: grid;
    grid-template-columns: 124px 1fr;
    min-height: 178px;
    overflow: hidden;
    border: 1px solid #eadcd6;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(72, 42, 37, .05);
}

.event-date {
    padding: 22px 16px;
    background: linear-gradient(145deg, #f7dcd3, #fff0ea);
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 8px;
    text-align: center;
}

.event-date span {
    font: 600 1.05rem/1.25 'Playfair Display', serif;
}

.event-date small {
    align-self: center;
    padding: 3px 7px;
    border-radius: 999px;
    background: rgba(255,255,255,.75);
    color: var(--coral-dark);
    font-size: .58rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.event-card-body {
    padding: 21px 22px;
}

.event-type {
    display: inline-block;
    margin-bottom: 5px;
    color: var(--coral);
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.event-card h3,
.event-card h2 {
    margin: 0 0 9px;
    font: 600 1.18rem/1.15 'Playfair Display', serif;
}

.event-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 7px 16px;
    margin-bottom: 8px;
    color: #705d57;
    font-size: .75rem;
}

.event-location {
    margin: 0 0 7px !important;
    color: #8c766f !important;
    font-size: .72rem !important;
}

.event-card-body > p:last-child {
    margin: 0;
    color: #76625c;
    font-size: .76rem;
    line-height: 1.45;
}

.events-home-footer {
    margin-top: 18px;
    text-align: right;
}

.events-page {
    padding-bottom: 86px;
    background: #fff;
}

.events-page-heading {
    max-width: 720px;
    margin-bottom: 38px;
}

.events-page-heading h1 {
    margin: 8px 0 10px;
    font: 600 clamp(2.5rem, 3.2vw, 3.8rem)/1.05 'Playfair Display', serif;
}

.events-page-heading p {
    margin: 0;
    color: var(--muted);
    line-height: 1.6;
}

.events-page-grid {
    display: grid;
    gap: 22px;
}

.event-card-large {
    grid-template-columns: 175px 1fr;
    min-height: 205px;
}

.event-card-large .event-date {
    padding: 28px 20px;
}

.event-card-large .event-date span {
    font-size: 1.3rem;
}

.event-card-large .event-card-body {
    padding: 27px 30px;
}

.event-card-large h2 {
    font-size: 1.6rem;
}

.events-empty {
    max-width: 650px;
    padding: 52px 38px;
    border: 1px solid #eddeda;
    border-radius: 16px;
    background: linear-gradient(145deg, #fff8f5, #fff);
    text-align: center;
}

.events-empty > span {
    display: block;
    margin-bottom: 12px;
    font-size: 2rem;
}

.events-empty h2 {
    margin: 0 0 10px;
    font: 600 1.55rem 'Playfair Display', serif;
}

.events-empty p {
    margin: 0 auto 22px;
    color: #78635d;
    line-height: 1.55;
}

.events-empty a {
    display: inline-flex;
    padding: 11px 20px;
    border-radius: 999px;
    background: var(--coral);
    color: #fff;
    font-size: .82rem;
}

@media (max-width: 980px) {
    .events-home-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
    }

    .events-home-grid.events-count-1,
    .events-home-grid.events-count-2,
    .events-home-grid.events-count-3 {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 620px) {
    .event-card,
    .event-card-large {
        grid-template-columns: 1fr;
    }

    .event-date {
        padding: 15px 16px;
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        text-align: left;
    }

    .event-card-body,
    .event-card-large .event-card-body {
        padding: 20px;
    }

    .events-empty {
        padding: 38px 22px;
    }
}


/* =========================================================
   V1.29 — OÙ ME RETROUVER ?
   Marchés + partenaires dans un seul bloc conditionnel.
   ========================================================= */

.findme-home {
    padding: 42px 0 46px;
    background: #fffaf7;
    border-top: 1px solid #f1e4df;
    border-bottom: 1px solid #f1e4df;
}

.findme-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 32px;
    margin-bottom: 26px;
}

.findme-heading h2 {
    margin: 6px 0 7px;
    font: 600 1.75rem/1.12 'Playfair Display', serif;
}

.findme-heading p {
    max-width: 760px;
    margin: 0;
    color: #745f59;
    font-size: .84rem;
    line-height: 1.5;
}

.findme-heading > a {
    color: var(--coral-dark);
    font-size: .78rem;
    white-space: nowrap;
}

.findme-columns {
    display: grid;
    gap: 28px;
}

.findme-columns.two-columns {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.findme-columns.one-column {
    grid-template-columns: minmax(0, 760px);
}

.findme-group-title {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
}

.findme-group-title > span {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #fff0ea;
    color: var(--coral);
    font-size: 1.15rem;
}

.findme-group-title small {
    display: block;
    margin-bottom: 2px;
    color: var(--coral);
    font-size: .59rem;
    font-weight: 700;
    letter-spacing: .14em;
}

.findme-group-title h3 {
    margin: 0;
    font: 600 1.16rem/1.15 'Playfair Display', serif;
}

.findme-list {
    display: grid;
    gap: 12px;
}

.findme-card {
    display: grid;
    grid-template-columns: 118px 1fr;
    min-height: 132px;
    overflow: hidden;
    border: 1px solid #eadcd6;
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(72,42,37,.045);
}

.findme-date,
.partner-pin {
    padding: 18px 14px;
    background: linear-gradient(145deg, #f7dcd3, #fff0ea);
    display: grid;
    place-items: center;
    text-align: center;
    color: var(--brown);
    font: 600 .92rem/1.3 'Playfair Display', serif;
}

.partner-pin {
    font-size: 1.7rem;
    color: var(--coral);
}

.findme-card-body {
    padding: 17px 19px;
}

.findme-card-topline {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    margin-bottom: 4px;
}

.findme-card-topline > span {
    color: var(--coral);
    font-size: .58rem;
    font-weight: 700;
    letter-spacing: .13em;
    text-transform: uppercase;
}

.findme-card-topline > small {
    padding: 2px 6px;
    border-radius: 999px;
    background: #fff1ec;
    color: var(--coral-dark);
    font-size: .53rem;
    font-weight: 700;
    text-transform: uppercase;
}

.findme-card h4,
.findme-card h3 {
    margin: 0 0 7px;
    font: 600 1.08rem/1.15 'Playfair Display', serif;
}

.findme-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 14px;
    color: #755f59;
    font-size: .72rem;
}

.findme-card-body > p {
    margin: 8px 0 0;
    color: #7c6862;
    font-size: .72rem;
    line-height: 1.45;
}


/* Page complète */

.findme-page {
    padding-bottom: 86px;
    background: #fff;
}

.findme-page-section {
    margin-top: 48px;
}

.findme-page-section:first-of-type {
    margin-top: 0;
}

.findme-page-section-title {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 20px;
}

.findme-page-section-title > span {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #fff0ea;
    color: var(--coral);
    font-size: 1.3rem;
}

.findme-page-section-title small {
    color: var(--coral);
    font-size: .62rem;
    font-weight: 700;
    letter-spacing: .14em;
}

.findme-page-section-title h2 {
    margin: 2px 0 0;
    font: 600 1.55rem 'Playfair Display', serif;
}

.findme-page-grid {
    display: grid;
    gap: 18px;
}

.findme-card-large {
    grid-template-columns: 165px 1fr;
    min-height: 178px;
}

.findme-card-large .findme-date,
.partner-pin-large {
    min-height: 178px;
}

.findme-card-large .findme-card-body {
    padding: 24px 26px;
}

.findme-card-large h3 {
    font-size: 1.35rem;
}

.findme-address {
    color: #8c766f !important;
    font-size: .76rem !important;
}

.findme-link {
    display: inline-block;
    margin-top: 12px;
    color: var(--coral-dark);
    font-size: .76rem;
    font-weight: 600;
}

.findme-empty {
    max-width: 650px;
    padding: 52px 38px;
    border: 1px solid #eddeda;
    border-radius: 16px;
    background: linear-gradient(145deg, #fff8f5, #fff);
    text-align: center;
}

.findme-empty > span {
    display: block;
    margin-bottom: 12px;
    font-size: 2rem;
}

.findme-empty h2 {
    margin: 0 0 10px;
    font: 600 1.55rem 'Playfair Display', serif;
}

.findme-empty p {
    margin: 0 auto 22px;
    color: #78635d;
    line-height: 1.55;
}

.findme-empty a {
    display: inline-flex;
    padding: 11px 20px;
    border-radius: 999px;
    background: var(--coral);
    color: #fff;
    font-size: .82rem;
}


/* L'ancien bloc V1.28 n'est plus utilisé */
.events-home {
    display: none !important;
}

@media (max-width: 980px) {
    .findme-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
    }

    .findme-columns.two-columns,
    .findme-columns.one-column {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 620px) {
    .findme-card,
    .findme-card-large {
        grid-template-columns: 1fr;
    }

    .findme-date,
    .partner-pin,
    .findme-card-large .findme-date,
    .partner-pin-large {
        min-height: auto;
        padding: 14px 16px;
    }

    .findme-card-body,
    .findme-card-large .findme-card-body {
        padding: 19px;
    }

    .findme-empty {
        padding: 38px 22px;
    }
}


/* =========================================================
   V1.34 — NOUVEAUTÉS CONNECTÉES À MYSQL
   ========================================================= */

.product-home-category {
    display: block;
    margin-bottom: 3px;
    color: #a08b84;
    font-size: .64rem;
}

.product-stock-label {
    display: inline-block;
    margin-top: 5px;
    color: #9a7368;
    font-size: .64rem;
    font-weight: 600;
}

.product-stock-label.sold-out {
    color: var(--coral-dark);
}

/* Avec moins de 5 nouveautés, on conserve des cartes de taille
   cohérente au lieu de les étirer sur toute la largeur. */
@media (min-width: 1101px) {
    .products-grid.products-count-1 {
        grid-template-columns: minmax(210px, 250px);
    }

    .products-grid.products-count-2 {
        grid-template-columns: repeat(2, minmax(210px, 250px));
    }

    .products-grid.products-count-3 {
        grid-template-columns: repeat(3, minmax(210px, 250px));
    }

    .products-grid.products-count-4 {
        grid-template-columns: repeat(4, minmax(210px, 1fr));
    }
}


/* =========================================================
   V1.36 — BOUTIQUE CONNECTÉE À MYSQL
   ========================================================= */

.category-list a {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.category-list a small {
    color: #aa928b;
    font-size: .66rem;
}

.category-list a.active small {
    color: inherit;
}

.shop-filter-actions {
    display: grid;
    gap: 8px;
    margin-top: 8px;
}

.shop-filter-actions button {
    min-height: 40px;
    border: 0;
    border-radius: 7px;
    background: var(--coral);
    color: #fff;
    font-weight: 600;
    cursor: pointer;
}

.shop-filter-actions a {
    text-align: center;
    color: #9b7e76;
    font-size: .72rem;
}

.price-values strong {
    color: var(--coral-dark);
    font-size: .78rem;
}

.shop-sort-form {
    margin: 0;
}

.product-badges {
    position: absolute;
    z-index: 4;
    left: 0;
    bottom: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    padding: 0 7px 7px 0;
    max-width: 100%;
}

.product-badges .badge {
    position: static !important;
    display: inline-flex;
    align-items: center;
    padding: 5px 8px !important;
    font-size: .56rem !important;
    border-radius: 0 5px 5px 0;
}

.badge-heart {
    background: #f3a0a3 !important;
}

.product-availability {
    min-height: 18px;
    margin-top: 5px;
}

.availability {
    display: inline-flex;
    font-size: .64rem;
    font-weight: 600;
}

.availability.sold-out {
    color: var(--coral-dark);
}

.availability.unique {
    color: #9c7366;
}

.availability.low-stock {
    color: #ad7840;
}

.shop-empty {
    padding: 62px 30px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: #fffaf7;
    text-align: center;
}

.shop-empty > span {
    display: block;
    margin-bottom: 10px;
    font-size: 1.8rem;
}

.shop-empty h2 {
    margin: 0 0 8px;
    font: 600 1.45rem 'Playfair Display', serif;
}

.shop-empty p {
    margin: 0 auto 20px;
    color: var(--muted);
    line-height: 1.5;
}

.shop-empty a {
    display: inline-flex;
    padding: 10px 18px;
    border-radius: 999px;
    background: var(--coral);
    color: #fff;
    font-size: .8rem;
}

@media (max-width: 820px) {
    .shop-filter-actions {
        max-width: 260px;
    }
}


/* =========================================================
   V1.37 — FICHE PRODUIT DYNAMIQUE
   ========================================================= */

.product-main-image.has-real-photo {
    background: #f7f1ed;
}

.product-main-image.has-real-photo > img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    object-position: center;
}

.product-detail-badges {
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: 4;
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    padding: 0 8px 8px 0;
}

.product-detail-badges .badge {
    position: static !important;
    display: inline-flex;
    align-items: center;
    padding: 6px 9px !important;
    border-radius: 0 5px 5px 0;
    font-size: .58rem !important;
}

.product-thumbs .thumb {
    position: relative;
    padding: 0;
    overflow: hidden;
    background: #f8f3ef;
}

.product-thumbs .thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.product-thumbs .thumb small {
    position: absolute;
    right: 4px;
    bottom: 4px;
    padding: 2px 5px;
    border-radius: 4px;
    background: rgba(255,255,255,.88);
    color: var(--brown);
    font-size: .54rem;
}

.product-stock-box {
    margin-top: 22px;
    padding: 13px 15px;
    border-radius: 9px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    font-size: .77rem;
}

.product-stock-box strong {
    font-size: .82rem;
}

.product-stock-box span {
    color: #75625c;
}

.product-stock-box.available {
    background: #f3f8f4;
    border: 1px solid #d9e9dc;
}

.product-stock-box.low {
    background: #fff8ec;
    border: 1px solid #f0dfbd;
}

.product-stock-box.sold-out {
    background: #fff0f0;
    border: 1px solid #efd2d4;
}

.product-characteristics {
    margin: -4px 0 18px;
}

.product-characteristics > div {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 18px;
    padding: 8px 0;
    border-bottom: 1px solid #f3ebe7;
}

.product-characteristics > div:last-child {
    border-bottom: 0;
}

.product-characteristics dt {
    color: #8c756e;
    font-size: .76rem;
    font-weight: 600;
}

.product-characteristics dd {
    margin: 0;
    color: #65534f;
    font-size: .82rem;
}

.product-reviews-preview {
    margin-top: 28px;
    padding: 20px 0 0;
    border-top: 1px solid var(--line);
}

.product-reviews-preview > div {
    padding: 18px 20px;
    border-radius: 10px;
    background: #fff9f6;
}

.product-reviews-preview h2 {
    margin: 4px 0 6px;
    font: 600 1.05rem 'Playfair Display', serif;
}

.product-reviews-preview p {
    margin: 0;
    color: #7d6963;
    font-size: .76rem;
    line-height: 1.45;
}

.review-stars {
    color: #e8aa58;
    letter-spacing: .08em;
}

.product-not-found {
    min-height: 520px;
}

.product-not-found-card {
    max-width: 620px;
    padding: 54px 34px;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: #fffaf7;
    text-align: center;
}

.product-not-found-card > span {
    display: block;
    margin-bottom: 12px;
    font-size: 2rem;
}

.product-not-found-card h1 {
    margin: 0 0 10px;
    font: 600 2rem 'Playfair Display', serif;
}

.product-not-found-card p {
    margin: 0 0 20px;
    color: var(--muted);
}

.product-not-found-card a {
    display: inline-flex;
    padding: 11px 20px;
    border-radius: 999px;
    background: var(--coral);
    color: #fff;
    font-size: .8rem;
}

@media (max-width: 820px) {
    .product-main-image.has-real-photo > img {
        object-fit: contain;
    }

    .product-characteristics > div {
        grid-template-columns: 1fr;
        gap: 3px;
    }
}


/* =========================================================
   V1.37.2 — FINITION FICHE PRODUIT
   ========================================================= */

.product-detail-grid {
    align-items: start;
}

.product-gallery {
    max-width: 610px;
}

.product-main-image {
    min-height: 0 !important;
    height: clamp(430px, 46vw, 590px) !important;
}

.product-detail h1 {
    font-size: clamp(2.45rem, 3.25vw, 4rem) !important;
    line-height: .98;
}

.product-stock-box {
    padding: 10px 14px;
    margin-top: 18px;
}

.product-below {
    margin-top: 42px;
    padding-top: 10px;
    border-top: 1px solid var(--line);
}

.product-below-main {
    max-width: 100%;
}

.product-below-main details {
    border-bottom: 1px solid var(--line);
}

.product-below-main summary {
    padding: 17px 2px;
    font-weight: 600;
    cursor: pointer;
}

.product-below-main details > p,
.product-below-main .product-characteristics {
    max-width: 900px;
    margin-bottom: 20px;
    line-height: 1.65;
}

.product-reviews-preview {
    margin-top: 36px !important;
    padding-top: 0 !important;
    border-top: 0 !important;
}

.product-reviews-preview .reviews-coming {
    padding: 28px 30px;
    border: 1px solid #f1ded7;
    border-radius: 14px;
    background: #fff8f5;
}

.product-reviews-preview h2 {
    font-size: 1.35rem;
}

.qty-btn:disabled {
    opacity: .32;
    cursor: not-allowed;
    pointer-events: none;
    background: #f7f3f1;
}

.quantity-box input:disabled {
    opacity: .65;
}

@media (max-width: 820px) {
    .product-gallery {
        max-width: none;
    }

    .product-main-image {
        height: min(110vw, 560px) !important;
    }

    .product-below {
        margin-top: 30px;
    }
}


/* =========================================================
   V1.37.3 — INFORMATIONS À DROITE + AVIS PLEINE LARGEUR
   ========================================================= */

.product-below {
    display: none !important;
}

.product-accordions-v1373 {
    margin-top: 24px;
}

.product-accordions-v1373 details {
    border-top: 1px solid var(--line);
}

.product-accordions-v1373 details:last-child {
    border-bottom: 1px solid var(--line);
}

.product-accordions-v1373 summary {
    padding: 16px 2px;
}

.product-accordions-v1373 details > p {
    padding: 0 2px 16px;
    margin: 0;
    line-height: 1.6;
}

.product-accordions-v1373 .product-characteristics {
    margin: 0 2px 16px;
}

.product-reviews-full {
    width: 100%;
    margin-top: 42px !important;
    padding-top: 28px !important;
    border-top: 1px solid var(--line) !important;
}

.product-reviews-full .reviews-coming {
    padding: 28px 30px;
}

@media (max-width: 820px) {
    .product-reviews-full {
        margin-top: 30px !important;
    }
}

/* V1.38 — panier */
.cart-count{display:inline-flex;min-width:18px;height:18px;padding:0 5px;align-items:center;justify-content:center;border-radius:999px;background:var(--coral);color:#fff;font-size:.62rem;margin-left:4px}
.secure-cart-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:42px;align-items:start}
.secure-cart-item{display:grid;grid-template-columns:130px 1fr auto;gap:20px;padding:22px 0;border-bottom:1px solid var(--line);align-items:center}
.secure-cart-photo{height:145px;border-radius:10px;overflow:hidden;background:#f7f1ed}
.secure-cart-photo img{width:100%;height:100%;object-fit:cover}
.secure-cart-info h2{margin:3px 0 7px;font:600 1.25rem 'Playfair Display',serif}
.secure-cart-info small{color:var(--muted)}
.cart-quantity-form{margin-top:12px}.cart-quantity-form label{font-size:.72rem;color:var(--muted)}.cart-quantity-form select{margin-left:7px;padding:5px 8px;border:1px solid var(--line);border-radius:6px;background:#fff}
.cart-remove{margin-top:8px;padding:0;border:0;background:none;color:var(--coral-dark);font-size:.7rem;text-decoration:underline;cursor:pointer}
.secure-cart-line-total{font-weight:700}
.secure-cart-summary{position:sticky;top:110px;padding:24px;border:1px solid var(--line);border-radius:13px;background:#fffaf7}
.secure-cart-summary h2{margin-top:0;font:600 1.3rem 'Playfair Display',serif}.secure-cart-summary>div{display:flex;justify-content:space-between;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.secure-cart-summary p,.secure-cart-summary small{color:var(--muted);font-size:.72rem;line-height:1.5}.secure-cart-summary button{width:100%;padding:12px;border:0;border-radius:8px;background:#cfc4bf;color:#fff;font-weight:600;cursor:not-allowed}
@media(max-width:820px){.secure-cart-layout{grid-template-columns:1fr}.secure-cart-summary{position:static}.secure-cart-item{grid-template-columns:90px 1fr}.secure-cart-photo{height:105px}.secure-cart-line-total{grid-column:2}}

/* V1.38.1 — notification panier */
.beauty-toast{position:fixed;z-index:9999;top:92px;right:24px;max-width:min(380px,calc(100vw - 32px));padding:13px 17px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#5f4c47;box-shadow:0 10px 30px rgba(78,55,48,.13);font-size:.78rem;line-height:1.4;opacity:0;transform:translateY(-10px);pointer-events:none;transition:opacity .2s ease,transform .2s ease}
.beauty-toast.show{opacity:1;transform:translateY(0)}
.beauty-toast.success{border-left:4px solid #8db99a}.beauty-toast.info{border-left:4px solid #e4a09d}.beauty-toast.error{border-left:4px solid #c76f73}
@media(max-width:620px){.beauty-toast{top:78px;right:16px;left:16px;max-width:none}}

/* V1.39 — tunnel de commande */
.cart-checkout-link,.checkout-next{display:flex;width:100%;box-sizing:border-box;align-items:center;justify-content:center;padding:12px;border:0;border-radius:8px;background:var(--coral);color:#fff;font-weight:600;cursor:pointer}
.checkout-heading{max-width:720px;margin-bottom:34px}.checkout-heading h1{margin:5px 0 10px;font:600 clamp(2rem,4vw,3.4rem) 'Playfair Display',serif}.checkout-heading p{color:var(--muted);line-height:1.55}
.checkout-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:46px;align-items:start}
.checkout-form,.order-review{padding:28px;border:1px solid var(--line);border-radius:14px;background:#fff}
.checkout-form>label,.be-checkout-step>label,.checkout-two label{display:flex;flex-direction:column;gap:7px;margin-bottom:18px;font-size:.76rem;font-weight:600;color:#6d5751}
.checkout-two{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.checkout-form input,.checkout-form select{box-sizing:border-box;width:100%;padding:11px 12px;border:1px solid #dfd2cc;border-radius:7px;background:#fff;font:inherit;font-weight:400;color:#4e3f3b}
.checkout-form input:focus,.checkout-form select:focus{outline:2px solid rgba(226,135,78,.18);border-color:var(--coral)}
.checkout-form label small{color:#b34f55;font-weight:500}.checkout-form label em{color:var(--muted);font-size:.66rem;font-style:normal;font-weight:400}
.checkout-privacy{margin:12px 0 22px;padding:14px 16px;border-radius:9px;background:#f7f8f5;font-size:.74rem}.checkout-privacy p{margin:4px 0 0;color:var(--muted);line-height:1.5}
.checkout-error{margin-bottom:20px;padding:12px 15px;border:1px solid #efd2d4;border-radius:8px;background:#fff0f0;color:#9a4148;font-size:.78rem}
.order-review h2{font:600 1.3rem 'Playfair Display',serif}.order-review p{line-height:1.65;color:#66534e}.order-review>a{color:var(--coral-dark);font-size:.75rem;text-decoration:underline}
@media(max-width:820px){.checkout-layout{grid-template-columns:1fr}.checkout-two{grid-template-columns:1fr;gap:0}}


/* V1.44 — flux Instagram réel */
.instagram-followers{display:block;margin-top:5px;color:#a38278;font-size:.68rem}
.instagram-live-post{position:relative;min-width:0;aspect-ratio:1/1;overflow:hidden;border-radius:8px;background:#f4e6df}
.instagram-live-post>img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .28s ease,filter .28s ease}
.instagram-hover{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;gap:2px;padding:9px;color:#fff;background:linear-gradient(to top,rgba(54,31,27,.68),transparent 68%);opacity:0;transition:opacity .22s ease}
.instagram-hover b{font-size:.66rem}.instagram-hover small{color:rgba(255,255,255,.9);font-size:.55rem}
.instagram-live-post:hover img{transform:scale(1.045);filter:saturate(.94)}.instagram-live-post:hover .instagram-hover{opacity:1}
.instagram-fallback{min-height:90px;margin-top:12px;padding:17px 19px;border:1px dashed #e5cbc0;border-radius:9px;display:flex;align-items:center;justify-content:space-between;gap:20px;color:#8f675b;background:rgba(255,255,255,.42);font-size:.76rem}
@media(max-width:820px){.instagram-live-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:540px){.instagram-hover{display:none}}


/* =========================================================
   V1.47.2 — CORRECTION FICHE PRODUIT / LOGO
   ========================================================= */

/*
 * Le logo Beauty Éclat déborde visuellement sous le header.
 * Sur une fiche produit, on décale volontairement le contenu vers le bas
 * pour que le fil d'Ariane et les miniatures ne passent plus derrière lui.
 */
body.page-produit .product-page,
body.page-produit .product-detail,
body.page-produit main {
    padding-top: 86px;
}

/* Sécurité supplémentaire pour le fil d'Ariane et la galerie */
body.page-produit .breadcrumb,
body.page-produit .product-breadcrumb,
body.page-produit .product-gallery,
body.page-produit .product-layout {
    position: relative;
    z-index: 1;
}

/* Le fil d'Ariane démarre clairement sous la zone occupée par le logo */
body.page-produit .breadcrumb,
body.page-produit .product-breadcrumb {
    margin-top: 34px;
}

@media (max-width: 900px) {
    body.page-produit .product-page,
    body.page-produit .product-detail,
    body.page-produit main {
        padding-top: 48px;
    }

    body.page-produit .breadcrumb,
    body.page-produit .product-breadcrumb {
        margin-top: 20px;
    }
}

@media (max-width: 600px) {
    body.page-produit .product-page,
    body.page-produit .product-detail,
    body.page-produit main {
        padding-top: 20px;
    }

    body.page-produit .breadcrumb,
    body.page-produit .product-breadcrumb {
        margin-top: 10px;
    }
}


/* =========================================================
   V1.47.3 — CORRECTION EFFECTIVE DU CHEVAUCHEMENT DU LOGO
   ========================================================= */

/*
 * V1.47.2 ciblait une classe body qui n'était pas présente car le <body>
 * est généré par includes/header.php avant le contenu de produit.php.
 * On cible donc directement .product-page, qui n'existe que sur la fiche produit.
 *
 * Le logo fait volontairement saillie sous le header : on réserve ici
 * l'espace réellement occupé par sa partie basse.
 */
.product-page {
    padding-top: 112px !important;
}

/* Le contenu reste au-dessus du fond de page, sans modifier le logo. */
.product-page .breadcrumb,
.product-page .product-detail-grid,
.product-page .product-gallery {
    position: relative;
    z-index: 1;
}

/* On annule la marge ajoutée par la V1.47.2 : le padding suffit. */
.product-page .breadcrumb {
    margin-top: 0 !important;
}

@media (max-width: 900px) {
    .product-page {
        padding-top: 72px !important;
    }
}

@media (max-width: 600px) {
    .product-page {
        padding-top: 26px !important;
    }
}


/* =========================================================
   V1.47.4 — AJUSTEMENT FIN DE LA FICHE PRODUIT
   ========================================================= */

/*
 * On descend légèrement le fil d'Ariane pour qu'il respire sous le logo,
 * mais on réduit l'espace entre ce fil d'Ariane et la galerie afin de ne
 * pas faire descendre toute la fiche produit.
 */
.product-page {
    padding-top: 122px !important;
}

.product-page .breadcrumb {
    margin-top: 0 !important;
    margin-bottom: 18px !important;
}

/*
 * Les styles précédents laissaient plus d'air avant la galerie.
 * On resserre cette zone pour compenser le décalage du fil d'Ariane.
 */
.product-page .product-detail-grid {
    margin-top: 0 !important;
}

/* Tablette */
@media (max-width: 900px) {
    .product-page {
        padding-top: 78px !important;
    }

    .product-page .breadcrumb {
        margin-bottom: 14px !important;
    }
}

/* Smartphone */
@media (max-width: 600px) {
    .product-page {
        padding-top: 30px !important;
    }

    .product-page .breadcrumb {
        margin-bottom: 10px !important;
    }
}


/* V1.47.11 — Boutique : texte d'introduction sur toute la largeur disponible */
@media (max-width: 820px) {
    .shop-heading p {
        width: auto;
        max-width: 100%;
    }
}


/* =========================================================
   V1.49 — AVIS CLIENTS
   ========================================================= */
.rating-stars-display{display:inline-flex;gap:2px;vertical-align:middle}
.rating-star{position:relative;display:inline-block;width:1.08em;height:1.15em;line-height:1.08em;color:#d8a045;font-size:1.02rem}
.rating-star-empty{position:absolute;inset:0;color:#d8c8c0}
.rating-star-fill{position:absolute;inset:0 auto 0 0;overflow:hidden;white-space:nowrap;color:#e2aa43}
.reviews-page{padding-bottom:90px}
.reviews-global-score{display:flex;align-items:center;gap:9px;margin-top:16px}.reviews-global-score span{color:var(--muted);font-size:.72rem}
.reviews-page-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:38px;align-items:start}
.review-form-card,.published-reviews-card{padding:27px;border:1px solid var(--line);border-radius:14px;background:#fff}
.review-form-card h2,.published-reviews-card h2{margin:0 0 20px;font:600 1.45rem 'Playfair Display',serif}
.public-review-form{display:grid;gap:17px}.review-field{display:grid;gap:7px;color:#624b43;font-size:.74rem;font-weight:700}
.review-field>span,.review-field label span{font-weight:400;color:var(--muted)}.review-field input,.review-field textarea{box-sizing:border-box;width:100%;padding:11px 12px;border:1px solid #dfd2cc;border-radius:8px;background:#fff;font:inherit;font-weight:400}.review-field textarea{resize:vertical}
.field-error{color:#b34e55!important;font-weight:500!important}
.half-star-control{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:11px 13px;border:1px solid #eadfd9;border-radius:9px;background:#fffaf7}
.half-star-preview .rating-star{font-size:1.35rem}.half-star-control input[type=range]{accent-color:#df9b43}.half-star-control output{min-width:42px;color:#6b4e44;font-weight:700;font-size:.72rem}
.review-moderation-note{padding:12px 14px;border-radius:8px;background:#f7f4f0;font-size:.7rem}.review-moderation-note p{margin:3px 0 0;color:var(--muted);line-height:1.5}
.public-review-form>button{border:0;border-radius:8px;padding:12px 15px;background:var(--coral);color:#fff;font-weight:700;cursor:pointer}
.review-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.review-success,.review-error{margin-bottom:20px;padding:14px 16px;border-radius:9px}.review-success{background:#edf7f0;color:#477258}.review-error{background:#fff0f0;color:#9e4950}
.review-success p{margin:3px 0 0}.review-success.compact{margin-top:15px}
.public-reviews-list{display:grid;gap:11px}.public-reviews-list article,.product-review-card{padding:16px;border:1px solid #eee3dd;border-radius:10px;background:#fffdfb}
.review-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.review-card-head strong{font-size:.75rem;color:#5e443c}
.public-reviews-list p,.product-review-card p{margin:10px 0 0;color:#6f5952;font-size:.75rem;line-height:1.65}
.verified-purchase{display:inline-flex;margin-top:10px;padding:4px 7px;border-radius:999px;background:#edf7f0;color:#4b7e5b;font-size:.58rem;font-weight:700}
.reviews-empty-public{text-align:center;padding:27px;color:#90786f}.reviews-empty-public>span{font-size:1.5rem;color:#da8c7d}
.product-reviews-full{margin-top:62px;padding-top:36px;border-top:1px solid var(--line)}
.product-review-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:22px}.product-review-heading h2{margin:4px 0 0;font:600 1.7rem 'Playfair Display',serif}
.product-review-score{display:flex;align-items:center;gap:8px}.product-review-score span,.no-review-yet{color:var(--muted);font-size:.68rem}
.product-reviews-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:28px;align-items:start}
.product-published-reviews{display:grid;gap:10px}.product-review-form-wrap{border:1px solid #eadfd8;border-radius:11px;background:#fff}.product-review-form-wrap>summary{cursor:pointer;padding:15px 17px;font-weight:700;color:#6a4b42}.product-review-form{padding:0 17px 18px}
@media(max-width:820px){.reviews-page-grid,.product-reviews-layout{grid-template-columns:1fr}.product-review-heading{align-items:flex-start;flex-direction:column}}
@media(max-width:520px){.half-star-control{grid-template-columns:1fr auto}.half-star-preview{grid-column:1/3}.review-form-card,.published-reviews-card{padding:20px}}


/* =========================================================
   V1.49.1 — FINITION DES AVIS
   ========================================================= */

/* Note visible dès le haut de la fiche */
.product-title-rating-row{
    display:flex;
    align-items:flex-end;
    flex-wrap:wrap;
    gap:10px 18px;
}
.product-title-rating-row h1{margin-bottom:0}
.product-top-rating{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding-bottom:5px;
    color:#6c5047;
    text-decoration:none;
    white-space:nowrap;
}
.product-top-rating .rating-star{font-size:.88rem}
.product-top-rating strong{font-size:.72rem}
.product-top-rating span{color:var(--muted);font-size:.64rem}
.product-top-rating:hover strong{color:var(--coral)}

/* Boutique : note compacte, visible sans surcharger les cartes */
.shop-product-title-row{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:8px;
}
.shop-product-title-row h3{margin-right:auto}
.shop-product-rating{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    gap:3px;
    color:#755b52;
    text-decoration:none;
    padding-top:1px;
}
.shop-product-rating .rating-star{font-size:.70rem;width:.92em}
.shop-product-rating strong{font-size:.62rem}
.shop-product-rating>span{font-size:.56rem;color:var(--muted)}

/* Section avis : titre moins imposant, résumé beaucoup plus visible */
.product-review-heading{
    align-items:center;
    margin-bottom:18px;
}
.product-review-heading h2{
    margin:3px 0 0;
    font-size:1.28rem;
    line-height:1.2;
}
.product-review-score{
    padding:10px 13px;
    border:1px solid #eadfd8;
    border-radius:10px;
    background:#fffaf7;
}
.product-review-score .rating-star{font-size:1.13rem}
.product-review-score strong{
    font:600 1rem 'Playfair Display',serif;
    color:#5d3d34;
}
.product-review-score span{
    font-size:.68rem;
}
.no-review-yet{
    padding:7px 10px;
    border-radius:999px;
    background:#f7f3f0;
}

/* Après envoi : le formulaire disparaît, seul le remerciement reste */
.review-success.compact{
    max-width:620px;
    margin:0 0 18px;
}
.review-thankyou-card{
    display:grid;
    place-items:center;
    min-height:220px;
    text-align:center;
}
.review-thankyou-card>span{
    color:#db8e7e;
    font-size:2rem;
}
.review-thankyou-card p{
    max-width:420px;
    color:var(--muted);
    line-height:1.6;
}

@media(max-width:650px){
    .product-title-rating-row{align-items:flex-start;flex-direction:column;gap:5px}
    .product-top-rating{padding-bottom:0}
    .shop-product-title-row{display:block}
    .shop-product-rating{margin:3px 0 2px}
}


/* =========================================================
   V1.49.2 — NOTATION SIGNATURE BEAUTY ÉCLAT
   ========================================================= */
.name-rating{--rating-fill:0%;position:relative;display:inline-block;line-height:1.05}
.name-rating-text{
    display:inline-block;
    color:transparent;
    background:linear-gradient(90deg,
        #e56e69 0%,
        #d99559 var(--rating-fill),
        #b9a7a0 var(--rating-fill),
        #b9a7a0 100%);
    -webkit-background-clip:text;
    background-clip:text;
    -webkit-text-fill-color:transparent
}
.product-name-rating-link{display:flex;align-items:flex-end;flex-wrap:wrap;gap:9px 14px;text-decoration:none}
.product-name-rating-large{font:600 clamp(2.25rem,4vw,3.6rem) 'Playfair Display',serif;letter-spacing:-.035em}
.product-name-rating-meta{display:inline-flex;align-items:center;gap:7px;padding-bottom:6px;color:#72574e}
.product-name-rating-meta strong{font-size:.78rem}.product-name-rating-meta span{font-size:.65rem;color:var(--muted)}
.product-review-name-score{display:grid;grid-template-columns:1fr auto;gap:2px 10px;align-items:center}
.product-name-rating-medium{grid-column:1/3;font:600 1.18rem 'Playfair Display',serif}
.shop-product-name-rating{display:block;text-decoration:none}
.shop-name-rating{font:600 1.03rem 'Playfair Display',serif}
.shop-name-rating-meta{display:flex;align-items:center;gap:5px;margin-top:3px;color:#765b52}
.shop-name-rating-meta strong{font-size:.62rem}.shop-name-rating-meta span{font-size:.56rem;color:var(--muted)}
.name-rating-control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px 13px;align-items:center;padding:13px 14px;border:1px solid #eadfd9;border-radius:10px;background:#fffaf7}
.name-rating-interactive{grid-column:1/3;width:100%;padding:4px 0 6px;border:0;background:transparent;text-align:left;cursor:ew-resize}
.name-rating-live{font:600 clamp(1.45rem,3vw,2.15rem) 'Playfair Display',serif;letter-spacing:-.025em}
.name-rating-control input[type="range"]{width:100%;accent-color:#df8a64}
.name-rating-control output{min-width:48px;font-weight:700;color:#63483f;font-size:.75rem}
.product-top-rating,.shop-product-rating{display:none!important}
@media(max-width:650px){.product-name-rating-link{align-items:flex-start;flex-direction:column;gap:4px}.product-name-rating-meta{padding-bottom:0}}

/* V1.49.3 — pédagogie de la notation signature */
.review-rating-field>label{display:block;margin-bottom:4px;font-weight:700;color:#5f463e}
.name-rating-help{margin:0 0 10px;color:#8b756d;font-size:.78rem;line-height:1.45}
.name-rating-help-wide{grid-column:1/3}
.name-rating-control{grid-template-columns:minmax(0,1fr) auto;padding:16px 17px 13px}
.name-rating-interactive{position:relative;display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:45px;padding:3px 0 8px}
.name-rating-gesture{flex:0 0 auto;color:#a6877c;font-size:.67rem;font-weight:600;transition:opacity .18s ease}
.name-rating-control.has-interacted .name-rating-gesture{opacity:0}
.name-rating-value{grid-column:2;grid-row:3;min-width:86px;text-align:right;font:600 1.65rem 'Playfair Display',serif;color:#60443b;line-height:1}
.name-rating-value small{margin-left:2px;font-size:.78rem;color:#9b8279}
.name-rating-range{grid-column:1;grid-row:3;opacity:.52;height:16px;transition:opacity .18s ease}
.name-rating-range:hover,.name-rating-range:focus{opacity:1}
.name-rating-precision{grid-column:1/3;color:#a08c84;font-size:.62rem;line-height:1.35}
.name-rating-interactive:focus-visible{outline:2px solid #d99a77;outline-offset:5px;border-radius:4px}
@media(max-width:650px){.name-rating-interactive{display:block}.name-rating-gesture{display:block;margin-top:7px}.name-rating-value{font-size:1.45rem}}


/* =========================================================
   V1.49.4 — NOTATION PAR BOUCLES D'OREILLES BEAUTY ÉCLAT
   ========================================================= */
.earring-rating{display:inline-flex;align-items:center;gap:3px}
.earring-mark{display:inline-block;width:17px;height:25px}
.earring-mark svg{display:block;width:100%;height:100%;overflow:visible}
.earring-hook,.earring-stem{fill:none;stroke:#b99672;stroke-width:1.55;stroke-linecap:round}
.earring-drop-base{fill:#f4ebe6;stroke:#b99672;stroke-width:1.35}
.earring-drop-fill{
    fill:#df806f;stroke:none;
    clip-path:inset(calc(100% - var(--earring-fill)) 0 0 0);
}
.product-earring-rating-link{display:inline-flex;align-items:center;gap:8px;text-decoration:none;padding-bottom:5px}
.earring-rating-top .earring-mark{width:16px;height:24px}
.earring-rating-meta{font-size:.66rem;color:#8a7269}
.earring-rating-meta strong{font-size:.76rem;color:#644a41}
.product-review-earring-score{display:grid;grid-template-columns:auto auto;align-items:center;gap:2px 8px}
.product-review-earring-score .earring-rating{grid-column:1/3}
.earring-rating-summary .earring-mark{width:18px;height:27px}
.shop-earring-rating{display:flex;align-items:center;gap:6px;margin-top:4px;text-decoration:none;color:#8a7269}
.earring-rating-shop .earring-mark{width:12px;height:18px}
.shop-earring-rating>span{font-size:.56rem}.shop-earring-rating strong{font-size:.62rem;color:#674c43}

.earring-rating-control{padding:15px 16px;border:1px solid #eadfd9;border-radius:11px;background:#fffaf7}
.earring-rating-question{display:flex;align-items:flex-end;gap:10px;margin-bottom:10px}
.earring-choice{
    --choice-fill:0%;
    position:relative;border:0;background:transparent;padding:2px 3px;cursor:pointer;
    transform-origin:50% 5%;transition:transform .16s ease
}
.earring-choice .single-earring .earring-mark{width:29px;height:43px}
.earring-choice .earring-drop-fill{
    clip-path:inset(calc(100% - var(--choice-fill)) 0 0 0)
}
.earring-choice.is-preview{transform:translateY(-2px) rotate(3deg)}
.earring-choice.is-preview .earring-drop-fill{clip-path:inset(0 0 0 0)}
.earring-choice:hover{animation:beautyEarringSwing .45s ease-in-out}
@keyframes beautyEarringSwing{0%,100%{transform:rotate(0)}30%{transform:rotate(6deg)}70%{transform:rotate(-4deg)}}
.earring-rating-live{display:flex;align-items:baseline;gap:10px;margin:4px 0 7px}
.earring-rating-live output{font:600 1.45rem 'Playfair Display',serif;color:#60443b}
.earring-rating-live output small{font-size:.75rem;color:#967d74}
.earring-rating-live span{font-size:.68rem;color:#927b72}
.earring-rating-range{width:100%;height:14px;opacity:.48;accent-color:#df806f}
.earring-rating-range:hover,.earring-rating-range:focus{opacity:1}
.earring-rating-hint{display:block;margin-top:2px;font-size:.61rem;color:#a18d85}
@media(max-width:650px){
 .product-earring-rating-link{display:flex;align-items:center;padding-bottom:0}
 .earring-rating-question{gap:5px}
 .earring-choice .single-earring .earring-mark{width:25px;height:38px}
 .earring-rating-live{display:block}
 .earring-rating-live span{display:block;margin-top:2px}
}

/* V1.49.5 — cinq vraies boucles, dessin affiné */
.beauty-earring{display:inline-block;width:18px;height:27px;vertical-align:middle}
.beauty-earring svg{display:block;width:100%;height:100%;overflow:visible}
.beauty-earring-hook{fill:none;stroke:#b78d60;stroke-width:1.45;stroke-linecap:round}
.beauty-earring-link{fill:#f8f0e9;stroke:#b78d60;stroke-width:1.2}
.beauty-earring-ring{fill:none;stroke:#c39a6c;stroke-width:1.45}
.beauty-earring-stone-base{fill:#f4e9e4;stroke:#c39a6c;stroke-width:1.15}
.beauty-earring-stone-fill{fill:#df806f;stroke:#c67666;stroke-width:.65;clip-path:inset(calc(100% - var(--earring-fill)) 0 0 0)}
.earring-mark{display:none!important}
.earring-rating{gap:4px}.earring-rating .beauty-earring{width:17px;height:25px}
.earring-rating-summary .beauty-earring{width:19px;height:28px}.earring-rating-shop .beauty-earring{width:13px;height:20px}
.earring-rating-question{display:flex;align-items:flex-end;gap:12px;width:max-content;max-width:100%}
.earring-choice{--choice-fill:0%;width:39px;height:53px;display:grid;place-items:center;padding:3px;border:0;border-radius:9px;background:transparent;cursor:pointer;transform-origin:50% 7%;transition:.15s}
.earring-choice .single-earring{width:28px;height:41px;--earring-fill:var(--choice-fill)!important}
.earring-choice:hover,.earring-choice:focus-visible,.earring-choice.is-preview{background:#fff3ee}
.earring-choice.is-preview .beauty-earring{--earring-fill:100%!important}
.earring-choice:hover .beauty-earring,.earring-choice.is-preview .beauty-earring{animation:beautySwing1495 .42s ease-in-out}
@keyframes beautySwing1495{0%,100%{transform:rotate(0)}30%{transform:rotate(5deg)}68%{transform:rotate(-3deg)}}
@media(max-width:650px){.earring-rating-question{gap:6px}.earring-choice{width:34px;height:49px}.earring-choice .single-earring{width:25px;height:38px}}


/* =========================================================
   V1.49.6 — BOUCLES COEUR BEAUTY ÉCLAT
   ========================================================= */

/* Nouveau pendentif coeur */
.beauty-earring-heart-base{
    fill:#fff8f4;
    stroke:#b88c5f;
    stroke-width:1.45;
    stroke-linejoin:round;
}

.beauty-earring-heart-fill{
    fill:#df806f;
    stroke:#c97061;
    stroke-width:.8;
    stroke-linejoin:round;
    clip-path:inset(calc(100% - var(--earring-fill)) 0 0 0);
}

.beauty-earring-heart-shine{
    fill:none;
    stroke:#fff6f1;
    stroke-width:1.05;
    stroke-linecap:round;
    opacity:calc(var(--earring-fill) / 100);
}

/* On masque les anciens éléments devenus inutiles */
.beauty-earring-ring,
.beauty-earring-stone-base,
.beauty-earring-stone-fill{
    display:none!important;
}

/* Légère présence plus "bijou" */
.beauty-earring{
    filter:drop-shadow(0 1px 1px rgba(125,85,62,.08));
}

.earring-choice:hover .beauty-earring-heart-base,
.earring-choice.is-preview .beauty-earring-heart-base{
    fill:#fff1eb;
}

/* Remplissage en prévisualisation */
.earring-choice.is-preview .beauty-earring-heart-fill{
    clip-path:inset(0 0 0 0)!important;
}

/* Tailles harmonisées au coeur */
.earring-choice .single-earring{
    width:30px;
    height:44px;
}

.earring-rating-top .beauty-earring{
    width:18px;
    height:27px;
}

.earring-rating-summary .beauty-earring{
    width:20px;
    height:30px;
}

.earring-rating-shop .beauty-earring{
    width:14px;
    height:21px;
}

@media(max-width:650px){
    .earring-choice .single-earring{
        width:27px;
        height:40px;
    }
}


/* V1.50.1 — simulation locale du paiement */
.beauty-test-payment-info{border-left:3px solid #d78370;background:#fff7f3}
.beauty-test-payment-form{margin-top:16px;display:grid;gap:8px}
.beauty-test-payment-btn{
    width:100%;border:0;border-radius:12px;padding:14px 18px;
    background:#d77f6d;color:#fff;font:inherit;font-weight:750;cursor:pointer;
    box-shadow:0 7px 18px rgba(177,102,84,.18)
}
.beauty-test-payment-btn:hover{transform:translateY(-1px)}
.beauty-test-payment-form small{text-align:center;color:#806d64}
.beauty-test-confirm-card{
    max-width:720px;margin:40px auto;background:#fff;border:1px solid #eadfd8;
    border-radius:22px;padding:34px;box-shadow:0 14px 40px rgba(94,68,55,.08);text-align:center
}
.beauty-test-confirm-icon{
    width:62px;height:62px;border-radius:50%;display:grid;place-items:center;
    margin:12px auto;background:#edf7ef;color:#3d7b4b;font-size:1.8rem;font-weight:800
}
.beauty-test-confirm-summary{margin:24px 0;text-align:left;border-top:1px solid #eee1da;border-bottom:1px solid #eee1da}
.beauty-test-confirm-summary>div{display:flex;justify-content:space-between;gap:20px;padding:12px 0}
.beauty-test-confirm-summary .total{border-top:1px solid #eee1da;font-size:1.08rem}
.beauty-test-confirm-note{margin:22px 0;padding:16px;border-radius:14px;background:#fff7f3;text-align:left;color:#6f5a50}


/* V1.50.2 — vérification de commande plus claire */
.be-order-review-clear{display:grid;gap:20px}
.be-review-block{padding:20px;border:1px solid #eadfd9;border-radius:16px;background:#fff}
.be-review-block-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px}
.be-review-block-head h2{margin:0}
.be-review-block-head a{font-size:.9rem;font-weight:650}
.be-delivery-card{padding:14px 16px;border-radius:12px;background:#fff9f6}
.be-delivery-card p{margin:0 0 8px}.be-delivery-card p:last-child{margin-bottom:0}
.be-review-email{color:#d16f60}
.be-review-products{display:grid;gap:10px}
.be-review-product{display:grid;grid-template-columns:68px minmax(0,1fr) auto;gap:14px;align-items:center;padding:10px;border:1px solid #eee2dc;border-radius:13px;background:#fffdfa}
.be-review-product-photo{width:68px;height:68px;border-radius:11px;overflow:hidden;background:#faeee9;display:grid;place-items:center;color:#cc7564;font-weight:700}
.be-review-product-photo img{width:100%;height:100%;object-fit:cover}
.be-review-product-info{display:grid;gap:3px}
.be-review-product-info small,.be-review-product-info span{font-size:.86rem;color:#806d64}
.be-review-product-total{white-space:nowrap}
.be-reservation-note{margin-top:0}
.be-payment-summary .be-payment-total{margin-top:6px;padding-top:13px;border-top:1px solid #eadfd9;font-size:1.08rem}
.be-order-number{display:block;margin:9px 0 4px;color:#8a756b}
@media(max-width:650px){
 .be-review-block-head{align-items:flex-start;flex-direction:column;gap:6px}
 .be-review-product{grid-template-columns:58px 1fr}
 .be-review-product-photo{width:58px;height:58px}
 .be-review-product-total{grid-column:2}
}


/* V1.50.3 — réservation panier pendant une heure */
.be-cart-reservation{margin:10px 0;padding:10px 12px;border-radius:11px;display:grid;gap:3px;font-size:.86rem;line-height:1.4}
.be-cart-reservation.reserved{background:#f4f8f1;border:1px solid #dbe9d3;color:#52704b}
.be-cart-reservation.expired{background:#fff8ea;border:1px solid #eeddb9;color:#80652e}
.be-cart-reservation.unavailable{background:#fff1ef;border:1px solid #efc8c1;color:#a34f45}
.be-checkout-disabled{opacity:.55;cursor:not-allowed;pointer-events:none}


/* V1.50.10 — création vendue / épuisée */
.be-sold-product-card{max-width:720px;margin-inline:auto;text-align:center}
.be-sold-product-card h1{max-width:620px;margin-inline:auto}


/* Beauty Eclat V1.50.23 — bouton Stripe Checkout */
.be-payment-summary .beauty-test-payment-btn:not(:disabled) {
    background: #ef606a;
    color: #fff;
    cursor: pointer;
    pointer-events: auto;
    opacity: 1;
}
.be-payment-summary .beauty-test-payment-btn:not(:disabled):hover {
    background: #dc4f5a;
}

/* V1.50.24 — Confirmation de commande */
.be-thankyou-page{padding:48px 0 85px}
.be-thankyou-card{max-width:770px;margin:auto;text-align:center;background:#fff;border:1px solid #f0ddd6;border-radius:22px;padding:44px clamp(20px,5vw,60px);box-shadow:0 15px 45px rgba(92,49,35,.045)}
.be-thankyou-symbol{display:grid;place-items:center;margin:0 auto 18px;width:64px;height:64px;border-radius:50%;background:#edf7ef;color:#397c53;font-size:34px;font-weight:600}
.be-thankyou-wait{background:#fff5e8;color:#a97543}
.be-thankyou-card h1{font:600 clamp(1.45rem,3.1vw,2.35rem)/1.22 'Playfair Display',Georgia,serif;color:#49261e;margin:12px 0 18px;letter-spacing:-.025em}
.be-thankyou-intro{max-width:565px;margin:0 auto 27px;color:#82655a;line-height:1.75}
.be-thankyou-summary{background:#fffbf9;border:1px solid #f1e1da;border-radius:15px;padding:22px 26px;text-align:left;margin:28px 0}
.be-thankyou-summary-title{display:flex;gap:10px;align-items:center;justify-content:space-between;border-bottom:1px solid #efdfd8;padding-bottom:15px;margin-bottom:8px;color:#4c2a20;font-weight:600}
.be-thankyou-summary-title strong{font-size:.84rem;color:#a36e5f;overflow-wrap:anywhere}
.be-thankyou-line{display:flex;justify-content:space-between;gap:20px;padding:10px 0;color:#795b50;font-size:.94rem}
.be-thankyou-line strong{white-space:nowrap;color:#4b291e}
.be-thankyou-total{border-top:1px solid #e9d9d2;margin-top:7px;padding-top:16px;color:#4b291e;font-weight:700;font-size:1.04rem}
.be-thankyou-next{display:flex;gap:14px;text-align:left;background:#f7f8f2;border-radius:13px;padding:18px 21px;margin-bottom:28px;color:#536b50}
.be-thankyou-next>span{font-size:24px;line-height:1}.be-thankyou-next strong{display:block;margin-bottom:5px}.be-thankyou-next p{margin:0;line-height:1.6;font-size:.92rem}
.be-thankyou-button{display:inline-flex;align-items:center;justify-content:center;gap:16px;background:#ef606a;color:white!important;border-radius:9px;padding:14px 26px;font-weight:600;text-decoration:none;transition:background .2s}.be-thankyou-button:hover{background:#dc4f5a}
.be-thankyou-order-number{color:#8b675d}
@media(max-width:600px){.be-thankyou-page{padding:22px 0 45px}.be-thankyou-card{padding:32px 18px}.be-thankyou-summary{padding:16px}.be-thankyou-summary-title{align-items:flex-start;flex-direction:column}.be-thankyou-line{gap:8px}.be-thankyou-next{padding:15px}}

/* Beauty Éclat V1.50.33 — Actions élégantes de l'en-tête */
.header-inner{position:relative}
.header-actions{gap:12px}
.header-actions .be-action{width:43px;height:43px;border-radius:50%;transition:background .2s,transform .2s;color:#553329}
.header-actions .be-action:hover,.header-actions .be-action:focus-visible{background:#fff0ec;transform:translateY(-2px);outline-offset:2px}
.header-actions .be-action svg{display:block;width:25px;height:25px}
.header-actions .cart-link svg{width:33px;height:33px}
.header-actions .cart-count{top:-3px;right:-6px;display:flex;align-items:center;justify-content:center;font-size:11px;line-height:1;background:#ed6c7b}
.be-header-panel{position:absolute;right:0;top:calc(100% - 7px);width:min(440px,calc(100vw - 30px));z-index:120;background:#fffdfa;border:1px solid #f1dcd3;border-radius:18px;padding:22px;box-shadow:0 16px 42px rgba(82,45,33,.15);color:#57362e}
.be-header-panel[hidden]{display:none!important}
.be-header-panel label,.be-header-panel strong{font-weight:700;display:block;margin-bottom:12px}
.be-search-line{display:flex;gap:8px}
.be-search-line input{min-width:0;flex:1;border:1px solid #e7cfc7;border-radius:11px;padding:12px;font:inherit;background:#fff}
.be-search-line button{border:0;border-radius:11px;background:#ef7063;color:white;padding:10px 14px;cursor:pointer;font:inherit}
.be-header-panel p{font-size:.85rem;color:#886b63;margin:12px 0 0}
.be-account-panel a{display:inline-block;margin-top:15px;color:#d86c69;font-weight:700}
.be-search-result{margin-top:10px!important;font-size:.95rem}
.be-search-result a{margin-left:10px;color:#df6b67;text-decoration:underline}
@media(max-width:820px){.header-inner{grid-template-columns:100px 1fr auto auto!important;gap:8px}.header-actions{display:flex!important;grid-column:3;gap:3px}.header-actions .be-action{width:33px;height:33px}.header-actions .be-action svg{width:21px;height:21px}.header-actions .cart-link svg{width:29px;height:29px}.menu-toggle{grid-column:4}.be-header-panel{top:100%;right:0}.be-search-line{flex-wrap:wrap}.be-search-line button{flex:1}}

/* Beauty Éclat V1.50.34 — icônes signature, dessin vectoriel original */
.header-actions.be-signature-actions{gap:10px;align-items:center}
.header-actions.be-signature-actions .be-signature-action{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:54px;height:54px;border-radius:50%;background:radial-gradient(circle at 35% 28%,#fffaf8 0%,#ffefec 66%,#fae4df 100%);border:1px solid #f7e1dc;box-shadow:0 2px 9px rgba(130,75,58,.06);color:#633e32;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}
.header-actions.be-signature-actions .be-signature-action:hover,.header-actions.be-signature-actions .be-signature-action:focus-visible{background:#fff0eb;transform:translateY(-2px);box-shadow:0 5px 14px rgba(130,75,58,.12)}
.header-actions.be-signature-actions .be-signature-action svg,.header-actions.be-signature-actions .cart-link svg{width:42px;height:42px;flex:none}
.header-actions.be-signature-actions .cart-count{top:-5px;right:-6px;z-index:2;min-width:21px;height:21px;border-radius:50%;background:#e95573;color:white;border:2px solid white;font-size:11px}
@media(max-width:820px){.header-actions.be-signature-actions{gap:4px}.header-actions.be-signature-actions .be-signature-action{width:35px;height:35px}.header-actions.be-signature-actions .be-signature-action svg,.header-actions.be-signature-actions .cart-link svg{width:31px;height:31px}.header-actions.be-signature-actions .cart-count{top:-5px;right:-4px;min-width:17px;height:17px;font-size:9px}}
@media(prefers-reduced-motion:reduce){.header-actions.be-signature-actions .be-signature-action{transition:none}}

/* V1.50.35 — Bandeau compact Beauty Éclat, hauteur d'origine préservée */
.topbar-inner{min-height:42px;height:42px;gap:12px;white-space:nowrap}
.topbar-inner>.be-topbar-made,.topbar-inner>.be-topbar-delivery{font-size:clamp(10px,.88vw,13px);min-width:0}
.be-topbar-social{display:inline-flex;align-items:center;justify-content:flex-end;gap:9px;flex-shrink:0;font-size:clamp(10px,.85vw,13px)}
.be-topbar-heart{color:#cf7c84;font-size:15px}
.be-topbar-social a{display:inline-flex;align-items:center;justify-content:center;width:25px;height:25px;border:1px solid rgba(190,102,100,.25);border-radius:50%;color:#9d5560;background:rgba(255,255,255,.38);transition:background .2s,transform .2s,color .2s}
.be-topbar-social a svg{width:14px;height:14px;display:block}
.be-topbar-social a:hover,.be-topbar-social a:focus-visible{background:#fff;color:#c45c6d;transform:translateY(-1px)}
@media (max-width:1100px){.be-topbar-delivery{display:none!important}}
@media (max-width:820px){.topbar-inner>.be-topbar-made{display:block;font-size:11px;text-align:center;overflow:hidden;text-overflow:ellipsis}.be-topbar-social{display:none!important}}
@media (prefers-reduced-motion:reduce){.be-topbar-social a{transition:none}}

/* Beauty Éclat V1.51.37 : photos de créations dans des cadres carrés. */
.products-section .product-photo-card,
.shop-products-grid .product-photo-card,
.product-card .product-image,
.shop-products-grid .product-image {aspect-ratio:1/1!important;height:auto!important;min-height:0!important;overflow:hidden}
.product-card .product-real-photo,
.products-section .product-real-photo,
.shop-products-grid .product-real-photo {object-fit:contain!important;object-position:center!important}
.product-page .product-main-image {aspect-ratio:1/1!important;height:auto!important;min-height:0!important;max-height:none!important;background:#f8f3ef}
.product-page .product-main-image.has-real-photo > img {object-fit:contain!important}
.product-page .product-thumbs .thumb {aspect-ratio:1/1}
.product-page .product-thumbs .thumb img {object-fit:contain!important}

/* Beauty Éclat V1.51.38 : note artisanale des boucles d’oreilles */
.be-artisan-note { margin: 18px 0 4px; padding: 15px 18px; border: 1px solid #f1dcd3; border-radius: 12px; background: #fff8f5; color: #80564c; line-height: 1.65; font-size: .94rem; }

/* V1.51.39 — Alertes de retour en stock */
.be-stock-alert-form{margin:1.5rem auto;padding:1.5rem;background:#fff5f2;border:1px solid #efd8d0;border-radius:16px;max-width:530px;text-align:left}
.be-stock-alert-form h2{font-size:1.3rem;margin:0 0 .6rem;color:#794e4a}
.be-stock-alert-form form{display:flex;flex-wrap:wrap;gap:.6rem;margin:.9rem 0}
.be-stock-alert-form label{width:100%;font-size:.9rem}
.be-stock-alert-form input{flex:1;min-width:180px;padding:.8rem;border:1px solid #dec6bf;border-radius:8px}
.be-stock-alert-form button{border:0;border-radius:8px;background:#b97581;color:#fff;padding:.8rem 1rem;cursor:pointer}
.be-stock-alert-form small{color:#846f6c}
.be-stock-alert-success{color:#317451}.be-stock-alert-error{color:#a62b3a}

/* V1.51.42 : alertes visibles sur les fiches complètes et dans les cartes */
.be-alert-card-link{display:inline-block;margin-top:.45rem;color:#9c5965;font-size:.88rem;font-weight:600;text-decoration:underline;text-underline-offset:3px;position:relative;z-index:2}
.be-alert-card-link:hover,.be-alert-card-link:focus-visible{color:#733944}
.product-info .availability.sold-out,.product-info .product-stock-label.sold-out{display:inline-block;white-space:normal;line-height:1.4}
.product-page .be-stock-alert-form{margin:1rem 0 1.75rem;max-width:none;text-align:left;scroll-margin-top:110px}
.product-page .be-stock-alert-form form{align-items:end}
@media(max-width:600px){.product-page .be-stock-alert-form form{display:block}.product-page .be-stock-alert-form input,.product-page .be-stock-alert-form button{display:block;width:100%;margin-top:.55rem}}

/* Beauty Éclat V1.51.49 — espace client */
.be-client-page{max-width:1080px;margin:0 auto;padding:35px 0 70px}.be-client-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px;margin:25px 0}.be-client-columns .checkout-form{width:100%;max-width:none}.be-client-columns h2{font-size:1.4rem;margin:0 0 15px}.be-client-success{background:#f0f7ef;padding:15px;border-radius:12px}.be-client-link-button{border:1px solid #c77f88;border-radius:25px;background:white;color:#a55b69;padding:10px 20px;cursor:pointer}.be-client-checkout-note{padding:12px 18px;background:#fff5f2;border-radius:12px;margin-bottom:20px}@media(max-width:760px){.be-client-columns{grid-template-columns:1fr}}

/* Beauty Eclat V1.51.53 — espace client et renvoi de confirmation contextuel */
.be-account-shell{background:linear-gradient(180deg,#fff9f7 0,#fff 390px);overflow:hidden}
.be-account-shell .be-client-page{max-width:1160px;padding:34px 0 78px}
.be-account-hero{position:relative;display:flex;justify-content:space-between;align-items:center;min-height:180px;margin-bottom:28px;padding:28px 36px;border:1px solid #f3ded8;border-radius:24px;background:radial-gradient(circle at 88% 10%,#f8dfd6 0,transparent 33%),linear-gradient(110deg,#fff,#fff2ed);overflow:hidden}
.be-account-hero-copy{position:relative;z-index:1}.be-account-hero h1{margin:9px 0 12px;color:#54312f;font:600 clamp(2.3rem,5vw,3.8rem) 'Playfair Display',Georgia,serif}.be-account-hero p{max-width:540px;color:#8b6b65;line-height:1.6;margin:0}.be-account-hero-art{position:absolute;right:42px;top:6px;display:flex;align-items:center;gap:10px;transform:rotate(-13deg);color:#d48d83;opacity:.65;font-size:65px}.be-account-hero-art span:nth-child(2){font-size:95px;color:#e8b8aa}.be-account-hero-art span:nth-child(3){font-size:45px}
.be-account-welcome{display:flex;align-items:center;gap:20px;padding:23px 28px;border:1px solid #f0d9d5;border-radius:20px;background:linear-gradient(105deg,#fceae7,#fff7f3);box-shadow:0 12px 30px rgba(124,67,63,.06)}.be-account-avatar{flex:0 0 74px;width:74px;height:74px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(135deg,#f2b6ae,#c9797d);color:#fff;font-size:2.1rem;font-weight:600}.be-account-welcome-text{flex:1;min-width:0}.be-account-welcome h2{margin:0 0 7px;font:600 1.9rem 'Playfair Display',Georgia,serif;color:#603c3a}.be-account-welcome p{margin:0;color:#8a6965;overflow-wrap:anywhere}.be-account-logout{margin:0}
.be-account-shell .be-client-columns{gap:20px;margin:20px 0;align-items:stretch}.be-account-shell .be-account-card{border:1px solid #f0dfd9;border-radius:20px;background:#fff;box-shadow:0 12px 32px rgba(107,62,56,.045);padding:28px}.be-account-card-head{display:flex;align-items:center;gap:16px;margin-bottom:25px}.be-account-card-head h2{font:600 1.65rem 'Playfair Display',Georgia,serif;color:#593634;margin:0 0 5px}.be-account-card-head p{margin:0;color:#947b75;font-size:.9rem;line-height:1.5}.be-account-icon{display:grid;place-items:center;flex:0 0 57px;width:57px;height:57px;border-radius:50%;background:#fae3df;color:#ad6a6c;font-size:1.8rem}.be-account-shell .checkout-form label{font-size:.82rem;color:#705450}.be-account-shell .checkout-form input{border-color:#e7d5d0;border-radius:10px;padding:12px 14px}.be-account-shell .checkout-form input:focus{border-color:#d38a8c;outline:3px solid #f9e7e4}.be-account-shell .checkout-next,.be-account-shop-link{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:11px;background:linear-gradient(110deg,#ee6773,#f48689);color:#fff;text-decoration:none;font-weight:700;padding:13px 22px;cursor:pointer}.be-account-shell .checkout-next:hover,.be-account-shop-link:hover{filter:brightness(.97)}.be-account-shell .be-client-link-button{border:1px solid #e99b9f;background:#fff9f8;color:#b95f68;border-radius:11px;font-weight:600}.be-account-footnote{margin:17px 0 0}.be-account-footnote a{color:#b65e68;text-underline-offset:3px}
.be-orders-card{display:flex;flex-direction:column}.be-orders-empty{display:flex;flex:1;min-height:280px;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:26px 14px}.be-orders-empty-icon{display:grid;place-items:center;width:90px;height:90px;border-radius:50%;background:#f9eeeb;color:#b67b79;font-size:3rem;margin-bottom:18px}.be-orders-empty h3{max-width:330px;font:600 1.4rem 'Playfair Display',Georgia,serif;color:#603c3a;margin:0 0 12px}.be-orders-empty p{color:#8b7570;line-height:1.6;margin:0 0 24px}.be-account-invoice-note{font-size:.78rem;color:#a28d86;border-top:1px solid #f5e8e3;padding-top:17px;margin-top:auto}.be-account-order-list{display:grid;gap:12px;margin-bottom:22px}.be-account-order{display:flex;gap:8px 16px;flex-wrap:wrap;padding:13px;border-radius:10px;background:#fff8f5;color:#745b55;font-size:.9rem}.be-account-order strong{color:#573b37}.be-account-resend{display:grid;grid-template-columns:1fr 1fr;gap:25px;padding:25px;margin:20px 0;border:1px solid #efdad4;border-radius:18px;background:#fff8f5}.be-account-resend h2{font:600 1.35rem 'Playfair Display',Georgia,serif;color:#603c3a}.be-account-resend p{color:#8b7069;line-height:1.6}.be-account-resend label{display:block;font-size:.85rem;color:#705450}.be-account-resend input{display:block;width:100%;box-sizing:border-box;margin:8px 0 12px;padding:12px;border:1px solid #e7d5d0;border-radius:9px}.be-account-shell .be-client-success{background:#f0f7ef;border:1px solid #dce9d9;color:#46634c;margin:0 0 18px}.be-account-shell .checkout-error{margin:0 0 18px}
@media(max-width:760px){.be-account-shell .be-client-page{padding:18px 0 46px}.be-account-hero{padding:24px 20px;min-height:140px}.be-account-hero-art{right:-10px;opacity:.15}.be-account-welcome{flex-wrap:wrap;padding:18px;gap:12px}.be-account-avatar{flex-basis:55px;width:55px;height:55px;font-size:1.6rem}.be-account-welcome h2{font-size:1.5rem}.be-account-logout{width:100%}.be-account-logout button{width:100%}.be-account-shell .be-account-card{padding:20px}.be-account-resend{grid-template-columns:1fr}.be-account-card-head{gap:12px}.be-account-card-head h2{font-size:1.4rem}}

/* Beauty Éclat V1.51.54 — espace client compact, sans modifier les autres pages */
@media(min-width:761px){
 .be-account-shell .be-client-page{padding-top:14px;padding-bottom:32px;max-width:1120px}
 .be-account-hero{min-height:0;margin-bottom:12px;padding:14px 24px;border-radius:17px}
 .be-account-hero h1{font-size:clamp(1.75rem,2.9vw,2.45rem);margin:3px 0 4px;line-height:1.15}
 .be-account-hero p{font-size:.88rem;line-height:1.35;max-width:none}
 .be-account-hero .eyebrow{font-size:.65rem}
 .be-account-hero-art{right:25px;top:0;font-size:38px;gap:7px}
 .be-account-hero-art span:nth-child(2){font-size:57px}
 .be-account-hero-art span:nth-child(3){font-size:28px}
 .be-account-welcome{padding:9px 18px;gap:13px;border-radius:15px}
 .be-account-avatar{flex-basis:42px;width:42px;height:42px;font-size:1.2rem}
 .be-account-welcome h2{font-size:1.28rem;margin-bottom:1px}
 .be-account-welcome p{font-size:.79rem}
 .be-account-shell .be-client-link-button{padding:7px 12px;font-size:.8rem}
 .be-account-shell .be-client-columns{gap:14px;margin:13px 0}
 .be-account-shell .be-account-card{padding:17px 19px;border-radius:16px}
 .be-account-card-head{gap:10px;margin-bottom:13px}
 .be-account-card-head h2{font-size:1.3rem;margin-bottom:2px}
 .be-account-card-head p{font-size:.78rem;line-height:1.3}
 .be-account-icon{flex-basis:38px;width:38px;height:38px;font-size:1.2rem}
 .be-profile-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 12px}
 .be-profile-fields label{margin:0;min-width:0}
 .be-profile-fields label:nth-child(3){grid-column:1/-1}
 .be-account-shell .be-profile-fields input{box-sizing:border-box;width:100%;padding:8px 10px;min-height:36px;margin-top:4px}
 .be-profile-card .checkout-next{margin-top:12px;padding:10px 15px;width:100%}
 .be-orders-empty{min-height:130px;padding:12px 8px}
 .be-orders-empty-icon{width:48px;height:48px;font-size:1.8rem;margin-bottom:8px}
 .be-orders-empty h3{font-size:1.1rem;margin-bottom:6px}
 .be-orders-empty p{font-size:.84rem;line-height:1.35;margin-bottom:11px}
 .be-account-shop-link{padding:9px 14px;font-size:.84rem}
 .be-account-invoice-note{padding-top:10px;font-size:.72rem}
 .be-account-order-list{gap:6px;margin-bottom:10px;max-height:330px;overflow:auto}
 .be-account-order{padding:8px;font-size:.8rem}
}
@media(max-width:760px){
 .be-account-hero{padding:17px 18px;min-height:0;margin-bottom:13px}
 .be-account-hero h1{font-size:2rem;margin:5px 0}
 .be-account-shell .be-client-page{padding-top:14px}
 .be-account-welcome{padding:12px 15px}
 .be-account-shell .be-client-columns{gap:13px;margin:13px 0}
 .be-account-shell .be-account-card{padding:17px}
 .be-account-card-head{margin-bottom:13px}
 .be-orders-empty{min-height:130px;padding:12px}
 .be-orders-empty-icon{width:55px;height:55px;font-size:2rem;margin-bottom:10px}
 .be-orders-empty p{margin-bottom:12px}
 .be-profile-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .be-profile-fields label{min-width:0;margin:0}
 .be-profile-fields label:nth-child(3),.be-profile-fields label:nth-child(4){grid-column:1/-1}
 .be-profile-fields input{box-sizing:border-box;width:100%}
}
@media(max-width:390px){.be-profile-fields{grid-template-columns:1fr}.be-profile-fields label{grid-column:1/-1}}

/* V1.51.55 — effet de survol du bouton de déconnexion de l’espace client */
.be-account-shell .be-account-logout .be-client-link-button{transition:background-color .22s ease,color .22s ease,border-color .22s ease,box-shadow .22s ease,transform .22s ease}
.be-account-shell .be-account-logout .be-client-link-button:hover{background-color:#e77f8a;color:#fff;border-color:#e77f8a;box-shadow:0 5px 13px rgba(185,95,104,.16);transform:translateY(-1px)}
.be-account-shell .be-account-logout .be-client-link-button:focus-visible{outline:2px solid #b95f68;outline-offset:3px}
@media(prefers-reduced-motion:reduce){.be-account-shell .be-account-logout .be-client-link-button{transition:none}.be-account-shell .be-account-logout .be-client-link-button:hover{transform:none}}

/* V1.51.56 — Parcours mot de passe, style harmonisé à l’espace client */
.be-account-flow .be-client-page{max-width:900px}
.be-account-flow .be-account-hero{margin-bottom:16px}
.be-account-flow-card{max-width:620px;margin:0 auto;background:#fff;border:1px solid #f0dcd6;border-radius:18px;padding:30px 36px;text-align:center;box-shadow:0 12px 32px rgba(107,62,56,.05)}
.be-account-flow-icon{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 12px;border-radius:50%;background:#fae3df;color:#b56e76;font-size:1.8rem}
.be-account-flow-card h2{font:600 clamp(1.35rem,2.5vw,1.75rem) 'Playfair Display',Georgia,serif;color:#593634;margin:0 0 10px}
.be-account-flow-card>p{color:#82645f;line-height:1.6;margin:0 auto 16px;max-width:490px}
.be-account-flow-card .be-account-flow-note{font-size:.87rem;color:#967c76;margin:8px auto 20px}
.be-account-flow .be-account-flow-form{width:100%;max-width:440px;margin:18px auto 10px;text-align:left}
.be-account-flow .be-account-flow-form label{display:block;color:#705450;font-size:.87rem}
.be-account-flow .be-account-flow-form input{width:100%;box-sizing:border-box;border:1px solid #e7d5d0;border-radius:10px;padding:12px 14px}
.be-account-flow .be-account-flow-form .checkout-next{width:100%;margin-top:12px}
.be-account-flow-button{display:inline-flex;align-items:center;justify-content:center;background:linear-gradient(110deg,#ee6773,#f48689);border-radius:11px;padding:12px 22px;color:#fff!important;text-decoration:none;font-weight:700;transition:transform .2s,box-shadow .2s,filter .2s}
.be-account-flow-button:hover,.be-account-flow .checkout-next:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(215,103,114,.2);filter:brightness(.97)}
.be-account-flow-textlink{display:inline-block;margin-top:10px;color:#a85f69;text-underline-offset:3px}
@media(max-width:760px){.be-account-flow-card{padding:24px 18px}.be-account-flow .be-account-hero{padding:17px 18px}.be-account-flow .be-account-hero h1{font-size:1.8rem}}

/* V1.51.57 — L’icône du compte est désormais un lien direct. */
.header-actions a.icon-button.be-signature-action{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}
.header-actions a.icon-button.be-signature-action:focus-visible{outline:2px solid #d66c76;outline-offset:3px}

/* V1.51.61 — Titre du récapitulatif sur une ligne sur écran large. */
@media (min-width: 821px) {
  .be-checkout-review-heading { max-width: none; }
  .be-checkout-review-heading h1 { font-size: clamp(1.7rem, 2.6vw, 2.65rem); white-space: nowrap; }
}

/* V1.51.64 — Compte facultatif intégré à la commande */
.be-checkout-account{padding:20px 22px;border:1px solid #eed7d5;border-radius:16px;background:#fff8f6;margin:0 0 24px}
.be-checkout-account h2{font-size:1.22rem;margin:0 0 8px;color:#a85d68}
.be-checkout-account p{margin:0 0 12px;line-height:1.55}
.be-checkout-account-choices{display:grid;gap:9px;margin:14px 0}
.be-checkout-account-choices label{display:flex;align-items:center;gap:9px;cursor:pointer;font-weight:normal}
.be-checkout-account-choices input{width:auto;flex:none;accent-color:#a85d68}
#be-account-password[hidden]{display:none!important}
#be-account-password{padding-top:10px}
#be-account-password .be-account-hint{font-size:.84rem;color:#7e6669;margin-top:6px}

/* V1.51.66 : titre de livraison et mot de passe */
@media (min-width: 850px){.checkout-heading h1{font-size:clamp(1.9rem,3.2vw,2.8rem);white-space:nowrap}.checkout-heading{max-width:none}}
.be-password-control{display:flex;align-items:center;gap:8px;position:relative}.be-password-control input{flex:1;min-width:0}.be-password-eye{border:1px solid #dec4ca;background:white;color:#94586a;border-radius:8px;padding:8px;cursor:pointer}.be-password-status{font-size:21px;font-weight:700;min-width:20px}.be-password-status.invalid{color:#b72d3b}.be-password-status.valid{color:#238250}

/* V1.51.68 - Mot de passe avec controle instantane */
.be-password-field{display:flex;align-items:center;gap:9px;position:relative;margin-top:5px;flex-wrap:wrap}
.be-password-field input{flex:1 1 200px;min-width:0;padding-right:12px}
.be-password-toggle{flex:0 0 42px;width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center;background:#fff;border:1px solid #decbd0;border-radius:10px;color:#a05d70;cursor:pointer}
.be-password-toggle:hover,.be-password-toggle:focus-visible{background:#fff2f5;outline:2px solid #d8a5b2;outline-offset:1px}
.be-password-status{flex:1 0 100%;font-size:.85rem;font-weight:600;min-height:1.3em}
.be-password-status.is-invalid{color:#b33042}.be-password-status.is-valid{color:#207a48}

/* V1.51.69 — espace client : champ de mot de passe pleine largeur */
#inscription label .be-password-control{display:flex;width:100%;max-width:100%;box-sizing:border-box;align-items:center;gap:9px;margin-top:5px;flex-wrap:nowrap}
#inscription label .be-password-control input{display:block;width:auto;min-width:0;flex:1 1 0%;box-sizing:border-box;margin:0}
#inscription label .be-password-control .be-password-eye{display:inline-flex;flex:0 0 44px;width:44px;height:44px;align-items:center;justify-content:center;padding:0;font-size:19px;line-height:1;cursor:pointer}
#inscription label .be-password-control .be-password-status{display:inline-flex;flex:0 0 20px;min-width:20px;justify-content:center;align-items:center;font-size:21px}
@media(max-width:480px){#inscription label .be-password-control{gap:6px}#inscription label .be-password-control .be-password-eye{flex-basis:42px;width:42px;height:42px}}

/* Beauty Éclat V1.51.72 — filtres doux et instantanés */
.shop-layout.be-shop-layout{display:block}
.be-shop-filters{margin:0 0 18px;border:1px solid #ead8dc;border-radius:18px;background:#fffaf9;overflow:hidden;box-shadow:0 8px 26px rgba(135,72,90,.055)}
.be-filters-details>summary{cursor:pointer;list-style:none;padding:19px 24px;display:flex;justify-content:space-between;align-items:center;gap:15px;color:#97596b;font:600 1.16rem 'Playfair Display',serif}
.be-filters-details>summary::-webkit-details-marker{display:none}
.be-filter-summary-right{font:500 .8rem sans-serif;color:#a17a84}
.be-filters-inner{border-top:1px solid #f0e1e3;padding:20px 24px;display:grid;grid-template-columns:1fr 1.4fr;gap:22px 34px}
.be-filter-fieldset{border:0;margin:0;padding:0;min-width:0}
.be-filter-fieldset legend{font-weight:600;color:#6f505a;margin-bottom:14px;font-size:.94rem}
.be-filter-pills,.be-color-pills{display:flex;gap:9px;flex-wrap:wrap}
.be-budget-pill,.be-color-choice{cursor:pointer;position:relative}
.be-budget-pill input,.be-color-choice input{position:absolute;opacity:0;width:1px;height:1px}
.be-budget-pill span{display:block;border:1px solid #e9d5da;background:white;border-radius:99px;padding:9px 17px;font-size:.88rem;color:#825765;transition:.15s}
.be-budget-pill input:checked+span{background:#f7dfe6;border:2px solid #ba7b8e;padding:8px 16px;font-weight:700}
.be-budget-pill input:focus-visible+span,.be-color-choice input:focus-visible+.be-color-dot{outline:3px solid #a66a80;outline-offset:3px}
.be-color-choice{display:flex;flex-direction:column;align-items:center;gap:5px;min-width:43px}
.be-color-dot{background:var(--be-swatch);border:1px solid #d3c8cb;width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;transition:.15s}
.be-color-dot>span{display:none;color:#603b48;font-weight:800;text-shadow:0 1px 2px #fff}
.be-color-choice input:checked+.be-color-dot{outline:2px solid #ac6b80;outline-offset:2px}
.be-color-choice input:checked+.be-color-dot>span{display:block}
.be-color-name{font-size:.72rem;color:#7c6970}
.be-filter-hint{font-size:.75rem;color:#8d7a80;margin:10px 0 0}
.be-filter-stock label{display:flex;gap:16px;align-items:center;justify-content:space-between;max-width:350px;cursor:pointer;color:#75535f}
.be-filter-stock strong{display:block;font-size:.91rem}
.be-filter-stock small{display:block;color:#9d8990;font-size:.75rem;margin-top:4px}
.be-filter-stock input{width:20px;height:20px;accent-color:#b97a8b;cursor:pointer}
.be-filter-footer{display:flex;align-items:center;justify-content:flex-end}
.be-clear-filters{color:#a4667a;text-decoration:underline;text-underline-offset:3px;font-size:.85rem}
.be-shop-category-tabs{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 24px}
.be-shop-category-tabs a{border:1px solid #ead9dd;border-radius:50px;padding:9px 16px;color:#805b66;font-size:.85rem;background:#fff}
.be-shop-category-tabs a.active{background:#f9e7ec;border-color:#c78d9d;color:#8c4c61;font-weight:700}
.be-shop-loading{opacity:.55;transition:opacity .18s;pointer-events:none}
@media(max-width:750px){.be-filters-inner{grid-template-columns:1fr;padding:18px;gap:23px}.be-filters-details>summary{padding:16px 18px}.be-shop-category-tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px}.be-shop-category-tabs a{white-space:nowrap}}

/* Beauty Éclat V1.51.74 — encarts illustrés des points de rencontre */
.be-meeting-card{grid-template-columns:minmax(125px,32%) 1fr;min-height:165px}
.be-meeting-picture{display:flex;align-items:center;justify-content:center;background:#f9e8e2;min-height:165px;overflow:hidden}
.be-meeting-picture img{display:block;width:100%;height:100%;max-height:240px;object-fit:contain}
.be-meeting-card .findme-card-body{align-self:center}
.be-meeting-card .findme-link{display:inline-block;margin-top:10px;color:#bd5b66}
@media(max-width:560px){.be-meeting-card{grid-template-columns:35% 1fr}.be-meeting-card .findme-card-body{padding:13px}.be-meeting-picture img{max-height:205px}}

/* Beauty Éclat V1.51.75 — lisibilité des encarts « Où me retrouver ? » */
.be-meeting-card .findme-card-body{padding:22px 25px;align-self:center}
.be-meeting-card .findme-card-topline{margin-bottom:8px}
.be-meeting-card .findme-card-topline>span{font-size:.72rem;letter-spacing:.1em}
.be-meeting-card h3{font-size:1.34rem;line-height:1.28;margin-bottom:12px}
.be-meeting-card .findme-meta{font-size:.96rem;line-height:1.5;gap:8px}
.be-meeting-card .findme-card-body>p{font-size:.94rem;line-height:1.65;margin-top:10px}
.be-meeting-card .be-meeting-description{margin-top:14px!important}
.be-meeting-card .be-meeting-route{display:inline-flex;align-items:center;gap:6px;margin-top:16px;padding:9px 14px;border:1px solid #e8cbd0;border-radius:999px;background:#fff5f5;color:#a04e62;font-size:.9rem;font-weight:600;text-decoration:none;transition:background .15s}
.be-meeting-card .be-meeting-route:hover{background:#fbe5e9}
@media(max-width:560px){.be-meeting-card .findme-card-body{padding:15px 14px}.be-meeting-card h3{font-size:1.15rem}.be-meeting-card .findme-card-topline>span{font-size:.65rem}.be-meeting-card .findme-meta{font-size:.86rem}.be-meeting-card .findme-card-body>p{font-size:.86rem;line-height:1.55}.be-meeting-card .be-meeting-route{font-size:.82rem;padding:8px 11px}}

/* V1.51.76 — Rencontres : en-tête épuré et affiche agrandie, toujours à gauche */
.findme-home .findme-heading{align-items:center;margin-bottom:22px}
.findme-home .be-findme-main-title{font:600 clamp(1.9rem,3vw,2.6rem)/1.2 'Playfair Display',Georgia,serif;color:#593333;margin:0}
.findme-columns.one-column{grid-template-columns:minmax(0,920px)}
.findme-home .be-meeting-card,.findme-page .be-meeting-card{grid-template-columns:minmax(185px,38%) minmax(0,1fr)}
.findme-home .be-meeting-picture,.findme-page .be-meeting-picture{min-height:260px;padding:12px;background:#f9e8e2}
.findme-home .be-meeting-picture img,.findme-page .be-meeting-picture img{width:100%;height:auto;max-height:390px;object-fit:contain}
.be-meeting-card .be-meeting-facebook{display:inline-flex;align-items:center;margin:12px 0 0 8px;padding:9px 14px;border:1px solid #d9dfea;border-radius:999px;background:#f5f7fc;color:#345a9a;font-size:.9rem;font-weight:600;text-decoration:none}
.be-meeting-card .be-meeting-facebook:hover{background:#eaf0fc}
@media(max-width:700px){
 .findme-home .be-meeting-card,.findme-page .be-meeting-card{grid-template-columns:minmax(110px,38%) minmax(0,1fr)}
 .findme-home .be-meeting-picture,.findme-page .be-meeting-picture{min-height:180px;padding:7px}
 .findme-home .be-meeting-picture img,.findme-page .be-meeting-picture img{max-height:290px}
 .be-meeting-card .be-meeting-facebook{margin-left:0;font-size:.82rem}
}
@media(max-width:420px){.findme-home .be-meeting-card,.findme-page .be-meeting-card{grid-template-columns:40% minmax(0,1fr)}.be-meeting-card .be-meeting-facebook{padding:8px 10px}}

/* V1.51.77 — affichage du mot de passe sur la connexion client */
.be-login-password-wrap { position: relative; display: block; width: 100%; }
.checkout-form .be-login-password-wrap input { display: block; width: 100%; box-sizing: border-box; padding-right: 3.4rem !important; }
.be-login-password-toggle { position: absolute; top: 50%; right: .55rem; transform: translateY(-50%); display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; padding: 0; border: 0; border-radius: .6rem; background: transparent; color: #9f5a70; cursor: pointer; }
.be-login-password-toggle:hover { background: #fbe9ed; }
.be-login-password-toggle:focus-visible { outline: 2px solid #b76e7b; outline-offset: 2px; }

/* V1.51.78 — oeil de création de compte identique à celui de connexion */
#inscription .be-login-password-wrap { position:relative; display:block; width:100%; }
#inscription .be-login-password-wrap input { display:block; width:100%; box-sizing:border-box; padding-right:3.4rem !important; }
#inscription .be-login-password-wrap .be-login-password-toggle { right:.55rem; }
#inscription .be-password-status { display:inline-block; margin-top:5px; }

/* V1.51.79 — critères progressifs du mot de passe d'inscription */
#inscription .be-register-requirements { display:block; margin:4px 0 9px; font-size:12px; line-height:1.65; color:#bd3949; }
#inscription .be-register-requirements [data-rule] { color:#bd3949; transition:color .18s ease; }
#inscription .be-register-requirements [data-rule].is-met { color:#207d4a; font-weight:600; }
#inscription .be-register-password-wrap { position:relative; display:block; width:100%; }
#inscription .be-register-password-wrap input { display:block; width:100%; box-sizing:border-box; padding-right:3.4rem !important; transition:border-color .18s ease,box-shadow .18s ease; }
#inscription .be-register-password-wrap.is-valid input { border-color:#278653 !important; box-shadow:0 0 0 1px #278653 !important; }
#inscription .be-register-password-wrap .be-login-password-toggle { position:absolute; right:.55rem; top:50%; transform:translateY(-50%); display:inline-flex; align-items:center; justify-content:center; border:0; background:transparent; box-shadow:none; width:2.5rem; height:2.5rem; padding:0; color:#9f5a70; cursor:pointer; }
#inscription .be-register-password-wrap .be-login-password-toggle svg { display:block; width:21px; height:21px; }
#inscription .be-register-password-wrap .be-login-password-toggle:hover { background:#fbe9ed; }
#inscription .be-register-password-wrap .be-login-password-toggle:focus-visible { outline:2px solid #b76e7b; outline-offset:2px; }

/* V1.51.85 — Titres harmonisés sur ordinateur, tablette et mobile.
   Couleur rose corail doux de la charte, sans toucher aux boutons/alertes. */
:root { --be-heading-rose: #96505B; }
.section-heading h2,
.findme-home .be-findme-main-title,
.findme-page-section-title h2 {
    color: var(--be-heading-rose) !important;
}

/* V1.51.86 — Déclinaisons liées */
.be-linked-variants{margin:20px 0;padding:18px;border:1px solid #ead6db;border-radius:14px;background:#fffaf9}
.be-linked-variants h2{font-size:1.08rem;color:#96505b;margin:0 0 12px}
.be-linked-variants-list{display:flex;gap:9px;flex-wrap:wrap}
.be-linked-variant{display:inline-flex;flex-direction:column;gap:3px;border:1px solid #e1c9ce;border-radius:10px;padding:9px 13px;color:#704a56;text-decoration:none;font-size:.9rem}
.be-linked-variant:hover,.be-linked-variant.is-current{border-color:#96505b;background:#f8edf0;color:#96505b}
.be-linked-variant small{color:#9a6670;font-size:.75rem}

/* V1.51.88 — déclinaisons légères, sans grand encadré */
.be-linked-variants{margin:20px 0 22px;padding:0;border:0;border-radius:0;background:transparent}
.be-linked-variants h2{font-size:1rem;color:#96505B;margin:0 0 14px;font-weight:650}
.be-variant-group{margin:0 0 15px}
.be-variant-label{margin:0 0 9px;color:#684b51;font-size:.91rem}
.be-variant-label strong{color:#96505B;font-weight:650}
.be-variant-swatches,.be-variant-attachments{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-start}
.be-variant-swatch{display:inline-flex;flex-direction:column;align-items:center;gap:5px;min-width:48px;max-width:100px;color:#72565c;text-decoration:none;font-size:.73rem;text-align:center}
.be-variant-swatch-dot{display:block;width:30px;height:30px;border-radius:50%;border:1px solid #cdbbc0;outline:2px solid transparent;outline-offset:3px;transition:transform .15s,outline-color .15s}
.be-variant-swatch.is-current .be-variant-swatch-dot,.be-variant-swatch:hover .be-variant-swatch-dot,.be-variant-swatch:focus-visible .be-variant-swatch-dot{outline-color:#96505B}
.be-variant-swatch:hover .be-variant-swatch-dot{transform:scale(1.08)}
.be-variant-swatch-name{overflow-wrap:anywhere;line-height:1.25}
.be-variant-attachment{display:inline-flex;flex-direction:column;align-items:center;gap:2px;padding:8px 14px;border:1px solid #dfcbd0;border-radius:9px;color:#704e57;text-decoration:none;font-size:.9rem;background:#fff;transition:border-color .15s,background .15s}
.be-variant-attachment.is-current,.be-variant-attachment:hover,.be-variant-attachment:focus-visible{border-color:#96505B;background:#faf3f5;color:#96505B}
.be-variant-attachment small{font-size:.7rem}
.be-variant-swatch.is-sold-out,.be-variant-attachment.is-sold-out{opacity:.55}
.be-variant-swatch:focus-visible,.be-variant-attachment:focus-visible{outline:2px solid #96505B;outline-offset:3px}
@media(max-width:600px){.be-variant-swatches{gap:12px}.be-variant-swatch-dot{width:28px;height:28px}.be-variant-attachment{padding:8px 12px}}

/* V1.51.89 — arrivée directe à la fiche uniquement via les liens de variantes */
.product-page #fiche-creation{scroll-margin-top:12px}

/* V1.51.90 — Boutique compacte sur ordinateur.
   Le logo reste en superposition, sans imposer 145 px de vide au titre.
   Le titre se place temporairement à droite du logo ; les filtres et
   produits reprennent ensuite toute la largeur disponible. */
@media (min-width: 1101px) {
    body.page-boutique main > section.shop-page:first-child,
    main > section.shop-page:first-child,
    main > section.be-standard-page:first-child,
    .shop-page {
        padding-top: 24px !important;
    }
    .shop-page .shop-heading,
    .be-standard-page .be-page-heading {
        padding-left: 225px;
        min-height: 105px;
        margin-top: 0;
    }
}

/* V1.51.91 — filtres latéraux sur ordinateur, disposition compacte conservée */
@media (min-width: 901px) {
  .shop-page .shop-layout.be-shop-layout {display:grid;grid-template-columns:250px minmax(0,1fr);gap:28px;align-items:start;}
  .shop-page .be-shop-sidebar {min-width:0;position:sticky;top:18px;align-self:start;}
  .shop-page .be-shop-filters {margin:0 0 14px;}
  .shop-page .be-filters-details>summary {padding:15px 16px;font-size:1.02rem;}
  .shop-page .be-filter-summary-right {font-size:.73rem;}
  .shop-page .be-filters-inner {display:flex;flex-direction:column;gap:19px;padding:17px 15px;}
  .shop-page .be-filter-pills {gap:7px;}
  .shop-page .be-budget-pill span {padding:8px 12px;font-size:.79rem;}
  .shop-page .be-budget-pill input:checked+span {padding:7px 11px;}
  .shop-page .be-color-pills {gap:9px 7px;}
  .shop-page .be-color-dot {width:31px;height:31px;}
  .shop-page .be-color-choice {min-width:40px;}
  .shop-page .be-shop-category-tabs {display:flex;flex-direction:column;align-items:stretch;gap:7px;margin:0;}
  .shop-page .be-shop-category-tabs a {padding:9px 13px;border-radius:12px;font-size:.83rem;}
  .shop-page .shop-content {min-width:0;}
  .shop-page .shop-products-grid {grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (min-width: 1300px) {
  .shop-page .shop-products-grid {grid-template-columns:repeat(4,minmax(0,1fr));}
}
@media (max-width: 900px) {
  .shop-page .shop-layout.be-shop-layout {display:block;}
  .shop-page .be-shop-sidebar {position:static;}
}

/* V1.51.92 — catégories masquées temporairement (boutique uniquement).
   Conserver les liens PHP pour une réactivation future. */
.shop-page .be-shop-category-tabs {display:none !important;}

/* V1.51.93 — Page À propos, portrait original et histoire d'Aurore */
.be-about-page {padding:125px 0 92px; color:#604447;}
.be-about-page .container {max-width:1140px;}
.be-about-intro {text-align:center;margin:0 auto 52px;max-width:850px;}
.be-about-eyebrow {display:block;letter-spacing:.22em;font-size:.72rem;font-weight:700;color:#a66b72;margin-bottom:14px;}
.be-about-intro h1 {font-family:'Playfair Display',Georgia,serif;color:#96505B;font-size:clamp(2rem,4vw,3.25rem);line-height:1.2;margin:0 0 14px;}
.be-about-lead {font-family:'Playfair Display',Georgia,serif;font-style:italic;color:#96505B;font-size:clamp(1.05rem,2vw,1.4rem);margin:0;}
.be-about-story {display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(30px,5vw,75px);align-items:center;}
.be-about-portrait {margin:0;min-width:0;}
.be-about-portrait img {display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;object-position:center top;border-radius:22px;box-shadow:0 16px 40px rgba(98,54,61,.10);}
.be-about-portrait figcaption {text-align:center;font-size:.8rem;color:#9d7776;margin-top:12px;}
.be-about-story-text h2 {font-family:'Playfair Display',Georgia,serif;font-size:clamp(1.5rem,2.5vw,2.1rem);line-height:1.35;color:#96505B;margin:0 0 23px;}
.be-about-page p {line-height:1.9;}
.be-about-story-text p {margin:0 0 20px;}
.be-about-continuation {max-width:830px;margin:54px auto 0;font-size:1.035rem;}
.be-about-continuation > p {margin:0 0 24px;}
.be-about-continuation blockquote {border:0;margin:42px auto;padding:27px 28px;text-align:center;font-family:'Playfair Display',Georgia,serif;font-size:clamp(1.3rem,2.4vw,1.85rem);font-style:italic;line-height:1.45;color:#96505B;background:#fcf4f1;border-radius:16px;}
.be-about-signoff {text-align:center;margin-top:48px;padding:35px 20px 8px;border-top:1px solid #ecd9d6;}
.be-about-signoff p {margin:0 0 8px;}
.be-about-motto {font-family:'Playfair Display',Georgia,serif;font-style:italic;color:#96505B;font-size:1.55rem;margin-bottom:22px!important;}
.be-about-signature {font-family:'Playfair Display',Georgia,serif;font-style:italic;font-size:2rem;color:#96505B;}
@media(max-width:900px){.be-about-page{padding:75px 0 70px;}.be-about-story{gap:28px;}.be-about-intro{margin-bottom:35px;}}
@media(max-width:700px){.be-about-page{padding:28px 0 55px;}.be-about-story{grid-template-columns:1fr;gap:25px;}.be-about-portrait{max-width:430px;margin:0 auto;}.be-about-intro{margin-bottom:27px;}.be-about-story-text h2{margin-bottom:16px;}.be-about-continuation{margin-top:12px;font-size:1rem;}.be-about-continuation blockquote{margin:28px 0;padding:23px 18px;}.be-about-signoff{margin-top:30px;}}


/* V1.51.94 — En-tête harmonisé avec la boutique.
   La photo et le texte restent dans le flux normal ; seul le bandeau
   d'introduction contourne le logo sur les grands écrans. */
@media (min-width:1101px) {
  body.page-apropos main > section.be-about-page:first-child {
    padding-top:24px !important;
  }
  .be-about-page .be-about-intro {
    text-align:left;
    max-width:none;
    margin:0 0 42px;
    padding-left:225px;
    min-height:105px;
    box-sizing:border-box;
  }
}
@media (min-width:821px) and (max-width:1100px) {
  body.page-apropos main > section.be-about-page:first-child {
    padding-top:115px !important;
  }
  .be-about-page .be-about-intro {
    text-align:left;
    max-width:none;
    margin:0 0 38px;
  }
}
@media (max-width:820px) {
  body.page-apropos main > section.be-about-page:first-child {
    padding-top:46px !important;
  }
  .be-about-page .be-about-intro {
    margin-bottom:30px;
  }
}
/* Titres des pages intérieures : même hiérarchie que « La boutique ». */
.be-about-page .be-about-intro h1 {
  font:600 clamp(2.4rem,3vw,3.5rem)/1.05 'Playfair Display',Georgia,serif;
  color:var(--brown);
  margin:8px 0 10px;
}
.be-about-page .be-about-eyebrow {
  margin-bottom:0;
  letter-spacing:.15em;
}
.be-about-page .be-about-lead {
  font-family:inherit;
  font-size:1rem;
  font-style:normal;
  line-height:1.65;
  color:var(--muted);
}

/* V1.51.95 — Alignement des pages intérieures sur la Boutique.
   La limite à 1140px sur À propos décalait son titre de 90px. */
.be-about-page .container { max-width: none; }
.be-about-page .be-about-eyebrow { display:inline-block; font-size:.72rem; font-weight:700; letter-spacing:.15em; color:#96505B; margin:0; }
.be-about-page .be-about-intro h1 { color:var(--brown); }
.be-about-page .be-about-lead { color:var(--muted); }
.be-about-page .be-about-story-text h2,
.be-about-page .be-about-continuation blockquote,
.be-about-page .be-about-motto,
.be-about-page .be-about-signature { color:#96505B; }
@media (min-width:1101px) {
  .be-about-page .be-about-intro { padding-left:225px; min-height:105px; margin-bottom:42px; }
}

/* V1.51.96 — Page À propos, motifs tirés du logo original */
.be-about-page .be-about-eyebrow {color:var(--coral);font-size:.84rem;font-weight:600;letter-spacing:.24em;}
.be-about-page .be-about-story {grid-template-columns:minmax(0,430px) minmax(0,1fr);align-items:start;gap:clamp(30px,5vw,70px);justify-content:center;}
.be-about-page .be-about-story-text {padding-top:14px;}
.be-about-page .be-about-portrait {position:relative;width:100%;max-width:430px;}
.be-about-page .be-about-portrait img {width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center top;border-radius:28px 8px 28px 8px;}
.be-about-page .be-about-flower {position:absolute;z-index:2;pointer-events:none;background-repeat:no-repeat;background-size:contain;width:105px;height:125px;}
.be-about-page .be-about-flower--top {top:-22px;left:-28px;background-image:url('../images/about-floral-top.png');}
.be-about-page .be-about-flower--bottom {right:-26px;bottom:30px;background-image:url('../images/about-floral-bottom.png');}
@media(max-width:900px) {.be-about-page .be-about-story {grid-template-columns:minmax(0,38%) minmax(0,1fr);gap:26px;}.be-about-page .be-about-story-text {padding-top:4px;}}
@media(max-width:700px) {.be-about-page .be-about-story {grid-template-columns:1fr;gap:22px;}.be-about-page .be-about-portrait {max-width:350px;margin:0 auto;}.be-about-page .be-about-story-text {padding-top:0;}.be-about-page .be-about-flower {width:78px;height:95px;}.be-about-page .be-about-flower--top {left:-15px;top:-12px;}.be-about-page .be-about-flower--bottom {right:-14px;bottom:28px;}}

/* V1.51.97 — Page À propos : titre, continuité et ornements transparents */
.be-about-page .be-about-story-text h2{font-size:clamp(1.3rem,1.85vw,1.7rem);line-height:1.3;margin-bottom:6px;}
.be-about-page .be-about-welcome{font-family:'Playfair Display',Georgia,serif;font-style:italic;color:#96505B;font-size:1.18rem;margin:0 0 18px;}
.be-about-page .be-about-story-text p{margin-bottom:15px;line-height:1.75;}
.be-about-page .be-about-story{align-items:start;}
.be-about-page .be-about-continuation{margin-top:18px;}
.be-about-page .be-about-flower{width:92px;height:92px;background-size:contain;background-position:center;}
.be-about-page .be-about-flower--top{background-image:url('../images/about-floral-top.svg');top:-18px;left:-24px;}
.be-about-page .be-about-flower--bottom{background-image:url('../images/about-floral-bottom.svg');right:-20px;bottom:28px;}
@media(max-width:700px){.be-about-page .be-about-story-text h2{font-size:1.55rem;}.be-about-page .be-about-flower{width:72px;height:72px;}.be-about-page .be-about-flower--top{left:-12px;top:-12px;}.be-about-page .be-about-flower--bottom{right:-12px;bottom:30px;}}

/* V1.51.98 — Texte de présentation et ancrage territorial */
@media (min-width:901px) {
  .be-about-page .be-about-story { gap:clamp(20px,2.6vw,36px); }
}
.be-about-page .be-about-story-text > p:not(.be-about-welcome),
.be-about-page .be-about-continuation > p {
  text-align:justify;
  text-justify:inter-word;
  hyphens:auto;
}
@media (max-width:700px) {
  .be-about-page .be-about-story-text > p:not(.be-about-welcome),
  .be-about-page .be-about-continuation > p { text-align:left; hyphens:none; }
}

/* V1.51.99 — respiration à droite du texte de la page À propos */
@media (min-width:901px) {
  .be-about-page .be-about-story-text { padding-right:clamp(32px,4.5vw,72px); }
}

/* V1.51.100 — Aucun mot coupé sur la page À propos */
.be-about-page .be-about-story-text > p:not(.be-about-welcome),
.be-about-page .be-about-continuation > p {
  -webkit-hyphens:none;
  -ms-hyphens:none;
  hyphens:none;
  overflow-wrap:normal;
  word-break:normal;
}

/* V1.51.101 — Anniversaires (facultatif) */
.be-birthday-fields{margin:18px 0;padding:18px;border:1px solid #eed9db;border-radius:14px;background:#fff9f8}.be-birthday-fields>label{display:block}.be-birthday-fields input[type=date]{display:block;width:100%;max-width:350px;margin-top:7px}.be-birthday-help{font-size:.89rem;color:#806a6a;line-height:1.55;margin:12px 0!important}.be-birthday-fields .be-birthday-check{display:flex;align-items:flex-start;gap:10px;font-size:.87rem;line-height:1.55;font-weight:400}.be-birthday-check input{width:18px;height:18px;flex:none;margin-top:3px;accent-color:#ae6d7b}.be-birthday-fields small{color:#8b7776}

/* V1.51.105 — filtres illustrés par type d’accroche */
.be-attachment-fieldset{grid-column:1/-1}
.be-attachment-pills{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}
.be-attachment-choice{cursor:pointer;position:relative;min-width:0}
.be-attachment-choice input{position:absolute;opacity:0;width:1px;height:1px}
.be-attachment-tile{display:flex;flex-direction:column;align-items:center;gap:5px;padding:8px 4px 10px;border:1px solid #ead8dc;border-radius:13px;background:#fff;color:#805764;font-size:.76rem;transition:background .18s,border-color .18s,box-shadow .18s}
.be-attachment-tile img{width:min(100%,94px);height:82px;object-fit:contain;display:block}
.be-attachment-choice input:checked+.be-attachment-tile{background:#fbe9ee;border:2px solid #b97a8b;padding:7px 3px 9px;box-shadow:0 3px 12px rgba(144,76,97,.12);font-weight:700}
.be-attachment-choice input:focus-visible+.be-attachment-tile{outline:3px solid #a66a80;outline-offset:3px}
@media(max-width:1100px){.be-attachment-pills{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.be-attachment-pills{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.be-attachment-tile img{height:67px}.be-attachment-tile{font-size:.72rem}}

/* V1.51.106 — lisibilite des filtres d'accroches en barre laterale */
.be-attachment-pills{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.be-attachment-choice{display:block;min-width:0}
.be-attachment-tile{box-sizing:border-box;width:100%;min-height:126px;padding:10px 5px 9px;gap:7px;justify-content:center;text-align:center;overflow:hidden;font-size:.78rem;line-height:1.25}
.be-attachment-tile img{width:100%;max-width:100px;height:88px;object-fit:contain;flex-shrink:0}
.be-attachment-tile>span{display:block;max-width:100%;overflow-wrap:break-word;word-break:normal;white-space:normal}
.be-attachment-choice input:checked+.be-attachment-tile{padding:9px 4px 8px}
@media(max-width:1100px){.be-attachment-pills{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.be-attachment-pills{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.be-attachment-tile{min-height:116px;font-size:.77rem}.be-attachment-tile img{height:78px}}

/* V1.51.107 — pastilles d'accroches plus discretes, cercles entiers */
.be-attachment-pills{gap:10px}
.be-attachment-tile{min-height:115px;padding:9px 5px 8px;gap:5px}
.be-attachment-tile img{width:76px;max-width:calc(100% - 4px);height:76px;object-fit:contain;border-radius:50%}
.be-attachment-choice input:checked+.be-attachment-tile{padding:8px 4px 7px}
@media(max-width:600px){.be-attachment-tile{min-height:109px;padding:8px 4px 7px}.be-attachment-tile img{width:70px;height:70px}.be-attachment-choice input:checked+.be-attachment-tile{padding:7px 3px 6px}}

.checkout-form .be-checkout-choice,
.be-checkout-terms {
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    gap: 9px;
    color: #6d5751;
}
.be-checkout-choice input[type="checkbox"] {
    flex: none;
    width: 1rem;
    height: 1rem;
    margin: 2px 0 0;
    accent-color: #a75d71;
}
.be-checkout-terms {
    margin: 0 0 12px;
    text-align: left;
    font-size: .85rem;
}
.be-checkout-terms a {
    text-decoration: underline;
}
.be-checkout-shipping {
    min-width: 0;
    margin: 0 0 18px;
    padding: 12px 16px 16px;
    border: 1px solid var(--line);
    border-radius: 9px;
}
.be-checkout-shipping legend {
    font-weight: 600;
}
.be-checkout-shipping label {
    display: flex;
    flex-direction: column;
    gap: 7px;
    margin: 12px 0;
    font-size: .76rem;
    font-weight: 600;
    color: #6d5751;
}

/* Politique de confidentialité */
.be-privacy-page {
    padding: clamp(36px, 6vw, 76px) 0;
    background: var(--cream);
}
.be-privacy-heading,
.be-privacy-card {
    max-width: 800px;
    margin-inline: auto;
}
.be-privacy-heading {
    margin-bottom: clamp(20px, 4vw, 36px);
}
.be-privacy-heading h1 {
    margin: 8px 0 10px;
    font: 600 clamp(1.95rem, 4.5vw, 3.15rem)/1.12 'Playfair Display', Georgia, serif;
}
.be-privacy-date {
    margin: 0;
    color: var(--muted);
    font-size: .88rem;
}
.be-privacy-intro {
    margin: 16px 0 0;
    line-height: 1.65;
}
.be-page-heading > .be-privacy-date + .be-privacy-intro {
    margin-top: 12px;
}
.be-privacy-card {
    padding: clamp(18px, 5vw, 42px);
    border: 1px solid var(--line);
    border-radius: 18px;
    background: var(--white);
    box-shadow: var(--shadow);
    overflow-wrap: anywhere;
}
.be-privacy-card section + section {
    margin-top: 24px;
    padding-top: 24px;
    border-top: 1px solid var(--line);
}
.be-privacy-card h2 {
    margin: 0 0 12px;
    font: 600 clamp(1.2rem, 3vw, 1.55rem)/1.3 'Playfair Display', Georgia, serif;
}
.be-privacy-card p {
    margin: 0;
    line-height: 1.7;
}
.be-privacy-card p + p {
    margin-top: 12px;
}
.be-privacy-card a {
    text-decoration: underline;
    text-underline-offset: .16em;
}

.be-withdrawal-textarea,
.be-contact-form textarea {
    width: 100%;
    min-height: 90px;
    padding: 11px 12px;
    border: 1px solid #dfd2cc;
    border-radius: 7px;
    color: #4e3f3b;
    background: #fff;
    font: inherit;
    resize: vertical;
}
.be-withdrawal-textarea:focus,
.be-contact-form textarea:focus {
    outline: 2px solid rgba(226,135,78,.18);
    border-color: var(--coral);
}
.be-withdrawal-form .checkout-next + p {
    margin-top: 16px;
}

/* Texte des trois pages légales */
:is(.page-mentions-legales, .page-cgv, .page-confidentialite) :is(.be-privacy-card, .be-privacy-intro) {
    hyphens: none;
    overflow-wrap: normal;
    word-break: normal;
}
:is(.page-mentions-legales, .page-cgv, .page-confidentialite) .be-privacy-card p,
:is(.page-mentions-legales, .page-cgv, .page-confidentialite) .be-privacy-intro {
    text-align: justify;
}

.be-legal-details {
    margin: 16px 0 0;
    line-height: 1.6;
}
.be-legal-details dt {
    font-weight: 600;
}
.be-legal-details dd {
    margin: 2px 0 12px;
}
.be-legal-details dd:last-child {
    margin-bottom: 0;
}

/* Page Contact */
.be-contact-page {
    padding-bottom: clamp(36px, 6vw, 76px);
}
.be-contact-form,
.be-contact-direct {
    max-width: 760px;
    margin-inline: auto;
}
.be-contact-form {
    min-width: 0;
    padding: clamp(18px, 3.5vw, 32px);
    box-shadow: var(--shadow);
}
.be-contact-form h2 {
    margin: 0 0 12px;
    font: 600 1.6rem/1.2 'Playfair Display', Georgia, serif;
}
.be-contact-form textarea {
    min-height: 140px;
}
.be-contact-hint,
.be-contact-privacy,
.be-contact-direct {
    font-size: .83rem;
    color: var(--muted);
    line-height: 1.65;
}
.be-contact-privacy,
.be-contact-direct {
    margin-top: 14px;
}
.be-contact-direct {
    text-align: center;
    overflow-wrap: anywhere;
}
.be-contact-direct a,
.be-contact-privacy a {
    text-decoration: underline;
    text-underline-offset: .15em;
}
.be-contact-success {
    padding: 12px 14px;
    border: 1px solid #d7e4d8;
    border-radius: 9px;
    color: #315c3a;
    background: #f3f8f3;
}

/* Sélection des pièces jointes dans le formulaire de contact */
.be-contact-file-enhanced {
    position: relative;
    cursor: pointer;
}
.be-contact-form .be-contact-file-enhanced input[type="file"] {
    position: absolute;
    inset: auto auto 0 0;
    width: 1px;
    height: 1px;
    padding: 0;
    border: 0;
    opacity: 0;
    clip-path: inset(50%);
}
.be-contact-file-display:not([hidden]) {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 12px;
    min-width: 0;
    padding: 7px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: var(--white);
}
.be-contact-file-button {
    display: inline-block;
    padding: 7px 12px;
    border: 1px solid #dfcbd0;
    border-radius: 7px;
    background: var(--peach-soft);
    color: #70434c;
    font-weight: 600;
}
.be-contact-file-name {
    min-width: 0;
    padding-inline: 3px;
    color: var(--muted);
    font-weight: 400;
    overflow-wrap: anywhere;
}
.be-contact-file-enhanced:hover .be-contact-file-button {
    background: #f8e9e9;
}
.be-contact-file-enhanced:focus-within .be-contact-file-display {
    outline: 2px solid #96505b;
    outline-offset: 2px;
}

/* Visionneuse des photos de création */
.be-product-zoom-trigger {
    position: absolute;
    inset: 0;
    z-index: 3;
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
    padding: 12px;
    cursor: zoom-in;
}
.be-product-zoom-trigger:focus-visible {
    outline: 2px solid #96505b;
    outline-offset: -4px;
}
.be-product-zoom-icon {
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border: 1px solid var(--line);
    border-radius: 50%;
    color: var(--brown);
    background: var(--white);
    box-shadow: var(--shadow);
}
.be-product-zoom-icon svg {
    width: 22px;
    height: 22px;
}
.be-product-zoom {
    width: min(calc(100% - 24px), 1160px);
    max-width: none;
    height: 90vh;
    height: 90dvh;
    max-height: none;
    margin: auto;
    padding: 0;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--white);
    color: var(--brown);
}
.be-product-zoom[open] {
    display: grid;
    grid-template-rows: auto minmax(0, 1fr) auto;
}
.be-product-zoom::backdrop {
    background: rgba(39, 24, 25, .76);
}
html:has(.be-product-zoom[open]) {
    overflow: hidden;
}
.be-product-zoom-toolbar,
.be-product-zoom-nav {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
}
.be-product-zoom-toolbar {
    justify-content: flex-end;
}
.be-product-zoom-nav {
    justify-content: center;
    font-size: .85rem;
}
.be-product-zoom button {
    min-width: 42px;
    min-height: 42px;
    padding: 7px 12px;
    border: 1px solid #dfcbd0;
    border-radius: 8px;
    background: var(--peach-soft);
    color: var(--brown);
    font: inherit;
    font-size: .86rem;
    cursor: pointer;
}
.be-product-zoom button:focus-visible,
.be-product-zoom-viewport:focus-visible {
    outline: 2px solid #96505b;
    outline-offset: -3px;
}
.be-product-zoom-viewport {
    display: flex;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    background: #f8f3ef;
}
.be-product-zoom-viewport.is-enlarged {
    overflow: auto;
}
.be-product-zoom-photo {
    display: block;
    flex: none;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    margin: auto;
    object-fit: contain;
}
.be-product-zoom-viewport.is-enlarged .be-product-zoom-photo {
    max-width: none;
    max-height: none;
}

.be-product-zoom-control {
    display: flex;
    flex: 1 1 280px;
    align-items: center;
    gap: 8px;
    min-width: 0;
    max-width: 330px;
    min-height: 42px;
    font-size: .86rem;
}
.be-product-zoom-control input {
    flex: 1;
    min-width: 0;
    margin: 0;
    accent-color: #96505b;
    cursor: pointer;
}
.be-product-zoom-control input:focus-visible {
    outline: 2px solid #96505b;
    outline-offset: 3px;
    border-radius: 4px;
}
.be-product-zoom-value {
    min-width: 4em;
    text-align: right;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.be-checkout-promo {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
    margin: 16px 0;
    align-items: center;
}
.be-checkout-promo label, .be-checkout-promo p { grid-column: 1 / -1; }
.be-checkout-promo label { font-weight: 600; }
.be-checkout-promo input[name="code_promo"] {
    width: 100%;
    box-sizing: border-box;
    min-width: 0;
    padding: 10px;
    border: 1px solid #dfd2cc;
    border-radius: 8px;
    background: #fff;
    color: inherit;
    font: inherit;
}
.secure-cart-summary .be-checkout-promo button {
    width: auto;
    border: 1px solid #e6cbc4;
    padding: 9px 11px;
    background: #fff;
    color: #833e49;
    cursor: pointer;
}
.secure-cart-summary .be-checkout-promo button:hover { background: #f9ece8; }
.be-checkout-promo button[value="retirer_promo"] { grid-column: 1 / -1; justify-self: start; }
.be-checkout-promo p[role="alert"] { margin: 0; color: #9c3747; }

/* Photo facultative des avis */
.be-review-photo-field {
    min-width: 0;
    margin: 0 0 18px;
    padding: 12px 16px 16px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--cream);
}
.be-review-photo-field legend {
    padding: 0 6px;
    font-weight: 600;
}
.be-review-photo-field p {
    margin: 0 0 12px;
    line-height: 1.55;
}
.be-review-photo-field .review-field {
    margin-bottom: 4px;
}
.be-review-photo-field input[type="file"] {
    min-width: 0;
}
.be-review-photo-field input[type="file"]::file-selector-button {
    margin-inline-end: 8px;
    padding: 6px 9px;
    border: 1px solid #dfcbd0;
    border-radius: 7px;
    background: var(--peach-soft);
    color: #70434c;
    cursor: pointer;
}
.be-review-photo-field small {
    display: block;
    color: var(--muted);
    line-height: 1.5;
}
.be-review-photo-agreement {
    margin-top: 12px;
}
.be-review-photo-agreement label {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 5px;
}
.be-review-photo-agreement input[type="checkbox"] {
    width: auto;
    flex: none;
    accent-color: var(--coral-dark);
}
.be-review-photo-agreement a {
    text-decoration: underline;
}
.be-review-photo {
    display: inline-block;
    max-width: 100%;
    margin: 4px 0 10px;
}
.be-review-photo img {
    width: auto;
    max-height: 210px;
    border-radius: 10px;
}

.be-checkout-step{border:0;padding:0;margin:0;min-width:0}
.checkout-form--account{padding:0;border:0;background:transparent}
#be-checkout-billing{margin-top:20px;padding-top:18px;border-top:1px solid #eed7d5}
#be-checkout-billing h3{margin:0 0 16px;font-size:1.1rem}
.checkout-form--account [hidden]{display:none!important}
.be-checkout-account .checkout-error{display:block;margin:12px 0 0}
