/* Resto Pickup, feuille de style du site. Charte graphique édition 1, novembre 2026.
   Univers volontairement clair (marine, farine, tomate) : un seul thème, couleurs toutes explicites.
   Mise en page : grands blancs, l'assiette tomate déborde du format, le texte reste sur fond calme. */
:root {
  --rp-marine: #1B2A4E;
  --rp-tomate: #E04A2F;      /* formes uniquement, jamais sous du texte */
  --rp-brique: #B33A22;      /* mot en relief dans un titre, 24 px minimum */
  --rp-ardoise: #4A5368;
  --rp-farine: #FAF7F2;
  --rp-ciel: #DCE5EF;
  --rp-blanc: #FFFFFF;
  --rp-persil: #1A5230;
  --rp-persil-fond: #E3EFE5;
  --rp-moutarde: #7A4300;
  --rp-moutarde-fond: #FFF0D9;
  --rp-filet: #C9D2DF;
  --rp-titre: "Young Serif", Georgia, "Times New Roman", serif;
  --rp-texte: "Atkinson Hyperlegible Next", "Atkinson Hyperlegible", Arial, sans-serif;
  --r: 18px;
  --gut-l: max(16px, env(safe-area-inset-left, 0px));
  --gut-r: max(16px, env(safe-area-inset-right, 0px));
  color-scheme: light;
}

html { font-size: 125%; }               /* 20 px, texte courant de la charte */
html[data-size="2"] { font-size: 150%; } /* A+ */
* { box-sizing: border-box; }
body { margin: 0; background: var(--rp-blanc); color: var(--rp-marine); font-family: var(--rp-texte); font-size: 1rem; line-height: 1.6; -webkit-text-size-adjust: 100%; }
img { max-width: 100%; height: auto; }
a { color: var(--rp-marine); text-underline-offset: .2em; text-decoration-thickness: 2px; }
h1, h2, h3 { font-family: var(--rp-titre); font-weight: 400; line-height: 1.12; margin: 0; text-wrap: balance; }
h1 { font-size: clamp(2.1rem, 1.3rem + 3vw, 2.8rem); }   /* 56 px */
h2 { font-size: clamp(1.6rem, 1.2rem + 1.4vw, 2rem); }    /* 40 px */
h3 { font-size: 1.2rem; }                                  /* 24 px */
.relief { color: var(--rp-brique); }
p { margin: 0; }
:focus-visible { outline: 3px solid var(--rp-marine); outline-offset: 3px; box-shadow: 0 0 0 6px var(--rp-blanc), 0 0 0 9px var(--rp-tomate); border-radius: 8px; }
html { scroll-behavior: smooth; scroll-padding-top: 6rem; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; animation: none !important; } }

.wrap { max-width: 64rem; margin: 0 auto; padding-left: var(--gut-l); padding-right: var(--gut-r); }
.section { padding-block: clamp(3rem, 6vw, 5rem); }
.section--sunk { background: var(--rp-farine); }
.section--ciel { background: var(--rp-ciel); }
.eyebrow { font-size: .8rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; color: var(--rp-ardoise); }
.lead { font-size: 1.05rem; color: var(--rp-ardoise); max-width: 34rem; }
.stack { display: grid; gap: 1rem; }
.row { display: flex; gap: .8rem; flex-wrap: wrap; align-items: center; }
.skip { position: absolute; left: -999px; top: 0; }
.skip:focus { left: 1rem; top: 1rem; z-index: 50; background: var(--rp-blanc); padding: .6rem 1rem; }
.num { font-variant-numeric: tabular-nums; font-weight: 700; }

/* En-tête */
body::before { content: ""; position: fixed; inset: 0 0 auto; height: env(safe-area-inset-top, 0px); z-index: 30; background: var(--rp-blanc); }
.top { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 20; background: var(--rp-blanc); border-bottom: 1px solid var(--rp-filet); }
.top__in { display: flex; align-items: center; gap: 1rem; padding-block: .6rem; flex-wrap: wrap; }
.brand { margin-right: auto; display: block; line-height: 0; }
.brand img { height: 2.1rem; width: auto; }
.top__nav { display: flex; gap: 1.3rem; }
.top__nav a { text-decoration: none; font-weight: 700; font-size: .85rem; }
.top__nav a:hover { text-decoration: underline; }
.top__tools { display: flex; align-items: center; gap: .6rem; }
.textsize { display: flex; border: 2px solid var(--rp-marine); border-radius: 10px; overflow: hidden; }
.textsize button { border: 0; background: var(--rp-blanc); color: var(--rp-marine); font: 700 .85rem var(--rp-texte); min-width: 2.8rem; min-height: 2.8rem; cursor: pointer; }
.textsize button + button { border-left: 2px solid var(--rp-marine); }
.textsize button[aria-pressed="true"] { background: var(--rp-marine); color: var(--rp-blanc); }
.tel { display: inline-flex; align-items: center; gap: .5rem; text-decoration: none; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; min-height: 2.8rem; }
.tel svg { width: 1.4rem; height: 1.4rem; flex: none; }
.tel small { display: block; font-weight: 400; font-size: .7rem; color: var(--rp-ardoise); line-height: 1; }
.tel span { line-height: 1.15; }
.top__cta { white-space: nowrap; min-height: 2.8rem !important; padding: .4rem 1.1rem !important; font-size: .85rem !important; }
@media (max-width: 1000px) { .top__nav { display: none; } }
@media (max-width: 720px) { .top__cta { display: none; } .tel small { display: none; } }
@media (max-width: 420px) { .brand img { height: 1.7rem; } }
.top--slim .top__nav, .top--slim .top__cta { display: none; }

