/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body,h1,h2,h3,h4,p,figure,blockquote,dl,dd,ol,ul,fieldset{margin:0}
ol,ul{padding:0;list-style:none}
img,picture,svg{display:block;max-width:100%}
img{height:auto}
input,button,textarea,select{font:inherit;color:inherit}
button{background:none;border:0;padding:0;cursor:pointer}
a{color:inherit}
table{border-collapse:collapse}
fieldset{border:0;padding:0;min-width:0}
/* ---------- Jetons ---------- */
/* Couleurs */
/* Typographie */
/* Espacements : une seule échelle */
/* Mise en page */
/* Mouvement */
/* Textures */
:root{
--c-linen:#F2EBDF;
--c-paper:#FAF6EE;
--c-flax:#E7DDCC;
--c-ink:#1B211D;
--c-muted:#55594F;
--c-fir:#24503A;
--c-fir-hover:#1B3F2D;
--c-fir-deep:#173428;
--c-slate:#2A2F2C;
--c-chalk:#EEE9DE;
--c-chalk-muted:#BDB8AB;
--c-honey:#E2B35C;
--c-oak:#6B4F33;
--c-line:#D2C6B2;
--c-line-strong:#7F7563;
--c-line-dark:rgb(238 233 222 / 0.18);
--c-error:#A1261E;
--f-display:"Young Serif", Georgia, "Times New Roman", serif;
--f-text:"Work Sans", "Helvetica Neue", Arial, sans-serif;
--step--1:clamp(0.875rem, 0.8505rem + 0.1087vw, 0.9375rem);
--step-0:clamp(1.0625rem, 1.038rem + 0.1087vw, 1.125rem);
--step-1:clamp(1.1875rem, 1.1141rem + 0.3261vw, 1.375rem);
--step-2:clamp(1.375rem, 1.2283rem + 0.6522vw, 1.75rem);
--step-3:clamp(1.625rem, 1.3804rem + 1.087vw, 2.25rem);
--step-4:clamp(1.875rem, 1.4348rem + 1.9565vw, 3rem);
--step-5:clamp(2.5rem, 1.7174rem + 3.4783vw, 4.5rem);
--step-6:clamp(3.25rem, 1.7826rem + 6.5217vw, 7rem);
--caption:0.8125rem;
--label:0.75rem;
--s-1:0.25rem;
--s-2:0.5rem;
--s-3:0.75rem;
--s-4:1rem;
--s-5:1.5rem;
--s-6:2rem;
--s-7:3rem;
--s-8:4rem;
--s-9:6rem;
--s-10:8rem;
--section-y:clamp(4rem, 2.8261rem + 5.2174vw, 7rem);
--gutter:clamp(1.25rem, 0.7609rem + 2.1739vw, 2.5rem);
--grid-gap:clamp(1.25rem, 0.9239rem + 1.4493vw, 2.5rem);
--container:78rem;
--measure:34rem;
--header-h:4.5rem;
--tap:2.75rem;
--radius:3px;
--ease:cubic-bezier(0.22, 0.61, 0.36, 1);
--ease-out:cubic-bezier(0.2, 0.7, 0.2, 1);
--dur:160ms;
--tex-craie:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
--trait-craie:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 10' preserveAspectRatio='none'%3E%3Cpath d='M2 6.6c17-2.9 37-4.1 57-3.3 20 .8 39 2.1 59 .9' fill='none' stroke='%23E2B35C' stroke-width='2.6' stroke-linecap='round'/%3E%3C/svg%3E")}
/* ---------- Base ---------- */
body{background:var(--c-linen);color:var(--c-ink);font:400 var(--step-0)/1.6 var(--f-text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
main{overflow-x:clip}
h1,h2,h3{font-family:var(--f-display);font-weight:400;color:var(--c-ink);text-wrap:balance}
h1{font-size:var(--step-5);line-height:1.02;letter-spacing:-0.02em}
h2{font-size:var(--step-4);line-height:1.08;letter-spacing:-0.015em}
h3{font-size:var(--step-2);line-height:1.18;letter-spacing:-0.005em}
p,li,dd{text-wrap:pretty}
strong{font-weight:600}
p a,li a,dd a{color:var(--c-fir);font-weight:500;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:0.2em}
p a:hover,li a:hover,dd a:hover{text-decoration-thickness:2px}
::selection{background:var(--c-honey);color:var(--c-ink)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:2px solid var(--c-fir);outline-offset:3px}
/* ---------- Mise en page ---------- */
.container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.section{padding-block:var(--section-y)}
.section--flax{background:var(--c-flax)}
.section__head{max-width:46rem;margin-bottom:var(--s-6)}
.section__head .lead{max-width:42rem}
.section__head h2{margin-top:var(--s-3)}
.lead{font:400 var(--step-1)/1.5 var(--f-text);color:var(--c-muted);max-width:var(--measure);margin-top:var(--s-4)}
.prose p{max-width:var(--measure);color:var(--c-muted)}
.prose p + p{margin-top:var(--s-4)}
/* ---------- Lien d'évitement ---------- */
.skip-link{position:absolute;left:var(--s-4);top:-6rem;z-index:30;display:inline-flex;align-items:center;min-height:var(--tap);padding:0 var(--s-5);background:var(--c-fir-deep);color:var(--c-chalk);font:600 1rem/1 var(--f-text);text-decoration:none;border-radius:var(--radius)}
.skip-link:focus{top:var(--s-3)}
/* ---------- Sprite ---------- */
.sprite{position:absolute;width:0;height:0;overflow:hidden}
/* ---------- Surtitre, légendes ---------- */
.kicker{font:600 var(--label)/1.3 var(--f-text);letter-spacing:0.14em;text-transform:uppercase;color:var(--c-fir)}
.kicker + h1,.kicker + h2{margin-top:var(--s-3)}
.legende{margin-top:var(--s-2);font:400 var(--caption)/1.35 var(--f-text);color:var(--c-muted)}
/* ---------- Boutons et liens ---------- */
.actions{display:flex;flex-wrap:wrap;gap:var(--s-3)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:3rem;padding:0 var(--s-5);border:1.5px solid transparent;border-radius:var(--radius);font:600 1rem/1.2 var(--f-text);text-decoration:none;text-align:center;transition:background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease)}
.btn svg{width:1.125rem;height:1.125rem;flex:none}
.btn--fir{background:var(--c-fir);color:var(--c-chalk)}
.btn--fir:hover{background:var(--c-fir-hover)}
.btn--ghost{border-color:var(--c-fir);color:var(--c-fir);background:transparent}
.btn--ghost:hover{background:var(--c-flax)}
.btn--chalk{background:var(--c-chalk);color:var(--c-fir-deep)}
.btn--chalk:hover{background:#FFFFFF}
.btn--ghost-chalk{border-color:rgb(238 233 222 / 0.7);color:var(--c-chalk)}
.btn--ghost-chalk:hover{background:rgb(238 233 222 / 0.1);border-color:var(--c-chalk)}
.btn--s{min-height:var(--tap);padding:0 var(--s-4);font-size:0.9375rem}
.lien{display:inline-flex;align-items:center;gap:0.4em;min-height:var(--tap);color:var(--c-fir);font:600 1rem/1.3 var(--f-text);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:0.3em}
.lien svg{width:1.1em;height:1.1em;flex:none;transition:transform var(--dur) var(--ease)}
.lien:hover{text-decoration-thickness:2px}
.lien:hover svg,.lien:focus-visible svg{transform:translateX(4px)}
/* ---------- En-tête ---------- */
.site-header{position:relative;z-index:10;background:var(--c-linen);border-bottom:1px solid var(--c-line)}
.header__bar{display:flex;flex-wrap:wrap;align-items:center;column-gap:var(--s-2);min-height:var(--header-h)}
.brand{display:inline-flex;align-items:center;gap:var(--s-2);min-height:var(--tap);margin-right:auto;padding-block:var(--s-2);text-decoration:none}
.brand__logo{width:auto;height:3.125rem}
.header__call{order:2}
.header__call-num{display:none}
.menu-btn{order:2;display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);min-width:var(--tap);min-height:var(--tap);padding:0 var(--s-3);border:1px solid var(--c-line-strong);border-radius:var(--radius);font:600 0.9375rem/1 var(--f-text);color:var(--c-ink)}
.menu-btn__icon{position:relative;width:18px;height:12px;flex:none}
.menu-btn__icon::before,.menu-btn__icon::after,.menu-btn__icon span{content:"";position:absolute;left:0;top:5px;width:18px;height:2px;background:currentColor;transition:transform var(--dur) var(--ease), opacity var(--dur) var(--ease)}
.menu-btn__icon::before{transform:translateY(-5px)}
.menu-btn__icon::after{transform:translateY(5px)}
.menu-btn[aria-expanded="true"] .menu-btn__icon::before{transform:rotate(45deg)}
.menu-btn[aria-expanded="true"] .menu-btn__icon span{opacity:0}
.menu-btn[aria-expanded="true"] .menu-btn__icon::after{transform:rotate(-45deg)}
.nav{order:3;flex-basis:100%}
.nav__list{display:flex;flex-wrap:wrap;column-gap:var(--s-5);padding-bottom:var(--s-2)}
.nav__link{display:flex;align-items:center;min-height:var(--tap);color:var(--c-ink);font:500 1rem/1.2 var(--f-text);text-decoration:none}
.nav__link[aria-current="page"]{color:var(--c-fir);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:0.35em}
.nav__extra{display:none}
/* Menu mobile, dans le flux (aucune superposition) */
.js .nav__list{display:none}
.js .nav__list.is-open{display:block;padding:var(--s-2) 0 var(--s-6);border-top:1px solid var(--c-line)}
.js .nav__list.is-open .nav__link{min-height:3.25rem;border-bottom:1px solid var(--c-line);font:400 1.625rem/1.1 var(--f-display)}
.js .nav__list.is-open .nav__extra{display:block;padding-top:var(--s-5)}
.nav__extra .btn{width:100%}
.nav__extra p{margin-top:var(--s-4);color:var(--c-muted);font-size:var(--step--1)}
/* ---------- Hero ---------- */
.hero{position:relative}
.hero__photo{position:relative;margin:0;overflow:hidden;background:var(--c-flax)}
.hero__photo img{width:100%;aspect-ratio:1 / 1;object-fit:cover;object-position:50% 30%}
.hero__inner{position:relative;margin-top:-3rem;padding-bottom:var(--s-8)}
.enseigne{position:relative;background:var(--c-paper);border:2px solid var(--c-fir);padding:var(--s-7) var(--s-5) var(--s-6);box-shadow:0 28px 48px -34px rgb(23 52 40 / 0.55)}
.enseigne::before,.carte-papier::before{content:"";position:absolute;inset:5px;border:1px solid rgb(36 80 58 / 0.4);pointer-events:none}
.enseigne__coucou{position:absolute;left:10%;top:-3.1rem;width:7.75rem;height:auto;aspect-ratio:120 / 48;color:var(--c-fir);overflow:visible}
.enseigne h1{font-size:var(--step-6);line-height:0.95;letter-spacing:-0.025em;white-space:nowrap}
.enseigne h1 .kicker{display:block;margin-bottom:var(--s-3);white-space:normal}
.enseigne__lede{margin-top:var(--s-5);max-width:36rem;font:400 var(--step-1)/1.5 var(--f-text);color:var(--c-ink)}
.enseigne .actions{margin-top:var(--s-6)}
.enseigne__jours{margin-top:var(--s-5);font-size:var(--step--1);color:var(--c-muted)}
/* Médaillon « cadran » : la photo ronde cerclée de 12 heures (une seule occurrence : le hero) */
.medaillon{--md:6.5rem;position:absolute;right:var(--gutter);bottom:calc(100% + var(--s-3));z-index:2;display:grid;justify-items:center;color:var(--c-ink);text-decoration:none}
.medaillon__cadran{position:relative;display:block;width:var(--md);aspect-ratio:1}
.medaillon__couronne{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.medaillon__fond{fill:var(--c-paper)}
.medaillon__anneau{fill:none;stroke:var(--c-fir);stroke-width:1.1}
.medaillon__heures{fill:none;stroke:var(--c-fir);stroke-width:1.5;stroke-linecap:round}
.medaillon picture{position:absolute;inset:8.333%;overflow:hidden;clip-path:circle(50% at 50% 50%)}
.medaillon__photo{width:100%;height:100%;object-fit:cover}
.medaillon__etiquette{position:relative;margin-top:calc(-1 * var(--s-2));padding:0.3rem 0.6rem;background:var(--c-paper);border:1px solid var(--c-fir);font:600 0.875rem/1.25 var(--f-text);white-space:nowrap}
.medaillon__maison,.medaillon__note{display:none}
.medaillon:hover .medaillon__plat{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:0.2em}
.medaillon:focus-visible{outline-offset:4px}
/* Cadran : l'info pratique sous le hero */
.cadran{margin-top:var(--s-7);border-top:1px solid var(--c-line)}
.cadran__item{padding-block:var(--s-4);border-bottom:1px solid var(--c-line)}
.cadran__label{font:600 var(--label)/1.2 var(--f-text);letter-spacing:0.12em;text-transform:uppercase;color:var(--c-muted)}
.cadran__value{display:block;margin-top:var(--s-2);font:400 var(--step-1)/1.3 var(--f-display);color:var(--c-ink);font-variant-numeric:lining-nums tabular-nums}
a.cadran__value{display:inline-flex;align-items:center;min-height:var(--tap);margin-top:var(--s-1);text-decoration:none}
.cadran__note{display:block;margin-top:var(--s-1);font-size:var(--step--1);color:var(--c-muted)}
a.cadran__value:hover{color:var(--c-fir);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:0.2em}
.cadran .lien{margin-top:var(--s-1);margin-bottom:calc(-1 * var(--s-2));font-size:0.9375rem;white-space:nowrap}
.cadran__item dd{display:flex;flex-direction:column;align-items:flex-start}
/* ---------- Ardoise ---------- */
.ardoise{position:relative;padding:var(--s-7) var(--s-5) var(--s-6);background-color:var(--c-slate);background-image:var(--tex-craie);color:var(--c-chalk);--frame:12px;border:var(--frame) solid var(--c-oak);box-shadow:inset 0 0 0 1px rgb(0 0 0 / 0.4), inset 0 0 48px rgb(0 0 0 / 0.35), 0 1px 0 rgb(255 255 255 / 0.5)}
.ardoise__coucou{position:absolute;top:calc(-1 * (var(--frame) + 3rem));right:var(--s-6);width:7.5rem;height:auto;aspect-ratio:120 / 48;color:var(--c-slate);overflow:visible}
.ardoise__titre{font:400 var(--step-3)/1.1 var(--f-display);color:var(--c-chalk)}
.ardoise__titre::after{content:"";display:block;width:7rem;height:0.6rem;margin-top:var(--s-2);background:var(--trait-craie) no-repeat center / 100% 100%}
.ardoise__groupe{break-inside:avoid;padding-top:var(--s-6)}
.ardoise__rubrique{font:600 var(--label)/1.3 var(--f-text);letter-spacing:0.16em;text-transform:uppercase;color:var(--c-honey)}
.ardoise__note{margin-top:var(--s-1);font-size:0.9375rem;line-height:1.45;color:var(--c-chalk-muted)}
.ardoise__plats{margin-top:var(--s-2)}
.ardoise__plats li,.tarifs li{display:grid;grid-template-columns:minmax(0, 1fr) auto;column-gap:var(--s-4);align-items:baseline;padding-block:var(--s-3);border-bottom:1px dashed var(--c-line-dark)}
.ardoise__plats li:last-child{border-bottom:0;padding-bottom:0}
.plat{display:block;font:400 1.25rem/1.3 var(--f-display);color:var(--c-chalk);font-variant-numeric:lining-nums}
.plat__detail{display:block;grid-column:1;margin-top:2px;font:400 0.9375rem/1.45 var(--f-text);color:var(--c-chalk-muted)}
.prix{grid-area:1 / 2;font:400 1.25rem/1.3 var(--f-display);color:var(--c-honey);font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}
.ardoise__pied{margin-top:var(--s-6);padding-top:var(--s-4);border-top:1px solid var(--c-line-dark);padding-right:max(0px, 100% - 44rem);font:400 0.9375rem/1.5 var(--f-text);color:var(--c-chalk-muted)}
.ardoise__pied a{color:var(--c-chalk)}
.ardoise a:focus-visible{outline-color:var(--c-chalk)}
/* Accueil : « La table », l'ardoise posée sur la table */
.section--carte{padding-top:var(--s-8)}
.carte-home{display:grid;gap:var(--s-6)}
.carte-home__texte .lead{max-width:36rem}
.carte-home__texte .lien{margin-top:var(--s-5)}
.carte-home__photo{margin:0 calc(-1 * var(--gutter))}
.carte-home__photo img{width:100%;aspect-ratio:4 / 3;object-fit:cover}
.carte-home .ardoise{z-index:1;margin-top:calc(-1 * (4rem + var(--s-6)));box-shadow:inset 0 0 0 1px rgb(0 0 0 / 0.4), inset 0 0 48px rgb(0 0 0 / 0.35), 0 28px 48px -30px rgb(23 52 40 / 0.6)}
.photo{margin:0}
.photo img{width:100%;height:auto;object-fit:cover}
.photo--45 img{aspect-ratio:4 / 5}
.photo--32 img{aspect-ratio:3 / 2}
/* ---------- La semaine du Coucou : vrai tableau, barres = habituellement ouvert ---------- */
.semaine-bloc{display:grid;gap:var(--s-7)}
.semaine__table{position:relative;z-index:0;width:calc(100% + 2 * var(--s-3));margin-inline:calc(-1 * var(--s-3));table-layout:fixed;font-variant-numeric:lining-nums}
.semaine__table caption{padding:0 var(--s-3) var(--s-4);text-align:left;font:600 var(--label)/1.3 var(--f-text);letter-spacing:0.12em;text-transform:uppercase;color:var(--c-muted)}
.semaine__table thead td{width:34%}
.semaine__table thead th{padding:0 var(--s-1) var(--s-3);text-align:left;font:400 var(--step-1)/1.15 var(--f-display);color:var(--c-ink)}
.semaine__table tbody tr{border-top:1px solid var(--c-line)}
.semaine__table tbody tr:last-child{border-bottom:1px solid var(--c-line)}
.semaine__table tbody th{position:relative;padding:var(--s-3);text-align:left;font:500 var(--step-0)/1.3 var(--f-text);color:var(--c-ink)}
.semaine__table td{position:relative;padding:0;vertical-align:middle}
.semaine__table td:last-child{padding-right:var(--s-3)}
.semaine__table tr:not(.is-ferme) td{vertical-align:top;padding-top:calc(var(--s-3) + (1.3em - 0.75rem) / 2)}
.semaine__table .is-ferme td{padding-left:var(--s-1);font-size:var(--step--1);color:var(--c-muted)}
/* « fermé » vaut pour toute la journée : filet pointillé sur les trois colonnes */
.ferme{display:flex;align-items:center;gap:var(--s-3)}
.ferme::before,.ferme::after{content:"";flex:1;border-top:1px dashed var(--c-line-strong)}
.semaine__table .is-ferme > *{vertical-align:baseline}
.jour-court{display:none;text-decoration:none}
.barre{display:block;height:0.75rem;margin-inline:3px;background:var(--c-fir);transform-origin:left center}
.is-continu td:nth-of-type(1) .barre{margin-right:0}
.is-continu td:nth-of-type(2) .barre{margin-inline:0}
.is-continu td:nth-of-type(3) .barre{margin-left:0}
.is-incertain .barre{background:repeating-linear-gradient(-45deg, var(--c-fir) 0 2px, transparent 2px 6px);box-shadow:inset 0 1px 0 var(--c-fir), inset 0 -1px 0 var(--c-fir)}
.semaine__ast{margin-left:0.1em;font-weight:600;color:var(--c-fir)}
.is-today > *::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--c-paper)}
.is-today th{font-weight:600}
.semaine__note{margin-top:var(--s-4);max-width:var(--measure);font-size:var(--step--1);color:var(--c-muted)}
.semaine__moments{border-top:1px solid var(--c-line)}
.semaine__moments li{padding-block:var(--s-5);border-bottom:1px solid var(--c-line)}
.semaine__moments h3{margin-top:var(--s-2);font-size:var(--step-2)}
.semaine__moments h3 + p{margin-top:var(--s-2);max-width:var(--measure);color:var(--c-muted)}
/* ---------- Avis clients (réels, sourcés) : aplat sapin profond, la note en affiche ---------- */
.avis-section{background:var(--c-fir-deep);color:var(--c-chalk)}
.avis-section .kicker{color:var(--c-honey)}
.avis-section h2{color:var(--c-chalk)}
.avis-section a{color:var(--c-chalk)}
.avis-section a:focus-visible{outline-color:var(--c-chalk)}
.avis-grille{display:grid;gap:var(--s-6)}
.avis__chiffre{font:400 clamp(6rem, 3rem + 10vw, 11rem)/0.9 var(--f-display);letter-spacing:-0.035em;color:var(--c-honey);font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}
.avis__sur{margin-left:0.06em;font-size:0.3em;letter-spacing:0;color:var(--c-chalk-muted)}
.avis__source{margin-top:var(--s-4);max-width:20rem;font-size:var(--step--1);line-height:1.55;color:var(--c-chalk)}
.avis__item{margin:0}
.avis__citation p{max-width:var(--measure);font:400 var(--step-1)/1.45 var(--f-display);color:var(--c-ink)}
.avis__auteur{margin-top:var(--s-4);font:600 var(--step--1)/1.4 var(--f-text);color:var(--c-ink)}
.avis__auteur span{font-weight:400;color:var(--c-muted)}
.avis-section .avis__citation p,.avis-section .avis__auteur{color:var(--c-chalk)}
.avis-section .avis__auteur span,.avis__pied{color:var(--c-chalk-muted)}
.avis__item--une .avis__citation p{max-width:40rem;font-size:var(--step-2);line-height:1.35}
.avis__liste{border-top:1px solid var(--c-line-dark)}
.avis__liste > li{padding-block:var(--s-5);border-bottom:1px solid var(--c-line-dark)}
.avis__pied{max-width:46rem;font-size:var(--step--1)}
/* ---------- Nous trouver + carte du coin ---------- */
.trouver{display:grid;gap:var(--s-7)}
.carte-coin{margin:0;background:var(--c-paper);border:1px solid var(--c-line)}
.carte-coin svg{width:100%;height:auto}
.carte-coin figcaption{padding:0 var(--s-4) var(--s-4);font:400 var(--caption)/1.4 var(--f-text);color:var(--c-muted)}
.carte-coin .lg{display:none}
.carte-coin .cc-anneaux circle{fill:none;stroke:var(--c-line);stroke-width:1.5;stroke-dasharray:3 7}
.carte-coin .cc-anneau-txt text{font:500 13px var(--f-text);fill:var(--c-muted)}
.carte-coin .cc-routes path{fill:none;stroke:var(--c-fir);stroke-width:3;stroke-linecap:round;opacity:0.5}
.carte-coin .cc-route-loin{fill:none;stroke:var(--c-fir);stroke-width:2.5;stroke-dasharray:1 8;stroke-linecap:round;opacity:0.6}
.carte-coin .cc-fleche path{fill:none;stroke:var(--c-muted);stroke-width:2;stroke-linecap:round}
.carte-coin .cc-route-txt{font:600 12px var(--f-text);fill:var(--c-fir);letter-spacing:0.06em}
.carte-coin .cc-villes circle{fill:var(--c-paper);stroke:var(--c-ink);stroke-width:2.5}
.carte-coin .cc-ville{font:600 17px var(--f-text);fill:var(--c-ink)}
.carte-coin .cc-km{font:400 14px var(--f-text);fill:var(--c-muted)}
.carte-coin .cc-poi{fill:none;stroke:var(--c-muted);stroke-width:1.5}
.carte-coin .cc-poi-txt{font:400 13.5px var(--f-text);fill:var(--c-muted)}
.carte-coin .cc-ville-sm{font:600 25px var(--f-text);fill:var(--c-ink)}
.carte-coin .cc-centre{color:var(--c-fir)}
.carte-coin .cc-centre circle{fill:var(--c-fir);stroke:var(--c-paper);stroke-width:3}
.carte-coin .cc-coucou{font:400 21px var(--f-display);fill:var(--c-fir)}
.carte-coin .cc-coucou-sm{font:400 30px var(--f-display);fill:var(--c-fir)}
.carte-coin .cc-nord path{fill:none;stroke:var(--c-ink);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.carte-coin .cc-nord text{font:600 16px var(--f-text);fill:var(--c-ink)}
.carte-coin .cc-nord--sm path{stroke-width:3.5}
.carte-coin .cc-nord--sm text{font-size:28px}
.adresse{margin-top:var(--s-5);font:400 var(--step-2)/1.3 var(--f-display);font-style:normal;color:var(--c-ink);font-variant-numeric:lining-nums tabular-nums}
.trouver__texte .actions{margin-top:var(--s-5)}
.distances{margin-top:var(--s-6);max-width:24rem;border-top:1px solid var(--c-line);font-variant-numeric:tabular-nums}
.distances div{display:flex;justify-content:space-between;gap:var(--s-4);padding-block:var(--s-2);border-bottom:1px solid var(--c-line)}
.distances dt{color:var(--c-ink)}
.distances dd{color:var(--c-muted)}
.distances__note,.parking{margin-top:var(--s-3);font-size:var(--step--1);color:var(--c-muted);max-width:var(--measure)}
.parking{margin-top:var(--s-5)}
/* ---------- En bref, FAQ ---------- */
.bref{display:grid;gap:var(--s-8)}
.bref__texte .lien{margin-top:var(--s-4)}
.faq__titre{font:400 var(--step-3)/1.1 var(--f-display)}
.faq{margin-top:var(--s-5);border-top:1px solid var(--c-line)}
.faq__item{border-bottom:1px solid var(--c-line)}
.faq__question{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);min-height:3.5rem;padding-block:var(--s-3);font:600 var(--step-0)/1.35 var(--f-text);color:var(--c-ink);cursor:pointer;list-style:none}
.faq__question::-webkit-details-marker{display:none}
.faq__question:hover{color:var(--c-fir)}
.faq__marque{position:relative;flex:none;width:1.75rem;height:1.75rem;border:1px solid var(--c-line-strong);border-radius:50%}
.faq__marque::before,.faq__marque::after{content:"";position:absolute;left:50%;top:50%;width:0.75rem;height:2px;background:var(--c-fir);transform:translate(-50%, -50%);transition:transform var(--dur) var(--ease)}
.faq__marque::after{transform:translate(-50%, -50%) rotate(90deg)}
.faq__item[open] .faq__marque{background:var(--c-fir);border-color:var(--c-fir)}
.faq__item[open] .faq__marque::before,.faq__item[open] .faq__marque::after{background:var(--c-chalk)}
.faq__item[open] .faq__marque::after{transform:translate(-50%, -50%) rotate(90deg) scaleX(0)}
.faq__reponse{padding-bottom:var(--s-5);max-width:var(--measure);color:var(--c-muted)}
.faq-suite{margin-top:var(--s-4)}
/* ---------- Finale : bandeau + pied de page (un seul bloc sapin) ---------- */
.finale{position:relative;background:var(--c-fir-deep);color:var(--c-chalk)}
.finale__coucou{position:absolute;left:max(var(--gutter), calc((100% - var(--container)) / 2 + var(--gutter)));top:-3rem;width:7.5rem;height:auto;aspect-ratio:120 / 48;color:var(--c-fir-deep);overflow:visible}
.finale a:focus-visible{outline-color:var(--c-chalk)}
.cta{padding-block:var(--section-y) var(--s-8);display:grid;gap:var(--s-6)}
.cta h2{color:var(--c-chalk)}
.cta__texte{margin-top:var(--s-3);color:var(--c-chalk-muted);font-size:var(--step-1)}
.cta__tel{position:relative;display:inline-block;margin-top:var(--s-4);padding-bottom:0.25em;font:400 var(--step-5)/1.05 var(--f-display);color:var(--c-chalk);text-decoration:none;font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}
.cta__trait{position:absolute;left:0;bottom:0;width:100%;height:0.55rem;overflow:visible}
.cta__trait path{fill:none;stroke:var(--c-honey);stroke-width:2.6;stroke-linecap:round}
.cta__tel:hover{color:#FFFFFF}
.cta__jours{margin-top:var(--s-4);color:var(--c-chalk-muted);font-size:var(--step--1)}
.cta__jours a{color:var(--c-chalk)}
.cta .actions{align-self:end}
.site-footer{border-top:1px solid var(--c-line-dark)}
.footer__grid{display:grid;gap:var(--s-7);padding-block:var(--s-8) var(--s-7)}
.footer__logo{display:inline-block;padding:var(--s-3);background:var(--c-paper);border-radius:var(--radius);box-shadow:inset 0 0 0 1px var(--c-line)}
.footer__logo img{width:9.5rem}
.footer__marque p{margin-top:var(--s-4);color:var(--c-chalk-muted);max-width:30ch}
.footer__col h2{font:600 var(--label)/1.3 var(--f-text);letter-spacing:0.14em;text-transform:uppercase;color:var(--c-honey)}
.footer__col ul{margin-top:var(--s-3)}
.footer__col li{color:var(--c-chalk-muted)}
.footer__col a{display:inline-flex;align-items:flex-start;min-height:var(--tap);padding-top:var(--s-2);color:var(--c-chalk);text-decoration:none;font-weight:400}
.footer__col a:hover{text-decoration:underline;text-underline-offset:0.25em}
.footer__col a[aria-current="page"]{text-decoration:underline;text-decoration-color:var(--c-honey);text-underline-offset:0.25em}
.horaires-mini li{display:flex;justify-content:space-between;gap:var(--s-4);padding-block:var(--s-2) 0;font-variant-numeric:tabular-nums}
.horaires-mini__note{margin-top:var(--s-3);font-size:var(--step--1);color:var(--c-chalk-muted)}
.horaires-mini span{white-space:nowrap}
.horaires-mini span:last-child{color:var(--c-chalk);text-align:right}
.footer__legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:var(--s-2) var(--s-6);padding-block:var(--s-5) var(--s-6);border-top:1px solid var(--c-line-dark);font-size:var(--step--1);color:var(--c-chalk-muted)}
/* ---------- Pages intérieures ---------- */
.fil{padding-top:var(--s-3)}
.fil ol{display:flex;flex-wrap:wrap;align-items:center}
.fil li{display:flex;align-items:center;font-size:var(--step--1);color:var(--c-muted)}
.fil li + li::before{content:"›";margin-inline:var(--s-2);color:var(--c-line-strong)}
.fil a{display:inline-flex;align-items:center;min-height:var(--tap);color:var(--c-ink);text-decoration:underline;text-decoration-color:var(--c-line-strong);text-underline-offset:0.25em}
.fil a:hover{text-decoration-color:var(--c-fir)}
.page-head{padding-bottom:var(--s-8)}
.page-head__grid{display:grid;gap:var(--s-5);margin-top:var(--s-4)}
.page-head h1{margin-top:var(--s-3);max-width:16ch}
.page-head__chapeau{font:400 var(--step-1)/1.5 var(--f-text);color:var(--c-muted);max-width:var(--measure)}
.page-head .actions{margin-top:var(--s-5)}
.page-head__photo{margin:var(--s-7) 0 0}
.page-head__photo img{width:100%;aspect-ratio:4 / 3;object-fit:cover}
.page-head--court{padding-bottom:var(--s-6)}
/* En-tête à photo qui déborde sur la section suivante (La table, La maison) */
.page-head__grille{display:grid}
.page-head--deborde .page-head__titre{margin-top:var(--s-4)}
.page-head--deborde .page-head__chapeau{margin-top:var(--s-5)}
.index{margin-top:var(--s-7);border-top:1px solid var(--c-line)}
.index a{display:grid;grid-template-columns:minmax(0, 1fr) auto;align-items:center;column-gap:var(--s-4);padding-block:var(--s-4);border-bottom:1px solid var(--c-line);color:var(--c-ink);text-decoration:none}
.index__titre{font:400 var(--step-3)/1.1 var(--f-display)}
.index__sous{grid-column:1;margin-top:var(--s-1);font-size:var(--step--1);line-height:1.4;color:var(--c-muted)}
.index__fleche{grid-column:2;grid-row:1 / span 2;width:1.5rem;height:1.5rem;color:var(--c-fir);transition:transform var(--dur) var(--ease)}
.index a:hover,.index a:focus-visible{border-bottom-color:var(--c-fir)}
.index a:hover .index__titre{color:var(--c-fir)}
.index a:hover .index__fleche,.index a:focus-visible .index__fleche{transform:translateY(4px)}
.bloc{display:grid;gap:var(--s-7)}
.bloc + .bloc{margin-top:var(--s-9)}
.bloc__texte h2 + .prose{margin-top:var(--s-5)}
.encadre{margin-top:var(--s-6);padding:var(--s-5);background:var(--c-paper);border:1px solid var(--c-line);max-width:var(--measure)}
.encadre p{color:var(--c-ink)}
/* Bloc sans photo : le texte et son encadré côte à côte */
.bloc--duo{row-gap:var(--s-6)}
.bloc--duo .encadre{margin-top:0}
/* La table : ardoise complète */
.ardoise--carte{margin-top:var(--s-7)}
.ardoise--carte .ardoise__groupes{margin-top:var(--s-2)}
/* La maison */
.nom{display:grid;gap:var(--s-6)}
.nom__logo{display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0;padding:var(--s-5);background:var(--c-paper);border:1px solid var(--c-line)}
.nom__logo picture{width:min(100%, 20rem)}
.nom__logo img{width:100%}
.nom__logo figcaption{margin-top:var(--s-4);max-width:22rem;font:400 var(--caption)/1.4 var(--f-text);color:var(--c-muted);text-align:center}
.valeurs{display:grid;gap:0;border-top:1px solid var(--c-line)}
.valeurs div{padding-block:var(--s-5);border-bottom:1px solid var(--c-line)}
.valeurs dt{font:400 var(--step-2)/1.2 var(--f-display);color:var(--c-ink)}
.valeurs dd{margin-top:var(--s-2);color:var(--c-muted);max-width:var(--measure)}
.village{display:grid;gap:var(--s-7)}
/* Trois espaces : composition asymétrique, dans l'ordre où l'on entre */
.espaces{display:grid;gap:var(--s-6)}
.espace{width:82%;margin:0}
.espace img{width:100%;aspect-ratio:4 / 5;object-fit:cover}
.espace--terrasse img{aspect-ratio:4 / 3}
.espace--veranda{width:68%;justify-self:end}
.espace--salle{width:88%}
.espace__nom{margin-top:var(--s-3);font:600 var(--label)/1.3 var(--f-text);letter-spacing:0.14em;text-transform:uppercase;color:var(--c-ink)}
.citation{display:grid;grid-template-columns:auto minmax(0, 1fr);column-gap:var(--s-3);margin:0}
.citation__guillemet{grid-row:1 / span 2;margin-top:-0.06em;font:400 var(--step-5)/1 var(--f-display);color:var(--c-fir)}
.citation--grande .avis__citation p{max-width:46rem;font-size:var(--step-3);line-height:1.3}
.village__media .citation{margin-top:var(--s-7)}
/* Infos pratiques */
.auj{display:block;width:max-content;margin-top:var(--s-1);padding:1px var(--s-2);background:var(--c-fir);color:var(--c-chalk);font:600 0.6875rem/1.5 var(--f-text);letter-spacing:0.08em;text-transform:uppercase;border-radius:2px}
.infos-grid{display:grid;gap:var(--s-8)}
.reserver-carte{background:var(--c-paper);border:1px solid var(--c-line);padding:var(--s-6) var(--s-5)}
.reserver-carte h2{font-size:var(--step-3)}
.gros-tel{display:inline-flex;align-items:center;min-height:var(--tap);margin-top:var(--s-3);font:400 var(--step-4)/1.1 var(--f-display);color:var(--c-fir);text-decoration:none;font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}
.gros-tel:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:0.18em}
.reserver-carte p{margin-top:var(--s-3);color:var(--c-muted);max-width:var(--measure)}
.horaires__note{margin-top:var(--s-4);font-size:var(--step--1);color:var(--c-muted);max-width:var(--measure)}
.faq-page{max-width:46rem}
.faq-page .faq{margin-top:var(--s-6)}
/* Contact */
.contact-grid{display:grid;gap:var(--s-8)}
.form{margin-top:var(--s-5)}
.form__intro{color:var(--c-muted);max-width:var(--measure)}
.form__errors{margin-bottom:var(--s-6);padding:var(--s-4) var(--s-5);background:var(--c-paper);border:2px solid var(--c-error);border-radius:var(--radius)}
.form__errors p{font-weight:600;color:var(--c-error)}
.form__errors ul{margin-top:var(--s-2)}
.form__errors li + li{margin-top:var(--s-2)}
.form__errors a{display:block;padding-block:var(--s-1);line-height:1.4;color:var(--c-error);font-weight:600}
.field{display:flex;flex-direction:column;min-width:0}
.field + .field,.field-row + .field,.field + .field-row{margin-top:var(--s-5)}
.field-row{display:grid;gap:var(--s-5)}
.field-row > .field + .field{margin-top:0}
.field label{font:600 1rem/1.3 var(--f-text);color:var(--c-ink)}
.field .opt{font-weight:400;color:var(--c-muted)}
.field input,.field select,.field textarea{width:100%;min-width:0;min-height:3rem;margin-top:var(--s-2);padding:var(--s-3) 0.875rem;background:var(--c-paper);border:1px solid var(--c-line-strong);border-radius:var(--radius);font-size:1.0625rem;color:var(--c-ink)}
.field input,.field select{height:3.3125rem}
.field textarea{min-height:9rem;resize:vertical}
.field select{appearance:none;padding-right:2.75rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231B211D' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 0.875rem center;background-size:1rem}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--c-ink)}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible,.field input[type="date"]:focus-within{border-color:var(--c-fir);outline:2px solid var(--c-fir);outline-offset:1px}
.field [aria-invalid="true"]{border:2px solid var(--c-error)}
.field__hint{margin-top:var(--s-1);font-size:var(--step--1);color:var(--c-muted)}
.field__error{margin-top:var(--s-2);font:600 0.9375rem/1.4 var(--f-text);color:var(--c-error)}
.form__avert{margin-top:var(--s-6);padding:var(--s-4) var(--s-5);background:var(--c-paper);border-left:3px solid var(--c-fir)}
.form__submit{margin-top:var(--s-6)}
.form__submit .btn{width:100%}
.form__mention{margin-top:var(--s-3);font-size:var(--step--1);color:var(--c-muted)}
.form__success{margin-top:var(--s-5);padding:var(--s-4) var(--s-5);background:var(--c-paper);border:1px solid var(--c-fir);border-radius:var(--radius);color:var(--c-fir);font-weight:600}
.js .form__fallback{display:none}
html:not(.js) .form__submit-btn{display:none}
.contact__form-titre{margin-top:var(--s-8);font-size:var(--step-3)}
.form__intro{margin-top:var(--s-4)}
.aside-cartes{display:grid;gap:var(--s-5);align-content:start}
.horaires-aside li{display:flex;justify-content:space-between;gap:var(--s-4);padding-block:var(--s-2);border-bottom:1px solid var(--c-line);font-size:var(--step--1);font-variant-numeric:tabular-nums}
.horaires-aside li:last-child{border-bottom:0}
.horaires-aside span:last-child{color:var(--c-ink);text-align:right}
.aside-carte .horaires-mini__note{font-size:var(--step--1);color:var(--c-muted)}
.aside-carte{padding:var(--s-5);background:var(--c-paper);border:1px solid var(--c-line)}
.aside-carte h2{font-size:var(--step-2)}
.aside-carte p,.aside-carte ul{margin-top:var(--s-3);color:var(--c-muted)}
.aside-carte .lien{margin-top:var(--s-2)}
/* Mentions légales */
.legal{max-width:46rem}
.legal h2{font-size:var(--step-3);margin-top:var(--s-8)}
.legal h2:first-child{margin-top:0}
.legal p,.legal ul{margin-top:var(--s-4);color:var(--c-muted);max-width:var(--measure)}
.legal ul li{position:relative;padding-left:1.25rem}
.legal ul li + li{margin-top:var(--s-2)}
.legal ul li::before{content:"";position:absolute;left:0;top:0.72em;width:0.5rem;height:2px;background:var(--c-fir)}
.legal dl{margin-top:var(--s-4);border-top:1px solid var(--c-line)}
.legal dl div{display:grid;gap:var(--s-1);padding-block:var(--s-3);border-bottom:1px solid var(--c-line)}
.legal dt{color:var(--c-muted);font-size:var(--step--1)}
.legal dd{color:var(--c-ink)}
/* 404 */
.perdu{display:grid;gap:var(--s-7);align-items:center;padding-block:var(--s-8) var(--s-9)}
.perdu h1{margin-top:var(--s-3);max-width:14ch}
.perdu__texte{margin-top:var(--s-5);max-width:var(--measure);color:var(--c-muted);font-size:var(--step-1)}
.perdu .actions{margin-top:var(--s-6)}
.perdu__coucou{width:min(100%, 24rem);height:auto;aspect-ratio:120 / 56;color:var(--c-fir);transform:scaleX(-1)}
/* La table : cartes « papier » aux codes de la vraie carte imprimée (losanges, bande sapin) */
.carte-papier{--cp-pt:var(--s-5);--cp-px:var(--s-5);--cp-pb:var(--s-6);position:relative;padding:var(--cp-pt) var(--cp-px) var(--cp-pb);background:var(--c-paper);border:2px solid var(--c-fir)}
.carte-papier .ardoise__rubrique{display:flex;align-items:center;gap:0.7em;color:var(--c-fir)}
.carte-papier .ardoise__rubrique::before{content:"";flex:none;width:0.5em;height:0.5em;background:var(--c-fir);transform:rotate(45deg)}
.carte-papier__bande{margin:var(--s-6) calc(-1 * var(--cp-px)) calc(-1 * var(--cp-pb));padding:0.2rem var(--s-4);background:var(--c-fir);color:var(--c-chalk);font:500 var(--step--1)/1.35 var(--f-text);letter-spacing:0.04em;text-align:center}
.tarifs li{padding-block:var(--s-2);border-bottom:1px dotted var(--c-line-strong)}
.tarifs li:last-child{border-bottom:0}
.tarifs .plat{font:400 1rem/1.4 var(--f-text);color:var(--c-ink)}
.tarifs .prix{font:600 1rem/1.4 var(--f-text);color:var(--c-fir)}
.tarifs .plat__detail{font-size:var(--step--1);color:var(--c-muted)}
.carte-papier__pied{margin-top:var(--s-6);padding-top:var(--s-4);border-top:1px solid var(--c-line);font:400 var(--step-1)/1.3 var(--f-display);color:var(--c-fir)}
.carte-papier--court{margin-top:var(--s-6)}
.carte-papier--court .carte-papier__pied{margin-top:var(--s-4);font:400 var(--step--1)/1.45 var(--f-text);color:var(--c-muted)}
.menus{display:grid;gap:var(--s-7)}
.menus__photo{max-width:26rem}
.menu-semaine{margin-top:var(--s-6)}
.menu-semaine__menus{display:grid;gap:var(--s-5)}
.menu-semaine__menus ul{margin-top:var(--s-2)}
.menu-semaine__menus li{padding-block:var(--s-2);border-bottom:1px solid var(--c-line);line-height:1.45}
.menu-semaine .tarifs{margin-top:var(--s-5)}
.menu-semaine__note{margin-top:var(--s-4);font-size:var(--step--1);color:var(--c-muted)}
/* Galerie de vraies photos : formats mêlés, hauteur commune, défilement horizontal aimanté */
.galerie__tete{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:var(--s-4);margin-bottom:var(--s-6)}
.galerie__nav{display:flex;gap:var(--s-2)}
.galerie__nav[hidden]{display:none}
.galerie__btn{display:inline-flex;align-items:center;justify-content:center;width:3rem;height:3rem;border:1px solid var(--c-fir);border-radius:50%;color:var(--c-fir);transition:background-color var(--dur) var(--ease), color var(--dur) var(--ease)}
.galerie__btn:hover{background:var(--c-fir);color:var(--c-chalk)}
.galerie__btn:disabled{opacity:0.35;background:none;color:var(--c-fir);cursor:default}
.galerie__btn svg{width:1.25rem;height:1.25rem}
.galerie__btn--prec svg{transform:scaleX(-1)}
.section--galerie{overflow-x:clip}
.galerie__piste{--g-h:clamp(15.5rem, 10rem + 12vw, 24rem);display:flex;gap:var(--s-4);margin-inline:calc(-1 * var(--gutter));padding:0 var(--gutter) var(--s-4);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gutter);scrollbar-width:thin;scrollbar-color:var(--c-line-strong) transparent}
.galerie__piste:focus-visible{outline:2px solid var(--c-fir);outline-offset:-2px}
.galerie__item{flex:none;width:calc(var(--g-h) * 0.8);scroll-snap-align:start}
.galerie__item--l{width:calc(var(--g-h) * 4 / 3)}
.galerie__item--c{width:var(--g-h)}
.galerie__item figure{margin:0}
.galerie__item picture,.photo--zoom picture{display:block;overflow:hidden}
.galerie__item img{width:100%;height:var(--g-h);object-fit:cover}
.galerie__item figcaption{display:flex;justify-content:space-between;align-items:baseline;gap:var(--s-3);margin-top:var(--s-2);font-size:var(--step--1);line-height:1.4;color:var(--c-muted)}
.galerie__prix{flex:none;font:400 var(--step-0)/1.2 var(--f-display);color:var(--c-ink);font-variant-numeric:lining-nums tabular-nums}
.galerie__note{margin-top:var(--s-3);font-size:var(--step--1);color:var(--c-muted)}
/* ---------- Utilitaires ---------- */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border:0}
.nw{white-space:nowrap}
html:not(.js) .menu-btn{display:none}
.mt-5{margin-top:var(--s-5)}
.mt-6{margin-top:var(--s-6)}
@media (max-width: 22.49em){
.enseigne h1{font-size:2.75rem}
.enseigne__coucou{left:4%;top:-2.6rem;width:6.5rem}
.carte-coin .cc-ville-sm{font-size:29px}
.enseigne .kicker{letter-spacing:0.04em}
.cta__tel{font-size:2.25rem}
.btn__pre{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap}
.header__call-short{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap}
.header__call{padding-inline:0.75rem}
}
@media (max-width: 24.99em){
.menu-btn__label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap}
.menu-btn{padding:0}
}
@media (max-width: 29.99em){
.jour-long{display:none}
.jour-court{display:inline}
.semaine__table thead td{width:28%}
.semaine__table thead th{font:600 var(--label)/1.25 var(--f-text);letter-spacing:0.08em;text-transform:uppercase}
.semaine__table tbody th{padding-block:var(--s-2)}
.semaine__table tr:not(.is-ferme) td{padding-top:calc(var(--s-2) + (1.3em - 0.75rem) / 2)}
.actions .btn{flex:1 1 100%}
.enseigne{padding-inline:var(--s-4)}
.ardoise{--frame:10px;padding-inline:var(--s-4)}
}
@media (max-width: 39.99em){
.footer__col--pages ul{columns:2;column-gap:var(--s-5)}
}
@media (max-width: 63.99em){
.brand{min-height:var(--header-h)}
.trouver__texte{order:-1}
}
@media (min-width: 30em){
.field-row{grid-template-columns:1fr 1fr}
.nom{grid-template-columns:1fr 1fr}
.nom__texte{grid-column:1 / -1}
.legal dl div{grid-template-columns:13rem 1fr;align-items:baseline}
}
@media (min-width: 40em){
.brand__logo{height:3.5rem}
.header__bar{column-gap:var(--s-3)}
.cadran{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--grid-gap)}
.footer__grid{grid-template-columns:1fr 1fr}
.menu-semaine__menus{grid-template-columns:1fr 1fr;column-gap:var(--s-6)}
.carte-papier__groupes{columns:2;column-gap:var(--s-7)}
}
@media (min-width: 48em) and (max-width: 63.99em){
.espaces{grid-template-columns:1fr 1fr;column-gap:var(--grid-gap);align-items:start}
.espaces__texte,.espace--salle,.citation--grande{grid-column:1 / -1}
.espace--terrasse img,.espace--veranda img{aspect-ratio:1 / 1}
.espace--salle img{aspect-ratio:3 / 2}
.hero .hero__photo img{height:auto;aspect-ratio:4 / 3}
.hero .hero__inner{margin-top:-3rem}
.medaillon{--md:8rem}
.menus--inverse{grid-template-columns:7fr 5fr;column-gap:var(--grid-gap);align-items:start}
.menus--inverse .menus__photo{max-width:none}
}
@media (min-width: 48em){
.section__head{margin-bottom:var(--s-7)}
.espace{width:auto;justify-self:stretch}
.carte-home .ardoise__groupes{columns:2;column-gap:var(--s-7)}
.hero__photo img{aspect-ratio:auto;height:clamp(22rem, 40vw, 38rem);object-position:50% 15%}
.hero__inner{margin-top:-8rem}
.enseigne{max-width:40rem;padding:var(--s-7) var(--s-7) var(--s-6)}
.enseigne__coucou{width:9rem;top:-3.6rem}
.carte-coin .sm{display:none}
.carte-coin .lg{display:inline}
.village{grid-template-columns:5fr 6fr;align-items:start;column-gap:var(--grid-gap)}
.valeurs{grid-template-columns:1fr 1fr;column-gap:var(--grid-gap)}
.form__submit .btn{width:auto}
}
@media (min-width: 64em){
:root{
--header-h:5.5rem}
.header__bar{flex-wrap:nowrap;column-gap:var(--s-5)}
.brand{margin-right:0}
.brand__logo{height:4rem}
.nav{order:0;flex-basis:auto;margin-left:auto}
.nav__list,.js .nav__list{display:flex;gap:var(--s-1);padding:0;border:0}
.nav__link{position:relative;padding-inline:var(--s-3)}
.nav__link::after{content:"";position:absolute;left:var(--s-3);right:var(--s-3);bottom:0.4rem;height:2px;background:var(--c-fir);transform:scaleX(0);transform-origin:left;transition:transform 200ms var(--ease)}
.nav__link:hover::after,.nav__link:focus-visible::after,.nav__link[aria-current="page"]::after{transform:scaleX(1)}
.nav__link[aria-current="page"]{text-decoration:none}
.js .nav__list .nav__extra,.nav__extra{display:none}
.menu-btn{display:none}
.header__call{order:1}
.header__call-num{display:inline}
.header__call-short{display:none}
.hero{--recouvre:13rem}
.hero__inner{display:grid;grid-template-columns:repeat(12, minmax(0, 1fr));column-gap:var(--grid-gap);align-items:start;margin-top:calc(-1 * var(--recouvre))}
.enseigne{grid-column:1 / 8;grid-row:1;max-width:none}
.medaillon{--md:clamp(11rem, 20vw, 15rem);position:static;grid-column:9 / 13;grid-row:1;justify-self:center;margin-top:calc(var(--recouvre) - var(--md) / 2);gap:var(--s-3)}
.medaillon__etiquette{margin-top:0;padding:0;background:none;border:0;text-align:center;white-space:normal}
.medaillon__plat{display:block;font:400 var(--step-1)/1.3 var(--f-display);font-variant-numeric:lining-nums}
.medaillon__maison{display:inline}
.medaillon__note{display:inline-flex;align-items:center;gap:0.35em;margin-top:var(--s-1);font:500 var(--step--1)/1.4 var(--f-text);color:var(--c-fir)}
.medaillon__note svg{width:1.1em;height:1.1em;transition:transform var(--dur) var(--ease)}
.medaillon:hover .medaillon__note svg,.medaillon:focus-visible .medaillon__note svg{transform:translateX(4px)}
.cadran{grid-column:1 / -1;grid-row:2;grid-template-columns:repeat(4, minmax(0, 1fr));column-gap:0;border-bottom:1px solid var(--c-line)}
.cadran__item{padding:var(--s-4) var(--s-4) var(--s-5);border-bottom:0;border-left:1px solid var(--c-line)}
.cadran__item:first-child{padding-left:0;border-left:0}
.semaine-bloc{grid-template-columns:repeat(12, minmax(0, 1fr));column-gap:var(--grid-gap);align-items:start}
.semaine-bloc > .semaine{grid-column:1 / 8}
.semaine__moments{grid-column:9 / 13}
.trouver{grid-template-columns:repeat(12, minmax(0, 1fr));column-gap:var(--grid-gap);align-items:center}
.trouver__carte{grid-column:1 / 8}
.trouver__texte{grid-column:8 / 13}
.bref{grid-template-columns:repeat(12, minmax(0, 1fr));column-gap:var(--grid-gap)}
.bref__texte{grid-column:1 / 6;grid-row:1}
.bref__faq{grid-column:7 / 13;grid-row:1}
.cta{grid-template-columns:repeat(12, minmax(0, 1fr));column-gap:var(--grid-gap);align-items:end}
.cta__bloc{grid-column:1 / 8}
.cta .actions{grid-column:9 / 13;flex-direction:column}
.cta .actions .btn{width:100%}
.footer__grid{grid-template-columns:1.3fr 1.2fr 1fr 0.9fr}
.page-head__grid{grid-template-columns:repeat(12, minmax(0, 1fr));column-gap:var(--grid-gap);align-items:end}
.page-head__titre{grid-column:1 / 8}
.page-head__side{grid-column:8 / 13}
.bloc{grid-template-columns:repeat(12, minmax(0, 1fr));column-gap:var(--grid-gap);align-items:center}
.bloc__texte{grid-column:1 / 6}
.bloc__media{grid-column:7 / 13}
.bloc--inverse .bloc__texte{grid-column:8 / 13;order:2}
.bloc--inverse .bloc__media{grid-column:1 / 7;order:1}
.bloc--duo{align-items:end}
.bloc--duo .bloc__texte{grid-column:1 / 7}
.bloc--duo .bloc__aside{grid-column:8 / 13}
@supports (grid-template-rows: subgrid){
/* L'encadré s'aligne sur le haut du premier paragraphe, pas sur le bas du bloc */
.bloc--duo{row-gap:0;align-items:start}
.bloc--duo .bloc__texte{grid-row:1 / span 3;display:grid;grid-template-rows:subgrid}
.bloc--duo .bloc__aside{grid-row:3;margin-top:var(--s-5)}
}
.avis-grille{grid-template-columns:repeat(12, minmax(0, 1fr));column-gap:var(--grid-gap);row-gap:var(--s-7)}
.avis__tete{grid-column:1 / -1}
.avis__note{grid-column:1 / 5;align-self:start}
.avis__item--une{grid-column:6 / 13;align-self:center}
.avis__item--une .avis__citation p{font-size:var(--step-3);line-height:1.3}
.avis__liste{grid-column:1 / -1;display:grid;grid-template-columns:repeat(3, minmax(0, 1fr));border-bottom:1px solid var(--c-line-dark)}
.avis__liste > li{padding:var(--s-5) var(--s-5) var(--s-6);border-bottom:0;border-left:1px solid var(--c-line-dark)}
.avis__liste > li:first-child{padding-left:0;border-left:0}
.avis__pied{grid-column:1 / -1}
.ardoise--carte{padding:var(--s-8) var(--s-7) var(--s-7)}
.ardoise--carte .ardoise__groupes{columns:2;column-gap:var(--s-8)}
.infos-grid{grid-template-columns:repeat(12, minmax(0, 1fr));column-gap:var(--grid-gap)}
.infos-grid__main{grid-column:1 / 7}
.infos-grid__side{grid-column:8 / 13}
.contact-grid{grid-template-columns:repeat(12, minmax(0, 1fr));column-gap:var(--grid-gap)}
.contact-grid__main{grid-column:1 / 8}
.contact-grid__side{grid-column:9 / 13}
.perdu{grid-template-columns:7fr 5fr}
.page-head__grille{grid-template-columns:repeat(12, minmax(0, 1fr));column-gap:var(--grid-gap);align-items:end}
.page-head__grille .fil{grid-column:1 / -1}
.page-head--deborde .page-head__titre{grid-column:1 / 8}
.page-head--deborde .page-head__photo{position:relative;z-index:1;grid-column:8 / 13;grid-row:2;align-self:start;margin:var(--s-4) 0 calc(-1 * var(--s-9))}
.page-head--deborde .page-head__photo img{aspect-ratio:4 / 5}
.page-head--index .page-head__titre{grid-column:1 / -1;grid-row:2}
.page-head--index h1{max-width:none}
.page-head--index .page-head__corps{grid-column:1 / 8;grid-row:3}
.page-head--index .page-head__photo{grid-row:3;margin:var(--s-5) 0 0}
.carte-papier{--cp-pt:var(--s-6);--cp-px:var(--s-7);--cp-pb:var(--s-7)}
.carte-papier__groupes{columns:3;column-gap:var(--s-8)}
.carte-papier--court{--cp-pt:var(--s-5);--cp-px:var(--s-6);--cp-pb:var(--s-6)}
.menus{grid-template-columns:repeat(12, minmax(0, 1fr));column-gap:var(--grid-gap)}
.menus__texte{grid-column:1 / 8}
.menus__photo{grid-column:9 / 13;max-width:none;margin-top:var(--s-9)}
.menus--inverse .menus__texte{grid-column:6 / 13;order:2}
.menus--inverse .menus__photo{grid-column:1 / 5;order:1}
.espaces{grid-template-columns:repeat(12, minmax(0, 1fr));column-gap:var(--grid-gap);row-gap:var(--s-6)}
.espaces__texte{grid-column:1 / 8;grid-row:1}
.espace--terrasse{grid-column:1 / 4;grid-row:2}
.espace--terrasse img{aspect-ratio:4 / 5}
.espace--veranda{grid-column:4 / 8;grid-row:2;margin-top:var(--s-9)}
.espace--salle{grid-column:8 / 13;grid-row:2;margin-top:calc(-1 * var(--s-8))}
.citation--grande{grid-column:1 / 11;grid-row:3;margin-top:var(--s-6)}
.nom{grid-template-columns:repeat(12, minmax(0, 1fr));column-gap:var(--grid-gap)}
.nom__texte{grid-column:1 / 5;grid-row:1;align-self:center}
.nom__photo{grid-column:5 / 9;grid-row:1}
.nom__logo{grid-column:9 / 13;grid-row:1}
.carte-home{grid-template-columns:repeat(12, minmax(0, 1fr));column-gap:var(--grid-gap);row-gap:var(--s-7)}
.carte-home__texte{grid-column:1 / -1;grid-row:1;display:grid;grid-template-columns:repeat(12, minmax(0, 1fr));column-gap:var(--grid-gap);align-items:start}
/* Titre à gauche, chapeau à droite : pas de bande vide à côté du titre */
.carte-home__texte .kicker{grid-column:1 / 7;grid-row:1}
.carte-home__texte h2{grid-column:1 / 7;grid-row:2}
.carte-home__texte .lead{grid-column:8 / 13;grid-row:2;margin-top:var(--s-3)}
.carte-home__texte .lien{grid-column:8 / 13;grid-row:3;justify-self:start}
.carte-home__photo{grid-column:1 / 6;grid-row:2;align-self:stretch;margin:0}
.carte-home__photo picture{height:100%}
.carte-home__photo img{height:100%;min-height:100%;aspect-ratio:4 / 5;object-position:58% 50%}
.carte-home .ardoise{grid-column:5 / 13;grid-row:2;align-self:start;margin-top:var(--s-9)}
.carte-home .ardoise__groupes{column-gap:var(--s-6)}
.citation{column-gap:var(--s-4)}
}
@media (min-width: 64em) and (max-width: 79.99em){
.enseigne{grid-column:1 / 9}
.carte-home .ardoise{padding-inline:var(--s-4)}
.carte-home .ardoise__groupes{column-gap:var(--s-5)}
.carte-home .ardoise__plats li{column-gap:var(--s-3)}
.carte-home .plat,.carte-home .prix{font-size:1.125rem}
}
@media (min-width: 72em){
/* « Après-midi » sur une ligne, comme « Midi » et « Soir » (colonne des jours plus étroite en infos pratiques) */
.semaine__table thead th{white-space:nowrap;vertical-align:bottom}
.infos-grid .semaine__table thead td{width:24%}
}
@media (min-width: 80em){
/* Grand écran : la piste va d'un bord à l'autre de l'écran ; la 1re photo reste alignée sur le texte */
.galerie__piste{--bord:calc((100vw - var(--container)) / 2 + var(--gutter));margin-inline:calc(50% - 50vw);padding-inline:var(--bord);scroll-padding-inline:var(--bord)}
}
@media (min-width: 90em){
.hero__photo img{height:38rem}
.hero{--recouvre:15rem}
}
@media (hover: none){
.lien:hover svg{transform:none}
}
@media (prefers-reduced-motion: no-preference){
.js .hero__photo img{animation:dezoom 1000ms var(--ease-out) both}
.js .enseigne{animation:monter 700ms var(--ease-out) 150ms both}
.js .cadran{animation:fondu 700ms var(--ease-out) 450ms both}
.js .medaillon{animation:fondu 500ms var(--ease-out) 150ms both}
.js .medaillon picture{animation:devoiler 650ms var(--ease-out) 150ms both}
.js .medaillon__anneau,.js .medaillon__heures{stroke-dasharray:1;animation:tracer 900ms var(--ease-out) 150ms both}
.js .medaillon__etiquette{animation:fondu 700ms var(--ease-out) 450ms both}
.medaillon__photo{transition:transform 700ms var(--ease-out)}
.faq__item[open] .faq__reponse{animation:ouvrir 240ms var(--ease-out)}
.js [data-reveal]{transition:opacity 650ms var(--ease-out), transform 650ms var(--ease-out);transition-delay:calc(var(--i, 0) * 80ms)}
.js [data-reveal]:not(.is-in){opacity:0;transform:translateY(20px)}
.js [data-reveal="trace"]:not(.is-in){opacity:1;transform:none}
.js [data-reveal="finale"]:not(.is-in){opacity:1;transform:none}
.js .finale__coucou{transition:opacity 500ms var(--ease-out), transform 500ms var(--ease-out)}
.js .finale:not(.is-in) .finale__coucou{opacity:0;transform:translateY(12px)}
.js .cta__trait path{stroke-dasharray:1;transition:stroke-dashoffset 700ms var(--ease-out) 450ms}
.js .finale:not(.is-in) .cta__trait path{stroke-dashoffset:1}
.js .semaine .barre{transition:transform 600ms var(--ease-out) 200ms}
.js .semaine:not(.is-in) .barre{transform:scaleX(0)}
.js .semaine .is-today > *::before{transition:opacity 300ms var(--ease-out) 1000ms}
.js .semaine:not(.is-in) .is-today > *::before{opacity:0}
.js [data-reveal="trace"] .cc-routes path{stroke-dasharray:1;transition:stroke-dashoffset 1200ms var(--ease-out) 250ms}
.js [data-reveal="trace"]:not(.is-in) .cc-routes path{stroke-dashoffset:1}
.photo--zoom img,.galerie__item img{transition:transform 700ms var(--ease-out)}
}
@media (prefers-reduced-motion: no-preference) and (hover: hover){
.photo--zoom:hover img,.galerie__item:hover img,.medaillon:hover .medaillon__photo{transform:scale(1.04)}
}
@keyframes dezoom{
from{transform:scale(1.06)}
}
@keyframes monter{
from{opacity:0;transform:translateY(18px)}
}
@keyframes fondu{
from{opacity:0}
}
@keyframes ouvrir{
from{opacity:0;transform:translateY(-6px)}
}
@keyframes devoiler{
from{clip-path:circle(0% at 50% 50%)}
}
@keyframes tracer{
from{stroke-dashoffset:1}
}
@media (prefers-reduced-motion: reduce){
:root{
--dur:0ms}
}
@media print{
.site-header,.finale__coucou,.skip-link{display:none}
.finale{background:none;color:var(--c-ink)}
}
