/* ======================================================================
   Carreau · feuille de style commune (accueil, boutique, fiche produit, panier)
   Structure inspirée de la maquette SHOP.CO (maquettes/shopco/), aux couleurs de Carreau :
   blanc, marine et rouge du logo. Titres Alfa Slab One, texte Barlow.
   Généré une fois depuis l'ancien index.html (sauvegarde-index-avant-shopco.html), puis complété en bas.
   ====================================================================== */
:root{
  --chaux:#FFFFFF; --lin:#F3F5F9; --sable:#E6EAF1; --sable-fonce:#9AA6BC;
  --marine:#14284B; --marine-2:#22396A; --rouge:#D02A2A; --rouge-2:#A81F1F; --cochonnet:#D02A2A; --acier:#A7B0BA; --platane:#3F5A33;
  --photo:#F3F5F9; --texte:#14284B; --doux:#5C6274; --trait:#E4DCCB;
  --slab:"Alfa Slab One",Rockwell,Georgia,serif; --sans:"Barlow",system-ui,sans-serif; --cond:"Barlow Semi Condensed","Barlow",sans-serif; --main:"Caveat",cursive;
  --r:14px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--chaux);color:var(--texte);font:500 18px/1.55 var(--sans)}
img{max-width:100%;display:block}
a{color:inherit}
button,input{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--cochonnet);outline-offset:3px;border-radius:6px}
.wrap{max-width:1200px;margin:0 auto;padding:0 20px}
@media (max-width:600px){.wrap{padding:0 16px}}
h1,h2,h3{margin:0;font-weight:400}
h2{font-family:var(--slab);font-size:clamp(32px,4.4vw,52px);line-height:1.02;letter-spacing:-.005em}
.intro{max-width:60ch;color:var(--doux);margin:14px 0 0;font-size:19px}
section{padding:96px 0}
@media (max-width:700px){section{padding:64px 0}}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;border:0;border-radius:999px;padding:16px 26px;font:700 18px/1 var(--cond);letter-spacing:.01em;cursor:pointer;text-decoration:none;background:var(--rouge);color:#fff;transition:background .15s,transform .15s}
.btn:hover{background:var(--rouge-2)}
.btn:active{transform:translateY(1px)}
.btn.clair{background:transparent;color:var(--marine);box-shadow:inset 0 0 0 2px var(--marine)}
.btn.clair:hover{background:var(--marine);color:#fff}
.btn[disabled]{opacity:.6;cursor:wait}
.prix{font-family:var(--slab);color:var(--rouge);white-space:nowrap}
/* ------------------------------------------------ accueil : le terrain (bloc « ton village sur le t-shirt ») */
.terrain{position:relative;overflow:hidden;background-color:#fff;color:var(--marine)}
.terrain::before,.terrain::after{display:none}
.terrain::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.8;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 .42  0 0 0 0 .35  0 0 0 0 .22  0 0 0 1.9 -1.05'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23g)'/%3E%3C/svg%3E")}
.terrain::after{content:"";position:absolute;inset:-10%;pointer-events:none;
  background:radial-gradient(38% 30% at 12% 18%,rgba(63,90,51,.32),transparent 70%),radial-gradient(30% 26% at 88% 8%,rgba(63,90,51,.28),transparent 70%),
             radial-gradient(26% 22% at 72% 92%,rgba(63,90,51,.22),transparent 70%),radial-gradient(22% 18% at 30% 96%,rgba(63,90,51,.18),transparent 70%)}
.accueil{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);grid-template-areas:"titre scene" "saisie scene";grid-template-rows:auto 1fr;column-gap:40px;align-items:center;padding:56px 20px 64px}
.a-titre{grid-area:titre;align-self:end}.a-saisie{grid-area:saisie;align-self:start}.scene{grid-area:scene}
.accueil h1{font-family:var(--slab);font-size:clamp(44px,6.2vw,84px);line-height:.98;letter-spacing:-.01em}
.accueil .chapo{font-size:21px;max-width:31ch;margin:22px 0 30px;color:#2B3550}
.rond{position:relative;display:flex;align-items:center;gap:8px;background:var(--chaux);border-radius:999px;padding:8px 8px 8px 26px;max-width:520px;box-shadow:0 0 0 3px rgba(255,255,255,.55),0 0 0 7px rgba(255,255,255,.18),0 14px 30px rgba(20,40,75,.18)}
.rond label{position:absolute;left:28px;top:-26px;font:600 26px/1 var(--main);color:var(--marine)}
.rond input{flex:1;min-width:0;border:0;background:transparent;font:700 24px var(--cond);letter-spacing:.04em;text-transform:uppercase;padding:10px 0;outline:none}
.rond input::placeholder{color:#9AA0AE;text-transform:none;letter-spacing:0;font-weight:600}
.rond:focus-within{box-shadow:0 0 0 3px var(--cochonnet),0 0 0 8px rgba(208,42,42,.18),0 14px 30px rgba(20,40,75,.18)}
.essais{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 0;align-items:center;font-size:16px}
.essais button{border:0;background:var(--lin);border-radius:999px;padding:6px 14px;font:600 16px var(--cond);cursor:pointer}
.essais button:hover{background:#fff}
.rassure{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:30px;font-size:16px;font-weight:600}
.rassure span{display:flex;align-items:center;gap:8px}
.rassure svg{flex:none}
.scene{position:relative;aspect-ratio:1200/1097}
.scene .craie{position:absolute;left:4%;right:4%;top:6%;bottom:2%;pointer-events:none}
.scene .tshirt{position:absolute;inset:0;transform:scale(1.1);transform-origin:50% 42%}
.scene .tshirt img{width:100%;height:auto;filter:drop-shadow(0 26px 22px rgba(20,40,75,.2))}
.scene svg.art{position:absolute;pointer-events:none}
.boules{position:absolute;left:50%;bottom:-6px;transform:translateX(-50%);display:flex;gap:12px;background:rgba(255,255,255,.75);border-radius:999px;padding:8px 12px}
.boule{width:34px;height:34px;border-radius:50%;border:0;cursor:pointer;box-shadow:inset -4px -5px 0 rgba(0,0,0,.14),0 0 0 2px rgba(20,40,75,.35);padding:0}
.boule[aria-pressed="true"]{box-shadow:inset -4px -5px 0 rgba(0,0,0,.14),0 0 0 3px var(--marine),0 0 0 6px var(--cochonnet)}
.etiquette-prix{position:absolute;right:2%;top:6%;background:var(--marine);color:#fff;border-radius:50%;width:104px;height:104px;display:grid;place-items:center;text-align:center;transform:rotate(8deg);font:600 15px/1.15 var(--cond)}
.etiquette-prix b{display:block;font:24px var(--slab);color:#fff}
.accueil>*{min-width:0}
@media (max-width:920px){.accueil{grid-template-columns:minmax(0,1fr);grid-template-areas:"titre" "scene" "saisie";grid-template-rows:auto;padding-top:30px;row-gap:8px}.accueil .chapo{margin-bottom:6px;font-size:19px}.a-saisie{margin-top:26px}.scene{max-width:620px;margin:0 auto;width:100%}.etiquette-prix{width:86px;height:86px;font-size:13px}.etiquette-prix b{font-size:20px}}
/* ------------------------------------------------ étapes (une vraie séquence : du texte saisi à la boîte aux lettres) */
.etapes{background:var(--lin)}
.ficelle{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-top:48px}
.ficelle::before{content:"";position:absolute;left:4%;right:4%;top:22px;border-top:2px dashed var(--sable-fonce)}
.etape{position:relative}
.etape .piquet{width:46px;height:46px;border-radius:50%;background:var(--cochonnet);color:#fff;display:grid;place-items:center;font:22px var(--slab);box-shadow:inset -5px -6px 0 rgba(0,0,0,.12),0 0 0 6px var(--lin);position:relative}
.etape h3{font:700 21px var(--cond);margin:16px 0 6px}
.etape p{margin:0;color:var(--doux);font-size:16px;max-width:30ch}
@media (max-width:860px){.ficelle{grid-template-columns:1fr 1fr}.ficelle::before{display:none}}
@media (max-width:480px){.ficelle{grid-template-columns:1fr}}
/* ------------------------------------------------ questions */
.faq{display:grid;grid-template-columns:1fr 1.5fr;gap:48px}
.faq details{border-bottom:1px solid var(--trait);padding:18px 0}
.faq details:first-child{border-top:1px solid var(--trait)}
.faq summary{font:700 20px var(--cond);cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";flex:none;width:12px;height:12px;margin-top:6px;border-right:3px solid var(--marine);border-bottom:3px solid var(--marine);transform:rotate(45deg);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(-135deg);margin-top:12px}
.faq details p{margin:10px 0 0;color:#3A4257;max-width:62ch}
table.tailles{border-collapse:collapse;margin-top:12px;font-size:16px;width:100%;max-width:440px}
table.tailles th,table.tailles td{padding:7px 10px;text-align:left;border-bottom:1px solid var(--trait)}
table.tailles th{font:700 15px var(--cond);color:var(--doux)}
@media (max-width:860px){.faq{grid-template-columns:minmax(0,1fr)}}
/* ------------------------------------------------ réglages de la fiche (couleurs, format, texte, tailles, quantité) */
.groupe > .titre{font:700 17px var(--cond);margin-bottom:10px;display:flex;justify-content:space-between;gap:12px}
.groupe > .titre span{font-weight:600;color:var(--doux)}
.couleurs{display:flex;gap:12px;flex-wrap:wrap}
.couleurs .boule{width:40px;height:40px}
.format{display:grid;grid-template-columns:1fr 1fr;gap:8px;background:var(--lin);border-radius:12px;padding:5px}
.format button{border:0;background:transparent;border-radius:9px;padding:10px 8px;font:700 16px/1.2 var(--cond);cursor:pointer}
.format button span{display:block;font:500 14px var(--sans);color:var(--doux)}
.format button[aria-pressed="true"]{background:#fff;box-shadow:0 2px 8px rgba(20,40,75,.12)}
.champs{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.champs .large{grid-column:1/-1}
.champ label{display:flex;justify-content:space-between;font:600 15px var(--cond);margin-bottom:5px}
.champ label small{color:var(--doux);font-weight:500}
.champ input{width:100%;border:2px solid var(--trait);border-radius:10px;padding:11px 12px;background:#fff;font-weight:600;font-size:17px;transition:border-color .15s}
.champ input:focus{border-color:var(--marine);outline:none}
.champ input[aria-invalid="true"]{border-color:var(--rouge)}
.tailles-choix{display:flex;gap:8px;flex-wrap:wrap}
.tailles-choix button{min-width:52px;border:2px solid var(--trait);background:#fff;border-radius:10px;padding:9px 10px;font:700 16px var(--cond);cursor:pointer}
.tailles-choix button[aria-pressed="true"]{border-color:var(--marine);background:var(--marine);color:#fff}
.ligne-taille{display:grid;grid-template-columns:76px 1fr;align-items:center;gap:10px;margin-top:8px}
.ligne-taille span{font:600 15px var(--cond);color:var(--doux)}
.mesure{font-size:15px;color:var(--doux);margin-top:8px}
.qte{display:inline-flex;align-items:center;border:2px solid var(--trait);border-radius:999px;background:#fff}
.qte button{width:42px;height:42px;border:0;background:transparent;font:22px/1 var(--slab);cursor:pointer;color:var(--marine)}
.qte output{min-width:28px;text-align:center;font:700 18px var(--cond)}
.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);opacity:0;background:var(--marine);color:#fff;padding:13px 20px;border-radius:12px;z-index:70;font-weight:600;max-width:calc(100% - 32px);transition:opacity .2s,transform .2s;pointer-events:none}
.toast.vu{opacity:1;transform:translate(-50%,0)}
/* ------------------------------------------------ prix de Noël, groupe, collections */
.bloc-prix{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.lancement{font:600 14px var(--cond);color:var(--doux)}
.groupe-zone{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:48px;align-items:center}
.paliers{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.paliers li{display:grid;grid-template-columns:76px 1fr auto;align-items:center;gap:14px;background:var(--chaux);border-radius:12px;padding:14px 18px}
.paliers .n{font:30px/1 var(--slab);color:var(--marine)}
.paliers .q{font:600 17px var(--cond);color:var(--doux)}
.paliers .prix{font-size:22px}
.paliers small{display:block;font:500 14px var(--sans);color:var(--doux);text-align:right}
.paliers li>*{min-width:0}
.paliers li.fort{box-shadow:inset 0 0 0 3px var(--cochonnet)}
.exemple{margin:14px 0 0;color:var(--doux);font-size:16px}
@media (max-width:860px){.groupe-zone{grid-template-columns:minmax(0,1fr)}}
.onglets{display:flex;gap:8px;flex-wrap:wrap;margin-top:30px}
.onglets button{border:0;border-radius:999px;padding:10px 18px;font:700 17px var(--cond);background:var(--lin);color:var(--marine);cursor:pointer}
.onglets button[aria-selected="true"]{background:var(--rouge);color:#fff}
.grille{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:24px;margin-top:28px}
.carte{border:0;padding:0;text-align:left;background:none;cursor:pointer;display:flex;flex-direction:column;gap:10px}
/* carte produit : le t-shirt entier sur gris très clair ; au survol, le même t-shirt porté */
.carte .ph{position:relative;aspect-ratio:1;border-radius:var(--r);overflow:hidden;background:#F6F4F0}
.carte .ph img{position:absolute;inset:0;width:100%;height:100%;transition:opacity .35s ease}
.carte .ph .plat{object-fit:contain;padding:2%}
.carte .ph .porte{object-fit:cover;object-position:50% 14%;opacity:0}
@media (hover:hover){.carte:hover .ph .porte,.carte:focus-visible .ph .porte{opacity:1}.carte:hover .ph .plat,.carte:focus-visible .ph .plat{opacity:0}}
.carte .remise{position:absolute;top:10px;left:10px;z-index:1;background:var(--rouge);color:#fff;font:700 13px/1 var(--cond);letter-spacing:.04em;padding:6px 8px;border-radius:6px}
.carte h3{font:700 19px/1.2 var(--cond)}
.carte .desc{font-size:15px;color:var(--doux);margin:0}
.carte .bloc-prix .prix{font-size:21px}
.fiche .lancement-fiche{margin:6px 0 0;font:600 15px var(--cond);color:var(--doux)}
.personnes{display:grid;gap:8px}
.personne{display:grid;grid-template-columns:86px 1fr auto;align-items:center;gap:10px}
.personne span{font:600 15px var(--cond);color:var(--doux)}
.personne .suppr{border:0;background:none;color:var(--doux);cursor:pointer;font-size:20px;width:32px;height:32px;border-radius:50%}
.personne .suppr:hover{background:var(--lin)}
.ajout-personne{margin-top:10px;border:2px dashed var(--trait);background:none;border-radius:10px;padding:10px;width:100%;font:700 16px var(--cond);color:var(--marine);cursor:pointer}
.recap-groupe{font:600 15px var(--cond);color:var(--doux);margin-top:8px}
@media (max-width:480px){.personne{grid-template-columns:1fr auto}.personne > span:first-child{grid-column:1/-1}.personne .tailles-choix{gap:5px;flex-wrap:nowrap}.personne .tailles-choix button{min-width:0;flex:1;padding:8px 0;font-size:15px}}
@media (prefers-reduced-motion:reduce){*{transition:none !important;animation:none !important;scroll-behavior:auto !important}}
/* ------------------------------------------------ « Qui sommes-nous » : carrousel « squeeze »
   Portage sans React du composant carousel-squeeze (21st.dev) : un panneau ouvert, les suivants en colonnes
   qui rétrécissent, la fin en lamelles. Largeurs en CSS (unités de conteneur), aucun calcul de mise en page en JS. */
.nous{background:var(--chaux)}
.nous-tete{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:22px}
.nous-tete .intro{margin-top:10px}
.sq{--sq-h:clamp(240px,34cqi,420px);--sq-gap:16px;--sq-slat:8px;--sq-slat-gap:8px;--sq-radius:14px;--sq-ms:1000ms;--sq-ease:cubic-bezier(.16,1,.3,1);
  --sq-hero:min(calc(var(--sq-h) * 16 / 9),calc(100cqi * .66));
  --sq-room:calc(100cqi - var(--sq-hero) - var(--sq-slats) * var(--sq-slat-gap) - 3 * var(--sq-gap) - var(--sq-slats) * var(--sq-slat));
  container-type:inline-size;display:flex;flex-direction:column;width:100%}
@media (max-width:640px){.sq{--sq-h:300px;--sq-gap:8px;--sq-slat:6px;--sq-slat-gap:6px;--sq-radius:12px;--sq-hero:min(calc(var(--sq-h) * 16 / 9),calc(100cqi * .72))}}
.sq-fleches{display:flex;gap:8px;flex:none}
.sq-fleches button{width:44px;height:44px;border-radius:50%;border:0;background:var(--marine);color:#fff;display:grid;place-items:center;cursor:pointer;transition:background .15s}
.sq-fleches button:hover{background:var(--rouge)}
.sq-fenetre{width:100%;height:var(--sq-h);overflow:hidden}
.sq-bande{display:flex;height:100%;width:max-content}
.sq-carte{position:relative;isolation:isolate;height:100%;flex:none;overflow:hidden;border:0;padding:0;cursor:pointer;background:var(--lin);
  transition-property:width,margin-left;transition-timing-function:var(--sq-ease)}
.sq-carte img{position:absolute;inset:0 auto 0 50%;height:100%;width:var(--sq-hero);min-width:100%;max-width:none;object-fit:cover;transform:translateX(-50%);display:block}
.sq-carte .coin{position:absolute;inset:auto 0 0 0;display:flex;align-items:flex-end;padding:56px 18px 16px;pointer-events:none;
  background:linear-gradient(to top,rgba(20,40,75,.72),transparent);transition:opacity var(--sq-ms) var(--sq-ease)}
.sq-carte .coin span{font:700 15px var(--cond);letter-spacing:.06em;text-transform:uppercase;color:#fff;display:flex;gap:8px;align-items:center;white-space:nowrap}
.sq-carte .coin span::before{content:"";width:9px;height:9px;transform:rotate(45deg);background:var(--rouge);flex:none}
.sq-carte:focus-visible{outline:3px solid var(--rouge);outline-offset:3px}
.sq-texte{display:grid;margin-top:22px}
.sq-texte > div{grid-area:1/1;display:flex;flex-direction:column;gap:14px;transition:opacity var(--sq-ms) var(--sq-ease),visibility var(--sq-ms)}
@container (min-width:720px){.sq-texte > div{flex-direction:row;align-items:flex-start;justify-content:space-between;gap:40px}}
.sq-texte p{margin:0;max-width:46rem;font-size:19px;line-height:1.55;text-wrap:balance}
.sq-texte p b{color:var(--marine);font-weight:700}
.sq-texte p span{color:var(--doux)}
.sq-texte .btn{flex:none}
.sq-note{margin-top:14px;font-size:13px;color:var(--doux)}
/* ------------------------------------------------ section « Écris ton t-shirt » : trois modèles, même gabarit */
.perso-tete{display:grid;gap:10px;max-width:760px;margin-bottom:30px}
.modeles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
@media (max-width:1100px){.modeles{grid-template-columns:repeat(2,minmax(0,1fr))}}
.modele{width:100%;border:0;padding:0;background:none;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:14px;color:inherit}
.modele .ph{position:relative;aspect-ratio:1;border-radius:var(--r);overflow:hidden;background:#F6F4F0}
.modele .ph img{position:absolute;inset:0;width:100%;height:100%;transition:opacity .35s ease}
.modele .ph .plat{object-fit:contain;padding:2%}
.modele .ph .porte{object-fit:cover;object-position:50% 14%;opacity:0}
@media (hover:hover){.modele:hover .ph .porte,.modele:focus-visible .ph .porte{opacity:1}.modele:hover .ph .plat,.modele:focus-visible .ph .plat{opacity:0}}
.modele .corps{display:grid;gap:8px}
.modele .sur{font:700 13px var(--cond);letter-spacing:.1em;text-transform:uppercase;color:var(--rouge)}
.modele h3{font:28px/1 var(--slab);color:var(--marine)}
.champs-liste{display:flex;flex-wrap:wrap;gap:6px}
.champs-liste span{font:600 14px var(--cond);color:var(--marine);background:var(--lin);border-radius:99px;padding:5px 11px}
.modele .bas{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:4px}
.modele .bas .prix{font-size:22px}
.modele .aller{font:700 16px var(--cond);color:#fff;background:var(--rouge);border-radius:99px;padding:9px 16px;transition:background .15s}
.modele:hover .aller{background:var(--rouge-2)}
.perso-pied{margin:26px 0 0;color:var(--doux);font-size:17px}
.perso-pied b{color:var(--marine)}
.perso-pied a{color:var(--rouge);font-weight:600}
@media (max-width:860px){.modeles{grid-template-columns:minmax(0,1fr)}.modele{display:grid;grid-template-columns:42% minmax(0,1fr);gap:16px;align-items:center}.modele h3{font-size:24px}}
@media (max-width:420px){.modele .bas{flex-wrap:wrap}}
.palier-fiche{margin:0;font-size:15px;color:var(--doux);background:var(--lin);border-radius:10px;padding:10px 14px}
.palier-fiche b{color:var(--marine)}
.pousse{padding:12px 22px 14px;border-bottom:1px solid var(--trait);display:grid;gap:8px;font-size:14.5px;color:var(--doux)}
.pousse[hidden]{display:none}
.pousse b{color:var(--marine)}
.jauge{height:8px;border-radius:99px;background:var(--lin);overflow:hidden}
.jauge i{display:block;height:100%;background:var(--rouge);border-radius:99px;transition:width .3s}
.suggestions{display:grid;gap:8px}
.suggestions[hidden]{display:none}
.suggestions .titre{font:700 15px var(--cond);color:var(--marine)}
.suggestions .liste{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.suggestions button{border:1px solid var(--trait);background:var(--chaux);border-radius:10px;padding:6px;cursor:pointer;text-align:left;font:600 13px/1.2 var(--cond);color:var(--marine);display:grid;gap:4px;min-width:0}
.suggestions button:hover{border-color:var(--marine)}
.suggestions img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:6px;background:var(--photo)}
.code{font-size:14px}
.code summary{cursor:pointer;color:var(--doux);text-decoration:underline;text-underline-offset:3px;width:max-content}
.code .ligne-code{display:flex;gap:8px;margin-top:8px}
.code input{flex:1;min-width:0;border:1px solid var(--trait);border-radius:10px;padding:9px 12px;font:600 15px var(--sans);text-transform:uppercase}
.code button{border:0;border-radius:10px;padding:0 14px;background:var(--marine);color:#fff;font:700 15px var(--cond);cursor:pointer}
.code .ok{color:var(--marine);font-weight:600;margin-top:6px}
.form-mene{display:grid;gap:10px;min-width:0}
.lettre-mene .wrap>*{min-width:0}
.form-mene .btn{flex:none;padding:14px 18px;font-size:16px}
.form-mene .rang{display:flex;gap:8px;background:#fff;border-radius:999px;padding:6px}
.form-mene input{flex:1;min-width:0;width:100%;border:0;background:none;padding:0 16px;font:600 17px var(--sans);color:var(--marine)}
.form-mene input:focus{outline:none}
.form-mene .rang:focus-within{box-shadow:0 0 0 3px var(--rouge)}
.form-mene small{color:#B9C3D6;font-size:13.5px;line-height:1.4}
.form-mene .merci{background:#fff;color:var(--marine);border-radius:14px;padding:16px 18px;font-weight:600}
.form-mene .merci b{font:22px var(--slab);color:var(--rouge);letter-spacing:.04em}
.fenetre{border:0;padding:0;border-radius:18px;width:min(480px,calc(100% - 32px));color:var(--marine);background:var(--chaux);box-shadow:0 30px 60px rgba(20,40,75,.3)}
.fenetre::backdrop{background:rgba(20,40,75,.55)}
.fenetre .haut{background:var(--marine);color:#fff;padding:26px 26px 22px;display:grid;gap:8px;position:relative}
.fenetre .haut img{width:46px;height:46px}
.fenetre h3{font:28px/1.05 var(--slab);margin:0}
.fenetre .haut p{margin:0;color:#C8D0E0;font-size:16px}
.fenetre .corps{padding:20px 26px 24px;display:grid;gap:12px}
.fenetre .corps .rang{border:1px solid var(--trait)}
.fenetre .corps small{color:var(--doux)}
.fenetre .fermer{position:absolute;top:12px;right:12px;background:rgba(255,255,255,.14);color:#fff}
.fenetre .non-merci{border:0;background:none;color:var(--doux);text-decoration:underline;cursor:pointer;font-size:14px;justify-self:center}
@media (max-width:600px){.fenetre{margin:auto auto 0;width:100%;max-width:100%;border-radius:18px 18px 0 0}.fenetre .haut{padding:22px 20px 18px}.fenetre .corps{padding:16px 20px calc(20px + env(safe-area-inset-bottom,0px))}}
.visuellement-cache{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ======================================================================
   Structure « boutique » (maquette SHOP.CO adaptée) : bandeau, en-tête, hero, rayons, moments, promesses, lettre, pied
   ====================================================================== */
.accueil h2{font-family:var(--slab);font-size:clamp(40px,5.4vw,72px);line-height:.98;letter-spacing:-.01em}
.mini-titre{font:700 13px var(--cond);letter-spacing:.14em;text-transform:uppercase;color:var(--rouge);margin:0 0 10px}
.titre-rayon{text-align:center;text-transform:uppercase;font-size:clamp(30px,4vw,46px)}
.intro-rayon{text-align:center;margin:12px auto 0}
.btn.contour{background:#fff;color:var(--marine);box-shadow:inset 0 0 0 1px var(--trait);font-weight:600;padding:14px 54px}
.btn.contour:hover{box-shadow:inset 0 0 0 2px var(--marine);background:#fff}
.btn.marine{background:var(--marine)}
.btn.marine:hover{background:var(--marine-2)}
hr.separe{border:0;border-top:1px solid var(--trait);margin:0}
.fil{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:15px;color:var(--doux);padding:22px 0 6px;margin:0;list-style:none}
.fil a{text-decoration:none}.fil a:hover{color:var(--rouge)}
.fil li+li::before{content:"›";margin-right:10px;color:var(--sable-fonce)}
.fil li:last-child{color:var(--marine);font-weight:600}

/* ------------------------------------------------ bandeau d'annonce */
.annonce{position:relative;background:var(--marine);color:#fff;font:500 14.5px/1.35 var(--sans);text-align:center;padding:9px 48px}
.annonce[hidden]{display:none}
.annonce p{margin:0}
.annonce a{color:#fff;font-weight:700;text-underline-offset:3px}
.annonce b{font-weight:700}
.annonce-fermer{position:absolute;right:10px;top:50%;transform:translateY(-50%);width:32px;height:32px;border:0;background:none;color:#fff;font-size:20px;cursor:pointer;border-radius:50%}
.annonce-fermer:hover{background:rgba(255,255,255,.12)}
@media (max-width:600px){.annonce{font-size:13px;padding:8px 40px 8px 14px}.annonce .long{display:none}}

/* ------------------------------------------------ en-tête */
.entete{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.96);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--trait)}
.entete .wrap{position:relative;display:flex;align-items:center;gap:30px;height:76px}
.entete .logo{flex:none}
.entete .logo img{height:30px;width:auto}
.nav-principale{display:flex;align-items:center;gap:24px;font:600 16.5px var(--cond);white-space:nowrap}
.nav-principale a{text-decoration:none;padding:6px 0;border-bottom:2px solid transparent}
.nav-principale a:hover{border-color:var(--rouge)}
.deroulant{position:relative;display:flex;align-items:center;gap:2px}
.deroulant .fleche{border:0;background:none;padding:4px;cursor:pointer;display:grid;place-items:center;color:var(--marine)}
.sous-menu{position:absolute;top:calc(100% + 10px);left:-18px;min-width:230px;background:#fff;border-radius:14px;box-shadow:0 18px 40px rgba(20,40,75,.16);padding:10px;display:none;gap:2px;z-index:5}
.sous-menu::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
.sous-menu a{padding:9px 12px;border-radius:9px;border:0;font-weight:600}
.sous-menu a:hover{background:var(--lin)}
.deroulant:hover .sous-menu,.deroulant:focus-within .sous-menu,.deroulant.ouvert .sous-menu{display:grid}
.recherche{flex:1;min-width:0;display:flex;align-items:center;gap:10px;background:var(--lin);border-radius:999px;padding:0 18px;height:46px}
.recherche svg{flex:none;color:var(--doux)}
.recherche input{flex:1;min-width:0;border:0;background:none;font:500 16px var(--sans);outline:none;height:100%}
.recherche:focus-within{box-shadow:0 0 0 2px var(--marine)}
.icones{display:flex;align-items:center;gap:6px;flex:none}
.ico{position:relative;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;border:0;background:none;cursor:pointer;color:var(--marine);text-decoration:none}
.ico:hover{background:var(--lin)}
.pastille{position:absolute;top:2px;right:0;min-width:19px;height:19px;padding:0 5px;border-radius:99px;background:var(--rouge);color:#fff;font:700 12px/19px var(--cond);text-align:center}
.pastille[data-n="0"]{display:none}
.ico.bump .pastille{animation:bump .5s}
@keyframes bump{30%{transform:scale(1.35)}}
.burger,.ico-recherche{display:none}
.menu-tel{border-top:1px solid var(--trait);background:#fff;padding:6px 16px 18px;display:grid;gap:0;max-height:calc(100vh - 64px);overflow:auto}
.menu-tel[hidden]{display:none}
.menu-tel a{text-decoration:none;font:700 19px var(--cond);padding:12px 4px;border-bottom:1px solid var(--trait)}
.menu-tel .petit-titre{font:700 12px var(--cond);letter-spacing:.14em;text-transform:uppercase;color:var(--doux);padding:18px 4px 4px}
@media (max-width:1080px){.nav-principale{gap:18px;font-size:16px}.entete .wrap{gap:20px}}
@media (max-width:960px){
  .nav-principale{display:none}.burger{display:grid}
  .entete .wrap{gap:4px;height:64px}
  .entete .logo{margin-right:auto}.entete .logo img{height:25px}
  .recherche{display:none;position:absolute;left:16px;right:16px;top:calc(100% + 8px);height:48px;background:#fff;box-shadow:0 10px 30px rgba(20,40,75,.18)}
  .entete.cherche .recherche{display:flex}
  .ico-recherche{display:grid}
}

/* ------------------------------------------------ hero */
.hero{background:var(--lin);overflow:hidden;padding:0}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center;padding-top:64px;padding-bottom:64px}
.hero h1{font-family:var(--slab);font-size:clamp(40px,5.2vw,72px);line-height:.98;letter-spacing:-.01em;text-transform:uppercase}
.hero h1 em{font-style:normal;color:var(--rouge)}
.hero .chapo{color:var(--doux);font-size:19px;max-width:46ch;margin:22px 0 30px}
.hero .actions{display:flex;flex-wrap:wrap;gap:12px}
.chiffres{list-style:none;margin:44px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:18px 0}
.chiffres li{padding:0 30px;border-left:1px solid var(--sable-fonce);display:grid;gap:2px}
.chiffres li:first-child{padding-left:0;border-left:0}
.chiffres b{font:400 clamp(26px,2.8vw,38px)/1.05 var(--slab);color:var(--marine);white-space:nowrap}
.chiffres span{font-size:15px;color:var(--doux)}
.hero-cote{position:relative}
.hero-visuel{position:relative;aspect-ratio:4/4.4;border-radius:28px;overflow:hidden;background:var(--marine)}
.hero-visuel picture img,.hero-visuel video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-visuel video{opacity:0;transition:opacity .9s ease}
.hero-visuel video.joue{opacity:1}
.hero-visuel::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,40,75,0) 45%,rgba(20,40,75,.72) 100%);pointer-events:none}
.hero-visuel .marque{position:absolute;z-index:1;left:28px;bottom:26px;width:min(240px,46%);height:auto;filter:drop-shadow(0 6px 20px rgba(0,0,0,.35))}
.etoile{position:absolute;z-index:2;color:var(--rouge);pointer-events:none}
.etoile.e1{width:76px;right:-16px;top:-14px}
.etoile.e2{width:40px;left:-20px;top:42%;color:var(--marine)}
.film-pause{position:absolute;z-index:3;right:16px;bottom:16px;width:38px;height:38px;border-radius:50%;border:0;background:rgba(20,40,75,.6);color:#fff;display:grid;place-items:center;cursor:pointer}
.film-pause[aria-pressed="true"] rect:last-child{display:none}
@media (max-width:900px){
  .hero .wrap{grid-template-columns:minmax(0,1fr);gap:34px;padding-top:34px;padding-bottom:40px}
  .hero .actions .btn{flex:1 1 220px}
  .chiffres{display:grid;grid-template-columns:1fr 1fr;gap:16px;text-align:center;margin-top:30px}
  .chiffres li,.chiffres li:first-child{padding:0 8px;border-left:0}
  .chiffres li:nth-child(2){border-left:1px solid var(--sable-fonce)}
  .chiffres li:last-child{grid-column:1/-1}
  .hero-visuel{aspect-ratio:4/4.2;max-height:72vh;width:100%}
  .etoile.e1{width:56px;right:-6px;top:-10px}.etoile.e2{width:30px;left:-8px}
}

/* ------------------------------------------------ bande des collections (à la place des marques) */
.bande{background:var(--marine);color:#fff;padding:0}
.bande .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px 34px;padding-top:30px;padding-bottom:30px}
.bande a{font:400 clamp(20px,2.2vw,30px)/1 var(--slab);text-decoration:none;color:#fff;opacity:.92;white-space:nowrap}
.bande a:hover{opacity:1;color:#FFD2D2}
@media (max-width:700px){.bande .wrap{justify-content:center;gap:14px 26px;padding-top:24px;padding-bottom:24px}}

/* ------------------------------------------------ rayons (Nouveautés, Pour ton club, Tu aimeras aussi) */
.rayon{padding:72px 0}
.rangee{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-top:44px}
.rayon .voir{display:flex;justify-content:center;margin-top:36px}
@media (max-width:900px){
  .rayon{padding:56px 0}
  .rangee{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;margin:30px -16px 0;padding:0 16px 6px;scrollbar-width:none}
  .rangee::-webkit-scrollbar{display:none}
  .rangee>*{flex:0 0 min(62vw,260px);scroll-snap-align:start}
  .rayon .voir .btn{width:100%}
}
a.carte{text-decoration:none;color:inherit}
.carte .ph{background:#F3F2EF;border-radius:20px}
.carte h3{font:700 19px/1.2 var(--cond)}
.carte .bloc-prix .prix{font-size:22px}
.carte .collec{font:700 12px var(--cond);letter-spacing:.12em;text-transform:uppercase;color:var(--doux)}
.carte .badge{position:absolute;top:10px;left:10px;z-index:1;background:#fff;color:var(--marine);font:700 13px/1 var(--cond);padding:7px 9px;border-radius:99px;box-shadow:0 2px 8px rgba(20,40,75,.12)}
.carte .badge.rouge{background:var(--rouge);color:#fff}

/* ------------------------------------------------ « Écris ton t-shirt » : les 4 modèles deviennent des liens */
a.modele{text-decoration:none;color:inherit}
.modele .ph{border-radius:20px;background:#F3F2EF}
.perso-pied a{color:var(--rouge);font-weight:600}

/* ------------------------------------------------ par moment (à la place de « Browse by dress style ») */
.moments-zone{padding:24px 0 72px}
.moments{background:var(--lin);border-radius:40px;padding:64px 64px 70px}
.grille-moments{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:20px;margin-top:44px}
.m1{grid-column:span 4}.m2{grid-column:span 8}.m3{grid-column:span 7}.m4{grid-column:span 5}
.moment{position:relative;display:block;height:290px;border-radius:20px;overflow:hidden;background:#fff;text-decoration:none;color:var(--marine)}
.moment img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .5s}
.moment:hover img{transform:scale(1.04)}
.moment::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,rgba(255,255,255,.94) 0%,rgba(255,255,255,.6) 34%,rgba(255,255,255,0) 60%)}
.moment .txt{position:absolute;z-index:1;left:28px;top:24px;right:28px;display:grid;gap:6px}
.moment h3{font:400 30px/1.05 var(--slab)}
.moment p{margin:0;font-size:15px;color:#2B3550;max-width:22ch;font-weight:600}
@media (max-width:900px){
  .moments-zone{padding:0 0 56px}
  .moments{border-radius:24px;padding:40px 18px 20px}
  .grille-moments{grid-template-columns:minmax(0,1fr);gap:14px;margin-top:26px}.grille-moments .moment{grid-column:1/-1}
  .moment{height:190px}.moment h3{font-size:25px}.moment .txt{left:20px;top:18px}
}

/* ------------------------------------------------ nos promesses (à la place des avis : aucun faux avis) */
.promesses-tete{display:flex;align-items:end;justify-content:space-between;gap:20px}
.promesses-tete h2{text-transform:uppercase;font-size:clamp(30px,4vw,46px)}
.promesses{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(290px,1fr);gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;margin-top:36px;padding-bottom:6px;scrollbar-width:none}
.promesses::-webkit-scrollbar{display:none}
.promesse{scroll-snap-align:start;border:1px solid var(--trait);border-radius:20px;padding:26px 28px;display:grid;gap:10px;align-content:start;background:#fff}
.promesse .losanges{display:flex;gap:7px}
.promesse .losanges i{width:11px;height:11px;transform:rotate(45deg);background:var(--rouge);display:block}
.promesse h3{font:700 20px/1.2 var(--cond);display:flex;align-items:center;gap:8px}
.promesse h3 svg{flex:none;color:var(--marine)}
.promesse p{margin:0;color:var(--doux);font-size:16px}
@media (max-width:700px){.promesses{grid-auto-columns:84%;gap:12px;margin:26px -16px 0;padding:0 16px 6px}}

/* ------------------------------------------------ la lettre (cadre marine posé sur le pied de page) */
.lettre-zone{background:linear-gradient(180deg,#fff 50%,var(--lin) 50%);padding:30px 0 0}
.lettre-cadre{background:var(--marine);color:#fff;border-radius:24px;padding:40px 60px;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px 56px;align-items:center}
.lettre-cadre h2{color:#fff;text-transform:uppercase;font-size:clamp(28px,3.4vw,40px)}
.lettre-cadre p{margin:10px 0 0;color:#C8D0E0;font-size:16px}
.lettre-cadre .form-mene{gap:12px}
.lettre-cadre .champ-mail{display:flex;align-items:center;gap:10px;background:#fff;border-radius:999px;padding:0 18px;height:50px;color:var(--doux)}
.lettre-cadre .champ-mail:focus-within{box-shadow:0 0 0 3px var(--rouge)}
.lettre-cadre .champ-mail input{flex:1;min-width:0;border:0;background:none;font:600 16px var(--sans);color:var(--marine);height:100%;outline:none}
.lettre-cadre .form-mene .btn{background:#fff;color:var(--marine);width:100%;padding:15px}
.lettre-cadre .form-mene .btn:hover{background:#FFE3E3}
@media (max-width:820px){.lettre-cadre{grid-template-columns:minmax(0,1fr);padding:30px 22px;border-radius:20px}}

/* ------------------------------------------------ pied de page */
.pied{background:var(--lin);padding:56px 0 40px;font-size:15.5px}
.pied-grille{display:grid;grid-template-columns:minmax(0,1.5fr) repeat(4,minmax(0,1fr));gap:30px}
.pied-grille img{height:28px;width:auto}
.pied-grille .devise{color:var(--doux);margin:16px 0 0;max-width:30ch}
.pied-grille h3{font:700 14px var(--cond);letter-spacing:.18em;text-transform:uppercase;margin:4px 0 16px;color:var(--marine)}
.pied-grille ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.pied-grille a{text-decoration:none;color:var(--doux)}
.pied-grille a:hover{color:var(--rouge)}
.pied-bas{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;border-top:1px solid var(--trait);margin-top:44px;padding-top:24px;color:var(--doux);font-size:14px}
.paiements{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.paiements span{background:#fff;border-radius:6px;padding:5px 10px;font:700 12.5px var(--cond);letter-spacing:.04em;color:var(--marine);box-shadow:0 1px 3px rgba(20,40,75,.12)}
@media (max-width:900px){.pied-grille{grid-template-columns:1fr 1fr}.pied-grille>div:first-child{grid-column:1/-1}.pied-bas{justify-content:center;text-align:center}}

/* ------------------------------------------------ page Boutique : filtres + grille */
.boutique{display:grid;grid-template-columns:290px minmax(0,1fr);gap:28px;align-items:start;padding:14px 0 72px}
.boutique>*{min-width:0}
.filtres{border:1px solid var(--trait);border-radius:20px;padding:20px 22px;position:sticky;top:96px;background:#fff}
.filtres-tete{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px;border-bottom:1px solid var(--trait)}
.filtres-tete h2{font:700 20px var(--cond)}
.filtres .fermer{display:none}
.filtre{border-bottom:1px solid var(--trait);padding:16px 0}
.filtre summary{font:700 18px var(--cond);cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center}
.filtre summary::-webkit-details-marker{display:none}
.filtre summary::after{content:"";width:9px;height:9px;border-right:2.5px solid var(--marine);border-bottom:2.5px solid var(--marine);transform:rotate(-135deg);margin-top:4px}
.filtre:not([open]) summary::after{transform:rotate(45deg);margin-top:-4px}
.options{display:grid;gap:2px;margin-top:12px}
.options button{display:flex;justify-content:space-between;align-items:center;border:0;background:none;text-align:left;padding:7px 10px;border-radius:9px;font:500 16px var(--sans);color:var(--doux);cursor:pointer}
.options button:hover{background:var(--lin)}
.options button[aria-pressed="true"]{color:var(--marine);font-weight:700;background:var(--lin)}
.options button small{font-size:13px;color:var(--sable-fonce)}
.pastilles{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}
.pastilles .boule{width:36px;height:36px}
.puces{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.puces button,.puces span{border:0;background:var(--lin);border-radius:999px;padding:8px 14px;font:600 15px var(--cond);color:var(--doux);cursor:pointer}
.puces button[aria-pressed="true"]{background:var(--marine);color:#fff}
.puces span{cursor:default}
.note-filtre{margin:10px 0 0;font-size:13.5px;color:var(--doux)}
.filtres .btn{width:100%;margin-top:14px}
.resultats-tete{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 20px}
.resultats-tete h1{font:400 clamp(28px,3vw,36px)/1.05 var(--slab)}
.resultats-tete .droite{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.resultats-tete .compte{color:var(--doux);font-size:15px}
.tri{display:flex;align-items:center;gap:6px;font-size:15px;color:var(--doux)}
.tri select{border:0;background:none;font:700 15px var(--sans);color:var(--marine);cursor:pointer;max-width:170px}
.ouvrir-filtres{display:none}
.intro-boutique{margin:8px 0 0;color:var(--doux);font-size:16px;max-width:70ch}
.grille-boutique{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 20px;margin-top:26px}
.aucun{grid-column:1/-1;text-align:center;padding:60px 20px;color:var(--doux)}
.aucun p{font:600 26px/1.15 var(--main);color:var(--marine);margin:0 0 14px}
@media (max-width:1000px){.grille-boutique{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 14px}}
@media (max-width:900px){
  .boutique{grid-template-columns:minmax(0,1fr);padding-top:4px}
  .filtres{position:fixed;left:0;right:0;bottom:0;top:auto;max-height:88vh;overflow:auto;z-index:50;border-radius:22px 22px 0 0;transform:translateY(102%);visibility:hidden;transition:transform .28s,visibility 0s .28s;box-shadow:0 -20px 50px rgba(20,40,75,.25)}
  .filtres.ouvert{transform:none;visibility:visible;transition:transform .28s}
  .filtres .fermer{display:grid}
  .ouvrir-filtres{display:inline-flex;align-items:center;gap:8px;border:0;background:var(--lin);border-radius:999px;padding:9px 14px;font:700 15px var(--cond);color:var(--marine);cursor:pointer}
  .grille-boutique .carte h3{font-size:17px}.grille-boutique .carte .desc{display:none}
}
.voile{position:fixed;inset:0;background:rgba(20,40,75,.5);z-index:45;opacity:0;pointer-events:none;transition:opacity .2s}
.voile.ouvert{opacity:1;pointer-events:auto}
.fermer{width:42px;height:42px;border-radius:50%;border:0;background:var(--lin);font:24px/1 var(--sans);cursor:pointer;color:var(--marine);display:grid;place-items:center}
.fermer:hover{background:var(--sable)}

/* ------------------------------------------------ fiche produit (page) */
.produit-page{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:44px;align-items:start;padding:14px 0 30px}
.galerie{display:grid;grid-template-columns:110px minmax(0,1fr);gap:14px;position:sticky;top:96px}
.galerie .principale{grid-column:2;grid-row:1;background:#F3F2EF;border-radius:20px;overflow:hidden;display:grid;place-items:center}
.galerie .cadre{position:relative;width:100%;aspect-ratio:1200/1097}
.galerie .cadre img{width:100%;height:100%;object-fit:contain}
.galerie .cadre svg.art{position:absolute;pointer-events:none}
.galerie .vignettes{grid-column:1;grid-row:1;display:flex;flex-direction:column;gap:12px;overflow:auto;max-height:560px;padding:0;border:0;scrollbar-width:none}
.galerie .vignettes button{flex:none;width:100%;aspect-ratio:1;height:auto;border-radius:16px;overflow:hidden;border:2px solid transparent;padding:0;background:#F3F2EF;cursor:pointer}
.galerie .vignettes button[aria-pressed="true"]{border-color:var(--marine)}
.galerie .vignettes img{width:100%;height:100%;object-fit:cover}
.galerie .vignettes .live{display:grid;place-items:center;font:600 20px/1 var(--main);color:var(--rouge);background:#fff;border-color:var(--trait)}
.infos{display:grid;gap:20px;min-width:0}
.infos h1{font:400 clamp(30px,3.4vw,42px)/1.02 var(--slab);text-transform:uppercase}
.infos .collec{font:700 13px var(--cond);letter-spacing:.14em;text-transform:uppercase;color:var(--rouge);margin:0 0 8px}
.infos .bloc-prix{margin-top:12px}
.infos .bloc-prix .prix{font-size:32px}
.infos .lancement-fiche{font:600 15px var(--cond);color:var(--doux)}
.infos .desc{margin:12px 0 0;color:var(--doux)}
.infos .groupe{border-top:1px solid var(--trait);padding-top:18px}
.infos .groupe[hidden]{display:none}
.infos .groupe>.titre{font:600 15px var(--sans);color:var(--doux)}
.infos .groupe>.titre span{color:var(--marine);font-weight:700}
.infos .tailles-choix button{border-radius:999px;border-color:var(--lin);background:var(--lin);padding:10px 18px;font-weight:600}
.infos .tailles-choix button[aria-pressed="true"]{background:var(--marine);border-color:var(--marine);color:#fff}
.achat{display:flex;gap:14px;align-items:center;border-top:1px solid var(--trait);padding-top:20px}
.achat .qte{height:52px;border:0;background:var(--lin)}
.achat .qte[hidden]{display:none}
.achat .btn{flex:1;height:52px}
.achat .prix-ligne{font:400 26px var(--slab);color:var(--rouge);white-space:nowrap}
.ajout-ok{margin:0;font-size:15px;color:var(--marine);font-weight:600}
.ajout-ok[hidden]{display:none}
.ajout-ok a{color:var(--rouge)}
.infos .note{margin:0;font-size:15px;color:var(--doux)}
.onglets-fiche{display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid var(--trait);margin-top:40px}
.onglets-fiche button{border:0;background:none;padding:16px 8px;font:600 17px var(--cond);color:var(--doux);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px}
.onglets-fiche button[aria-selected="true"]{color:var(--marine);border-color:var(--marine)}
.panneau{padding:28px 0 10px}
.panneau[hidden]{display:none}
.details-grille{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px}
.details-grille>div{border:1px solid var(--trait);border-radius:20px;padding:22px 24px}
.details-grille h3{font:700 18px var(--cond);margin-bottom:6px}
.details-grille p{margin:0;color:var(--doux);font-size:16px}
.sans-avis{border:1px dashed var(--sable-fonce);border-radius:20px;padding:34px 28px;text-align:center;color:var(--doux);max-width:720px;margin:0 auto}
.sans-avis p{margin:0}
.sans-avis p:first-child{font:600 26px/1.15 var(--main);color:var(--marine);margin:0 0 8px}
.introuvable{text-align:center;padding:80px 20px}
.introuvable p{color:var(--doux)}
@media (max-width:900px){
  .produit-page{grid-template-columns:minmax(0,1fr);gap:26px}
  .galerie{position:static;grid-template-columns:minmax(0,1fr)}
  .galerie .principale{grid-column:1}
  .galerie .vignettes{grid-column:1;grid-row:2;flex-direction:row;max-height:none;overflow-x:auto}
  .galerie .vignettes button{width:80px}
  .achat{position:sticky;bottom:0;background:#fff;padding:12px 0 14px;z-index:5;flex-wrap:wrap;box-shadow:0 -10px 16px -12px rgba(20,40,75,.18)}
  .achat .prix-ligne{flex-basis:100%;font-size:22px}
  .onglets-fiche button{font-size:15px;padding:14px 4px}
}

/* ------------------------------------------------ page Panier */
.page-panier{padding-bottom:72px}
.page-panier h1{font:400 clamp(32px,4vw,44px)/1 var(--slab);text-transform:uppercase;margin:8px 0 24px}
.panier-grille{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:20px;align-items:start}
.liste-panier{border:1px solid var(--trait);border-radius:20px;padding:0 22px;min-width:0;overflow:hidden}
.liste-panier .pousse{margin:0 -22px;padding:16px 22px;border-bottom:1px solid var(--trait);display:grid;gap:8px;font-size:15px;color:var(--doux)}
.liste-panier .pousse[hidden]{display:none}
.article{display:grid;grid-template-columns:112px minmax(0,1fr) auto;gap:16px;padding:20px 0;border-bottom:1px solid var(--trait)}
.article:last-child{border-bottom:0}
.article .ph{width:112px;height:112px;border-radius:12px;overflow:hidden;background:#F3F2EF;display:block}
.article .ph img{width:100%;height:100%;object-fit:contain}
.article b{display:block;font:700 19px/1.2 var(--cond)}
.article b a{text-decoration:none}
.article .meta{color:var(--doux);font-size:14.5px;margin-top:4px}
.article .perso{color:var(--rouge);font-weight:600;font-size:14.5px;margin-top:2px}
.article .montant{font:400 22px var(--slab);color:var(--marine);margin-top:10px;white-space:nowrap}
.article .droite{display:flex;flex-direction:column;justify-content:space-between;align-items:flex-end;gap:12px}
.article .retirer{border:0;background:none;color:var(--rouge);cursor:pointer;width:36px;height:36px;border-radius:50%;display:grid;place-items:center}
.article .retirer:hover{background:#FDECEC}
.article .qte{background:var(--lin);border:0}
.article .qte button{width:36px;height:36px;font-size:18px}
.article .groupe-n{font:600 14px var(--cond);color:var(--doux);background:var(--lin);border-radius:99px;padding:6px 12px}
.vide{padding:50px 0;text-align:center;color:var(--doux)}
.vide p{font:600 28px/1.15 var(--main);color:var(--marine);margin:0 0 16px}
.recap{border:1px solid var(--trait);border-radius:20px;padding:24px;display:grid;gap:16px;position:sticky;top:96px}
.recap h2{font:700 23px var(--cond)}
.recap .ligne{display:flex;justify-content:space-between;gap:12px;font-size:17px;color:var(--doux)}
.recap .ligne[hidden]{display:none}
.recap .ligne b{color:var(--marine);font-weight:700;white-space:nowrap}
.recap .ligne b.moins{color:var(--rouge)}
.recap .ligne small{display:block;font-size:13.5px}
.recap .total{border-top:1px solid var(--trait);padding-top:16px;display:flex;justify-content:space-between;align-items:baseline;font:700 19px var(--cond);color:var(--marine)}
.recap .total .prix{font-size:30px;color:var(--marine)}
.code-ligne{display:flex;gap:10px}
.code-ligne .champ-code{flex:1;min-width:0;display:flex;align-items:center;gap:10px;background:var(--lin);border-radius:999px;padding:0 16px;height:48px;color:var(--doux)}
.code-ligne input{flex:1;min-width:0;border:0;background:none;font:600 15px var(--sans);text-transform:uppercase;outline:none;height:100%;color:var(--marine)}
.code-ligne button{border:0;border-radius:999px;padding:0 22px;background:var(--marine);color:#fff;font:700 16px var(--cond);cursor:pointer}
.recap .ok{color:var(--marine);font-weight:600;font-size:14.5px;margin:-6px 0 0}
.recap .ok[hidden]{display:none}
.recap .btn{width:100%;height:56px}
.recap .mentions{font-size:13.5px;color:var(--doux);display:flex;justify-content:space-between;flex-wrap:wrap;gap:6px}
.page-panier .suggestions{margin-top:20px;display:grid;gap:10px}
.page-panier .suggestions[hidden]{display:none}
.page-panier .suggestions .titre{font:700 17px var(--cond);color:var(--marine)}
.page-panier .suggestions .liste{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.page-panier .suggestions a{border:1px solid var(--trait);background:#fff;border-radius:14px;padding:8px;text-decoration:none;font:600 14px/1.2 var(--cond);color:var(--marine);display:grid;gap:6px;min-width:0}
.page-panier .suggestions a:hover{border-color:var(--marine)}
.page-panier .suggestions img{width:100%;aspect-ratio:1;object-fit:contain;border-radius:10px;background:#F3F2EF}
@media (max-width:900px){.panier-grille{grid-template-columns:minmax(0,1fr)}.recap{position:static}}
@media (max-width:520px){.liste-panier{padding:0 14px}.liste-panier .pousse{margin:0 -14px;padding:14px}.article{grid-template-columns:88px minmax(0,1fr);gap:12px}.article .ph{width:88px;height:88px}.article .droite{grid-column:1/-1;flex-direction:row;align-items:center}.article b{font-size:17px}}

/* ------------------------------------------------ réglages après vérification (3 nov. 2026) */
.chiffres li{padding:0 24px}
.chiffres b{font-size:clamp(24px,2.4vw,34px)}
@media (min-width:901px){.chiffres{flex-wrap:nowrap}}
.bande .wrap{flex-wrap:nowrap}
.bande a{font-size:clamp(17px,1.9vw,27px)}
@media (max-width:900px){.bande .wrap{flex-wrap:wrap}}
.moment::after{background:linear-gradient(100deg,rgba(255,255,255,.92) 0%,rgba(255,255,255,.5) 30%,rgba(255,255,255,0) 52%)}
@media (max-width:860px){.rangee.modeles .modele{display:flex;flex-direction:column;gap:12px}.rangee.modeles .modele h3{font-size:24px}.rangee.modeles .modele .bas{flex-wrap:wrap}}
.infos .groupe>.titre{justify-content:flex-start;gap:6px}
@media (max-width:480px){.infos .personne .tailles-choix button{min-width:0;flex:1;padding:8px 0;font-size:15px}}
.recap{grid-template-columns:minmax(0,1fr);min-width:0}.panier-grille>*{min-width:0}
@media (max-width:900px){.moment::after{background:linear-gradient(90deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.8) 42%,rgba(255,255,255,0) 72%)}.moment p{max-width:18ch}}
.code-ligne input::placeholder{text-transform:none;font-weight:500}
@media (max-width:1180px) and (min-width:961px){.nav-principale{gap:14px;font-size:15px}.entete .wrap{gap:16px}}