/* Boutons : 56 px minimum */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 56px; padding: .7rem 1.5rem; border-radius: 999px; font: 700 1.1rem/1.2 var(--rp-texte); text-decoration: none; cursor: pointer; border: 2px solid transparent; transition: background .15s ease, transform .1s ease; text-align: center; }
.btn:active { transform: translateY(1px); }
.btn--main, .btn--accent { background: var(--rp-marine); color: var(--rp-blanc); }
.btn--main:hover, .btn--accent:hover { background: #24375f; }
.btn--ghost { background: var(--rp-blanc); color: var(--rp-marine); border-color: var(--rp-marine); }
.btn--ghost:hover { background: var(--rp-farine); }
.btn--on { background: var(--rp-blanc); color: var(--rp-marine); }
.btn--line-on { background: transparent; color: var(--rp-blanc); border-color: var(--rp-blanc); }
.btn--lg { min-height: 60px; padding: .8rem 1.8rem; }
.btn[disabled] { opacity: .5; cursor: not-allowed; }

/* Pictos de la charte */
.ic { width: 2rem; height: 2rem; flex: none; color: var(--rp-marine); }
.ic .dot { fill: var(--rp-tomate); stroke: none; }

/* Héros */
.hero2 { position: relative; overflow: hidden; background: var(--rp-farine); padding-block: clamp(2rem, 5vw, 4rem); }
.hero2__grid { position: relative; display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(1.5rem, 4vw, 3rem); align-items: center; }
.hero2__grid > * { min-width: 0; }
@media (max-width: 900px) { .hero2__grid { grid-template-columns: 1fr; } }
.hero2 .tag { font-family: var(--rp-titre); font-size: 1.2rem; }
.hero2 h1 { margin-top: .5rem; }
.hero2 .lead { margin-top: 1rem; }
.hero2__facts { list-style: none; padding: 0; margin: 1.8rem 0 0; display: flex; gap: clamp(1rem, 3vw, 2.2rem); flex-wrap: wrap; }
.hero2__facts li { display: grid; }
.hero2__facts strong { font-size: 1.6rem; font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1.15; }
.hero2__facts span { color: var(--rp-ardoise); font-size: .9rem; }
.plate-hero { position: relative; aspect-ratio: 1; max-width: 26rem; width: 100%; justify-self: center; }
.plate-hero__tomate { position: absolute; width: 78%; right: -18%; top: -14%; transform: rotate(18deg); }
.plate-hero__main { position: absolute; inset: 6% 10% 14% 2%; }
.plate-hero__side { position: absolute; width: 38%; right: 2%; bottom: 0; }
@media (max-width: 900px) { .plate-hero { max-width: 20rem; } }

/* L'assiette : seul cadre photo de la marque */
.plate { position: relative; aspect-ratio: 1; border-radius: 50%; background: var(--rp-ciel); display: grid; place-items: center; overflow: hidden; }
.plate::before { content: ""; position: absolute; inset: 9%; border-radius: 50%; border: .5rem solid var(--rp-blanc); }
.plate--farine { background: var(--rp-farine); box-shadow: inset 0 0 0 1px var(--rp-filet); }
.plate img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.plate__label { position: relative; text-align: center; padding: 22%; display: grid; gap: .3rem; }
.plate__label small { font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; color: var(--rp-ardoise); }
.plate__label b { font-family: var(--rp-titre); font-weight: 400; font-size: clamp(.9rem, .6rem + 1vw, 1.25rem); line-height: 1.2; }

/* Le semainier : sept assiettes pour sept jours */
.semainier { display: inline-grid; gap: .4rem; }
.semainier ol { list-style: none; padding: 0; margin: 0; display: flex; gap: .45rem; }
.semainier li { display: grid; justify-items: center; gap: .2rem; font-size: .72rem; font-weight: 700; color: var(--rp-ardoise); }
.semainier li::before { content: ""; width: 1.35rem; height: 1.35rem; border-radius: 50%; border: 2px solid var(--rp-marine); background: var(--rp-blanc); }
.semainier li.on { color: var(--rp-marine); }
.semainier li.on::before { background: var(--rp-tomate); border-color: var(--rp-tomate); box-shadow: inset 0 0 0 3px var(--rp-blanc); outline: 2px solid var(--rp-tomate); outline-offset: -2px; }
.semainier p { font-weight: 700; }

/* Bandeau code postal */
.band { background: var(--rp-marine); padding-block: 1.3rem; }
.band__in { display: flex; justify-content: center; }
.zone { margin-top: 1.4rem; background: var(--rp-blanc); border: 1px solid var(--rp-filet); border-radius: var(--r); padding: 1rem 1.2rem; max-width: 34rem; }
.zone label { font-weight: 700; display: block; margin-bottom: .5rem; }
.zone__row { display: flex; gap: .6rem; flex-wrap: wrap; }
.zone__row input { flex: 1 1 9rem; min-width: 0; }
.zone__out { margin-top: .8rem; }
.zone__out:empty { display: none; }
.zone--inline { margin: 0; max-width: 46rem; width: 100%; background: transparent; border: 0; padding: 0; display: grid; grid-template-columns: auto 1fr; gap: .6rem 1.2rem; align-items: center; }
.zone--inline label { color: var(--rp-blanc); margin: 0; font-family: var(--rp-titre); font-weight: 400; font-size: 1.2rem; }
.zone--inline .zone__out { grid-column: 1 / -1; margin: 0; }
.zone--inline input { border-color: var(--rp-blanc); }
.zone--inline .btn { background: var(--rp-blanc); color: var(--rp-marine); }
@media (max-width: 640px) { .zone--inline { grid-template-columns: 1fr; } }

/* Messages : jamais de rouge, toujours une icône et une phrase */
.note-ok, .note-warn { display: grid; grid-template-columns: 1.6rem 1fr; gap: .6rem; border-radius: 12px; padding: .9rem 1rem; }
.note-ok { background: var(--rp-persil-fond); color: var(--rp-persil); }
.note-warn { background: var(--rp-moutarde-fond); color: var(--rp-moutarde); }
.note-ok::before, .note-warn::before { content: ""; width: 1.5rem; height: 1.5rem; margin-top: .1rem; background: currentColor; -webkit-mask: var(--m) center/contain no-repeat; mask: var(--m) center/contain no-repeat; }
.note-ok { --m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M8 12.5l2.8 2.7L16 9.5'/%3E%3C/svg%3E"); }
.note-warn { --m: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 7.5v5.5M12 16.5v.1'/%3E%3C/svg%3E"); }
.note-ok > *, .note-warn > * { grid-column: 2; }
.note-ok strong, .note-warn strong { color: var(--rp-marine); }
.zone--inline .note-ok, .zone--inline .note-warn { margin-top: .2rem; }
.chips { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: .6rem; }
.chip { border: 2px solid var(--rp-filet); background: var(--rp-blanc); color: var(--rp-marine); border-radius: 999px; padding: .5rem 1.1rem; min-height: 56px; font: inherit; cursor: pointer; }
.chip:hover { border-color: var(--rp-marine); }
.zone--inline > p { color: var(--rp-blanc); grid-column: 1 / -1; }

input, select, textarea { font: inherit; font-size: 1rem; color: var(--rp-marine); background: var(--rp-blanc); border: 2px solid var(--rp-filet); border-radius: 12px; min-height: 56px; padding: .6rem .9rem; width: 100%; }
input:focus, select:focus, textarea:focus { border-color: var(--rp-marine); outline: none; box-shadow: 0 0 0 3px var(--rp-ciel); }
textarea { min-height: 5.5rem; }
.field { display: grid; gap: .35rem; }
.field label { font-weight: 700; }
.field .hint { font-size: .9rem; color: var(--rp-ardoise); }
.field.has-error input, .field.has-error select { border-color: var(--rp-moutarde); background: var(--rp-moutarde-fond); }
.err { color: var(--rp-moutarde); font-size: .9rem; font-weight: 700; display: flex; gap: .4rem; align-items: start; }
.err:empty { display: none; }
.err::before { content: "!"; flex: none; width: 1.3rem; height: 1.3rem; border-radius: 50%; border: 2px solid currentColor; display: grid; place-items: center; font-size: .75rem; line-height: 1; margin-top: .1rem; }

/* Réassurance : un picto ne parle jamais seul */
.trust { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.4rem; padding-block: 1.8rem; }
.trust > div { display: grid; grid-template-columns: 2.2rem 1fr; gap: .8rem; align-items: start; }
.trust b { display: block; line-height: 1.3; }
.trust span { color: var(--rp-ardoise); font-size: .9rem; }
@media (max-width: 900px) { .trust { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .trust { grid-template-columns: 1fr; } }

.head-center { text-align: center; display: grid; justify-items: center; gap: .6rem; margin-bottom: 2.2rem; }
.head-center .lead { margin-inline: auto; }

.seg { display: inline-flex; background: var(--rp-blanc); border: 2px solid var(--rp-marine); border-radius: 999px; padding: .2rem; }
.seg button { border: 0; background: transparent; color: var(--rp-marine); font: 700 .95rem var(--rp-texte); padding: .5rem 1.2rem; border-radius: 999px; min-height: 52px; cursor: pointer; }
.seg button[aria-pressed="true"] { background: var(--rp-marine); color: var(--rp-blanc); }
.seg--lg { margin-top: .8rem; }

/* Formules : l'assiette tomate déborde du coin */
.plans { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; }
.plans > * { min-width: 0; }
@media (max-width: 920px) { .plans { grid-template-columns: 1fr; max-width: 30rem; margin-inline: auto; } }
.plan { position: relative; overflow: hidden; background: var(--rp-blanc); border: 2px solid var(--rp-filet); border-radius: var(--r); padding: 1.6rem 1.4rem 1.4rem; display: grid; grid-template-rows: auto auto auto 1fr auto; gap: .7rem; }
.plan::after { content: ""; position: absolute; width: 8rem; height: 8rem; right: -3.4rem; top: -3.4rem; border-radius: 50%; background: var(--rp-ciel); }
.plan--hl { border-color: var(--rp-marine); }
.plan--hl::after { background: var(--rp-tomate); }
.plan > * { position: relative; z-index: 1; }
.plan__flag { justify-self: start; display: inline-flex; gap: .4rem; align-items: center; font-size: .8rem; font-weight: 700; }
.plan__flag::before { content: ""; width: 1.1rem; height: 1.1rem; border-radius: 50%; background: var(--rp-marine) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-6.5' fill='none' stroke='white' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/100% no-repeat; }
.plan h3 { font-size: 1.5rem; }
.plan__sub { color: var(--rp-ardoise); font-size: .95rem; }
.plan__price { display: grid; gap: .1rem; padding-block: .6rem; border-block: 1px solid var(--rp-filet); }
.plan__price b { font-size: 2.2rem; font-weight: 700; line-height: 1.1; font-variant-numeric: tabular-nums; }
.plan__price b small { font-size: .85rem; font-weight: 400; color: var(--rp-ardoise); margin-left: .3rem; }
.plan__price > span { color: var(--rp-ardoise); font-size: .92rem; }
.plan__price strong { color: var(--rp-marine); font-variant-numeric: tabular-nums; }
.plan ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .4rem; align-content: start; font-size: .92rem; }
.plan li { display: grid; grid-template-columns: 1.2rem 1fr; gap: .5rem; }
.plan li::before { content: ""; width: .55rem; height: .55rem; margin-top: .55rem; border-radius: 50%; background: var(--rp-tomate); }
.plan .btn { width: 100%; }
.plans__note { text-align: center; color: var(--rp-ardoise); margin-top: 1.4rem; font-size: .92rem; }

/* Menu de la semaine */
.sem__top { display: flex; justify-content: space-between; align-items: end; gap: 1.5rem; flex-wrap: wrap; margin-bottom: 1.6rem; }
.badge-ex { display: inline-block; background: var(--rp-moutarde-fond); color: var(--rp-moutarde); font-size: .72rem; font-weight: 700; padding: .1rem .6rem; border-radius: 999px; vertical-align: middle; letter-spacing: 0; text-transform: none; }
.dishes__scroll { overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: .8rem; margin-inline: calc(-1 * var(--gut-l)) calc(-1 * var(--gut-r)); padding-inline: var(--gut-l) var(--gut-r); }
.dishes { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(14rem, 15.5rem); gap: 1.2rem; }
.dish { scroll-snap-align: start; margin: 0; display: grid; gap: .8rem; align-content: start; }
.dish .plate { width: 100%; }
.dish figcaption { display: grid; gap: .25rem; }
.dish__day { display: flex; align-items: center; gap: .45rem; font-size: .85rem; font-weight: 700; }
.dish__day img { width: 1.6rem; height: 1.6rem; }
.dish__name { font-family: var(--rp-titre); font-size: 1.2rem; line-height: 1.2; }
.dish__side { font-size: .85rem; color: var(--rp-ardoise); }
.dishes[data-show="soir"] .dish[data-svc="midi"] { display: none; }
.sem__note { margin-top: 1.2rem; color: var(--rp-ardoise); font-size: .9rem; max-width: 46rem; }

/* Comment ça marche : vraie séquence */
.how { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem; counter-reset: s; }
.how > * { min-width: 0; }
.how li { counter-increment: s; border-top: 2px solid var(--rp-marine); padding-top: 1rem; display: grid; gap: .5rem; align-content: start; }
.how li > div { display: flex; align-items: center; justify-content: space-between; }
.how li > div::after { content: counter(s); font-family: var(--rp-titre); font-size: 2rem; color: var(--rp-brique); line-height: 1; }
.how .ic { width: 2.6rem; height: 2.6rem; }
.how p { color: var(--rp-ardoise); font-size: .95rem; }
@media (max-width: 900px) { .how { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .how { grid-template-columns: 1fr; } }

/* Section marine pour les proches */
.section--brand { background: var(--rp-marine); color: var(--rp-blanc); position: relative; overflow: hidden; }
.section--brand h2, .section--brand h3 { color: var(--rp-blanc); }
.eyebrow--on { color: var(--rp-ciel); }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.split > * { min-width: 0; }
@media (max-width: 860px) { .split { grid-template-columns: 1fr; } }
.ticks { list-style: none; padding: 0; margin: .4rem 0 0; display: grid; gap: .7rem; }
.ticks li { display: grid; grid-template-columns: 1.6rem 1fr; gap: .6rem; }
.ticks li::before { content: ""; width: 1.3rem; height: 1.3rem; margin-top: .2rem; border-radius: 50%; background: var(--rp-persil) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3.2 3L15 7' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/100% no-repeat; }
.ticks--on li::before { background-color: var(--rp-blanc); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3.2 3L15 7' fill='none' stroke='%231B2A4E' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
.compare { background: var(--rp-blanc); color: var(--rp-marine); border-radius: var(--r); padding: 1.4rem; }
.compare h3 { color: var(--rp-marine) !important; margin-bottom: .8rem; }
.tbl { overflow-x: auto; }
.compare table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.compare th, .compare td { text-align: left; padding: .65rem .55rem; border-bottom: 1px solid var(--rp-filet); vertical-align: top; }
.compare thead th { font-size: .8rem; color: var(--rp-ardoise); }
.compare thead th:nth-child(2), .compare td:nth-child(2) { background: var(--rp-farine); font-weight: 700; }
.compare tbody th { color: var(--rp-ardoise); font-weight: 400; }
.section--brand .assiette-deco { position: absolute; width: 18rem; left: -7rem; bottom: -8rem; opacity: 1; pointer-events: none; }
@media (max-width: 860px) { .section--brand .assiette-deco { display: none; } }

/* En bref */
.brief { background: var(--rp-farine); border-radius: var(--r); padding: 1.4rem 1.6rem; }
.brief dl { display: grid; grid-template-columns: max-content 1fr; gap: .45rem 1.4rem; margin: .8rem 0 0; }
.brief dt { font-weight: 700; }
.brief dd { margin: 0; color: var(--rp-ardoise); }
@media (max-width: 560px) { .brief dl { grid-template-columns: 1fr; } .brief dd { margin-bottom: .4rem; } }

/* Zones */
.cards2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; }
.cards2 > * { min-width: 0; }
@media (max-width: 760px) { .cards2 { grid-template-columns: 1fr; } }
.zcard { background: var(--rp-blanc); border: 2px solid var(--rp-filet); border-radius: var(--r); padding: 1.4rem; display: grid; grid-template-columns: 4.5rem 1fr; gap: .4rem 1.1rem; align-content: start; }
.zcard > img { grid-row: span 3; width: 4.5rem; height: 4.5rem; }
.zcard .day-pill { font-weight: 700; font-size: .9rem; color: var(--rp-brique); }
.zcard p.towns { color: var(--rp-ardoise); font-size: .9rem; grid-column: 1 / -1; }
.zcard a { grid-column: 1 / -1; font-weight: 700; }

/* FAQ */
.faq-wrap { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(2rem, 5vw, 4rem); align-items: start; }
.faq-wrap > * { min-width: 0; }
@media (max-width: 860px) { .faq-wrap { grid-template-columns: 1fr; } }
.faq { border-top: 1px solid var(--rp-filet); }
.faq details { border-bottom: 1px solid var(--rp-filet); }
.faq summary { cursor: pointer; list-style: none; padding: 1rem 2.6rem 1rem 0; font-weight: 700; position: relative; min-height: 56px; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: ""; position: absolute; right: .3rem; top: 1.1rem; width: 1.5rem; height: 1.5rem; border-radius: 50%; border: 2px solid var(--rp-marine); background: linear-gradient(var(--rp-marine), var(--rp-marine)) center/.7rem 2px no-repeat, linear-gradient(var(--rp-marine), var(--rp-marine)) center/2px .7rem no-repeat; }
.faq details[open] summary::after { background: var(--rp-tomate); border-color: var(--rp-tomate); background-image: linear-gradient(var(--rp-blanc), var(--rp-blanc)); background-size: .7rem 2px; background-position: center; background-repeat: no-repeat; }
.faq details p { padding: 0 0 1.1rem; color: var(--rp-ardoise); max-width: 40rem; }
.big-tel--ink { color: var(--rp-marine); font-size: 1.8rem; font-weight: 700; text-decoration: none; font-variant-numeric: tabular-nums; }

/* Le vichy marine : jamais sous un texte, on pose un cartouche blanc */
.vichy { background-color: var(--rp-blanc); background-image: linear-gradient(90deg, rgb(27 42 78 / .55) 50%, transparent 50%), linear-gradient(rgb(27 42 78 / .55) 50%, transparent 50%); background-size: 72px 72px; border-radius: calc(var(--r) * 1.3); padding: clamp(2rem, 6vw, 4rem) 16px; display: grid; place-items: center; }
.cartouche { background: var(--rp-blanc); border-radius: var(--r); padding: clamp(1.5rem, 4vw, 2.4rem); text-align: center; display: grid; gap: 1rem; justify-items: center; max-width: 34rem; }

/* Commande */
.order { display: grid; grid-template-columns: 1fr 21rem; gap: 2rem; align-items: start; }
.order > * { min-width: 0; }
@media (max-width: 960px) { .order { grid-template-columns: 1fr; } }
.panel { background: var(--rp-blanc); border: 2px solid var(--rp-filet); border-radius: var(--r); padding: clamp(1.2rem, 3vw, 2rem); }
.progress { display: flex; gap: .5rem; list-style: none; padding: 0; margin: 0 0 1.6rem; }
.progress li { flex: 1; font-size: .85rem; font-weight: 700; color: var(--rp-ardoise); border-top: 6px solid var(--rp-ciel); padding-top: .45rem; }
.progress li[aria-current="step"], .progress li.done { color: var(--rp-marine); border-top-color: var(--rp-marine); }
.progress li[aria-current="step"] { border-top-color: var(--rp-tomate); }
fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
legend { font-family: var(--rp-titre); font-size: 1.6rem; margin-bottom: 1rem; padding: 0; }
.qlabel { font-weight: 700; margin: 1.4rem 0 .6rem; display: block; }
.choices { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.choices--col { grid-template-columns: 1fr; }
@media (max-width: 560px) { .choices { grid-template-columns: 1fr; } }
.choice { position: relative; }
.choice input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; min-height: 0; }
.choice > span { position: relative; overflow: hidden; display: grid; grid-template-columns: 1.6rem 1fr auto; column-gap: .8rem; row-gap: .1rem; align-items: center; border: 2px solid var(--rp-filet); border-radius: var(--r); padding: 1rem 1.1rem; min-height: 4.4rem; background: var(--rp-blanc); }
.choice > span::before { content: ""; grid-row: 1 / span 2; width: 1.4rem; height: 1.4rem; border-radius: 50%; border: 2px solid var(--rp-marine); }
.choice b, .choice small { grid-column: 2; }
.choice b { font-size: 1.05rem; }
.choice small { color: var(--rp-ardoise); font-size: .88rem; }
.choice em { grid-column: 3; grid-row: 1 / span 2; font-style: normal; font-weight: 700; font-variant-numeric: tabular-nums; position: relative; z-index: 1; }
.choice input:checked + span { border-color: var(--rp-marine); background: var(--rp-farine); }
.choice input:checked + span::before { background: var(--rp-marine) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-6.5' fill='none' stroke='white' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/100% no-repeat; }
.choice input:focus-visible + span { outline: 3px solid var(--rp-marine); outline-offset: 3px; }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
@media (max-width: 560px) { .grid2 { grid-template-columns: 1fr; } }
.form-stack { display: grid; gap: 1rem; }
.sub { font-family: var(--rp-titre); font-size: 1.15rem; margin-top: .4rem; }
.nav-steps { display: flex; justify-content: space-between; gap: .8rem; margin-top: 1.8rem; flex-wrap: wrap-reverse; }
.check { display: grid; grid-template-columns: 1.8rem 1fr; gap: .7rem; align-items: start; }
.check input { width: 1.6rem; height: 1.6rem; min-height: 0; margin-top: .15rem; accent-color: var(--rp-marine); }
.summary { position: sticky; top: 6rem; background: var(--rp-farine); border-color: var(--rp-farine); overflow: hidden; }
.summary::after { content: ""; position: absolute; width: 7rem; height: 7rem; right: -3rem; top: -3rem; border-radius: 50%; background: var(--rp-tomate); }
.summary > * { position: relative; z-index: 1; }
.summary h3 { margin-bottom: .8rem; }
.summary dl { display: grid; grid-template-columns: 1fr auto; gap: .45rem 1rem; margin: 0; font-variant-numeric: tabular-nums; font-size: .95rem; }
.summary dt { color: var(--rp-ardoise); }
.summary dd { margin: 0; text-align: right; font-weight: 700; }
.summary .total { border-top: 2px solid var(--rp-marine); margin-top: .8rem; padding-top: .8rem; display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.summary .total strong { font-size: 1.9rem; font-variant-numeric: tabular-nums; }
.summary .small { font-size: .88rem; color: var(--rp-ardoise); margin-top: .8rem; }
.pay-logos { display: flex; gap: .4rem; flex-wrap: wrap; margin-top: .8rem; }
.pay-logos span { background: var(--rp-blanc); border: 1px solid var(--rp-filet); border-radius: 6px; padding: .15rem .5rem; font-size: .75rem; font-weight: 700; color: var(--rp-ardoise); }
.recap { display: grid; gap: .3rem; background: var(--rp-farine); border-radius: 12px; padding: 1rem 1.2rem; }
.thanks { display: none; }
.thanks.is-on { display: grid; }
.demo { background: var(--rp-ciel); color: var(--rp-marine); border-radius: 12px; padding: .8rem 1rem; margin-top: 1rem; font-size: .9rem; }

/* Pages intérieures */
.crumbs { font-size: .85rem; color: var(--rp-ardoise); padding-top: 1.2rem; }
.crumbs a { color: var(--rp-ardoise); }
.prose { max-width: 42rem; display: grid; gap: 1rem; }
.prose h2 { margin-top: 1.4rem; }
.prose ul { margin: 0; padding-left: 1.2rem; display: grid; gap: .4rem; }
.towns-grid { columns: 3 11rem; column-gap: 1.5rem; list-style: none; padding: 0; margin: .8rem 0 0; }
.towns-grid li { padding: .35rem 0; break-inside: avoid; border-bottom: 1px solid var(--rp-filet); }
.towns-grid small { color: var(--rp-ardoise); font-variant-numeric: tabular-nums; }
.callout { background: var(--rp-marine); color: var(--rp-blanc); border-radius: var(--r); padding: clamp(1.5rem, 4vw, 2.4rem); display: flex; justify-content: space-between; align-items: center; gap: 1.5rem; flex-wrap: wrap; position: relative; overflow: hidden; }
.callout::after { content: ""; position: absolute; width: 9rem; height: 9rem; right: -4rem; bottom: -4rem; border-radius: 50%; background: var(--rp-tomate); }
.callout > * { position: relative; z-index: 1; }
.callout h2 { color: var(--rp-blanc); }
.callout p { color: var(--rp-ciel); margin-top: .3rem; }
.callout .big-tel { font-size: clamp(1.5rem, 1rem + 2vw, 2.2rem); font-weight: 700; color: var(--rp-blanc); text-decoration: none; font-variant-numeric: tabular-nums; white-space: nowrap; margin-right: 3rem; }
@media (max-width: 600px) { .callout .big-tel { margin-right: 0; } }

/* Pied de page */
.foot { background: var(--rp-marine); color: var(--rp-ciel); padding-block: 3rem 2rem; font-size: .9rem; }
.foot a { color: var(--rp-blanc); }
.foot__grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 2rem; }
.foot__grid > * { min-width: 0; }
.foot h2 { font-size: 1.05rem; margin-bottom: .6rem; color: var(--rp-blanc); }
.foot ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .45rem; }
.foot__logo { height: 4.2rem; width: auto; margin-bottom: .8rem; }
.foot .legal { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid rgb(220 229 239 / .3); font-size: .8rem; }
@media (max-width: 760px) { .foot__grid { grid-template-columns: 1fr; } }
@media (max-width: 560px) { .top__tools { width: 100%; justify-content: space-between; } .top__in { gap: .5rem; } }
.textsize, .tel { flex: none; }
@media (max-width: 720px) { .top .top__cta { display: none; } }
.top--slim .top__cta { display: none !important; }
@media (max-width: 420px) { .btn--lg { padding-inline: 1.1rem; font-size: 1rem; } }
.section--brand .assiette-deco { left: auto; right: -8rem; bottom: auto; top: -9rem; }
.section--brand .split { position: relative; z-index: 1; }
.vichy { background-image: linear-gradient(90deg, rgb(27 42 78 / .32) 50%, transparent 50%), linear-gradient(rgb(27 42 78 / .32) 50%, transparent 50%); }

/* ===== V4 : composer sa semaine ===== */
.btn--quiet { background: transparent; color: var(--rp-marine); font-weight: 400; padding-inline: .6rem; text-decoration: underline; text-decoration-thickness: 1px; }
.btn--quiet b { font-variant-numeric: tabular-nums; }
.btn .ic { width: 1.4rem; height: 1.4rem; }

.stage { background: var(--rp-farine); padding-block: clamp(2rem, 4.5vw, 3.8rem) clamp(2.5rem, 5vw, 4.5rem); position: relative; overflow: hidden; }
.stage::after { content: ""; position: absolute; width: 22rem; height: 22rem; border-radius: 50%; background: var(--rp-tomate); right: -11rem; top: -11rem; }
.stage__grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(2rem, 4vw, 3.5rem); align-items: center; }
.stage__grid > * { min-width: 0; }
@media (max-width: 960px) { .stage__grid { grid-template-columns: 1fr; } .stage::after { width: 14rem; height: 14rem; right: -8rem; top: -8rem; } }
.stage .tag { font-family: var(--rp-titre); font-size: 1.15rem; }
.stage h1 { margin-top: .4rem; }

.phrase { margin-top: 1.8rem; display: grid; gap: 1.3rem; }
.phrase__line { font-family: var(--rp-titre); font-size: clamp(1.35rem, 1.05rem + 1.1vw, 1.8rem); line-height: 1.9; }
.slot { display: inline-block; position: relative; white-space: nowrap; }
.slot select, .slot input { font: inherit; color: var(--rp-brique); background: var(--rp-blanc); border: 0; border-bottom: 3px solid var(--rp-brique); border-radius: 10px 10px 4px 4px; min-height: 0; height: auto; padding: .05em 1.5em .05em .35em; width: auto; line-height: 1.35; cursor: pointer; appearance: none; -webkit-appearance: none; field-sizing: content; box-shadow: 0 1px 0 var(--rp-filet); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B33A22' stroke-width='2.6' 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 .3em center; background-size: .8em; }
.slot select:hover, .slot input:hover { background-color: var(--rp-blanc); box-shadow: 0 0 0 3px var(--rp-ciel); }
.slot select:focus, .slot input:focus { outline: none; box-shadow: 0 0 0 3px var(--rp-marine); }
.slot--cp input { width: 4.4em; padding-right: .35em; background-image: none; cursor: text; text-align: center; letter-spacing: .04em; font-family: var(--rp-texte); font-weight: 700; }
.slot--cp input::placeholder { color: #9aa3b5; }
.phrase__answer { background: var(--rp-blanc); border-radius: var(--r); padding: 1rem 1.2rem; display: grid; gap: .3rem; border: 2px solid var(--rp-blanc); transition: border-color .2s ease; }
.phrase__price strong { font-size: 2rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.phrase__price span { color: var(--rp-ardoise); }
.phrase__when { color: var(--rp-persil); font-weight: 700; display: flex; gap: .5rem; }
.phrase__when b { font-variant-numeric: tabular-nums; }
.phrase.is-out .phrase__answer { border-color: var(--rp-moutarde-fond); background: var(--rp-moutarde-fond); }
.phrase.is-out .phrase__when { color: var(--rp-moutarde); }
.phrase.is-out #ph-go { opacity: .5; pointer-events: none; }

/* La nappe et le set de table */
.nappe { background-color: var(--rp-blanc); background-image: linear-gradient(90deg, rgb(27 42 78 / .3) 50%, transparent 50%), linear-gradient(rgb(27 42 78 / .3) 50%, transparent 50%); background-size: 44px 44px; border-radius: 26px; padding: clamp(1rem, 2.5vw, 1.6rem); transform: rotate(1deg); box-shadow: 0 30px 60px -30px rgb(27 42 78 / .45); }
.set { background: var(--rp-blanc); border-radius: 16px; padding: clamp(1rem, 2.5vw, 1.4rem); transform: rotate(-1deg); }
.set__head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap; border-bottom: 2px solid var(--rp-marine); padding-bottom: .5rem; margin-bottom: .9rem; }
.set__head span:first-child { font-family: var(--rp-titre); font-size: 1.25rem; }
.set__price { font-size: .85rem; color: var(--rp-ardoise); font-weight: 700; font-variant-numeric: tabular-nums; }
.set__grid { display: grid; grid-template-columns: auto repeat(7, minmax(0, 1fr)); gap: .45rem; }
.rowlab, .col { display: grid; grid-template-rows: 2rem auto auto; gap: .45rem; align-items: center; justify-items: center; }
.rowlab span { font-size: .72rem; font-weight: 700; color: var(--rp-ardoise); writing-mode: vertical-rl; transform: rotate(180deg); }
.col__d { width: 1.9rem; height: 1.9rem; border-radius: 50%; border: 2px solid var(--rp-marine); display: grid; place-items: center; font-size: .78rem; font-weight: 700; }
.col.is-liv .col__d { border-color: var(--rp-tomate); box-shadow: 0 0 0 3px var(--rp-blanc), 0 0 0 5px var(--rp-tomate); }
.pl { position: relative; width: 100%; aspect-ratio: 1; border-radius: 50%; padding: 0; border: 2px dashed var(--rp-filet); background: transparent; cursor: default; isolation: isolate; }
.pl span { position: absolute; inset: 16%; border-radius: 50%; }
.pl.on { border: 0; background: var(--rp-ciel); cursor: pointer; }
.pl.on span { border: 3px solid var(--rp-blanc); animation: pose .5s cubic-bezier(.2, .9, .3, 1.25) both; animation-delay: calc(var(--i, 0) * 45ms); }
.pl.on::before { content: ""; position: absolute; inset: 0; border-radius: 50%; background: inherit; animation: pose .5s cubic-bezier(.2, .9, .3, 1.25) both; animation-delay: calc(var(--i, 0) * 45ms); z-index: -1; }
.set__grid[data-pers="2"] .pl.on::after { content: ""; position: absolute; inset: 0; border-radius: 50%; background: var(--rp-ciel); box-shadow: inset 0 0 0 2px var(--rp-blanc); transform: translate(16%, -14%) scale(.82); z-index: -2; opacity: .9; }
.pl.on:hover, .pl.is-pick { box-shadow: 0 0 0 3px var(--rp-marine); }
.pl.is-pick { background: var(--rp-tomate); }
@keyframes pose { from { transform: scale(.4); opacity: 0; } to { transform: scale(1); opacity: 1; } }
.set__foot { margin-top: 1rem; font-size: .92rem; color: var(--rp-ardoise); min-height: 3em; }
.set__foot b { color: var(--rp-marine); }

/* Dans le carton : les étiquettes */
.carton { padding-block: clamp(3.5rem, 7vw, 6rem); overflow: hidden; }
.carton__grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.carton__grid > * { min-width: 0; }
@media (max-width: 960px) { .carton__grid { grid-template-columns: 1fr; } }
.facts { list-style: none; padding: 0; margin: .4rem 0 0; display: flex; gap: 1.4rem; flex-wrap: wrap; }
.facts li { display: flex; gap: .6rem; align-items: center; }
.facts b { display: block; line-height: 1.2; }
.facts span { font-size: .88rem; color: var(--rp-ardoise); line-height: 1.3; }
.labels { position: relative; min-height: 27rem; }
.label { position: absolute; width: min(19rem, 78%); background: var(--rp-blanc); border: 2px solid var(--rp-marine); border-radius: 12px; padding: 1rem 1.1rem 1.1rem; display: grid; gap: .5rem; box-shadow: 0 24px 40px -24px rgb(27 42 78 / .5); transition: transform .3s ease; }
.label--1 { left: 0; top: 2.2rem; transform: rotate(-7deg); }
.label--2 { left: 24%; top: 0; transform: rotate(3deg); }
.label--3 { left: 44%; top: 5.5rem; transform: rotate(-2deg); }
.label:hover { transform: rotate(0) translateY(-6px); z-index: 3; }
.label header { display: flex; align-items: center; gap: .6rem; padding-bottom: .5rem; border-bottom: 1px solid var(--rp-filet); }
.label header img:first-child { width: 2.4rem; height: 2.4rem; }
.label header p { display: grid; line-height: 1.1; }
.label header b { text-transform: uppercase; letter-spacing: .06em; font-size: 1.05rem; }
.label header span { font-size: .8rem; color: var(--rp-ardoise); }
.label__logo { margin-left: auto; width: 5rem; height: auto; }
.label h3 { font-size: 1.15rem; }
.label__sides { font-size: .8rem; color: var(--rp-ardoise); line-height: 1.45; }
.label dl { margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; background: var(--rp-farine); border-radius: 8px; padding: .5rem .6rem; }
.label dt { font-size: .62rem; text-transform: uppercase; letter-spacing: .08em; color: var(--rp-ardoise); font-weight: 700; }
.label dd { margin: 0; font-size: .82rem; font-weight: 700; }
.label__all { font-size: .78rem; }
@media (max-width: 560px) {
  .labels { min-height: 0; display: grid; gap: 0; }
  .label { position: relative; width: 88%; left: auto; top: auto; }
  .label--1 { transform: rotate(-3deg); } .label--2 { transform: rotate(2deg); margin: -2.5rem 0 0 10%; } .label--3 { transform: rotate(-1deg); margin: -2.5rem 0 0 4%; }
}

/* Menu en assiettes typographiques */
.plate--menu .plate__label { padding: 20%; }
.plate--menu .plate__label b { font-size: 1.1rem; }
.dishes { grid-auto-columns: minmax(13rem, 14.5rem); }
.dish__side { margin-top: .1rem; }

/* Frise de dates réelles */
.frise { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.2rem; position: relative; }
.frise::before { content: ""; position: absolute; left: 0; right: 0; top: .6rem; height: 2px; background: var(--rp-filet); }
.frise li { position: relative; padding-top: 2rem; display: grid; gap: .3rem; align-content: start; min-width: 0; }
.frise li::before { content: ""; position: absolute; top: 0; left: 0; width: 1.25rem; height: 1.25rem; border-radius: 50%; background: var(--rp-blanc); border: 2px solid var(--rp-marine); }
.frise li.is-key::before { background: var(--rp-tomate); border-color: var(--rp-tomate); box-shadow: 0 0 0 4px var(--rp-blanc), 0 0 0 6px var(--rp-tomate); }
.frise__date { font-weight: 700; font-variant-numeric: tabular-nums; font-size: .9rem; color: var(--rp-ardoise); }
.frise li.is-key .frise__date { color: var(--rp-marine); }
.frise b { font-family: var(--rp-titre); font-weight: 400; font-size: 1.2rem; }
.frise li > span:last-child { color: var(--rp-ardoise); font-size: .92rem; }
@media (max-width: 860px) { .frise { grid-template-columns: 1fr; gap: 1.4rem; } .frise::before { left: .6rem; right: auto; width: 2px; top: 0; bottom: 0; height: auto; } .frise li { padding: 0 0 0 2.2rem; } }

/* Fiche en bref */
.fiche { background: var(--rp-blanc); border: 2px solid var(--rp-marine); border-radius: 12px; padding: 1.2rem 1.3rem; }
.fiche dl { margin: .6rem 0 0; display: grid; grid-template-columns: max-content 1fr; gap: .4rem 1rem; font-size: .9rem; }
.fiche dt { font-weight: 700; }
.fiche dd { margin: 0; color: var(--rp-ardoise); }
@media (max-width: 480px) { .fiche dl { grid-template-columns: 1fr; } .fiche dd { margin-bottom: .3rem; } }

/* Barre basse mobile */
.dock { display: none; }
@media (max-width: 720px) {
  .dock { display: flex; gap: .6rem; position: fixed; left: 0; right: 0; bottom: 0; z-index: 25; background: var(--rp-blanc); border-top: 1px solid var(--rp-filet); padding: .6rem max(12px, env(safe-area-inset-right, 0px)) calc(.6rem + env(safe-area-inset-bottom, 0px)) max(12px, env(safe-area-inset-left, 0px)); }
  .dock .btn { flex: 1; padding-inline: .6rem; font-size: 1rem; }
  .dock .btn--ghost { flex: 0 0 auto; }
  .foot { padding-bottom: 6rem; }
}
.field { position: relative; }
.sugg { list-style: none; margin: 0; padding: .3rem; position: absolute; left: 0; right: 0; top: 100%; z-index: 5; background: var(--rp-blanc); border: 2px solid var(--rp-marine); border-radius: 12px; box-shadow: 0 16px 30px -16px rgb(27 42 78 / .5); }
.sugg button { width: 100%; text-align: left; background: none; border: 0; font: inherit; color: var(--rp-marine); padding: .7rem .8rem; min-height: 52px; border-radius: 8px; cursor: pointer; }
.sugg button:hover, .sugg button:focus { background: var(--rp-farine); }
.phrase__when { display: block; }
.set__grid[data-pers="2"] .pl.on::after { content: none; }
.set__grid[data-pers="2"] .pl.on { box-shadow: 3px -3px 0 0 var(--rp-blanc), 5px -5px 0 0 var(--rp-ciel); }
.set__grid[data-pers="2"] .pl.on:hover, .set__grid[data-pers="2"] .pl.is-pick { box-shadow: 0 0 0 3px var(--rp-marine); }

/* ===== V5 : photos, calendrier, espace client ===== */
@media (max-width: 1200px) { .top__nav { display: none; } }
.pl span { background-size: cover; background-position: center; }
.pl:not(.on) span { background-image: none !important; }
.pl.on span { border-width: 2px; }
.pl.is-pick { background: var(--rp-tomate); }
.set__hint { font-size: .78rem; color: var(--rp-ardoise); text-align: center; margin-top: .6rem; }
.pick { display: flex; gap: .8rem; align-items: center; }
.pick img { width: 4rem; height: 4rem; border-radius: 50%; object-fit: cover; flex: none; box-shadow: 0 0 0 3px var(--rp-blanc), 0 0 0 5px var(--rp-ciel); }
.pick small { display: block; font-size: .78rem; color: var(--rp-ardoise); font-weight: 700; }
.pick b { font-family: var(--rp-titre); font-weight: 400; font-size: 1.1rem; color: var(--rp-marine); line-height: 1.2; display: block; }
.pick em { display: block; font-style: normal; font-size: .8rem; color: var(--rp-persil); font-weight: 700; margin-top: .2rem; }

.dish .plate { box-shadow: 0 18px 30px -18px rgb(27 42 78 / .5); }
.dish .plate img { border-radius: 50%; }
.dish .plate:has(img)::before { z-index: 1; border-color: rgb(255 255 255 / .9); inset: 0; border-width: .45rem; }
.dish figcaption .dish__name { display: block; }

.cal { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.4rem; text-align: center; }
.cal li { display: grid; justify-items: center; gap: .45rem; align-content: start; position: relative; min-width: 0; }
.cal li:not(:last-child)::after { content: ""; position: absolute; top: 3.2rem; left: calc(50% + 3.6rem); right: calc(-50% + 3.6rem); border-top: 3px dotted var(--rp-filet); }
.leaf { width: 6.2rem; background: var(--rp-blanc); border: 2px solid var(--rp-marine); border-radius: 14px; overflow: hidden; display: grid; box-shadow: 0 14px 24px -16px rgb(27 42 78 / .55); margin-bottom: .4rem; }
.leaf__m { background: var(--rp-marine); color: var(--rp-blanc); font-weight: 700; font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; padding: .2rem 0; }
.leaf__n { font-size: 2.4rem; line-height: 1.15; font-variant-numeric: tabular-nums; padding-top: .15rem; }
.leaf__w { font-size: .78rem; color: var(--rp-ardoise); padding-bottom: .4rem; text-transform: capitalize; }
.cal li.is-key .leaf { border-color: var(--rp-tomate); box-shadow: 0 0 0 4px var(--rp-blanc), 0 0 0 7px var(--rp-tomate), 0 14px 24px -16px rgb(27 42 78 / .55); transform: rotate(-3deg); }
.cal h3 { font-size: 1.25rem; }
.cal p { color: var(--rp-ardoise); font-size: .95rem; }
.trio { height: 6.9rem; display: flex; align-items: center; margin-bottom: .4rem; }
.trio img { width: 4.4rem; height: 4.4rem; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 4px var(--rp-blanc), 0 10px 18px -10px rgb(27 42 78 / .6); }
.trio img + img { margin-left: -1.2rem; }
.trio img:nth-child(2) { transform: translateY(-.6rem); z-index: 1; }
@media (max-width: 860px) { .cal { grid-template-columns: 1fr 1fr; row-gap: 2.2rem; } .cal li::after { display: none; } }

/* Espace client */
.acct { display: grid; grid-template-columns: 1.3fr .7fr; gap: 1.6rem; align-items: start; }
.acct > * { min-width: 0; }
@media (max-width: 900px) { .acct { grid-template-columns: 1fr; } }
.card { background: var(--rp-blanc); border: 2px solid var(--rp-filet); border-radius: var(--r); padding: clamp(1.2rem, 3vw, 1.8rem); display: grid; gap: 1rem; }
.card--next { border-color: var(--rp-marine); position: relative; overflow: hidden; }
.card--next::after { content: ""; position: absolute; width: 9rem; height: 9rem; border-radius: 50%; background: var(--rp-tomate); right: -4.5rem; top: -4.5rem; }
.card--next > * { position: relative; z-index: 1; }
.next { display: flex; gap: 1.2rem; align-items: center; flex-wrap: wrap; }
.next .leaf { margin: 0; }
.next h2 { font-size: clamp(1.5rem, 1.1rem + 1.2vw, 1.9rem); }
.kv { display: grid; grid-template-columns: max-content 1fr; gap: .4rem 1rem; margin: 0; }
.kv dt { color: var(--rp-ardoise); }
.kv dd { margin: 0; font-weight: 700; font-variant-numeric: tabular-nums; }
.acts { display: grid; gap: .6rem; }
.act { display: grid; grid-template-columns: 2.2rem 1fr auto; gap: .8rem; align-items: center; width: 100%; text-align: left; background: var(--rp-blanc); border: 2px solid var(--rp-filet); border-radius: 14px; padding: .8rem 1rem; min-height: 64px; font: inherit; color: var(--rp-marine); cursor: pointer; text-decoration: none; }
.act:hover { border-color: var(--rp-marine); }
.act b { display: block; }
.act small { color: var(--rp-ardoise); font-size: .85rem; }
.act::after { content: ""; width: .7rem; height: .7rem; border-right: 2px solid currentColor; border-top: 2px solid currentColor; transform: rotate(45deg); }
.weekstrip { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .5rem; }
.weekstrip figure { margin: 0; display: grid; gap: .3rem; justify-items: center; text-align: center; }
.weekstrip img { width: 100%; aspect-ratio: 1; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 3px var(--rp-blanc), 0 0 0 5px var(--rp-ciel); }
.weekstrip figcaption { font-size: .72rem; font-weight: 700; color: var(--rp-ardoise); }
.login { max-width: 30rem; margin: 0 auto; }
.code input { font-size: 1.8rem; letter-spacing: .4em; text-align: center; font-weight: 700; font-variant-numeric: tabular-nums; }
.sheet { position: fixed; inset: auto 0 0 0; z-index: 40; background: var(--rp-blanc); border-radius: 22px 22px 0 0; box-shadow: 0 -20px 50px -10px rgb(27 42 78 / .35); padding: 1.4rem max(16px, env(safe-area-inset-right, 0px)) calc(1.4rem + env(safe-area-inset-bottom, 0px)) max(16px, env(safe-area-inset-left, 0px)); }
.sheet__in { max-width: 34rem; margin: 0 auto; display: grid; gap: 1rem; }
.veil { position: fixed; inset: 0; background: rgb(27 42 78 / .4); z-index: 39; }
.acct-link { display: inline-flex; align-items: center; gap: .4rem; text-decoration: none; font-weight: 700; font-size: .85rem; min-height: 2.8rem; flex: none; }
.acct-link .ic { width: 1.5rem; height: 1.5rem; }
@media (max-width: 1200px) { .top__nav a[href="mon-compte.html"] { display: none; } }
@media (max-width: 560px) { .acct-link span { display: none; } }
@media (max-width: 860px) { .trio img { width: 3.3rem; height: 3.3rem; } .trio img + img { margin-left: -1rem; } .leaf { width: 5.4rem; } .leaf__n { font-size: 2rem; } .trio { height: 6rem; } }
[hidden] { display: none !important; }
.leaf { text-align: center; }
@media (max-width: 1360px) { .top__nav { display: none; } }

/* ===== V6 : en-tête, comment ça marche, qualité, zones, carte ===== */
.topbar { background: var(--rp-marine); color: var(--rp-blanc); font-size: .8rem; }
.topbar__in { display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 3rem; flex-wrap: wrap; }
.topbar__msg { color: var(--rp-ciel); }
.topbar__tools { display: flex; align-items: center; gap: 1rem; }
.topbar .textsize { border-color: rgb(255 255 255 / .5); align-items: center; }
.topbar .textsize__l { padding: 0 .5rem; color: var(--rp-ciel); font-weight: 700; font-size: .75rem; }
.topbar .textsize button { min-height: 2.3rem; min-width: 2.6rem; background: transparent; color: var(--rp-blanc); border-left: 1px solid rgb(255 255 255 / .5) !important; }
.topbar .textsize button[aria-pressed="true"] { background: var(--rp-blanc); color: var(--rp-marine); }
.topbar .acct-link, .topbar .tel { color: var(--rp-blanc); min-height: 2.3rem; font-size: .85rem; }
.topbar .tel { font-size: 1rem; }
.top { position: sticky; top: env(safe-area-inset-top, 0px); }
.top__in { padding-block: .7rem; flex-wrap: nowrap; gap: 1.5rem; }
.brand { display: flex; align-items: center; gap: 1rem; margin-right: auto; line-height: 1; text-decoration: none; }
.brand img { height: 2.7rem; width: auto; }
.brand__tag { font-family: var(--rp-titre); font-size: .85rem; color: var(--rp-ardoise); padding-left: 1rem; border-left: 2px solid var(--rp-filet); white-space: nowrap; }
.top__nav { display: flex !important; gap: 1.2rem; }
.top__nav a { font-size: .8rem; padding-block: .4rem; border-bottom: 3px solid transparent; white-space: nowrap; }
.top__nav a.is-here { border-bottom-color: var(--rp-tomate); }
.top .top__cta { display: inline-flex !important; }
@media (max-width: 1240px) { .brand__tag { display: none; } }
@media (max-width: 1240px) {
  .top__in { flex-wrap: wrap; row-gap: .4rem; }
  .top__nav { order: 3; width: 100%; overflow-x: auto; gap: .5rem; padding-bottom: .2rem; scrollbar-width: none; }
  .top__nav a { background: var(--rp-farine); border-radius: 999px; padding: .45rem .9rem; border: 2px solid transparent; }
  .top__nav a.is-here { border-color: var(--rp-tomate); background: var(--rp-blanc); }
}
@media (max-width: 720px) { .top .top__cta { display: none !important; } .topbar__msg { display: none; } .topbar__in { justify-content: space-between; } .topbar__tools { width: 100%; justify-content: space-between; } .brand img { height: 2.3rem; } .textsize__l { display: none; } }
@media (max-width: 400px) { .topbar .acct-link span { display: none; } }

/* Comment ça marche : barquette, micro-ondes, assiette */
.howto { padding-block: clamp(3.5rem, 7vw, 5.5rem); }
.steps3 { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.2rem, 3vw, 2.5rem); }
.steps3 li { display: grid; gap: .5rem; justify-items: center; text-align: center; position: relative; align-content: start; min-width: 0; }
.steps3 li:not(:last-child)::after { content: ""; position: absolute; top: 6.5rem; right: -1.6rem; width: 1.6rem; height: 1.6rem; border-top: 3px solid var(--rp-tomate); border-right: 3px solid var(--rp-tomate); transform: rotate(45deg); }
.steps3__vis { height: 13rem; width: 100%; display: grid; place-items: center; background: var(--rp-farine); border-radius: var(--r); }
.steps3__n { width: 2.4rem; height: 2.4rem; border-radius: 50%; background: var(--rp-marine); color: var(--rp-blanc); display: grid; place-items: center; font-weight: 700; margin-top: -1.2rem; box-shadow: 0 0 0 4px var(--rp-blanc); }
.steps3 h3 { font-size: 1.3rem; }
.steps3 p { color: var(--rp-ardoise); font-size: .95rem; max-width: 18rem; }
@media (max-width: 860px) { .steps3 { grid-template-columns: 1fr; gap: 2rem; } .steps3 li::after { display: none; } }
.tray { position: relative; width: 11rem; height: 8rem; background: #f2f2f2; border-radius: 14px; padding: .55rem; box-shadow: inset 0 0 0 2px #d9dde4, 0 18px 26px -16px rgb(27 42 78 / .6); transform: rotate(-4deg); }
.tray__food { width: 100%; height: 100%; border-radius: 9px; background-size: cover; background-position: center; box-shadow: inset 0 0 0 2px rgb(255 255 255 / .55); }
.tray__food::after { content: ""; position: absolute; inset: .55rem; border-radius: 9px; background: linear-gradient(135deg, rgb(255 255 255 / .35), transparent 45%, rgb(255 255 255 / .18) 70%, transparent); }
.tray__label { position: absolute; left: -1rem; bottom: -1rem; background: var(--rp-blanc); border: 2px solid var(--rp-marine); border-radius: 10px; padding: .35rem .6rem; display: flex; gap: .4rem; align-items: center; transform: rotate(5deg); box-shadow: 0 8px 14px -8px rgb(27 42 78 / .5); }
.tray__label img { width: 1.8rem; height: 1.8rem; }
.tray__label p { display: grid; line-height: 1.05; text-align: left; }
.tray__label b { text-transform: uppercase; letter-spacing: .05em; font-size: .9rem; }
.tray__label span { font-size: .7rem; color: var(--rp-ardoise); }
.tray--mini { width: 5rem; height: 3.6rem; padding: .3rem; transform: none; box-shadow: inset 0 0 0 1px #d9dde4; }
.tray--mini .tray__food::after { inset: .3rem; }
.mw { width: 15rem; height: 9.5rem; background: var(--rp-blanc); border: 3px solid var(--rp-marine); border-radius: 16px; display: grid; grid-template-columns: 1fr 3.6rem; gap: .5rem; padding: .6rem; box-shadow: 0 18px 26px -16px rgb(27 42 78 / .6); }
.mw__door { background: #2a3a5f; border-radius: 9px; display: grid; place-items: end center; padding-bottom: .9rem; position: relative; overflow: hidden; box-shadow: inset 0 0 0 3px #1b2a4e; }
.mw__door::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 50% 70%, rgb(255 214 140 / .55), transparent 65%); animation: glow 4s ease-in-out infinite; }
.mw__plate { position: relative; width: 7rem; height: 1.2rem; border-radius: 50%; background: rgb(255 255 255 / .25); display: grid; place-items: end center; animation: spin 4s linear infinite; }
.mw__plate .tray { position: absolute; bottom: .4rem; }
.mw__panel { display: grid; grid-template-columns: 1fr 1fr; gap: .35rem; align-content: start; }
.mw__time { grid-column: 1 / -1; background: var(--rp-marine); color: #8ff0b0; font-family: ui-monospace, Menlo, monospace; font-weight: 700; font-size: 1rem; text-align: center; border-radius: 5px; padding: .25rem 0; font-variant-numeric: tabular-nums; }
.mw__panel i { height: .85rem; border-radius: 3px; background: var(--rp-ciel); }
.mw__panel b { grid-column: 1 / -1; height: 1.6rem; width: 1.6rem; border-radius: 50%; border: 3px solid var(--rp-marine); justify-self: center; margin-top: .3rem; position: relative; }
.mw__panel b::after { content: ""; position: absolute; top: .1rem; left: 50%; width: 2px; height: .45rem; background: var(--rp-tomate); margin-left: -1px; }
@keyframes glow { 0%, 100% { opacity: .6; } 50% { opacity: 1; } }
@keyframes spin { 0% { transform: scaleX(1); } 50% { transform: scaleX(.85); } 100% { transform: scaleX(1); } }
.served { position: relative; width: 9.5rem; }
.served .plate { box-shadow: 0 18px 26px -14px rgb(27 42 78 / .6); }
.served .plate::before { inset: 0; border-width: .4rem; z-index: 1; border-color: rgb(255 255 255 / .9); }
.served .plate img { border-radius: 50%; }
.served__ding { position: absolute; top: -.6rem; right: -2.4rem; background: var(--rp-blanc); border: 2px solid var(--rp-marine); border-radius: 999px; padding: .15rem .7rem; font-family: var(--rp-titre); font-size: .95rem; transform: rotate(8deg); }
.facts--center { justify-content: center; margin-top: 2.4rem; gap: 2rem; }
@media (prefers-reduced-motion: reduce) { .mw__door::before, .mw__plate { animation: none; } }

/* Qualité */
.qualite { background: var(--rp-farine); padding-block: clamp(3.5rem, 7vw, 5.5rem); }
.qualite__grid { display: grid; grid-template-columns: .95fr 1.05fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.qualite__grid > * { min-width: 0; }
@media (max-width: 960px) { .qualite__grid { grid-template-columns: 1fr; } }
.qualite h2 { font-size: clamp(1.7rem, 1.2rem + 1.8vw, 2.4rem); }
.pledge { font-family: var(--rp-titre); font-size: 1.2rem; border-left: 4px solid var(--rp-tomate); padding-left: 1rem; }
.vs { display: grid; grid-template-columns: 1fr 1.1fr; gap: 0; align-items: stretch; }
.vs__col { border-radius: var(--r); padding: 1.4rem 1.3rem; display: grid; gap: .9rem; align-content: start; }
.vs__col h3 { font-size: 1.05rem; color: var(--rp-ardoise); font-family: var(--rp-texte); font-weight: 700; min-height: 2.4rem; display: flex; align-items: center; }
.vs__col ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .9rem; }
.vs__col li { display: grid; grid-template-columns: 1.4rem 1fr; gap: .6rem; font-size: .95rem; line-height: 1.35; min-height: 2.6rem; align-items: start; }
.vs__col--them { background: #efece6; color: var(--rp-ardoise); margin-block: 1rem; border-radius: var(--r) 0 0 var(--r); }
.vs__col--them li::before { content: ""; width: 1.2rem; height: 1.2rem; margin-top: .1rem; background: linear-gradient(45deg, transparent 44%, var(--rp-ardoise) 44% 56%, transparent 56%), linear-gradient(-45deg, transparent 44%, var(--rp-ardoise) 44% 56%, transparent 56%); opacity: .6; }
.vs__col--us { background: var(--rp-blanc); border: 3px solid var(--rp-marine); box-shadow: 0 24px 40px -24px rgb(27 42 78 / .5); position: relative; z-index: 1; }
.vs__col--us li { font-weight: 700; color: var(--rp-marine); }
.vs__col--us li::before { content: ""; width: 1.3rem; height: 1.3rem; border-radius: 50%; background: var(--rp-persil) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3.2 3L15 7' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/100% no-repeat; }
.vs__logo { height: 2.4rem; width: auto; min-height: 2.4rem; }
@media (max-width: 560px) { .vs { grid-template-columns: 1fr; } .vs__col--them { margin: 0 .8rem; border-radius: var(--r) var(--r) 0 0; } }

/* Zones : carte + recherche */
.zones2 { display: grid; grid-template-columns: 1.25fr .75fr; gap: clamp(1.5rem, 4vw, 3rem); align-items: start; }
.zones2 > * { min-width: 0; }
@media (max-width: 960px) { .zones2 { grid-template-columns: 1fr; } }
.map { background: var(--rp-farine); border-radius: calc(var(--r) * 1.2); padding: .6rem; }
.map svg { display: block; width: 100%; height: auto; }
.halo { stroke-width: 2; }
.halo--le-mans { fill: rgb(220 229 239 / .85); stroke: var(--rp-marine); stroke-dasharray: 5 6; }
.halo--loue { fill: rgb(224 74 47 / .12); stroke: var(--rp-tomate); stroke-dasharray: 5 6; }
.town circle { fill: var(--rp-marine); stroke: var(--rp-blanc); stroke-width: 2; transition: r .2s ease; }
.town--hub circle { fill: var(--rp-tomate); stroke-width: 3; }
.town.hl circle { fill: var(--rp-tomate); r: 9; }
.lab { font: 700 12px var(--rp-texte); fill: var(--rp-marine); paint-order: stroke; stroke: var(--rp-farine); stroke-width: 4px; stroke-linejoin: round; }
.lab--hub { font: 400 19px var(--rp-titre); }
.tagz rect { fill: var(--rp-blanc); stroke: var(--rp-marine); stroke-width: 2; }
.tagz text { font: 700 13px var(--rp-texte); fill: var(--rp-marine); }
.scale path { stroke: var(--rp-marine); stroke-width: 3; }
.scale text { font: 700 11px var(--rp-texte); fill: var(--rp-ardoise); }
.finder { display: grid; gap: .8rem; }
.finder__l { font-family: var(--rp-titre); font-size: 1.4rem; }
.finder input { font-size: 1.15rem; }
.finder__res:empty { display: none; }
.zday { display: grid; gap: .6rem; margin-top: .4rem; }
.zd { background: var(--rp-blanc); border: 2px solid var(--rp-filet); border-radius: 14px; }
.zd summary { list-style: none; cursor: pointer; display: flex; gap: .8rem; align-items: center; padding: .7rem .9rem; min-height: 64px; }
.zd summary::-webkit-details-marker { display: none; }
.zd summary span { display: grid; font-size: .85rem; color: var(--rp-ardoise); line-height: 1.3; }
.zd summary b { font-size: 1rem; color: var(--rp-marine); }
.zd summary::after { content: "Voir"; margin-left: auto; font-size: .8rem; font-weight: 700; text-decoration: underline; }
.zd[open] summary::after { content: "Fermer"; }
.zd__list { padding: 0 .9rem .6rem; font-size: .85rem; color: var(--rp-ardoise); }
.zd a { display: block; padding: 0 .9rem .9rem; font-weight: 700; font-size: .9rem; }

/* La carte du restaurant */
.carte { background: var(--rp-blanc); border-radius: 6px; padding: 1.6rem 1.5rem 1.3rem; box-shadow: 0 0 0 2px var(--rp-marine), 0 0 0 7px var(--rp-blanc), 0 0 0 9px var(--rp-marine), 0 30px 40px -28px rgb(27 42 78 / .6); margin: 9px; text-align: center; }
.carte__t { font-family: var(--rp-titre); font-size: 2rem; line-height: 1; }
.carte__sub { color: var(--rp-ardoise); font-size: .9rem; margin-top: .3rem; }
.carte__list { list-style: none; padding: 0; margin: 1.2rem 0 .8rem; display: grid; gap: .8rem; text-align: left; }
.carte__list li { display: flex; align-items: baseline; gap: .4rem; }
.carte__list span { font-family: var(--rp-titre); font-size: 1.05rem; line-height: 1.2; }
.carte__list small { display: block; font-family: var(--rp-texte); font-size: .78rem; color: var(--rp-ardoise); }
.carte__list i { flex: 1; border-bottom: 2px dotted var(--rp-filet); min-width: 1rem; transform: translateY(-.3rem); }
.carte__list b { font-variant-numeric: tabular-nums; white-space: nowrap; }
.carte__foot { font-size: .82rem; color: var(--rp-ardoise); border-top: 1px solid var(--rp-filet); padding-top: .8rem; }
.callme { display: flex; gap: 1rem; align-items: center; background: var(--rp-blanc); border-radius: var(--r); padding: 1rem 1.2rem; }
.callme > .ic { width: 2.6rem; height: 2.6rem; }
.callme p { color: var(--rp-ardoise); font-size: .9rem; }
.faq--ic summary { display: grid; grid-template-columns: 2.6rem 1fr; gap: .8rem; align-items: center; padding-block: .9rem; }
.faq--ic summary .ic { width: 2.4rem; height: 2.4rem; padding: .45rem; background: var(--rp-blanc); border-radius: 50%; box-shadow: inset 0 0 0 2px var(--rp-filet); }
.faq--ic summary::after { top: 50%; transform: translateY(-50%); }
.faq--ic details p { padding-left: 3.4rem; }
.faq--ic details p b { color: var(--rp-marine); }
.faq--ic details[open] summary .ic { box-shadow: inset 0 0 0 2px var(--rp-tomate); }
.topbar .ic { color: var(--rp-blanc); width: 1.3rem; height: 1.3rem; }
@media (max-width: 1500px) { .brand__tag { display: none; } }
@media (max-width: 420px) { .topbar .tel { font-size: .9rem; } .topbar__tools { gap: .6rem; } .topbar .textsize button { min-width: 2.3rem; } }
.vs__col h3, .vs__logo { height: 3rem; min-height: 3rem; margin: 0; }
.vs__logo { height: 2.2rem; margin-block: .4rem; }
.vs__col li { min-height: 3.3rem; }
.brand img { height: 3.1rem; } @media (max-width: 720px) { .brand img { height: 2.4rem; } }
/* Carte des zones v2 : aires par jour, sans cercles */
.area { stroke-width: 46; stroke-linejoin: round; }
.area--mardi { fill: #DCE5EF; stroke: #DCE5EF; }
.area--jeudi { fill: #F8E1DA; stroke: #F8E1DA; }
.town circle { stroke: var(--rp-blanc); stroke-width: 2; }
.town--mardi circle { fill: var(--rp-marine); }
.town--jeudi circle { fill: var(--rp-brique); }
.town text { font: 700 11px var(--rp-texte); fill: var(--rp-marine); paint-order: stroke; stroke: var(--rp-blanc); stroke-width: 4px; stroke-linejoin: round; opacity: 0; pointer-events: none; transition: opacity .15s; }
.town--key text { opacity: 1; }
.town--hub text { font: 400 20px var(--rp-titre); }
.town--hub circle { stroke-width: 3; }
.town:hover text, .town.hl text { opacity: 1; font-size: 14px; }
.town.hl circle { r: 10; fill: var(--rp-tomate); }
.town { cursor: pointer; }
.dist path { stroke: var(--rp-ardoise); stroke-width: 1.5; stroke-dasharray: 2 5; fill: none; }
.legend rect { fill: var(--rp-blanc); stroke: var(--rp-filet); }
.legend text { font: 700 14px var(--rp-texte); fill: var(--rp-marine); }
.lg--mardi { fill: var(--rp-marine); }
.lg--jeudi { fill: var(--rp-brique); }
.map__hint { font-size: .85rem; color: var(--rp-ardoise); text-align: center; padding: .4rem 0 .2rem; }
.brand__tag { display: none !important; } .top__nav { min-width: 0; }

/* ===== Carte façon plan, contours réels des communes ===== */
.map { background: var(--rp-blanc); border: 2px solid var(--rp-filet); border-radius: calc(var(--r) * 1.2); padding: 0; overflow: hidden; }
.map__bar { display: flex; gap: 1.2rem; flex-wrap: wrap; padding: .7rem 1rem; border-bottom: 1px solid var(--rp-filet); font-weight: 700; font-size: .9rem; }
.map__lg { display: inline-flex; align-items: center; gap: .5rem; }
.lg { width: 1.1rem; height: 1.1rem; border-radius: 4px; display: inline-block; }
.lg--mardi { background: #b9cde3; box-shadow: inset 0 0 0 2px var(--rp-marine); }
.lg--jeudi { background: #f3c7b9; box-shadow: inset 0 0 0 2px var(--rp-brique); }
.map__view { position: relative; touch-action: pan-y; }
.map__view svg { display: block; width: 100%; height: auto; }
.sea { fill: #eef0ec; }
.c { fill: #f7f6f2; stroke: #d6d9d4; stroke-width: .8; vector-effect: non-scaling-stroke; }
.c--mardi { fill: #c9d9ea; stroke: #fff; stroke-width: 1.2; cursor: pointer; }
.c--jeudi { fill: #f5d3c8; stroke: #fff; stroke-width: 1.2; cursor: pointer; }
.c:hover { fill: #ece9e2; }
.c--mardi:hover, .c--mardi.on { fill: #9fbad8; }
.c--jeudi:hover, .c--jeudi.on { fill: #eeb09e; }
.c.on { stroke: var(--rp-marine); stroke-width: 2.5; }
.ml { font: 700 11px var(--rp-texte); fill: var(--rp-marine); paint-order: stroke; stroke: rgb(255 255 255 / .9); stroke-width: 3.5px; stroke-linejoin: round; pointer-events: none; }
.ml--out { fill: var(--rp-ardoise); font-weight: 400; }
.ml--hub { font: 400 19px var(--rp-titre); }
.pin path { fill: var(--rp-tomate); stroke: #fff; stroke-width: 2; }
.pin circle { fill: #fff; }
.pin { pointer-events: none; animation: drop .4s cubic-bezier(.2, .9, .3, 1.3); transform-box: fill-box; }
@keyframes drop { from { opacity: 0; translate: 0 -20px; } }
.map__tip { position: absolute; z-index: 2; transform: translate(-50%, calc(-100% - 14px)); background: var(--rp-marine); color: var(--rp-blanc); padding: .4rem .7rem; border-radius: 10px; font-size: .85rem; font-weight: 700; white-space: nowrap; pointer-events: none; box-shadow: 0 8px 18px -8px rgb(0 0 0 / .5); }
.map__tip small { display: block; font-weight: 400; color: var(--rp-ciel); font-size: .75rem; }
.map__zoom { position: absolute; right: .7rem; top: .7rem; display: grid; background: var(--rp-blanc); border-radius: 10px; box-shadow: 0 4px 12px -4px rgb(27 42 78 / .4); overflow: hidden; }
.map__zoom button { width: 44px; height: 44px; border: 0; background: var(--rp-blanc); color: var(--rp-marine); font: 700 1.3rem/1 var(--rp-texte); cursor: pointer; }
.map__zoom button + button { border-top: 1px solid var(--rp-filet); }
.map__go { display: flex; gap: .5rem; padding: .7rem 1rem; border-top: 1px solid var(--rp-filet); flex-wrap: wrap; }
.map__go button { border: 2px solid var(--rp-filet); background: var(--rp-blanc); color: var(--rp-marine); border-radius: 999px; padding: .4rem 1rem; min-height: 44px; font: 700 .9rem var(--rp-texte); cursor: pointer; }
.map__go button[aria-pressed="true"] { border-color: var(--rp-marine); background: var(--rp-marine); color: var(--rp-blanc); }
.map__src { font-size: .72rem; color: var(--rp-ardoise); padding: 0 1rem .7rem; }

/* ===== Passe mobile et tablette ===== */
.acct-link { min-width: 44px; justify-content: center; }
@media (max-width: 860px) { .steps3 { grid-template-columns: repeat(3, 1fr); gap: 1rem; } .steps3 li::after { display: none; } .steps3__vis { height: 10rem; } .tray { width: 8.5rem; height: 6.2rem; } .mw { width: 11.5rem; height: 7.6rem; grid-template-columns: 1fr 2.8rem; } .served { width: 7.5rem; } .steps3 h3 { font-size: 1.1rem; } .steps3 p { font-size: .88rem; } }
@media (max-width: 640px) { .steps3 { grid-template-columns: 1fr; gap: 2rem; } .steps3__vis { height: 12rem; } .tray { width: 10rem; height: 7.2rem; } .mw { width: 14rem; height: 9rem; grid-template-columns: 1fr 3.4rem; } .served { width: 9rem; } }
@media (max-width: 700px) {
  .map__view svg { height: 27rem; }
  .ml { font-size: 13px; }
  .ml--hub { font-size: 22px; }
}
@media (max-width: 560px) {
  .compare table, .compare tbody, .compare tr, .compare td, .compare th { display: block; width: 100%; }
  .compare thead { display: none; }
  .compare tr { padding: .7rem 0; border-bottom: 1px solid var(--rp-filet); display: grid; grid-template-columns: 1fr 1fr; gap: .2rem .8rem; }
  .compare tbody th { grid-column: 1 / -1; border: 0; padding: 0; font-weight: 700; color: var(--rp-marine); }
  .compare td { border: 0; padding: .4rem .5rem; border-radius: 8px; font-size: .85rem; }
  .compare td:nth-child(2)::before { content: "Resto Pickup"; display: block; font-size: .7rem; color: var(--rp-ardoise); font-weight: 400; }
  .compare td:nth-child(3)::before { content: "Portage quotidien"; display: block; font-size: .7rem; color: var(--rp-ardoise); }
  .callme .big-tel { font-size: 1.45rem; white-space: nowrap; }
  .phrase__line { font-size: 1.28rem; line-height: 2.05; }
  .phrase__price strong { font-size: 1.7rem; }
  .carte { padding: 1.3rem 1rem 1.1rem; }
  .carte__list span { font-size: .98rem; }
  .head-center h2, .howto h2 { font-size: 1.55rem; }
  .vichy { padding: 1.4rem .8rem; }
}
.dock { transition: transform .25s ease; }
.dock.is-away { transform: translateY(110%); }
.pl::after { content: "" !important; position: absolute; inset: -4px; background: none !important; box-shadow: none !important; transform: none !important; opacity: 1 !important; }
.big-tel { display: inline-block; padding-block: .3rem; }

/* ===== Pied de page v2 ===== */
.foot { position: relative; overflow: hidden; padding-block: 0 1.6rem; margin-top: 0; }
.foot__days { display: flex; justify-content: center; gap: clamp(.6rem, 3vw, 2rem); padding: 1.6rem 16px 0; }
.foot__days img { width: clamp(2rem, 6vw, 3rem); height: auto; }
.foot__hero { display: grid; grid-template-columns: 1.2fr .8fr; gap: 2rem; align-items: center; padding-block: 2.4rem 2.6rem; border-bottom: 1px solid rgb(220 229 239 / .25); }
.foot__hero > * { min-width: 0; }
.foot__big { font-family: var(--rp-titre); font-size: clamp(2.2rem, 1.4rem + 3vw, 3.6rem); line-height: 1.05; color: var(--rp-blanc); }
.foot__big span { color: #f2a58f; }
.foot__sub { margin-top: .7rem; color: var(--rp-ciel); font-size: 1rem; max-width: 30rem; }
.foot__call { background: rgb(255 255 255 / .06); border: 1px solid rgb(220 229 239 / .25); border-radius: var(--r); padding: 1.3rem; display: grid; gap: .6rem; justify-items: start; }
.foot__call p { font-size: .85rem; }
.foot__tel { display: inline-flex; align-items: center; gap: .6rem; font-size: clamp(1.5rem, 1.1rem + 1.4vw, 2rem); font-weight: 700; text-decoration: none; font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--rp-blanc) !important; }
.foot__tel .ic { color: #f2a58f; width: 1.8rem; height: 1.8rem; }
.foot__grid { grid-template-columns: 1.3fr 1fr .9fr .9fr; padding-block: 2.2rem; gap: 1.8rem; }
.foot__grid p { font-size: .9rem; }
.foot__grid a { text-decoration: none; }
.foot__grid a:hover { text-decoration: underline; }
.foot__zones { gap: .7rem !important; }
.fz { display: flex; gap: .7rem; align-items: center; }
.fz img { width: 2.2rem; height: 2.2rem; flex: none; }
.fz span { display: grid; font-size: .82rem; color: var(--rp-ciel); line-height: 1.3; }
.fz b { color: var(--rp-blanc); font-size: .92rem; }
.foot__base { border-top: 1px solid rgb(220 229 239 / .25); padding-top: 1.2rem; display: grid; gap: .8rem; }
.foot__pay { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; font-size: .82rem; font-weight: 700; }
.foot__pay .ic { color: var(--rp-blanc); width: 1.3rem; height: 1.3rem; }
.foot__pay span { margin-right: .4rem; }
.foot__pay i { font-style: normal; font-size: .72rem; border: 1px solid rgb(220 229 239 / .4); border-radius: 6px; padding: .15rem .5rem; color: var(--rp-ciel); }
.foot .legal { margin: 0; padding: 0; border: 0; font-size: .78rem; color: var(--rp-ciel); }
@media (max-width: 960px) { .foot__hero { grid-template-columns: 1fr; } .foot__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .foot__grid { grid-template-columns: 1fr; } .foot__call { justify-items: stretch; } .foot__call .btn { width: 100%; } }
.foot .btn--on { color: var(--rp-marine) !important; text-decoration: none; }

/* ===== V11 : héros, parcours, mobile et tablette ===== */
.hero3 { background: var(--rp-farine); position: relative; overflow: hidden; padding-block: clamp(1.8rem, 4vw, 3.5rem) clamp(1.6rem, 3vw, 2.4rem); }
.hero3__grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.hero3__grid > * { min-width: 0; }
.hero3 .tag { font-family: var(--rp-titre); font-size: 1.15rem; }
.hero3 h1 { margin-top: .4rem; font-size: clamp(2.05rem, 1.2rem + 3vw, 3.1rem); line-height: 1.08; }
.hero3__lead { margin-top: 1rem; font-size: 1.1rem; color: var(--rp-ardoise); max-width: 32rem; }
.hero3__price { display: flex; align-items: center; gap: .8rem; margin-top: 1.3rem; }
.hero3__price strong { font-size: 2.6rem; font-weight: 700; font-variant-numeric: tabular-nums; line-height: 1; white-space: nowrap; }
.hero3__price span { font-size: .9rem; color: var(--rp-ardoise); line-height: 1.3; border-left: 2px solid var(--rp-tomate); padding-left: .8rem; }
.hero3__cta { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: 1.5rem; }
.hero3__cta .btn--ghost { font-variant-numeric: tabular-nums; white-space: nowrap; }
.hero3__aidant { margin-top: 1.1rem; font-size: .95rem; }
.hero3__aidant a { font-weight: 700; }
.hero3__vis { position: relative; aspect-ratio: 1 / .95; max-width: 34rem; width: 100%; justify-self: center; }
.hero3__vis .plate { position: absolute; box-shadow: 0 30px 50px -28px rgb(27 42 78 / .65); }
.hero3__vis .plate::before { inset: 0; border-width: .55rem; border-color: var(--rp-blanc); z-index: 1; }
.hero3__vis .plate img { border-radius: 50%; }
.hero3__p1 { width: 66%; left: 6%; top: 8%; }
.hero3__p2 { width: 38%; right: 0; top: 0; }
.hero3__p3 { width: 36%; right: 4%; bottom: 0; }
.hero3__tomate { position: absolute; width: 42%; left: -6%; bottom: -4%; transform: rotate(-20deg); }
.hero3__tag { position: absolute; left: 30%; bottom: 10%; z-index: 2; display: flex; align-items: center; gap: .6rem; background: var(--rp-blanc); border: 2px solid var(--rp-marine); border-radius: 12px; padding: .5rem .8rem; transform: rotate(-3deg); box-shadow: 0 12px 22px -12px rgb(27 42 78 / .6); }
.hero3__tag span { display: grid; line-height: 1.15; font-size: .8rem; color: var(--rp-ardoise); }
.hero3__tag b { color: var(--rp-marine); font-size: .9rem; }
.proofs { list-style: none; padding: 1.4rem 0 0; margin: 1.8rem 0 0; border-top: 1px solid var(--rp-filet); display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem 2rem; }
.proofs li { display: flex; gap: .8rem; align-items: center; }
.proofs .ic { width: 2.2rem; height: 2.2rem; }
.proofs span { display: grid; line-height: 1.3; font-size: .88rem; color: var(--rp-ardoise); }
.proofs b { color: var(--rp-marine); font-size: 1rem; }
@media (max-width: 960px) {
  .hero3__grid { grid-template-columns: 1fr; }
  .hero3__vis { order: -1; max-width: 26rem; aspect-ratio: 1 / .78; }
  .hero3__p1 { width: 56%; left: 14%; top: 4%; } .hero3__p2 { width: 32%; right: 4%; top: 0; } .hero3__p3 { width: 30%; right: 8%; bottom: 0; }
  .hero3__tag { left: 6%; bottom: 4%; }
}
@media (max-width: 640px) {
  .hero3__vis { max-width: 22rem; margin-bottom: -.4rem; }
  .hero3 h1 { font-size: 2rem; }
  .hero3__lead { font-size: 1rem; }
  .hero3__cta .btn { width: 100%; }
  .proofs { grid-template-columns: 1fr; gap: .9rem; margin-top: 1.4rem; }
}

/* Section commande */
.compose { padding-block: clamp(3.5rem, 7vw, 5.5rem); background: var(--rp-blanc); }
.compose .stage__grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: start; }
.compose .stage__grid > * { min-width: 0; }
.compose .phrase { margin-top: 0; }
.ph { white-space: normal; }
@media (max-width: 960px) { .compose .stage__grid { grid-template-columns: 1fr; } .compose .nappe { max-width: 34rem; margin-inline: auto; width: 100%; } }
@media (max-width: 640px) {
  .phrase__line { line-height: 1.5; display: grid; gap: .55rem; font-size: 1.2rem; }
  .ph { display: flex; align-items: center; flex-wrap: wrap; gap: .4rem; }
  .slot { flex: 1 1 auto; }
  .slot select, .slot input { width: 100%; padding-block: .3em; }
  .slot--cp { flex: 0 0 6.5em; }
  .compose .row .btn--main { width: 100%; }
  .compose .row { justify-content: center; }
  .nappe { transform: none; padding: .7rem; border-radius: 20px; }
  .set { transform: none; }
  .set__grid { gap: .3rem; }
  .rowlab { display: none; }
  .set__grid { grid-template-columns: repeat(7, minmax(0, 1fr)); }
}

/* En-tête : mince sur téléphone, bouton d'appel toujours à portée */
.top__call { display: none; }
@media (max-width: 720px) {
  .top__nav { display: none !important; }
  .top__in { flex-wrap: nowrap; padding-block: .5rem; }
  .top__call { display: inline-grid; place-items: center; width: 48px; height: 48px; border-radius: 50%; background: var(--rp-marine); color: var(--rp-blanc); flex: none; }
  .top__call .ic { color: var(--rp-blanc); width: 1.4rem; height: 1.4rem; }
  .topbar .tel { display: none; }
}
@media (min-width: 721px) and (max-width: 1240px) {
  .top__nav { scroll-padding-inline: 16px; }
  .top__nav::-webkit-scrollbar { display: none; }
}

/* Tablette : grilles intermédiaires */
@media (min-width: 641px) and (max-width: 960px) {
  .vs { max-width: 40rem; margin-inline: auto; }
  .faq-wrap { grid-template-columns: 1fr; }
  .faq-wrap > .stack { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem; align-items: start; }
  .split { grid-template-columns: 1fr; }
  .zones2 { grid-template-columns: 1fr; }
  .finder { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem 1.2rem; }
  .finder__l, .finder input, .finder__res { grid-column: 1 / -1; }
  .zday { grid-column: 1 / -1; grid-template-columns: 1fr 1fr; }
  .finder .hint { grid-column: 1 / -1; }
}

/* Confort de lecture */
.lead { text-wrap: pretty; }
p { text-wrap: pretty; }
.section, .howto, .qualite, .compose, .carton { scroll-margin-top: 5rem; }
:target { scroll-margin-top: 5.5rem; }
@media (max-width: 1000px) { .topbar__msg { display: none; } .topbar__tools { width: 100%; justify-content: flex-end; } }
@media (min-width: 761px) and (max-width: 960px) {
  .hero3__grid { grid-template-columns: 1.15fr .85fr; }
  .hero3__vis { order: 0; aspect-ratio: 1 / 1.05; }
  .hero3 h1 { font-size: 2.3rem; }
  .hero3__cta .btn { width: 100%; }
  .hero3__p1 { width: 78%; left: 0; top: 14%; } .hero3__p2 { width: 44%; right: 0; top: 0; } .hero3__p3 { width: 42%; right: 0; bottom: 4%; }
  .hero3__tag { left: 0; bottom: 6%; }
}
@media (max-width: 760px) {
  .hero3__vis { order: 2; max-width: 20rem; aspect-ratio: 1 / .8; margin-top: .4rem; }
}
@media (max-width: 640px) { .hero3__price strong { font-size: 2.3rem; } .hero3__price span { font-size: .85rem; } .hero3 .tag { display: none; } .hero3 h1 { margin-top: 0; } }

/* Commande : lisibilité téléphone */
.mini-total { margin: -.4rem 0 1rem; color: var(--rp-ardoise); font-size: .95rem; }
.mini-total b { color: var(--rp-marine); font-size: 1.15rem; font-variant-numeric: tabular-nums; }
.mini-recap { display: flex; justify-content: space-between; align-items: center; gap: .8rem; flex-wrap: wrap; background: var(--rp-farine); border-radius: 12px; padding: .7rem 1rem; margin: -.3rem 0 1.2rem; font-size: .95rem; }
.mini-recap b { font-variant-numeric: tabular-nums; }
.linkbtn { background: none; border: 0; padding: .5rem .2rem; min-height: 44px; font: 700 .95rem var(--rp-texte); color: var(--rp-marine); text-decoration: underline; cursor: pointer; }
@media (max-width: 640px) {
  .order { gap: 1.2rem; }
  .order .panel:first-child { border: 0; padding: 0; box-shadow: none; background: transparent; }
  legend { font-size: 1.45rem; }
  .choice > span { grid-template-columns: 1.6rem 1fr; padding: .9rem 1rem; }
  .choice em, .choices--col .choice em { grid-column: 2; grid-row: auto; font-size: 1rem; margin-top: .2rem; }
  .progress li { font-size: .78rem; }
  .nav-steps { flex-direction: column-reverse; }
  .nav-steps .btn { width: 100%; }
  .summary { position: relative; top: auto; }
}

/* Jours et service à la carte */
.col__d { font: 700 .78rem var(--rp-texte); color: var(--rp-marine); background: var(--rp-blanc); cursor: pointer; padding: 0; position: relative; }
.col__d::after { content: ""; position: absolute; inset: -6px; }
.col__d[aria-pressed="true"] { background: var(--rp-marine); color: var(--rp-blanc); }
.col.is-liv .col__d[aria-pressed="true"] { background: var(--rp-marine); }
.col.is-off .pl { opacity: .45; }
.essai { margin-top: .2rem; background: var(--rp-farine); border-radius: 12px; padding: .8rem 1rem; font-size: .95rem; line-height: 1.4; }
.essai input { margin-top: .1rem; }
.compose .essai { background: var(--rp-farine); }
.choices--3 { grid-template-columns: repeat(3, 1fr); }
.choices--3 .choice > span { grid-template-columns: 1.6rem 1fr; }
.qhint { display: block; font-weight: 400; font-size: .85rem; color: var(--rp-ardoise); }
.daypick { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .4rem; }
.daypick label { position: relative; }
.daypick input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; min-height: 0; }
.daypick span { display: grid; place-items: center; min-height: 56px; border: 2px solid var(--rp-filet); border-radius: 12px; font-weight: 700; font-size: .9rem; background: var(--rp-blanc); }
.daypick input:checked + span { background: var(--rp-marine); border-color: var(--rp-marine); color: var(--rp-blanc); }
.daypick input:focus-visible + span { outline: 3px solid var(--rp-tomate); outline-offset: 2px; }
#order-form .essai { margin-top: 1.4rem; }
@media (max-width: 640px) {
  .choices--3 { grid-template-columns: 1fr; }
  .daypick { gap: .25rem; }
  .daypick span { font-size: .78rem; min-height: 52px; border-radius: 10px; }
  .ph { flex-wrap: nowrap; }
}
.dishes[data-show="midi"] .dish[data-svc="soir"] { display: none; }

/* ===== V13 : rappel téléphonique, carte cadeau, professionnels, outil équipe ===== */
.hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.topbar__msg a { color: var(--rp-blanc); text-decoration: none; border-bottom: 2px solid var(--rp-tomate); padding-bottom: 1px; }
.topbar__msg a:hover { border-color: var(--rp-blanc); }

/* Fenêtre « On vous rappelle » : panneau bas sur mobile, carte centrée sur grand écran */
.has-sheet { overflow: hidden; }
.sheet { border: 0; padding: 0; background: transparent; max-width: none; max-height: none; width: 100%; height: 100%; margin: 0; }
.sheet::backdrop { background: rgb(27 42 78 / .55); }
.sheet[open] { display: grid; align-items: end; justify-items: center; }
.sheet__in { position: relative; width: min(100%, 34rem); max-height: 94dvh; overflow: auto; background: var(--rp-blanc); border-radius: 24px 24px 0 0; padding: 1.6rem var(--gut-r) calc(1.4rem + env(safe-area-inset-bottom, 0px)) var(--gut-l); display: grid; gap: .2rem; animation: sheetUp .28s cubic-bezier(.2,.8,.2,1); }
.sheet__in [data-form-body] { display: grid; gap: .9rem; }
.sheet__in [data-form-body][hidden] { display: none; }
@media (min-width: 720px) { .sheet[open] { align-items: center; } .sheet__in { border-radius: var(--r); padding: 2.2rem; } }
@keyframes sheetUp { from { transform: translateY(40px); opacity: 0; } to { transform: none; opacity: 1; } }
.sheet__x { position: absolute; right: .6rem; top: .6rem; width: 56px; height: 56px; border: 0; background: none; font-size: 2rem; line-height: 1; color: var(--rp-marine); cursor: pointer; border-radius: 50%; }
.sheet__x:hover { background: var(--rp-farine); }
.sheet h2 { padding-right: 3rem; }
.sheet__lead { color: var(--rp-ardoise); }
.sheet .qlabel { margin: .2rem 0 -.3rem; }
.sheet__go { width: 100%; margin-top: .4rem; }
.sheet__alt { text-align: center; }
.sheet__rgpd { text-align: center; font-size: .8rem; color: var(--rp-ardoise); }
.sheet__ok { display: grid; justify-items: center; text-align: center; gap: .8rem; padding: 1rem 0; }
.sheet__ok[hidden] { display: none; }
.sheet__ok img { width: 88px; }
.sheet__ok p { color: var(--rp-ardoise); max-width: 26rem; }

/* Sélecteur segmenté, gros boutons */
.rseg { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; }
.rseg--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rseg label { position: relative; }
.rseg input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.rseg span { display: grid; place-items: center; text-align: center; min-height: 56px; padding: .4rem .5rem; border: 2px solid var(--rp-filet); border-radius: 14px; font-weight: 700; font-size: .95rem; line-height: 1.2; background: var(--rp-blanc); }
.rseg input:checked + span { border-color: var(--rp-marine); background: var(--rp-marine); color: var(--rp-blanc); }
.rseg input:focus-visible + span { outline: 3px solid var(--rp-marine); outline-offset: 3px; }

/* Bandeau « commander par téléphone » */
.phone-band { display: grid; grid-template-columns: auto 1fr auto; gap: .9rem; align-items: center; background: var(--rp-ciel); border-radius: var(--r); padding: .9rem 1rem; margin-bottom: 1.2rem; }
.phone-band .ic { width: 2rem; height: 2rem; }
.phone-band p { font-size: .95rem; }
.phone-band b { display: block; font-size: 1.05rem; }
@media (max-width: 560px) { .phone-band { grid-template-columns: auto 1fr; } .phone-band .btn { grid-column: 1 / -1; } }
.hero3__phone { margin-top: .6rem; font-size: .95rem; color: var(--rp-ardoise); }
.callme .btn { margin-top: .6rem; }
.giftcode { margin-top: 1.2rem; }
.giftcode summary { cursor: pointer; font-weight: 700; min-height: 44px; display: flex; align-items: center; }
.giftcode .team__row { margin-top: .4rem; }

/* Bloc cadeau sur l'accueil */
.gift-band { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.gift-band .giftcard { justify-self: center; }
@media (max-width: 860px) { .gift-band { grid-template-columns: 1fr; } }

/* Carte cadeau */
.giftcard { position: relative; overflow: hidden; aspect-ratio: 148 / 105; width: min(100%, 26rem); background: var(--rp-marine); color: var(--rp-blanc); border-radius: 20px; padding: 7% 8%; display: flex; flex-direction: column; box-shadow: 0 30px 60px -25px rgb(27 42 78 / .55); container-type: inline-size; }
.giftcard::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 9%; background-image: linear-gradient(90deg, rgb(255 255 255 / .55) 50%, transparent 50%), linear-gradient(rgb(255 255 255 / .55) 50%, transparent 50%); background-size: 22px 22px; }
.giftcard > * { position: relative; z-index: 1; margin: 0; }
.giftcard__plate { position: absolute; width: 62%; right: -16%; top: -22%; z-index: 0; }
.giftcard__logo { width: 27%; height: auto; }
.giftcard__k { margin-top: auto; font-size: 4.2cqi; letter-spacing: .16em; text-transform: uppercase; font-weight: 700; color: var(--rp-ciel); }
.giftcard__n { font-family: var(--rp-titre); font-size: 13cqi; line-height: 1; }
.giftcard__v { font-size: 4.2cqi; color: var(--rp-ciel); }
.giftcard__to { margin-top: 3cqi; font-size: 4.6cqi; }
.giftcard__msg { font-family: var(--rp-titre); font-size: 4cqi; color: var(--rp-ciel); margin-top: 1.5cqi; }
.giftcard__code { align-self: flex-start; margin-top: 3cqi; background: var(--rp-farine); color: var(--rp-marine); border-radius: 8px; padding: .4em .8em; font-weight: 700; letter-spacing: .14em; font-size: 4.4cqi; font-variant-numeric: tabular-nums; }
.giftcard__use { display: flex; align-items: flex-end; justify-content: space-between; gap: 4cqi; margin-bottom: 7cqi; }
.giftcard__use p:last-child { font-size: 3.2cqi; color: var(--rp-ciel); text-align: right; line-height: 1.35; }
.giftcard--tilt { transform: rotate(-4deg); }
.giftcard--big { width: min(100%, 40rem); margin: 1.5rem auto; aspect-ratio: auto; min-height: 0; }
.giftcard--big .giftcard__k { margin-top: 6cqi; }

.gift-hero { padding-block: clamp(2rem, 5vw, 4rem) clamp(3rem, 6vw, 5rem); overflow: hidden; }
.gift-hero__grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.gift-hero__text { display: grid; gap: 1.1rem; justify-items: start; }
.gift-hero__vis { display: grid; place-items: center; padding: 1rem; }
@media (max-width: 860px) { .gift-hero__grid { grid-template-columns: 1fr; } .gift-hero__vis { order: -1; } .giftcard--tilt { transform: rotate(-2deg); width: min(100%, 22rem); } }

.gift { display: grid; grid-template-columns: 1.25fr .75fr; gap: clamp(1.2rem, 3vw, 2.5rem); align-items: start; }
@media (max-width: 960px) { .gift { grid-template-columns: 1fr; } }
.gift__form h2 { margin-bottom: .2rem; }
.choices--gift { grid-template-columns: 1fr 1fr; }
@media (max-width: 560px) { .choices--gift { grid-template-columns: 1fr; } }
.gift__autre { margin-top: 1rem; }
.gift__autre[hidden] { display: none; }
.stepper { display: grid; grid-template-columns: 56px 6rem 56px; gap: .4rem; }
.stepper button { min-height: 56px; border: 2px solid var(--rp-marine); background: var(--rp-blanc); border-radius: 14px; font: 700 1.5rem var(--rp-texte); color: var(--rp-marine); cursor: pointer; }
.stepper input { text-align: center; font-weight: 700; }
.gift__pay { display: grid; grid-template-columns: auto 1fr; gap: 1rem; align-items: center; margin: 1.4rem 0 .8rem; padding-top: 1.2rem; border-top: 2px solid var(--rp-filet); }
.gift__pay .btn { justify-self: end; }
@media (max-width: 560px) { .gift__pay { grid-template-columns: 1fr; } .gift__pay .btn { justify-self: stretch; } }
.gift__total span { display: block; font-size: .85rem; color: var(--rp-ardoise); }
.gift__total strong { font-family: var(--rp-titre); font-weight: 400; font-size: 1.8rem; font-variant-numeric: tabular-nums; }
.gift__how { display: grid; gap: 1.2rem; }
.gsteps { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; counter-reset: s; }
.gsteps li { counter-increment: s; display: grid; grid-template-columns: 2.6rem 1fr; column-gap: .9rem; color: var(--rp-ardoise); }
.gsteps li::before { content: counter(s); grid-row: 1 / span 2; width: 2.6rem; height: 2.6rem; border-radius: 50%; background: var(--rp-tomate); color: var(--rp-blanc); display: grid; place-items: center; font-family: var(--rp-titre); font-size: 1.2rem; }
.gsteps b { color: var(--rp-marine); display: block; font-size: 1.05rem; }
.gift-done { text-align: center; display: grid; justify-items: center; gap: .6rem; }
.gift-done .lead { margin-inline: auto; }
.gift-done__act { justify-content: center; }

@media print {
  body * { visibility: hidden !important; }
  #giftcard, #giftcard * { visibility: visible !important; }
  #giftcard { position: fixed; left: 0; top: 0; width: 148mm; box-shadow: none; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  @page { size: A5 landscape; margin: 10mm; }
}

/* Professionnels */
.pro-hero { background: var(--rp-marine); color: var(--rp-blanc); padding-block: clamp(2.5rem, 6vw, 4.5rem); position: relative; overflow: hidden; }
.pro-hero::after { content: ""; position: absolute; width: 22rem; height: 22rem; border-radius: 50%; background: var(--rp-tomate); right: -9rem; bottom: -12rem; }
.pro-hero__grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.3fr .7fr; gap: clamp(2rem, 5vw, 4rem); align-items: center; }
.pro-hero h1 { color: var(--rp-blanc); font-size: clamp(1.9rem, 1.2rem + 2.6vw, 2.6rem); margin: .6rem 0 1rem; }
.pro-hero h1 span { color: var(--rp-ciel); }
.pro-hero__lead { color: var(--rp-ciel); max-width: 36rem; margin-bottom: 1.4rem; }
.pro-hero__facts { list-style: none; margin: 0; padding: 0; display: grid; gap: .8rem; }
.pro-hero__facts li { background: rgb(255 255 255 / .08); border: 1px solid rgb(255 255 255 / .2); border-radius: var(--r); padding: 1rem 1.2rem; display: grid; }
.pro-hero__facts b { font-family: var(--rp-titre); font-weight: 400; font-size: 1.7rem; }
.pro-hero__facts span { color: var(--rp-ciel); font-size: .92rem; }
@media (max-width: 860px) { .pro-hero__grid { grid-template-columns: 1fr; } .pro-hero__facts { grid-template-columns: repeat(3, minmax(0, 1fr)); } .pro-hero__facts b { font-size: 1.3rem; } }
@media (max-width: 560px) { .pro-hero__facts { grid-template-columns: 1fr; } }
.crumbs + .pro-hero { margin-top: .8rem; }
.pros { list-style: none; margin: 2rem 0 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.pros li { border: 2px solid var(--rp-filet); border-radius: var(--r); padding: 1.3rem; display: grid; gap: .3rem; align-content: start; }
.pros .ic { width: 2.2rem; height: 2.2rem; color: var(--rp-brique); margin-bottom: .3rem; }
.pros b { font-size: 1.1rem; }
.pros span { color: var(--rp-ardoise); font-size: .95rem; }
@media (max-width: 960px) { .pros { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .pros { grid-template-columns: 1fr; } }
.garanties { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; margin-top: 2rem; }
.garanties > div { background: var(--rp-blanc); border-radius: var(--r); padding: 1.3rem; border-top: 6px solid var(--rp-tomate); }
.garanties h3 { margin-bottom: .5rem; font-size: 1.1rem; }
.garanties p { color: var(--rp-ardoise); font-size: .95rem; }
@media (max-width: 1024px) { .garanties { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .garanties { grid-template-columns: 1fr; } }
.pro-limits { margin-top: 1.5rem; }
.pro-forms { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(1.2rem, 3vw, 2.5rem); align-items: start; }
.pro-forms [data-form-body][hidden] { display: none; }
@media (max-width: 960px) { .pro-forms { grid-template-columns: 1fr; } }
.flyer-card { display: grid; gap: 1rem; background: var(--rp-farine); border-radius: var(--r); padding: 1.2rem; }
.flyer-card__img img { display: block; border-radius: 10px; box-shadow: 0 14px 30px -18px rgb(27 42 78 / .6); }
.flyer-card h3 { margin-bottom: .4rem; }
.flyer-card p { color: var(--rp-ardoise); font-size: .95rem; margin-bottom: .8rem; }

/* Outil équipe */
.team__head { display: grid; gap: .8rem; margin-bottom: 1.5rem; }
.team__key { max-width: 20rem; }
.team__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; align-items: start; }
@media (max-width: 1100px) { .team__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 720px) { .team__grid { grid-template-columns: 1fr; } }
.team__h { font-size: 1.3rem; margin-bottom: .4rem; }
.team__row { display: grid; grid-template-columns: 1fr auto; gap: .5rem; }
.team__total { margin-top: 1rem; font-size: 1.05rem; }
.team__out { margin-top: 1.5rem; }
.team__link { word-break: break-all; font-weight: 700; margin-top: .4rem; }
.team .daypick span { font-size: .8rem; }
.linkbtn--on { color: inherit; font-size: inherit; padding: 0; min-height: 0; }
.rseg { border: 0 !important; padding: 0 !important; background: none !important; border-radius: 0 !important; }
.gsteps b { display: inline; }
.gsteps li > b { display: block; }
.choices--gift .choice > span { grid-template-columns: 1.6rem 1fr; }
.choices--gift .choice em { grid-column: 2; grid-row: auto; margin-top: .25rem; font-size: 1.05rem; }
.giftcard { text-align: left; }
.giftcard__code { white-space: nowrap; }
.pro-hero::after { right: auto; left: -12rem; bottom: -15rem; }

/* Encart régimes sous le menu */
.diet { display: grid; grid-template-columns: auto 1fr; gap: .9rem 1.1rem; align-items: start; max-width: 46rem; margin: 1.6rem auto 0; padding: 1.1rem 1.3rem; background: var(--rp-blanc); border: 2px solid var(--rp-filet); border-left: 6px solid var(--rp-marine); border-radius: var(--r); }
.diet .ic { width: 2.2rem; height: 2.2rem; color: var(--rp-marine); }
.diet h3 { font-size: 1.15rem; margin: 0 0 .3rem; }
.diet p { color: var(--rp-ardoise); font-size: 1rem; line-height: 1.55; margin: 0; }
.diet p + p { margin-top: .35rem; }
.diet b { color: var(--rp-marine); }
.diet a { white-space: nowrap; }
@media (max-width: 560px) { .diet { grid-template-columns: 1fr; } }
[data-dish-toggle] { flex-wrap: nowrap; white-space: nowrap; max-width: 100%; }
[data-dish-toggle] button { padding-inline: clamp(.8rem, 3vw, 1.2rem); }

/* Choix rapides des jours (page commande) */
.presets { display: flex; flex-wrap: wrap; gap: .5rem; margin: .2rem 0 .7rem; }
.presets button { min-height: 48px; padding: .4rem 1rem; border: 2px solid var(--rp-filet); border-radius: 999px; background: var(--rp-blanc); color: var(--rp-marine); font: 700 .95rem var(--rp-texte); cursor: pointer; }
.presets button[aria-pressed="true"] { border-color: var(--rp-marine); background: var(--rp-ciel); }
.presets button:focus-visible { outline: 3px solid var(--rp-marine); outline-offset: 3px; }

.is-disabled { opacity: .45; pointer-events: none; }

/* Pages communes */
.cm-facts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; align-self: center; }
.cm-facts li { background: var(--rp-blanc); border: 2px solid var(--rp-filet); border-radius: var(--r); padding: .9rem 1rem; display: grid; gap: .2rem; }
.cm-facts li:first-child { border-color: var(--rp-marine); }
.cm-facts span { font-size: .85rem; color: var(--rp-ardoise); }
.cm-facts b { font-size: 1.15rem; }
.cm-grid { display: grid; grid-template-columns: 1.4fr .6fr; gap: clamp(1.5rem, 4vw, 3rem); align-items: start; }
.cm-near { background: var(--rp-blanc); border-radius: var(--r); padding: 1.2rem 1.3rem; }
.cm-near h2 { font-size: 1.2rem; margin-bottom: .6rem; }
.cm-near ul { list-style: none; margin: 0 0 .8rem; padding: 0; }
.cm-near li { display: flex; justify-content: space-between; gap: .5rem; padding: .5rem 0; border-bottom: 1px solid var(--rp-filet); }
.cm-near small { color: var(--rp-ardoise); }
@media (max-width: 860px) { .cm-grid { grid-template-columns: 1fr; } }
@media (max-width: 420px) { .cm-facts { grid-template-columns: 1fr; } }
.towns-grid a { color: var(--rp-marine); }
.prose h2 small { font-family: var(--rp-texte); font-size: .9rem; color: var(--rp-ardoise); font-weight: 400; }

/* ===== Face-à-face rayon / Resto Pickup ===== */
.q-head { text-align: center; max-width: 44rem; margin: 0 auto 2rem; display: grid; gap: .8rem; justify-items: center; }
.q-head .lead { margin-inline: auto; }
.match { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: clamp(.8rem, 3vw, 2rem); max-width: 60rem; margin: 0 auto; }
.match__side { margin: 0; display: grid; justify-items: center; gap: 1rem; text-align: center; }
.match__vis { position: relative; width: min(100%, 300px); aspect-ratio: 1; display: grid; place-items: center; }
.match__side--them .match__vis { background: #ebe8e2; border-radius: 50%; }
.tray { width: 92%; filter: saturate(.4); }
.match__side--us .match__vis::before { content: ""; position: absolute; inset: -4% -14% 8% 12%; border-radius: 50%; background: var(--rp-tomate); }
.match__plate { position: relative; width: 86%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 50%; border: 8px solid var(--rp-blanc); box-shadow: 0 24px 40px -22px rgb(27 42 78 / .6); }
.match__dessert { position: absolute; width: 36%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 50%; border: 6px solid var(--rp-blanc); right: -4%; bottom: 2%; box-shadow: 0 14px 24px -14px rgb(27 42 78 / .6); }
.match figcaption { display: grid; gap: .35rem; justify-items: center; }
.match figcaption b { font-family: var(--rp-titre); font-weight: 400; font-size: clamp(1.15rem, 1rem + .6vw, 1.45rem); }
.match__side--them figcaption b { color: var(--rp-ardoise); }
.match__tag { font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; color: var(--rp-ardoise); background: #e3dfd8; border-radius: 999px; padding: .25rem .75rem; }
.match__tag--us { background: var(--rp-marine); color: var(--rp-blanc); }
.match__vs { font-family: var(--rp-titre); font-size: 1.4rem; width: 3.6rem; height: 3.6rem; border-radius: 50%; display: grid; place-items: center; background: var(--rp-blanc); border: 2px solid var(--rp-filet); color: var(--rp-marine); }
.duel { max-width: 60rem; margin: 2.2rem auto 0; display: grid; gap: 0; background: var(--rp-blanc); border-radius: var(--r); overflow: hidden; border: 2px solid var(--rp-filet); }
.duel__row { display: grid; grid-template-columns: 11rem 1fr 1fr; align-items: stretch; border-top: 1px solid var(--rp-filet); }
.duel__row:first-child { border-top: 0; }
.duel dt { padding: 1rem 1.1rem; font-weight: 700; font-size: .85rem; letter-spacing: .06em; text-transform: uppercase; color: var(--rp-ardoise); display: flex; align-items: center; }
.duel dd { margin: 0; padding: 1rem 1.1rem 1rem 2.8rem; position: relative; line-height: 1.45; display: flex; align-items: center; }
.duel dd::before { content: ""; position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); width: 1.25rem; height: 1.25rem; border-radius: 50%; }
.duel .them { color: var(--rp-ardoise); background: #f4f2ee; }
.duel .them::before { background: #d6d2ca url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M6.5 6.5l7 7M13.5 6.5l-7 7' stroke='%234A5368' stroke-width='2.2' stroke-linecap='round'/%3E%3C/svg%3E") center/100% no-repeat; }
.duel .us { color: var(--rp-marine); font-weight: 700; }
.duel .us::before { background: var(--rp-persil) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3.2 3L15 7' fill='none' stroke='white' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/100% no-repeat; }
.etude { max-width: 60rem; margin: 2rem auto 0; background: var(--rp-marine); color: var(--rp-blanc); border-radius: var(--r); padding: clamp(1.4rem, 3vw, 2rem); display: grid; gap: 1rem; }
.etude__t { font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; font-weight: 700; color: var(--rp-ciel); }
.etude__n { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.etude__n li { display: grid; gap: .3rem; border-top: 2px solid rgb(255 255 255 / .25); padding-top: .8rem; }
.etude__n b { font-family: var(--rp-titre); font-weight: 400; font-size: clamp(2rem, 1.4rem + 2vw, 2.8rem); line-height: 1; }
.etude__n span { color: var(--rp-ciel); font-size: .95rem; line-height: 1.4; }
.etude__src { font-size: .8rem; color: var(--rp-ciel); }
.etude__src a { color: var(--rp-blanc); }
.etude__us { font-family: var(--rp-titre); font-size: 1.25rem; }
.qualite .pledge { max-width: 60rem; margin: 2rem auto 0; text-align: center; border: 0; padding: 0; font-size: clamp(1.3rem, 1.1rem + .8vw, 1.7rem); }
.qualite .pledge::before, .qualite .pledge::after { content: ""; display: inline-block; width: 2rem; height: 2px; background: var(--rp-tomate); vertical-align: middle; margin: 0 .8rem; }
@media (max-width: 760px) {
  .match { grid-template-columns: 1fr 1fr; gap: .8rem; }
  .match__vs { position: absolute; left: 50%; transform: translate(-50%, -1.2rem); width: 2.8rem; height: 2.8rem; font-size: 1.1rem; z-index: 2; }
  .match { position: relative; }
  .match__vis { width: 100%; }
  .duel__row { grid-template-columns: 1fr 1fr; }
  .duel dt { grid-column: 1 / -1; padding: .8rem 1rem .2rem; background: var(--rp-blanc); }
  .duel dd { padding: .5rem .8rem .9rem 2.4rem; font-size: .92rem; align-items: flex-start; }
  .duel dd::before { top: .6rem; transform: none; left: .7rem; width: 1.1rem; height: 1.1rem; }
  .etude__n { grid-template-columns: 1fr; }
  .qualite .pledge::before, .qualite .pledge::after { display: none; }
}
#offrir { overflow: hidden; }
@media (max-width: 560px) {
  .gift-band .giftcard--tilt { transform: rotate(-2deg); width: min(92%, 20rem); }
  #proches .ticks li { font-size: 1rem; white-space: nowrap; }
}
@media (max-width: 340px) { #proches .ticks li { white-space: normal; } }
.qualite { overflow-x: clip; }
@media (max-width: 760px) {
  .duel__row { grid-template-columns: 1fr; }
  .duel dd { padding: .55rem 1rem .55rem 2.6rem; align-items: center; }
  .duel dd.them { padding-top: .6rem; }
  .duel dd.us { padding-bottom: .9rem; }
  .duel dd::before { top: 50%; transform: translateY(-50%); left: .9rem; }
}
.match__side--them .match__vis { background: none; }
.match__tray { width: 86%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: 50%; filter: saturate(.55) contrast(.95); box-shadow: 0 18px 30px -20px rgb(27 42 78 / .5); border: 8px solid #e3dfd8; }

/* ===== Espace équipe (admin) ===== */
.adm { min-height: 100dvh; background: #f3f1ec; }
.adm-login { min-height: 100dvh; display: grid; place-items: center; padding: 1.5rem; }
.adm-login .card { width: min(100%, 26rem); display: grid; gap: 1rem; }
.adm-login h1 { font-size: 1.8rem; }
.adm-app { display: grid; grid-template-columns: 250px minmax(0, 1fr); min-height: 100dvh; }
.adm-nav { background: var(--rp-marine); color: var(--rp-blanc); padding: 1.2rem .8rem; display: flex; flex-direction: column; gap: 1.2rem; position: sticky; top: 0; height: 100dvh; }
.adm-brand { background: var(--rp-blanc); border-radius: 12px; padding: .6rem .8rem; display: block; }
.adm-brand img { width: 100%; height: auto; display: block; }
.adm-nav nav { display: grid; gap: .2rem; }
.adm-nav nav > * { display: flex; align-items: center; gap: .7rem; min-height: 48px; padding: .4rem .8rem; border-radius: 10px; color: var(--rp-ciel); background: none; border: 0; font: 700 .95rem var(--rp-texte); text-align: left; cursor: pointer; text-decoration: none; position: relative; }
.adm-nav nav > *:hover { background: rgb(255 255 255 / .08); color: var(--rp-blanc); }
.adm-nav nav > [aria-current] { background: var(--rp-blanc); color: var(--rp-marine); }
.adm-nav .ic { width: 1.25rem; height: 1.25rem; flex: none; }
.adm-badge { margin-left: auto; min-width: 1.4rem; height: 1.4rem; border-radius: 999px; background: var(--rp-tomate); color: var(--rp-blanc); font: 700 .75rem/1.4rem var(--rp-texte); text-align: center; font-style: normal; padding: 0 .35rem; }
.adm-who { margin-top: auto; font-size: .8rem; color: var(--rp-ciel); display: grid; gap: .2rem; word-break: break-all; }
.adm-who .linkbtn { color: var(--rp-blanc); text-align: left; padding: 0; min-height: 0; }
.adm-main { padding: clamp(1rem, 3vw, 2rem); display: grid; gap: 1.2rem; align-content: start; min-width: 0; }
.adm-main > section { display: grid; gap: 1.2rem; }
.adm-main > section[hidden] { display: none; }
.adm-demo { background: #fff4d6; border: 2px solid #e9cf86; color: #6b4a00; border-radius: 12px; padding: .7rem 1rem; font-weight: 700; font-size: .92rem; }
.adm-h { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .8rem; }
.adm-h h1 { font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); }
.adm-tools { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.adm-tools select, .adm-tools input { min-height: 48px; border: 2px solid var(--rp-filet); border-radius: 12px; padding: 0 .8rem; font: 1rem var(--rp-texte); background: var(--rp-blanc); color: var(--rp-marine); max-width: 100%; }
.adm-tools input[type="search"] { width: min(22rem, 100%); }
.adm-lead { color: var(--rp-ardoise); max-width: 46rem; }
.adm .card { background: var(--rp-blanc); border-radius: var(--r); padding: 1.2rem 1.3rem; border: 1px solid var(--rp-filet); }
.adm .card h2 { font-size: 1.15rem; margin-bottom: .8rem; }
.kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(10.5rem, 1fr)); gap: .8rem; }
.kpi { background: var(--rp-blanc); border: 1px solid var(--rp-filet); border-radius: var(--r); padding: 1rem 1.1rem; display: grid; gap: .15rem; }
.kpi span { font-size: .82rem; color: var(--rp-ardoise); font-weight: 700; }
.kpi b { font-family: var(--rp-titre); font-weight: 400; font-size: 1.9rem; line-height: 1.1; font-variant-numeric: tabular-nums; }
.kpi small { color: var(--rp-ardoise); font-size: .8rem; }
.kpi--bad { border-color: var(--rp-brique); }
.kpi--bad b { color: var(--rp-brique); }
.adm-cols { display: grid; grid-template-columns: 1.2fr 1fr; gap: 1rem; }
.run { display: grid; grid-template-columns: 1fr auto; gap: .1rem 1rem; width: 100%; text-align: left; background: var(--rp-farine); border: 2px solid transparent; border-radius: 12px; padding: .8rem 1rem; margin-bottom: .5rem; cursor: pointer; font: inherit; color: var(--rp-marine); }
.run:hover { border-color: var(--rp-marine); }
.run__d { grid-column: 1 / -1; font-weight: 700; text-transform: capitalize; }
.run small { color: var(--rp-ardoise); justify-self: end; align-self: end; }
.todo { list-style: none; padding: 0; margin: 0; display: grid; gap: .5rem; }
.todo li { padding: .6rem .8rem; background: var(--rp-farine); border-radius: 10px; }
.todo .linkbtn { font-weight: 700; padding: 0; min-height: 0; text-align: left; }
.mini { list-style: none; margin: 0; padding: 0; }
.mini li { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .8rem; padding: .6rem 0; border-bottom: 1px solid var(--rp-filet); }
.mini li > span:not(.pill) { color: var(--rp-ardoise); font-size: .9rem; }
.mini .linkbtn { font-weight: 700; padding: 0; min-height: 0; }
.mini .pill { margin-left: auto; }
.pill { display: inline-block; border-radius: 999px; padding: .15rem .6rem; font-size: .75rem; font-weight: 700; white-space: nowrap; }
.pill--ok { background: #dcefe3; color: var(--rp-persil); }
.pill--bad { background: #f8ddd6; color: var(--rp-brique); }
.pill--warn { background: #fdf0cc; color: var(--rp-moutarde); }
.pill--info { background: var(--rp-ciel); color: var(--rp-marine); }
.pill--off { background: #e8e6e1; color: var(--rp-ardoise); }
.muted { color: var(--rp-ardoise); }
.run-sum { background: var(--rp-blanc); border-radius: 12px; padding: .8rem 1rem; border: 1px solid var(--rp-filet); }
.stops { list-style: none; margin: 0; padding: 0; display: grid; gap: .7rem; }
.stop { display: grid; grid-template-columns: 2.6rem 1fr auto; gap: .9rem; align-items: start; background: var(--rp-blanc); border: 2px solid var(--rp-filet); border-radius: var(--r); padding: 1rem; }
.stop--livre { border-color: var(--rp-persil); background: #f3faf5; }
.stop--absent, .stop--probleme { border-color: var(--rp-brique); }
.stop__n { width: 2.6rem; height: 2.6rem; border-radius: 50%; background: var(--rp-marine); color: var(--rp-blanc); display: grid; place-items: center; font-family: var(--rp-titre); font-size: 1.1rem; }
.stop__main { display: grid; gap: .2rem; min-width: 0; }
.stop__who { font-size: 1.1rem; }
.stop__who .linkbtn { font-weight: 700; padding: 0; min-height: 0; font-size: inherit; }
.stop__adr a, .stop__tel a { color: var(--rp-marine); }
.stop__note { background: #fff4d6; border-radius: 8px; padding: .3rem .6rem; font-size: .92rem; justify-self: start; }
.stop__meals { color: var(--rp-ardoise); font-size: .92rem; }
.stop__act { display: grid; gap: .35rem; }
.stop__act button { min-height: 44px; min-width: 6.5rem; border: 2px solid var(--rp-filet); background: var(--rp-blanc); border-radius: 10px; font: 700 .9rem var(--rp-texte); color: var(--rp-marine); cursor: pointer; }
.stop__act button[aria-pressed="true"][data-st="livre"] { background: var(--rp-persil); border-color: var(--rp-persil); color: var(--rp-blanc); }
.stop__act button[aria-pressed="true"]:not([data-st="livre"]) { background: var(--rp-brique); border-color: var(--rp-brique); color: var(--rp-blanc); }
.tbl-wrap { overflow-x: auto; background: var(--rp-blanc); border-radius: var(--r); border: 1px solid var(--rp-filet); }
.adm-tbl { width: 100%; border-collapse: collapse; min-width: 40rem; }
.adm-tbl th { text-align: left; font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; color: var(--rp-ardoise); padding: .8rem 1rem; border-bottom: 2px solid var(--rp-filet); }
.adm-tbl td { padding: .75rem 1rem; border-bottom: 1px solid var(--rp-filet); vertical-align: top; }
.adm-tbl td small { display: block; color: var(--rp-ardoise); font-size: .82rem; }
.adm-tbl tbody tr[data-client] { cursor: pointer; }
.adm-tbl tbody tr[data-client]:hover, .adm-tbl tbody tr[data-client]:focus { background: var(--rp-farine); outline: none; }
.prod-tbl th:first-child { width: 8rem; }
.prod-tbl .qty { font-family: var(--rp-titre); font-weight: 400; font-size: 1.6rem; display: block; }
.threads, .reqs { list-style: none; margin: 0; padding: 0; display: grid; gap: .6rem; }
.thread { width: 100%; text-align: left; display: grid; gap: .2rem; background: var(--rp-blanc); border: 2px solid var(--rp-filet); border-radius: var(--r); padding: .9rem 1.1rem; font: inherit; color: var(--rp-marine); cursor: pointer; }
.thread span { color: var(--rp-ardoise); }
.thread small { color: var(--rp-ardoise); font-size: .8rem; }
.thread--new { border-color: var(--rp-tomate); }
.thread--new b::after { content: " ●"; color: var(--rp-tomate); }
.req { display: grid; grid-template-columns: 1fr auto; gap: 1rem; background: var(--rp-blanc); border: 2px solid var(--rp-filet); border-radius: var(--r); padding: 1rem 1.1rem; }
.req--traite { opacity: .6; }
.req__t { font-weight: 700; margin-bottom: .4rem; }
.req__f { display: grid; grid-template-columns: max-content 1fr; gap: .2rem .8rem; margin: 0; font-size: .95rem; }
.req__f dt { color: var(--rp-ardoise); }
.req__f dd { margin: 0; }
.req__act { display: grid; gap: .4rem; align-content: start; }
.drawer { position: fixed; inset: 0; background: rgb(27 42 78 / .45); z-index: 60; display: flex; justify-content: flex-end; }
.drawer[hidden] { display: none; }
.drawer__in { position: relative; width: min(100%, 36rem); height: 100%; overflow-y: auto; background: var(--rp-blanc); padding: 1.6rem 1.4rem 3rem; display: grid; gap: .9rem; align-content: start; animation: drIn .22s ease-out; }
@keyframes drIn { from { transform: translateX(30px); opacity: 0; } to { transform: none; opacity: 1; } }
.drawer__in h2 { font-size: 1.7rem; padding-right: 3rem; }
.drawer__in h3 { font-size: 1.1rem; margin-top: .6rem; }
.dr-contact a { color: var(--rp-marine); font-weight: 700; }
.dr-card { background: var(--rp-farine); border-radius: 12px; padding: .8rem 1rem; display: grid; gap: .1rem; }
.dr-row { display: grid; grid-template-columns: 8rem 1fr; gap: .8rem; padding: .35rem 0; border-bottom: 1px solid var(--rp-filet); align-items: center; }
.dr-row:last-child { border-bottom: 0; }
.dr-row > span:first-child { color: var(--rp-ardoise); font-size: .88rem; }
.dr-row .pill { justify-self: start; }
.dr-acts { display: flex; flex-wrap: wrap; gap: .5rem; }
.dr-f { display: grid; gap: .7rem; background: var(--rp-farine); border-radius: 12px; padding: 1rem; }
.dr-f label { display: grid; gap: .3rem; font-weight: 700; font-size: .9rem; }
.dr-f input, .dr-f select, .dr-f textarea, .drawer__in > textarea, .reply textarea { min-height: 48px; border: 2px solid var(--rp-filet); border-radius: 10px; padding: .6rem .8rem; font: 1rem var(--rp-texte); color: var(--rp-marine); background: var(--rp-blanc); width: 100%; }
.dr-f fieldset { border: 0; padding: 0; margin: 0; }
.chat { display: grid; gap: .5rem; max-height: 22rem; overflow-y: auto; padding: .4rem; background: var(--rp-farine); border-radius: 12px; }
.bubble { max-width: 85%; display: grid; gap: .2rem; margin: 0; }
.bubble span { padding: .6rem .8rem; border-radius: 14px; line-height: 1.45; }
.bubble small { font-size: .72rem; color: var(--rp-ardoise); padding: 0 .4rem; }
.bubble--client { justify-self: start; }
.bubble--client span { background: var(--rp-blanc); border: 1px solid var(--rp-filet); border-bottom-left-radius: 4px; }
.bubble--equipe { justify-self: end; text-align: right; }
.bubble--equipe span { background: var(--rp-marine); color: var(--rp-blanc); border-bottom-right-radius: 4px; text-align: left; }
.reply { display: grid; gap: .5rem; }
.reply .btn { justify-self: end; }
@media (max-width: 1000px) { .adm-cols { grid-template-columns: 1fr; } }
@media (max-width: 860px) {
  .adm-app { grid-template-columns: 1fr; }
  .adm-nav { position: sticky; top: 0; height: auto; z-index: 40; flex-direction: row; align-items: center; padding: .5rem; gap: .5rem; overflow-x: auto; }
  .adm-brand, .adm-who { display: none; }
  .adm-nav nav { display: flex; gap: .3rem; }
  .adm-nav nav > * { white-space: nowrap; min-height: 44px; padding: .3rem .7rem; font-size: .85rem; }
  .stop { grid-template-columns: 2.2rem 1fr; }
  .stop__n { width: 2.2rem; height: 2.2rem; font-size: 1rem; }
  .stop__act { grid-column: 1 / -1; grid-template-columns: repeat(3, 1fr); }
  .stop__act button { min-width: 0; }
  .req { grid-template-columns: 1fr; }
  .req__act { grid-template-columns: 1fr 1fr; }
  .req__act a { grid-column: 1 / -1; }
}
@media print {
  .print-run .adm-nav, .print-run .adm-h .adm-tools, .print-run .stop__act, .print-run .adm-demo, .print-prod .adm-nav, .print-prod .adm-tools, .print-prod .adm-demo { display: none !important; }
  .print-run .adm-app, .print-prod .adm-app { display: block; }
  .print-run .stop { break-inside: avoid; border: 1px solid #999; }
  .adm { background: #fff; }
}
.adm-nav nav .ic { color: inherit !important; stroke: currentColor; }
.adm-nav nav .ic * { stroke: currentColor; }
@media (min-width: 1200px) { .kpis { grid-template-columns: repeat(5, minmax(0, 1fr)); } .kpis--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pay-next { color: var(--rp-ardoise); margin-bottom: .6rem; line-height: 1.5; }
.pay-next b { color: var(--rp-marine); }
#acct-home .mini a { color: var(--rp-marine); font-weight: 700; font-size: .9rem; }
#acct-home .chat, .sheet .chat { max-height: 18rem; }
.act b .adm-badge { margin-left: .4rem; vertical-align: middle; display: inline-block; }
.map__load { width: 100%; aspect-ratio: 800 / 600; background: #f3f1ec; }
