/* ============================================================
   Compléments au modèle : accessibilité, RTL, pages boutique.
   Mêmes tokens --ad-* que styles/modele.css.
   ============================================================ */

/* ---------- accessibilité ---------- */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.sauter{position:absolute;inset-inline-start:1rem;top:-100px;z-index:400;background:var(--ad-black);color:#fff;padding:.7rem 1.2rem;border-radius:var(--radius-pill);font-size:var(--fs-xs);font-weight:600}
.sauter:focus{top:1rem}
:focus-visible{outline:2px solid var(--ad-gold-deep);outline-offset:3px}
.hero :focus-visible,.live :focus-visible,footer :focus-visible,header.site :focus-visible,.page-sombre :focus-visible,.pv :focus-visible,.news :focus-visible{outline-color:var(--ad-gold-soft)}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .rv{opacity:1;transform:none}
}
dialog{color:inherit}
dialog::backdrop{background:rgba(10,10,10,.6)}

/* le modèle masque nav.main sous 860 px : bouton menu à la place */
.menu-btn{display:none}
@media(max-width:860px){.menu-btn{display:grid}}
/* l'en-tête du designer se superpose au contenu (marge négative) : les pages sans hero commencent dessous */
.sous-entete{padding-top:var(--header-h)}
.logo img{width:auto}
.pcard-lien{display:block}
.pprice s,.pl-prix s{color:var(--text-muted);margin-inline-end:.35rem}
.flip{transform:none}
[dir=rtl] .flip{transform:scaleX(-1)}

/* ---------- RTL : propriétés physiques du modèle ---------- */
[dir=rtl] .annonce .track{animation-name:marq-rtl}
@keyframes marq-rtl{to{transform:translateX(50%)}}
[dir=rtl] .badge-count{right:auto;left:-4px}
[dir=rtl] .pcard .pfav{right:auto;left:.4rem}
[dir=rtl] .hero-sound{right:auto;left:1.4rem}
[dir=rtl] .wa{right:auto;left:1.4rem}
[dir=rtl] .hero .overlay{transform:scaleX(-1)}
[dir=rtl] .mag-nav.prev{left:auto;right:calc(var(--gutter) - 19px)}
[dir=rtl] .mag-nav.next{right:auto;left:calc(var(--gutter) - 19px)}
[dir=rtl] .mtop,[dir=rtl] .mactions{direction:rtl}
[dir=rtl] .mactions{right:auto;left:.7rem}
[dir=rtl] .mflag{right:auto;left:.7rem}
[dir=rtl] .mg-scene-inner>*{direction:rtl}
[dir=rtl] .mg-scene.alt .mg-scene-inner{direction:ltr}
[dir=rtl] .mg-scene.alt .mg-scene-inner>*{direction:rtl}
[dir=rtl] .mg-scene-veil,[dir=rtl] .mh-veil{transform:scaleX(-1)}
[dir=rtl] .mh-scene.alt .mh-scene-inner{justify-content:flex-start}
[dir=rtl] .mh-scene:not(.alt) .mh-scene-inner{justify-content:flex-end}
[dir=rtl] .pv-list{left:auto;right:1.5rem}
[dir=rtl] .pv-thumb{text-align:right}
[dir=rtl] .q-fieldrow .q-field{text-align:right}
[dir=rtl] .viewer .close{right:auto;left:.6rem}
[dir=rtl] .boutique .bcopy{left:auto;right:clamp(1.5rem,4vw,3.5rem)}
[dir=rtl] .t-stars{letter-spacing:0}
[dir=rtl] .eyebrow,[dir=rtl] .btn,[dir=rtl] nav.main,[dir=rtl] .pbrand{letter-spacing:0}
@media(max-width:1080px){[dir=rtl] .pv-stage{padding-left:.7rem;padding-right:clamp(9rem,20vw,13rem)}}

