/* GestionSiteWeb : site public du client. Les couleurs, polices et coins viennent des variables du theme (:root). ASCII seulement. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{overflow-x:clip;margin:0;font:16px/1.65 var(--police);color:var(--texte);background:var(--fond);-webkit-font-smoothing:antialiased}
img,svg,iframe{max-width:100%}
img{height:auto;display:block}
a{color:var(--primaire)}
a:hover{color:var(--primaire-f)}
h1,h2,h3,h4{font-family:var(--police-titres);line-height:1.15;margin:0 0 .5em;color:var(--texte);letter-spacing:var(--titres-esp)}
h1{font-size:clamp(28px,4vw,44px);font-weight:700}
h2{font-size:clamp(21px,2.6vw,30px);font-weight:700}
h3{font-size:19px;font-weight:700}
p{margin:0 0 1em}
.ico{width:20px;height:20px;flex:none;vertical-align:-4px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.saut{position:absolute;left:-999px;top:8px;background:var(--primaire);color:var(--sur-primaire);padding:10px 16px;z-index:100;border-radius:var(--rayon-btn)}
.saut:focus{left:8px}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
[hidden]{display:none!important}
.v-conteneur{width:100%;max-width:var(--largeur);margin:0 auto;padding:0 24px}
.v-etroit{max-width:820px}
.v-centre{text-align:center}
.v-mt{margin-top:32px}
.v-muet{color:var(--texte2)}
.v-petit{font-size:13.5px}
.v-gros{font-size:56px;font-weight:800;font-family:var(--police-titres);margin:10px 0;color:var(--primaire)}
.v-gros-moyen{font-size:22px;font-weight:700}
.v-fond2{background:var(--fond2)}

/* ---------- Boutons ---------- */
.v-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 24px;border-radius:var(--rayon-btn);border:2px solid transparent;font:600 15.5px var(--police);text-decoration:none;cursor:pointer;transition:transform .15s,background .15s,color .15s,box-shadow .15s;white-space:nowrap;text-transform:var(--titres-casse);letter-spacing:.01em}
.v-btn:hover{transform:translateY(-1px);text-decoration:none}
.v-btn:active{transform:none}
.v-btn-p{background:var(--primaire);color:var(--sur-primaire)}
.v-btn-p:hover{background:var(--primaire-f);color:var(--sur-primaire);box-shadow:0 8px 22px color-mix(in srgb,var(--primaire) 30%,transparent)}
.v-btn-a{background:var(--accent);color:var(--sur-accent)}
.v-btn-a:hover{color:var(--sur-accent);filter:brightness(1.07)}
.v-btn-s{background:transparent;color:var(--texte);border-color:var(--bordure)}
.v-btn-s:hover{border-color:var(--primaire);color:var(--primaire)}
.v-btn-clair{background:#fff;color:#111}
.v-btn-clair:hover{color:#111;background:#f2f2f2}
.v-btn-large{min-height:54px;padding:0 30px;font-size:16.5px}
.v-btn[disabled]{opacity:.5;pointer-events:none}
.v-plein{width:100%}
.v-lien-btn{background:none;border:0;color:inherit;font:inherit;text-decoration:underline;cursor:pointer;padding:0}
.v-ic{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;color:var(--entete-texte);background:none;border:0;cursor:pointer;position:relative;text-decoration:none}
.v-ic:hover{background:color-mix(in srgb,var(--entete-texte) 9%,transparent);color:var(--entete-texte)}

/* ---------- En-tete ---------- */
.v-demo{background:#1c1b19;color:#d9d6cf;text-align:center;font:500 13px/1.4 system-ui,sans-serif;padding:7px 12px;border-bottom:3px solid #c2521d}
.v-demo a{color:#fff;font-weight:700}
.v-annonce{background:var(--primaire);color:var(--sur-primaire);text-align:center;font-size:14px;font-weight:500;padding:8px 14px}
.v-annonce-apercu{background:#f59e0b;color:#111}
.v-entete{position:sticky;top:0;z-index:50;background:var(--entete-fond);color:var(--entete-texte);border-bottom:1px solid color-mix(in srgb,var(--entete-texte) 10%,transparent);backdrop-filter:saturate(1.4) blur(10px)}
.entete-transparent .v-entete{background:color-mix(in srgb,var(--fond) 86%,transparent);border-color:transparent}
.v-entete-in{display:flex;align-items:center;gap:20px;min-height:76px}
.v-logo{display:flex;align-items:center;gap:11px;color:var(--entete-texte);text-decoration:none;font-family:var(--police-titres);font-weight:700;font-size:21px;flex:none}
.v-logo:hover{color:var(--entete-texte)}
.v-logo-marque{width:40px;height:40px;border-radius:calc(var(--rayon) * .6 + 4px);background:var(--primaire);color:var(--sur-primaire);display:grid;place-items:center;font-size:15px;letter-spacing:0}
.v-logo-img{width:auto;max-width:220px;object-fit:contain}
.v-nav{flex:1;display:flex;justify-content:center;min-width:0}
.v-nav>ul{list-style:none;margin:0;padding:0;display:flex;gap:4px;align-items:center}
.v-nav li{position:relative}
.v-nav a{display:block;white-space:nowrap;padding:10px 12px;color:var(--entete-texte);text-decoration:none;font-weight:500;font-size:15.5px;border-radius:var(--rayon-btn);text-transform:var(--titres-casse);letter-spacing:.02em}
.theme-audacieux .v-nav a,.theme-elegant .v-nav a{font-size:13.5px;font-weight:600;letter-spacing:.08em}
.v-nav a:hover,.v-nav a.actif{color:var(--primaire)}
.entete-sombre .v-nav a:hover,.entete-sombre .v-nav a.actif,.entete-couleur .v-nav a:hover,.entete-couleur .v-nav a.actif{color:var(--entete-texte);background:color-mix(in srgb,var(--entete-texte) 12%,transparent)}
.v-nav a.actif{font-weight:700}
.v-nav li ul{list-style:none;margin:0;padding:8px;position:absolute;top:100%;left:0;min-width:220px;background:var(--fond);border:1px solid var(--bordure);border-radius:var(--rayon);box-shadow:0 18px 40px rgba(0,0,0,.12);display:none}
.v-nav li ul a{color:var(--texte)}
.v-nav li:hover>ul,.v-nav li:focus-within>ul,.v-nav li.ouvert>ul{display:block}
.v-sous-btn{display:none;background:none;border:0;color:inherit;cursor:pointer;font-size:14px}
.v-outils{display:flex;align-items:center;gap:6px}
.v-langue{display:inline-grid;place-items:center;min-width:40px;height:34px;padding:0 10px;border:1px solid color-mix(in srgb,var(--entete-texte) 30%,transparent);border-radius:var(--rayon-btn);font-size:12.5px;font-weight:700;letter-spacing:.04em;color:var(--entete-texte);text-decoration:none}
.v-langue:hover{background:var(--entete-texte);color:var(--entete-fond)}
.v-langue-mobile{display:none}
.v-compte{position:absolute;top:2px;right:0;min-width:19px;height:19px;border-radius:99px;background:var(--accent);color:var(--sur-accent);font-size:11px;font-weight:800;display:grid;place-items:center;padding:0 5px}
.v-burger{display:none}
.v-cta-entete{min-height:42px;padding:0 18px;font-size:14.5px}
.v-nav .v-cta-mobile{display:none}
.v-nav{min-width:0}
.v-flashs{padding-top:16px}
.flash{display:flex;gap:10px;align-items:flex-start;padding:12px 16px;border-radius:var(--rayon);margin-bottom:8px;font-weight:500}
.flash-succes{background:#dcfce7;color:#14532d}.flash-erreur{background:#fee2e2;color:#7f1d1d}.flash-info{background:#dbeafe;color:#1e3a8a}
.flash-x{margin-left:auto;background:none;border:0;font-size:20px;cursor:pointer;color:inherit}

/* ---------- Sections ---------- */
.v-section{padding:clamp(26px,3.5vw,50px) 0}
.v-section-serree{padding:16px 0 34px}
.v-section+.v-section:not(.v-fond2):not(.v-chiffres){padding-top:clamp(10px,1.5vw,22px)}
.v-section-tete{text-align:center;max-width:720px;margin:0 auto 22px}
.v-section-tete p{color:var(--texte2);font-size:18px}
.theme-audacieux h1,.theme-audacieux h2,.theme-elegant h2,.theme-audacieux .v-section-tete h2{text-transform:var(--titres-casse)}
.theme-elegant .v-section-tete h2::after{content:"";display:block;width:56px;height:2px;background:var(--accent);margin:18px auto 0}
.v-grille{display:grid;gap:28px}
.v-g2{grid-template-columns:repeat(2,minmax(0,1fr))}.v-g3{grid-template-columns:repeat(3,minmax(0,1fr))}.v-g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.v-esp-p{height:14px}.v-esp-m{height:30px}.v-esp-g{height:58px}
.v-esp-p .v-hr,.v-esp-m .v-hr,.v-esp-g .v-hr{border:0;border-top:1px solid var(--bordure);margin:0;position:relative;top:50%}
.v-esp-m,.v-esp-g,.v-esp-p{display:flex;align-items:center}

/* ---------- Banniere ---------- */
.v-hero{position:relative;overflow:hidden}
.v-hero h1{margin-bottom:.35em}
.v-hero p{font-size:clamp(15.5px,1.5vw,18px);max-width:600px;color:var(--texte2)}
.v-hero-btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.v-hero-centre{background:var(--fond2);text-align:center}
.v-hero-centre p{margin-left:auto;margin-right:auto}
.v-hero-centre .v-hero-btns{justify-content:center}
.v-h-petite{padding:clamp(26px,3.5vw,44px) 0}
.v-h-moyenne{padding:clamp(36px,5vw,66px) 0}
.v-h-grande{padding:clamp(46px,7vw,96px) 0}
.v-hero-fond{color:#fff;background:#111;display:flex;align-items:center}
.v-hero-fond.v-h-grande{min-height:min(52vh,420px)}
.v-hero-fond .v-hero-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.v-hero-fond::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.62) 0%,rgba(0,0,0,.35) 55%,rgba(0,0,0,.05) 100%)}
.v-hero-fond .v-conteneur{position:relative;z-index:1}
.v-hero-fond h1,.v-hero-fond p{color:#fff}
.v-hero-fond p{opacity:.92}
.v-hero-fond .v-hero-txt{max-width:640px}
.v-hero-grille{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;align-items:center}
.v-hero-media img{width:100%;border-radius:var(--rayon);aspect-ratio:4/3;object-fit:cover;box-shadow:0 30px 60px rgba(0,0,0,.14)}
.v-hero-droite{background:linear-gradient(180deg,var(--fond2),var(--fond))}
.theme-nature .v-hero-media img{border-radius:48% 52% 44% 56%/56% 44% 56% 44%}
.theme-ludique .v-hero-centre{background:radial-gradient(circle at 15% 20%,var(--accent-p) 0,transparent 40%),radial-gradient(circle at 85% 70%,var(--primaire-p) 0,transparent 45%),var(--fond2)}
.theme-minimal .v-hero-centre{background:var(--fond);border-bottom:1px solid var(--bordure)}
.theme-audacieux .v-hero-centre{background:#111418;color:#fff}
.theme-audacieux .v-hero-centre h1,.theme-audacieux .v-hero-centre p{color:#fff}
.theme-audacieux .v-hero-centre .v-btn-s{color:#fff;border-color:rgba(255,255,255,.4)}
.theme-elegant .v-hero-fond::after{background:linear-gradient(90deg,rgba(20,18,14,.7),rgba(20,18,14,.15))}

/* ---------- Texte, image-texte ---------- */
.v-prose{font-size:17px}
.v-prose h2{font-size:28px;margin-top:1.4em}.v-prose h3{font-size:21px;margin-top:1.2em}
.v-prose ul,.v-prose ol{padding-left:1.3em}
.v-prose li{margin-bottom:.35em}
.v-prose blockquote{border-left:4px solid var(--accent);margin:1.2em 0;padding:.2em 0 .2em 1.2em;font-size:19px;color:var(--texte2)}
.v-prose img{border-radius:var(--rayon)}
.v-it{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,6vw,80px);align-items:center}
.v-it-droite .v-it-media{order:2}
.v-it-media img,.v-it-media .v-img-vide{width:100%;aspect-ratio:5/4;object-fit:cover;border-radius:var(--rayon)}
.theme-nature .v-it-media img{border-radius:var(--rayon) var(--rayon) var(--rayon) 120px}
.v-img-vide{display:block;background:var(--fond2);aspect-ratio:1}

/* ---------- Avantages, chiffres, equipe ---------- */
.v-avantages{padding-top:clamp(18px,2.5vw,32px)}
.v-avantage{padding:11px 13px;border-radius:var(--rayon);background:var(--fond2);transition:transform .2s}
.v-avantage:hover{transform:translateY(-3px)}
.v-avantage-ic{width:27px;height:27px;border-radius:calc(var(--rayon) * .5 + 4px);display:grid;place-items:center;background:var(--primaire);color:var(--sur-primaire);margin-bottom:7px}
.v-avantage-ic .ico{width:13px;height:13px}
.v-avantage h3{font-size:16px;margin:0 0 3px}
.v-avantage p{color:var(--texte2);margin:0;font-size:14px}
.theme-minimal .v-avantage{background:none;border-top:2px solid var(--texte);border-radius:0;padding:24px 0}
.theme-minimal .v-avantage-ic{background:none;color:var(--texte);width:auto;justify-content:start}
.theme-elegant .v-avantage{background:none;text-align:center;border:1px solid var(--bordure)}
.theme-elegant .v-avantage-ic{margin:0 auto 16px;background:none;color:var(--accent);border:1px solid var(--accent);border-radius:50%}
.v-chiffres{background:var(--primaire);color:var(--sur-primaire)}
.v-chiffres h2,.v-chiffres .v-section-tete p{color:var(--sur-primaire)}
.v-chiffre{text-align:center}
.v-chiffre b{display:block;font-family:var(--police-titres);font-size:clamp(36px,5vw,56px);line-height:1.1}
.v-chiffre span{opacity:.85}
.v-membre{text-align:center}
.v-membre-av{width:112px;height:112px;border-radius:50%;background:var(--c);color:#fff;display:grid;place-items:center;margin:0 auto 16px;font:700 34px var(--police-titres);font-style:normal}
.v-membre p{color:var(--texte2);font-size:15px;margin:0 0 6px}
.v-marque{display:block;font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--accent);margin-bottom:6px}

/* ---------- Produits ---------- */
.v-grille-p{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px 16px}
.v-grille-p3{grid-template-columns:repeat(3,minmax(0,1fr))}
.v-carte-p{display:flex;flex-direction:column;min-width:0}
.v-carte-img{position:relative;display:block;border-radius:var(--rayon);overflow:hidden;background:var(--fond2);aspect-ratio:3/2}
.v-carte-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s,opacity .35s}
.v-carte-img .v-img2{position:absolute;inset:0;opacity:0}
.v-carte-p:hover .v-carte-img img:first-child{transform:scale(1.04)}
.v-carte-p:hover .v-img2{opacity:1}
.v-badges{position:absolute;top:12px;left:12px;display:flex;gap:6px;flex-wrap:wrap;z-index:1}
.v-badge{background:var(--fond);color:var(--texte);font-size:12px;font-weight:700;padding:4px 10px;border-radius:var(--rayon-btn);box-shadow:0 2px 8px rgba(0,0,0,.08)}
.v-badge-promo{background:var(--accent);color:var(--sur-accent)}
.v-badge-rupture{background:#111;color:#fff}
.v-carte-txt{padding:9px 2px 0;display:flex;flex-direction:column;gap:3px;flex:1}
.v-carte-txt h3{font-size:15px;margin:0;line-height:1.25;font-family:var(--police);font-weight:600;letter-spacing:0;text-transform:none}
.v-carte-txt h3 a{color:var(--texte);text-decoration:none}
.v-carte-txt h3 a:hover{color:var(--primaire)}
.v-carte-txt p{color:var(--texte2);font-size:13.5px;margin:3px 0 0}
.v-carte-bas{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:6px}
.v-prix{font-weight:700;color:var(--texte);font-variant-numeric:tabular-nums}
.v-prix s{color:var(--texte2);font-weight:400;margin-right:4px}
.v-prix-promo{color:var(--accent)}
.v-prix-de{font-weight:400;color:var(--texte2);font-size:.88em}
.v-pastilles{display:flex;gap:4px}
.v-pastilles i{width:15px;height:15px;border-radius:50%;border:1px solid rgba(0,0,0,.15);display:block}
.v-etoiles{position:relative;display:inline-block;font-size:15px;line-height:1;letter-spacing:2px;vertical-align:-1px}
.v-etoiles-fond{color:color-mix(in srgb,var(--texte) 18%,transparent)}
.v-etoiles-plein{position:absolute;inset:0;overflow:hidden;color:#f5a623;white-space:nowrap}
.v-nb-avis{font-size:13px;color:var(--texte2)}
.v-grille-c{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:14px}
.v-cat{position:relative;display:block;border-radius:var(--rayon);overflow:hidden;aspect-ratio:4/5;background:var(--fond);text-decoration:none}
.v-cat img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.v-cat:hover img{transform:scale(1.05)}
.v-cat span{position:absolute;left:12px;right:12px;bottom:12px;background:var(--fond);border-radius:calc(var(--rayon) * .7);padding:12px 16px;display:flex;flex-direction:column;color:var(--texte)}
.v-cat small{color:var(--texte2)}
/* Categorie illustree par une icone : petite carte compacte (icone centree + nom dessous) */
.v-cat-ico{aspect-ratio:auto;overflow:visible;background:var(--fond2);border:1px solid var(--bordure);padding:16px 12px 13px;display:flex;flex-direction:column;align-items:center;gap:9px;transition:transform .18s,box-shadow .18s,border-color .18s}
.v-cat-ico:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(0,0,0,.08);border-color:var(--primaire)}
.v-cat-ico img{position:static;width:58px;height:58px;object-fit:contain;transition:transform .25s}
.v-cat-ico:hover img{transform:scale(1.07)}
.v-cat-ico span{position:static;inset:auto;left:auto;right:auto;bottom:auto;background:none;border-radius:0;padding:0;align-items:center;text-align:center;gap:1px}
.v-cat-ico b{font-size:14.5px;line-height:1.2}
.v-cat-ico small{font-size:12px}

/* ---------- Services ---------- */
.v-services{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.v-service{display:flex;align-items:center;gap:18px;padding:18px;border:1px solid var(--bordure);border-radius:var(--rayon);background:var(--fond);transition:border-color .2s,box-shadow .2s}
.v-service:hover{border-color:var(--primaire);box-shadow:0 10px 30px rgba(0,0,0,.06)}
.v-service img{width:84px;height:84px;border-radius:calc(var(--rayon) * .7);object-fit:cover;flex:none}
.v-service-txt{flex:1;min-width:0}
.v-service h3{font-size:17.5px;margin:0 0 4px;font-family:var(--police);letter-spacing:0;text-transform:none}
.v-service p{color:var(--texte2);font-size:14.5px;margin:0 0 6px}
.v-service-meta{display:flex;gap:16px;align-items:center;font-size:14.5px;color:var(--texte2);flex-wrap:wrap}
.v-service-meta span{display:inline-flex;align-items:center;gap:5px}
.v-service-meta .ico{width:16px;height:16px}
.v-service .v-btn{min-height:42px;padding:0 18px}
.v-resa-cat{margin-top:34px;font-size:24px}

/* ---------- Temoignages, FAQ, CTA ---------- */
.v-temoin{margin:0;padding:30px;background:var(--fond);border-radius:var(--rayon);border:1px solid var(--bordure);display:flex;flex-direction:column;gap:12px}
.v-temoin blockquote{margin:0;font-size:17px;line-height:1.6;flex:1}
.v-temoin figcaption{font-weight:700;color:var(--texte2);font-size:14.5px}
.theme-elegant .v-temoin blockquote{font-family:var(--police-titres);font-size:19px;font-style:italic}
.v-faq details{border-bottom:1px solid var(--bordure)}
.v-faq summary{cursor:pointer;padding:20px 40px 20px 0;font-weight:600;font-size:17.5px;list-style:none;position:relative}
.v-faq summary::-webkit-details-marker{display:none}
.v-faq summary::after{content:"+";position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:26px;font-weight:300;color:var(--primaire);transition:transform .2s}
.v-faq details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.v-faq details>div{padding:0 0 22px;color:var(--texte2)}
.v-cta{display:flex;align-items:center;justify-content:space-between;gap:24px 40px;flex-wrap:wrap;padding:clamp(32px,5vw,58px);border-radius:calc(var(--rayon) * 1.4)}
.v-cta h2{margin:0 0 6px}
.v-cta p{margin:0;font-size:18px;opacity:.9}
.v-cta-primaire{background:var(--primaire);color:var(--sur-primaire)}
.v-cta-accent{background:var(--accent);color:var(--sur-accent)}
.v-cta-sombre{background:#14171c;color:#fff}
.v-cta h2{color:inherit}
.theme-ludique .v-cta{background-image:radial-gradient(circle at 90% 10%,rgba(255,255,255,.18) 0,transparent 35%)}

/* ---------- Galerie, video, blogue ---------- */
.v-galerie{display:grid;gap:12px}
.v-col2{grid-template-columns:repeat(2,1fr)}.v-col3{grid-template-columns:repeat(3,1fr)}.v-col4{grid-template-columns:repeat(4,1fr)}
.v-galerie a{display:block;border-radius:var(--rayon);overflow:hidden;aspect-ratio:1}
.v-galerie img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.v-galerie a:hover img{transform:scale(1.05)}
.v-video{position:relative;aspect-ratio:16/9;border-radius:var(--rayon);overflow:hidden;background:#000}
.v-video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.v-legende{text-align:center;color:var(--texte2);margin-top:10px}
.v-carte-a{display:flex;flex-direction:column}
.v-ratio{aspect-ratio:16/10}
.v-carte-a .v-carte-txt h3{font-family:var(--police-titres);font-size:20px}
.v-article-tete{padding-top:48px;text-align:center}
.v-article-tete h1{font-size:clamp(30px,4.4vw,50px)}
.v-chapeau{font-size:20px;color:var(--texte2)}
.v-auteur{color:var(--texte2);font-size:14.5px}
.v-article-img{margin:28px auto}
.v-article-img img{width:100%;border-radius:var(--rayon);aspect-ratio:16/8;object-fit:cover}
.v-article-corps{padding-bottom:64px}
.v-retour{display:inline-block;margin-bottom:18px;font-weight:600;text-decoration:none}
.v-filtres-puces{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-bottom:32px}
.v-filtres-puces a{padding:8px 16px;border-radius:99px;border:1px solid var(--bordure);text-decoration:none;color:var(--texte);font-weight:500}
.v-filtres-puces a.actif,.v-filtres-puces a:hover{background:var(--primaire);border-color:var(--primaire);color:var(--sur-primaire)}
.v-pagination{display:flex;justify-content:center;gap:6px;margin-top:40px;flex-wrap:wrap}
.v-pagination a{min-width:42px;height:42px;display:grid;place-items:center;border-radius:var(--rayon-btn);border:1px solid var(--bordure);text-decoration:none;color:var(--texte)}
.v-pagination a.actif{background:var(--primaire);border-color:var(--primaire);color:var(--sur-primaire)}
.v-liste-liens{padding-left:1.2em}
.v-vide{padding:48px 0;color:var(--texte2)}
.v-vide .ico{width:48px;height:48px;color:var(--bordure);margin:0 auto 12px;display:block}

/* ---------- Formulaires ---------- */
.v-form{display:flex;flex-direction:column;gap:16px}
.v-form label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:14.5px}
.v-form input:not([type=checkbox]):not([type=radio]),.v-form textarea,.v-form select,.v-barre-tri input,.v-barre-tri select,.v-ligne input,.v-promo input{width:100%;min-height:48px;padding:10px 14px;border:1.5px solid var(--bordure);border-radius:calc(var(--rayon) * .5 + 4px);background:var(--fond);color:var(--texte);font:400 16px var(--police)}
.v-form textarea{min-height:auto;resize:vertical}
.v-form input:focus,.v-form textarea:focus,.v-form select:focus,.v-ligne input:focus{outline:0;border-color:var(--primaire);box-shadow:0 0 0 3px color-mix(in srgb,var(--primaire) 18%,transparent)}
.v-champs2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.v-champs3{display:grid;grid-template-columns:2fr 1fr 1fr;gap:14px}
.v-case{flex-direction:row!important;align-items:flex-start;gap:10px!important;font-weight:400!important;font-size:14.5px!important;line-height:1.45}
.v-case input{width:19px;height:19px;margin-top:1px;flex:none;accent-color:var(--primaire)}
.v-ligne{display:flex;gap:10px}
.v-ligne input{flex:1}
.v-carte-form{border:1px solid var(--bordure);border-radius:var(--rayon);padding:clamp(18px,3vw,30px);background:var(--fond);margin:0}
.v-carte-form legend{font-family:var(--police-titres);font-size:20px;font-weight:700;padding:0 8px;margin-left:-8px}
.v-msg{margin:0;font-weight:600;min-height:0}
.v-msg.ok{color:#15803d}.v-msg.erreur{color:#b91c1c}
.v-alerte-boite{background:#fee2e2;color:#7f1d1d;border-radius:var(--rayon);padding:14px 18px;margin-bottom:18px;font-weight:500}
.v-note{background:var(--accent-p);border-radius:calc(var(--rayon) * .6);padding:12px 16px;font-size:14.5px}
.v-alerte{color:#b45309;font-size:13.5px;font-weight:600}
.piege{position:absolute;left:-5000px;width:1px;height:1px;overflow:hidden}
.v-infolettre{max-width:640px;margin:0 auto;text-align:center;padding:clamp(32px,5vw,56px);background:var(--fond2);border-radius:calc(var(--rayon) * 1.4)}
.v-infolettre .v-section-tete{margin-bottom:20px}
.v-infolettre .v-case{text-align:left}

/* ---------- Contact ---------- */
.v-contact{display:grid;grid-template-columns:1.3fr 1fr;gap:28px;align-items:start}
.v-contact-info{display:flex;flex-direction:column;gap:18px}
.v-info{padding:24px;border-radius:var(--rayon);background:var(--fond2)}
.v-info p{margin:0 0 8px;display:flex;gap:8px;align-items:flex-start}
.v-info .ico{color:var(--primaire);margin-top:3px}
.v-etat{display:inline-block;padding:3px 12px;border-radius:99px;font-size:13px;font-weight:700}
.v-etat.ouvert{background:#dcfce7;color:#14532d}.v-etat.ferme{background:#fee2e2;color:#7f1d1d}
.v-horaires{width:100%;border-collapse:collapse;font-size:15px}
.v-horaires th{text-align:left;font-weight:500;padding:4px 12px 4px 0;white-space:nowrap}
.v-horaires td{text-align:right;padding:4px 0}
.v-horaires tr.auj{font-weight:700;color:var(--primaire)}
.v-carte-geo{margin-top:28px;border-radius:var(--rayon);overflow:hidden;height:380px;background:var(--fond2)}
.v-carte-geo iframe{width:100%;height:100%;border:0}
.v-carte-bloquee{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:24px;height:220px}
.v-carte-bloquee p{margin:0;color:var(--texte2)}

/* ---------- Boutique ---------- */
.v-bandeau-page{background:var(--fond2);padding:36px 0 30px}
.v-bandeau-page h1{font-size:clamp(30px,4vw,46px);margin:6px 0}
.v-bandeau-page p{color:var(--texte2);margin:0}
.v-fil{font-size:14px;color:var(--texte2)}
.v-fil a{color:var(--texte2);text-decoration:none}
.v-fil a:hover{color:var(--primaire)}
.v-boutique{display:grid;grid-template-columns:230px minmax(0,1fr);gap:40px}
.v-filtres ul{list-style:none;margin:0 0 26px;padding:0}
.v-filtres li a{display:flex;justify-content:space-between;padding:8px 10px;border-radius:calc(var(--rayon) * .5);color:var(--texte);text-decoration:none}
.v-filtres li a span{color:var(--texte2);font-size:13px}
.v-filtres li a.actif,.v-filtres li a:hover{background:var(--fond2);color:var(--primaire);font-weight:600}
.v-filtres-titre{font-family:var(--police);font-size:13px;text-transform:uppercase;letter-spacing:.1em;color:var(--texte2);margin:0 0 10px}
.v-form-filtres{display:flex;flex-direction:column;gap:10px}
.v-form-filtres .v-case{display:flex}
.v-barre-tri{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:22px;flex-wrap:wrap}
.v-barre-tri span{color:var(--texte2)}
.v-barre-tri select{width:auto}
.v-barre-tri input{width:240px}

/* ---------- Fiche produit ---------- */
.v-produit{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(28px,5vw,64px);margin-top:18px;align-items:start}
.v-galerie-p{position:sticky;top:96px}
.v-galerie-principale{border-radius:var(--rayon);overflow:hidden;background:var(--fond2);aspect-ratio:1}
.v-galerie-principale img{width:100%;height:100%;object-fit:cover;transition:opacity .2s}
.v-galerie-mini{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:10px;margin-top:12px}
.v-galerie-mini button{padding:0;border:2px solid transparent;border-radius:calc(var(--rayon) * .6);overflow:hidden;cursor:pointer;background:var(--fond2);aspect-ratio:1}
.v-galerie-mini button.actif{border-color:var(--primaire)}
.v-galerie-mini button[hidden]{display:none}
.v-galerie-mini img{width:100%;height:100%;object-fit:cover}
.v-produit-info h1{font-size:clamp(28px,3.4vw,42px);margin-bottom:10px}
.v-lien-avis{text-decoration:none;color:var(--texte2);display:inline-block;margin-bottom:10px}
.v-prix-grand{font-size:26px;margin:6px 0 2px}
.v-taxes{color:var(--texte2);font-size:14px}
.v-court{font-size:17px;color:var(--texte2)}
.v-achat{display:flex;flex-direction:column;gap:18px;margin:24px 0}
.v-option{border:0;padding:0;margin:0}
.v-option legend{font-weight:600;margin-bottom:10px;padding:0}
.v-option legend b{font-weight:400;color:var(--texte2)}
.v-valeurs{display:flex;flex-wrap:wrap;gap:8px}
.v-valeur{position:relative;cursor:pointer}
.v-valeur input{position:absolute;opacity:0;pointer-events:none}
.v-valeur span{display:grid;place-items:center;min-width:52px;min-height:46px;padding:0 14px;border:1.5px solid var(--bordure);border-radius:calc(var(--rayon) * .5 + 2px);font-weight:600;transition:border-color .15s,background .15s}
.v-valeur:hover span{border-color:var(--texte)}
.v-valeur input:checked+span{border-color:var(--primaire);background:var(--primaire);color:var(--sur-primaire)}
.v-valeur input:focus-visible+span{outline:3px solid var(--accent);outline-offset:2px}
.v-valeur.indispo span{color:var(--texte2);text-decoration:line-through;opacity:.55;background:repeating-linear-gradient(135deg,transparent,transparent 6px,var(--fond2) 6px,var(--fond2) 12px)}
.v-pastille span{min-width:0;width:46px;height:46px;padding:0;border-radius:50%;border:2px solid var(--bordure)}
.v-pastille i{width:34px;height:34px;border-radius:50%;background:var(--pc);border:1px solid rgba(0,0,0,.12);display:block}
.v-pastille input:checked+span{background:var(--fond);border-color:var(--primaire);box-shadow:0 0 0 2px var(--primaire)}
.v-pastille.indispo span{text-decoration:none;opacity:.4}
.v-dispo{margin:0;font-weight:600;color:#15803d;min-height:1.4em}
.v-dispo.bas{color:#b45309}.v-dispo.non{color:#b91c1c}
.v-achat-ligne{display:flex;gap:12px}
.v-achat-ligne .v-btn{flex:1}
.v-qte{display:inline-flex;align-items:center;border:1.5px solid var(--bordure);border-radius:var(--rayon-btn);overflow:hidden;height:54px;flex:none}
.v-qte button{width:42px;height:100%;border:0;background:none;font-size:20px;cursor:pointer;color:var(--texte)}
.v-qte button:hover{background:var(--fond2)}
.v-qte input{width:46px;height:100%;border:0;text-align:center;font:600 16px var(--police);background:none;color:var(--texte);-moz-appearance:textfield;appearance:textfield}
.v-qte input::-webkit-inner-spin-button{-webkit-appearance:none}
.v-garanties{list-style:none;padding:18px 0;margin:0;border-top:1px solid var(--bordure);border-bottom:1px solid var(--bordure);display:grid;gap:10px;font-size:15px}
.v-garanties li{display:flex;gap:10px;align-items:center}
.v-garanties .ico{color:var(--primaire)}
.v-details{border-bottom:1px solid var(--bordure);padding:4px 0}
.v-details summary{cursor:pointer;padding:16px 0;font-weight:700;font-size:17px}
.v-details .v-prose{font-size:16px;padding-bottom:12px}
.v-avis{padding:22px 0;border-bottom:1px solid var(--bordure)}
.v-avis h3{font-size:17px;margin:8px 0 6px;font-family:var(--police);text-transform:none;letter-spacing:0}
.v-reponse{background:var(--fond);border-left:3px solid var(--primaire);padding:12px 16px;border-radius:0 8px 8px 0;font-size:15px}
.v-reponse p{margin:4px 0 0}
.v-note-choix{border:0;padding:0;margin:0;display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:2px}
.v-note-choix legend{float:left;width:100%;font-weight:600;margin-bottom:6px}
.v-note-choix input{position:absolute;opacity:0}
.v-note-choix label{font-size:32px;color:var(--bordure);cursor:pointer;flex-direction:row!important}
.v-note-choix input:checked~label,.v-note-choix label:hover,.v-note-choix label:hover~label{color:#f5a623}
.v-note-choix input:focus-visible+label{outline:2px solid var(--accent)}

/* ---------- Panier et paiement ---------- */
.v-panier{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:36px;align-items:start}
.v-pl{display:grid;grid-template-columns:96px minmax(0,1fr) auto auto auto;gap:18px;align-items:center;padding:18px 0;border-bottom:1px solid var(--bordure)}
.v-pl img{width:96px;height:96px;border-radius:calc(var(--rayon) * .6);object-fit:cover}
.v-pl-txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.v-pl-txt a{color:var(--texte);text-decoration:none}
.v-pl-total{min-width:80px;text-align:right}
.v-pl .v-qte{height:44px}
.v-pl .v-qte button{width:36px}
.v-pl .v-ic{color:var(--texte2);font-size:24px}
.v-recap{position:sticky;top:96px;background:var(--fond2);border-radius:var(--rayon);padding:26px}
.v-recap h2{font-size:22px}
.v-totaux{display:grid;grid-template-columns:1fr auto;gap:8px 12px;margin:18px 0;font-variant-numeric:tabular-nums}
.v-totaux dt{color:var(--texte2)}.v-totaux dd{margin:0;text-align:right}
.v-totaux .v-total{font-size:21px;font-weight:800;color:var(--texte);padding-top:12px;border-top:1px solid var(--bordure)}
.v-modes{display:flex;flex-direction:column;gap:10px;margin-bottom:16px}
.v-modes-l{flex-direction:row;flex-wrap:wrap}
.v-modes-l .v-mode{flex:1;min-width:200px}
.v-mode{display:flex;gap:12px;align-items:flex-start;padding:14px;border:1.5px solid var(--bordure);border-radius:calc(var(--rayon) * .6 + 2px);cursor:pointer;background:var(--fond);flex-direction:row!important;font-weight:400!important}
.v-mode:has(input:checked){border-color:var(--primaire);box-shadow:0 0 0 1px var(--primaire)}
.v-mode input{accent-color:var(--primaire);margin-top:4px}
.v-mode span{display:flex;flex-direction:column}
.v-mode small{color:var(--texte2)}
.v-exp{margin-top:12px;display:flex;flex-direction:column;gap:8px}
.v-exp-tete{margin:0;font-weight:600}
.v-exp .v-mode{align-items:center}
.v-exp-prix{margin-left:auto;white-space:nowrap;font-weight:700}
.v-promo{margin-bottom:8px}
.v-promo .v-btn{min-height:48px}
.v-continuer{display:block;text-align:center;margin-top:12px;font-weight:600}
.v-commande{display:grid!important;grid-template-columns:minmax(0,1fr) 400px;gap:32px;align-items:start}
.v-commande-gauche{display:flex;flex-direction:column;gap:20px}
.v-recap-lignes{list-style:none;margin:0;padding:0}
.v-recap-lignes li{display:flex;align-items:center;gap:12px;padding:8px 0;font-size:15px}
.v-recap-lignes li>span:nth-child(2){flex:1;display:flex;flex-direction:column}
.v-recap-lignes small{color:var(--texte2)}
.v-recap-img{position:relative;flex:none}
.v-recap-img img{width:56px;height:56px;border-radius:10px;object-fit:cover}
.v-recap-img em{position:absolute;top:-6px;right:-6px;background:var(--texte);color:var(--fond);font:700 11px var(--police);min-width:20px;height:20px;border-radius:99px;display:grid;place-items:center}
.v-merci{padding-top:20px}
.v-merci-ic{width:76px;height:76px;border-radius:50%;background:#dcfce7;color:#15803d;display:grid;place-items:center;margin:0 auto 18px}
.v-merci-ic .ico{width:38px;height:38px}
.v-etapes{display:flex;gap:6px;list-style:none;padding:0;margin:20px 0;counter-reset:e}
.v-etapes li{flex:1;text-align:center;font-size:13.5px;font-weight:600;color:var(--texte2);padding-top:12px;border-top:4px solid var(--bordure);counter-increment:e}
.v-etapes li.fait{border-color:var(--primaire);color:var(--texte)}
.v-etapes-resa{margin:0 0 28px}

/* ---------- Reservation ---------- */
.v-resa{gap:20px}
.v-resa-service{display:flex;gap:18px;align-items:center;margin-bottom:24px}
.v-resa-service img{width:88px;height:88px;border-radius:var(--rayon);object-fit:cover;flex:none}
.v-resa-service h1{font-size:clamp(26px,3vw,36px);margin:0 0 4px}
.v-resa-service p{margin:0 0 6px;color:var(--texte2)}
.v-personnes{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px}
.v-personne{cursor:pointer;position:relative}
.v-personne input{position:absolute;opacity:0}
.v-personne>span{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;padding:16px 10px;border:1.5px solid var(--bordure);border-radius:var(--rayon);height:100%}
.v-personne input:checked+span{border-color:var(--primaire);box-shadow:0 0 0 1px var(--primaire);background:var(--primaire-p)}
.v-personne input:focus-visible+span{outline:3px solid var(--accent)}
.v-personne small{color:var(--texte2);font-weight:400}
.v-av-p{width:52px;height:52px;font-size:17px;margin:0 0 6px}
.v-quand{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:24px}
.v-calendrier{min-height:300px}
.v-cal-tete{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.v-cal-tete b{font-size:17px}
.v-cal-tete button{width:38px;height:38px;border-radius:50%;border:1px solid var(--bordure);background:var(--fond);cursor:pointer;font-size:16px;color:var(--texte)}
.v-cal-tete button[disabled]{opacity:.3}
.v-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.v-cal small{font-size:12px;color:var(--texte2);font-weight:700;text-transform:uppercase;padding:4px 0}
.v-cal button{aspect-ratio:1;border:0;border-radius:calc(var(--rayon) * .4 + 4px);background:var(--fond2);font:600 15px var(--police);cursor:pointer;color:var(--texte);position:relative}
.v-cal button:hover{background:var(--primaire-p)}
.v-cal button.dispo::after{content:"";position:absolute;bottom:6px;left:50%;width:5px;height:5px;margin-left:-2.5px;border-radius:50%;background:var(--primaire)}
.v-cal button.choisi{background:var(--primaire);color:var(--sur-primaire)}
.v-cal button.choisi::after{background:var(--sur-primaire)}
.v-cal button[disabled]{background:none;color:color-mix(in srgb,var(--texte) 25%,transparent);cursor:default}
.v-heures-boite{display:flex;flex-direction:column}
.v-heures-boite>p{font-weight:600}
.v-heures{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px;max-height:330px;overflow-y:auto;align-content:start}
.v-heure{cursor:pointer;position:relative}
.v-heure input{position:absolute;opacity:0}
.v-heure span{display:grid;place-items:center;height:44px;border:1.5px solid var(--bordure);border-radius:calc(var(--rayon) * .4 + 4px);font-weight:600;font-variant-numeric:tabular-nums}
.v-heure:hover span{border-color:var(--primaire)}
.v-heure input:checked+span{background:var(--primaire);border-color:var(--primaire);color:var(--sur-primaire)}
.v-heure input:focus-visible+span{outline:3px solid var(--accent)}
.v-resume-resa{font-weight:600;color:var(--primaire);margin:0}
.v-rdv-recap{margin:20px 0}
.pastille{display:inline-block;font-size:12.5px;font-weight:700;padding:3px 12px;border-radius:99px;background:var(--fond2)}
.p-vert{background:#dcfce7;color:#14532d}.p-orange{background:#fef3c7;color:#78350f}.p-bleu{background:#dbeafe;color:#1e3a8a}.p-rouge{background:#fee2e2;color:#7f1d1d}.p-violet{background:#ede9fe;color:#4c1d95}

/* ---------- Pied de page ---------- */
.v-pied{background:#14171c;color:#c5ccd6;padding:64px 0 0;margin-top:40px;font-size:15px}
.theme-elegant .v-pied{background:var(--primaire)}
.theme-nature .v-pied{background:color-mix(in srgb,var(--primaire) 75%,#000)}
.theme-ludique .v-pied{background:color-mix(in srgb,var(--primaire) 80%,#000)}
.theme-minimal .v-pied{background:var(--fond);color:var(--texte2);border-top:1px solid var(--bordure)}
.theme-minimal .v-pied h3,.theme-minimal .v-pied a,.theme-minimal .v-pied .v-logo{color:var(--texte)}
.v-pied-grille{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px}
.v-pied h3{color:#fff;font-size:15px;font-family:var(--police);text-transform:uppercase;letter-spacing:.1em;margin-bottom:14px}
.v-pied a{color:#fff;text-decoration:none}
.v-pied a:hover{text-decoration:underline;color:#fff}
.v-pied ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.v-pied .v-logo{color:#fff;margin-bottom:14px}
.v-pied .v-horaires{font-size:14px}
.v-pied .v-horaires tr.auj{color:#fff}
.v-reseaux{display:flex;gap:14px;flex-wrap:wrap}
.v-infolettre-mini{margin-top:20px;display:flex;flex-direction:column;gap:8px}
.v-infolettre-mini>label{color:#fff;font-weight:700;font-size:14px}
.v-infolettre-mini div{display:flex;gap:6px}
.v-infolettre-mini input[type=email]{flex:1;min-width:0;height:42px;border-radius:var(--rayon-btn);border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.08);color:#fff;padding:0 12px;font:inherit}
.theme-minimal .v-infolettre-mini input[type=email]{border-color:var(--bordure);color:var(--texte);background:var(--fond)}
.v-infolettre-mini .v-btn{min-height:42px;padding:0 14px}
.v-infolettre-mini .v-case{color:inherit;font-size:12.5px!important;display:flex}
.v-infolettre-mini .v-msg{font-size:13px}
.v-pied-bas{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:22px 24px;margin-top:48px;border-top:1px solid rgba(255,255,255,.1);font-size:13.5px}
.theme-minimal .v-pied-bas{border-color:var(--bordure)}
.v-pied-bas .conception{display:inline-flex;align-items:center;gap:8px;color:inherit;text-decoration:none;font-size:12px;opacity:.85}
.v-pied-bas .conception:hover{opacity:1;text-decoration:none}
.v-pied-bas .conception img{height:26px;width:auto}
.v-pied .logo-oc-clair{display:none}.v-pied .logo-oc-sombre{display:block}
.theme-minimal .v-pied .logo-oc-clair{display:block}.theme-minimal .v-pied .logo-oc-sombre{display:none}

/* ---------- Temoins (Loi 25) et tiroir panier ---------- */
.v-temoins{position:fixed;left:16px;right:16px;bottom:16px;z-index:90;max-width:760px;margin:0 auto;background:var(--fond);color:var(--texte);border:1px solid var(--bordure);border-radius:var(--rayon);box-shadow:0 20px 60px rgba(0,0,0,.25);padding:20px 22px;display:flex;gap:18px;align-items:flex-end;flex-wrap:wrap;font-size:14.5px}
.v-temoins>div:first-child{flex:1 1 360px}
.v-temoins p{margin:6px 0 10px}
.v-temoins-btns{display:flex;gap:8px;flex-wrap:wrap}
.v-temoins .v-btn{min-height:42px;padding:0 16px;font-size:14px}
.v-tiroir{position:fixed;inset:0;z-index:95}
.v-tiroir-voile{position:absolute;inset:0;background:rgba(0,0,0,.45);animation:vfondu .2s}
.v-tiroir-boite{position:absolute;right:0;top:0;bottom:0;width:min(420px,100%);background:var(--fond);display:flex;flex-direction:column;box-shadow:-20px 0 60px rgba(0,0,0,.2);animation:vglisse .25s}
.v-tiroir-tete{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--bordure);font-size:18px}
.v-tiroir-tete .v-ic{color:var(--texte);font-size:26px}
.v-tiroir-corps{flex:1;overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:12px}
.v-mini-l{display:flex;gap:12px;align-items:center}
.v-mini-l img{width:64px;height:64px;border-radius:10px;object-fit:cover}
.v-mini-l span{flex:1;display:flex;flex-direction:column;font-size:14.5px}
.v-mini-l small{color:var(--texte2)}
.v-mini-pied{border-top:1px solid var(--bordure);padding-top:14px;margin-top:auto;display:flex;flex-direction:column;gap:10px}
.v-mini-pied .v-totaux{margin:0}
@keyframes vfondu{from{opacity:0}}
@keyframes vglisse{from{transform:translateX(40px);opacity:0}}
.v-boite-image{position:fixed;inset:0;z-index:99;background:rgba(0,0,0,.88);display:grid;place-items:center;padding:20px;cursor:zoom-out}
.v-boite-image img{max-height:90vh;width:auto;border-radius:8px}
body[data-apercu] [data-bloc]{position:relative;cursor:pointer}
body[data-apercu]:not(.ed-mode) [data-bloc]:hover{outline:2px dashed var(--accent);outline-offset:-6px}
body[data-apercu] [data-cache]{opacity:.35}
/* Edition directe (constructeur) */
.ed-mode [data-bloc].ed-actif{outline:2px solid #c2521d;outline-offset:-2px}
.ed-mode [data-ed]{cursor:text;border-radius:3px;outline:1px dashed transparent;outline-offset:3px;transition:outline-color .15s,background .15s}
.ed-mode [data-bloc].ed-actif [data-ed]{outline-color:color-mix(in srgb,currentColor 40%,transparent)}
.ed-mode [data-ed]:hover{outline:2px dashed #c2521d}
.ed-mode [data-ed]:focus{outline:2px solid #c2521d;background:rgba(194,82,29,.08)}
.ed-mode [data-ed-repli]{outline:2px dashed #b26412!important}
.ed-mode .v-prose[data-ed]:empty{min-height:3em}
.ed-mode .v-prose[data-ed]:empty::before{content:"\270E";opacity:.4;font-size:22px}
.ed-mode a [data-ed]{display:inline-block;min-width:1ch}
.ed-barre{position:absolute;top:10px;right:10px;z-index:40;display:flex;align-items:center;gap:2px;padding:3px;background:#1c1b19;color:#f1efea;border:2px solid #1c1b19;border-radius:8px;box-shadow:3px 3px 0 #c2521d;font:600 12px/1 system-ui,-apple-system,'Segoe UI',sans-serif;text-transform:none;letter-spacing:0;cursor:default}
.ed-barre button{width:30px;height:30px;display:grid;place-items:center;border:0;border-radius:5px;background:transparent;color:inherit;font:600 15px/1 system-ui,sans-serif;cursor:pointer;padding:0}
.ed-barre button:hover:not(:disabled){background:#c2521d;color:#fff}
.ed-barre button:disabled{opacity:.3;cursor:default}
.ed-barre .ed-danger:hover:not(:disabled){background:#a3261b}
.ed-poignee{display:flex;align-items:center;gap:6px;padding:0 8px 0 6px;height:30px;border-right:1px solid #48463f;margin-right:2px;cursor:grab;max-width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ed-poignee b{font-size:17px;color:#e0743e}
.ed-poignee:active{cursor:grabbing}
.ed-glisse{opacity:.35}
.ed-mode .ed-cible-haut{box-shadow:inset 0 5px 0 #c2521d}
.ed-mode .ed-cible-bas{box-shadow:inset 0 -5px 0 #c2521d}
.ed-riche{position:absolute;z-index:45;display:flex;gap:2px;padding:3px;background:#1c1b19;border-radius:7px;box-shadow:3px 3px 0 #c2521d}
.ed-riche[hidden]{display:none}
.ed-riche button{min-width:28px;height:28px;border:0;border-radius:5px;background:transparent;color:#fff;font:700 14px/1 Georgia,serif;cursor:pointer}
.ed-riche button:hover{background:#c2521d}
@media (max-width:600px){.ed-poignee .ed-nom{display:none}.ed-barre{top:6px;right:6px}.ed-barre button{width:28px;height:28px}}

/* Menu trop long pour la largeur (beaucoup d'elements, ecran moyen) : meme comportement que sur mobile (classe ajoutee par vitrine.js) */
.nav-compacte .v-burger{display:inline-grid}
.nav-compacte .v-entete{backdrop-filter:none}
.nav-compacte .v-cta-entete,.nav-compacte .v-outils .v-langue{display:none}
.nav-compacte .v-outils{margin-left:auto}
.nav-compacte .v-nav .v-cta-mobile{display:flex;margin-top:18px;color:var(--sur-primaire);border:0;justify-content:center}
.nav-compacte .v-langue-mobile{display:block;padding:16px 4px}
.nav-compacte .v-langue-mobile .v-langue{display:inline-grid;border-color:var(--bordure);color:var(--texte)}
.nav-compacte .v-nav{visibility:hidden;position:fixed;inset:0 0 0 auto;width:min(340px,88vw);background:var(--fond);flex-direction:column;justify-content:flex-start;padding:84px 20px 24px;transform:translateX(105%);transition:transform .25s;z-index:60;box-shadow:-20px 0 50px rgba(0,0,0,.2);overflow-y:auto}
.nav-compacte.menu-ouvert .v-nav{visibility:visible;transform:none}
.nav-compacte.menu-ouvert .v-burger{position:relative;z-index:61;color:var(--texte)}
.nav-compacte.menu-ouvert .v-entete{z-index:70}
.nav-compacte.menu-ouvert::after{content:"";position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:55}
.nav-compacte .v-nav>ul{flex-direction:column;align-items:stretch;gap:0}
.nav-compacte .v-nav a{color:var(--texte);padding:14px 6px;border-bottom:1px solid var(--bordure);font-size:17px}
.nav-compacte .v-nav li ul{position:static;display:none;box-shadow:none;border:0;padding:0 0 0 14px}
.nav-compacte .v-nav li.ouvert>ul{display:block}
.nav-compacte .v-nav li:hover>ul{display:none}
.nav-compacte .v-nav li.ouvert:hover>ul{display:block}
.nav-compacte .v-sous-btn{display:block;position:absolute;right:0;top:8px;width:40px;height:40px}

/* ---------- Style Rhino (conception OrdiCloud) : contours 2 px, ombres pleines, titres Anton ---------- */
.theme-rhino{--encre:var(--texte)}
.theme-rhino h1,.theme-rhino h2{font-weight:400;text-transform:uppercase;letter-spacing:.005em}
.theme-rhino h3{font-family:var(--police);font-weight:800}
.theme-rhino .v-btn{border:2px solid var(--encre);box-shadow:3px 3px 0 var(--encre);font-weight:700}
.theme-rhino .v-btn:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--encre)}
.theme-rhino .v-btn-s{background:var(--fond2);color:var(--encre)}
.theme-rhino .v-entete{border-bottom:2px solid var(--encre)}
.theme-rhino .v-nav a{font-weight:700;font-size:14px}
.theme-rhino .v-avantage,.theme-rhino .v-temoin,.theme-rhino .v-service,.theme-rhino .v-carte-form,.theme-rhino .v-info,.theme-rhino .v-recap{border:2px solid var(--encre);box-shadow:4px 4px 0 var(--encre);background:var(--fond2)}
.theme-rhino .v-carte-img,.theme-rhino .v-cat,.theme-rhino .v-video,.theme-rhino .v-galerie-principale,.theme-rhino .v-carte-geo{border:2px solid var(--encre);box-shadow:4px 4px 0 var(--encre)}
.theme-rhino input:not([type=checkbox]):not([type=radio]),.theme-rhino select,.theme-rhino textarea{border:2px solid var(--encre)!important}
.theme-rhino input:focus,.theme-rhino select:focus,.theme-rhino textarea:focus{box-shadow:3px 3px 0 var(--primaire)!important;outline:0}
.theme-rhino .v-pied{background:var(--encre);border-top:4px solid var(--primaire)}
.theme-rhino .v-infolettre,.theme-rhino .v-cta{border:2px solid var(--encre);box-shadow:6px 6px 0 var(--encre)}

/* ---------- Mobile ---------- */
@media (max-width:1240px){.theme-audacieux .v-nav a,.theme-elegant .v-nav a{letter-spacing:.04em;padding:10px 8px}}
@media (max-width:1100px){
  .v-grille-p{grid-template-columns:repeat(3,minmax(0,1fr))}
  .v-pied-grille{grid-template-columns:1fr 1fr}
  .v-nav a{padding:10px 9px}
}
@media (max-width:900px){
  .v-burger{display:inline-grid}
  .v-entete{backdrop-filter:none}
  .v-nav{visibility:hidden}
  .menu-ouvert .v-nav{visibility:visible}
  .v-cta-entete{display:none}
  .v-nav .v-cta-mobile{display:flex;margin-top:18px;color:var(--sur-primaire);border:0;justify-content:center}
  .v-outils .v-langue{display:none}
  .v-langue-mobile{display:block;padding:16px 4px}
  .v-langue-mobile .v-langue{display:inline-grid;border-color:var(--bordure);color:var(--texte)}
  .v-nav{position:fixed;inset:0 0 0 auto;width:min(340px,88vw);background:var(--fond);flex-direction:column;justify-content:flex-start;padding:84px 20px 24px;transform:translateX(105%);transition:transform .25s;z-index:60;box-shadow:-20px 0 50px rgba(0,0,0,.2);overflow-y:auto}
  .menu-ouvert .v-nav{transform:none}
  .menu-ouvert .v-burger{position:relative;z-index:61;color:var(--texte)}
  .menu-ouvert .v-entete{z-index:70}
  .menu-ouvert::after{content:"";position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:55}
  .v-nav>ul{flex-direction:column;align-items:stretch;gap:0}
  .v-nav a{color:var(--texte);padding:14px 6px;border-bottom:1px solid var(--bordure);font-size:17px}
  .v-nav li ul{position:static;display:none;box-shadow:none;border:0;padding:0 0 0 14px}
  .v-nav li.ouvert>ul{display:block}
  .v-nav li:hover>ul{display:none}
  .v-nav li.ouvert:hover>ul{display:block}
  .v-sous-btn{display:block;position:absolute;right:0;top:8px;width:40px;height:40px}
  .v-hero-grille,.v-it,.v-contact,.v-produit,.v-panier,.v-commande,.v-quand{grid-template-columns:minmax(0,1fr)}
  .v-it-droite .v-it-media{order:0}
  .v-g3,.v-g4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v-grille-p,.v-grille-p3{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 14px}
  .v-services{grid-template-columns:minmax(0,1fr)}
  .v-boutique{grid-template-columns:minmax(0,1fr);gap:16px}
  .v-filtres{display:flex;flex-direction:column;gap:6px}
  .v-filtres ul{display:flex;gap:6px;overflow-x:auto;margin:0;padding-bottom:4px;scrollbar-width:none}
  .v-filtres li a{white-space:nowrap;border:1px solid var(--bordure);border-radius:99px;padding:6px 14px}
  .v-filtres-titre{display:none}
  .v-form-filtres{flex-direction:row;gap:16px;flex-wrap:wrap}
  .v-galerie-p,.v-recap{position:static}
  .v-col3,.v-col4{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:600px){
  body{font-size:15.5px}
  .v-conteneur{padding:0 16px}
  .v-entete-in{min-height:64px;gap:8px}
  .v-logo{font-size:17px}
  .v-logo-marque{width:34px;height:34px;font-size:13px}
  .v-logo-img{max-width:150px}
  .v-g2,.v-g3,.v-g4{grid-template-columns:minmax(0,1fr)}
  .v-chiffres .v-grille{grid-template-columns:repeat(2,minmax(0,1fr))}
  .v-champs2,.v-champs3{grid-template-columns:minmax(0,1fr)}
  .v-pied-grille{grid-template-columns:minmax(0,1fr)}
  .v-pl{grid-template-columns:72px minmax(0,1fr) auto;gap:10px 12px}
  .v-pl img{width:72px;height:72px}
  .v-pl .v-qte{grid-column:2}
  .v-pl-total{grid-column:3;grid-row:2}
  .v-pl .v-ic{grid-column:3;grid-row:1;justify-self:end}
  .v-service{flex-wrap:wrap}
  .v-service .v-btn{width:100%}
  .v-hero-btns .v-btn{flex:1}
  .v-achat-ligne{flex-direction:column}
  .v-qte{align-self:flex-start}
  .v-barre-tri input{width:100%}
  .v-barre-tri form{width:100%}
  .v-temoins{left:8px;right:8px;bottom:8px;padding:16px}
  .v-temoins-btns .v-btn{flex:1}
  .v-cta{flex-direction:column;align-items:flex-start}
  .v-ligne{flex-direction:column}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
.v-horaires-note{margin-top:8px}
.v-resa-note{max-width:640px;margin:14px auto 0;font-size:.95em;opacity:.9}
/* Soumission en ligne */
.v-doc{background:var(--fond);border:1px solid color-mix(in srgb,var(--texte) 12%,transparent);border-radius:var(--rayon);padding:28px;box-shadow:0 10px 30px rgba(0,0,0,.05)}
.v-doc-tete{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px}
.v-doc-tete h1{font-size:1.7em;margin:0}
.v-doc-statut{font-weight:700;font-size:.85em;padding:4px 12px;border-radius:99px;background:var(--accent-p);white-space:nowrap}
.v-st-acceptee,.v-st-facturee{background:#dcfce7;color:#166534}.v-st-refusee{background:#fee2e2;color:#991b1b}.v-st-expiree{background:#ffedd5;color:#9a3412}
.v-doc-table{width:100%;border-collapse:collapse;margin:16px 0}
.v-doc-table th{text-align:left;font-size:.8em;text-transform:uppercase;letter-spacing:.05em;opacity:.7;border-bottom:2px solid currentColor;padding:8px 6px}
.v-doc-table td{padding:10px 6px;border-bottom:1px solid color-mix(in srgb,var(--texte) 10%,transparent);vertical-align:top}
.v-doc-table td small{display:block;opacity:.65;font-size:.82em}
.v-doc-table th:not(:first-child),.v-doc-table td:not(:first-child){text-align:right;white-space:nowrap}
.v-doc-table tfoot td{border:0;padding:5px 6px}
.v-doc-total td{font-weight:800;font-size:1.15em;border-top:2px solid currentColor!important;padding-top:10px!important}
.v-doc-notes{background:var(--fond2);border-radius:calc(var(--rayon) * .6);padding:12px 16px;margin:12px 0;font-size:.95em}
.v-doc-reponse{margin-top:22px}
.v-doc-reponse .v-ligne{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}
@media print{.v-entete,.v-pied,.v-doc-reponse,[data-imprimer],.v-annonce,.v-demo,.v-temoins{display:none!important}.v-doc{box-shadow:none;border:0;padding:0}}

/* 1.11.0 : icones personnalisees */
.ico-perso{object-fit:contain}

/* ============================================================
   1.15.0 : Raffinement vitrine (toutes les boutiques)
   En-tete plus mince, menu plus petit/aere, hero moins geant,
   typographie resserree, touches editoriales. Variables du theme conservees.
   ============================================================ */

/* -- En-tete plus mince et plus chic -- */
.v-entete{border-bottom-width:1px;backdrop-filter:saturate(1.3) blur(8px)}
.v-entete-in{min-height:58px;gap:16px}
.v-logo{font-size:18px;gap:9px;letter-spacing:.01em}
.v-logo-marque{width:33px;height:33px;font-size:12.5px}
.v-entete .v-nav>ul{gap:1px}
.v-entete .v-nav a{font-size:11px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;padding:7px 10px;position:relative;opacity:.68}
.v-entete .v-nav a:hover,.v-entete .v-nav a.actif{opacity:1}
.v-entete .v-nav a.actif::after{content:"";position:absolute;left:10px;right:10px;bottom:3px;height:1.5px;background:var(--accent)}
.v-ic{width:37px;height:37px}
.v-langue{height:30px;min-width:34px;font-size:11.5px}
.v-cta-entete{min-height:35px;padding:0 16px;font-size:12.5px;letter-spacing:.06em}

/* -- Titres resserres -- */
h1{font-size:clamp(27px,3.8vw,44px)}
h2{font-size:clamp(22px,2.6vw,32px)}
.v-section-tete{max-width:680px;margin-bottom:18px}
.v-section-tete p{font-size:16px}

/* -- Hero : fini le plein ecran -- */
.v-hero-fond.v-h-grande{min-height:min(64vh,540px)}
.v-h-petite{padding:clamp(38px,5vw,64px) 0}
.v-h-moyenne{padding:clamp(50px,7vw,92px) 0}
.v-h-grande{padding:clamp(58px,9vw,108px) 0}
.v-hero p{font-size:clamp(15.5px,1.5vw,18px)}
.v-hero-btns{margin-top:22px;gap:10px}

/* -- Sections moins hautes -- */
.v-section{padding:clamp(20px,3vw,38px) 0}

/* -- Boutons plus fins -- */
.v-btn{min-height:42px;font-size:13.5px;padding:0 20px;letter-spacing:.04em}
.v-btn-large{min-height:47px;font-size:14.5px;padding:0 26px}

/* -- Grille produits un brin plus serree et raffinee -- */
.v-grille{gap:24px}

/* 1.15.2 : icones de la vitrine plus petites et coherentes (couleur = trait, meme taille) */
.v-entete .v-ic{width:36px;height:36px}
.v-entete .ico{width:17px;height:17px}
/* Cercles "avantages" (Fabrique au Quebec, Livraison, Retouches...) reduits ~50% */
.v-avantage-ic{width:24px;height:24px;margin-bottom:12px;border-radius:calc(var(--rayon) * .4 + 4px)}
.v-avantage-ic .ico{width:13px;height:13px}
.theme-elegant .v-avantage-ic{border-radius:50%}

/* 1.19.0 : grille boutique plus dense -- 5 de large sur grand ecran, descend a 3 sur mobile (jamais 2), produits plus petits */
.v-grille-p{grid-template-columns:repeat(5,minmax(0,1fr));gap:16px 14px}
@media (max-width:1240px){.v-grille-p{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:1040px){.v-grille-p{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:900px){.v-grille-p,.v-grille-p3{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 12px}}
@media (max-width:420px){.v-grille-p,.v-grille-p3{gap:12px 8px}}
/* Cartes produit plus compactes */
.v-carte-txt{padding-top:10px}
.v-carte-txt h3{font-size:14.5px;line-height:1.25}
.v-carte-txt p{font-size:13px}
.v-carte-bas{padding-top:4px}
@media (max-width:640px){.v-carte-txt h3{font-size:12.5px}.v-carte-txt p{font-size:12px}.v-carte-bas{flex-wrap:wrap;gap:4px}}

/* 1.20.0 : vitrine -- reductions demandees (en-tete, barre categories, recherche/tri, pied vert) */
/* En-tete : nom de boutique ~50%, Reserver ~50%, EN ~20% */
.v-logo{font-size:12px;gap:6px}
.v-logo-marque{width:25px;height:25px;font-size:9.5px;border-radius:6px}
.v-cta-entete{min-height:26px;padding:0 11px;font-size:10px;letter-spacing:.04em}
.v-langue{height:25px;min-width:28px;font-size:9.5px;padding:0 7px}
/* Barre de categories + filtres : -40% */
.v-filtres{font-size:10px}
.v-filtres-titre{font-size:9px;margin-bottom:7px}
.v-filtres ul{margin-bottom:16px}
.v-filtres li a{padding:5px 8px}
.v-filtres li a span{font-size:9px}
/* Recherche boutique + tri : -50%, texte court */
.v-barre-tri input,.v-barre-tri select{min-height:30px;font-size:11px;padding:4px 9px}
.v-barre-tri input{width:130px}
.v-barre-tri span{font-size:12px}
/* Pied (carre vert) : -20% */
.v-pied{font-size:12px;padding:50px 0 0}
.v-pied h3{font-size:12px;margin-bottom:11px}
.v-pied .v-horaires{font-size:11px}
.v-pied-grille{gap:28px}
.v-infolettre-mini>label{font-size:11px}

/* 1.21.0 : fiche produit -- tout plus petit (~moitie) et s'ajuste mieux en largeur (toutes les vitrines) */
.v-produit{max-width:800px;margin:16px auto 0;gap:clamp(20px,3vw,40px);grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)}
.v-galerie-principale{max-height:480px}
.v-galerie-mini{grid-template-columns:repeat(auto-fill,minmax(52px,1fr));gap:8px;margin-top:9px}
.v-produit-info{font-size:14px}
.v-produit-info h1{font-size:clamp(20px,2.4vw,27px);margin-bottom:7px}
.v-prix-grand{font-size:19px;margin:5px 0 2px}
.v-option legend{margin-bottom:7px;font-size:13.5px}
.v-valeur span{min-width:38px;min-height:34px;padding:0 10px;font-size:13px}
.v-pastille span{width:34px;height:34px}
.v-pastille i{width:24px;height:24px}
.v-qte{height:42px}
.v-qte button{width:34px;font-size:17px}
.v-qte input{width:38px;font-size:14px}
.v-produit-info .v-btn-large{min-height:42px;font-size:13.5px;padding:0 20px}
.v-garanties{padding:12px 0;gap:7px;font-size:12.5px}
.v-garanties .ico{width:16px;height:16px}
/* S'ajuste bien quand la largeur diminue : pile des 900px, image jamais geante, pas de debordement */
@media (max-width:900px){
  .v-produit{grid-template-columns:minmax(0,1fr);max-width:480px;gap:18px;margin:14px auto 0}
  .v-galerie-p{position:static}
  .v-galerie-principale{max-height:none}
}

/* 1.21.0 : empeche le defilement horizontal cause par le tiroir de menu mobile (hors-ecran) */
html{overflow-x:clip}

/* 1.22.0 : icone "boutique" generique (demo) a la place des initiales + dans le bandeau de la page boutique */
.v-logo-ic{width:30px;height:30px;object-fit:contain;flex:none;border-radius:6px}
.v-bandeau-h1-ic{margin:0;line-height:0}
.v-bandeau-ic{display:block;width:80px;height:80px;object-fit:contain}

/* =====================================================================
   1.24.0 : boutons de contenu reduits (~50%), plafonnes a la taille du
   bouton "Reserver" de l'en-tete. S'applique a toutes les pages
   (accueil, services, blogue, a propos, nous joindre) et a tous les themes.
   Les boutons restent lisibles et cliquables, mais ne depassent plus
   la grosseur du bouton "Reserver" en haut a droite.
   ===================================================================== */
.v-btn{min-height:28px;padding:0 15px;font-size:11px;letter-spacing:.04em;border-width:1.5px}
.v-btn-large{min-height:31px;padding:0 19px;font-size:12px}
.v-btn .ico{width:13px;height:13px}
.v-hero-btns{margin-top:18px;gap:9px}
.v-service .v-btn{min-height:28px;padding:0 13px;font-size:10.5px}
/* Le bouton d'ajout au panier (fiche produit) garde la taille deja reglee en 1.21.0 */
.v-produit-info .v-btn-large{min-height:34px;padding:0 18px;font-size:12px}

/* =====================================================================
   1.32.0 : page Nous joindre (contact) reduite d'environ 50 % -- le titre
   "Ecrivez-nous" devient petit, et le formulaire, les coordonnees et les
   heures sont plus compacts. Ne touche que la section contact.
   ===================================================================== */
.v-section-contact{padding:clamp(20px,3vw,34px) 0}
.v-section-contact .v-section-tete{margin-bottom:16px}
.v-section-contact .v-section-tete h2{font-size:clamp(17px,2.2vw,22px)}
.v-section-contact .v-section-tete h2::after{width:40px;height:2px;margin-top:9px}
.v-section-contact .v-section-tete p{font-size:12.5px}
.v-section-contact .v-contact{gap:16px}
.v-section-contact .v-contact-info{gap:12px}
.v-section-contact .v-carte-form{padding:clamp(12px,2vw,18px)}
.v-section-contact .v-form{gap:9px}
.v-section-contact .v-champs2{gap:9px}
.v-section-contact .v-form label{font-size:11px;gap:3px}
.v-section-contact .v-form input:not([type=checkbox]):not([type=radio]),.v-section-contact .v-form textarea{min-height:30px;padding:5px 9px;font-size:13px;border-radius:7px}
.v-section-contact .v-form textarea{min-height:64px}
.v-section-contact .v-case{font-size:11px}
.v-section-contact .v-info{padding:13px}
.v-section-contact .v-info h3{font-size:14px}
.v-section-contact .v-info p{font-size:12px;margin-bottom:5px}
.v-section-contact .v-etat{font-size:10.5px;padding:2px 9px}
.v-section-contact .v-horaires{font-size:11.5px}
.v-section-contact .v-horaires th,.v-section-contact .v-horaires td{padding-top:3px;padding-bottom:3px}

/* =====================================================================
   1.36.0 : blogue -- cartes (image + texte) reduites ~50 % (plus denses),
   et page A propos -- images (photo mission + cercles de l'equipe) et
   textes reduits ~50 %. Toutes les vitrines, tous les themes.
   ===================================================================== */
/* Blogue : grille plus dense + textes plus petits */
.v-blog-grille{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.v-blog-grille .v-ratio{aspect-ratio:16/11}
.v-blog-grille .v-carte-txt{padding-top:9px;gap:3px}
.v-blog-grille .v-marque{font-size:10px;margin-bottom:3px}
.v-blog-grille .v-carte-a .v-carte-txt h3{font-size:14px;line-height:1.25}
.v-blog-grille .v-carte-txt p{font-size:12.5px;margin-top:2px}
@media(max-width:1040px){.v-blog-grille{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.v-blog-grille{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}}
/* A propos : cercles de l'equipe reduits ~50 % */
.v-membre-av{width:56px;height:56px;font-size:19px;margin-bottom:9px}
.v-membre h3{font-size:16px}
.v-membre p{font-size:13px}
.v-membre .v-marque{font-size:10.5px}
/* A propos : photo "Notre mission" (image + texte) reduite ~50 %, centree */
.v-it-media img,.v-it-media .v-img-vide{max-width:300px;margin-left:auto;margin-right:auto}
.v-it-droite .v-it-media img,.v-it-droite .v-it-media .v-img-vide{margin-right:0}

/* =====================================================================
   1.38.0 : sections de contenu plus compactes (format visuel plus petit).
   Titres de section reduits, bande \0000ab En chiffres \0000bb plus courte et nombres
   plus petits, \0000ab Notre mission \0000bb resserree. Toutes les vitrines, tous les
   themes. (La page d'accueil en profite aussi : sections moins imposantes.)
   ===================================================================== */
h2{font-size:clamp(18px,2.1vw,25px)}
.v-section-tete{margin-bottom:22px}
.v-section-tete p{font-size:13.5px}
.theme-elegant .v-section-tete h2::after{width:40px;margin-top:11px}
/* En chiffres : bande plus courte + nombres plus petits */
.v-chiffres{padding-top:clamp(20px,3.2vw,38px);padding-bottom:clamp(20px,3.2vw,38px)}
.v-chiffre b{font-size:clamp(22px,3vw,32px)}
.v-chiffre span{font-size:12.5px}
.v-chiffres .v-grille{gap:16px}
/* Notre mission (image + texte) : titre et texte un peu plus petits */
.v-it-txt h2{font-size:clamp(18px,2.2vw,24px)}
.v-it .v-prose{font-size:14px}
/* Cartes \0000ab avantages \0000bb de l'accueil : un peu moins imposantes */
.v-avantage{padding:9px 11px}

/* 1.38.0 (suite) : "Notre mission" -- colonne image plus etroite pour que la
   photo plus petite ne laisse pas de grand vide; le texte prend la place. */
@media(min-width:981px){
  .v-it{grid-template-columns:300px 1fr}
  .v-it-droite{grid-template-columns:1fr 300px}
}
.v-it-media img,.v-it-media .v-img-vide{max-width:none;width:100%;margin:0}

/* =====================================================================
   1.39.0 : page d'accueil des demos -- plus compacte et plus de caractere
   (1re proposition, scopee a .v-accueil). Hero moins haut, sections
   resserrees, cartes "avantages" et categories avec du relief.
   ===================================================================== */
.v-accueil .v-hero-fond.v-h-grande{min-height:min(52vh,420px)}
.v-accueil .v-hero-fond.v-h-moyenne{min-height:min(42vh,340px)}
.v-accueil .v-hero h1{font-size:clamp(26px,3.6vw,42px)}
.v-accueil .v-section{padding:clamp(30px,4vw,54px) 0}
/* Avantages : vraies cartes avec relief */
.v-accueil .v-avantages .v-grille{gap:18px}
.v-accueil .v-avantage{background:var(--fond);border:1.5px solid var(--bordure);border-radius:var(--rayon);box-shadow:0 8px 20px rgba(0,0,0,.06);padding:10px 12px;transition:transform .18s,box-shadow .18s}
.v-accueil .v-avantage:hover{transform:translateY(-4px);box-shadow:0 14px 28px rgba(0,0,0,.10)}
/* Cartes categorie : leger relief au survol */
.v-accueil .v-cat{transition:transform .18s,box-shadow .18s}
.v-accueil .v-cat:hover{transform:translateY(-3px);box-shadow:0 14px 28px rgba(0,0,0,.12)}

/* =====================================================================
   1.40.0 : accueil "melange" -- relief marque sur le hero et les cartes
   "avantages" (contour net + ombre decalee teintee accent), doux ailleurs
   (categories, produits, blogue gardent le survol leger de la 1.39.0).
   ===================================================================== */
.v-accueil .v-hero-fond{border-bottom:4px solid var(--accent)}
.v-accueil .v-avantage{background:var(--fond);border:2px solid var(--texte);border-radius:var(--rayon);box-shadow:5px 5px 0 color-mix(in srgb,var(--accent) 26%,transparent)}
.v-accueil .v-avantage:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 color-mix(in srgb,var(--accent) 34%,transparent)}

/* Livraison restaurant : boutons vers les plateformes (DoorDash, Uber Eats, Skip...) */
.v-resto-plateformes{margin-top:16px;padding-top:14px;border-top:1px solid #e7e4df}
.v-resto-pl-titre{font-size:13px;color:#8a8279;margin:0 0 9px;text-align:center}
.v-resto-pl-boutons{display:flex;flex-direction:column;gap:8px}
.v-resto-pl{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;border:2px solid var(--pl,#555);border-radius:11px;color:var(--pl,#555);font-weight:700;text-decoration:none;line-height:1.2;transition:background .15s ease,color .15s ease}
.v-resto-pl:hover{background:var(--pl,#555);color:#fff}
.v-resto-pl-cta{font-size:12.5px;font-weight:600;white-space:nowrap}

/* =====================================================================
   Location d'articles (module location) : barre des dates, fiche, panier, suivi, contrat
   ===================================================================== */
.v-barre-haut{background:#0d0d0d;color:#e9e9e9;font-size:13px}
.v-barre-haut-in{display:flex;align-items:center;justify-content:space-between;gap:10px 20px;min-height:36px;flex-wrap:wrap}
.v-bh-slogan{font-family:var(--police-titres);font-style:italic;color:#fff;letter-spacing:.02em}
.v-bh-liens{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.v-bh-liens a{color:#e9e9e9;text-decoration:none;display:inline-flex;align-items:center;gap:6px}
.v-bh-liens a:hover{color:#fff}
.v-bh-liens .ico{width:14px;height:14px;color:var(--primaire)}
.v-bh-etat{display:inline-flex;align-items:center;gap:6px;font-size:12px}
.v-bh-etat::before{content:"";width:7px;height:7px;border-radius:50%;background:#9ca3af}
.v-bh-etat.ouvert::before{background:#22c55e}
.v-loc-barre{background:var(--fond2);border-bottom:1px solid var(--bordure)}
.v-loc-dates{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px 16px;padding:16px 0;margin:0}
.v-loc-dates label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600;color:var(--texte2)}
.v-loc-dates input[type=date]{min-height:44px;padding:0 12px;border:1px solid var(--bordure);border-radius:calc(var(--rayon) * .6);font:inherit;color:var(--texte);background:var(--fond)}
.v-loc-dates .v-case{flex-direction:row;align-items:center;font-weight:500;min-height:44px}
.v-loc-dates-tit{display:flex;align-items:center;gap:12px;margin-right:auto;min-width:240px}
.v-loc-dates-tit .ico{width:30px;height:30px;color:var(--primaire);flex:none}
.v-loc-dates-tit b{display:block;font-family:var(--police-titres);font-size:18px;color:var(--texte)}
.v-loc-dates-tit small{display:block;color:var(--texte2);font-size:13.5px}
.v-panier ~ .v-loc-dates,.v-section > .v-conteneur > .v-loc-dates{border:1px solid var(--bordure);border-radius:var(--rayon);padding:16px 20px;background:var(--fond2);margin-bottom:18px}
.v-prix-unite{font-size:.6em;font-weight:500;color:var(--texte2);letter-spacing:0}
.v-carte-bas .v-prix-unite{font-size:12px}
.v-badge-dispo{background:#15803d;color:#fff}
.v-loc-produit{border:1px solid var(--bordure);border-radius:var(--rayon);padding:14px 16px;background:var(--fond2)}
.v-loc-produit legend{display:flex;align-items:center;gap:8px;font-weight:700;padding:0 6px}
.v-loc-produit legend .ico{width:18px;height:18px;color:var(--primaire)}
.v-loc-produit label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600}
.v-loc-produit input{min-height:42px;padding:0 10px;border:1px solid var(--bordure);border-radius:calc(var(--rayon) * .6);font:inherit;background:var(--fond)}
.v-loc-produit p{margin:8px 0 0}
.v-loc-evenement legend{display:flex;align-items:center;gap:8px}
.v-loc-evenement legend .ico{width:18px;height:18px;color:var(--primaire)}
.v-loc-periode-ligne{margin:0 0 14px}
.v-loc-resume{display:grid;grid-template-columns:minmax(140px,auto) 1fr;gap:6px 18px;margin:14px 0;padding:14px 18px;background:var(--fond2);border-radius:var(--rayon);text-align:left}
.v-loc-resume dt{color:var(--texte2);font-size:14px}
.v-loc-resume dd{margin:0;font-weight:600}
.v-loc-taches{list-style:none;padding:0;margin:14px 0;display:grid;gap:8px}
.v-loc-taches li{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;padding:10px 14px;border:1px solid var(--bordure);border-radius:calc(var(--rayon) * .6)}
.v-loc-taches li.fait{opacity:.7}
.v-loc-taches small{color:var(--texte2);width:100%}
.v-loc-taches em{font-style:normal;font-size:12.5px;font-weight:700;color:var(--primaire);margin-left:auto}
.v-cat-n1 a{padding-left:24px!important;font-size:.94em}
.v-cat-n2 a{padding-left:38px!important;font-size:.9em}
.v-cat-n1 a::before,.v-cat-n2 a::before{content:"\2013";margin-right:6px;color:var(--texte2)}
.v-cat-n0.ouvert>a{font-weight:700}
/* Contrat */
.v-contrat-tete{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.v-contrat-parties{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:18px 0}
.v-contrat-parties h2,.v-contrat h2{font-size:16px;text-transform:uppercase;letter-spacing:.06em;color:var(--texte2);margin:22px 0 8px}
.v-contrat-lignes{width:100%;border-collapse:collapse;margin:16px 0;font-size:15px}
.v-contrat-lignes th,.v-contrat-lignes td{padding:8px 10px;border-bottom:1px solid var(--bordure);text-align:left}
.v-contrat-lignes td:nth-child(n+2),.v-contrat-lignes th:nth-child(n+2){text-align:right;white-space:nowrap}
.v-contrat-lignes td small{display:block;color:var(--texte2)}
.v-contrat-lignes tfoot td{border:0;padding:4px 10px}
.v-contrat-lignes tfoot td:first-child{text-align:right;color:var(--texte2)}
.v-contrat-lignes .v-total td{font-weight:800;font-size:17px;border-top:2px solid var(--texte)}
.v-contrat-conditions{font-size:14.5px}
.v-contrat-signe{display:flex;gap:14px;align-items:center;padding:18px;border:2px solid #15803d;border-radius:var(--rayon);color:#14532d;background:#f0fdf4;margin-top:20px}
.v-contrat-signe .ico{width:30px;height:30px}
.v-contrat-signe p{margin:2px 0 0}
.v-contrat-signer{margin-top:20px;display:grid;gap:12px}
@media (max-width:640px){.v-contrat-parties{grid-template-columns:1fr}.v-loc-resume{grid-template-columns:1fr}.v-bh-courriel{display:none}.v-loc-dates>label{flex:1 1 140px}}
@media print{.v-entete,.v-pied,.v-barre-haut,.v-annonce,.v-temoins,.v-imprimer,.v-contrat-signer button{display:none!important}.v-section{padding:0}}

/* =====================================================================
   Theme "Le Vaisselier" : rouge et noir du logo, inspire du site Chapiteaux
   (barre noire, banniere photo, titres a filet rouge, cartes sobres, pied noir)
   ===================================================================== */
.theme-vaisselier .v-entete{background:#fff;border-bottom:3px solid var(--primaire)}
.theme-vaisselier .v-entete-in{min-height:88px}
.theme-vaisselier .v-nav a{font-size:13.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:#1a1a1a}
.theme-vaisselier .v-nav a:hover,.theme-vaisselier .v-nav a.actif{color:var(--primaire);background:none;box-shadow:inset 0 -2px 0 var(--primaire);border-radius:0}
.theme-vaisselier h1,.theme-vaisselier h2{letter-spacing:-.005em}
.theme-vaisselier .v-section-tete h2::before{content:"";display:block;width:46px;height:3px;background:var(--primaire);margin:0 auto 16px}
.theme-vaisselier .v-hero-fond{min-height:min(74vh,620px)}
.theme-vaisselier .v-hero-fond::after{background:linear-gradient(90deg,rgba(10,10,10,.78) 0%,rgba(10,10,10,.45) 55%,rgba(10,10,10,.12) 100%)}
.theme-vaisselier .v-hero-fond h1{font-size:clamp(34px,5.4vw,62px);line-height:1.05}
.theme-vaisselier .v-hero-fond h1::before{content:"";display:block;width:64px;height:4px;background:var(--primaire);margin-bottom:22px}
.theme-vaisselier .v-btn-a{background:var(--primaire);color:#fff;border-color:var(--primaire)}
.theme-vaisselier .v-btn-a:hover{background:#b8162b;border-color:#b8162b}
.theme-vaisselier .v-btn-clair{background:transparent;color:#fff;border-color:#fff}
.theme-vaisselier .v-btn-clair:hover{background:#fff;color:#111}
.theme-vaisselier .v-avantages{background:var(--fond2)}
.theme-vaisselier .v-avantage,.theme-vaisselier.v-accueil .v-avantage{text-align:center;background:#fff;border:1px solid var(--bordure);border-radius:var(--rayon);box-shadow:0 6px 18px rgba(0,0,0,.05);padding:26px 22px}
.theme-vaisselier .v-avantage h3{font-size:18px;margin:0 0 8px;font-family:var(--police-titres)}
.theme-vaisselier .v-avantage p{font-size:15px}
.theme-vaisselier .v-avantage-ic{margin:0 auto 14px;width:58px;height:58px;border-radius:50%;background:#fff;color:var(--primaire);border:2px solid var(--primaire)}
.theme-vaisselier .v-avantage-ic .ico{width:26px;height:26px}
.theme-vaisselier .v-carte-p{background:#fff;border:1px solid var(--bordure);border-radius:var(--rayon);overflow:hidden;transition:box-shadow .2s,transform .2s}
.theme-vaisselier .v-carte-p:hover{box-shadow:0 12px 30px rgba(0,0,0,.09);transform:translateY(-2px)}
.theme-vaisselier .v-carte-p .v-carte-img{background:#fff}
.theme-vaisselier .v-carte-p .v-carte-img img{object-fit:contain;padding:10px}
.theme-vaisselier .v-carte-txt{padding:12px 14px 16px}
.theme-vaisselier .v-carte-p .v-prix{color:var(--primaire)}
.theme-vaisselier .v-cat{border-radius:var(--rayon);box-shadow:0 1px 0 var(--bordure)}
.theme-vaisselier .v-cat img{object-fit:cover}
.theme-vaisselier .v-cta-sombre,.theme-vaisselier .v-cta-accent{background:#0d0d0d;color:#fff;border-top:4px solid var(--primaire)}
.theme-vaisselier .v-cta .v-btn-clair{background:var(--primaire);border-color:var(--primaire);color:#fff}
.theme-vaisselier .v-cta .v-btn-clair:hover{background:#fff;color:#111;border-color:#fff}
.theme-vaisselier .v-pied{background:#0d0d0d;border-top:4px solid var(--primaire);color:#cfcfcf}
.theme-vaisselier .v-pied h3{color:#fff;text-transform:uppercase;letter-spacing:.08em;font-size:14px}
.theme-vaisselier .v-pied a{color:#e9e9e9}
.theme-vaisselier .v-pied a:hover{color:var(--primaire)}
.theme-vaisselier .v-logo-pied img{filter:none;background:#fff;padding:8px 10px;border-radius:6px}
.theme-vaisselier .v-galerie a{border-radius:calc(var(--rayon) * .6);overflow:hidden}
.theme-vaisselier .v-galerie img{transition:transform .35s}
.theme-vaisselier .v-galerie a:hover img{transform:scale(1.04)}
.theme-vaisselier .v-filtres li a.actif{color:var(--primaire)}
.theme-vaisselier .v-temoin{background:#fff;border-left:4px solid var(--primaire)}
.theme-vaisselier .v-contact:not(:has(form)){display:block}
.theme-vaisselier .v-contact:not(:has(form)) .v-contact-info{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media (max-width:760px){.theme-vaisselier .v-contact:not(:has(form)) .v-contact-info{grid-template-columns:1fr}}
@media (max-width:640px){.v-bh-courriel{display:none!important}.v-bh-slogan{font-size:12px}}

/* ---------- Banniere : diaporama en fondu, titres "bulles de champagne", bulles decoratives ---------- */
.v-hero-fond .v-hero-img{opacity:0;transition:opacity 1.8s ease-in-out;will-change:opacity,transform}
.v-hero-fond .v-hero-img.actif{opacity:1;z-index:0}
.v-diapo .v-hero-img.actif{animation:v-zoom-lent 14s ease-out both}
@keyframes v-zoom-lent{from{transform:scale(1.001)}to{transform:scale(1.07)}}
.v-hero-fond .v-conteneur{z-index:2}
.v-hero-media{position:relative}
.v-hero-media .v-hero-dimg{width:100%;border-radius:var(--rayon);aspect-ratio:4/3;object-fit:cover;box-shadow:0 30px 60px rgba(0,0,0,.14);display:block;opacity:0;transition:opacity 1.6s ease-in-out}
.v-hero-media .v-hero-dimg+.v-hero-dimg{position:absolute;inset:0;height:100%}
.v-hero-media .v-hero-dimg.actif{opacity:1}
/* Titre : chaque lettre monte comme une bulle de champagne, puis s'envole et s'efface au changement */
.v-bulles-titre{min-height:1.2em}
.v-bulles-titre .v-mot{display:inline-block;white-space:nowrap}
.v-bulles-titre .v-l{display:inline-block;opacity:0;transform:translateY(.55em) scale(.6);filter:blur(4px);animation:v-bulle-entre .9s cubic-bezier(.2,.8,.25,1.15) forwards;animation-delay:calc(var(--i) * 38ms)}
.v-bulles-titre .v-l.sort{opacity:1;transform:none;filter:none;animation:v-bulle-sort .7s cubic-bezier(.5,0,.75,0) forwards;animation-delay:calc(var(--i) * 18ms)}
@keyframes v-bulle-entre{0%{opacity:0;transform:translateY(.6em) scale(.55);filter:blur(5px)}60%{opacity:1;filter:blur(0)}80%{transform:translateY(-.08em) scale(1.04)}100%{opacity:1;transform:none;filter:none}}
@keyframes v-bulle-sort{0%{opacity:1;transform:none}100%{opacity:0;transform:translateY(-.9em) scale(.7);filter:blur(4px)}}
/* Bulles decoratives qui montent */
.v-bulles-fond{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1}
.v-bulles-fond span{position:absolute;bottom:-20px;left:var(--x);width:var(--s);height:var(--s);border-radius:50%;opacity:0;
  background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.95),rgba(255,236,190,.55) 45%,rgba(255,220,150,.12) 70%,transparent 72%);
  box-shadow:0 0 6px rgba(255,235,190,.35);animation:v-monte var(--d) linear infinite;animation-delay:var(--r)}
@keyframes v-monte{0%{transform:translate(0,0);opacity:0}10%{opacity:var(--o)}50%{transform:translate(8px,-55vh)}90%{opacity:var(--o)}100%{transform:translate(-6px,-110vh);opacity:0}}
.v-hero-centre .v-bulles-fond span,.v-hero-droite .v-bulles-fond span{background:radial-gradient(circle at 30% 30%,#fff,rgba(223,30,54,.25) 55%,transparent 72%);box-shadow:none}
@media (prefers-reduced-motion:reduce){
  .v-hero-fond .v-hero-img,.v-hero-media .v-hero-dimg{transition-duration:.01s}
  .v-diapo .v-hero-img.actif{animation:none}
  .v-bulles-titre .v-l,.v-bulles-titre .v-l.sort{animation-duration:.01s;animation-delay:0s}
  .v-bulles-fond{display:none}
}

/* ---------- Le Vaisselier : categories compactes (10 par ligne, image entiere dans la carte) ---------- */
.theme-vaisselier .v-grille-c{grid-template-columns:repeat(10,minmax(0,1fr));gap:10px}
.theme-vaisselier .v-cat{aspect-ratio:auto;display:flex;flex-direction:column;background:#fff;border:1px solid var(--bordure);border-radius:10px;box-shadow:none;transition:transform .18s,box-shadow .18s,border-color .18s}
.theme-vaisselier .v-cat:hover{transform:translateY(-3px);box-shadow:0 10px 22px rgba(0,0,0,.09);border-color:var(--primaire)}
.theme-vaisselier .v-cat img,.theme-vaisselier .v-cat .v-cat-vide{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:contain;padding:8px;background:#fff}
.theme-vaisselier .v-cat:hover img{transform:scale(1.04)}
.theme-vaisselier .v-cat .v-cat-vide{background:#fff url(/assets/img/filigrane-vaisselier.png) center/70% auto no-repeat;opacity:.12}
.theme-vaisselier .v-cat span{position:static;background:none;border-radius:0;padding:4px 8px 10px;text-align:center;align-items:center;gap:1px;border-top:1px solid var(--bordure)}
.theme-vaisselier .v-cat b{font-size:12.5px;line-height:1.25;font-weight:600;overflow-wrap:anywhere;hyphens:auto}
.theme-vaisselier .v-cat small{font-size:11px}
@media (max-width:1240px){.theme-vaisselier .v-grille-c{grid-template-columns:repeat(8,minmax(0,1fr))}}
@media (max-width:1000px){.theme-vaisselier .v-grille-c{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media (max-width:760px){.theme-vaisselier .v-grille-c{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.theme-vaisselier .v-cat b{font-size:12px}}
@media (max-width:460px){.theme-vaisselier .v-grille-c{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* ---------- Le Vaisselier : Nouveautes compactes (4 par ligne, 2 lignes) et logo en filigrane tres pale ---------- */
.theme-vaisselier .v-bloc-p-vedette{position:relative;overflow:hidden}
.theme-vaisselier .v-bloc-p-vedette::before{content:"";position:absolute;inset:0;background:url(/assets/img/filigrane-vaisselier.png) center 58%/min(720px,88%) auto no-repeat;opacity:.05;pointer-events:none}
.theme-vaisselier .v-bloc-p-vedette .v-conteneur{position:relative}
.theme-vaisselier .v-bloc-p-vedette .v-grille-p{grid-template-columns:repeat(4,minmax(0,1fr));max-width:720px;margin:0 auto;gap:14px 12px}
.theme-vaisselier .v-bloc-p-vedette .v-carte-p:nth-child(n+9){display:none}
.theme-vaisselier .v-bloc-p-vedette .v-carte-img{aspect-ratio:1/1}
.theme-vaisselier .v-bloc-p-vedette .v-carte-txt h3{font-size:13px;line-height:1.3}
.theme-vaisselier .v-bloc-p-vedette .v-prix{font-size:13px}
.theme-vaisselier .v-bloc-p-vedette .v-badge{font-size:10px;padding:2px 7px}
.theme-vaisselier .v-carte-img .v-img-vide{position:absolute;inset:0;aspect-ratio:auto;background:#fff url(/assets/img/filigrane-vaisselier.png) center/62% auto no-repeat;opacity:.14}
@media (max-width:760px){.theme-vaisselier .v-bloc-p-vedette .v-grille-p{grid-template-columns:repeat(2,minmax(0,1fr));max-width:440px}}

/* ---------- Creer mon profil : formulaire avec filigrane des maries ---------- */
.v-profil-boite{position:relative;max-width:860px;margin:0 auto;isolation:isolate}
.v-profil-filigrane{position:absolute;top:160px;right:-30px;width:440px;height:550px;background:url(/assets/img/maries.svg) center/contain no-repeat;opacity:.07;pointer-events:none;z-index:-1}
.v-profil-tete{text-align:center;margin-bottom:24px}
.v-profil-tete p{max-width:560px;margin:8px auto 0;color:var(--texte2)}
.v-profil-form{display:flex;flex-direction:column;gap:16px}
.v-profil-form .v-carte-form{background:rgba(255,255,255,.5)}
.v-profil-form .v-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px}
.v-profil-form label{display:flex;flex-direction:column;gap:5px;font-weight:600;font-size:14px}
.v-profil-form label.v-case{flex-direction:row;align-items:flex-start;gap:9px;font-weight:400}
.v-profil-form .v-champs2,.v-profil-form .v-champs3{display:grid;gap:12px;margin-bottom:12px}
.v-profil-form .v-champs2{grid-template-columns:repeat(2,minmax(0,1fr))}
.v-profil-form .v-champs3{grid-template-columns:repeat(3,minmax(0,1fr))}
.v-profil-form fieldset>label{margin-bottom:12px}
.v-profil-lib{font-weight:600;font-size:14px;margin:4px 0 8px}
.v-profil-besoins{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px;margin-bottom:14px}
.v-profil-pied{text-align:center}
.v-profil-pied .v-btn{min-width:260px}
.v-profil-pied p{margin-top:10px;display:flex;justify-content:center;align-items:center;gap:6px}
.v-profil-merci{text-align:center;padding:40px 0}
.v-profil-merci p{max-width:560px;margin:10px auto 18px}
@media (max-width:760px){
  .v-profil-filigrane{right:-60px;top:80px;width:260px;height:325px}
  .v-profil-form .v-champs2,.v-profil-form .v-champs3,.v-profil-besoins{grid-template-columns:1fr}
}

/* =====================================================================
   1.48.8 : menu cellulaire. Le flou de l'en-tete (backdrop-filter, remis par le
   theme plus bas) enfermait le tiroir du menu dans la hauteur de l'en-tete :
   on l'enleve sur cellulaire et en menu compact, et on redonne au tiroir des
   liens lisibles (pleine largeur, gros caracteres) malgre le style du theme.
   ===================================================================== */
@media (max-width:900px){
  .v-entete,.theme-vaisselier .v-entete{backdrop-filter:none;-webkit-backdrop-filter:none}
  .v-entete .v-outils{margin-left:auto}
  .v-entete .v-nav>ul{gap:0}
  .v-entete .v-nav a,.theme-vaisselier .v-entete .v-nav a{display:block;font-size:15px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:#1a1a1a;opacity:1;padding:14px 6px;border-bottom:1px solid var(--bordure);border-radius:0;box-shadow:none;background:none}
  .v-entete .v-nav a.actif,.v-entete .v-nav a:hover,.theme-vaisselier .v-entete .v-nav a.actif,.theme-vaisselier .v-entete .v-nav a:hover{color:var(--primaire);box-shadow:inset 3px 0 0 var(--primaire);padding-left:12px}
  .v-entete .v-nav a.actif::after{display:none}
  .v-entete .v-nav li ul a{font-size:13.5px;text-transform:none;letter-spacing:0}
  .menu-ouvert .v-entete .v-burger{background:#f1f1f1;border-radius:50%}
}
.nav-compacte .v-entete,.nav-compacte.theme-vaisselier .v-entete{backdrop-filter:none;-webkit-backdrop-filter:none}
.nav-compacte .v-entete .v-outils{margin-left:auto}
.nav-compacte .v-entete .v-nav>ul{gap:0}
.nav-compacte .v-entete .v-nav a,.nav-compacte.theme-vaisselier .v-entete .v-nav a{display:block;font-size:15px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:#1a1a1a;opacity:1;padding:14px 6px;border-bottom:1px solid var(--bordure);border-radius:0;box-shadow:none;background:none}
.nav-compacte .v-entete .v-nav a.actif,.nav-compacte .v-entete .v-nav a:hover,.nav-compacte.theme-vaisselier .v-entete .v-nav a.actif,.nav-compacte.theme-vaisselier .v-entete .v-nav a:hover{color:var(--primaire);box-shadow:inset 3px 0 0 var(--primaire);padding-left:12px}
.nav-compacte .v-entete .v-nav a.actif::after{display:none}
.nav-compacte .v-entete .v-nav li ul a{font-size:13.5px;text-transform:none;letter-spacing:0}
.nav-compacte.menu-ouvert .v-entete .v-burger{background:#f1f1f1;border-radius:50%}
/* Bandeau des temoins plus compact sur cellulaire */
@media (max-width:600px){
  .v-temoins{padding:12px 14px;gap:8px;font-size:13px;line-height:1.4;max-height:70vh;overflow:auto}
  .v-temoins p{margin:4px 0 6px}
  .v-temoins .v-case{font-size:12.5px}
  .v-temoins-btns{gap:6px}
  .v-temoins .v-btn{min-height:36px;padding:0 10px;font-size:12.5px;letter-spacing:.02em}
  .v-temoins-btns .v-btn-p{flex:1 1 100%;order:-1}
}
/* Tiroir : bouton Reserver et langue gardent leur forme; logo attenue derriere le voile */
@media (max-width:900px){
  .v-entete .v-nav a.v-cta-mobile,.theme-vaisselier .v-entete .v-nav a.v-cta-mobile{display:flex;justify-content:center;align-items:center;margin-top:18px;padding:14px 10px;background:var(--primaire);color:#fff;border:0;border-radius:var(--rayon-btn);box-shadow:none}
  .v-entete .v-nav .v-langue-mobile a.v-langue,.theme-vaisselier .v-entete .v-nav .v-langue-mobile a.v-langue{display:inline-grid;place-items:center;height:38px;min-width:48px;padding:0 14px;font-size:13px;border:1px solid var(--bordure);border-radius:var(--rayon-btn);box-shadow:none;color:#1a1a1a}
  .menu-ouvert .v-entete .v-logo,.menu-ouvert .v-barre-haut{opacity:.35;transition:opacity .2s}
}
.nav-compacte .v-entete .v-nav a.v-cta-mobile,.nav-compacte.theme-vaisselier .v-entete .v-nav a.v-cta-mobile{display:flex;justify-content:center;align-items:center;margin-top:18px;padding:14px 10px;background:var(--primaire);color:#fff;border:0;border-radius:var(--rayon-btn);box-shadow:none}
.nav-compacte .v-entete .v-nav .v-langue-mobile a.v-langue,.nav-compacte.theme-vaisselier .v-entete .v-nav .v-langue-mobile a.v-langue{display:inline-grid;place-items:center;height:38px;min-width:48px;padding:0 14px;font-size:13px;border:1px solid var(--bordure);border-radius:var(--rayon-btn);box-shadow:none;color:#1a1a1a}
.nav-compacte.menu-ouvert .v-entete .v-logo,.nav-compacte.menu-ouvert .v-barre-haut{opacity:.35;transition:opacity .2s}

/* =====================================================================
   1.48.9 : menu cellulaire en petit panneau sous le bouton (40 % moins large,
   hauteur selon le contenu, caracteres plus petits) au lieu du tiroir pleine hauteur.
   ===================================================================== */
@media (max-width:900px){
  .v-entete .v-nav,.theme-vaisselier .v-entete .v-nav{inset:var(--nav-haut,72px) 10px auto auto;width:min(210px,62vw);height:auto;max-height:calc(100vh - var(--nav-haut,72px) - 12px);max-height:calc(100dvh - var(--nav-haut,72px) - 12px);padding:6px 12px 12px;border-radius:12px;box-shadow:0 14px 40px rgba(0,0,0,.25);transform:translateY(-8px);opacity:0;transition:transform .18s,opacity .18s,visibility 0s .18s}
  .menu-ouvert .v-entete .v-nav{transform:none;opacity:1;transition:transform .18s,opacity .18s}
  .v-entete .v-nav a,.theme-vaisselier .v-entete .v-nav a{font-size:12px;letter-spacing:.06em;padding:9px 4px}
  .v-entete .v-nav a.actif,.v-entete .v-nav a:hover,.theme-vaisselier .v-entete .v-nav a.actif,.theme-vaisselier .v-entete .v-nav a:hover{padding-left:9px}
  .v-entete .v-nav li ul a{font-size:11.5px}
  .v-entete .v-nav .v-sous-btn{top:2px;width:32px;height:32px}
  .v-entete .v-nav a.v-cta-mobile,.theme-vaisselier .v-entete .v-nav a.v-cta-mobile{margin-top:10px;padding:9px 8px;font-size:11.5px}
  .v-entete .v-nav .v-langue-mobile{padding:10px 0 0}
  .v-entete .v-nav .v-langue-mobile a.v-langue,.theme-vaisselier .v-entete .v-nav .v-langue-mobile a.v-langue{height:30px;min-width:40px;padding:0 10px;font-size:11.5px}
}
.nav-compacte .v-entete .v-nav,.nav-compacte.theme-vaisselier .v-entete .v-nav{inset:var(--nav-haut,72px) 10px auto auto;width:min(210px,62vw);height:auto;max-height:calc(100vh - var(--nav-haut,72px) - 12px);max-height:calc(100dvh - var(--nav-haut,72px) - 12px);padding:6px 12px 12px;border-radius:12px;box-shadow:0 14px 40px rgba(0,0,0,.25);transform:translateY(-8px);opacity:0;transition:transform .18s,opacity .18s,visibility 0s .18s}
.nav-compacte.menu-ouvert .v-entete .v-nav{transform:none;opacity:1;transition:transform .18s,opacity .18s}
.nav-compacte .v-entete .v-nav a,.nav-compacte.theme-vaisselier .v-entete .v-nav a{font-size:12px;letter-spacing:.06em;padding:9px 4px}
.nav-compacte .v-entete .v-nav a.actif,.nav-compacte .v-entete .v-nav a:hover,.nav-compacte.theme-vaisselier .v-entete .v-nav a.actif,.nav-compacte.theme-vaisselier .v-entete .v-nav a:hover{padding-left:9px}
.nav-compacte .v-entete .v-nav li ul a{font-size:11.5px}
.nav-compacte .v-entete .v-nav .v-sous-btn{top:2px;width:32px;height:32px}
.nav-compacte .v-entete .v-nav a.v-cta-mobile,.nav-compacte.theme-vaisselier .v-entete .v-nav a.v-cta-mobile{margin-top:10px;padding:9px 8px;font-size:11.5px}
.nav-compacte .v-entete .v-nav .v-langue-mobile{padding:10px 0 0}
.nav-compacte .v-entete .v-nav .v-langue-mobile a.v-langue,.nav-compacte.theme-vaisselier .v-entete .v-nav .v-langue-mobile a.v-langue{height:30px;min-width:40px;padding:0 10px;font-size:11.5px}

/* =====================================================================
   1.49.1 : pastilles des cartes produits sous la photo (plus petites), et
   pagination compacte : 1 | < Precedent | Page [n] de N | Suivant > | N
   ===================================================================== */
.v-carte-txt .v-badges-txt{position:static;display:flex;gap:4px;flex-wrap:wrap;margin:0 0 6px}
.v-carte-txt .v-badges-txt .v-badge{font-size:10px;line-height:1.3;padding:2px 7px;border-radius:999px;box-shadow:none;background:color-mix(in srgb,var(--primaire) 10%,#fff);color:var(--primaire);letter-spacing:.02em}
.v-carte-txt .v-badges-txt .v-badge-dispo{background:#e7f5ec;color:#1d7a44}
.v-carte-txt .v-badges-txt .v-badge-rupture{background:#f3f1ef;color:#777}
.v-carte-txt .v-badges-txt .v-badge-promo{background:var(--primaire);color:#fff}
.theme-vaisselier .v-bloc-p-vedette .v-carte-txt .v-badge{font-size:9.5px;padding:1px 6px}

.v-pagination.v-pg{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:nowrap;margin:36px auto 0;max-width:100%}
.v-pg a,.v-pg span.v-pg-bout,.v-pg span.v-pg-nav{min-width:0;height:auto;display:inline-flex;align-items:center;justify-content:center}
.v-pg .v-pg-bout{min-width:40px;height:40px;padding:0 10px;border:1px solid var(--bordure);border-radius:var(--rayon-btn);text-decoration:none;color:var(--texte);font-weight:600;font-size:14px;background:var(--fond)}
.v-pg .v-pg-bout.actif{background:var(--primaire);border-color:var(--primaire);color:var(--sur-primaire)}
.v-pg .v-pg-nav{height:40px;padding:0 14px;gap:6px;border:1px solid var(--bordure);border-radius:var(--rayon-btn);text-decoration:none;color:var(--texte);font-weight:600;font-size:14px;white-space:nowrap;background:var(--fond)}
.v-pg a.v-pg-nav:hover,.v-pg a.v-pg-bout:hover{border-color:var(--primaire);color:var(--primaire)}
.v-pg .v-pg-nav.inactif{opacity:.4}
.v-pg-saisie{display:flex;align-items:center;gap:6px;margin:0}
.v-pg-saisie label{display:flex;align-items:center;gap:6px;font-size:14px;white-space:nowrap;color:var(--texte-2,#555);margin:0}
.v-pg-saisie input{width:58px;height:40px;padding:0 6px;text-align:center;font:600 15px var(--police,inherit);border:1px solid var(--bordure);border-radius:var(--rayon-btn);background:var(--fond);color:var(--texte);-moz-appearance:textfield}
.v-pg-saisie input::-webkit-outer-spin-button,.v-pg-saisie input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.v-pg-saisie input:focus{outline:2px solid var(--primaire);outline-offset:1px}
.v-pg-ok{height:40px;padding:0 12px;border:0;border-radius:var(--rayon-btn);background:var(--primaire);color:var(--sur-primaire);font-weight:700;font-size:13px;cursor:pointer}
@media (max-width:600px){
  .v-pagination.v-pg{gap:5px}
  .v-pg .v-pg-nav>span{display:none}
  .v-pg .v-pg-nav{padding:0 12px;font-size:18px}
  .v-pg .v-pg-bout{min-width:36px;padding:0 8px;font-size:13px}
  .v-pg-saisie label{font-size:13px;gap:4px}
  .v-pg-saisie label>span:first-child{display:none}
  .v-pg-saisie input{width:50px}
  .v-pg-ok{padding:0 9px}
}

/* =====================================================================
   1.49.2 : fenetre d'ordinateur reduite -- menu resserre puis sur 2 lignes;
   le menu cellulaire (burger) reste reserve au format cellulaire.
   ===================================================================== */
.nav-serree .v-entete .v-nav>ul{gap:0}
.nav-serree .v-entete .v-nav a,.nav-serree.theme-vaisselier .v-entete .v-nav a{font-size:12px;letter-spacing:.04em;padding:7px 7px}
.nav-serree .v-entete .v-cta-entete{padding:0 12px}
.nav-2l .v-entete-in,.nav-2l.theme-vaisselier .v-entete-in{flex-wrap:wrap;row-gap:0;min-height:0;padding-top:8px}
.nav-2l .v-entete .v-logo{order:1}
.nav-2l .v-entete .v-outils{order:2;margin-left:auto}
.nav-2l .v-entete .v-nav{order:3;flex:1 0 100%;justify-content:center;padding:4px 0 6px;border-top:1px solid var(--bordure);margin-top:6px}
.nav-2l .v-entete .v-nav a.actif::after{bottom:1px}

/* 1.49.10 : fleche visible au bout de toutes les listes du site public (tri du catalogue, formulaires) */
html body select:not([multiple]){-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23857d75' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;background-size:16px 16px;padding-right:34px}
html body .v-barre-tri select{padding-right:28px;background-position:right 7px center;background-size:13px 13px}
