/* Gabarit « Vivant » (intentions : gabarits/vivant.js). */

@font-face{font-family:"DM Sans";font-weight:100 1000;font-display:swap;src:url(/fonts/f1.woff2) format("woff2");unicode-range:U+0100-02FF,U+0304,U+0308,U+0329,U+1D00-1EFF,U+20A0-20C0,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"DM Sans";font-weight:100 1000;font-display:swap;src:url(/fonts/f2.woff2) format("woff2")}
@font-face{font-family:"Fraunces";font-style:italic;font-weight:100 900;font-display:swap;src:url(/fonts/f5.woff2) format("woff2")}
@font-face{font-family:"League Gothic";font-display:swap;src:url(/fonts/enseigne-1.woff2) format("woff2")}
@font-face{font-family:"League Gothic";font-display:swap;src:url(/fonts/enseigne-2.woff2) format("woff2");unicode-range:U+2009-2011,U+202F,U+2190-2199}
@font-face{font-family:"Vivant secours";src:local("Arial Narrow"),local("ArialNarrow");size-adjust:66%;ascent-override:147%;descent-override:35%}
/* Palettes : texte et fond passent AA ; flamme : décor. */
.r--g-vivant,.r--g-vivant.r--rouge{--nuit:#1C1411;--clair:#F7EEE4;--clair-2:#C9B8AA;--vif:#FF917B;--creme:#F6EDE1;--encre:#211712;--encre-2:#6A5446;--fonce:#8E1917;
--aplat:#B0201E;--sur-aplat:#F7EEE4;--sur-aplat-2:#F4D9C8;--store:#7E1614;--cta:#B0201E;--sur-cta:#F7EEE4;--flamme:#FFA23A;--scene:#861A17;--accent:#FFA23A}
.r--g-vivant.r--or{--nuit:#1B160F;--clair:#F7EFE2;--clair-2:#C9BBA5;--vif:#EDB660;--creme:#F6EEDF;--encre:#211910;--encre-2:#6A5640;--fonce:#7A4F13;
--aplat:#E6AC52;--sur-aplat:#1B160F;--sur-aplat-2:#4A3A22;--store:#96601A;--cta:#EDB660;--sur-cta:#1B160F;--flamme:#FFC56B;--scene:#6B4410;--accent:#FFC56B}
.r--g-vivant.r--olive{--nuit:#141810;--clair:#F1F0E4;--clair-2:#BFC2AE;--vif:#B7D183;--creme:#F2F0E3;--encre:#1A1D14;--encre-2:#545A45;--fonce:#3C5222;
--aplat:#4F6B2E;--sur-aplat:#F1F0E4;--sur-aplat-2:#E3ECCF;--store:#3C5222;--cta:#B7D183;--sur-cta:#141810;--flamme:#F2B84B;--scene:#32481E;--accent:#F2B84B}
.r--g-vivant.r--ardoise{--nuit:#10151C;--clair:#EEF0F2;--clair-2:#B6BFCB;--vif:#A3C1E6;--creme:#F3F0EA;--encre:#141A22;--encre-2:#4E5A69;--fonce:#233A55;
--aplat:#2F4A6B;--sur-aplat:#EEF0F2;--sur-aplat-2:#D8E3F1;--store:#233A55;--cta:#A3C1E6;--sur-cta:#10151C;--flamme:#F59A4E;--scene:#1F3A59;--accent:#F59A4E}

.r--g-vivant,.v-s-nuit{--fond:var(--nuit);--texte:var(--clair);--texte-2:var(--clair-2);--relief:var(--accent);--b-fond:var(--cta);--b-texte:var(--sur-cta);--filet:color-mix(in srgb,var(--clair) 17%,#0000)}
.v-s-creme{--fond:var(--creme);--texte:var(--encre);--texte-2:var(--encre-2);--relief:var(--fonce);--b-fond:var(--nuit);--b-texte:var(--clair);--filet:color-mix(in srgb,var(--encre) 16%,#0000)}
.v-s-aplat,.v-marche--jour{--fond:var(--aplat);--texte:var(--sur-aplat);--texte-2:var(--sur-aplat-2);--relief:var(--sur-aplat);--b-fond:var(--nuit);--b-texte:var(--clair);--filet:color-mix(in srgb,var(--sur-aplat) 30%,#0000)}
.v-s-nuit,.v-s-creme,.v-s-aplat,.v-marche--jour{background:var(--fond);color:var(--texte)}
/* Le grain : un calque sous le contenu (jamais le fond lui-même : le relevé des contrastes lit le fond). */
.v-rub,.v-contact{position:relative;isolation:isolate}
.v-rub::before,.v-contact::before,.v-tete::before{content:"";position:absolute;inset:0;z-index:-2;background:var(--grain) 0 0/240px;mix-blend-mode:overlay;pointer-events:none}
.v-tete::after{content:"";position:absolute;inset:0;z-index:-2;background:radial-gradient(130% 90% at 30% 35%,#0000 50%,rgb(0 0 0/.4));pointer-events:none}
.v-tete{--fond:var(--scene);--texte:var(--clair);--texte-2:var(--clair-2);--relief:var(--accent);--b-fond:var(--accent);--b-texte:var(--nuit);--filet:color-mix(in srgb,var(--clair) 24%,#0000)}

.r--g-vivant{--grain:url(/gabarits/vivant-grain.svg);--cond:"League Gothic","Vivant secours",Impact,"Arial Narrow",sans-serif;--marge:clamp(1rem,4.5vw,3.5rem);--pas:clamp(3.75rem,8vw,6.25rem);margin:0;background:var(--nuit);color:var(--clair);overflow-x:clip;overflow-wrap:anywhere;
font:1.0625rem/1.6 "DM Sans",system-ui,sans-serif;font-variant-numeric:tabular-nums;-webkit-text-size-adjust:100%;text-size-adjust:100%}
:root:has(.v-appel){scroll-padding-bottom:6rem}
:where(.r--g-vivant) *{box-sizing:border-box}
:where(.r--g-vivant) img{display:block;max-width:100%;height:auto}
:where(.r--g-vivant) a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}
:where(.r--g-vivant) :is(p,ul,ol,h1,h2,h3){margin:0}
.r--g-vivant :focus-visible{outline:3px solid var(--focus,var(--texte));outline-offset:3px;border-radius:6px}
.v-cache{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.v-nom,.v-titre,.v-marche__jour,.v-tel{font-family:var(--cond);font-weight:400;line-height:.92;letter-spacing:.012em;text-transform:uppercase;text-wrap:balance;font-synthesis:none}

.v-actions{display:flex;flex-wrap:wrap;gap:.65rem}
.v-btn,.v-direct,.v-marque-jour,.v-appel a,.v-nav a{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;text-decoration:none}
.v-btn{flex-wrap:wrap;column-gap:.4em;min-height:3.25rem;padding:.65rem 1.3rem;border:2px solid #0000;font-weight:700;line-height:1.25;text-align:center}
.v-btn--cta{background:var(--b-fond);color:var(--b-texte)}
.v-btn--contour{border-color:currentColor;color:var(--texte)}
.v-btn:hover{background:var(--texte);border-color:var(--texte);color:var(--fond)}
.v-btn__num{font-weight:500;white-space:nowrap}
.v-btn--appel{flex-wrap:nowrap;gap:0;padding:0;overflow:hidden;border:0;background:var(--nuit);color:var(--clair)}
.v-btn__lib{display:inline-flex;align-items:center;align-self:stretch;gap:.55rem;padding:0 1.25rem 0 1.1rem;background:var(--accent);color:var(--nuit);font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.v-btn--appel .v-btn__num{padding:0 1.4rem;font-weight:600;letter-spacing:.04em}
.v-btn--appel:hover{background:var(--clair);color:var(--nuit)}
.v-fleche{display:inline-flex;align-items:center;gap:.55rem;min-height:44px;font-weight:700;text-decoration:none}
.v-fleche::after{content:"";width:.5rem;height:.5rem;border:solid currentColor;border-width:2px 2px 0 0;rotate:45deg}
.v-fleche:hover,.v-direct:hover,.v-nav a:hover{text-decoration:underline}
.v-point{position:relative;display:inline-block;flex:none;width:.6em;height:.6em;border-radius:50%;background:var(--flamme)}
.v-point::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--flamme);opacity:0}
.v-defile__piste li::before,.v-services li::before,.v-illus::before{content:"";flex:none;width:.5em;height:.5em;background:currentColor;clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%)}

/* La scène du premier écran : un fond profond de la couleur, du grain, une photo découpée par une courbe en S, un tampon à la jonction, un bandeau noir au pied. */
.v-tete{--ph:0px;position:relative;isolation:isolate;display:flex;flex-direction:column;min-height:100svh;padding-top:calc(var(--ph) + .15rem);overflow:clip;
background:var(--fond);color:var(--texte)}
.v-tete--sans{--ph:11rem}
.v-tete--sans:has(.v-logo){--ph:14rem}
.v-tete__photo{position:absolute;inset:0 0 auto;height:var(--ph);z-index:-1;overflow:hidden;background:var(--nuit);
clip-path:polygon(0 0,100% 0,100% 93.5%,95% 92.3%,90% 90.9%,85% 89.5%,80% 88.3%,75% 87.3%,70% 86.7%,65% 86.5%,60% 86.8%,55% 87.4%,50% 88.5%,45% 89.7%,40% 91.1%,35% 92.5%,30% 93.7%,25% 94.7%,20% 95.3%,15% 95.5%,10% 95.2%,5% 94.6%,0 93.5%)}
.r--g-vivant .v-tete__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 38%}
.v-tete__photo::after{content:"";position:absolute;inset:0;background:linear-gradient(rgb(0 0 0/.66),rgb(0 0 0/.3) 5.5rem,#0000 11rem 72%,rgb(0 0 0/.3))}
.v-tete__haut{position:absolute;inset:0 0 auto;z-index:2;display:flex;flex-direction:column;align-items:flex-start;gap:.7rem;padding:.85rem var(--marge) 0}
.v-tete--sans .v-tete__haut{padding-top:4.2rem}
.v-barre{order:-1;display:flex;align-items:center;flex-wrap:wrap;gap:.5rem .9rem;max-width:100%}
.v-marque{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;max-width:36rem;font-size:.78rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;text-shadow:0 1px 12px rgb(0 0 0/.55)}
.v-marque span{font:italic 500 1.2rem "Fraunces",Georgia,serif;letter-spacing:0;text-transform:none}
.v-nav{display:none}
.v-tete__corps{position:relative;z-index:1;max-width:62rem;padding:.4rem var(--marge) .75rem}
.v-direct,.v-marque-jour{gap:.55rem;background:var(--nuit);color:var(--clair);line-height:1.3}
.v-direct{min-height:44px;padding:.4rem 1.05rem .4rem .8rem;background:rgb(17 11 9/.92);font-size:.92rem;font-weight:600}
.v-epingle{position:relative;flex:none;width:.95rem;height:.95rem;margin:-.1rem .15rem 0;border-radius:50% 50% 50% 0;rotate:-45deg;background:radial-gradient(circle,#0000 0 .14rem,var(--accent) .15rem)}
.v-direct--jour .v-epingle::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--accent);opacity:0}
.v-nom{--k:1;--tw:27vw;margin-bottom:1.1rem;font-size:min(calc(var(--k)*var(--tw)),calc(var(--k)*8.5rem));line-height:.88}
.v-nom--l{--k:.74}.v-nom--m{--k:.56}.v-nom--s{--k:.42}
.v-ligne{display:block}
.v-ligne--accent{color:var(--accent)}
.v-mot{display:inline-block;max-width:100%}
.v-accroche{max-width:34rem;margin-bottom:1.5rem;font-size:clamp(1.1rem,4.2vw,1.35rem);line-height:1.45;text-wrap:pretty}
.v-accroche::before{content:"";display:block;width:3.5rem;height:3px;margin-bottom:1rem;background:var(--accent)}
.v-apercu-note{margin-top:1.25rem;font-size:.85rem;font-weight:600}
.v-tete__decor{position:absolute;inset:0;z-index:-1;overflow:hidden}
.v-store{position:absolute;inset:0 0 auto;height:3.6rem;background:repeating-linear-gradient(90deg,var(--store) 0 2.25rem,var(--creme) 0 4.5rem);
mask:radial-gradient(circle at 50% 0,#000 1.12rem,#0000 1.16rem) 0 100%/2.25rem 1.125rem repeat-x,linear-gradient(#000 0 0) 0 0/100% calc(100% - 1.125rem) no-repeat}
.v-braise{position:absolute;right:-50%;top:-14%;width:125%;aspect-ratio:1;border-radius:50%;background:radial-gradient(closest-side,color-mix(in srgb,var(--flamme) 60%,#0000),#0000);opacity:.6}
/* Le tampon : sur la courbe, à droite de la photo au téléphone. */
.v-sceau{position:absolute;z-index:3;top:max(5rem,calc(var(--ph) - 5.8rem));right:var(--marge);width:5.6rem;height:5.6rem;overflow:visible}
.v-tete--sans .v-sceau{position:relative;order:-1;top:auto;right:auto;align-self:flex-end;width:8.5rem;height:8.5rem;margin:1rem var(--marge) 0 0}
.v-sceau__disque{fill:var(--nuit)}
.v-sceau__trait{fill:none;stroke:var(--accent);stroke-width:.9}
.v-sceau__texte{fill:var(--clair);font-size:10.5px;font-weight:800;letter-spacing:.06em}
.v-sceau__flamme{fill:var(--accent)}
.v-sceau__tour{transform-origin:60px 60px}
/* Le panneau « en bref » : sur ordinateur seulement. */
.v-faits{display:none;margin:0;padding:.95rem 0;list-style:none;border:1px solid rgb(255 255 255/.14);border-radius:1.1rem;background:rgb(14 9 8/.78);backdrop-filter:blur(10px)}
.v-faits li{display:grid;justify-items:center;align-content:start;gap:.35rem;min-width:9.5rem;max-width:13rem;padding:.1rem 1.3rem;text-align:center;font-size:.78rem;font-weight:800;line-height:1.25;letter-spacing:.09em;text-transform:uppercase}
.v-faits li+li{border-left:1px solid rgb(255 255 255/.2)}
.v-fait__a{color:var(--clair)}
.v-fait__b{color:var(--accent)}
.v-ico{width:1.75rem;height:1.75rem;fill:none;stroke:var(--accent);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.v-ico--tel{width:1.15rem;height:1.15rem;fill:currentColor;stroke:none}
/* Le bandeau noir, au pied de la scène : les marchés (posé : trois au plus, sans pause). */
.v-defile{order:4;position:relative;z-index:1;margin-top:auto;overflow:clip;background:color-mix(in srgb,var(--nuit) 62%,#000);color:var(--clair);border-block:1px solid color-mix(in srgb,var(--accent) 50%,#0000);--focus:var(--clair)}
.v-defile__bande{display:flex;align-items:center;min-height:3.5rem}
.v-defile__fenetre{display:flex;flex:1;min-width:0;overflow:hidden}
.v-defile__piste{flex:1 1 100%;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:.3rem 0;padding:.5rem 0;list-style:none}
.v-defile__piste li{display:flex;align-items:center;gap:.5em;padding:0 .9rem;font-size:.84rem;font-weight:700;line-height:1.25;letter-spacing:.13em;text-transform:uppercase}
.v-defile__piste li::before{margin-right:1.1rem;color:var(--accent)}
.v-defile__piste b{font-weight:800}
.v-defile__jour{color:var(--accent)}
.v-defile__piste li:is([aria-hidden],:nth-child(n+4)),.v-defile__piste li::before,.v-defile__double,.v-pause{display:none}
.v-pause{flex:none;appearance:none;width:44px;height:44px;margin:0 var(--marge) 0 .4rem;border:2px solid var(--accent);border-radius:50%;color:var(--accent);cursor:pointer;
background:linear-gradient(currentColor 0 0) 13px 12px/5px 16px no-repeat,linear-gradient(currentColor 0 0) 22px 12px/5px 16px no-repeat}
.v-pause:checked{background:conic-gradient(from 240deg at 100% 50%,currentColor 0 60deg,#0000 0) 15px 12px/14px 16px no-repeat}
/* Deux surfaces pareilles : un intervalle. */
.v-rub__in,.v-contact__in,.v-pied__in{width:min(78rem,100%);margin-inline:auto;padding-inline:var(--marge)}
.v-rub,.v-contact{padding-block:var(--pas)}
:is(.v-s-nuit+.v-s-nuit,.v-s-creme+.v-s-creme,.v-s-aplat+.v-s-aplat):not(.v-rub--fin){padding-top:0}
.v-sur{display:flex;align-items:center;gap:.7rem;margin-bottom:.9rem;color:var(--relief);font:italic 1.2rem/1.3 "Fraunces",Georgia,serif}
.v-sur::after,.v-contact--seul .v-sur::before{content:"";flex:0 0 3.5rem;height:1px;background:currentColor;transform-origin:left}
.v-titre{margin-bottom:2.25rem;font-size:clamp(3rem,13vw,6.6rem)}
.v-texte{max-width:38rem}
.v-texte p{margin-bottom:1em;hyphens:auto;text-wrap:pretty}
.v-texte p:last-child{margin-bottom:0}
.v-texte--grand p:first-child{font-size:clamp(1.3rem,4.8vw,1.7rem);font-weight:500;line-height:1.38;letter-spacing:-.012em;hyphens:manual}
.v-note{margin-top:1.5rem;color:var(--relief);font-weight:700}
.v-rub--evenements .v-actions{margin-top:2.25rem}

.v-marches,.v-horaires,.v-carte__liste,.v-galerie,.v-services,.v-reseaux{padding:0;list-style:none}
.v-marches,.v-horaires{border-top:1px solid var(--filet)}
.v-marche{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"jour jour" "lieu lieu" "heures lien";align-items:center;gap:.4rem 1rem;padding:1.4rem 0 1rem;border-bottom:1px solid var(--filet)}
.v-marche__jour{grid-area:jour;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1rem;font-size:clamp(2.6rem,11vw,4.2rem)}
.v-marche__lieu{grid-area:lieu}
.v-marche__lieu strong{font-size:1.3rem;letter-spacing:-.01em}
.v-marche__lieu span{color:var(--texte-2)}
.v-marche__heures{grid-area:heures;font-weight:600}
.v-marche .v-fleche{grid-area:lien;justify-self:end}
.v-marche--jour{margin-inline:calc(-1*var(--marge));padding-inline:var(--marge);border-bottom-color:#0000}
.v-marche--jour+.v-marche--jour{box-shadow:inset 0 1px var(--filet)}
.v-marque-jour{gap:.5rem;padding:.3rem .8rem .3rem .65rem;font:700 .9rem/1.3 "DM Sans",system-ui,sans-serif;letter-spacing:0;text-transform:none}

.v-boutique{display:grid;gap:2.5rem}
.v-adresse{font-size:clamp(1.35rem,5vw,1.75rem);font-weight:700;line-height:1.3;letter-spacing:-.015em}
.v-boutique__adresse .v-fleche{margin-top:.5rem}
.v-horaires li{display:flex;flex-wrap:wrap;align-items:baseline;gap:.3rem .6rem;padding:.8rem 0;border-bottom:1px solid var(--filet)}
.v-horaires em{font:italic 1.05rem "Fraunces",Georgia,serif}
.v-horaires__h{margin-left:auto;text-align:right}
.v-horaires--ferme :is(b,.v-horaires__h){color:var(--texte-2);font-weight:400}
.v-horaires--jour{color:var(--relief)}
.v-horaires--jour .v-horaires__h{font-weight:700}

.v-carte__groupe+.v-carte__groupe{margin-top:3rem}
.v-carte--longue .v-carte__groupe--court{break-inside:avoid}
.v-carte__cat{margin-bottom:.4rem;padding-bottom:.6rem;border-bottom:3px solid var(--texte);color:var(--relief);font-size:clamp(1.5rem,6vw,2rem);font-weight:800;line-height:1.1;letter-spacing:-.03em;break-after:avoid}
.v-plat{padding:1rem 0 1.05rem;border-bottom:1px solid var(--filet);break-inside:avoid}
.v-plat__ligne{display:flex;align-items:baseline;justify-content:space-between;gap:1.25rem}
.v-plat__nom{flex:1 1 auto;min-width:0;font-size:1.2rem;font-weight:700;line-height:1.3;letter-spacing:-.01em}
.v-plat__prix{flex:none;max-width:48%;font-size:1.15rem;font-weight:800;text-align:right}
.v-plat__desc{max-width:34rem;margin-top:.3rem;color:var(--texte-2)}
.v-plat__allergenes{margin-top:.35rem;color:var(--texte-2);font-size:.88rem}

.v-galerie{display:flex;gap:.75rem;margin:0 calc(-1*var(--marge));padding:0 var(--marge) .25rem;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--marge);scrollbar-width:none;overscroll-behavior-x:contain}
.v-photo{flex:none;scroll-snap-align:start}
.v-photo img{width:auto;height:min(64svh,26rem);max-width:84vw;object-fit:cover;border-radius:.6rem}
/* L'illustration : de biais, l'étoile au coin. */
.v-illus{position:relative;width:min(70%,19rem);margin:2.5rem 0 0 auto;rotate:2deg}
.v-rub__tete+.v-illus{margin-bottom:2.5rem}
.v-illus--g{margin-inline:0 auto;rotate:-2deg}
.v-illus--h{width:min(88%,26rem)}
.v-illus img{width:100%;aspect-ratio:4/5;max-height:45svh;object-fit:cover;object-position:50% 35%;border-radius:.6rem}
.v-illus--h img{aspect-ratio:3/2}
.v-illus::before{position:absolute;top:-.75rem;right:-.5rem;width:1.9rem;height:1.9rem;color:var(--flamme)}
.v-illus--g::before{right:auto;left:-.5rem}

.v-contact__in{display:grid;gap:2.75rem}
.v-tel{margin-bottom:1.5rem;font-size:clamp(3.2rem,17vw,7.4rem);white-space:nowrap}
.v-tel a{text-decoration:none}
.v-tel a:hover{text-decoration:underline 3px}
.v-tel--vide{color:var(--texte-2)}
.v-contact--seul .v-contact__in{justify-items:center;text-align:center}
.v-contact--seul :is(.v-sur,.v-actions){justify-content:center}
.v-contact__infos{display:grid;gap:1.5rem;align-content:start}
.v-services{display:grid;gap:.45rem}
.v-services li{display:flex;align-items:center;gap:.75rem;font-weight:600}
.v-adresse--contact{font-size:1.2rem}
.v-contact__lien{margin-top:-1rem}
.v-reseaux{display:flex;flex-wrap:wrap;gap:0 1.75rem}
.v-reseau{display:inline-flex;align-items:center;min-height:44px;font-weight:700}

.v-appel{position:fixed;z-index:20;inset:auto 0 0;display:flex;gap:.5rem;padding:.6rem var(--marge) calc(.6rem + env(safe-area-inset-bottom));background:var(--nuit);border-top:1px solid var(--filet)}
.v-appel a{flex:1;min-height:3.1rem;font-weight:800}
.v-appel>:first-child{background:var(--cta);color:var(--sur-cta)}
.v-appel>*+*{border:2px solid var(--clair);color:var(--clair)}
.v-pied{padding-block:2.5rem;color:var(--clair-2);font-size:.92rem;border-top:1px solid color-mix(in srgb,var(--accent) 40%,#0000)}
.v-appel~.v-pied{padding-bottom:calc(6.5rem + env(safe-area-inset-bottom))}
.v-pied__in{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem 2rem}
.v-pied__nom{color:var(--clair);font-weight:700}
.v-pied__nom span{color:var(--clair-2);font-weight:400}
.v-pied a{display:inline-flex;align-items:center;min-height:44px}

/* La galerie après une rubrique fermée par son illustration : 40 % d'écran entre les deux images (LE CONTRAT). */
#photos.v-rub--apres-image{padding-top:calc(var(--pas) + 2rem)}
@media (max-width:59.99rem){
.v-tete--vertical{--ph:clamp(17rem,50svh,34rem)}
.v-tete--horizontal{--ph:max(75vw,19.5rem);min-height:0}
.v-tete--f-large{--ph:max(56.25vw,19.5rem)}
.r--g-vivant:has(.v-appel) .v-tete:not(.v-tete--horizontal){min-height:calc(100svh - 4.3rem - env(safe-area-inset-bottom))}
.r--g-vivant:has(.v-appel) .v-tete__corps .v-actions{display:none}
.v-rub .v-btn{flex:1 1 100%}
.v-btn--deux{border-radius:1.6rem}
.v-btn--deux .v-btn__num{flex-basis:100%;font-size:1.25em;font-weight:800}
#photos.v-rub--apres-image{padding-top:max(var(--pas),40svh - var(--pas) + 2rem)}
}

@media screen and (min-width:60rem){
.r--g-vivant{font-size:1.125rem}
.v-tete{--px:50%;--ph:0px;--courbe:polygon(100% 0,15.8% 0%,17.8% 4%,19.4% 8%,20.5% 12%,21% 16%,20.8% 20%,20.1% 24%,18.7% 28%,16.9% 32%,14.7% 36%,12.3% 40%,9.8% 44%,7.3% 48%,5.1% 52%,3.3% 56%,2% 60%,1.2% 64%,1% 68%,1.5% 72%,2.5% 76%,4.1% 80%,6.2% 84%,8.5% 88%,11% 92%,13.5% 96%,15.8% 100%,100% 100%);display:grid;grid-template:auto minmax(0,1fr) auto/minmax(0,var(--px)) minmax(0,1fr);padding:0;min-height:max(100svh,41rem)}
.v-tete--sans{--px:58%}
.v-tete__photo{inset:0 0 3.5rem var(--px);height:auto;
clip-path:var(--courbe)}
.v-tete__photo::after{background:linear-gradient(0deg,rgb(0 0 0/.55),#0000 42%),linear-gradient(90deg,rgb(0 0 0/.3),#0000 24%)}
.v-tete__haut{position:relative;inset:auto;grid-area:1/1;gap:1.1rem;padding:1.9rem var(--marge) 0}
.v-tete--sans .v-tete__haut{padding-top:5.4rem}
.v-barre{order:0;gap:.6rem 1.25rem}
.v-marque{display:none}
.v-nav{display:flex;align-items:center}
.v-nav a{position:relative;flex:none;white-space:nowrap;min-height:44px;padding:0 .85rem;font-size:.76rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}
.v-nav a+a::before{content:"";position:absolute;left:0;top:50%;width:1px;height:1.1rem;translate:0 -50%;background:var(--accent)}
.v-tete__corps{grid-area:2/1;align-self:center;padding:1.5rem var(--marge)}
.v-nom{--tw:12.4vw;font-size:min(calc(var(--k)*var(--tw)),calc(var(--k)*22svh))}
.v-faits{display:grid;grid-auto-flow:column;grid-area:2/2;align-self:end;justify-self:end;z-index:2;margin:0 var(--marge) 1.9rem 0}
.v-defile{grid-area:3/1/4/3;margin-top:0;height:3.5rem}
.v-defile__bande{height:100%;min-height:0}
.v-defile__piste{padding:0}
.v-sceau{top:calc((100% - 3.5rem)*.42 - 4.5rem);right:auto;left:calc(var(--px) + (100% - var(--px))*.11 - 4.5rem);width:9rem;height:9rem}
.v-braise{right:-14%;top:50%;width:72%;translate:0 -50%}
.v-tete--sans .v-tete__decor::before{content:"";position:absolute;inset:0 0 3.5rem var(--px);clip-path:var(--courbe);background:repeating-conic-gradient(at 70% 50%,#0000 0 5deg,rgb(0 0 0/.1) 5deg 10deg),linear-gradient(120deg,color-mix(in srgb,var(--scene) 60%,#000),var(--scene))}
.v-tete--sans .v-sceau{position:absolute;order:0;margin:0;top:50%;right:calc(var(--marge) + 5vw);left:auto;width:clamp(12rem,20vw,17rem);height:auto;aspect-ratio:1;translate:0 -50%}


.v-rub--duo>.v-rub__in{display:grid;grid:auto 1fr/minmax(0,5fr) minmax(0,7fr);align-items:start;gap:0 clamp(2.5rem,6vw,7rem)}
.v-rub--duo .v-rub__tete{position:sticky;top:2.5rem}
.v-rub--duo .v-titre{font-size:clamp(3rem,5.6vw,5.4rem)}
.v-rub--duo .v-rub__corps{grid-area:1/2/3;padding-top:.4rem}
.v-rub--large .v-titre{margin-bottom:3rem}
/* L'illustration à côté du texte ; en bas après une image. */
.v-rub .v-illus{width:17rem}
.v-rub .v-illus img{aspect-ratio:5/4}
.v-rub--duo .v-illus{grid-area:2/1;justify-self:end;margin:0 .5rem 2.5rem}
.v-rub--duo .v-illus--g{justify-self:start}
.v-rub--illus .v-rub__tete{position:static}
.v-rub--illus.v-rub--large>.v-rub__in{display:grid;grid:auto/auto minmax(0,1fr) auto;align-items:end}
.v-rub--large .v-rub__tete{grid-column:2}
.v-rub--large .v-rub__corps{grid-column:1/-1}
.v-rub--large .v-illus{grid-area:1/3;margin:0 1.5rem 3rem}
.v-rub--large .v-illus--g{grid-column:1}
.v-rub--fin.v-rub--large .v-rub__tete{grid-column:1/-1}
.v-rub--fin .v-rub__corps{grid-column:2}
.v-rub--fin .v-illus{grid-row:2;align-self:end;margin:max(2.5rem,40svh - 2*var(--pas) - 6rem) 0 0 3rem}
.v-rub--fin .v-illus--g{margin-inline:0 3rem}
.v-marche{grid-template:"jour lieu heures lien"/minmax(0,15rem) minmax(8rem,1fr) minmax(0,12rem) auto;gap:1.5rem;padding:1.6rem 0}
.v-marche__jour{font-size:clamp(2.6rem,4vw,3.8rem)}
.v-marche__heures{text-align:right}
.v-marche--jour{margin-inline:-1.5rem;padding-inline:1.5rem;border-radius:.75rem}
.v-carte--longue{columns:2;column-gap:clamp(3rem,6vw,6.5rem)}
.v-galerie{flex-wrap:wrap;justify-content:center;gap:1rem;margin:0;padding:0;overflow:visible}
.v-photo{flex:0 1 calc((100% - 2rem)/3);aspect-ratio:4/5}
.v-galerie:has(>:nth-child(4):last-child) .v-photo{flex-basis:calc((100% - 3rem)/4)}
.v-photo:only-child{flex-basis:min(100%,46rem);aspect-ratio:auto}
.v-photo img{width:100%;height:100%;max-width:none;max-height:36rem}
.v-contact__in{grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:end;column-gap:clamp(2.5rem,6vw,7rem)}
.v-contact--seul .v-contact__in{grid-template-columns:1fr}
.v-tel{font-size:min(7rem,7vw)}
/* La pastille, en mouvement seulement. */
.v-appel{display:none;inset:auto 1rem 1.5rem auto;flex-direction:column;gap:.35rem;padding:.35rem;border:1px solid var(--filet);border-radius:1.8rem;box-shadow:0 18px 40px rgb(0 0 0/.35)}
.v-appel a{min-height:3rem;padding:0 .9rem;font-size:.9rem}
.v-appel~.v-pied{padding-bottom:2.5rem}
}

:root:has(>body.r--apercu){scrollbar-width:none}
/* Imprimée : noir sur blanc, la photo près du titre. */
@media print{
.r.r--g-vivant[class]{--scene:#fff;--accent:#000;--nuit:#fff;--clair:#000;--clair-2:#444;--vif:#000;--creme:#fff;--encre:#000;--encre-2:#444;--fonce:#000;--aplat:#fff;--sur-aplat:#000;--sur-aplat-2:#444;--cta:#fff;--sur-cta:#000}
.v-appel,.v-defile,.v-sceau,.v-nav,.v-faits,.v-marque,.v-tete__decor,.v-tete__photo::after,.v-illus::before,.v-tete::before,.v-tete::after,.v-rub::before,.v-contact::before{display:none}
.v-rub--illus>.v-rub__in{display:grid;grid:auto/1fr auto;align-items:end}
.v-rub--illus .v-rub__corps{grid-column:1/-1}
.v-rub .v-illus{grid-area:1/2;width:5cm;margin:0 0 2rem 1cm;rotate:none;break-after:avoid}
.v-tete{display:block;min-height:0;padding:0;background:none}
.v-tete__haut{position:static;padding:0 var(--marge);margin-bottom:1rem}
.v-tete__photo{position:relative;inset:auto;height:9cm;clip-path:none}
.v-rub,.v-contact{padding-block:1.5rem}
.v-rub__tete,.v-sur{break-after:avoid}
.v-marche,.v-horaires li{break-inside:avoid}
.v-tete :is(.v-nom,.v-accroche,.v-marque){text-shadow:none}
}
/* Le mouvement (écran seulement) */
@media screen and (prefers-reduced-motion:no-preference){
/* La seule boucle : la case pause l'arrête (WCAG 2.2.2). */
.v-defile__piste{flex:none;flex-wrap:nowrap;animation:v-defile 42s linear infinite}
.v-defile__piste li{white-space:nowrap}
.v-defile__piste li:is([aria-hidden],:nth-child(n+4)),.v-defile__double{display:flex}
.v-defile__piste li::before,.v-pause{display:block}
.v-defile__fenetre{mask:linear-gradient(90deg,#0000,#000 1.5rem calc(100% - 2.5rem),#0000)}
.v-defile--vif .v-defile__piste{animation-duration:30s}
.v-defile--lent .v-defile__piste{animation-duration:75s}
.v-defile:is(:hover,:focus-within,:has(:checked)) .v-defile__piste{animation-play-state:paused}
.v-tete__img{animation:v-approche 2.8s cubic-bezier(.2,.65,.2,1) both}
.v-mot{animation:v-mot .95s cubic-bezier(.2,.8,.2,1) .15s backwards}
.v-mot:nth-child(2){animation-delay:.25s}.v-mot:nth-child(3){animation-delay:.35s}.v-mot:nth-child(n+4){animation-delay:.45s}.v-ligne--accent .v-mot{animation-delay:.35s}
.v-tete__haut,.v-accroche,.v-tete__corps .v-actions,.v-faits{animation:v-apparait .8s ease-out var(--d,.05s) backwards}
.v-accroche{--d:.5s}.v-tete__corps .v-actions{--d:.65s}.v-faits{--d:.9s}
.v-sceau{animation:v-sceau 1.1s cubic-bezier(.2,.8,.2,1) .55s backwards}
.v-defile__bande{animation:v-bande 1s cubic-bezier(.2,.8,.2,1) .35s backwards}
.v-direct--jour .v-epingle::after{animation:v-bat 1.9s ease-out 1s 2}
.v-braise{animation:v-braise 4.5s ease-out .3s both}
.v-store{transform-origin:top;animation:v-store 1.1s cubic-bezier(.3,.7,.2,1) both}
.v-btn,.v-appel a,.v-nav a{transition:background .25s,color .25s,border-color .25s}
@supports (animation-timeline:view()){
.v-tete__img{animation:v-approche 2.8s cubic-bezier(.2,.65,.2,1) both,v-parallaxe linear both;animation-timeline:auto,scroll(root);animation-range:normal,0 100svh}
.v-sceau__tour{animation:v-tourne linear both;animation-timeline:scroll(root);animation-range:0 120svh}
.v-sur,.v-titre,.v-marche,.v-plat,.v-carte__cat,.v-horaires li,.v-texte>p,.v-boutique__adresse,.v-note,.v-rub__corps>.v-actions,.v-contact__in>div,.v-services li,.v-illus{animation:v-entre linear both;animation-timeline:view();animation-range:entry 0% entry 80%}
.v-titre{animation-name:v-titre}
.v-sur::after{animation:v-trait linear both;animation-timeline:view();animation-range:entry 30% cover 40%}
.v-photo{animation:v-photo linear both;animation-timeline:view(inline);animation-range:entry 0% entry 90%}
@media (min-width:60rem){.v-photo{animation-timeline:view();animation-range:entry 0% entry 80%}}
/* La pastille : du premier écran au contact. */
@media (min-width:90rem){@supports (timeline-scope:none){
.r--g-vivant{timeline-scope:--v-contact}
#contact{view-timeline:--v-contact}
.v-appel{display:flex;animation:v-barre linear both,v-part linear forwards;animation-timeline:scroll(root),--v-contact;animation-range:35svh 65svh,entry 0% entry 40%}
}}
}
}
@keyframes v-defile{to{translate:-100% 0}}
@keyframes v-approche{from{scale:1.16}}
@keyframes v-parallaxe{to{translate:0 16%}}
@keyframes v-mot{from{opacity:0;translate:0 .5em;clip-path:inset(0 -.1em 100% -.1em)} to{clip-path:inset(-.4em -.1em -.4em -.1em)}}
@keyframes v-apparait{from{opacity:0;translate:0 1rem}}
@keyframes v-sceau{from{opacity:0;scale:.6;rotate:-40deg}}
@keyframes v-bande{from{translate:30% 0;opacity:0}}
@keyframes v-tourne{to{rotate:1turn}}
@keyframes v-bat{from{opacity:.9} to{opacity:0;scale:2.8}}
@keyframes v-store{from{scale:1 0}}
@keyframes v-braise{from{opacity:0;scale:.85}}
@keyframes v-entre{from{opacity:0;translate:0 2rem}}
@keyframes v-titre{from{opacity:0;translate:0 .35em;clip-path:inset(0 -.1em 100% -.1em)} to{clip-path:inset(-.3em -.1em -.3em -.1em)}}
@keyframes v-trait{from{scale:0 1}}
@keyframes v-photo{from{opacity:.25;scale:.9}}
@keyframes v-barre{from{translate:0 150%;opacity:0;visibility:hidden}}
@keyframes v-part{to{translate:0 150%;opacity:0;visibility:hidden}}

/* Le logo (25/10/2026) : petit. Carré ou presque, un badge rond (un rond sur fond opaque ne laisse plus voir ses coins) ; large ou haut, plus petit encore ; sans dimensions, une case qui garde sa place. */
.v-logo{margin:0;line-height:0}
.v-logo img{display:inline-block;width:auto;max-width:min(13rem,62vw);max-height:clamp(3.5rem,15vw,4.5rem);object-fit:contain}
.v-logo--portrait img,.v-logo--haut img{max-height:clamp(4.25rem,18vw,5.25rem)}
.v-logo--inconnu img{width:7rem;height:4rem;object-position:left center}
.v-logo--carre{width:clamp(4.25rem,17vw,5rem);aspect-ratio:1;overflow:hidden;border-radius:50%;box-shadow:0 0 0 2px var(--accent),0 .4rem 1rem rgb(0 0 0/.3)}
.v-logo--carre img{width:100%;height:100%;max-width:none;max-height:none;aspect-ratio:1;object-fit:cover;scale:1.06}

/* Le parcours click & collect (11/10/2026) : la ligne de retrait sous le lieu du marché, « Choisir » en clair sur la nuit, le lien de fin dans la colonne. */
.r--g-vivant .v-marche>.cc-marche{grid-column:1/-1}
.r--g-vivant .v-s-nuit{--cc-bouton:var(--vif);--cc-sur-bouton:var(--nuit)}
.r--g-vivant .v-rub>.cc-suite{box-sizing:border-box;width:min(78rem,100%);margin:1.2rem auto 0;padding-inline:var(--marge)}
@media screen and (min-width:60rem){.r--g-vivant .v-marche>.cc-marche{grid-column:2/-1}}

/* CADRAGE DES PHOTOS : data-cx et data-cy, le point de la photo que le cadre garde visible (outils-dev/cadrage-css.mjs) */
img[data-cx],img[data-cy]{object-position:var(--cx,50%) var(--cy,50%)!important}img[data-cx="0"]{--cx:0%}img[data-cx="5"]{--cx:5%}img[data-cx="10"]{--cx:10%}img[data-cx="15"]{--cx:15%}img[data-cx="20"]{--cx:20%}img[data-cx="25"]{--cx:25%}img[data-cx="30"]{--cx:30%}img[data-cx="35"]{--cx:35%}img[data-cx="40"]{--cx:40%}img[data-cx="45"]{--cx:45%}img[data-cx="50"]{--cx:50%}img[data-cx="55"]{--cx:55%}img[data-cx="60"]{--cx:60%}img[data-cx="65"]{--cx:65%}img[data-cx="70"]{--cx:70%}img[data-cx="75"]{--cx:75%}img[data-cx="80"]{--cx:80%}img[data-cx="85"]{--cx:85%}img[data-cx="90"]{--cx:90%}img[data-cx="95"]{--cx:95%}img[data-cx="100"]{--cx:100%}img[data-cy="0"]{--cy:0%}img[data-cy="5"]{--cy:5%}img[data-cy="10"]{--cy:10%}img[data-cy="15"]{--cy:15%}img[data-cy="20"]{--cy:20%}img[data-cy="25"]{--cy:25%}img[data-cy="30"]{--cy:30%}img[data-cy="35"]{--cy:35%}img[data-cy="40"]{--cy:40%}img[data-cy="45"]{--cy:45%}img[data-cy="50"]{--cy:50%}img[data-cy="55"]{--cy:55%}img[data-cy="60"]{--cy:60%}img[data-cy="65"]{--cy:65%}img[data-cy="70"]{--cy:70%}img[data-cy="75"]{--cy:75%}img[data-cy="80"]{--cy:80%}img[data-cy="85"]{--cy:85%}img[data-cy="90"]{--cy:90%}img[data-cy="95"]{--cy:95%}img[data-cy="100"]{--cy:100%}
/* FIN DU CADRAGE DES PHOTOS */