/* ---------- en-tête : dialogs ---------- */
.menu-mobile{margin:0;inset-inline-start:0;height:100dvh;max-height:none;width:min(360px,86vw);border:0;padding:0;background:var(--ad-black);color:#fff}
.menu-mobile-in{padding:1.2rem var(--gutter);display:flex;flex-direction:column;gap:1.6rem}
.menu-mobile nav{display:flex;flex-direction:column;gap:1rem;font-size:var(--fs-nav);font-weight:600;letter-spacing:var(--ls-wider);text-transform:uppercase}
.langues{display:flex;flex-wrap:wrap;gap:.4rem .9rem;font-size:var(--fs-xs)}
.langues a{color:var(--text-on-dark-muted)}
.langues a[aria-current]{color:var(--ad-white);text-decoration:underline;text-underline-offset:3px}
.recherche-dlg{margin:12vh auto auto;width:min(640px,92vw);border:0;border-radius:var(--radius-sm);padding:1rem;background:var(--ad-white);color:var(--ad-ink)}
.recherche-dlg form,form.recherche,.recherche form{display:flex;gap:.6rem}
.recherche-dlg input,.recherche input{flex:1;min-width:0;height:var(--control-h-md);padding:0 1.2rem;border:1px solid var(--border-strong);border-radius:var(--radius-pill);font:inherit;font-size:var(--fs-sm)}

/* ---------- tiroir panier ---------- */
.tiroir{margin:0;margin-inline-start:auto;height:100dvh;max-height:none;width:min(440px,100vw);border:0;padding:0;background:var(--ad-white);color:var(--ad-ink)}
.tiroir[open]{animation:tiroir var(--dur-base) var(--ease-standard)}
@keyframes tiroir{from{transform:translateX(30px);opacity:0}}
.tiroir-in{padding:1.2rem 1.4rem 2rem}
.tiroir-tete{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border-hairline);padding-bottom:.8rem;margin-bottom:1rem}
.tiroir-tete h2{font-size:1.3rem}
.chargement{color:var(--text-muted);font-size:var(--fs-sm);padding:2rem 0}

/* ---------- panier ---------- */
.panier.occupe{opacity:.6;pointer-events:none}
.panier-vide{text-align:center;padding:2.5rem 0;display:grid;gap:1.4rem;justify-items:center;color:var(--text-secondary)}
.panier-lignes{list-style:none;display:grid;gap:1.1rem}
.panier-ligne{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:.9rem;align-items:start;padding-bottom:1.1rem;border-bottom:1px solid var(--border-hairline)}
.pl-img{display:block;background:var(--ad-grey-100);border-radius:var(--radius-sm);overflow:hidden}
.pl-img img{width:72px;height:90px;object-fit:contain}
.pl-info{display:flex;flex-direction:column;gap:.15rem;min-width:0}
.pl-nom{font-family:var(--font-serif);font-weight:700}
.pl-var,.pl-prix{font-size:var(--fs-xs);color:var(--text-secondary)}
/* S-067 : un message cadeau sans espace (URL de 300 caractères) revient à la ligne dans le panier et le récapitulatif */
.cc-message{overflow-wrap:anywhere}
.recap-lignes li > span{min-width:0}
.pl-total{font-weight:600;font-size:var(--fs-sm)}
.pl-actions{display:flex;align-items:center;gap:.6rem;margin-top:.4rem}
.pl-retirer{width:30px;height:30px;display:grid;place-items:center;color:var(--text-muted)}
.pl-retirer:hover{color:var(--ad-danger)}
.pl-retirer .ic{width:16px;height:16px}
.qty-clair,.qty.qty-clair{border-color:var(--border-strong);background:transparent;backdrop-filter:none}
.qty-clair button{background:var(--ad-grey-100);color:var(--ad-ink)}
.qty-clair button:hover{background:var(--ad-black);color:#fff}
.qty-clair .qval{color:var(--ad-ink)}
/* minmax(0,1fr) : la colonne ne prend pas la largeur du champ d'un code retenu (débordait à 390 px avec « Retirer le code » sur une ligne) */
.panier-codes{display:grid;grid-template-columns:minmax(0,1fr);gap:.7rem;margin:1.3rem 0}
.code-ligne input{min-width:0}
.panier-codes form{display:flex;gap:.5rem;align-items:flex-end}
.panier-codes label{flex:1;display:grid;gap:.25rem;font-size:var(--fs-xs);font-weight:600;letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--text-secondary)}
/* champ code du panier et du récapitulatif : tailles du champ code du tiroir de la maquette (.pn-code, 38px, 10px gras) */
.panier-codes .btn,.code-ligne .btn{height:38px;min-height:0;white-space:nowrap;padding:0 1rem;font-size:10px;font-weight:700;letter-spacing:var(--ls-wide)}
.ok{color:var(--ad-success);font-size:var(--fs-xs)}
.alerte{color:var(--ad-danger);font-size:var(--fs-xs)}
.alertes{list-style:none;margin:.6rem 0}
.totaux{display:grid;grid-template-columns:1fr auto;gap:.45rem 1rem;font-size:var(--fs-sm);border-top:1px solid var(--border-hairline);padding-top:1rem;margin-top:.6rem}
.totaux dd{text-align:end}
.totaux .total{font-family:var(--font-serif);font-weight:700;font-size:1.15rem;margin-top:.3rem}
.totaux .tva{grid-column:1/-1;font-size:var(--fs-xs);color:var(--text-muted)}
.panier-cta{display:grid;gap:.6rem;margin-top:1.4rem}

