/* L'Art des Mets, Saint-Sever : feuille de style
   Direction : contemporain audacieux, aplats de couleur vive, titrage expressif, compositions asymétriques.
   Violet « tablier » + jaune maïs de Chalosse + rouge braise, sur encre aubergine et blanc. */

@font-face { font-family: 'Bricolage Grotesque'; font-style: normal; font-weight: 200 800; font-stretch: 75% 100%; font-display: swap;
  src: url(/fonts/bricolage-grotesque.woff2) format('woff2'); }
@font-face { font-family: 'Instrument Sans'; font-style: normal; font-weight: 400 700; font-display: swap;
  src: url(/fonts/instrument-sans.woff2) format('woff2'); }
@font-face { font-family: 'Instrument Sans'; font-style: italic; font-weight: 400 700; font-display: swap;
  src: url(/fonts/instrument-sans-italic.woff2) format('woff2'); }

:root {
  --violet: #4a1fd0;
  --violet-2: #3712a8;
  --violet-pale: #d8ccff;
  --mais: #ffd23f;
  --mais-2: #ffe27f;
  --feu: #ff5a2e;
  --feu-2: #f04516;
  --encre: #180b30;
  --encre-2: #4a3f63;
  --lilas: #f0ebff;
  --blanc: #ffffff;
  --ligne: #ddd5f3;

  --display: 'Bricolage Grotesque', 'Arial Narrow', sans-serif;
  --texte: 'Instrument Sans', system-ui, sans-serif;

  --s1: 4px; --s2: 8px; --s3: 12px; --s4: 16px; --s5: 24px; --s6: 32px; --s7: 48px; --s8: 64px; --s9: 96px; --s10: 128px;
  --wrap: 1240px;
  --rayon: 6px;
  --ease: cubic-bezier(.16, 1, .3, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 90px; }
body { margin: 0; font-family: var(--texte); font-size: 1.0625rem; line-height: 1.6; color: var(--encre); background: var(--blanc);
  text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--violet); text-decoration-thickness: 1.5px; text-underline-offset: .2em; }