/* ---------- champs de formulaire ---------- */
.champ{display:grid;gap:.3rem;font-size:var(--fs-xs);font-weight:600;letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--text-secondary)}
.champ input,.champ select,.champ textarea,.panier-codes input{height:46px;padding:0 1rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font:inherit;font-size:var(--fs-sm);font-weight:400;letter-spacing:0;text-transform:none;color:var(--ad-ink);background:var(--ad-white)}
.champ textarea{height:auto;min-height:90px;padding:.7rem 1rem}
.panier-codes input{height:38px;padding:0 .9rem;border-radius:var(--radius-pill)}
.champ input:focus,.champ select:focus,.champ textarea:focus,.panier-codes input:focus{outline:none;border-color:var(--ad-gold-deep);box-shadow:0 0 0 2px var(--ad-gold-soft)}
.champs-2{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
/* Compteur de robustesse du mot de passe (FormulairesCompte NouveauMotDePasse) : rouge, or, vert selon low/high du <meter>. */
.force-mdp{display:flex;align-items:center;gap:.6rem;margin:-.5rem 0 0;font-size:var(--fs-xs);color:var(--text-secondary)}
.force-mdp[hidden]{display:none}
.force-mdp meter{flex:1;min-width:4rem;height:6px;border:0;border-radius:3px;background:var(--ad-sand)}
.force-mdp meter::-webkit-meter-bar{height:6px;border:0;border-radius:3px;background:var(--ad-sand)}
.force-mdp meter::-webkit-meter-even-less-good-value{background:var(--ad-danger)}
.force-mdp meter::-webkit-meter-suboptimum-value{background:var(--ad-gold-deep)}
.force-mdp meter::-webkit-meter-optimum-value{background:var(--ad-success)}
.force-mdp meter:-moz-meter-sub-sub-optimum::-moz-meter-bar{background:var(--ad-danger)}
.force-mdp meter:-moz-meter-sub-optimum::-moz-meter-bar{background:var(--ad-gold-deep)}
.force-mdp meter:-moz-meter-optimum::-moz-meter-bar{background:var(--ad-success)}
@media(max-width:560px){.champs-2{grid-template-columns:1fr}}
.case{display:flex;gap:.6rem;align-items:flex-start;font-size:var(--fs-sm);color:var(--text-secondary);cursor:pointer}
.case input{margin-top:.3rem;accent-color:var(--ad-black)}
.choix{display:flex;gap:.8rem;align-items:center;padding:.9rem 1rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;font-size:var(--fs-sm)}
.choix:has(input:checked){border-color:var(--ad-ink);box-shadow:inset 0 0 0 1px var(--ad-ink)}
.choix input{accent-color:var(--ad-black)}
.choix .choix-prix{margin-inline-start:auto;font-weight:600}
.choix small{display:block;color:var(--text-muted);font-size:var(--fs-xs)}
fieldset{border:0}
legend{font-family:var(--font-serif);font-weight:700;font-size:1.15rem;margin-bottom:.8rem}
.btn[disabled]{opacity:.55;cursor:not-allowed}

/* ---------- pages génériques (fond clair, en-tête plein) ---------- */
.page{max-width:var(--container-max);margin:0 auto;padding:clamp(1.5rem,3vw,2.5rem) var(--gutter) var(--section-y)}
.page-etroite{max-width:760px}
.page h1{font-size:var(--fs-h1);font-weight:700;line-height:1.1;margin:.4rem 0 1.2rem}
.page h1 em{font-weight:500}
.q-intro .q-titre{font-size:clamp(1.5rem,1.1rem + 1.4vw,2rem);font-weight:700;line-height:1.18}
.fil{display:flex;flex-wrap:wrap;gap:.35rem;font-size:10px;font-weight:600;letter-spacing:var(--ls-wider);text-transform:uppercase;color:var(--text-muted)}
.fil i{font-style:normal;opacity:.5;margin-inline-end:.35rem}
.fil a:hover{color:var(--ad-ink)}
.rte{font-size:var(--fs-body);line-height:1.75;color:var(--text-secondary);overflow-wrap:anywhere}
.rte h2,.rte h3{margin:1.8rem 0 .7rem;color:var(--ad-ink)}
.rte h2{font-size:1.5rem}
.rte h3{font-size:1.2rem}
.rte p,.rte ul,.rte ol{margin:0 0 1rem}
.rte ul,.rte ol{padding-inline-start:1.3rem}
.rte a{text-decoration:underline;text-underline-offset:3px;color:var(--ad-ink)}
.rte img{height:auto;margin:1rem 0}
.rte table{width:100%;border-collapse:collapse;margin:1rem 0;font-size:var(--fs-sm)}
.rte th,.rte td{border:1px solid var(--border-hairline);padding:.5rem .7rem;text-align:start}

/* ---------- collection ---------- */
.coll-tete{text-align:center;max-width:62ch;margin:0 auto 2rem}
.coll-tete .rte{margin-top:.8rem}
.coll{display:grid;grid-template-columns:250px 1fr;gap:2.5rem;align-items:start}
@media(max-width:900px){.coll{grid-template-columns:1fr}}
.coll .grid-p{padding:0;max-width:none;grid-template-columns:repeat(auto-fill,minmax(190px,1fr))}
.filtres{display:grid;gap:1.4rem;font-size:var(--fs-sm)}
.filtres details{border-bottom:1px solid var(--border-hairline);padding-bottom:1rem}
.filtres summary{cursor:pointer;font-size:var(--fs-xs);font-weight:600;letter-spacing:var(--ls-wider);text-transform:uppercase;padding:.3rem 0;list-style-position:inside}
.filtres .opts{display:grid;gap:.4rem;margin-top:.7rem;max-height:260px;overflow:auto}
.filtres label{display:flex;gap:.55rem;align-items:center;cursor:pointer;color:var(--text-secondary)}
.filtres label span.n{margin-inline-start:auto;color:var(--text-muted);font-size:var(--fs-xs)}
.filtres input[type=radio],.filtres input[type=checkbox]{accent-color:var(--ad-black)}
.filtres .prix{display:flex;gap:.5rem}
.filtres .prix input{width:100%;height:40px;padding:0 .7rem;border:1px solid var(--border-strong);border-radius:var(--radius-sm);font:inherit}
.filtres .actions{display:flex;gap:.6rem;flex-wrap:wrap}
.filtres .actions .btn{height:42px;padding:0 1.2rem}
.filtres-mobile{display:none}
@media(max-width:900px){.filtres-bascule:not(:checked)~.filtres{display:none}.filtres-mobile{display:inline-flex;margin-bottom:1rem}}
.filtres-bascule:focus-visible+.filtres-mobile{outline:2px solid var(--ad-gold-deep);outline-offset:3px}
.coll-barre{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:1.4rem;font-size:var(--fs-sm);color:var(--text-secondary)}
.coll-barre select{height:40px;padding:0 .8rem;border:1px solid var(--border-strong);border-radius:var(--radius-pill);font:inherit;background:var(--ad-white)}
.pagination{display:flex;justify-content:center;gap:.4rem;margin-top:3rem;flex-wrap:wrap}
.pagination a,.pagination span{min-width:40px;height:40px;display:grid;place-items:center;border-radius:var(--radius-pill);border:1px solid var(--border-hairline);font-size:var(--fs-sm);padding:0 .7rem}
.pagination [aria-current]{background:var(--ad-black);color:#fff;border-color:var(--ad-black)}
.vide{text-align:center;color:var(--text-secondary);padding:3rem 0}

/* ---------- fiche produit ---------- */
.fp{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,4rem);align-items:start;margin-top:1rem}
@media(max-width:900px){.fp{grid-template-columns:1fr}}
.galerie{display:grid;gap:.8rem;position:sticky;top:calc(var(--header-h,104px) + 1rem)}
@media(max-width:900px){.galerie{position:static}}
.galerie-principale{position:relative;aspect-ratio:4/5;background:linear-gradient(170deg,#faf7f2,var(--ad-cream-deep));border-radius:var(--radius-sm);overflow:hidden}
.galerie-principale img{object-fit:contain;padding:6%}
.galerie-vignettes{display:flex;gap:.6rem;overflow-x:auto;scrollbar-width:thin}
.galerie-vignettes button{flex:0 0 72px;height:90px;border:1px solid var(--border-hairline);border-radius:var(--radius-sm);overflow:hidden;background:var(--ad-grey-100);position:relative}
.galerie-vignettes button[aria-current=true]{border-color:var(--ad-ink);box-shadow:inset 0 0 0 1px var(--ad-ink)}
.galerie-vignettes img{object-fit:contain}
.fp-info .pbrand{font-size:var(--fs-eyebrow);font-weight:600;letter-spacing:var(--ls-widest);text-transform:uppercase;color:var(--text-muted)}
.fp-info .pbrand a:hover{color:var(--ad-gold-deep)}
.fp-info h1{margin:.3rem 0 .6rem}
.fp-prix{font-family:var(--font-serif);font-size:1.6rem;font-weight:700}
.fp-prix s{font-size:1rem;color:var(--text-muted);font-weight:400;margin-inline-end:.5rem}
.fp-meta{display:flex;flex-wrap:wrap;gap:.4rem;margin:1rem 0}
.fp-meta li{list-style:none;font-size:10px;font-weight:600;letter-spacing:var(--ls-wider);text-transform:uppercase;padding:.35rem .8rem;border:1px solid var(--border-hairline);border-radius:var(--radius-pill);color:var(--text-secondary)}
.variantes{display:flex;flex-wrap:wrap;gap:.6rem;margin:.6rem 0 1.2rem}
.variantes label{position:relative;cursor:pointer}
.variantes input{position:absolute;opacity:0;inset:0;cursor:pointer}
.variantes span{display:inline-flex;flex-direction:column;align-items:center;padding:.65rem 1.2rem;border:1px solid var(--border-strong);border-radius:var(--radius-pill);font-size:var(--fs-xs);font-weight:600;letter-spacing:var(--ls-wide)}
.variantes small{font-weight:400;color:var(--text-muted);letter-spacing:0}
.variantes input:checked+span{background:var(--ad-black);color:#fff;border-color:var(--ad-black)}
.variantes input:checked+span small{color:rgba(255,255,255,.7)}
.variantes input:focus-visible+span{outline:2px solid var(--ad-gold-deep);outline-offset:3px}
.variantes input:disabled+span{opacity:.45;text-decoration:line-through;cursor:not-allowed}
.fp-achat{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap}
.fp-achat .qty{border-color:var(--border-strong);background:transparent;backdrop-filter:none;height:var(--control-h-md);padding:0 .35rem}
.fp-achat .qty button{width:32px;height:32px;background:var(--ad-grey-100);color:var(--ad-ink)}
.fp-achat .qty button:hover{background:var(--ad-black);color:#fff}
.fp-achat .qty .qval{color:var(--ad-ink);min-width:2ch}
.fp-achat .btn-solid{flex:1;min-width:200px}
.fp-stock{font-size:var(--fs-xs);margin-top:.7rem;color:var(--ad-success)}
.fp-stock.bas{color:var(--ad-gold-deep)}
.fp-stock.non{color:var(--ad-danger)}
.pyramide{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:2rem 0}
@media(max-width:560px){.pyramide{grid-template-columns:1fr}}
.pyramide div{border-top:1px solid var(--ad-gold);padding-top:.8rem}
.pyramide h3{font-family:var(--font-sans);font-size:var(--fs-eyebrow);font-weight:600;letter-spacing:var(--ls-wider);text-transform:uppercase;color:var(--text-accent);margin-bottom:.4rem}
.pyramide p{font-size:var(--fs-sm);color:var(--text-secondary)}
.fp-section{margin-top:2rem}
.fp-section>h2{font-size:1.3rem;margin-bottom:.8rem}
.intensite{display:inline-flex;gap:3px;vertical-align:middle}
.intensite i{width:18px;height:4px;border-radius:2px;background:var(--ad-grey-200)}
.intensite i.on{background:var(--ad-gold-deep)}

/* ---------- pages sombres (maisons, maison) ---------- */
.page-sombre{background:var(--ad-black);color:var(--text-on-dark)}
.mh-tile-img{position:relative}
.fm{display:block}
.fm figure{display:block}
.mg-hero .mg-hero-media{object-fit:cover}
.mg-scene-bg img,.mg-scene-bg video{width:100%;height:100%;object-fit:cover;transform:scale(1.04)}
.mg-pack img{object-fit:contain}
.mg-copy .rte{color:var(--text-on-dark-muted);font-size:var(--fs-sm);margin-top:.9rem;max-width:42ch}
.mg-copy .rte p{margin:0}
.mg-bubble{cursor:pointer}
.mh-hero-mosaic span{position:relative;overflow:hidden}
.mh-hero-mosaic img{object-fit:cover;filter:grayscale(.25) brightness(.72)}
.mh-scene-bg img{object-fit:cover}

/* ---------- média plein cadre sans vidéo ---------- */
.mmedia .mimg{object-fit:cover}
.story button{display:block;width:100%;text-align:center;font:inherit;line-height:inherit;color:inherit}
.phone{padding:0;text-align:start}
.viewer:not([open]),.pv:not([open]){display:none}
dialog.viewer,dialog.pv{max-width:none;max-height:none;width:100%;height:100%;margin:0;border:0;padding:0}
dialog.viewer{background:rgba(10,10,10,.82)}
dialog.viewer::backdrop,dialog.pv::backdrop{background:transparent}
.pv-add[disabled]{opacity:.5}

/* ---------- compte, checkout, commande ---------- */
.grille-2{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:start}
@media(max-width:860px){.grille-2{grid-template-columns:1fr}}
.carte{border:1px solid var(--border-hairline);border-radius:var(--radius-sm);padding:clamp(1.2rem,3vw,2rem);background:var(--ad-white)}
.carte h2{font-size:1.35rem;margin-bottom:1rem}
.carte h1{font-size:1.35rem;line-height:1.18;margin:0 0 1rem}
.form{display:grid;gap:.9rem}
.form .btn{justify-self:start}
.lien{text-decoration:underline;text-underline-offset:3px;font-size:var(--fs-sm);color:var(--text-secondary)}
.lien:hover{color:var(--ad-ink)}
.message{padding:.8rem 1rem;border-radius:var(--radius-sm);font-size:var(--fs-sm);background:var(--ad-grey-100)}
.message.erreur{background:#f7e6e3;color:var(--ad-danger)}
.message.ok{background:#e5f1ea;color:var(--ad-success)}
.checkout{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:start}
@media(max-width:900px){.checkout{grid-template-columns:minmax(0,1fr)}}
.checkout>*,.checkout fieldset{min-width:0}
.checkout .code-ligne label,.checkout .code-ligne input{min-width:0;width:100%}
.checkout>div,.checkout .champ,.checkout .panier-codes label{min-width:0}
.checkout .champ input,.checkout .champ select,.checkout .champ textarea,.checkout .panier-codes input{min-width:0;max-width:100%}
.checkout-recap{position:sticky;top:calc(var(--header-h,104px) + 1rem);background:var(--ad-grey-100);border-radius:var(--radius-sm);padding:1.5rem}
@media(max-width:900px){.checkout-recap{position:static;order:-1}}
.checkout fieldset{min-width:0;margin-bottom:1.8rem;display:grid;gap:.8rem}
.recap-lignes{list-style:none;display:grid;gap:.8rem;margin-bottom:1rem}
.recap-lignes li{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:.8rem;align-items:center;font-size:var(--fs-sm)}
.recap-lignes .img{position:relative;width:56px;height:70px;background:var(--ad-white);border-radius:var(--radius-sm);overflow:hidden}
.recap-lignes .img img{object-fit:contain}
.recap-lignes .q{position:absolute;top:-2px;inset-inline-end:-2px;min-width:18px;height:18px;border-radius:var(--radius-pill);background:var(--ad-grey-700);color:#fff;font-size:10px;display:grid;place-items:center}
.etat{display:inline-block;padding:.3rem .9rem;border-radius:var(--radius-pill);font-size:var(--fs-xs);font-weight:600;letter-spacing:var(--ls-wide);text-transform:uppercase;background:var(--ad-grey-100)}
.etat-payee,.etat-livree,.etat-expediee,.etat-en_preparation{background:#e5f1ea;color:var(--ad-success)}
.etat-annulee,.etat-expiree,.etat-remboursee{background:#f7e6e3;color:var(--ad-danger)}
.commandes{list-style:none;display:grid;gap:.8rem}
.commandes li{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;align-items:center;border:1px solid var(--border-hairline);border-radius:var(--radius-sm);padding:1rem 1.2rem;font-size:var(--fs-sm)}
.adresses{list-style:none;display:grid;gap:.8rem;margin-bottom:1.5rem}
.adresses li{border:1px solid var(--border-hairline);border-radius:var(--radius-sm);padding:1rem 1.2rem;font-size:var(--fs-sm);display:flex;justify-content:space-between;gap:1rem}

/* ---------- pied de page ---------- */
.f-titre{font-family:var(--font-sans);font-size:var(--fs-eyebrow);font-weight:600;letter-spacing:var(--ls-wider);text-transform:uppercase;color:var(--ad-gold-soft);margin-bottom:1.1rem}
footer address{font-style:normal;line-height:1.7}
.f-langues{max-width:var(--container-max);margin:0 auto;padding:0 var(--gutter) 1.4rem;display:flex;gap:1rem;align-items:center;flex-wrap:wrap;font-size:var(--fs-xs)}
.f-langues>span{color:var(--ad-gold-soft);font-weight:600;letter-spacing:var(--ls-wider);text-transform:uppercase}
.erreur-page{min-height:60vh;display:grid;place-items:center;text-align:center;padding:calc(var(--header-h,104px) + 3rem) var(--gutter) 4rem}
.erreur-page h1{font-size:var(--fs-h1);margin:.6rem 0 1rem}
.erreur-page p{color:var(--text-secondary);margin-bottom:1.8rem}
.pfav.liked{color:var(--ad-danger)}
.pfav.liked .ic{fill:currentColor}
.fp-actions .pfav{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--border-strong);border-radius:var(--radius-pill);color:var(--ad-grey-500)}
.fp-actions .icon-btn{border:1px solid var(--border-strong)}
.fp-achat-bloc fieldset{margin-top:1rem}
.page-claire{background:var(--ad-white);color:var(--text-primary)}
.familles{grid-template-columns:repeat(auto-fill,minmax(230px,1fr))}
.famille{display:grid;gap:.5rem;transition:box-shadow var(--dur-base)}
.famille:hover{box-shadow:var(--shadow-md)}
.famille-img{position:relative;aspect-ratio:4/3;border-radius:var(--radius-sm);overflow:hidden;background:var(--ad-grey-100)}
.famille-img img{object-fit:cover}
.famille p{font-size:var(--fs-sm);color:var(--text-secondary)}
.contact-liens{list-style:none;display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.5rem}
.toast{opacity:0;transition:transform var(--dur-slow) var(--ease-standard),opacity var(--dur-slow) var(--ease-standard)}
.toast.on{opacity:1}
.mh-manifesto-inner .rte{margin-top:1.1rem;color:var(--text-on-dark-muted);font-size:var(--fs-sm);line-height:1.8}
.mh-manifesto-inner .rte a{color:var(--ad-white)}
/* témoignages : « Répondre » est un lien (vers le contact), même rendu que les boutons du modèle */
.t-actions a{display:inline-flex;gap:.4rem;align-items:center;transition:color var(--dur-fast)}
.t-actions a:hover{color:var(--ad-ink)}
.t-actions button[aria-pressed=true]{color:var(--ad-danger)}
.t-actions button[aria-pressed=true] .ic{fill:currentColor}
/* compte : commandes cliquables, actions d'adresse */
.commandes li:has(.commande-lien){padding:0}
.commande-lien{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;align-items:center;width:100%;padding:1rem 1.2rem;border-radius:var(--radius-sm);transition:background var(--dur-fast)}
.commande-lien:hover{background:var(--ad-grey-100)}
.actions-ligne{display:flex;gap:.8rem;flex-wrap:wrap;align-items:center}
.actions-adresse{display:flex;flex-direction:column;gap:.4rem;align-items:flex-end}
.adresses li.adresse-edition{display:block}
/* cartes cadeaux dans le panier et le récapitulatif */
.pl-cadeau{width:72px;height:90px;display:grid;place-items:center;font-size:2rem;background:linear-gradient(170deg,#faf7f2,var(--ad-cream-deep))}
.recap-lignes .img-cadeau{position:absolute;inset:0;display:grid;place-items:center;font-size:1.6rem}
.code-ligne{display:flex;gap:.5rem;align-items:flex-end}
.code-ligne label{flex:1;display:grid;gap:.25rem;font-size:var(--fs-xs);font-weight:600;letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--text-secondary)}
.code-ligne input{height:38px;padding:0 .9rem;border:1px solid var(--border-strong);border-radius:var(--radius-pill);font:inherit;font-size:var(--fs-sm);font-weight:400;letter-spacing:0;text-transform:none;background:var(--ad-white)}
.choix .choix-logos{margin-inline-start:auto}
.choix .choix-logos .f-pay-list .pl{border:1px solid var(--border-hairline)}
.groupe-champs{display:grid;gap:.8rem}
.checkout-compte{margin-bottom:1.5rem}
/* carte cadeau */
.cc-visuel{aspect-ratio:4/5;display:grid;place-items:center;background:linear-gradient(170deg,#faf7f2,var(--ad-cream-deep));border-radius:var(--radius-sm)}
.cc-carte{width:78%;aspect-ratio:1.586;border-radius:14px;background:linear-gradient(135deg,var(--ad-black) 0%,#2a2a2a 55%,var(--ad-gold-deep) 140%);color:var(--ad-white);display:flex;flex-direction:column;justify-content:space-between;padding:7% 8%;box-shadow:var(--shadow-md)}
.cc-logo{font-family:var(--font-serif);font-weight:700;font-size:clamp(1rem,2vw,1.5rem)}
.cc-libelle{font-size:var(--fs-eyebrow);font-weight:600;letter-spacing:var(--ls-widest);text-transform:uppercase;color:var(--ad-gold-soft)}
.cc-form fieldset{display:grid;gap:.8rem}
.aide{font-weight:400;letter-spacing:0;text-transform:none;color:var(--text-muted)}
.pot-de-miel{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.contact-form{margin-top:2rem}
.news .news-ok{max-width:460px;margin:0 auto;padding:.9rem 1.2rem;border:1px solid rgba(255,255,255,.4);border-radius:var(--radius-pill);color:var(--ad-white)}
/* spotlight : le cadre 4/5 du modèle contient le flacon quelle que soit la photo de l'ERP */
.spot-left .pack{overflow:hidden}
.spot-left .pack img{height:100%;width:auto;object-fit:contain}
.acces-addr{font-style:normal}
/* hauteur d'en-tête avant hydratation (le script la recalcule ensuite, comme le modèle) */
:root{--header-h:107px}
@media(max-width:860px){:root{--header-h:56px}}