a:hover { color: var(--violet-2); }
::selection { background: var(--mais); color: var(--encre); }
:focus-visible { outline: 3px solid var(--feu); outline-offset: 3px; border-radius: 2px; }
html { scrollbar-color: var(--violet) var(--lilas); }
p { margin: 0 0 var(--s4); }
strong { font-weight: 650; }
small { font-size: .875rem; }
.nw { white-space: nowrap; }
.wrap { width: min(100% - 40px, var(--wrap)); margin-inline: auto; }
.skip { position: absolute; left: -9999px; top: 0; background: var(--encre); color: #fff; padding: 10px 16px; z-index: 100; }
.skip:focus { left: 10px; top: 10px; }

h1, h2, h3, .display { font-family: var(--display); font-weight: 800; font-stretch: 78%; line-height: .92; letter-spacing: -.025em;
  margin: 0 0 var(--s5); text-wrap: balance; font-variation-settings: 'opsz' 96; }
h1 { font-size: clamp(2.9rem, 1.6rem + 5.6vw, 6rem); }
h2 { font-size: clamp(2.2rem, 1.4rem + 3.2vw, 4.2rem); }
h3 { font-size: clamp(1.45rem, 1.2rem + .8vw, 1.9rem); line-height: 1; letter-spacing: -.015em; margin-bottom: var(--s3); }
.lead { font-size: clamp(1.15rem, 1.05rem + .4vw, 1.35rem); line-height: 1.5; max-width: 38ch; }
.prose { max-width: 66ch; }
.prose h2 { font-size: clamp(1.9rem, 1.4rem + 2vw, 2.8rem); margin-top: var(--s8); }
.prose h3 { margin-top: var(--s6); }
.prose ul { padding-left: 1.2em; }
.prose li { margin-bottom: var(--s2); }

/* ---------- Boutons ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; font: 650 1rem/1 var(--texte); padding: 14px 20px;
  border-radius: 999px; text-decoration: none; border: 2px solid transparent; cursor: pointer; white-space: nowrap;
  transition: transform .4s var(--ease), background-color .2s, color .2s, box-shadow .4s var(--ease); }
.btn:hover { transform: translateY(-2px); box-shadow: 0 10px 22px -10px rgb(24 11 48 / .45); }
.btn:active { transform: translateY(0); box-shadow: none; }
.btn--lg { padding: 18px 26px; font-size: 1.0625rem; }
.btn--feu { background: var(--feu); color: var(--encre); }
.btn--feu:hover { background: var(--feu-2); color: var(--encre); }
.btn--encre { background: var(--encre); color: #fff; }
.btn--encre:hover { background: #000; color: #fff; }
.btn--violet { background: var(--violet); color: #fff; }
.btn--violet:hover { background: var(--violet-2); color: #fff; }
.btn--blanc { background: #fff; color: var(--encre); border-color: var(--encre); }
.btn--blanc:hover { background: var(--mais); color: var(--encre); }
.btn--ligne { background: transparent; color: inherit; border-color: currentColor; }
.btn--ligne:hover { background: #fff; color: var(--encre); border-color: #fff; }
.btn[disabled] { opacity: .55; cursor: progress; transform: none; }
.ico { width: 1.25em; height: 1.25em; flex: none; }
.ico--star { color: var(--feu); }
.btns { display: flex; flex-wrap: wrap; gap: var(--s3); align-items: center; }

/* ---------- En-tête ---------- */
.head { position: sticky; top: 0; z-index: 50; background: #fff; border-bottom: 2px solid var(--encre); }
.head__in { display: flex; align-items: center; gap: var(--s5); min-height: 74px; }
.logo { display: flex; flex-direction: column; text-decoration: none; color: var(--encre); line-height: 1; margin-right: auto; }
.logo__nom { font-family: var(--display); font-weight: 800; font-stretch: 75%; font-size: 1.85rem; letter-spacing: -.03em; }
.logo__ville { font: 700 .75rem/1 var(--texte); letter-spacing: .14em; text-transform: uppercase; color: var(--violet); margin-top: 4px; padding-left: 2px; }
.logo:hover { color: var(--violet); }
.nav ul { list-style: none; display: flex; gap: var(--s1); margin: 0; padding: 0; }
.nav a { display: block; padding: 10px 14px; border-radius: 999px; text-decoration: none; color: var(--encre); font-weight: 600; }
.nav a:hover { background: var(--lilas); }
.nav a[aria-current] { background: var(--mais); }
.nav__extra { display: none; }
.head__actions { display: flex; align-items: center; gap: var(--s3); }
.head__tel { display: inline-flex; align-items: center; gap: 8px; color: var(--encre); font-weight: 700; text-decoration: none; font-variant-numeric: tabular-nums; }
.head__tel:hover { color: var(--violet); }
.burger { display: none; width: 48px; height: 48px; border: 2px solid var(--encre); border-radius: 50%; background: #fff; cursor: pointer; position: relative; }
.burger span { position: absolute; left: 12px; right: 12px; height: 2px; background: var(--encre); transition: transform .4s var(--ease); }
.burger span:first-child { top: 18px; } .burger span:last-child { top: 26px; }
.burger[aria-expanded="true"] span:first-child { transform: translateY(4px) rotate(45deg); }
.burger[aria-expanded="true"] span:last-child { transform: translateY(-4px) rotate(-45deg); }

@media (max-width: 1080px) {
  .head__tel span { display: none; }
  .head__tel { width: 48px; height: 48px; justify-content: center; border-radius: 50%; background: var(--lilas); }
}
@media (max-width: 920px) {
  .burger { display: block; }
  .head__resa { display: none; }
  .nav { position: fixed; inset: 76px 0 0 0; background: var(--violet); color: #fff; padding: var(--s6) 20px calc(var(--s8) + 70px);
    overflow-y: auto; transform: translateX(100%); visibility: hidden; transition: transform .5s var(--ease), visibility 0s .5s; }
  .nav.ouvert { transform: none; visibility: visible; transition: transform .5s var(--ease); }
  .nav ul { flex-direction: column; gap: 0; }
  .nav a { color: #fff; font-family: var(--display); font-weight: 800; font-stretch: 78%; font-size: 2.6rem; line-height: 1; padding: 10px 0; border-radius: 0; letter-spacing: -.02em; }
  .nav a:hover, .nav a[aria-current] { background: none; color: var(--mais); }
  .nav__extra { display: flex; flex-direction: column; gap: var(--s3); margin-top: var(--s6); }
  body.menu-ouvert { overflow: hidden; }
}

/* ---------- Fil d'Ariane ---------- */
.fil ol { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; padding: 0; margin: var(--s4) auto 0; font-size: .9rem; color: var(--encre-2); }
.fil li + li::before { content: "/"; margin-right: 6px; color: var(--violet); }
.fil a { color: var(--encre-2); }

/* ---------- Sections et aplats ---------- */
.section { padding-block: clamp(64px, 9vw, 128px); }
.section--serre { padding-block: clamp(48px, 6vw, 80px); }
.aplat-violet { background: var(--violet); color: #fff; }
.aplat-violet a:not(.btn) { color: var(--mais); }
.aplat-violet .lead, .aplat-violet p { color: #f1ecff; }
.aplat-mais { background: var(--mais); color: var(--encre); }
.aplat-mais a:not(.btn) { color: var(--encre); }
.aplat-encre { background: var(--encre); color: #fff; }
.aplat-encre p { color: #e4def2; }
.aplat-encre a:not(.btn) { color: var(--mais); }
.aplat-lilas { background: var(--lilas); }
.aplat-feu { background: var(--feu); color: var(--encre); }

/* Grille asymétrique 12 colonnes */
.g12 { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: clamp(16px, 2.4vw, 32px); }
@media (max-width: 860px) { .g12 { grid-template-columns: minmax(0, 1fr); } .g12 > * { grid-column: 1 / -1 !important; } }

/* ---------- Héros accueil ---------- */
.hero { background: var(--violet); color: #fff; position: relative; overflow: hidden; }
.hero__in { padding-block: clamp(48px, 7vw, 104px) clamp(56px, 7vw, 112px); align-items: start; }
.hero__txt { grid-column: 1 / 8; }
.hero h1 { color: #fff; margin-bottom: var(--s6); }
.hero h1 em { font-style: normal; color: var(--mais); }
.hero .lead { color: #f1ecff; margin-bottom: var(--s6); }
.hero__note { display: flex; flex-wrap: wrap; gap: var(--s3) var(--s5); align-items: center; margin-top: var(--s6); font-size: .95rem; color: #e6defe; }
.hero__note .note { color: #fff; }
.hero a:not(.btn) { color: var(--mais); }
.hero h1 .l { display: block; }
.hero__cote { grid-column: 9 / 13; display: grid; gap: var(--s5); margin-top: var(--s2); }
.hero__photo { position: relative; }
.hero__photo img { width: 100%; aspect-ratio: 4 / 3.4; object-fit: cover; border-radius: var(--rayon); }
.hero__photo figcaption { font-size: .82rem; color: #e6defe; margin-top: 8px; }
.ligne-mots { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 0; }
.ligne-mots li { border: 1.5px solid currentColor; border-radius: 999px; padding: 4px 12px; font-size: .9rem; font-weight: 600; }
@media (max-width: 860px) { .hero__cote { margin-top: var(--s7); } }

.note { display: inline-flex; align-items: center; gap: 8px; text-decoration: none; color: inherit; font-size: .95rem; }
.note strong { font-size: 1.05rem; }
.note:hover span { text-decoration: underline; }

/* Ardoise : menu du jour */
.ardoise { background: var(--mais); color: var(--encre); padding: var(--s6) var(--s5) var(--s5); border-radius: var(--rayon);
  box-shadow: 0 24px 48px -24px rgb(24 11 48 / .55); position: relative; }
.ardoise__titre { font-size: 1.7rem; margin: 0; }
.ardoise__prix { font-family: var(--display); font-weight: 800; font-stretch: 75%; font-size: 4.6rem; line-height: .9; letter-spacing: -.04em;
  margin: 6px 0 var(--s2); color: var(--violet); font-variant-numeric: lining-nums; }
.ardoise__quand { font-weight: 600; font-size: .95rem; line-height: 1.4; }
.ardoise__plats { list-style: none; padding: 0; margin: 0 0 var(--s4); border-top: 2px solid var(--encre); }
.ardoise__plats li { padding: 10px 0; border-bottom: 1px solid rgb(24 11 48 / .3); line-height: 1.35; }
.ardoise__date { font-size: .84rem; margin: 0; color: #3d3216; }
.aplat-violet .ardoise p { color: var(--encre); }
.aplat-violet .ardoise .ardoise__date { color: #3d3216; }

/* ---------- Manifeste (présentation) ---------- */
.manif__cit { grid-column: 1 / 8; font-family: var(--display); font-weight: 700; font-stretch: 85%; font-size: clamp(1.9rem, 1.2rem + 2.6vw, 3.4rem);
  line-height: 1.02; letter-spacing: -.02em; margin: 0; text-wrap: balance; }
.manif__cit mark { background: var(--mais); color: inherit; padding: 0 .12em; box-decoration-break: clone; -webkit-box-decoration-break: clone; }
.manif__txt { grid-column: 9 / 13; grid-row: 1 / 3; padding-top: clamp(24px, 9vw, 160px); font-size: 1.125rem; }
.manif__img { grid-column: 2 / 8; grid-row: 2; margin-top: var(--s7); }
.manif__img img { border-radius: var(--rayon); width: 100%; aspect-ratio: 528 / 372; object-fit: cover; }
@media (max-width: 860px) { .manif__txt, .manif__img { grid-row: auto; } .manif__txt { padding-top: var(--s5); } .manif__img { margin-top: var(--s4); } }
.signature { font-weight: 700; color: var(--violet); }

/* ---------- Formules (liste typographique) ---------- */
.formules__tete { grid-column: 1 / 6; }
.formules__liste { grid-column: 6 / 13; list-style: none; margin: 0; padding: 0; border-top: 3px solid var(--encre); }
.formule { display: grid; grid-template-columns: 1fr auto; gap: 4px var(--s5); padding: var(--s5) 0; border-bottom: 1.5px solid var(--encre); align-items: end; }
.formule__nom { font-family: var(--display); font-weight: 800; font-stretch: 80%; font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.3rem); line-height: 1; letter-spacing: -.02em; margin: 0; }
.formule__prix { grid-row: 1 / 3; grid-column: 2; font-family: var(--display); font-weight: 800; font-stretch: 75%; font-size: clamp(2.6rem, 2rem + 2vw, 4rem);
  line-height: .85; letter-spacing: -.04em; color: var(--violet); font-variant-numeric: lining-nums; }
.formule__info { margin: 0; font-size: .98rem; }
.formule__info b { font-weight: 650; }

/* ---------- Carte complète ---------- */
.carte__sect { padding-block: var(--s7); border-top: 3px solid var(--encre); display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: var(--s5) clamp(16px, 3vw, 48px); }
.carte__sect h2 { margin: 0; font-size: clamp(2.4rem, 1.6rem + 3vw, 4.4rem); }
.carte__sect h2 small { display: block; font: 700 1rem/1.3 var(--texte); letter-spacing: 0; margin-top: var(--s3); color: var(--violet); }
.carte__plats { list-style: none; margin: 0; padding: 0; }
.carte__plats li { padding: 14px 0; border-bottom: 1px solid var(--ligne); font-size: 1.1rem; line-height: 1.4; display: flex; justify-content: space-between; gap: var(--s4); }
.carte__plats li span:last-child { font-weight: 700; color: var(--violet); white-space: nowrap; font-variant-numeric: tabular-nums; }
@media (max-width: 760px) { .carte__sect { grid-template-columns: 1fr; } }

/* ---------- Traiteur (accueil) ---------- */
.trait__tete { grid-column: 1 / 7; }
.trait__mots { grid-column: 1 / 7; list-style: none; padding: 0; margin: var(--s5) 0 var(--s6); display: flex; flex-wrap: wrap; gap: 4px 18px;
  font-family: var(--display); font-weight: 800; font-stretch: 78%; font-size: clamp(1.7rem, 1.2rem + 1.8vw, 2.8rem); line-height: 1.05; letter-spacing: -.02em; }
.trait__mots li:nth-child(3n+1) { color: var(--mais); }
.trait__mots li:nth-child(3n+2) { color: #fff; }
.trait__mots li:nth-child(3n) { color: var(--feu); }
.trait__photos { grid-column: 8 / 13; grid-row: 1 / span 3; display: grid; grid-template-columns: 1fr 1fr; gap: var(--s4); align-self: start; }
.trait__photos img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; border-radius: var(--rayon); }
.trait__photos img:nth-child(2) { margin-top: var(--s9); }
.trait__photos img:nth-child(3) { grid-column: 1 / 3; aspect-ratio: 16 / 10; margin-top: calc(var(--s7) * -1); width: 82%; justify-self: end; }
.trait__txt { grid-column: 1 / 7; }
@media (max-width: 860px) { .trait__photos { grid-row: auto; margin-top: var(--s6); } .trait__photos img:nth-child(2) { margin-top: var(--s7); } }

/* ---------- Le lieu ---------- */
.lieu__img { grid-column: 1 / 6; }
.lieu__img img { width: 100%; aspect-ratio: 528 / 564; object-fit: cover; border-radius: var(--rayon); }
.lieu__txt { grid-column: 7 / 13; align-self: center; }
.reperes { list-style: none; padding: 0; margin: var(--s5) 0; display: grid; gap: var(--s3); }
.reperes li { display: flex; gap: 12px; align-items: flex-start; }
.reperes .ico { color: var(--violet); margin-top: 3px; }
.aplat-encre .reperes .ico, .aplat-violet .reperes .ico { color: var(--mais); }

/* ---------- Avis / preuves ---------- */
.preuves { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--s6) var(--s7); align-items: start; }
.preuve { font-family: var(--display); font-weight: 800; font-stretch: 80%; font-size: clamp(1.6rem, 1.2rem + 1.6vw, 2.6rem); line-height: 1.05; letter-spacing: -.02em; margin: 0; max-width: 20ch; }
.preuve small { display: block; font: 500 .9rem/1.4 var(--texte); letter-spacing: 0; margin-top: 6px; }
.preuve a { color: inherit; }

/* ---------- Bande CTA ---------- */
.bande { background: var(--feu); color: var(--encre); }
.bande__in { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--s5) var(--s7); padding-block: clamp(48px, 6vw, 88px); }
.bande__titre { font-size: clamp(2rem, 1.4rem + 2.4vw, 3.6rem); margin-bottom: var(--s3); max-width: 18ch; }
.bande p { margin: 0; max-width: 46ch; font-size: 1.1rem; }
.bande__btns { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s5); }
.bande__tel { display: inline-flex; gap: 8px; align-items: center; color: var(--encre); font-weight: 700; font-size: 1.2rem; text-decoration: none; font-variant-numeric: tabular-nums; }
.bande__tel:hover { text-decoration: underline; color: var(--encre); }

/* ---------- Pages intérieures : en-tête ---------- */
.ptete { padding-block: clamp(40px, 6vw, 88px) clamp(48px, 6vw, 96px); }
.ptete__txt { grid-column: 1 / 9; }
.ptete__cote { grid-column: 9 / 13; align-self: end; }
.ptete h1 { margin-bottom: var(--s5); }
.ptete .lead { max-width: 44ch; }
.ptete__cote img { width: 100%; border-radius: var(--rayon); aspect-ratio: 3 / 3.4; object-fit: cover; }
@media (max-width: 860px) { .ptete__cote { margin-top: var(--s6); } }

/* Colonnes de contenu décalées */
.col-texte { grid-column: 3 / 10; }
.col-cote { grid-column: 10 / 13; }
.col-large { grid-column: 1 / 13; }
.col-g { grid-column: 1 / 7; } .col-d { grid-column: 7 / 13; }

.encart { background: var(--lilas); padding: var(--s6); border-radius: var(--rayon); }
.encart--mais { background: var(--mais); }
.encart h2, .encart h3 { font-size: 1.7rem; }
.encart > :last-child { margin-bottom: 0; }

.liste-coches { list-style: none; padding: 0; margin: 0 0 var(--s5); display: grid; gap: 10px; }
.liste-coches li { display: flex; gap: 10px; align-items: flex-start; }
.liste-coches .ico { color: var(--violet); margin-top: 3px; }
.aplat-encre .liste-coches .ico, .aplat-violet .liste-coches .ico { color: var(--mais); }

/* Étapes (devis) */
.etapes { list-style: none; counter-reset: e; padding: 0; margin: 0; display: grid; gap: 0; border-top: 3px solid currentColor; }
.etapes li { counter-increment: e; display: grid; grid-template-columns: 4.5rem 1fr; gap: var(--s4); padding: var(--s5) 0; border-bottom: 1.5px solid currentColor; }
.etapes li::before { content: counter(e); font-family: var(--display); font-weight: 800; font-stretch: 75%; font-size: 3.4rem; line-height: .8; color: var(--feu); }
.etapes h3 { margin-bottom: 6px; }
.etapes p { margin: 0; }

/* Galerie */
.galerie { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--s4); }
.galerie img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; border-radius: var(--rayon); }
.galerie figure { margin: 0; }
.galerie figure:nth-child(even) { margin-top: var(--s7); }
.galerie figcaption { font-size: .85rem; margin-top: 6px; }
@media (max-width: 760px) { .galerie { grid-template-columns: 1fr 1fr; } }

/* Trajets */
.trajets { list-style: none; padding: 0; margin: 0; border-top: 2px solid var(--encre); }
.trajets li { display: flex; justify-content: space-between; gap: var(--s4); padding: 12px 0; border-bottom: 1px solid var(--ligne); font-variant-numeric: tabular-nums; }
.trajets li b { font-weight: 650; }

/* FAQ */
.faq { border-top: 3px solid var(--encre); }
.faq details { border-bottom: 1.5px solid var(--encre); }
.faq summary { cursor: pointer; list-style: none; padding: var(--s5) 3rem var(--s5) 0; position: relative; font-family: var(--display); font-weight: 700; font-stretch: 88%;
  font-size: clamp(1.25rem, 1.1rem + .5vw, 1.55rem); line-height: 1.15; letter-spacing: -.01em; }
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after { content: ""; position: absolute; right: 6px; top: 50%; width: 22px; height: 22px; margin-top: -11px;
  background: linear-gradient(currentColor 0 0) center / 100% 3px no-repeat, linear-gradient(currentColor 0 0) center / 3px 100% no-repeat; transition: transform .4s var(--ease); }
.faq details[open] summary::after { transform: rotate(45deg); }
.faq summary:hover { color: var(--violet); }
.faq__r { padding: 0 0 var(--s5); max-width: 66ch; }

/* À compléter */
.a-completer { display: inline-block; background: repeating-linear-gradient(-45deg, #fff3b0 0 10px, #ffe680 10px 20px); color: #3b2a00;
  border: 2px dashed #8a6a00; padding: 2px 10px; border-radius: 4px; font: 600 .92rem/1.5 var(--texte); }
p.a-completer, div.a-completer { display: block; padding: 10px 14px; }

/* ---------- Formulaire ---------- */
.form { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s4); background: #fff; color: var(--encre); padding: clamp(20px, 3vw, 36px);
  border-radius: var(--rayon); border: 2px solid var(--encre); }
.form__titre { grid-column: 1 / -1; font-size: 2rem; margin: 0 0 var(--s2); }
.form label { display: grid; gap: 6px; font-weight: 600; font-size: .95rem; }
.form__plein, .form__rgpd, .form button, .form__msg, .form__aide { grid-column: 1 / -1; }
.form input, .form select, .form textarea { font: 400 1rem/1.4 var(--texte); color: var(--encre); padding: 12px 14px; border: 1.5px solid #8f84ad; border-radius: var(--rayon);
  background: #fff; width: 100%; transition: border-color .2s, box-shadow .2s; }
.form input:focus, .form select:focus, .form textarea:focus { outline: none; border-color: var(--violet); box-shadow: 0 0 0 3px rgb(74 31 208 / .25); }
.form input:user-invalid { border-color: #c4210b; }
.form ::placeholder { color: #6e6487; }
.form__rgpd { display: flex !important; grid-template-columns: none; gap: 10px !important; align-items: flex-start; font-weight: 400 !important; font-size: .9rem !important; }
.form__rgpd input { width: 20px; height: 20px; margin-top: 2px; flex: none; accent-color: var(--violet); }
.form button { justify-self: start; }
.form__msg { margin: 0; font-weight: 600; min-height: 1.4em; }
.form__msg.ok { color: #116b2f; } .form__msg.err { color: #b3200a; }
.form__aide { font-size: .88rem; margin: 0; color: var(--encre-2); }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 560px) { .form { grid-template-columns: 1fr; } }

.coord { list-style: none; padding: 0; margin: 0 0 var(--s5); display: grid; gap: var(--s4); }
.coord li { display: flex; gap: 14px; align-items: flex-start; }
.coord .ico { color: var(--violet); margin-top: 3px; width: 1.4em; height: 1.4em; }
.aplat-violet .coord .ico, .aplat-encre .coord .ico { color: var(--mais); }
.tel-geant { font-family: var(--display); font-weight: 800; font-stretch: 75%; font-size: clamp(2.6rem, 1.8rem + 3vw, 4.6rem); line-height: .95; letter-spacing: -.03em;
  text-decoration: none; display: inline-block; font-variant-numeric: lining-nums; }
.tel-geant:hover { text-decoration: underline; text-decoration-thickness: 4px; }

/* Plan du site */
.plan { columns: 2 280px; gap: var(--s7); }
.plan section { break-inside: avoid; margin-bottom: var(--s6); }
.plan ul { padding-left: 1.1em; }

/* ---------- Pied de page ---------- */
.foot { background: var(--encre); color: #e4def2; padding-bottom: 80px; }
.foot a { color: #fff; }
.foot a:hover { color: var(--mais); }
.foot__haut { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s5); align-items: center; padding-block: var(--s8) var(--s7); border-bottom: 1px solid #3a2d55; }
.foot__slogan { font-family: var(--display); font-weight: 800; font-stretch: 78%; font-size: clamp(1.9rem, 1.4rem + 2vw, 3.2rem); line-height: 1; letter-spacing: -.02em; color: #fff; max-width: 20ch; margin: 0; }
.foot__actions { display: flex; flex-wrap: wrap; gap: var(--s3); }
.foot__actions .btn--blanc { border-color: #fff; }
.foot__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s6); padding-block: var(--s7); }
.foot__h { font-size: 1.35rem; color: var(--mais); margin-bottom: var(--s4); }
.foot ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.foot address { font-style: normal; line-height: 1.7; margin-bottom: var(--s4); }
.foot__lien-ico { display: inline-flex; align-items: center; gap: 8px; }
.foot__note { display: flex; flex-wrap: wrap; gap: 6px; align-items: baseline; }
.foot__note small { width: 100%; color: #b9b0cc; }
.foot__bas { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s3); padding-top: var(--s5); border-top: 1px solid #3a2d55; font-size: .9rem; }
.foot__bas p { margin: 0; }
.foot__liens { display: flex; flex-wrap: wrap; gap: var(--s4); }
@media (max-width: 900px) { .foot__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .foot__grid { grid-template-columns: 1fr; } }

/* ---------- Barre mobile ---------- */
.mbar { display: none; }
@media (max-width: 760px) {
  .mbar { display: grid; grid-template-columns: 1fr 1.5fr; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; border-top: 2px solid var(--encre);
    padding-bottom: env(safe-area-inset-bottom); background: var(--encre); }
  .mbar a { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 58px; font-weight: 700; text-decoration: none; }
  .mbar__tel { background: #fff; color: var(--encre); }
  .mbar__cta { background: var(--feu); color: var(--encre); }
  body { padding-bottom: 60px; }
}

/* ---------- Mouvement : un seul moment, l'entrée du titre d'accueil ---------- */
@media (prefers-reduced-motion: no-preference) {
  .hero h1 .l { display: block; animation: monte 1.2s var(--ease); }
  .hero h1 .l:nth-child(2) { animation-duration: 1.35s; }
  .hero h1 .l:nth-child(3) { animation-duration: 1.5s; }
  @keyframes monte { from { transform: translateX(-.12em); letter-spacing: -.06em; filter: blur(3px); } to { transform: none; filter: none; } }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }

@media print { .head, .mbar, .foot__haut, .bande, .form { display: none !important; } }

/* Corrections après relecture des captures */
a[href^="tel:"] { white-space: nowrap; }
@media (max-width: 860px) {
  .lieu__img { margin-bottom: var(--s6); }
  .col-cote { margin-top: var(--s6); }
  .col-d { padding-left: 0 !important; margin-top: var(--s6); }
}
.foot .btn--blanc, .foot .btn--blanc:hover { color: var(--encre); }
.foot .btn--feu, .foot .btn--feu:hover { color: var(--encre); }
.form a:not(.btn) { color: var(--violet); }
.aplat-violet .a-completer, .aplat-encre .a-completer, .a-completer { color: #3b2a00; }
.aplat-violet .form p.form__aide, .aplat-encre .form p.form__aide, .aplat-mais .form p.form__aide { color: var(--encre-2); }
.aplat-violet .form .form__msg, .aplat-encre .form .form__msg { color: var(--encre); }
.form__msg.ok { color: #116b2f !important; } .form__msg.err { color: #b3200a !important; }
