/* Le Plat du Jour : feuille de style commune (site et back-office). Mobile d'abord. */
:root {
  --ink: #10261D;
  --bistrot: #1F4D3B;
  --bistrot-2: #2E6A52;
  --laiton: #B8862B;
  --laiton-ink: #7A5A1C;
  --laiton-soft: #F6EEDC;
  --sauge: #EEF2EF;
  --line: #E6E8E5;
  --muted: #55605A;
  --paper: #FFFFFF;
  --danger: #A8321C;
  --danger-soft: #FBEDEA;
  --ok-soft: #E6F1EA;
  /* Police définitive (licence commerciale) à venir : pile système en attendant. */
  --font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --radius: 12px;
  --radius-small: 8px;
  --wrap: 68rem;
  color-scheme: light;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; font-family: var(--font); font-size: 1rem; line-height: 1.55;
  color: var(--ink); background: var(--paper);
  display: flex; flex-direction: column; min-height: 100vh;
}
img { max-width: 100%; height: auto; }
a { color: var(--bistrot); text-underline-offset: 0.18em; }
a:hover { color: var(--ink); }
:focus-visible { outline: 3px solid var(--laiton); outline-offset: 2px; border-radius: 4px; }
h1, h2, h3 { line-height: 1.2; letter-spacing: -0.01em; margin: 0 0 0.6em; }
h1 { font-size: 1.75rem; font-weight: 800; }
h2 { font-size: 1.2rem; font-weight: 700; }
p { margin: 0 0 1em; }
code { font-size: 0.9em; background: var(--sauge); padding: 0.1em 0.35em; border-radius: 4px; word-break: break-all; }
[hidden] { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: -999px; top: 0; background: var(--ink); color: #fff; padding: 0.5rem 1rem; z-index: 10; }
.skip:focus { left: 0.5rem; top: 0.5rem; }
.muted { color: var(--muted); }
.wrap { width: 100%; max-width: var(--wrap); margin: 0 auto; padding: 0 1.1rem; }
.narrow { max-width: 28rem; padding-top: 2rem; padding-bottom: 3rem; }

/* En-tête */
.site-header {
  position: sticky; top: 0; z-index: 5; background: var(--paper);
  border-bottom: 1px solid var(--line); padding-top: env(safe-area-inset-top, 0px);
}
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; min-height: 3.75rem; }
.brand { display: inline-flex; align-items: center; gap: 0.6rem; text-decoration: none; color: var(--ink); }
.brand-mark {
  display: inline-grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: 50%;
  background: var(--bistrot); color: #fff; font-weight: 800; font-size: 0.8rem; letter-spacing: 0.02em;
  box-shadow: inset 0 0 0 2px var(--laiton);
}
.brand-name { font-weight: 800; font-size: 1rem; letter-spacing: -0.01em; white-space: nowrap; }
.header-nav { display: flex; align-items: center; gap: 0.5rem; }
.nav-link { text-decoration: none; font-weight: 600; padding: 0.5rem 0.4rem; white-space: nowrap; }
.account-chip {
  display: inline-flex; align-items: center; gap: 0.45rem; text-decoration: none; font-weight: 600;
  padding: 0.25rem 0.75rem 0.25rem 0.25rem; border: 1px solid var(--line); border-radius: 999px; color: var(--ink);
}
.account-chip img, .chip-initials { width: 1.75rem; height: 1.75rem; border-radius: 50%; object-fit: cover; }
.chip-initials { display: inline-grid; place-items: center; background: var(--sauge); font-size: 0.7rem; font-weight: 800; color: var(--bistrot); }
.account-chip span:last-child { display: none; }
.lang-menu { position: relative; }
.lang-menu summary {
  list-style: none; cursor: pointer; font-weight: 700; font-size: 0.85rem; padding: 0.45rem 0.6rem;
  border-radius: var(--radius-small); color: var(--muted);
}
.lang-menu summary::-webkit-details-marker { display: none; }
.lang-menu[open] summary, .lang-menu summary:hover { background: var(--sauge); color: var(--ink); }
.lang-menu ul {
  position: absolute; right: 0; top: calc(100% + 0.35rem); margin: 0; padding: 0.35rem; list-style: none;
  background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); min-width: 9rem;
  box-shadow: 0 10px 30px rgba(16, 38, 29, 0.12);
}
.lang-menu a { display: block; padding: 0.45rem 0.7rem; border-radius: 6px; text-decoration: none; color: var(--ink); }
.lang-menu a:hover, .lang-menu a[aria-current] { background: var(--sauge); }

.site-main { flex: 1; }

/* Messages */
.flashes { padding-top: 1rem; }
.flash { margin: 0 0 0.75rem; padding: 0.8rem 1rem; border-radius: var(--radius-small); background: var(--sauge); border-left: 4px solid var(--bistrot); }
.flash-success { background: var(--ok-soft); border-left-color: var(--bistrot-2); }
.flash-error { background: var(--danger-soft); border-left-color: var(--danger); }
.flash-info { background: var(--laiton-soft); border-left-color: var(--laiton); }
.notice { display: block; padding: 1rem 1.1rem; border-radius: var(--radius); margin: 0 0 1.25rem; }
.notice h2 { font-size: 1.05rem; margin-bottom: 0.3em; }
.notice p:last-child, .notice form { margin-bottom: 0; }
.notice-brass { background: var(--laiton-soft); box-shadow: inset 4px 0 0 var(--laiton); }
.notice-warn { background: var(--danger-soft); box-shadow: inset 4px 0 0 var(--danger); }
.notice-link { text-decoration: none; color: var(--ink); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.5rem; }
.notice-link span { color: var(--laiton-ink); font-weight: 700; }

/* Accueil */
.hero { background: var(--bistrot); color: #fff; }
.hero-inner { padding-top: 2.75rem; padding-bottom: 3rem; }
.hero h1 { font-size: clamp(2.1rem, 8vw, 3.6rem); line-height: 1.05; max-width: 14ch; letter-spacing: -0.025em; }
.hero h1::after { content: ""; display: block; width: 3.5rem; height: 4px; background: var(--laiton); border-radius: 2px; margin-top: 1.1rem; }
.hero .lead { font-size: 1.1rem; max-width: 34rem; color: #DCE7E1; }
.hero-note { background: rgba(255, 255, 255, 0.08); border-radius: var(--radius-small); padding: 0.75rem 1rem; max-width: 34rem; }
.paths { display: grid; gap: 1rem; padding-top: 1.5rem; padding-bottom: 3rem; }
.path {
  display: block; text-decoration: none; color: var(--ink); padding: 1.35rem 1.25rem;
  border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper);
}
.path:hover { border-color: var(--bistrot); color: var(--ink); }
.path p { color: var(--muted); }
.path-resto { background: var(--sauge); border-color: var(--sauge); }
.path-action { font-weight: 700; color: var(--bistrot); }

/* Formulaires */
.form { display: grid; gap: 1.1rem; margin-bottom: 1.5rem; }
.field { display: grid; gap: 0.35rem; min-width: 0; }
.field-row { display: grid; gap: 1.1rem; }
label, legend { font-weight: 600; font-size: 0.95rem; }
.optional { font-weight: 400; color: var(--muted); }
input[type=text], input[type=email], input[type=password], input[type=tel], input[type=search], input[type=url], input:not([type]), select {
  width: 100%; font: inherit; font-size: 1rem; color: var(--ink); background: var(--paper);
  border: 1px solid #C9D1CC; border-radius: var(--radius-small); padding: 0.7rem 0.8rem; min-height: 2.9rem;
}
input:focus, select:focus { outline: none; border-color: var(--bistrot); box-shadow: 0 0 0 3px rgba(31, 77, 59, 0.18); }
input[aria-invalid=true], fieldset[aria-invalid=true] { border-color: var(--danger); }
input[type=file] { font: inherit; font-size: 0.95rem; max-width: 100%; }
.code-input { font-size: 1.6rem !important; letter-spacing: 0.4em; font-weight: 700; text-align: center; max-width: 13rem; }
.field-help { font-size: 0.875rem; color: var(--muted); margin: 0; }
.field-error { font-size: 0.9rem; color: var(--danger); font-weight: 600; margin: 0; }
.check { display: flex; gap: 0.55rem; align-items: center; font-weight: 400; }
.check input { width: 1.15rem; height: 1.15rem; accent-color: var(--bistrot); }
fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.segmented { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border: 1px solid #C9D1CC; border-radius: var(--radius); padding: 0.25rem; }
.segmented-field legend { padding: 0 0 0.45rem; }
.segmented label { position: relative; cursor: pointer; }
.segmented input { position: absolute; opacity: 0; }
.segmented span { display: block; text-align: center; padding: 0.65rem 0.5rem; border-radius: 9px; font-weight: 700; color: var(--muted); }
.segmented input:checked + span { background: var(--bistrot); color: #fff; }
.segmented input:focus-visible + span { outline: 3px solid var(--laiton); outline-offset: 1px; }
.resto-fields { display: grid; gap: 1.1rem; padding: 1rem; border-radius: var(--radius); background: var(--sauge); }
.choices { display: grid; gap: 0.5rem; }
.choices legend { margin-bottom: 0.4rem; }
.choice { display: flex; gap: 0.65rem; align-items: flex-start; font-weight: 400; background: var(--paper); padding: 0.7rem 0.8rem; border-radius: var(--radius-small); border: 1px solid var(--line); cursor: pointer; }
.choice input { margin-top: 0.3rem; accent-color: var(--bistrot); flex: none; }
.choice-help { display: block; color: var(--muted); font-size: 0.9rem; }
.choice:has(input:checked) { border-color: var(--bistrot); box-shadow: inset 0 0 0 1px var(--bistrot); }
.aside { color: var(--muted); }

/* Boutons */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem; font: inherit; font-weight: 700;
  min-height: 2.9rem; padding: 0.65rem 1.25rem; border-radius: var(--radius-small); border: 1px solid transparent;
  cursor: pointer; text-decoration: none; line-height: 1.2;
}
.btn-primary { background: var(--bistrot); color: #fff; }
.btn-primary:hover { background: var(--ink); color: #fff; }
.btn-secondary { background: var(--paper); color: var(--ink); border-color: #C9D1CC; }
.btn-secondary:hover { border-color: var(--bistrot); color: var(--bistrot); }
.btn-danger { background: var(--danger); color: #fff; }
.btn-danger:hover { background: #7D2414; }
.btn-small { min-height: 2.25rem; padding: 0.35rem 0.8rem; font-size: 0.9rem; background: var(--paper); border-color: #C9D1CC; color: var(--ink); }
.form > .btn { width: 100%; }
.link-button { background: none; border: 0; padding: 0; font: inherit; color: var(--bistrot); text-decoration: underline; text-underline-offset: 0.18em; cursor: pointer; }
.danger-link { color: var(--danger); }

/* Compte */
.account { padding-top: 2rem; padding-bottom: 3rem; max-width: 44rem; }
.page-head { margin-bottom: 1.5rem; }
.page-head h1 { margin-bottom: 0.15em; }
.panel { border: 1px solid var(--line); border-radius: var(--radius); padding: 1.25rem; margin-bottom: 1.25rem; background: var(--paper); }
.panel > .form:last-child, .panel > form:last-child { margin-bottom: 0; }
.panel-quiet { background: var(--sauge); border-color: var(--sauge); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; }
.panel-quiet p, .panel-quiet form { margin: 0; }
.panel-danger { border-color: #E9C3BA; }
.avatar-field { display: flex; gap: 1rem; align-items: center; }
.avatar-field .field { flex: 1; min-width: 0; }
input[type=file] { width: 100%; }
.avatar { width: 5.5rem; height: 5.5rem; border-radius: 50%; object-fit: cover; flex: none; }
.avatar-empty { display: grid; place-items: center; background: var(--sauge); color: var(--bistrot); font-weight: 800; font-size: 1.5rem; }
.inline-form { margin-top: 0.75rem; }
.facts { display: grid; gap: 0.6rem; margin: 0; }
.facts div { display: grid; gap: 0.1rem; }
.facts dt { font-size: 0.85rem; color: var(--muted); }
.facts dd { margin: 0; font-weight: 600; }
.devices { list-style: none; margin: 0 0 1rem; padding: 0; }
.devices li { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 0.8rem 0; border-top: 1px solid var(--line); }
.devices li p { margin: 0; font-size: 0.9rem; }
.tag { display: inline-block; margin-left: 0.4rem; font-size: 0.75rem; font-weight: 700; color: var(--bistrot); background: var(--sauge); padding: 0.1rem 0.5rem; border-radius: 999px; }

.error-page { text-align: left; }
.error-code { font-size: 3.5rem; font-weight: 800; color: var(--laiton); margin: 0; line-height: 1; }
.debug { white-space: pre-wrap; font-size: 0.8rem; background: var(--sauge); padding: 1rem; border-radius: var(--radius-small); overflow-x: auto; }

/* Pied de page */
.site-footer { background: var(--sauge); color: var(--muted); font-size: 0.875rem; padding-bottom: env(safe-area-inset-bottom, 0px); }
.footer-inner { padding-top: 1.25rem; padding-bottom: 1.25rem; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.25rem 1.5rem; }
.footer-inner p { margin: 0; }

/* Back-office */
.admin { background: #F6F8F6; }
.admin-header { background: var(--ink); color: #fff; padding-top: env(safe-area-inset-top, 0px); position: sticky; top: 0; z-index: 5; }
.admin-header-inner { max-width: 76rem; margin: 0 auto; padding: 0.6rem 1.1rem; display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.admin-header .brand { color: #fff; }
.admin-header .brand-mark { background: var(--bistrot); }
.admin-menu-toggle { margin-left: auto; font: inherit; font-weight: 700; color: #fff; background: none; padding: 0.4rem 0.8rem; border: 1px solid rgba(255,255,255,0.3); border-radius: var(--radius-small); cursor: pointer; }
.admin-nav { order: 3; width: 100%; display: grid; gap: 0.1rem; padding: 0.25rem 0 0.5rem; }
.js .admin-nav:not(.open) { display: none; }
.admin-nav a { color: #DCE7E1; text-decoration: none; padding: 0.55rem 0.5rem; border-radius: 6px; font-weight: 600; }
.admin-nav a[aria-current] { color: #fff; background: var(--bistrot); }
.admin-logout .link-button { color: #DCE7E1; font-size: 0.9rem; }
.admin-main { flex: 1; width: 100%; max-width: 76rem; margin: 0 auto; padding: 1.5rem 1.1rem 3rem; }
.admin-main h1 { font-size: 1.5rem; }
.admin-footer { text-align: center; font-size: 0.8rem; color: var(--muted); padding: 1rem; }
.stat-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.75rem; margin-bottom: 1.25rem; }
.stat { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); padding: 1rem; display: grid; }
.stat-value { font-size: 1.8rem; font-weight: 800; line-height: 1.1; color: var(--bistrot); }
.stat-label { font-size: 0.875rem; color: var(--muted); }
.facts-wide div { grid-template-columns: 1fr; }
.filters { display: grid; gap: 0.6rem; margin-bottom: 0.75rem; }
.table-scroll { overflow-x: auto; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); margin-bottom: 1.25rem; }
.table { width: 100%; border-collapse: collapse; font-size: 0.925rem; }
.table th { text-align: left; font-size: 0.8rem; color: var(--muted); font-weight: 700; padding: 0.7rem 0.9rem; border-bottom: 1px solid var(--line); white-space: nowrap; }
.table td { padding: 0.7rem 0.9rem; border-bottom: 1px solid var(--line); vertical-align: top; }
.table tr:last-child td { border-bottom: 0; }
.status { display: inline-block; font-size: 0.78rem; font-weight: 700; padding: 0.15rem 0.55rem; border-radius: 999px; background: var(--sauge); color: var(--bistrot); white-space: nowrap; }
.status-pending_validation { background: var(--laiton-soft); color: var(--laiton-ink); }
.status-pending_email, .status-mail-pending { background: #EEF0EE; color: var(--muted); }
.status-disabled, .status-mail-failed { background: var(--danger-soft); color: var(--danger); }
.actions { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.actions form { margin: 0; }
.form-inline { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.form-inline input { flex: 1 1 16rem; }
.form-wide { max-width: 52rem; }
.form-wide > .btn { width: auto; }
.field-small { max-width: 12rem; }
.pager { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.pager a { padding: 0.35rem 0.75rem; border-radius: 6px; border: 1px solid var(--line); background: var(--paper); text-decoration: none; }
.pager a[aria-current] { background: var(--bistrot); color: #fff; border-color: var(--bistrot); }
.empty { padding: 2rem 1rem; text-align: center; color: var(--muted); background: var(--paper); border: 1px dashed #C9D1CC; border-radius: var(--radius); }
.mail-text { white-space: pre-wrap; font-family: inherit; margin: 0; }
.copy { display: block; margin: 0.4rem 0; padding: 0.5rem 0.7rem; }

/* Installateur */
.install { max-width: 40rem; padding-top: 2rem; padding-bottom: 3rem; }
.steps { display: flex; gap: 0.4rem; list-style: none; padding: 0; margin: 0 0 1.5rem; counter-reset: step; }
.steps li { flex: 1; height: 4px; border-radius: 2px; background: var(--line); }
.steps li.done { background: var(--bistrot); }
.checklist { list-style: none; margin: 0 0 1.25rem; padding: 0; }
.checklist li { display: flex; justify-content: space-between; gap: 1rem; padding: 0.55rem 0; border-top: 1px solid var(--line); }
.checklist .ok { color: var(--bistrot-2); font-weight: 700; }
.checklist .ko { color: var(--danger); font-weight: 700; }
.checklist .warn { color: var(--laiton-ink); font-weight: 700; }

@media (max-width: 23.5rem) {
  .brand-name { font-size: 0.9rem; }
  .brand-mark { width: 2rem; height: 2rem; }
}
@media (min-width: 40rem) {
  h1 { font-size: 2.1rem; }
  .field-row { grid-template-columns: 1fr 1fr; }
  .field-row:has(.field-small) { grid-template-columns: 2fr 1fr 1fr; }
  .form > .btn { width: auto; justify-self: start; }
  .account-chip span:last-child { display: inline; }
  .paths { grid-template-columns: 1fr 1fr; }
  .facts-wide div { grid-template-columns: 14rem 1fr; }
  .stat-grid { grid-template-columns: repeat(4, 1fr); }
  .filters { grid-template-columns: 2fr 1fr 1fr auto; }
}
@media (min-width: 89rem) {
  .admin-header-inner { flex-wrap: nowrap; }
  .admin-menu-toggle { display: none; }
  .admin-nav, .js .admin-nav:not(.open) { order: 0; width: auto; flex: 0 1 auto; display: flex; gap: 0.1rem; padding: 0; }
  .admin-nav a { white-space: nowrap; font-size: 0.86rem; padding: 0.45rem 0.4rem; }
  .admin-header .brand-name { font-size: 0.95rem; }
  .admin-nav a.nav-site { display: none; }
  .admin-logout { margin-left: auto; white-space: nowrap; }
  .admin-header-inner { max-width: 92rem; }
}
/* Menu ouvert sur écran moyen : les entrées sur plusieurs colonnes. */
@media (min-width: 40rem) and (max-width: 88.99rem) { .admin-nav.open { grid-template-columns: repeat(4, 1fr); } }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }

/* ===== Lot 2 : recherche, fiches, favoris ===== */
.icon { width: 1.25rem; height: 1.25rem; flex: none; vertical-align: -0.25em; }
.small { font-size: 0.875rem; }
.nav-icon { display: inline-flex; align-items: center; gap: 0.35rem; color: var(--bistrot); }
.nav-icon span { display: none; }

/* Bandeau de recherche */
.finder { background: var(--bistrot); color: #fff; padding: 1.25rem 0 1.1rem; }
.finder-title { font-size: clamp(1.5rem, 6vw, 2.4rem); line-height: 1.1; letter-spacing: -0.02em; margin-bottom: 0.9rem; max-width: 18ch; }
.finder-form { display: grid; gap: 0.75rem; }
.finder-where { display: grid; grid-template-columns: 1fr auto; gap: 0.5rem; }
.finder-input { position: relative; display: block; }
.finder-input .icon { position: absolute; left: 0.8rem; top: 50%; transform: translateY(-50%); color: var(--muted); pointer-events: none; }
.finder-input input { padding-left: 2.6rem; border: 0; min-height: 3.1rem; }
.btn-locate { background: var(--laiton); color: var(--ink); min-height: 3.1rem; padding: 0.5rem 0.8rem; }
.btn-locate:hover { background: #CFA046; }
.btn-locate span { display: none; }
.btn-locate[aria-busy=true] { opacity: 0.7; }
.chips { display: flex; gap: 0.45rem; overflow-x: auto; scrollbar-width: none; margin: 0 -1.1rem; padding: 0.1rem 1.1rem; }
.chips::-webkit-scrollbar { display: none; }
.chip { position: relative; flex: none; cursor: pointer; }
.chip input { position: absolute; opacity: 0; }
.chip span { display: block; padding: 0.42rem 0.85rem; border-radius: 999px; border: 1px solid rgba(255,255,255,0.35); font-size: 0.9rem; font-weight: 600; white-space: nowrap; }
.chip input:checked + span { background: #fff; color: var(--bistrot); border-color: #fff; }
.chip input:focus-visible + span { outline: 3px solid var(--laiton); outline-offset: 2px; }
.more-filters summary { cursor: pointer; display: inline-flex; gap: 0.4rem; align-items: center; font-weight: 600; color: #DCE7E1; list-style: none; }
.more-filters summary::-webkit-details-marker { display: none; }
.more-filters-grid { display: grid; gap: 0.75rem; margin-top: 0.75rem; }
.more-filters label { color: #fff; }
.finder .finder-submit { background: #fff; color: var(--bistrot); width: 100%; }
.finder .finder-submit:hover { background: var(--sauge); color: var(--ink); }
.js .finder-submit.is-auto { display: none; }

/* Résultats */
.results-section { padding-top: 1.25rem; padding-bottom: 2rem; }
.results-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 0.75rem; margin-bottom: 0.9rem; }
.results-head h2 { font-size: 1.05rem; margin: 0; }
.results-where { display: block; font-weight: 400; color: var(--muted); font-size: 0.9rem; }
.view-toggle { display: inline-flex; border: 1px solid #C9D1CC; border-radius: 999px; padding: 0.2rem; }
.view-toggle button { display: inline-flex; gap: 0.3rem; align-items: center; font: inherit; font-size: 0.875rem; font-weight: 700; border: 0; background: none; color: var(--muted); padding: 0.35rem 0.8rem; border-radius: 999px; cursor: pointer; }
.view-toggle button[aria-pressed=true] { background: var(--bistrot); color: #fff; }
.results { display: grid; gap: 0.75rem; }
.result { position: relative; }
.result-link { display: grid; grid-template-columns: 5.5rem 1fr; gap: 0.85rem; align-items: start; text-decoration: none; color: var(--ink); padding: 0.7rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper); }
.result-link:hover { border-color: var(--bistrot); color: var(--ink); }
.result-photo { width: 5.5rem; height: 5.5rem; border-radius: 9px; object-fit: cover; display: block; }
.result-body { display: grid; gap: 0.2rem; min-width: 0; }
.result-top { display: flex; justify-content: space-between; gap: 0.5rem; align-items: baseline; }
.result-dish { font-size: 1.02rem; line-height: 1.3; }
.result-price { font-weight: 800; white-space: nowrap; color: var(--bistrot); }
.result-resto { color: var(--muted); font-size: 0.92rem; }
.result-meta { display: flex; flex-wrap: wrap; gap: 0.15rem 0.7rem; font-size: 0.85rem; color: var(--muted); }
.result-tags { display: flex; flex-wrap: wrap; gap: 0.3rem; margin-top: 0.2rem; }
.result-tags .tag, .offer-tags .tag { margin-left: 0; }
.result-fav { position: absolute; top: 0.55rem; right: 0.55rem; color: var(--laiton); }
.result-fav svg { fill: currentColor; }
.state { font-weight: 700; color: var(--muted); }
.state-open { color: var(--bistrot-2); }
.state-closed { color: var(--danger); }
.tag-more { background: var(--laiton-soft); color: var(--laiton-ink); }
.results-map { height: 62vh; min-height: 22rem; border-radius: var(--radius); border: 1px solid var(--line); margin-bottom: 1rem; }
.map-popup a { font-weight: 700; color: var(--bistrot); }
.map-popup p { margin: 0.2rem 0 0; }
.empty-state { text-align: center; padding: 2.5rem 1rem; border: 1px dashed #C9D1CC; border-radius: var(--radius); background: var(--paper); }
.empty-icon { width: 3rem; height: 3rem; color: var(--laiton); margin-bottom: 0.5rem; }
.empty-state h2, .empty-state h3 { font-size: 1.15rem; }
.empty-state p { color: var(--muted); max-width: 30rem; margin-left: auto; margin-right: auto; }
.empty-inline { color: var(--muted); padding: 1rem; background: var(--sauge); border-radius: var(--radius-small); }

/* Image de remplacement */
.ph { display: grid; place-items: center; width: 100%; height: 100%; min-height: 5.5rem; background: var(--sauge); color: var(--bistrot); border-radius: inherit; }
.ph-icon { width: 2rem; height: 2rem; opacity: 0.55; }
.ph-large { min-height: 12rem; }
.ph-large .ph-icon { width: 3.5rem; height: 3.5rem; }

/* Publicité */
.ad { position: relative; border: 1px solid var(--line); border-radius: var(--radius); padding: 1.4rem 0.7rem 0.7rem; background: #FAFBFA; text-align: center; margin: 0.5rem 0 1rem; }
.ad img { max-height: 15rem; border-radius: 8px; }
.ad-label { position: absolute; top: 0.3rem; left: 0.7rem; font-size: 0.72rem; color: var(--muted); }

/* Fiche restaurant */
.gallery { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; background: var(--sauge); max-height: 22rem; }
.gallery img, .gallery .ph { flex: 0 0 100%; scroll-snap-align: start; width: 100%; height: 15rem; object-fit: cover; border-radius: 0; }
.gallery-multi img { flex-basis: 88%; }
.resto-wrap { max-width: 46rem; padding-bottom: 2.5rem; }
.resto-head { padding: 1.1rem 0 0.25rem; }
.resto-head h1 { margin: 0.15rem 0 0.25rem; }
.resto-state { margin: 0; font-size: 0.92rem; }
.resto-sub { color: var(--muted); margin: 0; }
.resto-address { margin: 0.35rem 0 0; }
.resto-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(4.1rem, 1fr)); gap: 0.5rem; margin: 1.1rem 0 0.5rem; }
.resto-actions form { display: contents; }
.action { display: flex; flex-direction: column; align-items: center; gap: 0.3rem; padding: 0.7rem 0.3rem; border-radius: var(--radius); background: var(--sauge); color: var(--bistrot); text-decoration: none; font: inherit; font-size: 0.82rem; font-weight: 700; border: 0; cursor: pointer; text-align: center; }
.action:hover { background: #E1E9E4; color: var(--ink); }
.action .icon { width: 1.4rem; height: 1.4rem; }
.action.is-active { background: var(--laiton-soft); color: var(--laiton-ink); }
.action.is-active svg { fill: currentColor; }
.resto-section { padding-top: 1.5rem; }
.resto-section h2 { font-size: 1.15rem; }
.offers { display: grid; gap: 0.75rem; }
.offer { border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; background: var(--paper); }
.offer-photo { width: 100%; height: 11rem; object-fit: cover; display: block; }
.offer-body { padding: 0.9rem 1rem; }
.offer-head { display: flex; justify-content: space-between; gap: 0.75rem; align-items: baseline; }
.offer-head h3 { font-size: 1.05rem; margin: 0; }
.offer-head h3 a { color: var(--ink); text-decoration: none; }
.offer-head h3 a:hover { text-decoration: underline; }
.offer-price { font-weight: 800; color: var(--bistrot); white-space: nowrap; }
.offer-desc { color: var(--muted); margin: 0.35rem 0 0; }
.offer-tags { display: flex; flex-wrap: wrap; gap: 0.3rem; margin: 0.55rem 0 0; }
.offer-allergens { font-size: 0.85rem; color: var(--muted); margin: 0.5rem 0 0; }
.menu-courses { display: grid; gap: 0.35rem; margin: 0.6rem 0 0; }
.menu-courses div { display: grid; grid-template-columns: 5.5rem 1fr; gap: 0.5rem; }
.menu-courses dt { color: var(--laiton-ink); font-size: 0.85rem; font-weight: 700; }
.menu-courses dd { margin: 0; }
.menu-courses a { color: var(--ink); text-decoration: none; }
.upcoming details { border-top: 1px solid var(--line); }
.upcoming summary { display: grid; gap: 0.1rem; padding: 0.75rem 0; cursor: pointer; font-weight: 700; }
.upcoming summary .muted { font-weight: 400; font-size: 0.9rem; }
.upcoming .offers { padding-bottom: 1rem; }
.event { padding: 0.9rem 1rem; border-radius: var(--radius); background: var(--laiton-soft); margin-bottom: 0.6rem; }
.event h3 { font-size: 1rem; margin: 0.1rem 0 0.3rem; }
.event p { margin: 0; }
.event-date { color: var(--laiton-ink); font-weight: 700; font-size: 0.85rem; }
.mini-map { height: 14rem; border-radius: var(--radius); border: 1px solid var(--line); }
.schedule { width: 100%; border-collapse: collapse; }
.schedule th, .schedule td { text-align: left; padding: 0.5rem 0; border-top: 1px solid var(--line); vertical-align: top; }
.schedule th { font-weight: 600; width: 8rem; }
.schedule .is-today th, .schedule .is-today td { font-weight: 800; color: var(--bistrot); }

/* Fiche plat */
.dish-photo, .dish-page .ph { width: 100%; height: 14rem; object-fit: cover; border-radius: var(--radius); margin-bottom: 1rem; }
.dish-price { font-size: 1.3rem; font-weight: 800; color: var(--bistrot); }
.allergen-list, .date-list { padding-left: 1.2rem; }
textarea { width: 100%; font: inherit; font-size: 1rem; color: var(--ink); border: 1px solid #C9D1CC; border-radius: var(--radius-small); padding: 0.7rem 0.8rem; resize: vertical; }
textarea:focus { outline: none; border-color: var(--bistrot); box-shadow: 0 0 0 3px rgba(31, 77, 59, 0.18); }
input[type=date], input[type=time], input[type=number] { width: 100%; font: inherit; font-size: 1rem; border: 1px solid #C9D1CC; border-radius: var(--radius-small); padding: 0.7rem 0.8rem; min-height: 2.9rem; background: var(--paper); color: var(--ink); }

/* Favoris */
.fav-list { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: 0.6rem; }
.fav-list a { display: grid; grid-template-columns: 4.5rem 1fr; gap: 0.85rem; align-items: center; padding: 0.6rem; border: 1px solid var(--line); border-radius: var(--radius); text-decoration: none; color: var(--ink); }
.fav-list img, .fav-list .ph { width: 4.5rem; height: 4.5rem; min-height: 0; border-radius: 9px; object-fit: cover; }
.fav-list span { display: grid; gap: 0.1rem; }
.fav-today { color: var(--bistrot-2); font-weight: 600; font-size: 0.92rem; }
.panel-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; }
.panel-row h2 { margin-bottom: 0.2rem; }
.panel-row p { margin: 0; }

/* Sans publicité */
.lead-dark { font-size: 1.1rem; color: var(--muted); }
.price-card { border: 2px solid var(--bistrot); border-radius: var(--radius); padding: 1.4rem; margin: 1.5rem 0; }
.price-amount { font-size: 2.2rem; font-weight: 800; color: var(--bistrot); margin: 0 0 0.75rem; line-height: 1; }
.price-amount span { font-size: 1rem; color: var(--muted); font-weight: 600; }
.ticks { list-style: none; padding: 0; margin: 0 0 1.25rem; display: grid; gap: 0.5rem; }
.ticks li { padding-left: 1.6rem; position: relative; }
.ticks li::before { content: ""; position: absolute; left: 0.2rem; top: 0.45em; width: 0.7rem; height: 0.4rem; border-left: 2px solid var(--bistrot-2); border-bottom: 2px solid var(--bistrot-2); transform: rotate(-45deg); }
.btn:disabled { opacity: 0.55; cursor: not-allowed; }

/* Consentement */
.consent { position: fixed; left: 0; right: 0; bottom: 0; z-index: 20; padding: 0.75rem; padding-bottom: calc(0.75rem + env(safe-area-inset-bottom, 0px)); }
.consent-inner { max-width: 40rem; margin: 0 auto; background: var(--ink); color: #fff; border-radius: var(--radius); padding: 1rem 1.1rem; box-shadow: 0 12px 40px rgba(16, 38, 29, 0.3); }
.consent-inner p { margin: 0 0 0.75rem; font-size: 0.92rem; }
.consent-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }
.consent-actions a { color: #DCE7E1; font-size: 0.875rem; }
.consent .btn-secondary { background: transparent; color: #fff; border-color: rgba(255,255,255,0.4); }
.consent .btn-primary { background: #fff; color: var(--ink); }

.leaflet-container { font-family: var(--font); }
.marker-dot { display: block; width: 1.1rem; height: 1.1rem; border-radius: 50%; background: var(--bistrot); border: 3px solid #fff; box-shadow: 0 1px 4px rgba(0,0,0,0.35); }
.marker-dot.is-closed { background: var(--muted); }
.marker-me { display: block; width: 1rem; height: 1rem; border-radius: 50%; background: #2F6FDB; border: 3px solid #fff; box-shadow: 0 0 0 6px rgba(47, 111, 219, 0.2); }

@media (min-width: 40rem) {
  .btn-locate span { display: inline; }
  .nav-icon span { display: inline; }
  .more-filters-grid { grid-template-columns: 2fr 1fr 1fr 1fr; }
  .finder .finder-submit { width: auto; justify-self: start; }
  .results { grid-template-columns: 1fr 1fr; }
  .results .ad { grid-column: 1 / -1; }
  .gallery img, .gallery .ph { height: 20rem; }
  .gallery-multi img { flex-basis: 60%; }
  .offers { grid-template-columns: 1fr; }
}
@media (min-width: 64rem) {
  .results { grid-template-columns: 1fr 1fr 1fr; }
  .finder { padding: 2rem 0 1.5rem; }
}

/* ===== Lot 3 : espace restaurateur ===== */
.nav-pro { color: var(--bistrot); }
.nav-pro .long { display: none; }
@media (min-width: 40rem) { .nav-pro .short { display: none; } .nav-pro .long { display: inline; } }
.pro-head { background: var(--sauge); border-bottom: 1px solid var(--line); }
.pro-est { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding-top: 0.9rem; }
.pro-kicker { margin: 0; font-size: 0.8rem; color: var(--muted); font-weight: 600; }
.pro-name { margin: 0; font-size: 1.15rem; font-weight: 800; line-height: 1.25; }
.pro-name span { font-weight: 500; color: var(--muted); }
.pro-switch { position: relative; flex: none; }
.pro-switch summary { list-style: none; cursor: pointer; font-weight: 700; font-size: 0.9rem; color: var(--bistrot); padding: 0.45rem 0.75rem; border: 1px solid #C9D1CC; border-radius: 999px; background: var(--paper); }
.pro-switch summary::-webkit-details-marker { display: none; }
.pro-switch-menu { position: absolute; right: 0; top: calc(100% + 0.35rem); z-index: 6; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 10px 30px rgba(16,38,29,0.12); padding: 0.35rem; min-width: 15rem; }
.pro-switch-menu form { margin: 0; }
.pro-switch-menu button, .pro-switch-menu a { display: block; width: 100%; text-align: left; font: inherit; background: none; border: 0; padding: 0.55rem 0.7rem; border-radius: 6px; cursor: pointer; color: var(--ink); text-decoration: none; }
.pro-switch-menu button:hover, .pro-switch-menu button[aria-current] { background: var(--sauge); }
.pro-switch-menu a { color: var(--bistrot); font-weight: 700; border-top: 1px solid var(--line); border-radius: 0; margin-top: 0.25rem; }
.pro-tabs { display: flex; gap: 0.25rem; overflow-x: auto; scrollbar-width: none; margin: 0.6rem -1.1rem 0; padding: 0 1.1rem; }
.pro-tabs::-webkit-scrollbar { display: none; }
.pro-tabs a { flex: none; padding: 0.6rem 0.75rem; font-weight: 700; font-size: 0.92rem; color: var(--muted); text-decoration: none; border-bottom: 3px solid transparent; }
.pro-tabs a[aria-current] { color: var(--bistrot); border-bottom-color: var(--bistrot); }
.pro-notice { margin-top: 1rem; }
.pro-page { padding-top: 1.25rem; padding-bottom: 3rem; }
.narrow-pro { max-width: 44rem; }
.pro-page h1 { font-size: 1.5rem; }
.page-title-row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.75rem; margin-bottom: 0.5rem; }
.page-title-row h1 { margin: 0; }
.todo { margin: 0 0 1rem; padding-left: 1.2rem; }
.todo li { margin-bottom: 0.2rem; }
.pro-setup { border-color: var(--laiton); background: var(--laiton-soft); }

.today-card { background: var(--bistrot); color: #fff; border-radius: var(--radius); padding: 1.2rem; margin-bottom: 1rem; }
.today-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 0.5rem; }
.today-head h1 { font-size: 1.25rem; margin: 0 0 0.75rem; }
.today-head a { color: #DCE7E1; font-size: 0.9rem; }
.today-card .muted { color: #C8D8CF; }
.today-list { list-style: none; margin: 0 0 1rem; padding: 0; }
.today-list li { display: flex; justify-content: space-between; align-items: center; gap: 0.75rem; padding: 0.65rem 0; border-top: 1px solid rgba(255,255,255,0.15); }
.today-list .muted { color: #C8D8CF; }
.today-list form { margin: 0; flex: none; }
.today-card .btn-small { background: transparent; color: #fff; border-color: rgba(255,255,255,0.4); }
.today-card .btn-small.is-on { background: var(--laiton); color: var(--ink); border-color: var(--laiton); }
.today-card .btn-secondary { background: transparent; color: #fff; border-color: rgba(255,255,255,0.45); }
.today-card .btn-primary { background: #fff; color: var(--bistrot); }
.btn-big { width: 100%; min-height: 3.4rem; font-size: 1.1rem; }
.pro-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; margin-bottom: 1rem; }
.stat-link { text-decoration: none; color: var(--ink); }
.stat-link:hover { border-color: var(--bistrot); }

.day-chips { display: flex; gap: 0.4rem; overflow-x: auto; scrollbar-width: none; margin: 0 -1.1rem 1rem; padding: 0.1rem 1.1rem; }
.day-chips::-webkit-scrollbar { display: none; }
.day-chips > a { flex: none; display: grid; text-align: center; min-width: 4.4rem; padding: 0.5rem 0.6rem; border: 1px solid #C9D1CC; border-radius: var(--radius-small); text-decoration: none; color: var(--ink); background: var(--paper); }
.day-chips > a strong { font-size: 0.85rem; }
.day-chips > a span { font-size: 0.8rem; color: var(--muted); }
.day-chips > a[aria-current] { background: var(--bistrot); border-color: var(--bistrot); color: #fff; }
.day-chips > a[aria-current] span { color: #DCE7E1; }
.day-other { display: flex; align-items: center; gap: 0.6rem; margin: -0.4rem 0 1rem; font-size: 0.9rem; }
.day-other label { font-weight: 600; color: var(--muted); }
.day-other input { width: auto; min-height: 2.4rem; padding: 0.3rem 0.5rem; }
.quick-add { border-color: var(--bistrot); }
.quick-grid { display: grid; grid-template-columns: 1fr 7rem; gap: 0.75rem; margin-bottom: 0.75rem; }
.chip-row { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0 0 0.9rem; }
.pill { position: relative; cursor: pointer; }
.pill input { position: absolute; opacity: 0; }
.pill span { display: block; padding: 0.4rem 0.8rem; border-radius: 999px; border: 1px solid #C9D1CC; font-size: 0.9rem; font-weight: 600; color: var(--muted); }
.pill input:checked + span { background: var(--bistrot); border-color: var(--bistrot); color: #fff; }
.pill input:focus-visible + span { outline: 3px solid var(--laiton); outline-offset: 2px; }
.pick-title { font-size: 0.95rem; color: var(--muted); margin: 1rem 0 0.5rem; }
.pick-list { display: grid; gap: 0.4rem; }
.pick { display: flex; gap: 0.75rem; align-items: center; padding: 0.7rem 0.8rem; border: 1px solid var(--line); border-radius: var(--radius-small); cursor: pointer; }
.pick input { width: 1.25rem; height: 1.25rem; accent-color: var(--bistrot); flex: none; }
.pick span { display: grid; gap: 0.05rem; }
.pick .muted { font-size: 0.875rem; }
.pick:has(input:checked) { border-color: var(--bistrot); background: #F3F7F4; box-shadow: inset 0 0 0 1px var(--bistrot); }
.sticky-action { position: sticky; bottom: 0; padding: 0.75rem 0; background: linear-gradient(to top, var(--paper) 70%, rgba(255,255,255,0)); margin-top: 0.75rem; padding-bottom: calc(0.75rem + env(safe-area-inset-bottom, 0px)); }
.sticky-action .btn { width: 100%; }

.planning { list-style: none; margin: 0 0 1.25rem; padding: 0; border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.planning li + li { border-top: 1px solid var(--line); }
.planning a { display: grid; gap: 0.1rem; padding: 0.75rem 0.9rem; text-decoration: none; color: var(--ink); }
.planning a:hover { background: var(--sauge); }
.planning .planning-day { font-weight: 700; }
.planning .has-offer .planning-day::before { content: ""; display: inline-block; width: 0.55rem; height: 0.55rem; border-radius: 50%; background: var(--bistrot-2); margin-right: 0.45rem; vertical-align: 0.1em; }
.planning .is-today { background: #F3F7F4; }

.item-list { list-style: none; margin: 0.5rem 0 0; padding: 0; display: grid; gap: 0.5rem; }
.item-list a, .item-form button { display: grid; grid-template-columns: 3.5rem 1fr; gap: 0.8rem; align-items: center; padding: 0.55rem; border: 1px solid var(--line); border-radius: var(--radius); text-decoration: none; color: var(--ink); background: var(--paper); width: 100%; text-align: left; font: inherit; cursor: pointer; }
.item-list a:hover, .item-form button:hover { border-color: var(--bistrot); }
.item-list img, .item-list .ph { width: 3.5rem; height: 3.5rem; min-height: 0; border-radius: 8px; object-fit: cover; }
.item-list span { display: grid; gap: 0.05rem; min-width: 0; }
.item-list-text a, .item-form button { grid-template-columns: 1fr; padding: 0.8rem 0.9rem; }
.item-form { margin: 0; }
.form-photo { display: block; width: 12rem; border-radius: var(--radius-small); margin-bottom: 0.4rem; }
.allergen-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0.45rem 1rem; margin-top: 0.5rem; }

.visibility { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; border-left: 4px solid var(--muted); }
.visibility.is-on { border-left-color: var(--bistrot-2); }
.visibility h2 { margin-bottom: 0.25rem; }
.visibility p { margin: 0 0 0.4rem; }
.address { display: grid; gap: 1rem; }
.address legend { margin-bottom: 0.5rem; }
.field-row-pc { grid-template-columns: 7rem 1fr; }
.pin-map { height: 13rem; }
.hours { display: grid; gap: 0.25rem; margin-bottom: 1rem; }
.hours-day { display: grid; gap: 0.4rem; padding: 0.6rem 0; border-top: 1px solid var(--line); }
.hours-slots { display: grid; gap: 0.4rem; }
.slot { display: grid; grid-template-columns: 1fr auto 1fr; gap: 0.4rem; align-items: center; max-width: 20rem; }
.slot input { min-height: 2.6rem; padding: 0.4rem 0.5rem; }
[data-day].is-off .hours-slots, [data-day].is-off .stop-fields { display: none; }
.stop { border-top: 1px solid var(--line); padding: 0.75rem 0; }
.stop legend { font-weight: 400; }
.stop-fields { display: grid; gap: 0.75rem; margin-top: 0.6rem; }
.photo-grid { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0.6rem; }
.photo-grid li { display: grid; gap: 0.35rem; }
.photo-grid img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--radius-small); }
.photo-grid form { margin: 0; }
.event-pro { display: flex; justify-content: space-between; gap: 1rem; align-items: flex-start; }
.event-pro form { margin: 0; flex: none; }
.pro-grid-6 { grid-template-columns: 1fr 1fr; }
.bars { display: flex; align-items: flex-end; gap: 2px; height: 9rem; padding-top: 0.5rem; }
.bar { flex: 1; background: var(--bistrot); border-radius: 2px 2px 0 0; min-width: 3px; }
.bar.is-weekend { background: var(--bistrot-2); opacity: 0.75; }
.bars-axis { display: flex; justify-content: space-between; font-size: 0.8rem; color: var(--muted); margin-top: 0.35rem; }

@media (min-width: 40rem) {
  .pro-grid { grid-template-columns: repeat(4, 1fr); }
  .pro-grid-6 { grid-template-columns: repeat(3, 1fr); }
  .hours-day { grid-template-columns: 9rem 1fr; align-items: start; }
  .hours-slots { grid-template-columns: 1fr 1fr; }
  .allergen-grid { grid-template-columns: repeat(3, 1fr); }
  .photo-grid { grid-template-columns: repeat(3, 1fr); }
  .sticky-action .btn { width: auto; }
  .btn-big { width: auto; }
}

/* En-tête compact sur téléphone */
@media (max-width: 39.99rem) {
  .header-nav { gap: 0.2rem; }
  .header-nav .nav-link { padding: 0.5rem 0.3rem; }
  .account-chip { padding: 0.2rem; border-color: transparent; }
  .lang-menu summary { padding: 0.45rem 0.4rem; }
  .brand { gap: 0.45rem; }
}
@media (max-width: 23.5rem) {
  .brand-name { font-size: 0.85rem; }
  .header-nav .nav-link { font-size: 0.88rem; padding: 0.5rem 0.2rem; }
  .wrap.header-inner { padding-left: 0.8rem; padding-right: 0.8rem; }
}

/* Les cartes restent sous l'en-tête et les menus lors du défilement. */
.mini-map, .results-map { position: relative; z-index: 0; isolation: isolate; }

.coords summary { cursor: pointer; font-weight: 600; color: var(--bistrot); font-size: 0.92rem; }
.coords .field { margin-top: 0.6rem; }

/* ===== Lot 4 : back-office et pages de contenu ===== */
.thumb { width: 3.5rem; height: 2.5rem; object-fit: cover; border-radius: 6px; vertical-align: middle; margin-right: 0.4rem; }
.plain-list { margin: 0; padding-left: 1.1rem; }
.plain-list li { margin-bottom: 0.35rem; }
.row-between { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; padding: 0.6rem 0; border-top: 1px solid var(--line); }
.row-between form { margin: 0; flex: none; }
.table tr.is-muted td { color: var(--muted); }
.lang-block summary { cursor: pointer; font-weight: 700; }
.lang-block .field { margin-top: 0.8rem; }
.lang-block textarea { font-family: inherit; line-height: 1.5; }
.cuisine-table input:not([type=checkbox]) { min-height: 2.3rem; padding: 0.3rem 0.5rem; min-width: 8rem; }
.cuisine-table form { margin: 0; }
.content-page h1 { margin-bottom: 1rem; }
.prose { max-width: 42rem; }
.prose h2 { font-size: 1.2rem; margin-top: 1.6rem; }
.prose ul { padding-left: 1.2rem; }
.faq-list { margin-bottom: 1.5rem; }
.faq-list details { border-top: 1px solid var(--line); }
.faq-list details:last-child { border-bottom: 1px solid var(--line); }
.faq-list summary { cursor: pointer; padding: 0.85rem 0; font-weight: 700; }
.faq-list .prose { padding-bottom: 0.5rem; }
.footer-links { flex-basis: 100%; display: flex; flex-wrap: wrap; gap: 0.3rem 1.1rem; }
.footer-links a { color: var(--muted); }
.footer-link-button { background: none; border: 0; padding: 0; font: inherit; color: var(--muted); text-decoration: underline; text-underline-offset: 0.18em; cursor: pointer; }
.footer-link-button:hover { color: var(--ink); }
@media (min-width: 40rem) { .filters-3 { grid-template-columns: 2fr 1fr auto; } }

/* ===== Mascotte ===== */
.brand-logo { width: 2.5rem; height: 2.5rem; flex: none; display: block; }
.admin-header .brand-logo { width: 2.25rem; height: 2.25rem; }
.finder-wrap { position: relative; }
.finder-mascot { display: none; }
.empty-mascot { width: 11rem; height: auto; margin-bottom: 0.5rem; }
.error-mascot { width: 12rem; height: auto; display: block; margin-bottom: 0.75rem; }
@media (max-width: 23.5rem) { .brand-logo { width: 2.15rem; height: 2.15rem; } }
@media (min-width: 52rem) {
  .finder-wrap { padding-right: 19rem; }
  .finder-mascot { display: block; position: absolute; right: 1.1rem; bottom: -1.1rem; width: 18rem; pointer-events: none; }
  .finder-mascot img { width: 100%; height: auto; display: block; }
  .finder { overflow: hidden; }
}

/* ===== Lot 5 : abonnements et paiements ===== */
.plan-summary { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem 1.1rem; border: 2px solid var(--bistrot); border-radius: var(--radius); margin-bottom: 0.5rem; }
.plan-summary p { margin: 0.2rem 0 0; }
.plan-price { font-size: 1.5rem; font-weight: 800; color: var(--bistrot); white-space: nowrap; text-align: right; }
.plan-price span { display: block; font-size: 0.8rem; font-weight: 600; color: var(--muted); }
.billing { display: grid; gap: 1rem; }
.billing legend { margin-bottom: 0.5rem; }
.checkout-status, .checkout-redirect { text-align: left; }
.sub-status { border-left: 4px solid var(--muted); }
.sub-status.is-on { border-left-color: var(--bistrot-2); }
.sub-status.is-soon { border-left-color: var(--laiton); }
.sub-status.is-off { border-left-color: var(--danger); }
.sub-status h2 { margin-bottom: 0.2rem; }
.sub-status p { margin: 0; }
.plan-grid { display: grid; gap: 0.75rem; margin: 0.75rem 0 1rem; }
.plan-card { position: relative; border: 1px solid var(--line); border-radius: var(--radius); padding: 1.1rem; display: grid; gap: 0.35rem; }
.plan-card.is-best { border: 2px solid var(--bistrot); }
.plan-card p { margin: 0; }
.plan-card .btn { margin-top: 0.4rem; }
.plan-badge { position: absolute; top: -0.65rem; left: 1rem; background: var(--laiton); color: var(--ink); font-size: 0.75rem; font-weight: 800; padding: 0.1rem 0.6rem; border-radius: 999px; }
.plan-months { font-weight: 700; }
.plan-amount { font-size: 1.8rem; font-weight: 800; color: var(--bistrot); line-height: 1.1; }
.plan-amount span { font-size: 1rem; }
.invoice-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.4rem; }
.invoice-list a { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 0.7rem 0.9rem; border: 1px solid var(--line); border-radius: var(--radius-small); text-decoration: none; color: var(--ink); }
.invoice-list a:hover { border-color: var(--bistrot); }
.invoice-list a > span:first-child { display: grid; }
.invoice-amount { font-weight: 700; white-space: nowrap; }
@media (min-width: 40rem) { .plan-grid { grid-template-columns: repeat(3, 1fr); } }

/* ===== Lot 6 : site vitrine ===== */
.nav-wide { display: none; }
@media (min-width: 52rem) { .nav-wide { display: inline; } }
.show-hero { background: var(--bistrot); color: #fff; overflow: hidden; }
.show-hero-inner { display: grid; gap: 1rem; padding-top: 2.25rem; padding-bottom: 2.25rem; align-items: center; }
.show-hero h1 { font-size: clamp(1.9rem, 7vw, 3.2rem); line-height: 1.08; letter-spacing: -0.02em; max-width: 16ch; }
.show-hero h1::after { content: ""; display: block; width: 3.5rem; height: 4px; background: var(--laiton); border-radius: 2px; margin-top: 1rem; }
.show-lead { font-size: 1.1rem; color: #DCE7E1; max-width: 34rem; }
.show-note { color: #C8D8CF; font-size: 0.9rem; margin-top: 0.75rem; }
.show-hero-mascot { width: 15rem; height: auto; justify-self: center; }
.btn-light { background: #fff; color: var(--bistrot); }
.btn-light:hover { background: var(--sauge); color: var(--ink); }
.show-section { padding-top: 2.25rem; }
.show-section h2 { font-size: 1.45rem; }
.feature-grid { display: grid; gap: 0.9rem; }
.feature { padding: 1.1rem 1.2rem; border-radius: var(--radius); background: var(--sauge); }
.feature h3 { font-size: 1.05rem; margin-bottom: 0.35rem; color: var(--bistrot); }
.feature p { margin: 0 0 0.5rem; }
.feature p:last-child { margin-bottom: 0; }
.steps-list { list-style: none; counter-reset: s; margin: 0; padding: 0; display: grid; gap: 0.9rem; }
.steps-list li { counter-increment: s; position: relative; padding: 0.2rem 0 0.2rem 3.4rem; display: grid; gap: 0.15rem; }
.steps-list li::before { content: counter(s); position: absolute; left: 0; top: 0; width: 2.4rem; height: 2.4rem; border-radius: 50%; background: var(--bistrot); color: #fff; font-weight: 800; display: grid; place-items: center; box-shadow: inset 0 0 0 2px var(--laiton); }
.steps-list span { color: var(--muted); }
.price-table { display: grid; gap: 0.9rem; margin: 1rem 0; }
.price-col { border: 1px solid var(--line); border-radius: var(--radius); padding: 1.1rem 1.2rem; }
.price-col h3 { margin-bottom: 0.2rem; }
.price-col ul { list-style: none; margin: 0.6rem 0; padding: 0; }
.price-col li { display: flex; justify-content: space-between; padding: 0.45rem 0; border-top: 1px solid var(--line); }
.price-col li strong { color: var(--bistrot); }
.figures { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.6rem; margin: 1.5rem 0 0; text-align: center; }
.figures div { padding: 1rem 0.5rem; border-radius: var(--radius); background: var(--sauge); display: grid; }
.figures strong { font-size: 1.7rem; color: var(--bistrot); line-height: 1.1; }
.figures span { font-size: 0.85rem; color: var(--muted); }
.testimonials { display: grid; gap: 0.9rem; margin-top: 1.5rem; }
.testimonials figure { margin: 0; padding: 1.1rem 1.2rem; border-left: 4px solid var(--laiton); background: var(--laiton-soft); border-radius: 0 var(--radius) var(--radius) 0; }
.testimonials blockquote { margin: 0 0 0.5rem; font-size: 1.02rem; }
.testimonials figcaption { font-size: 0.9rem; color: var(--muted); }
.home-how { padding-bottom: 0.5rem; }
.consent-reset { margin-top: 1rem; }
.progress { height: 0.6rem; background: var(--line); border-radius: 999px; overflow: hidden; margin: 0.5rem 0 1.25rem; }
.progress span { display: block; height: 100%; background: var(--bistrot-2); }
.checks { list-style: none; margin: 0; padding: 0; }
.checks li { display: flex; gap: 0.75rem; padding: 0.65rem 0; border-top: 1px solid var(--line); }
.checks li:first-child { border-top: 0; }
.checks p { margin: 0.15rem 0 0; }
.check-mark { flex: none; width: 1.6rem; height: 1.6rem; border-radius: 50%; display: grid; place-items: center; font-weight: 800; font-size: 0.85rem; }
.is-ok .check-mark { background: var(--ok-soft); color: var(--bistrot-2); }
.is-todo .check-mark { background: var(--danger-soft); color: var(--danger); }
.is-advice .check-mark { background: var(--laiton-soft); color: var(--laiton-ink); }
@media (min-width: 40rem) {
  .feature-grid { grid-template-columns: 1fr 1fr; }
  .price-table { grid-template-columns: repeat(3, 1fr); }
  .testimonials { grid-template-columns: repeat(3, 1fr); }
  .show-hero-inner { grid-template-columns: 1.3fr 1fr; }
  .show-hero-mascot { width: 100%; max-width: 22rem; }
}
@media (min-width: 64rem) { .feature-grid { grid-template-columns: repeat(3, 1fr); } }

/* ===== Mode maintenance ===== */
.maintenance-page { background: var(--bistrot); color: #fff; min-height: 100vh; display: flex; flex-direction: column; }
.maintenance-main { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 2rem 1.25rem; }
.maintenance-mascot, .maintenance-logo { width: min(21rem, 80vw); height: auto; margin-bottom: 1.25rem; }
.maintenance-main h1 { font-size: clamp(1.8rem, 6vw, 2.6rem); margin-bottom: 0.6rem; }
.maintenance-main h1::after { content: ""; display: block; width: 3rem; height: 4px; background: var(--laiton); border-radius: 2px; margin: 0.9rem auto 0; }
.maintenance-text { max-width: 32rem; color: #DCE7E1; font-size: 1.05rem; }
.maintenance-langs { display: flex; gap: 0.6rem; justify-content: center; margin-top: 1.4rem; }
.maintenance-langs a { display: grid; place-items: center; padding: 0.45rem; border-radius: 8px; opacity: 0.6; transition: opacity 0.15s, background 0.15s; }
.maintenance-langs a:hover, .maintenance-langs a:focus-visible { opacity: 1; background: rgba(255, 255, 255, 0.08); }
.maintenance-langs a[aria-current] { opacity: 1; background: rgba(255, 255, 255, 0.12); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.25); }
.maintenance-footer { text-align: center; padding: 1rem 1.25rem calc(1.25rem + env(safe-area-inset-bottom, 0px)); font-size: 0.8rem; color: #A9C1B5; }
.maintenance-footer a { color: #C8D8CF; }
.maintenance-bar { background: var(--laiton); color: var(--ink); text-align: center; font-size: 0.85rem; font-weight: 700; padding: 0.4rem 1rem; }
.maintenance-bar a { color: var(--ink); margin-left: 0.4rem; }

.preview-link { display: grid; gap: 0.35rem; margin-top: 0.4rem; }
.preview-link label { font-weight: 600; }
.preview-link input { font-family: ui-monospace, monospace; font-size: 0.85rem; background: var(--sauge); }
.sep { border: 0; border-top: 1px solid var(--line); margin: 1.1rem 0; }
.input-prefix { display: flex; align-items: stretch; border: 1px solid var(--line-strong, #C9D1CC); border-radius: var(--radius-small); overflow: hidden; background: #fff; }
.input-prefix span { padding: 0.6rem 0.2rem 0.6rem 0.75rem; color: var(--muted); background: var(--sauge); white-space: nowrap; font-size: 0.92rem; display: flex; align-items: center; }
.input-prefix input { border: 0; border-radius: 0; flex: 1; min-width: 0; }
.link-button { background: none; border: 0; padding: 0; color: var(--bistrot); text-decoration: underline; font: inherit; cursor: pointer; }

/* Drapeaux de langue */
.flag { display: inline-block; width: 1.3rem; height: auto; aspect-ratio: 3 / 2; border-radius: 2px; box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.12); flex: none; vertical-align: middle; }
.flag-big { width: 2rem; border-radius: 3px; box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.35); }
.lang-menu summary { display: inline-flex; align-items: center; gap: 0.4rem; }
.lang-menu li a { display: flex; align-items: center; gap: 0.6rem; }
.nowrap { white-space: nowrap; }

.demo-accounts { margin: 0.75rem 0 1rem; }
.demo-accounts summary { cursor: pointer; font-weight: 600; }
.demo-accounts code { font-size: 0.85rem; }

/* ===== 1.5.4 : recherche épurée et panneau de filtres ===== */
.finder-actions { display: flex; gap: 0.6rem; align-items: center; flex-wrap: wrap; }
.finder .finder-actions .finder-submit { width: auto; flex: 1 1 auto; }
.btn-filters { background: transparent; color: #fff; border-color: rgba(255,255,255,0.45); list-style: none; user-select: none; }
.btn-filters::-webkit-details-marker { display: none; }
.btn-filters:hover { border-color: #fff; color: #fff; }
.filter-sheet[open] > .btn-filters { background: #fff; color: var(--bistrot); }
.filter-badge { display: inline-grid; place-items: center; min-width: 1.35rem; height: 1.35rem; padding: 0 0.3rem; border-radius: 999px; background: var(--laiton); color: var(--ink); font-size: 0.75rem; font-weight: 800; }
.sheet { color: var(--ink); background: var(--paper); border-radius: var(--radius); margin-top: 0.75rem; }
.sheet-backdrop { display: none; }
.sheet-head { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.1rem 0.5rem; }
.sheet-head h2 { margin: 0; font-size: 1.25rem; }
.sheet-close { display: none; font: inherit; font-size: 1.8rem; line-height: 1; width: 2.6rem; height: 2.6rem; border: 0; border-radius: 50%; background: var(--sauge); color: var(--ink); cursor: pointer; }
.sheet-body { padding: 0.25rem 1.1rem 1rem; }
.sheet-foot { display: flex; gap: 0.6rem; padding: 0.85rem 1.1rem calc(0.85rem + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--line); background: var(--paper); border-radius: 0 0 var(--radius) var(--radius); }
.sheet-foot .btn-primary { flex: 1; padding-left: 0.8rem; padding-right: 0.8rem; }
.filter-group { border: 0; margin: 0; padding: 0.9rem 0; border-bottom: 1px solid var(--line); min-width: 0; }
.filter-group legend, .filter-fold > summary { font-weight: 800; font-size: 1rem; padding: 0; margin-bottom: 0.55rem; }
.filter-group legend { float: left; width: 100%; }
.filter-group legend + * { clear: both; }
.filter-fold > summary { cursor: pointer; list-style: none; display: flex; align-items: center; gap: 0.4rem; margin-bottom: 0; }
.filter-fold > summary::-webkit-details-marker { display: none; }
.filter-fold > summary::after { content: ""; margin-left: auto; width: 0.55rem; height: 0.55rem; border-right: 2px solid var(--muted); border-bottom: 2px solid var(--muted); transform: rotate(45deg); transition: transform 0.15s; }
.filter-fold[open] > summary { margin-bottom: 0.55rem; }
.filter-fold[open] > summary::after { transform: rotate(-135deg); }
.filter-help { color: var(--muted); font-size: 0.88rem; margin: 0 0 0.6rem; }
.filter-note { color: var(--muted); font-size: 0.82rem; margin: 0.9rem 0 0; }
.pills { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.pill { position: relative; cursor: pointer; }
.pill input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.pill span { display: block; padding: 0.45rem 0.85rem; border-radius: 999px; border: 1px solid #C9D1CC; background: var(--paper); font-size: 0.92rem; font-weight: 600; line-height: 1.3; }
.pill:hover span { border-color: var(--bistrot); }
.pill input:checked + span { background: var(--bistrot); border-color: var(--bistrot); color: #fff; }
.pill-avoid input:checked + span { background: var(--danger-soft); border-color: var(--danger); color: var(--danger); text-decoration: line-through; text-decoration-thickness: 1.5px; }
.pill input:focus-visible + span { outline: 3px solid var(--laiton); outline-offset: 2px; }
.active-filters { list-style: none; display: flex; flex-wrap: wrap; gap: 0.4rem; margin: -0.25rem 0 1rem; padding: 0; }
.active-filters a { display: inline-flex; gap: 0.35rem; align-items: center; padding: 0.3rem 0.75rem; border-radius: 999px; background: var(--sauge); color: var(--bistrot); font-size: 0.88rem; font-weight: 600; text-decoration: none; }
.active-filters a:hover { background: #DDE6E0; color: var(--ink); }
.active-filters a span { font-size: 1.1rem; line-height: 1; }
.active-filters .active-filters-clear { background: transparent; text-decoration: underline; }

/* Avec JavaScript : volet plein écran sur téléphone, latéral sur ordinateur. */
.js .filter-sheet[open] .sheet {
  position: fixed; z-index: 60; inset: 0; margin: 0; border-radius: 0;
  display: flex; flex-direction: column; padding-top: env(safe-area-inset-top, 0px);
}
.js .filter-sheet[open] .sheet-body { flex: 1; overflow-y: auto; overscroll-behavior: contain; }
.js .filter-sheet[open] .sheet-close { display: inline-grid; place-items: center; }
.js .filter-sheet[open] .sheet-foot { border-radius: 0; }
.js .filter-sheet[open] .sheet-backdrop { display: block; position: fixed; inset: 0; z-index: 59; background: rgba(16, 38, 29, 0.45); }
html.sheet-open, html.sheet-open body { overflow: hidden; }
@media (min-width: 40rem) {
  .js .filter-sheet[open] .sheet { inset: 0 0 0 auto; width: 27rem; box-shadow: -10px 0 40px rgba(16, 38, 29, 0.18); }
  .finder .finder-actions .finder-submit { flex: 0 0 auto; }
}

/* Connexion au back-office */
.admin-guest { background: var(--sauge); }
.admin-guest-main { flex: 1; display: grid; place-items: center; padding: 2rem 1rem; }
.admin-guest-card { width: 100%; max-width: 24rem; background: var(--paper); border-radius: var(--radius); padding: 1.75rem 1.5rem; box-shadow: 0 10px 30px rgba(16, 38, 29, 0.08); }
.admin-guest-logo { display: block; width: 4rem; height: 4rem; margin: 0 auto 1rem; }
.admin-guest-card h1 { text-align: center; font-size: 1.4rem; }
.admin-guest-card .form > .btn { width: 100%; }
html:not(.js) .filter-sheet[open] { flex: 1 1 100%; }
.btn.is-empty { opacity: 0.75; }

/* ===== 1.5.5 : menu principal ===== */
.header-inner { flex-wrap: wrap; }
.brand { order: 1; margin-right: auto; }
.header-nav { order: 2; }
.menu-toggle { order: 3; display: none; align-items: center; gap: 0.35rem; font: inherit; font-weight: 700; color: var(--ink); background: transparent; border: 1px solid #C9D1CC; border-radius: 999px; padding: 0.4rem 0.75rem; min-height: 2.5rem; cursor: pointer; }
.menu-toggle[aria-expanded="true"] { background: var(--sauge); border-color: var(--sauge); }
.menu-toggle span { font-size: 0.92rem; }
.site-menu { order: 4; flex-basis: 100%; display: flex; flex-wrap: wrap; gap: 0.25rem; padding: 0 0 0.6rem; }
.menu-group summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 0.25rem; font-weight: 700; padding: 0.5rem 0.55rem; border-radius: var(--radius-small); white-space: nowrap; }
.menu-group summary::-webkit-details-marker { display: none; }
.menu-group summary:hover, .menu-group[open] summary { background: var(--sauge); }
.menu-chevron { width: 1.05rem; height: 1.05rem; transition: transform 0.15s; }
.menu-group[open] .menu-chevron { transform: rotate(180deg); }
.menu-group ul { list-style: none; margin: 0; padding: 0.3rem; }
.menu-group a { display: block; padding: 0.55rem 0.7rem; border-radius: 6px; color: var(--ink); text-decoration: none; }
.menu-group a:hover { background: var(--sauge); color: var(--bistrot); }

/* Téléphone et tablette (avec JavaScript) : bouton Menu, volet sous l'en-tête. */
@media (max-width: 59.99rem) {
  .js .menu-toggle { display: inline-flex; }
  .js .site-menu {
    display: none; position: absolute; left: 0; right: 0; top: 100%;
    background: var(--paper); border-bottom: 1px solid var(--line); box-shadow: 0 14px 30px rgba(16, 38, 29, 0.12);
    padding: 0.5rem 1.1rem 1rem; max-height: calc(100vh - 6rem); overflow-y: auto; flex-direction: column; flex-wrap: nowrap; gap: 0;
  }
  .js .site-menu.is-open { display: flex; }
  .js .site-menu .menu-group { border-bottom: 1px solid var(--line); }
  .js .site-menu .menu-group:last-child { border-bottom: 0; }
  .js .site-menu .menu-group summary { padding: 0.8rem 0.2rem; font-size: 1.05rem; background: transparent; }
  .js .site-menu .menu-group ul { padding: 0 0 0.6rem; }
  .js .site-menu .menu-group a { padding: 0.55rem 0.4rem; }
}
@media (max-width: 29.99rem) {
  .menu-toggle span { display: none; }
  .menu-toggle { padding: 0.4rem; width: 2.5rem; justify-content: center; }
  .header-inner { flex-wrap: nowrap; gap: 0.35rem; }
  .brand { min-width: 0; gap: 0.45rem; }
  .brand-name { overflow: hidden; text-overflow: ellipsis; font-size: 0.95rem; }
  .lang-menu summary span { display: none; }
  .nav-login span { display: none; }
  .header-nav .nav-login .icon { display: block; width: 1.5rem; height: 1.5rem; }
  .header-nav .nav-link { padding-left: 0.15rem; padding-right: 0.15rem; }
}

/* Ordinateur : menus déroulants à côté du logo. */
@media (min-width: 60rem) {
  .brand { margin-right: 0; }
  .site-menu { order: 2; flex-basis: auto; flex-wrap: nowrap; padding: 0; margin: 0 auto 0 1.5rem; }
  .header-nav { order: 3; }
  .menu-group { position: relative; }
  .menu-group ul {
    position: absolute; top: calc(100% + 0.4rem); left: 0; z-index: 20; min-width: 19rem;
    background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 14px 30px rgba(16, 38, 29, 0.12);
  }
}

.nav-login { display: inline-flex; align-items: center; }
.nav-login .icon { display: none; }
@media (min-width: 60rem) { .header-inner { flex-wrap: nowrap; } }
@media (min-width: 60rem) and (max-width: 79.99rem) {
  .header-nav .nav-icon span, .account-chip span:last-child, .lang-menu summary span { display: none; }
  .account-chip { padding: 0.2rem; }
}

/* ===== 1.5.6 : « J'aime » et état du jour ===== */
.action-like.is-static { cursor: default; }
.action-like.pop .icon { animation: like-pop 0.35s ease-out; }
@keyframes like-pop { 0% { transform: scale(1); } 45% { transform: scale(1.35) rotate(-12deg); } 100% { transform: scale(1); } }
.result-likes { display: inline-flex; align-items: center; gap: 0.2rem; color: var(--bistrot); font-weight: 700; }
.result-likes .icon { width: 0.95rem; height: 0.95rem; }
.day-banner { display: flex; flex-wrap: wrap; gap: 0.2rem 0.6rem; align-items: baseline; margin: 0 0 0.9rem; padding: 0.7rem 0.9rem; border-radius: var(--radius-small); background: var(--laiton-soft); border-left: 4px solid var(--laiton); }
.day-banner-closed_today, .day-banner-not_out { background: var(--danger-soft); border-left-color: var(--danger); }
.day-banner-closed_today strong, .day-banner-not_out strong { color: var(--danger); }
.day-banner span { color: var(--muted); font-size: 0.92rem; }
.fav-status { display: block; font-size: 0.88rem; font-weight: 700; color: var(--laiton-ink); }
.muted .icon { width: 1rem; height: 1rem; vertical-align: -0.15em; }

/* =====================================================================
   1.5.7 : système de design « moderne et chaleureux »
   Titres : Bricolage Grotesque. Texte : Figtree. Polices libres (SIL OFL),
   hébergées sur le site : aucun appel à un service extérieur.
   ===================================================================== */
@font-face { font-family: "Bricolage Grotesque"; src: url("../fonts/bricolage-grotesque.woff2") format("woff2"); font-weight: 500 800; font-style: normal; font-display: swap; }
@font-face { font-family: "Figtree"; src: url("../fonts/figtree.woff2") format("woff2"); font-weight: 400 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Figtree"; src: url("../fonts/figtree-italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }

:root {
  --font: "Figtree", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --font-display: "Bricolage Grotesque", "Figtree", system-ui, sans-serif;
  --surface: #F3F6F2;          /* sections alternées : blanc teinté de sauge */
  --slate: #182C24;            /* ardoise */
  --frame: #8B6432;            /* cadre bois de l'ardoise */
  --scarf: #C23A2B;            /* rouge du foulard, en touche seulement */
  --step-0: 1.0625rem;
  --step-1: 1.25rem;
  --step-2: clamp(1.45rem, 1.2rem + 1vw, 1.9rem);
  --step-3: clamp(2rem, 1.4rem + 3vw, 3.4rem);
  --band: clamp(2.75rem, 2rem + 3vw, 4.5rem);
}
body { font-size: var(--step-0); line-height: 1.6; }
h1, h2, h3, .brand-name, .finder-title, .result-dish, .offer-price, .stat-value { font-family: var(--font-display); font-optical-sizing: auto; }
h1 { font-weight: 800; letter-spacing: -0.03em; line-height: 1.04; }
h2 { font-size: var(--step-2); font-weight: 750; letter-spacing: -0.02em; line-height: 1.15; }
h3 { font-size: var(--step-1); font-weight: 700; letter-spacing: -0.01em; }
.brand-name { font-weight: 800; letter-spacing: -0.02em; font-size: 1.08rem; }
.btn { border-radius: 10px; font-weight: 700; }
.btn-big { min-height: 3.25rem; padding: 0.8rem 1.6rem; font-size: 1.05rem; }
.link-strong { font-weight: 700; color: var(--bistrot); text-decoration: underline; text-decoration-color: var(--laiton); text-decoration-thickness: 2px; text-underline-offset: 0.25em; }
.link-strong:hover { color: var(--ink); text-decoration-color: var(--bistrot); }

/* --- Bandeau d'ouverture (pages vitrine) --- */
.hero { background: var(--bistrot); color: #fff; overflow: hidden; }
.hero-inner { display: grid; gap: 2.25rem; padding-top: clamp(2.25rem, 1.5rem + 3vw, 4rem); padding-bottom: clamp(2.5rem, 1.5rem + 4vw, 4.5rem); align-items: center; }
.hero h1 { font-size: var(--step-3); max-width: 13ch; margin-bottom: 1rem; }
.hero-lead { font-size: 1.15rem; color: #D5E2DA; max-width: 34rem; margin-bottom: 1.6rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.hero-visual { position: relative; justify-self: center; width: 100%; max-width: 25rem; padding-bottom: 3.5rem; }
.hero-mascot { position: absolute; right: -1.5rem; bottom: -0.5rem; width: 9.5rem; pointer-events: none; }
.hero-mascot img { width: 100%; height: auto; display: block; filter: drop-shadow(0 8px 14px rgba(0, 0, 0, 0.25)); }

/* --- L'ardoise du jour : l'élément signature --- */
.ardoise {
  margin: 0; position: relative; color: #F2F1EA; background: var(--slate);
  background-image: radial-gradient(120% 80% at 20% 0%, rgba(255,255,255,0.07), transparent 60%), radial-gradient(90% 70% at 100% 100%, rgba(255,255,255,0.04), transparent 60%);
  border: 0.7rem solid var(--frame); border-radius: 14px;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,0.35), inset 0 0 28px rgba(0,0,0,0.45), 0 18px 40px rgba(0, 0, 0, 0.28);
  padding: 1.15rem 1.25rem 1rem; transform: rotate(-1.2deg);
}
.ardoise-title { font-family: var(--font-display); font-weight: 700; font-size: 1.35rem; letter-spacing: -0.01em; color: #fff; margin-bottom: 0.6rem; padding-bottom: 0.55rem; border-bottom: 1px dashed rgba(242, 241, 234, 0.35); }
.ardoise-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.15rem; }
.ardoise-list a { display: block; padding: 0.45rem 0.35rem; margin: 0 -0.35rem; border-radius: 6px; color: inherit; text-decoration: none; }
.ardoise-list a:hover { background: rgba(255, 255, 255, 0.07); }
.ardoise-line { display: flex; align-items: baseline; gap: 0.45rem; }
.ardoise-dish { font-weight: 700; font-size: 1.02rem; }
.ardoise-dots { flex: 1; min-width: 1rem; border-bottom: 2px dotted rgba(242, 241, 234, 0.35); transform: translateY(-0.25em); }
.ardoise-price { font-family: var(--font-display); font-weight: 700; color: #F0C66B; white-space: nowrap; }
.ardoise-place { display: block; font-size: 0.85rem; color: rgba(242, 241, 234, 0.62); }
.ardoise-foot, .ardoise-empty { margin: 0.7rem 0 0; font-size: 0.85rem; color: rgba(242, 241, 234, 0.7); }
.ardoise-empty { font-size: 0.95rem; margin: 0.4rem 0; }
@media (prefers-reduced-motion: no-preference) {
  .ardoise { animation: ardoise-in 0.7s cubic-bezier(.2,.8,.25,1) both; }
  @keyframes ardoise-in { from { opacity: 0; transform: translateY(14px) rotate(-3deg); } to { opacity: 1; transform: rotate(-1.2deg); } }
}

/* --- Sections --- */
.band { padding: var(--band) 0; }
.band-alt { background: var(--surface); }
.band-title { margin-bottom: 1.75rem; max-width: 24ch; }

/* Étapes : une vraie séquence, donc numérotée. */
.how-steps { list-style: none; counter-reset: st; margin: 0; padding: 0; display: grid; gap: 1.75rem; }
.how-steps li { counter-increment: st; position: relative; padding-top: 3.6rem; }
.how-steps li::before { content: counter(st); position: absolute; top: 0; left: 0; font-family: var(--font-display); font-weight: 800; font-size: 3rem; line-height: 1; color: var(--laiton); }
.how-steps h3 { margin-bottom: 0.35rem; }
.how-steps p { margin: 0; color: var(--muted); }

/* Bande de photos : ce qui donne faim. */

/* Avantages : une liste aérée, pas une grille de boîtes. */
.feature-list { display: grid; gap: 1.75rem 3rem; }
.feature-item { display: grid; grid-template-columns: auto 1fr; gap: 1rem; align-items: start; }
.feature-icon { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%; background: var(--paper); color: var(--bistrot); box-shadow: inset 0 0 0 2px var(--laiton); }
.feature-icon .icon { width: 1.4rem; height: 1.4rem; }
.feature-item h3 { margin: 0.2rem 0 0.35rem; }
.feature-item p { margin: 0 0 0.5rem; color: var(--muted); }

/* Questions fréquentes : intro à gauche, accordéon à droite. */
.split { display: grid; gap: 1.75rem; }
.split-intro p { color: var(--muted); }
.accordion { border-top: 1px solid var(--line); }
.accordion details { border-bottom: 1px solid var(--line); }
.accordion summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 1rem; padding: 1.05rem 0; font-weight: 700; font-size: 1.05rem; }
.accordion summary::-webkit-details-marker { display: none; }
.accordion summary::after { content: "+"; flex: none; font-family: var(--font-display); font-size: 1.5rem; line-height: 1; color: var(--laiton); transition: transform 0.2s; }
.accordion details[open] summary::after { transform: rotate(45deg); }
.accordion .prose { padding: 0 0 1.1rem; color: var(--muted); }

/* Bandeau d'appel final */
.cta-band { background: var(--laiton-soft); }
.cta-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 1rem 2.5rem; padding-top: 2.5rem; padding-bottom: 2.5rem; text-align: center; }
.cta-inner h2 { margin-bottom: 1rem; }
.cta-mascot { width: 10rem; height: auto; }

/* --- Pages de lecture : bandeau court, texte confortable, encadré utile --- */
.page-hero { background: var(--bistrot); color: #fff; }
.page-hero .wrap { padding-top: clamp(2rem, 1.5rem + 2vw, 3.25rem); padding-bottom: clamp(2rem, 1.5rem + 2vw, 3.25rem); }
.page-hero h1 { font-size: clamp(1.9rem, 1.4rem + 2.4vw, 2.9rem); max-width: 20ch; margin-bottom: 0.75rem; }
.page-lead { font-size: 1.12rem; color: #D5E2DA; max-width: 38rem; margin: 0; }
.reading { display: grid; gap: 2rem; padding-top: 2.25rem; padding-bottom: var(--band); }
.reading-main { max-width: 40rem; }
.reading-main h2 { font-size: 1.45rem; margin: 2rem 0 0.75rem; }
.reading-main h2:first-child { margin-top: 0; }
.reading-main p { line-height: 1.7; }
.aside-note { font-size: 0.88rem; color: var(--muted); margin: 0.9rem 0.25rem 0; }

/* Encadré d'offre : le même partout (sans publicité, tarifs restaurateurs). */
.offer-card { background: var(--paper); border: 1px solid var(--line); border-top: 5px solid var(--laiton); border-radius: 16px; padding: 1.4rem 1.4rem 1.25rem; box-shadow: 0 14px 34px rgba(16, 38, 29, 0.09); }
.offer-price { font-size: 2.4rem; font-weight: 800; letter-spacing: -0.03em; color: var(--bistrot); margin: 0 0 1rem; line-height: 1; }
.offer-price span { font-family: var(--font); font-size: 0.95rem; font-weight: 600; letter-spacing: 0; color: var(--muted); }
.offer-card .btn { width: 100%; text-align: center; }
.check-list { list-style: none; padding: 0; margin: 0 0 1.25rem; display: grid; gap: 0.6rem; }
.check-list li { position: relative; padding-left: 1.85rem; }
.check-list li::before { content: ""; position: absolute; left: 0; top: 0.2em; width: 1.2rem; height: 1.2rem; border-radius: 50%; background: var(--sauge) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231F4D3B' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4L18 8'/%3E%3C/svg%3E") center / 0.8rem no-repeat; }

/* --- Formulaires : photo à gauche, carte à droite --- */
.auth-shell { display: grid; min-height: calc(100vh - 8rem); background: var(--surface); }
.auth-photo { display: none; position: relative; overflow: hidden; }
.auth-photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.auth-photo-caption { position: absolute; left: 0; right: 0; bottom: 0; margin: 0; padding: 4rem 2rem 1.75rem; color: #fff; font-family: var(--font-display); font-weight: 700; font-size: 1.5rem; line-height: 1.2; letter-spacing: -0.01em; background: linear-gradient(to top, rgba(16, 38, 29, 0.85), transparent); }
.auth-panel { display: grid; place-items: center; padding: 2rem 1.1rem 3rem; }
.auth-card { width: 100%; max-width: 27rem; background: var(--paper); border-radius: 18px; padding: 1.75rem 1.5rem; box-shadow: 0 14px 34px rgba(16, 38, 29, 0.08); }
.auth-logo { display: block; width: 12.5rem; max-width: 70%; margin: 0 auto 1rem; }
.auth-logo img { width: 100%; height: auto; display: block; }
.auth-card h1 { font-size: 1.85rem; margin-bottom: 1rem; }
.auth-card .form > .btn { width: 100%; }
.auth-card .aside { margin: 1.25rem 0 0; font-size: 0.95rem; }

/* --- Accueil : titre et ardoise --- */
.finder-title { font-weight: 800; letter-spacing: -0.03em; }
.finder-board { display: none; }
.result-dish { font-weight: 700; letter-spacing: -0.01em; }
.result { border-radius: 14px; }

@media (min-width: 40rem) {
  .how-steps { grid-template-columns: repeat(3, 1fr); gap: 2rem; }
  .feature-list { grid-template-columns: 1fr 1fr; }
  .cta-inner { flex-wrap: nowrap; text-align: left; justify-content: flex-start; }
  .auth-card { padding: 2.25rem 2.25rem 2rem; }
}
@media (min-width: 56rem) {
  .hero-inner { grid-template-columns: 1.15fr 0.85fr; gap: 3rem; }
  .hero-visual { justify-self: end; }
  .split { grid-template-columns: 0.8fr 1.2fr; gap: 3rem; }
  .reading { grid-template-columns: minmax(0, 1fr) 21rem; gap: 3.5rem; align-items: start; }
  .reading-aside { order: 2; position: sticky; top: 5.5rem; }
  .reading-main { order: 1; }
  .auth-shell { grid-template-columns: 1fr 1fr; }
  .auth-photo { display: block; }
}
@media (min-width: 64rem) {
  .finder-wrap { display: flex; flex-direction: column; justify-content: center; min-height: 31rem; padding-right: 27rem; }
  .finder-board { display: block; position: absolute; right: 1.6rem; top: 50%; width: 22rem; transform: translateY(-50%); padding-bottom: 2.5rem; }
  .finder-board .hero-mascot { right: -2.2rem; bottom: -1.2rem; width: 8.5rem; }
  .finder-mascot { display: none !important; }
  .finder { overflow: visible; padding: 2.75rem 0 2.5rem; }
  .finder-title { max-width: 14ch; }
}

/* ===== 1.5.8 : ajout à l'écran d'accueil ===== */
.btn-install { gap: 0.5rem; margin-top: 0.25rem; }
.btn-install .icon { width: 1.2rem; height: 1.2rem; }
.menu-install { display: flex; align-items: center; gap: 0.5rem; width: 100%; padding: 0.55rem 0.7rem; border: 0; border-radius: 6px; background: var(--laiton-soft); color: var(--laiton-ink); font: inherit; font-weight: 700; text-align: left; cursor: pointer; }
.menu-install .icon { width: 1.15rem; height: 1.15rem; flex: none; }
.install-banner { display: grid; grid-template-columns: auto 1fr; gap: 0.75rem 1rem; align-items: center; margin: 0.5rem 0 1.75rem; padding: 1rem 1.1rem; border-radius: 16px; background: var(--laiton-soft); }
.install-banner img { width: 3rem; height: 3rem; border-radius: 12px; }
.install-banner p { margin: 0; font-weight: 600; }
.install-banner-actions { grid-column: 1 / -1; display: flex; align-items: center; gap: 1rem; }
.install-banner-actions .btn { flex: 1; }
.install-dialog { border: 0; border-radius: 18px; padding: 1.5rem; width: min(26rem, calc(100vw - 2rem)); box-shadow: 0 24px 60px rgba(16, 38, 29, 0.3); color: var(--ink); }
.install-dialog::backdrop { background: rgba(16, 38, 29, 0.5); }
.install-dialog-head { display: flex; align-items: center; gap: 0.9rem; margin-bottom: 1rem; }
.install-dialog-head img { width: 3.25rem; height: 3.25rem; border-radius: 12px; }
.install-dialog h2 { font-size: 1.25rem; margin: 0; }
.install-steps { margin: 0 0 1.25rem; padding-left: 1.3rem; display: grid; gap: 0.6rem; }
.install-steps li::marker { font-family: var(--font-display); font-weight: 800; color: var(--laiton); }
.install-dialog .btn { width: 100%; }
.install-toast { position: fixed; left: 50%; bottom: calc(1rem + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); z-index: 70; margin: 0; padding: 0.8rem 1.2rem; border-radius: 12px; background: var(--ink); color: #fff; font-weight: 600; box-shadow: 0 10px 30px rgba(0,0,0,0.25); width: max-content; max-width: calc(100vw - 2rem); }
@media (min-width: 40rem) {
  .install-banner { grid-template-columns: auto 1fr auto; }
  .install-banner-actions { grid-column: auto; }
  .install-banner-actions .btn { flex: none; }
}

/* ===== 1.5.9 : menu simplifié, pages Utilisateurs / Restaurateurs, pages d'information ===== */
.menu-link { display: flex; align-items: center; font-weight: 700; padding: 0.5rem 0.55rem; border-radius: var(--radius-small); color: var(--ink); text-decoration: none; white-space: nowrap; }
.menu-link:hover, .menu-link[aria-current="page"] { background: var(--sauge); color: var(--ink); }
.menu-install-wrap { display: block; padding: 0.6rem 0 0; }
@media (max-width: 59.99rem) {
  .js .site-menu .menu-link { padding: 0.85rem 0.2rem; font-size: 1.05rem; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; }
  .js .site-menu .menu-link[aria-current="page"] { color: var(--bistrot); }
}
@media (min-width: 60rem) { .site-menu .menu-install-wrap { display: none !important; } }

.hero-note { margin: 0.9rem 0 0; font-size: 0.92rem; color: #BFD2C7; }
.hero-photo { max-width: 28rem; padding-bottom: 2.5rem; }
.hero-photo-main { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 22px; box-shadow: 0 20px 44px rgba(0, 0, 0, 0.3); }
.hero-photo-small { position: absolute; left: -1.25rem; bottom: 0.5rem; width: 38%; aspect-ratio: 1; object-fit: cover; border-radius: 18px; border: 5px solid var(--bistrot); box-shadow: 0 12px 26px rgba(0, 0, 0, 0.3); }
.hero-photo .hero-mascot { right: -1rem; bottom: -0.75rem; width: 8.5rem; }

.band-lead { color: var(--muted); max-width: 42rem; margin: -0.75rem 0 1.75rem; }
.band-note { color: var(--muted); font-size: 0.92rem; margin: 1.25rem 0; }
.plan-grid { display: grid; gap: 1.25rem; }
.plan-card h3 { margin-bottom: 0.25rem; }
.plan-help { color: var(--muted); font-size: 0.92rem; margin: 0 0 0.9rem; }
.plan-prices { list-style: none; margin: 0 0 0.75rem; padding: 0; }
.plan-prices li { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: 0.6rem 0; border-top: 1px solid var(--line); }
.plan-prices li:first-child { border-top: 0; }
.plan-prices strong { font-family: var(--font-display); font-size: 1.3rem; font-weight: 800; color: var(--bistrot); letter-spacing: -0.02em; }

.reading-flat { padding-top: 0; padding-bottom: 0; }
.reading-main > h2:first-child { margin-top: 0; }
.reading-main h3 { margin: 1.75rem 0 0.5rem; }
.lead-text { font-size: 1.15rem; color: var(--ink); }
.aside-card { padding: 1.4rem; border-radius: 16px; background: var(--surface); }
.aside-card h2 { font-size: 1.2rem; margin-bottom: 0.4rem; }
.aside-card p { color: var(--muted); font-size: 0.95rem; }
.accordion-title { font-size: 1.45rem; margin: 0 0 0.75rem; }
.accordion + .accordion-title { margin-top: 2.5rem; }
.soon { text-align: center; padding: 1.5rem 0 1rem; }
.soon img { width: 10rem; height: auto; margin-bottom: 0.75rem; }
.soon p { color: var(--muted); max-width: 30rem; margin: 0 auto; }
.form-card { background: var(--paper); border: 1px solid var(--line); border-radius: 16px; padding: 1.5rem; box-shadow: 0 14px 34px rgba(16, 38, 29, 0.06); }

@media (min-width: 48rem) { .plan-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 56rem) {
  .reading-main { order: 1; }
  .reading-aside { order: 2; }
}
.reading-main > h2.band-title { font-size: var(--step-2); margin-bottom: 1rem; }

/* ===== 1.6 : la mascotte assistante ===== */
.finder-guide { display: none; flex: 1 1 100%; gap: 0.55rem; padding: 0.3rem 1rem 0.3rem 0.35rem; background: rgba(255, 255, 255, 0.08); color: #fff; border-color: rgba(255, 255, 255, 0.45); }
.finder-guide img { width: 2.1rem; height: 2.1rem; border-radius: 50%; background: #fff; flex: none; }
.finder-guide:hover { background: rgba(255, 255, 255, 0.16); border-color: #fff; color: #fff; }
.js .finder-guide { display: inline-flex; }
@media (min-width: 40rem) { .finder-guide { flex: 0 0 auto; } }

.assistant-fab {
  position: fixed; right: 1rem; bottom: calc(1rem + env(safe-area-inset-bottom, 0px)); z-index: 18;
  display: inline-flex; align-items: center; gap: 0.6rem; height: 3.6rem; padding: 0.3rem 1.15rem 0.3rem 0.3rem;
  border: 0; border-radius: 999px; cursor: pointer; font: inherit; font-weight: 700; font-size: 0.98rem; color: #fff;
  background: var(--bistrot); box-shadow: 0 10px 26px rgba(16, 38, 29, 0.32); transition: background 0.18s, transform 0.18s;
}
.assistant-fab img { width: 3rem; height: 3rem; display: block; border-radius: 50%; background: #fff; box-shadow: 0 0 0 2px var(--laiton); }
.assistant-fab:hover { background: var(--ink); transform: translateY(-1px); }
.consent ~ .assistant .assistant-fab { margin-bottom: 9.5rem; }
.sheet-open .assistant { display: none; }


.assistant-panel {
  position: fixed; inset: 0; z-index: 30; display: flex; flex-direction: column; background: var(--paper);
  padding-top: env(safe-area-inset-top, 0px); padding-bottom: env(safe-area-inset-bottom, 0px);
}
.assistant-panel[hidden] { display: none; }
.assistant-open body { overflow: hidden; }
@media (min-width: 40rem) {
  .assistant-panel {
    inset: auto 1rem calc(5.6rem + env(safe-area-inset-bottom, 0px)) auto; width: 24.5rem; height: min(42rem, calc(100vh - 8rem));
    border-radius: 20px; overflow: hidden; padding: 0; box-shadow: 0 24px 60px rgba(16, 38, 29, 0.3), 0 0 0 1px rgba(16, 38, 29, 0.06);
  }
  .assistant-open body { overflow: auto; }
}
@media (max-width: 39.99rem) { .assistant.is-open .assistant-fab { display: none; } }

/* En-tête : la mascotte sur son ardoise */
.assistant-head {
  display: flex; align-items: center; gap: 0.7rem; padding: 0.7rem 0.6rem 0.7rem 0.75rem; flex: none;
  background: var(--slate); color: #F2F1EA; border-bottom: 4px solid var(--frame);
}
.assistant-mascot { flex: none; width: 4.6rem; transform-origin: 50% 90%; }
.assistant-mascot img { width: 100%; height: auto; display: block; filter: drop-shadow(0 4px 6px rgba(0, 0, 0, 0.35)); }
.assistant-head-text { flex: 1; min-width: 0; }
.assistant-head h2 { font-size: 1.1rem; margin: 0 0 0.1rem; color: #fff; }
.assistant-head p { margin: 0; font-size: 0.82rem; line-height: 1.35; color: rgba(242, 241, 234, 0.72); }
.assistant-head-actions { display: flex; gap: 0.15rem; align-self: flex-start; }
.assistant-icon-btn { display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border: 0; border-radius: 50%; background: transparent; color: #F2F1EA; cursor: pointer; }
.assistant-icon-btn:hover { background: rgba(255, 255, 255, 0.1); }

/* Le fil */
.assistant-log { flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 1rem 0.85rem 0.5rem; background: var(--sauge); display: flex; flex-direction: column; gap: 0.5rem; }
.assistant-msg { display: flex; }
.assistant-msg p { margin: 0; max-width: 86%; padding: 0.6rem 0.85rem; line-height: 1.42; font-size: 0.97rem; }
.assistant-msg.is-bot p { background: var(--paper); border-radius: 4px 16px 16px 16px; box-shadow: 0 1px 0 rgba(16, 38, 29, 0.06); }
.assistant-msg.is-me { justify-content: flex-end; }
.assistant-msg.is-me p { background: var(--bistrot); color: #fff; border-radius: 16px 4px 16px 16px; }
.assistant-msg.is-note p { background: var(--laiton-soft); color: var(--laiton-ink); font-size: 0.85rem; }
.assistant-dots { display: inline-flex; gap: 0.25rem; padding: 0.8rem 0.9rem; background: var(--paper); border-radius: 4px 16px 16px 16px; }
.assistant-dots i { width: 0.42rem; height: 0.42rem; border-radius: 50%; background: var(--muted); opacity: 0.4; animation: assistant-dot 1s infinite; }
.assistant-dots i:nth-child(2) { animation-delay: 0.15s; }
.assistant-dots i:nth-child(3) { animation-delay: 0.3s; }
@keyframes assistant-dot { 0%, 60%, 100% { opacity: 0.35; transform: none; } 30% { opacity: 1; transform: translateY(-3px); } }

/* Les réponses, écrites à la craie sur une petite ardoise */
.assistant-board { width: 100%; background: var(--slate); color: #F2F1EA; border: 4px solid var(--frame); border-radius: 10px; padding: 0.55rem 0.8rem 0.7rem; box-shadow: 0 6px 16px rgba(16, 38, 29, 0.25); }
.assistant-board ul { list-style: none; margin: 0; padding: 0; }
.assistant-board li + li { border-top: 1px dashed rgba(242, 241, 234, 0.22); }
.assistant-board a { display: block; padding: 0.55rem 0.35rem; margin: 0 -0.35rem; border-radius: 6px; color: inherit; text-decoration: none; }
.assistant-board a:hover { background: rgba(255, 255, 255, 0.07); }
.assistant-board-line { display: flex; align-items: baseline; gap: 0.4rem; }
.assistant-board-dish { font-weight: 700; line-height: 1.3; }
.assistant-board-dots { flex: 1; min-width: 0.75rem; border-bottom: 2px dotted rgba(242, 241, 234, 0.35); transform: translateY(-0.25em); }
.assistant-board-price { font-family: var(--font-display); font-weight: 700; color: #F0C66B; white-space: nowrap; }
.assistant-board-place { display: block; font-size: 0.85rem; color: rgba(242, 241, 234, 0.78); margin-top: 0.1rem; }
.assistant-board-meta { display: flex; flex-wrap: wrap; gap: 0.2rem 0.7rem; font-size: 0.78rem; color: rgba(242, 241, 234, 0.6); margin-top: 0.15rem; }
.assistant-board-meta .is-open { color: #9FD9B5; }
.assistant-board a.assistant-board-more { margin: 0.35rem 0 0; padding: 0.5rem 0.35rem 0.1rem; border-top: 1px solid rgba(242, 241, 234, 0.3); border-radius: 0; font-weight: 700; color: #F0C66B; text-decoration: underline; text-underline-offset: 0.2em; }

/* Les choix */
.assistant-choices { flex: none; padding: 0.55rem 0.85rem 0.15rem; background: var(--paper); border-top: 1px solid var(--line); max-height: 45%; overflow-y: auto; }
.assistant-choices:empty { display: none; }
.assistant-chips { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-bottom: 0.45rem; }
.assistant-chips.is-sub { background: var(--sauge); padding: 0.5rem; border-radius: 12px; }
.assistant-chip {
  font: inherit; font-size: 0.92rem; font-weight: 600; line-height: 1.2; padding: 0.5rem 0.85rem; min-height: 2.3rem;
  border: 1px solid #C9D1CC; border-radius: 999px; background: var(--paper); color: var(--ink); cursor: pointer;
}
.assistant-chip:hover { border-color: var(--bistrot); color: var(--bistrot); }
.assistant-chip[aria-pressed="true"] { background: var(--bistrot); border-color: var(--bistrot); color: #fff; }
.assistant-chip[aria-pressed="true"]::before { content: "✓ "; }
.assistant-chip[aria-expanded="true"] { box-shadow: inset 0 0 0 1px var(--bistrot); }
.assistant-chip.is-primary { background: var(--laiton); border-color: var(--laiton); color: var(--ink); padding-inline: 1.2rem; }
.assistant-chip.is-primary:hover { background: #CFA046; color: var(--ink); }
.assistant-chip.is-small { font-size: 0.85rem; min-height: 2rem; padding: 0.35rem 0.7rem; }

/* La saisie */
.assistant-input { flex: none; display: flex; gap: 0.45rem; padding: 0.55rem 0.85rem 0.75rem; background: var(--paper); }
.assistant-choices:empty + .assistant-input { border-top: 1px solid var(--line); }
.assistant-input input { flex: 1; min-width: 0; font: inherit; font-size: 1rem; padding: 0.6rem 0.95rem; border: 1px solid #C9D1CC; border-radius: 999px; background: var(--paper); color: var(--ink); }
.assistant-input input:focus { outline: none; border-color: var(--bistrot); box-shadow: 0 0 0 3px rgba(31, 77, 59, 0.15); }
.assistant-send { flex: none; width: 2.75rem; height: 2.75rem; border: 0; border-radius: 50%; background: var(--bistrot); color: #fff; display: grid; place-items: center; cursor: pointer; }
.assistant-send:hover { background: var(--ink); }

/* La mascotte bouge un peu : elle respire, réfléchit, se réjouit ou se désole */
@media (prefers-reduced-motion: no-preference) {
  .assistant-fab img { animation: assistant-nudge 7s ease-in-out 3s 3; }
  .assistant-panel:not([hidden]) { animation: assistant-rise 0.28s cubic-bezier(.2,.8,.25,1) both; }
  .assistant-mascot.is-idle { animation: assistant-breathe 3.2s ease-in-out infinite; }
  .assistant-mascot.is-thinking { animation: assistant-think 0.9s ease-in-out infinite; }
  .assistant-mascot.is-happy { animation: assistant-hop 0.55s ease-out 2; }
  .assistant-mascot.is-sad { animation: assistant-droop 0.6s ease-out both; }
  .assistant-msg:not(.is-typing) { animation: assistant-in 0.25s ease-out both; }
}
@keyframes assistant-nudge { 0%, 84%, 100% { transform: none; } 87% { transform: rotate(-12deg) translateY(-3px); } 90% { transform: rotate(10deg) translateY(-3px); } 93% { transform: rotate(-6deg); } 96% { transform: rotate(3deg); } }
@keyframes assistant-rise { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@keyframes assistant-breathe { 0%, 100% { transform: none; } 50% { transform: translateY(-3px) rotate(-1deg); } }
@keyframes assistant-think { 0%, 100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } }
@keyframes assistant-hop { 0%, 100% { transform: none; } 40% { transform: translateY(-9px) scale(1.04); } 70% { transform: translateY(1px) scale(0.98, 1.02); } }
@keyframes assistant-droop { to { transform: translateY(3px) rotate(-7deg); filter: saturate(0.75); } }
@keyframes assistant-in { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

/* ===== Retour en haut de page ===== */
.to-top {
  position: fixed; right: 1.3rem; bottom: calc(1.1rem + env(safe-area-inset-bottom, 0px)); z-index: 17;
  width: 2.9rem; height: 2.9rem; border: 0; border-radius: 50%; cursor: pointer;
  display: grid; place-items: center; background: var(--bistrot); color: #fff;
  box-shadow: 0 8px 20px rgba(16, 38, 29, 0.28);
}
.to-top:hover { background: var(--ink); }
.to-top[hidden] { display: none; }
.assistant ~ .to-top { bottom: calc(5.6rem + env(safe-area-inset-bottom, 0px)); right: 1.35rem; }
.consent ~ .to-top { margin-bottom: 9.5rem; }
.sheet-open .to-top, .assistant-open .to-top { display: none; }
#contenu:focus { outline: none; }
@media (prefers-reduced-motion: no-preference) { .to-top:not([hidden]) { animation: assistant-in 0.25s ease-out both; } }

/* ===== 1.6.2 : fond lin naturel (site public et espace restaurateur ; le back-office reste blanc) ===== */
body:not(.admin):not(.maintenance-page) {
  --paper: #FFFDF8;
  --line: #E8DDCA;
  --sauge: #E8E4D1;            /* sauge réchauffée, accordée au lin */
  --surface: #ECE5D3;
  background: #F2EADC url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%22480%22%20height%3D%22480%22%3E%3Cfilter%20id%3D%22g%22%20x%3D%220%22%20y%3D%220%22%20width%3D%22100%25%22%20height%3D%22100%25%22%3E%3CfeTurbulence%20type%3D%22fractalNoise%22%20baseFrequency%3D%220.9%22%20numOctaves%3D%223%22%20seed%3D%227%22%20stitchTiles%3D%22stitch%22/%3E%3CfeColorMatrix%20values%3D%220%200%200%200%200.612%20%200%200%200%200%200.541%20%200%200%200%200%200.424%20%201.6%200%200%200%20-0.55%22/%3E%3C/filter%3E%3Crect%20width%3D%22480%22%20height%3D%22480%22%20fill%3D%22%23F2EADC%22/%3E%3Crect%20width%3D%22480%22%20height%3D%22480%22%20filter%3D%22url%28%23g%29%22%20opacity%3D%22.35%22/%3E%3C/svg%3E");
}
body:not(.admin) .site-header { background: rgba(251, 247, 240, 0.94); border-bottom-color: #E4D7C1; -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
body:not(.admin) .site-footer { background: transparent; border-top-color: #E4D7C1; }
body:not(.admin) .result-link, body:not(.admin) .offer, body:not(.admin) .form-card, body:not(.admin) .auth-card,
body:not(.admin) .panel, body:not(.admin) .offer-card, body:not(.admin) .table-scroll, body:not(.admin) .stat {
  box-shadow: 0 1px 0 rgba(122, 90, 28, 0.06), 0 10px 24px -16px rgba(90, 62, 20, 0.35);
}

/* ===== Proposer un restaurant ===== */
.suggest-band { display: grid; grid-template-columns: auto 1fr; gap: 1rem 1.25rem; align-items: center; margin-top: 2.5rem; margin-bottom: 2.5rem; padding-top: 1.5rem; padding-bottom: 1.5rem; background: var(--paper); border: 1px solid var(--line); border-left: 5px solid var(--laiton); border-radius: 16px; }
.suggest-band img { width: 4.5rem; height: 4.5rem; }
.suggest-band h2 { margin: 0 0 0.3rem; }
.suggest-band p { margin: 0; color: var(--muted); }
.suggest-band .btn { grid-column: 1 / -1; justify-self: start; }
@media (min-width: 48rem) { .suggest-band { grid-template-columns: auto 1fr auto; max-width: calc(var(--wrap) - 2.2rem); } .suggest-band .btn { grid-column: auto; } }
.empty-suggest { margin: 1.25rem 0 0; font-size: 0.95rem; }
.suggest-preview-mail { padding: 0.75rem 0.9rem; background: var(--laiton-soft); border-left: 4px solid var(--laiton); border-radius: 8px; font-size: 0.95rem; }
.suggest-mine-title { margin-top: 2rem; }
.suggest-mine { list-style: none; padding: 0; margin: 0; display: grid; gap: 0.5rem; }
.suggest-mine li { padding: 0.75rem 0.9rem; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); }
.suggest-state { display: block; font-size: 0.9rem; color: var(--muted); margin-top: 0.15rem; }
.suggest-state.is-joined { color: var(--bistrot); font-weight: 700; }

/* ===== 1.6.4 : fiche restaurant, un onglet par jour ===== */
.daytabs { display: none; gap: 0.5rem; overflow-x: auto; scrollbar-width: none; margin: 0 -1.1rem 0.9rem; padding: 0.1rem 1.1rem 0.35rem; scroll-padding-inline: 1.1rem; }
.js .daytabs { display: flex; }
.daytabs::-webkit-scrollbar { display: none; }
.daytab { flex: none; display: grid; justify-items: center; gap: 0.05rem; min-width: 5.6rem; padding: 0.55rem 0.8rem; border: 1px solid #D9CCB3; border-radius: 12px; background: var(--paper); color: var(--ink); font: inherit; cursor: pointer; }
.daytab:hover { border-color: var(--bistrot); }
.daytab-top { font-size: 0.8rem; color: var(--muted); font-weight: 600; }
.daytab-date { font-family: var(--font-display); font-weight: 700; font-size: 1.02rem; white-space: nowrap; }
.daytab[aria-selected="true"] { background: var(--bistrot); border-color: var(--bistrot); color: #fff; box-shadow: 0 6px 14px -8px rgba(16, 38, 29, 0.6); }
.daytab[aria-selected="true"] .daytab-top { color: rgba(255, 255, 255, 0.78); }
.daypanel + .daypanel { margin-top: 1.25rem; }
.js .daypanel + .daypanel { margin-top: 0; }
.daypanel:focus-visible { outline-offset: 4px; }
.daypanel-date { font-size: 0.9rem; color: var(--muted); margin: 0 0 0.6rem; }
.daypanel-where { display: block; color: var(--bistrot); font-weight: 600; }

/* Plats en cartes compactes : photo en vignette à gauche */
.offers.compact { grid-template-columns: 1fr; gap: 0.7rem; }
.offers.compact .offer { display: grid; grid-template-columns: 6.5rem minmax(0, 1fr); }
.offers.compact .offer-photo { width: 6.5rem; height: 100%; min-height: 6.5rem; object-fit: cover; }
.offers.compact .offer-body { grid-column: 2; padding: 0.75rem 0.9rem; }
.offers.compact .offer:not(:has(.offer-photo)) .offer-body { grid-column: 1 / -1; }
.offers.compact .offer-head h3 { font-size: 1rem; }
.offers.compact .offer-price { font-size: 1.15rem; }
.offers.compact .offer-desc { font-size: 0.9rem; margin: 0.2rem 0 0.35rem; }
.offers.compact .offer-tags { margin: 0 0 0.2rem; }
.offers.compact .offer-allergens { font-size: 0.78rem; margin: 0; }
@media (min-width: 40rem) { .offers.compact .offer { grid-template-columns: 8rem minmax(0, 1fr); } .offers.compact .offer-photo { width: 8rem; min-height: 7rem; } }

/* Horaires repliés, la ligne du jour reste visible */
.hours-fold { border: 1px solid var(--line); border-radius: 12px; background: var(--paper); }
.hours-fold summary { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 0.25rem 1rem; padding: 0.85rem 1rem; cursor: pointer; list-style: none; }
.hours-fold summary::-webkit-details-marker { display: none; }
.hours-title { font-family: var(--font-display); font-weight: 700; font-size: 1.05rem; }
.hours-today { color: var(--bistrot); font-weight: 600; font-size: 0.92rem; }
.hours-today::after { content: " ▾"; color: var(--muted); }
.hours-fold[open] .hours-today::after { content: " ▴"; }
.hours-fold .schedule { margin: 0 1rem 0.8rem; width: calc(100% - 2rem); }

/* Boutons de la fiche : toujours sur une seule ligne */
.resto-actions { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 0.4rem; }
@media (max-width: 26rem) { .action { font-size: 0.74rem; padding: 0.6rem 0.15rem; } .action span { -webkit-hyphens: auto; hyphens: auto; } }

/* ===== 1.8 : menus du jour (formules, plats au choix, compris) ===== */
.menu-card { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; box-shadow: 0 1px 0 rgba(122, 90, 28, 0.06), 0 10px 24px -16px rgba(90, 62, 20, 0.35); }
.menu-card-head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: 0.9rem 1rem 0.45rem; }
.menu-card-head h3 { margin: 0; font-size: 1.1rem; }
.menu-from { font-size: 0.82rem; color: var(--muted); white-space: nowrap; }
.menu-from strong { font-family: var(--font-display); color: var(--bistrot); font-size: 1.25rem; }
.menu-includes { display: inline-block; margin: 0 1rem 0.65rem; padding: 0.35rem 0.6rem; border-radius: 8px; font-size: 0.85rem; color: var(--laiton-ink); background: var(--laiton-soft); }
.formulas { display: flex; flex-wrap: wrap; gap: 0.4rem; padding: 0 1rem 0.8rem; margin: 0; list-style: none; }
.formulas li { display: flex; gap: 0.45rem; align-items: baseline; border: 1px solid #D9CCB3; border-radius: 10px; padding: 0.4rem 0.7rem; font-size: 0.88rem; background: #FFFDF8; }
.formulas li strong { font-family: var(--font-display); font-size: 1rem; color: var(--bistrot); white-space: nowrap; }
.formulas li.is-main { background: var(--bistrot); border-color: var(--bistrot); color: #fff; }
.formulas li.is-main strong { color: #F0C66B; }
.courses { border-top: 1px dashed #E2D6BF; padding: 0.3rem 1rem 0.5rem; }
.course { display: grid; grid-template-columns: 5.2rem minmax(0, 1fr); gap: 0.2rem 0.8rem; padding: 0.55rem 0; border-bottom: 1px dashed #EDE4D2; }
.course:last-child { border-bottom: 0; }
.course-label { font-size: 0.78rem; font-weight: 700; color: var(--laiton-ink); padding-top: 0.15rem; }
.course-label small { display: block; font-weight: 600; color: var(--muted); }
.course-dishes { display: grid; gap: 0.35rem; }
.cdish { display: grid; grid-template-columns: 3rem minmax(0, 1fr) auto; gap: 0.6rem; align-items: center; }
.cdish.no-photo { grid-template-columns: minmax(0, 1fr) auto; }
.cdish img { width: 3rem; height: 3rem; border-radius: 8px; object-fit: cover; display: block; }
.cdish-name { display: block; font-weight: 700; font-size: 0.95rem; line-height: 1.25; color: var(--ink); text-decoration: none; }
.cdish-name:hover { color: var(--bistrot); text-decoration: underline; }
.cdish-meta { display: block; font-size: 0.76rem; color: var(--muted); }
.cdish-price { font-family: var(--font-display); font-weight: 700; color: var(--bistrot); white-space: nowrap; font-size: 0.95rem; }
.course-or { margin: 0; font-size: 0.75rem; color: var(--muted); font-style: italic; }
.menu-foot { margin: 0; padding: 0.55rem 1rem 0.8rem; font-size: 0.8rem; color: var(--muted); border-top: 1px solid var(--line); }
@media (max-width: 26rem) { .course { grid-template-columns: 1fr; } }

/* Boutons de la fiche (Appeler, Itinéraire…) : des cartes blanches qui se détachent du fond */
.resto-actions .action { background: var(--paper); color: var(--bistrot); border: 1px solid #D9CCB3; box-shadow: 0 1px 0 rgba(122, 90, 28, 0.08), 0 6px 14px -10px rgba(16, 38, 29, 0.45); }
.resto-actions .action .icon { width: 2.1rem; height: 2.1rem; padding: 0.4rem; border-radius: 50%; background: var(--bistrot); color: #fff; }
.resto-actions .action:hover { border-color: var(--bistrot); }
.resto-actions .action.is-active { background: var(--bistrot); border-color: var(--bistrot); color: #fff; }
.resto-actions .action.is-active .icon { background: #fff; color: var(--bistrot); }
.resto-actions .action.is-static { box-shadow: none; }

/* Ardoise : « 13 restaurants… » mène à la liste complète */
.ardoise-foot a { color: inherit; text-decoration: underline; text-decoration-color: rgba(242, 241, 234, 0.4); text-underline-offset: 0.2em; }
.ardoise-foot a:hover { color: #F0C66B; text-decoration-color: currentColor; }
#resultats { scroll-margin-top: 5rem; }

/* Éditeur de menu (espace restaurateur) */
.menu-editor { display: grid; gap: 1.25rem; }
@media (min-width: 60rem) { .menu-editor { grid-template-columns: minmax(0, 1fr) 24rem; align-items: start; } .menu-ed-preview { position: sticky; top: 5rem; } }
.menu-editor .panel { margin: 0; }
.menu-ed-title { font-size: 1.05rem; margin: 1.4rem 0 0.3rem; }
.menu-ed-course { border: 1px solid var(--line); border-radius: 12px; padding: 0.75rem 0.85rem; margin-bottom: 0.6rem; background: #FFFDF8; }
.menu-ed-course-head { display: flex; justify-content: space-between; align-items: center; font-weight: 700; margin-bottom: 0.45rem; }
.menu-ed-chips:empty { display: none; }
.menu-ed-chip { display: inline-flex; align-items: center; gap: 0.4rem; border: 1px solid #C9D1CC; border-radius: 999px; padding: 0.3rem 0.35rem 0.3rem 0.75rem; font-size: 0.9rem; background: var(--paper); margin: 0 0.3rem 0.4rem 0; }
.menu-ed-chip button { border: 0; background: var(--sauge); border-radius: 50%; width: 1.5rem; height: 1.5rem; cursor: pointer; font-size: 1rem; line-height: 1; color: var(--ink); }
.menu-ed-chip button:hover { background: var(--danger-soft); color: var(--danger); }
.menu-ed-add { width: auto; max-width: 100%; border-style: dashed; color: var(--bistrot); }
.menu-ed-formulas { border-top: 1px solid var(--line); margin-top: 0.4rem; }
.menu-ed-formula { display: grid; grid-template-columns: auto 1fr 7.5rem; gap: 0.6rem; align-items: center; padding: 0.5rem 0; border-bottom: 1px solid var(--line); }
.menu-ed-formula label { font-weight: 600; }
.menu-ed-formula input[type="text"] { width: 100%; text-align: right; }
.menu-ed-preview-title { font-size: 0.85rem; font-weight: 700; color: var(--muted); margin: 0 0 0.5rem; }
.result-price small { font-weight: 600; font-size: 0.78em; color: var(--muted); }

/* ===== 1.10 : accueil pré-trié ===== */
.where-ask { display: grid; grid-template-columns: auto 1fr; gap: 1rem 1.25rem; align-items: center; margin: 0 0 1.75rem; padding: 1.1rem 1.25rem; background: var(--paper); border: 1px solid var(--line); border-left: 5px solid var(--laiton); border-radius: 16px; box-shadow: 0 10px 24px -16px rgba(90, 62, 20, 0.35); }
.where-ask img { width: 4.5rem; height: auto; }
.where-ask h2 { margin: 0 0 0.2rem; font-size: 1.2rem; }
.where-ask p { margin: 0; color: var(--muted); font-size: 0.95rem; }
.where-ask-actions { grid-column: 1 / -1; display: flex; gap: 0.6rem; flex-wrap: wrap; }
@media (min-width: 48rem) { .where-ask { grid-template-columns: auto 1fr auto; } .where-ask-actions { grid-column: auto; } }
.results-change { margin-left: 0.4rem; font-weight: 700; }
.results-group { display: flex; align-items: baseline; gap: 0.55rem; margin: 1.2rem 0 0.7rem; font-family: var(--font-display); font-weight: 700; font-size: 1.05rem; }
.results-group > span { width: 0.6rem; height: 0.6rem; border-radius: 50%; background: #2E8B57; display: inline-block; flex: none; }
.results-group.is-later > span { background: var(--laiton); }
.results-group small { font-family: var(--font); font-weight: 500; color: var(--muted); font-size: 0.85rem; }
.results-more { display: flex; justify-content: center; margin: 1.4rem 0 0.5rem; }

/* ===== 1.10 : qualité de la fiche, conseils ===== */
.quality { display: grid; gap: 0.9rem; padding: 1.1rem 1.25rem; margin-bottom: 1.25rem; background: var(--paper); border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 10px 24px -16px rgba(90, 62, 20, 0.35); }
.quality-head { display: flex; align-items: center; gap: 1rem; }
.quality-ring { --p: 0; width: 4.2rem; height: 4.2rem; border-radius: 50%; background: conic-gradient(var(--bistrot) calc(var(--p) * 1%), #E8DDCA 0); display: grid; place-items: center; flex: none; }
.quality-ring span { width: 3.3rem; height: 3.3rem; border-radius: 50%; background: var(--paper); display: grid; place-items: center; font-family: var(--font-display); font-weight: 800; color: var(--bistrot); }
.quality h2 { margin: 0; font-size: 1.15rem; }
.quality-head p { margin: 0.15rem 0 0; color: var(--muted); font-size: 0.9rem; }
.quality-todo { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.4rem; }
.quality-todo li { display: grid; grid-template-columns: 1.4rem 1fr auto; gap: 0.6rem; align-items: center; padding: 0.55rem 0.7rem; border-radius: 10px; background: #FBF6EC; font-size: 0.92rem; }
.quality-todo li.is-done { background: var(--ok-soft); color: var(--muted); }
.quality-ico { width: 1.4rem; height: 1.4rem; border-radius: 50%; display: grid; place-items: center; font-size: 0.8rem; font-weight: 800; background: var(--laiton); color: #fff; }
.is-done .quality-ico { background: var(--bistrot); }
.quality-todo a { font-weight: 700; font-size: 0.85rem; white-space: nowrap; }
.quality-guide { margin: 0; font-size: 0.88rem; }
.pro-tip { display: grid; grid-template-columns: auto 1fr; gap: 0.2rem 0.6rem; margin: 0.5rem 0 0.6rem; padding: 0.6rem 0.75rem; background: var(--laiton-soft); border-radius: 10px; font-size: 0.87rem; color: var(--laiton-ink); }
.pro-tip b { grid-column: 2; color: var(--ink); }
.pro-tip-ico { grid-row: span 2; font-size: 1.05rem; line-height: 1.3; }
.pro-tip a { color: var(--laiton-ink); font-weight: 700; }
.guide { max-width: 48rem; }
.guide-lead { color: var(--muted); margin-bottom: 1.4rem; }
.guide-section { background: var(--paper); border: 1px solid var(--line); border-radius: 16px; padding: 1.1rem 1.25rem; margin-bottom: 1rem; scroll-margin-top: 5rem; }
.guide-section h2 { font-size: 1.15rem; margin: 0 0 0.4rem; display: flex; gap: 0.55rem; align-items: center; }
.guide-n { width: 1.8rem; height: 1.8rem; border-radius: 50%; display: inline-grid; place-items: center; background: var(--bistrot); color: #fff; font-size: 0.9rem; flex: none; }
.guide-section > p { margin: 0 0 0.6rem; }
.guide-cmp { display: grid; gap: 0.6rem; }
@media (min-width: 40rem) { .guide-cmp { grid-template-columns: 1fr 1fr; } }
.guide-cmp div { padding: 0.6rem 0.75rem; border-radius: 10px; font-size: 0.9rem; }
.guide-cmp .is-yes { background: var(--ok-soft); }
.guide-cmp .is-no { background: var(--danger-soft); }
.guide-cmp b { display: block; font-size: 0.8rem; margin-bottom: 0.2rem; }
.required-mark { color: var(--danger); font-weight: 700; }
.required-note { margin-top: 0; }

/* ===== 1.11 : partage ===== */
.share-dialog { border: 0; border-radius: 18px; padding: 1.2rem 1.25rem; width: min(30rem, 92vw); background: var(--paper); color: var(--ink); box-shadow: 0 30px 60px -20px rgba(0, 0, 0, 0.45); }
.share-dialog::backdrop { background: rgba(16, 38, 29, 0.45); }
.share-head { display: flex; justify-content: space-between; align-items: center; gap: 1rem; margin-bottom: 0.8rem; }
.share-head h2 { margin: 0; font-size: 1.15rem; }
.share-close { border: 0; background: none; font-size: 1.6rem; line-height: 1; cursor: pointer; color: var(--muted); }
.share-preview { width: 100%; height: auto; border-radius: 10px; display: block; margin-bottom: 0.9rem; background: #E8DDCA; }
.share-nets { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.5rem; }
.share-nets a { display: flex; align-items: center; gap: 0.45rem; justify-content: center; padding: 0.6rem 0.4rem; border: 1px solid var(--line); border-radius: 10px; font-weight: 700; font-size: 0.88rem; color: var(--ink); text-decoration: none; background: #fff; }
.share-nets a:hover { border-color: var(--bistrot); }
.share-nets i { width: 1.1rem; height: 1.1rem; border-radius: 50%; display: inline-block; flex: none; }
.share-copy { display: flex; gap: 0.5rem; margin-top: 0.7rem; }
.share-copy input { flex: 1; min-width: 0; font-size: 0.85rem; }
@media (max-width: 26rem) { .share-nets { grid-template-columns: repeat(2, 1fr); } }
.daypanel-share { display: inline-flex; align-items: center; gap: 0.35rem; border: 0; background: none; padding: 0.1rem 0; font: inherit; font-size: 0.85rem; font-weight: 700; color: var(--bistrot); cursor: pointer; }
.daypanel-share .icon { width: 1rem; height: 1rem; }
.daypanel-share:hover { text-decoration: underline; }
/* 6 boutons d'action : grille sur téléphone */
@media (max-width: 30rem) { .resto-actions .action span { font-size: 0.68rem; } }
.today-actions { display: flex; gap: 0.6rem; flex-wrap: wrap; }
.btn-share .icon { width: 1.1rem; height: 1.1rem; }
.share-cta { display: grid; grid-template-columns: auto 1fr auto; gap: 0.9rem; align-items: center; margin: 1rem 0 0; padding: 0.9rem 1.1rem; background: var(--paper); border: 1px solid var(--line); border-left: 5px solid var(--bistrot); border-radius: 14px; }
.share-cta p { margin: 0.1rem 0 0; color: var(--muted); font-size: 0.92rem; }
.share-cta-ico { width: 2.4rem; height: 2.4rem; border-radius: 50%; background: var(--bistrot); color: #fff; display: grid; place-items: center; }
.share-cta-ico .icon { width: 1.2rem; height: 1.2rem; }
@media (max-width: 34rem) { .share-cta { grid-template-columns: auto 1fr; } .share-cta .btn { grid-column: 1 / -1; } }
.pro-share { max-width: 64rem; }
.pro-share-lead { color: var(--muted); }
.pro-share-grid { display: grid; gap: 1.2rem; margin: 1rem 0 1.2rem; }
@media (min-width: 56rem) { .pro-share-grid { grid-template-columns: 1.3fr 1fr; align-items: start; } }
.pro-share-card { display: grid; gap: 0.75rem; margin: 0; }
.pro-share-card h2 { font-size: 1.05rem; margin: 0; }
.pro-share-card img { width: 100%; height: auto; border-radius: 10px; display: block; background: #E8DDCA; }
.pro-share-card img.is-portrait { max-height: 30rem; object-fit: contain; }
.pro-share-card .btn { justify-self: start; }
.pro-share-card .share-nets { grid-template-columns: repeat(2, 1fr); }
.pro-share-card textarea { width: 100%; font-size: 0.92rem; }
.pro-share-actions { display: flex; gap: 0.6rem; flex-wrap: wrap; }

/* ===== 1.12 : photo des plats ===== */
.photo-pick { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0.35rem 0 0.4rem; }
.photo-pick .btn { cursor: pointer; }
@media (pointer: fine) { .photo-camera { display: none; } }
.photo-chosen { margin: 0.2rem 0; font-size: 0.85rem; color: var(--muted); }
.photo-library { border: 1px solid var(--line); border-radius: 12px; padding: 0.6rem 0.75rem; margin: 0.4rem 0; }
.photo-library legend { font-size: 0.85rem; font-weight: 700; padding: 0 0.3rem; }
.photo-library-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(5.5rem, 1fr)); gap: 0.5rem; max-height: 16rem; overflow-y: auto; }
.photo-library-grid label { position: relative; cursor: pointer; }
.photo-library-grid input { position: absolute; opacity: 0; }
.photo-library-grid img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 8px; border: 3px solid transparent; display: block; }
.photo-library-grid input:checked + img { border-color: var(--bistrot); }
.photo-library-grid input:focus-visible + img { outline: 2px solid var(--laiton); outline-offset: 2px; }
.net-dot { width: 0.85rem; height: 0.85rem; border-radius: 50%; display: inline-block; margin-right: 0.4rem; vertical-align: -0.05em; }
.socials-fields { border: 0; padding: 0; margin: 0.4rem 0 0.8rem; }
.socials-fields legend { font-weight: 700; margin-bottom: 0.2rem; }
.socials-grid { display: grid; gap: 0 1rem; }
@media (min-width: 40rem) { .socials-grid { grid-template-columns: 1fr 1fr; } }
.resto-socials { display: flex; flex-wrap: wrap; gap: 0.4rem 1rem; align-items: center; }
.resto-socials > span { color: var(--muted); font-size: 0.9rem; }
.resto-socials a { font-weight: 700; text-decoration: none; }
.resto-socials a:hover { text-decoration: underline; }
.share-all { margin: 1rem 0 1.2rem; border-left: 5px solid var(--bistrot); }
.share-all-head { display: flex; flex-wrap: wrap; gap: 0.8rem 1.2rem; align-items: center; justify-content: space-between; }
.share-all h2 { margin: 0; font-size: 1.15rem; }
.share-all-head p { margin: 0.2rem 0 0; color: var(--muted); font-size: 0.92rem; max-width: 34rem; }
.btn-big { padding: 0.8rem 1.3rem; font-size: 1.02rem; }
.btn-big .icon { width: 1.15rem; height: 1.15rem; }
.share-steps { list-style: none; margin: 0.9rem 0 0; padding: 0; display: grid; gap: 0.4rem; }
.share-steps li { padding: 0.55rem 0.75rem; border-radius: 10px; background: #FBF6EC; font-size: 0.92rem; }
.share-steps li.is-done { background: var(--ok-soft); }
.share-steps small { display: block; color: var(--muted); margin-top: 0.15rem; }
.share-step { font-weight: 700; text-decoration: none; }
.share-step::after { content: " ↗"; }
.share-steps li.is-done .share-step::after { content: " ✓"; }
.share-all-foot { margin: 0.6rem 0 0; }
.field > .label { display: block; font-weight: 700; margin-bottom: 0.3rem; }
.daypanel-translate { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.85rem; font-weight: 700; color: var(--bistrot); text-decoration: none; }
.daypanel-translate:hover, .translate-link a:hover { text-decoration: underline; }
.daypanel-translate .icon, .translate-link .icon { width: 1rem; height: 1rem; }
.translate-link { margin-top: -0.3rem; }
.translate-link a { display: inline-flex; align-items: center; gap: 0.35rem; font-size: 0.85rem; font-weight: 700; color: var(--bistrot); text-decoration: none; }
.daypanel-actions { float: right; display: flex; gap: 1.1rem; align-items: center; margin-left: 1rem; }
@media (max-width: 34rem) { .daypanel-actions { float: none; margin: 0 0 0.4rem; flex-wrap: wrap; gap: 0.4rem 1rem; } }
/* Sous-titre traduit sous le nom (« Danie dnia », « Dish of the day »…) */
.brand-text { display: flex; flex-direction: column; line-height: 1.05; min-width: 0; }
.brand-tagline { font-size: 0.72rem; font-weight: 600; color: var(--laiton-ink); letter-spacing: 0.01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 0.12rem; }
.admin-header .brand-tagline { color: rgba(255, 255, 255, 0.75); }
.suggest-gate { text-align: center; padding: 2rem 0 3rem; }
.suggest-gate-mascot { width: 9rem; height: auto; }
.suggest-gate h1 { margin: 0.6rem 0 0.4rem; }
.suggest-gate-lead { font-size: 1.05rem; max-width: 32rem; margin: 0 auto 1.2rem; }
.suggest-gate-actions { display: flex; gap: 0.6rem; justify-content: center; flex-wrap: wrap; margin-bottom: 0.6rem; }
/* Tarifs : choix du pays */
.price-country { display: flex; align-items: center; justify-content: center; gap: 0.6rem; margin: 0 0 1.2rem; flex-wrap: wrap; }
.price-country label { font-weight: 700; }
.price-country select { width: auto; min-width: 12rem; }

/* Page Gastronautes hors de Suisse : texte « Pourquoi de la publicité ? » seul, sans encadré d'abonnement. */
.reading-solo { max-width: 46rem; }

/* Publicité plein écran (toutes les 3 recherches) */
.ad-overlay { position: fixed; inset: 0; z-index: 1000; background: rgba(20, 30, 22, .62); display: flex; align-items: center; justify-content: center;
  padding: max(1rem, env(safe-area-inset-top, 0px)) 1rem max(1rem, env(safe-area-inset-bottom, 0px)); }
.ad-overlay[hidden] { display: none; }
.ad-overlay-box { background: var(--paper); border-radius: 14px; width: 100%; max-width: 24rem; max-height: 100%; padding: .8rem; display: flex; flex-direction: column; gap: .7rem; overflow: auto; }
.ad-overlay-top { display: flex; justify-content: space-between; align-items: center; }
.ad-overlay-close { background: none; border: 0; font: inherit; font-size: .85rem; color: var(--muted); cursor: pointer; padding: .2rem .4rem; }
.ad-overlay-close:disabled { cursor: default; }
.ad-overlay-close:not(:disabled) { color: inherit; text-decoration: underline; }
.ad-overlay-visual img { display: block; width: 100%; height: auto; max-height: 62vh; object-fit: contain; border-radius: 8px; }
.ad-overlay-continue { width: 100%; }
.ad-overlay-note { margin: 0; text-align: center; font-size: .85rem; }
body.ad-overlay-open { overflow: hidden; }

/* Back-office, ciblage des encarts : cases sur plusieurs colonnes */
.check-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr)); gap: .1rem 1rem; margin: .2rem 0 .8rem 1.6rem; }
fieldset.panel legend { font-weight: 600; padding: 0 .3rem; }

/* 1.15 : pied de fiche et signalement */
.resto-foot { margin: 2.5rem 0 1rem; padding-top: 1rem; border-top: 1px solid var(--line); font-size: 0.9rem; color: var(--muted); }
.resto-foot p { margin: 0.25rem 0; }
.resto-foot a { color: var(--ink); display: inline-flex; align-items: center; gap: 0.35rem; }
.resto-foot svg { width: 1rem; height: 1rem; }
.report .choices .choice { align-items: flex-start; }

/* 1.16.1 : bande de plats du jour sous le cadre vert, sur la colonne du texte, fondue sur les côtés */
.reel { padding: 1.4rem 0 0.4rem; }
.reel-count { margin: 0 0 0.6rem; color: var(--bistrot); font-size: 0.9rem; font-weight: 700; display: flex; align-items: center; gap: 0.5rem; }
.reel-dot { width: 0.5rem; height: 0.5rem; border-radius: 50%; background: #3B9B62; box-shadow: 0 0 0 0.25rem rgba(59, 155, 98, 0.18); }
.reel-viewport { overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.reel-track { display: flex; gap: 0.75rem; width: max-content; animation: reel-scroll var(--reel-dur, 60s) linear infinite; }
.reel:hover .reel-track, .reel:focus-within .reel-track, .reel-track:active { animation-play-state: paused; }
@keyframes reel-scroll { from { transform: translateX(0); } to { transform: translateX(calc(-50% - 0.375rem)); } }
.reel-tile { position: relative; flex: none; width: 11rem; aspect-ratio: 4 / 3; border-radius: 14px; overflow: hidden; background: var(--sauge); display: block; color: var(--ink); text-decoration: none; box-shadow: 0 6px 18px rgba(16, 38, 29, 0.10); }
.reel-tile img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.4s ease; }
a.reel-tile:hover img, a.reel-tile:focus-visible img { transform: scale(1.06); }
.reel-price { position: absolute; top: 0.45rem; right: 0.45rem; background: var(--bistrot); color: #fff; font-weight: 700; font-size: 0.8rem; padding: 0.15rem 0.55rem; border-radius: 999px; }
.reel-cap { position: absolute; left: 0.4rem; right: 0.4rem; bottom: 0.4rem; background: rgba(255, 255, 255, 0.95); border-radius: 9px; padding: 0.3rem 0.5rem; font-size: 0.75rem; line-height: 1.3; display: grid; }
.reel-cap strong { font-size: 0.82rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.reel-cap span { color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.reel-viewport { padding: 0.4rem 0 0.9rem; }
@media (min-width: 48rem) { .reel-tile { width: 13rem; } .reel { padding-top: 1.75rem; } }

@media (prefers-reduced-motion: reduce) {
  .reel-track { animation: none; }
  .reel-viewport { overflow-x: auto; scrollbar-width: none; }
  .reel-copy { display: none; }
}

/* 1.16 : étapes sur une grille commune, pastilles numérotées */
.how-steps li { padding-top: 0; padding-left: 3.4rem; min-height: 2.6rem; }
.how-steps li::before { top: 0.05rem; width: 2.5rem; height: 2.5rem; border-radius: 50%; background: var(--bistrot); color: var(--laiton-soft); font-size: 1.1rem; display: grid; place-items: center; box-shadow: 0 0 0 4px rgba(184, 134, 43, 0.25); }
.how-steps h3 { font-size: 1.1rem; margin-top: 0.35rem; }

/* 1.17 : cadres pastel du site public (sauge, miel, pêche) */
:root {
  --pastel-sauge: #E3EEE6; --pastel-sauge-line: #CFE0D4;
  --pastel-miel: #F8ECD3; --pastel-miel-line: #EBD9B3;
  --pastel-peche: #F9E3D9; --pastel-peche-line: #EFCFC1;
  --card-line: #E6DCC8; --card-radius: 18px;
}
body:not(.admin) .feature-list { gap: 0.9rem; }
body:not(.admin) .feature-item { padding: 1.1rem 1.2rem; border-radius: var(--card-radius); background: var(--pastel-sauge); border: 1px solid var(--pastel-sauge-line); gap: 0.9rem; }
body:not(.admin) .feature-item:nth-child(3n+2) { background: var(--pastel-miel); border-color: var(--pastel-miel-line); }
body:not(.admin) .feature-item:nth-child(3n+3) { background: var(--pastel-peche); border-color: var(--pastel-peche-line); }
body:not(.admin) .feature-item p { color: #3D4A43; margin-bottom: 0.25rem; }
body:not(.admin) .feature-icon { width: 2.6rem; height: 2.6rem; border-radius: 12px; background: #fff; box-shadow: none; }
body:not(.admin) .feature-item:nth-child(3n+2) .feature-icon { color: var(--laiton-ink); }
body:not(.admin) .feature-item:nth-child(3n+3) .feature-icon { color: #8C3B2A; }
.feature { border-radius: var(--card-radius); background: var(--pastel-sauge); border: 1px solid var(--pastel-sauge-line); }
.feature:nth-child(3n+2) { background: var(--pastel-miel); border-color: var(--pastel-miel-line); }
.feature:nth-child(3n+2) h3 { color: var(--laiton-ink); }
.feature:nth-child(3n+3) { background: var(--pastel-peche); border-color: var(--pastel-peche-line); }
.feature:nth-child(3n+3) h3 { color: #8C3B2A; }

/* Étapes : une carte blanche par étape */
.how-steps { gap: 0.9rem; }
.how-steps li { background: #fff; border: 1px solid var(--card-line); border-radius: var(--card-radius); padding: 1.1rem 1.2rem 1.15rem; min-height: 0; }
.how-steps li::before { position: static; margin-bottom: 0.65rem; box-shadow: none; }
.how-steps h3 { margin-top: 0; }
.how-steps p { color: #3D4A43; }
.steps-list li { background: #fff; border: 1px solid var(--card-line); border-radius: var(--card-radius); padding: 1rem 1.1rem 1rem 4.2rem; }
.steps-list li::before { left: 1.1rem; top: 1rem; }

/* Tarifs : carte blanche, bandeau pastel, bouton */
.plan-public { background: #fff; border: 1px solid var(--card-line); border-radius: var(--card-radius); padding: 0; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 8px 22px rgba(16, 38, 29, 0.06); }
.plan-public .plan-head { background: var(--pastel-sauge); padding: 1rem 1.2rem 0.9rem; }
.plan-grid > .plan-public:nth-child(3n+2) .plan-head { background: var(--pastel-miel); }
.plan-grid > .plan-public:nth-child(3n+3) .plan-head { background: var(--pastel-peche); }
.plan-public .plan-head h3 { margin: 0 0 0.2rem; }
.plan-public .plan-head .plan-help { margin: 0; color: #3D4A43; }
.plan-public .plan-prices { margin: 0.4rem 1.2rem 0.5rem; }
.plan-public .plan-extra { margin: 0 1.2rem 0.5rem; color: var(--muted); }
.plan-public .plan-cta { margin: auto 1.2rem 1.2rem; text-align: center; }

/* Encadrés d'information : un seul modèle, en sauge */
body:not(.admin) .notice, body:not(.admin) .band-note, body:not(.admin) .hero-note { border-radius: 14px; }
body:not(.admin) .notice { background: var(--pastel-sauge); border: 1px solid var(--pastel-sauge-line); color: var(--ink); }
body:not(.admin) .notice-brass { background: var(--pastel-miel); border-color: var(--pastel-miel-line); }
body:not(.admin) .band-note { display: inline-block; background: var(--pastel-sauge); border: 1px solid var(--pastel-sauge-line); padding: 0.6rem 0.95rem; color: var(--ink); }

/* FAQ : chaque question dans une carte */
body:not(.admin) .accordion { border-top: 0; display: grid; gap: 0.6rem; }
body:not(.admin) .accordion details { background: #fff; border: 1px solid var(--card-line); border-radius: 14px; padding: 0 1.1rem; }
body:not(.admin) .accordion details[open] { background: var(--pastel-miel); border-color: var(--pastel-miel-line); }
body:not(.admin) .accordion summary { padding: 0.95rem 0; font-size: 1rem; }
body:not(.admin) .accordion .prose { color: #3D4A43; }

/* Pages d'information et cartes latérales */
body:not(.admin) .reading-main > .prose, body:not(.admin) .reading-main.prose { background: #fff; border: 1px solid var(--card-line); border-radius: var(--card-radius); padding: clamp(1.1rem, 3vw, 2rem); }
body:not(.admin) .aside-card { background: var(--pastel-miel); border: 1px solid var(--pastel-miel-line); border-radius: var(--card-radius); }
body:not(.admin) .offer-card { border-radius: var(--card-radius); border-color: var(--card-line); }
@media (min-width: 48rem) { .plan-public .plan-head { min-height: 6.2rem; } }

/* 1.17.1 : fiche restaurant recadrée (cadre vert, deux colonnes, bande en bas) */
.resto-hero { background: var(--bistrot); color: #fff; }
.resto-hero-inner { display: grid; gap: 1.5rem; padding-top: clamp(1.5rem, 1rem + 2vw, 2.75rem); padding-bottom: clamp(1.75rem, 1rem + 2.5vw, 3rem); align-items: center; }
.resto-hero .resto-head { padding: 0; order: 2; }
.resto-hero .resto-photo { order: 1; }
.resto-hero h1 { color: #fff; font-size: clamp(1.9rem, 1.4rem + 2vw, 2.8rem); }
.resto-hero .resto-sub { color: #D5E2DA; }
.resto-hero .resto-address { color: #fff; }
.resto-hero .resto-state .state { color: #E3C98F; }
.resto-hero .resto-state .state-open { color: #8BD3A6; }
.resto-hero .day-banner { background: rgba(255, 255, 255, 0.1); border-color: rgba(255, 255, 255, 0.25); color: #fff; }
.resto-hero .day-banner strong { color: #F6C9B8; }
.resto-hero .resto-actions .action { border-color: transparent; }
.resto-photo { margin: 0; }
.resto-photo-main, .resto-photo .ph { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 18px; display: block; box-shadow: 0 14px 34px rgba(0, 0, 0, 0.25); background: #2E6A52; }
.resto-thumbs { display: flex; gap: 0.5rem; margin-top: 0.6rem; overflow-x: auto; scrollbar-width: none; }
.resto-thumb { flex: none; width: 4.2rem; aspect-ratio: 4 / 3; padding: 0; border: 2px solid transparent; border-radius: 10px; overflow: hidden; background: none; cursor: pointer; opacity: 0.75; }
.resto-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.resto-thumb.is-active, .resto-thumb:hover { border-color: #fff; opacity: 1; }
.resto-body { display: grid; gap: 1.5rem; padding-top: 1.75rem; padding-bottom: 1rem; }
.resto-main > .resto-section:first-child { padding-top: 0; }
.resto-side { display: grid; gap: 0.9rem; align-content: start; }
.resto-side .resto-section { padding: 0; }
.resto-side .resto-section h2 { font-size: 1.05rem; margin-bottom: 0.6rem; }
.resto-side .hours-fold { background: var(--pastel-sauge); border-color: var(--pastel-sauge-line); border-radius: var(--card-radius); }
.resto-side .side-map { background: #fff; border: 1px solid var(--card-line); border-radius: var(--card-radius); padding: 1rem; }
.resto-side .mini-map { height: 12rem; }
.resto-side .side-about { background: var(--pastel-miel); border: 1px solid var(--pastel-miel-line); border-radius: var(--card-radius); padding: 1rem 1.1rem; }
.resto-side .resto-foot { margin: 0.25rem 0 0; }
.resto-main .offers .offer { border-radius: var(--card-radius); }
.reel-bottom { padding-top: 0.5rem; padding-bottom: 1.5rem; }
@media (min-width: 52rem) {
  .resto-hero-inner { grid-template-columns: 1.15fr 0.85fr; gap: 2.5rem; }
  .resto-hero .resto-head { order: 1; }
  .resto-hero .resto-photo { order: 2; }
  .resto-body { grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 2rem; padding-top: 2.25rem; }
  .resto-side { position: sticky; top: 5rem; }
}
.resto-hero .day-banner, .resto-hero .day-banner-closed_today, .resto-hero .day-banner-not_out { background: rgba(255, 255, 255, 0.1); border-left-color: #F0A58C; }
.resto-hero .day-banner strong { color: #FFD3C4; }
.resto-hero .day-banner span { color: #DCE7E1; }
.resto-body { grid-template-columns: minmax(0, 1fr); }
.resto-main, .resto-side, .resto-hero-inner > * { min-width: 0; }
@media (min-width: 52rem) { .resto-body { grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); } }
.dish-page .dish-price { font-family: var(--font-display); font-size: 1.6rem; font-weight: 800; color: #E3C98F; margin: 0.2rem 0 0.6rem; }
.dish-page .dish-back { color: #E3C98F; font-weight: 700; }
.dish-page .resto-hero .tag { background: rgba(255, 255, 255, 0.14); color: #fff; }
.dish-page .translate-link a { color: #DCE7E1; }
.dish-allergens { background: var(--pastel-sauge); border: 1px solid var(--pastel-sauge-line); border-radius: var(--card-radius); padding: 1.1rem 1.2rem !important; }

/* 1.18 : service sur place, à l'emporter, livraison */
.serve-box { border: 1px solid var(--line); border-radius: var(--radius); padding: 1rem 1.1rem; margin: 0 0 1.1rem; display: grid; gap: 0.5rem; }
.serve-box legend { font-weight: 700; padding: 0 0.3rem; }
.serve-opt { align-items: flex-start; }
.serve-opt .choice-help { display: block; font-weight: 400; color: var(--muted); font-size: 0.9rem; }
.serve-sub { margin-left: 1.6rem; padding: 0.9rem 1rem; border-radius: 12px; background: var(--sauge); display: grid; gap: 0.6rem; }
.serve-sub input[type="url"] { margin-bottom: 0.35rem; }
.serve-self { display: grid; gap: 0.5rem; }
.serve-badges { display: flex; flex-wrap: wrap; gap: 0.35rem; margin: 0.4rem 0 0; padding: 0; list-style: none; }
.serve-badge { display: inline-flex; align-items: center; gap: 0.3rem; border-radius: 999px; padding: 0.15rem 0.6rem; font-size: 0.78rem; font-weight: 700; background: var(--pastel-sauge, #E3EEE6); color: var(--bistrot); }
.serve-badge.is-takeaway { background: var(--pastel-miel, #F8ECD3); color: var(--laiton-ink); }
.serve-badge.is-delivery { background: var(--pastel-peche, #F9E3D9); color: #8C3B2A; }
.resto-hero .serve-badges { margin: 0.7rem 0 0.2rem; }
.delivery-box { margin-top: 0.9rem; padding: 0.9rem 1rem; border-radius: 14px; background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.18); }
.delivery-box p { margin: 0 0 0.5rem; color: #D5E2DA; font-size: 0.92rem; }
.delivery-box .delivery-terms { margin: 0.55rem 0 0; font-size: 0.85rem; }
.delivery-links { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.delivery-links .btn { display: inline-flex; align-items: center; gap: 0.4rem; }
.delivery-links .icon { width: 1.05rem; height: 1.05rem; }

/* 1.18.3 : cartes de résultats de même hauteur, pastilles sur une rangée */
.results { align-items: stretch; }
.result, .result-link { height: 100%; }
.result-link { box-sizing: border-box; }
.result-tags { margin-top: auto; padding-top: 0.35rem; }
.result-body { align-content: start; height: 100%; grid-template-rows: auto auto auto 1fr; }
.result-tags .serve-badges { display: contents; }
.result-tags .serve-badge { font-size: 0.72rem; padding: 0.1rem 0.5rem; }
.result-tags .tag { font-size: 0.72rem; }

/* Bloc de livraison : le rayon ne concerne que la livraison par le restaurant */
.delivery-group + .delivery-group { margin-top: 0.75rem; padding-top: 0.75rem; border-top: 1px solid rgba(255, 255, 255, 0.15); }
.delivery-box .delivery-group-title { margin: 0 0 0.45rem; color: #fff; font-weight: 700; font-size: 0.92rem; }
.delivery-box .delivery-group-title span { font-weight: 400; color: #D5E2DA; }
.delivery-box .delivery-title { font-size: 0.85rem; text-transform: none; color: #E3C98F; font-weight: 700; margin-bottom: 0.6rem; }

/* 1.19 : traductions des menus dans la page */
.tr-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem 1rem; margin: 0 0 1rem; padding: 0.6rem 0.9rem; border-radius: 12px; background: var(--pastel-sauge, #E3EEE6); border: 1px solid var(--pastel-sauge-line, #CFE0D4); }
.tr-bar[hidden] { display: none; }
.tr-note { margin: 0; display: inline-flex; align-items: center; gap: 0.4rem; font-size: 0.9rem; color: var(--bistrot); font-weight: 600; }
.tr-note .icon { width: 1.1rem; height: 1.1rem; }
.tr-actions { display: flex; gap: 0.4rem; flex-wrap: wrap; margin-left: auto; }
.tr-btn { font: inherit; font-size: 0.88rem; font-weight: 700; border-radius: 999px; padding: 0.35rem 0.9rem; border: 1px solid var(--bistrot); background: var(--bistrot); color: #fff; cursor: pointer; }
.tr-btn-ghost { background: #fff; color: var(--bistrot); }
.tr-btn[disabled] { opacity: 0.7; cursor: progress; }
.tr-bar-dark { background: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.2); margin-top: 0.75rem; }
.tr-bar-dark .tr-actions { margin-left: 0; }
.tr-fields { margin: 0 0 1.1rem; border: 1px dashed var(--line); border-radius: var(--radius); padding: 0.6rem 0.9rem; background: var(--paper); }
.tr-fields summary { cursor: pointer; font-weight: 700; color: var(--bistrot); display: flex; align-items: center; gap: 0.4rem; }
.tr-fields summary .icon { width: 1.1rem; height: 1.1rem; }
.tr-fields[open] summary { margin-bottom: 0.4rem; }
.tr-count { font-weight: 600; font-size: 0.8rem; color: var(--laiton-ink); background: var(--laiton-soft); border-radius: 999px; padding: 0.05rem 0.5rem; }
.tr-lang { border: 0; padding: 0; margin: 0.6rem 0 0; display: grid; gap: 0.5rem; }
.tr-lang legend { display: inline-flex; align-items: center; gap: 0.4rem; font-weight: 700; font-size: 0.9rem; }

/* 1.20 : bandeau du mode test (administrateur dans l'espace d'un compte) */
.test-bar { background: var(--laiton); color: var(--ink); font-size: 0.88rem; }
.test-bar-inner { padding-top: 0.45rem; padding-bottom: 0.45rem; display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.9rem; }
.test-bar-label { background: var(--ink); color: #fff; font-weight: 700; font-size: 0.75rem; letter-spacing: 0.04em; text-transform: uppercase; padding: 0.15rem 0.55rem; border-radius: 999px; }
.test-bar-who { font-weight: 600; }
.test-bar-actions { margin-left: auto; display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.9rem; }
.test-bar-actions a { color: var(--ink); font-weight: 600; }
.test-bar-actions form { margin: 0; }
.test-bar-actions button { font: inherit; font-weight: 700; cursor: pointer; background: var(--ink); color: #fff; border: 0; border-radius: 999px; padding: 0.3rem 0.85rem; }
.test-bar-actions button:hover { background: var(--bistrot); }

/* 1.20 : abonnement « sans publicité » dans Mon compte */
.adfree-panel { display: grid; gap: 1rem 2rem; }
.adfree-panel .check-list { margin: 0.6rem 0 0; }
.adfree-panel-buy { display: flex; flex-direction: column; align-items: flex-start; gap: 0.5rem; }
.adfree-panel-buy .offer-price { margin: 0; }
.adfree-panel-buy .field-help { margin: 0; }
@media (min-width: 40rem) {
  .adfree-panel { grid-template-columns: minmax(0, 1fr) 15rem; align-items: start; }
  .adfree-panel-buy { align-items: flex-end; text-align: right; }
}

/* ===== 1.21 : espace restaurateur, menu latéral regroupé et cadres uniformes ===== */
.is-pro { --pro-line: #E4DCCB; --pro-soft: #FBF8F2; --pro-ok: #2E7D57; }
.is-pro .site-main { padding-bottom: 0; }
.pro-shell { max-width: 80rem; margin: 0 auto; padding: 1.5rem 1.5rem 3rem; display: flex; gap: 1.5rem; align-items: flex-start; }
.pro-side { flex: none; width: 15.5rem; background: var(--paper); border: 1px solid var(--pro-line); border-radius: 16px; padding: 0.9rem 0.6rem; position: sticky; top: 1rem; max-height: calc(100vh - 2rem); overflow-y: auto; }
.pro-side-head { display: flex; align-items: flex-start; gap: 0.5rem; padding: 0.3rem 0.6rem 0.8rem; border-bottom: 1px solid #EFE8DA; margin-bottom: 0.4rem; }
.pro-side-est { display: grid; min-width: 0; }
.pro-side-kicker { font-size: 0.75rem; color: var(--muted); }
.pro-side-name { font-family: var(--font-display); font-size: 1.05rem; line-height: 1.2; overflow-wrap: anywhere; }
.pro-side-place { font-size: 0.8rem; color: var(--muted); }
.pro-side-close { display: none; margin-left: auto; font: inherit; font-size: 1.6rem; line-height: 1; width: 2.75rem; height: 2.75rem; border: 0; background: var(--sauge); border-radius: 50%; cursor: pointer; color: var(--ink); }
.pro-side .pro-switch { margin: 0.2rem 0.6rem 0.4rem; }
.pro-side .pro-switch summary { display: block; text-align: center; }
.pro-side .pro-switch-menu { left: 0; right: auto; min-width: 100%; }
.pro-switch-menu button { display: grid; }
.pro-switch-menu button small { color: var(--muted); font-size: 0.78rem; }
.pro-nav { display: grid; gap: 0.1rem; }
.pro-nav-group { margin: 0.8rem 0 0.15rem; padding: 0 0.6rem; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--laiton-ink); }
.pro-nav-group:first-child { margin-top: 0.3rem; }
.pro-nav a { display: block; padding: 0.45rem 0.6rem; border-radius: 10px; color: var(--ink); text-decoration: none; font-weight: 600; font-size: 0.95rem; }
.pro-nav a:hover { background: var(--sauge); }
.pro-nav a[aria-current] { background: var(--bistrot); color: #fff; }
.pro-side-page { display: block; margin: 0.9rem 0.6rem 0.2rem; padding: 0.6rem; text-align: center; border: 1px solid var(--pro-line); border-radius: 999px; font-weight: 600; font-size: 0.9rem; text-decoration: none; }
.pro-content { flex: 1; min-width: 0; }
.pro-content .wrap { max-width: none; margin: 0; padding-left: 0; padding-right: 0; }
.pro-content .pro-page { padding-top: 0; padding-bottom: 0; }
.pro-content .narrow-pro { max-width: 46rem; }
.pro-content .pro-notice { margin: 0 0 1rem; }
.pro-content .share-cta { margin: 0 0 1.25rem; }
.pro-page h1 { font-family: var(--font-display); font-size: 1.85rem; line-height: 1.15; margin-bottom: 0.35rem; }
.pro-page h1 + .muted, .pro-page h1 + p { margin-top: 0; }
.pro-content .panel, .pro-content .quality, .pro-card { background: var(--paper); border: 1px solid var(--pro-line); border-radius: 16px; padding: 1.35rem; margin-bottom: 1.25rem; }
.pro-content .panel h2, .pro-card h2 { font-family: var(--font-display); font-size: 1.2rem; }
.pro-head-row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 0.75rem 1rem; margin-bottom: 1.25rem; }
.pro-head-row h1 { margin-bottom: 0.2rem; }
.pro-head-row p { margin: 0; color: var(--muted); }
.pro-pill { display: inline-flex; align-items: center; gap: 0.45rem; padding: 0.45rem 0.85rem; border-radius: 999px; font-weight: 600; font-size: 0.9rem; background: var(--sauge); color: var(--bistrot); }
.pro-pill i { width: 0.6rem; height: 0.6rem; border-radius: 50%; background: var(--pro-ok); }
.pro-pill.is-off { background: var(--laiton-soft); color: var(--laiton-ink); }
.pro-pill.is-off i { background: var(--laiton); }
.pro-backdrop { display: none; }
.pro-bottom { display: none; }

@media (max-width: 55.99rem) {
  .pro-shell { display: block; padding: 1rem 1rem 6rem; }
  .pro-side { position: fixed; inset: auto 0 0 0; top: auto; width: auto; max-height: 85vh; border-radius: 20px 20px 0 0; z-index: 40; padding-bottom: calc(1rem + env(safe-area-inset-bottom, 0px));
    transform: translateY(105%); transition: transform 0.2s ease; box-shadow: 0 -10px 40px rgba(16,38,29,0.2); }
  .pro-menu-open .pro-side { transform: none; }
  .pro-side-close { display: grid; place-items: center; }
  .pro-backdrop { display: block; position: fixed; inset: 0; background: rgba(16,38,29,0.35); z-index: 39; }
  .pro-backdrop[hidden] { display: none; }
  .pro-bottom { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); position: fixed; left: 0; right: 0; bottom: 0; z-index: 30;
    background: var(--paper); border-top: 1px solid var(--pro-line); padding: 0.3rem 0.25rem calc(0.4rem + env(safe-area-inset-bottom, 0px)); }
  .pro-bottom a, .pro-bottom button { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.1rem; min-height: 3rem;
    font: inherit; font-size: 0.7rem; font-weight: 600; color: var(--muted); text-decoration: none; background: none; border: 0; cursor: pointer; }
  .pro-bottom [aria-current] { color: var(--bistrot); font-weight: 700; }
  .is-pro .to-top { bottom: 5rem; }
  .pro-page h1 { font-size: 1.5rem; }
}

/* Onglets dans une page (fiche de l'établissement) */
.pro-tabs-card { background: var(--paper); border: 1px solid var(--pro-line); border-radius: 16px; margin-bottom: 1.25rem; overflow: hidden; }
.pro-tablist { display: flex; gap: 0.25rem; overflow-x: auto; scrollbar-width: none; padding: 0 1rem; border-bottom: 1px solid #EFE8DA; }
.pro-tablist::-webkit-scrollbar { display: none; }
.pro-tablist button { flex: none; font: inherit; font-weight: 600; font-size: 0.93rem; padding: 0.95rem 0.75rem 0.8rem; background: none; border: 0; border-bottom: 3px solid transparent; color: var(--muted); cursor: pointer; }
.pro-tablist button[aria-selected="true"] { color: var(--ink); border-bottom-color: var(--laiton); }
.pro-tablist button.has-error::after { content: ""; display: inline-block; width: 0.45rem; height: 0.45rem; margin-left: 0.35rem; border-radius: 50%; background: var(--danger); vertical-align: middle; }
.no-js .pro-tablist, .pro-tablist:not(.is-ready) { display: none; }
.pro-tabpanel { padding: 1.4rem; display: grid; gap: 1.1rem; }
.pro-tabs-card > .form { gap: 0; margin: 0; }
.pro-tabpanel + .pro-tabpanel { border-top: 1px solid #EFE8DA; }
.js .pro-tabpanel + .pro-tabpanel { border-top: 0; }
.pro-tabpanel > h2.pro-tabtitle { font-size: 1.1rem; }
.js .pro-tabtitle { display: none; }
.pro-savebar-inner { margin: 1rem -1.4rem -1.4rem; }
.pro-tabpanel .form, .pro-tabpanel form { margin-bottom: 0; }
.pro-savebar { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 0.75rem; padding: 0.9rem 1.4rem; background: var(--pro-soft); border-top: 1px solid #EFE8DA; }
.pro-savebar p { margin: 0 auto 0 0; color: var(--muted); font-size: 0.9rem; }
.pro-note { display: flex; gap: 0.6rem; align-items: baseline; background: var(--laiton-soft); color: #5E4615; border-radius: 12px; padding: 0.75rem 0.9rem; font-size: 0.92rem; margin: 0.5rem 0 1rem; }
.pro-note strong { color: var(--ink); }
.pro-kind { border: 0; padding: 0; margin: 0 0 1rem; display: grid; gap: 0.6rem; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
.pro-kind legend { font-weight: 700; margin-bottom: 0.4rem; }

/* Planning et emplacements */
.day-strip-card { background: var(--paper); border: 1px solid var(--pro-line); border-radius: 16px; padding: 0.9rem; margin-bottom: 1.25rem; }
.day-strip { display: flex; gap: 0.5rem; overflow-x: auto; padding-bottom: 0.25rem; scrollbar-width: thin; }
.day-tab { flex: 1 0 3.4rem; max-width: 5rem; min-height: 4.6rem; display: flex; flex-direction: column; align-items: center; gap: 0.1rem; padding: 0.5rem 0.2rem 0.6rem; border-radius: 12px;
  border: 1px solid var(--pro-line); background: var(--pro-soft); color: var(--ink); text-decoration: none; text-align: center; }
.day-tab:hover { border-color: var(--bistrot); color: var(--ink); }
.day-tab small { font-size: 0.75rem; font-weight: 600; }
.day-tab b { font-family: var(--font-display); font-size: 1.3rem; line-height: 1.1; }
.day-tab i { width: 0.55rem; height: 0.55rem; border-radius: 50%; margin-top: 0.2rem; box-sizing: border-box; }
.day-tab.is-ok i { background: var(--pro-ok); }
.day-tab.is-todo i { background: var(--laiton); }
.day-tab.is-off i { border: 2px solid #9AA39E; }
.day-tab.is-changed b::after { content: "*"; color: var(--laiton); margin-left: 1px; }
.day-tab[aria-current] { background: var(--bistrot); border-color: var(--bistrot); color: #fff; }
.day-tab[aria-current].is-ok i { background: #8FE0B0; }
.day-tab[aria-current].is-todo i { background: #F0C46A; }
.day-tab[aria-current].is-off i { border-color: #fff; }
.day-legend { display: flex; flex-wrap: wrap; gap: 0.4rem 1.1rem; margin: 0.6rem 0 0; font-size: 0.82rem; color: var(--muted); }
.day-legend span { display: inline-flex; align-items: center; gap: 0.35rem; }
.day-legend i { width: 0.55rem; height: 0.55rem; border-radius: 50%; box-sizing: border-box; }
.day-legend .lg-ok { background: var(--pro-ok); } .day-legend .lg-todo { background: var(--laiton); } .day-legend .lg-off { border: 2px solid #9AA39E; }
.day-legend i { display: inline-block; flex: none; }
.day-grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fit, minmax(19rem, 1fr)); align-items: start; margin-bottom: 1.25rem; }
.day-grid .pro-card { margin: 0; display: grid; gap: 0.8rem; }
.card-head { display: flex; justify-content: space-between; align-items: baseline; gap: 0.6rem; flex-wrap: wrap; }
.card-head h2 { margin: 0; }
.card-head span { font-size: 0.85rem; color: var(--muted); }
.stop-now { display: flex; gap: 0.9rem; align-items: flex-start; }
.stop-now .mini-map { flex: none; width: 10rem; height: 7.5rem; border-radius: 12px; margin: 0; }
.stop-now .leaflet-control-zoom { display: none; }
.stop-now .leaflet-control-attribution { font-size: 0.6rem; }
@media (max-width: 30rem) { .stop-now { flex-direction: column; } .stop-now .mini-map { width: 100%; height: 9rem; } }
.stop-now div { display: grid; gap: 0.1rem; min-width: 0; }
.stop-now strong { font-size: 1.05rem; }
.stop-now span { color: var(--muted); }
.stop-now .hours-chip { justify-self: start; margin-top: 0.35rem; color: var(--ink); font-weight: 600; font-size: 0.88rem; background: var(--sauge); padding: 0.2rem 0.6rem; border-radius: 999px; }
.card-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; padding-top: 0.8rem; border-top: 1px solid #EFE8DA; }
.card-actions form { margin: 0; }
.card-empty { background: #F7F5F0; border-radius: 12px; padding: 1rem; color: var(--muted); }
.card-empty strong { display: block; color: var(--ink); }
.card-empty.is-todo { background: var(--laiton-soft); color: #5E4615; }
.changed-note { margin: 0; font-size: 0.85rem; font-weight: 600; color: var(--laiton-ink); background: var(--laiton-soft); padding: 0.45rem 0.75rem; border-radius: 10px; }
.offer-lines { list-style: none; margin: 0; padding: 0; }
.offer-lines li { display: flex; justify-content: space-between; gap: 0.75rem; padding: 0.6rem 0; border-bottom: 1px dashed var(--pro-line); }
.offer-lines li span:first-child { font-weight: 600; }
.offer-lines .price { font-weight: 700; color: var(--bistrot); white-space: nowrap; }
.auto-badge { display: inline-block; margin-left: 0.4rem; padding: 0.05rem 0.45rem; border-radius: 999px; background: var(--sauge); color: var(--bistrot); font-size: 0.72rem; font-weight: 700; vertical-align: middle; }
.inline-edit { border-top: 1px solid #EFE8DA; padding-top: 0.8rem; }
.inline-edit > summary { list-style: none; cursor: pointer; display: inline-flex; }
.inline-edit > summary::-webkit-details-marker { display: none; }
.inline-edit[open] > summary { margin-bottom: 0.8rem; }
.stop-form { display: grid; gap: 0.75rem; }
.stop-form .field { margin: 0; }
.stop-form .slot { display: inline-flex; align-items: center; gap: 0.4rem; }
.week-rows { display: grid; }
.week-row { border-top: 1px solid #EFE8DA; }
.week-row > summary { list-style: none; cursor: pointer; display: grid; grid-template-columns: 7rem minmax(0, 1fr) auto; gap: 0.75rem; align-items: center; padding: 0.75rem 0.2rem; }
.week-row > summary::-webkit-details-marker { display: none; }
.week-row > summary .muted { overflow-wrap: anywhere; }
.week-row > summary em { font-style: normal; font-weight: 600; color: var(--bistrot); border: 1px solid var(--pro-line); border-radius: 10px; padding: 0.4rem 0.75rem; font-size: 0.9rem; }
.week-row[open] > summary em { background: var(--sauge); }
.week-row .stop-form { padding: 0 0.2rem 1rem; }
@media (max-width: 40rem) { .week-row > summary { grid-template-columns: 1fr auto; } .week-row > summary .muted { grid-column: 1 / -1; grid-row: 2; } }
.auto-list { list-style: none; margin: 0 0 1rem; padding: 0; display: grid; gap: 0.6rem; }
.auto-list li { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.6rem; padding: 0.8rem 0.9rem; border: 1px solid var(--pro-line); border-radius: 12px; background: var(--pro-soft); }
.auto-list li.is-paused { opacity: 0.65; }
.auto-list strong { display: block; }
.auto-list .muted { font-size: 0.88rem; }
.auto-list .auto-actions { display: flex; gap: 0.4rem; flex-wrap: wrap; }
.auto-list form { margin: 0; }
.pick-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.4rem; }
.pick-list label { display: flex; align-items: center; gap: 0.6rem; padding: 0.6rem 0.75rem; border: 1px solid var(--pro-line); border-radius: 10px; background: var(--paper); cursor: pointer; }
.pick-list label:has(input:checked) { border-color: var(--bistrot); background: #F4F8F5; }
.pick-list small { color: var(--muted); margin-left: auto; white-space: nowrap; }
.wd-picks { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.wd-picks label { display: inline-flex; align-items: center; gap: 0.35rem; padding: 0.45rem 0.7rem; border: 1px solid var(--pro-line); border-radius: 999px; cursor: pointer; font-weight: 600; font-size: 0.9rem; }
.wd-picks label:has(input:checked) { border-color: var(--bistrot); background: #F4F8F5; }
.pro-savebar[hidden], .pro-tabpanel[hidden] { display: none; }
.btn-ghost { background: var(--paper); border: 1px solid #E4DCCB; color: var(--muted); }
.btn-ghost:hover { color: var(--ink); border-color: var(--muted); }
.card-actions > details { display: contents; }
.card-actions > details[open] { display: block; flex-basis: 100%; }
.card-actions > details[open] > summary { margin-bottom: 0.8rem; }
.legend-star { color: var(--laiton); font-size: 1rem; line-height: 1; }
.inline-edit { border-top: 0; padding-top: 0; }
.rule-when { display: grid; gap: 0.75rem; }
.rule-when .choice { align-items: flex-start; }
.rule-month { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }
.rule-month select { width: auto; }
@media (max-width: 55.99rem) { .is-pro .sticky-action { bottom: calc(3.9rem + env(safe-area-inset-bottom, 0px)); } }

/* 1.21.1 : image d'illustration annoncée par le restaurateur (image IA, photo d'archive…) */
.offer, .resto-photo, .result-photo-box { position: relative; }
.result-photo-box { display: block; flex: none; }
.illus-badge { position: absolute; top: 0.5rem; left: 0.5rem; z-index: 1; padding: 0.15rem 0.5rem; border-radius: 999px; background: rgba(16, 38, 29, 0.78); color: #fff; font-size: 0.72rem; font-weight: 700; line-height: 1.4; pointer-events: none; }
.illus-badge-mini { top: 0.25rem; left: 0.25rem; font-size: 0.6rem; padding: 0.05rem 0.35rem; }
.offers.compact .illus-badge { top: 0.35rem; left: 0.35rem; font-size: 0.62rem; padding: 0.1rem 0.4rem; }

/* ===== 1.22 : espace Gastronaute ===== */
.space-nav { background: var(--paper); border-bottom: 1px solid #E4DCCB; }
.space-nav-inner { display: flex; gap: 0.25rem; overflow-x: auto; scrollbar-width: none; }
.space-nav-inner::-webkit-scrollbar { display: none; }
.space-nav a { flex: none; padding: 0.85rem 0.75rem 0.7rem; font-weight: 600; color: var(--muted); text-decoration: none; border-bottom: 3px solid transparent; }
.space-nav a:hover { color: var(--ink); }
.space-nav a[aria-current] { color: var(--ink); font-weight: 700; border-bottom-color: var(--laiton); }
.space-count { display: inline-block; min-width: 1.4rem; padding: 0 0.4rem; border-radius: 999px; background: var(--sauge); font-size: 0.75rem; text-align: center; }
.space-page { padding-top: 1.6rem; padding-bottom: 3rem; }
.space-narrow { max-width: 48rem; }
.space-page h1 { font-family: var(--font-display); font-size: 1.9rem; line-height: 1.15; margin-bottom: 0.3rem; }
.space-page .panel { border-color: #E4DCCB; border-radius: 16px; }
.space-page .panel h2 { font-family: var(--font-display); font-size: 1.15rem; }
.space-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 0.9rem; margin-bottom: 1.3rem; }
.space-head p { margin: 0; }
.space-hero { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 1rem; background: var(--bistrot); color: #fff; border-radius: 20px; padding: 1.6rem 1.8rem; margin-bottom: 1.5rem; }
.space-hero h1 { color: #fff; margin: 0; }
.space-hero p { margin: 0.4rem 0 0; color: #DCE7E1; font-size: 1.05rem; }
.btn-light { background: #fff; color: var(--bistrot); border-color: #fff; }
.btn-light:hover { background: var(--sauge); color: var(--ink); }
.space-block { margin-bottom: 1.5rem; }
.space-block-head { display: flex; justify-content: space-between; align-items: baseline; gap: 0.75rem; margin-bottom: 0.75rem; }
.space-block-head h2 { margin: 0; font-family: var(--font-display); font-size: 1.3rem; }
.space-block-head a { font-weight: 600; font-size: 0.92rem; }
.space-today { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); }
.today-tile { display: flex; flex-direction: column; background: var(--paper); border: 1px solid #E4DCCB; border-radius: 16px; overflow: hidden; color: var(--ink); text-decoration: none; transition: transform 0.15s, box-shadow 0.15s; }
.today-tile:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(16,38,29,0.12); color: var(--ink); }
.today-tile-photo { position: relative; display: block; height: 9.5rem; background: #E8DDCA; }
.today-tile-photo img, .today-tile-photo .ph { width: 100%; height: 100%; object-fit: cover; display: block; }
.today-tile-body { display: grid; gap: 0.1rem; padding: 0.75rem 0.9rem 0.9rem; font-size: 0.92rem; }
.today-tile-line { display: flex; justify-content: space-between; gap: 0.5rem; }
.today-tile-line b { color: var(--bistrot); white-space: nowrap; }
.space-others { margin: 0.75rem 0 0; font-size: 0.9rem; }
.space-cards { display: grid; gap: 1.1rem; grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr)); align-items: start; }
.space-cards .panel { margin: 0; }
.space-cards .panel p { margin: 0.35rem 0; }
.pref-chips { display: flex; flex-wrap: wrap; gap: 0.35rem; }
.tag-avoid { background: var(--danger-soft); color: #8A2A17; }
.price-strong { font-weight: 800; color: var(--bistrot); }
.price-strong small { font-weight: 600; color: var(--muted); }
.space-sugg { list-style: none; margin: 0; padding: 0; }
.space-sugg li { display: flex; justify-content: space-between; gap: 0.75rem; flex-wrap: wrap; padding: 0.6rem 0; border-top: 1px solid #EFE8DA; }
.sugg-state { font-size: 0.8rem; font-weight: 700; padding: 0.1rem 0.6rem; border-radius: 999px; background: var(--laiton-soft); color: var(--laiton-ink); }
.sugg-state.is-joined { background: var(--ok-soft); color: var(--bistrot); }
.segmented { display: inline-flex; flex-wrap: wrap; gap: 0.25rem; padding: 0.25rem; border-radius: 999px; background: #E6E0D2; }
.segmented a { padding: 0.45rem 0.9rem; border-radius: 999px; text-decoration: none; color: var(--muted); font-weight: 600; font-size: 0.92rem; }
.segmented a[aria-current] { background: var(--paper); color: var(--ink); box-shadow: 0 1px 2px rgba(16,38,29,0.15); }

/* Cartes des favoris */
.fav-grid { display: grid; gap: 1.2rem; grid-template-columns: repeat(auto-fill, minmax(19rem, 1fr)); align-items: start; }
.fav-card { background: var(--paper); border: 1px solid #E4DCCB; border-radius: 18px; overflow: hidden; display: flex; flex-direction: column; }
.fav-photo { position: relative; height: 11rem; background: #E8DDCA; }
.fav-photo img, .fav-photo .ph { width: 100%; height: 100%; object-fit: cover; display: block; }
.fav-card.is-closed .fav-photo img { filter: grayscale(0.7); opacity: 0.8; }
.fav-chip { position: absolute; left: 0.75rem; bottom: 0.75rem; padding: 0.2rem 0.65rem; border-radius: 999px; background: rgba(85, 96, 90, 0.92); color: #fff; font-size: 0.78rem; font-weight: 700; }
.fav-chip.is-open { background: rgba(31, 77, 59, 0.94); }
.fav-heart { position: absolute; top: 0.6rem; right: 0.6rem; margin: 0; }
.fav-heart button { width: 2.75rem; height: 2.75rem; border-radius: 50%; border: 0; background: #fff; display: grid; place-items: center; cursor: pointer; color: #C0392B; box-shadow: 0 2px 8px rgba(16,38,29,0.22); }
.fav-heart button svg { width: 1.3rem; height: 1.3rem; fill: currentColor; }
.fav-heart button:hover { transform: scale(1.06); }
.fav-body { padding: 1rem 1.1rem 1.1rem; display: grid; gap: 0.75rem; }
.fav-body h2 { margin: 0; font-family: var(--font-display); font-size: 1.2rem; }
.fav-body h2 a { color: var(--ink); text-decoration: none; }
.fav-body h2 + .muted { margin: 0.1rem 0 0; font-size: 0.9rem; }
.fav-dishes { list-style: none; margin: 0; padding: 0; }
.fav-dishes li { display: flex; justify-content: space-between; gap: 0.6rem; padding: 0.4rem 0; border-bottom: 1px dashed #E4DCCB; font-weight: 600; }
.fav-dishes li b { color: var(--bistrot); white-space: nowrap; }
.fav-empty { margin: 0; padding: 0.65rem 0.8rem; background: #F7F5F0; border-radius: 10px; color: var(--muted); font-size: 0.92rem; }
.fav-memo > summary { list-style: none; cursor: pointer; }
.fav-memo > summary::-webkit-details-marker { display: none; }
.fav-memo > summary:not(.fav-memo-add) { display: grid; gap: 0.15rem; background: #FFF8E6; border: 1px solid #EED9A4; border-radius: 12px; padding: 0.6rem 0.75rem; font-size: 0.92rem; }
.fav-memo-head { display: flex; justify-content: space-between; gap: 0.5rem; font-size: 0.8rem; color: var(--laiton-ink); }
.fav-memo-edit { text-decoration: underline; color: var(--bistrot); font-weight: 600; }
.fav-memo-text { color: #4A3A16; }
.fav-memo-add { display: inline-block; padding: 0.45rem 0.75rem; border: 1px dashed #D9CFBC; border-radius: 10px; color: var(--muted); font-weight: 600; font-size: 0.9rem; }
.fav-memo[open] > summary .fav-memo-text { display: none; }
.fav-memo-form { display: grid; gap: 0.45rem; margin-top: 0.6rem; }
.fav-memo-form textarea { width: 100%; }
.fav-memo-form .field-help { margin: 0; }
.fav-memo-actions { display: flex; align-items: center; gap: 0.9rem; }
.fav-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; padding-top: 0.75rem; border-top: 1px solid #EFE8DA; }
.fav-actions form { margin: 0 auto 0 0; }
.fav-bell { display: inline-flex; align-items: center; gap: 0.4rem; font: inherit; font-weight: 600; font-size: 0.88rem; min-height: 2.5rem; padding: 0.4rem 0.75rem; border-radius: 10px; cursor: pointer; background: var(--paper); border: 1px solid #E4DCCB; color: var(--muted); }
.fav-bell.is-on { background: var(--laiton-soft); border-color: #E6D3A8; color: #5E4615; }
.btn-small-solid { min-height: 2.5rem; padding: 0.4rem 0.9rem; font-size: 0.9rem; }
.fav-removed { padding: 1.6rem 1.3rem; display: grid; gap: 0.6rem; justify-items: start; background: #F7F5F0; }
.fav-removed p { margin: 0; }
.fav-note { margin-top: 1.2rem; }
.resto-memo { margin-bottom: 1.2rem; }

/* Préférences, notifications */
.pill-row { display: flex; flex-wrap: wrap; gap: 0.4rem; margin: 0; }
.notif-list { list-style: none; margin: 0.5rem 0 0; padding: 0; }
.notif-list label { display: flex; align-items: center; gap: 0.75rem; padding: 0.6rem 0; border-top: 1px solid #EFE8DA; cursor: pointer; }
.notif-list img, .notif-ph { width: 2.75rem; height: 2.75rem; border-radius: 10px; object-fit: cover; background: #E8DDCA; flex: none; }
.notif-name { flex: 1; display: grid; }
.notif-name .muted { font-size: 0.85rem; }
.notif-list input { width: 1.35rem; height: 1.35rem; accent-color: var(--bistrot); }
.check-block { display: flex; gap: 0.6rem; align-items: flex-start; margin: 0.4rem 0 0.8rem; }
.check-block .choice-help { display: block; }
.space-page fieldset.panel legend h2 { margin: 0 0 0.6rem; }
.account-tabs { margin-bottom: 1.25rem; }
.account-tabs .pro-tablist { padding: 0; margin-bottom: 1rem; }

/* Bandeau des préférences dans la recherche */
.prefs-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.75rem; margin: 0 0 0.9rem; padding: 0.55rem 0.8rem; border-radius: 12px; background: var(--sauge); }
.prefs-bar .active-filters { margin: 0; }
.prefs-bar-label { font-weight: 700; font-size: 0.9rem; }
.active-filters a.is-pref { background: var(--paper); }
.prefs-warn { flex-basis: 100%; margin: 0; color: #8A2A17; font-weight: 600; font-size: 0.9rem; }
.prefs-bar-off { font-size: 0.9rem; }
.space-cards { margin-bottom: 1.25rem; }
.segmented a .muted { display: inline; font-weight: 500; margin-left: 0.2rem; }
.fav-actions form { flex-basis: 100%; margin: 0; }
.fav-actions > a { flex: 1 1 0; text-align: center; justify-content: center; }

/* 1.22.1 : encadrés de même hauteur dans Mon espace */
.space-cards { align-items: stretch; }
.space-cards .panel { display: flex; flex-direction: column; }
.space-cards .panel > :last-child { margin-top: auto; }
.space-cards .panel > .space-block-head + * { margin-top: 0; }
.space-today { align-items: stretch; }

/* 1.22.1 : pourquoi créer un compte */
.join-gate { position: relative; }
.join-gate > summary { list-style: none; cursor: pointer; }
.join-gate > summary::-webkit-details-marker { display: none; }
.join-gate-panel { position: absolute; z-index: 20; top: calc(100% + 0.5rem); left: 50%; transform: translateX(-50%); width: min(20rem, 86vw);
  background: var(--paper); color: var(--ink); border: 1px solid #E4DCCB; border-radius: 16px; padding: 1rem 1.1rem; box-shadow: 0 14px 34px rgba(16,38,29,0.22); text-align: left; display: grid; gap: 0.5rem; }
.join-gate-panel strong { font-size: 1.05rem; line-height: 1.3; }
.join-gate-panel p { margin: 0; color: #3F4A44; font-size: 0.92rem; }
.join-gate-actions { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.join-gate-actions .btn { flex: 1 1 auto; }
.join-memo { background: #FFF8E6; border: 1px solid #EED9A4; border-radius: 12px; padding: 0.7rem 0.9rem; margin: 0 0 1.2rem; font-size: 0.93rem; }
.join-memo a { font-weight: 700; }
.join-nudge { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 1rem; margin: 0 0 0.9rem; padding: 0.7rem 0.9rem; border-radius: 12px; background: var(--sauge); }
.join-nudge p { flex: 1 1 16rem; margin: 0; font-size: 0.93rem; }
.join-nudge .btn { min-height: 2.5rem; }
.join-nudge-close { font-size: 1.4rem; line-height: 1; text-decoration: none; color: var(--muted); padding: 0.2rem 0.4rem; }
.perks { display: grid; gap: 0.9rem; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); margin: 1.2rem 0; }
.perk { display: grid; gap: 0.45rem; align-content: start; padding: 1.1rem; border-radius: 16px; background: var(--sauge); }
.perk:nth-child(6n+2), .perk:nth-child(6n+5) { background: var(--laiton-soft); }
.perk:nth-child(6n+3) { background: #FBEDEA; }
.perk-ico { width: 2.5rem; height: 2.5rem; border-radius: 12px; background: #fff; display: grid; place-items: center; color: var(--bistrot); }
.perk-ico svg { width: 1.35rem; height: 1.35rem; }
.perk h3 { margin: 0; font-size: 1.02rem; }
.perk p { margin: 0; font-size: 0.93rem; color: #3F4A44; }
.join-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 1rem; }
.join-reassure { color: var(--muted); font-size: 0.92rem; margin: 0; }
.register-perks { background: var(--bistrot); color: #fff; border-radius: 16px; padding: 1rem 1.1rem; margin: 0 0 1.1rem; }
.register-perks strong { display: block; margin-bottom: 0.4rem; }
.register-perks ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.3rem; font-size: 0.92rem; }
.register-perks li { display: flex; gap: 0.5rem; }
.register-perks li::before { content: "✓"; flex: none; width: 1.25rem; height: 1.25rem; border-radius: 50%; background: var(--laiton); color: var(--ink); font-size: 0.75rem; font-weight: 800; display: grid; place-items: center; margin-top: 0.1rem; }
.register-perks p { margin: 0.6rem 0 0; color: #DCE7E1; font-size: 0.85rem; }
.perks { grid-template-columns: 1fr; }
@media (min-width: 40rem) { .perks { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 62rem) { .perks { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* 1.22.2 : aide à l'ajout à l'écran d'accueil */
.install-intro { margin: 0 0 0.6rem; font-weight: 600; }
.install-copy { display: flex; align-items: center; gap: 0.6rem; margin: 0 0 0.9rem; }
.install-copy code { font-size: 1rem; padding: 0.35rem 0.6rem; }
.install-more { margin: 0 0 1rem; font-size: 0.92rem; }
.install-more summary { cursor: pointer; font-weight: 600; color: var(--bistrot); }
.install-more p { margin: 0.4rem 0 0; color: var(--muted); }
.install-copy code { word-break: normal; white-space: nowrap; }

/* ===== 1.22.4 : connexion, inscription, code et mot de passe ===== */
.auth-page { padding: 2.5rem 1.1rem 3.5rem; display: flex; flex-direction: column; align-items: center; }
body:not(.admin) .auth-card, .auth-card { width: 100%; max-width: 28rem; background: var(--paper); border: 1px solid #E4DCCB; border-radius: 24px; padding: 2rem 1.75rem; box-shadow: 0 18px 40px rgba(16, 38, 29, 0.08); }
.auth-card-wide { max-width: 66rem; padding: 0; overflow: hidden; }
.auth-logo { display: block; width: 13rem; max-width: 70%; margin: 0 auto 1.1rem; }
.auth-logo img { width: 100%; height: auto; display: block; }
.auth-card h1 { font-family: var(--font-display); font-size: 1.9rem; line-height: 1.15; margin: 0 0 0.25rem; }
.auth-sub { margin: 0 0 1.2rem; color: var(--muted); }
.auth-center { text-align: center; }
.auth-card .form { margin-bottom: 0; }
.auth-card .form > .btn, .btn-block { width: 100%; justify-content: center; text-align: center; }
.label-row { display: flex; justify-content: space-between; align-items: baseline; gap: 0.5rem; }
.label-row label { font-weight: 600; }
.label-row a { font-size: 0.88rem; font-weight: 600; }
.auth-divider { display: flex; align-items: center; gap: 0.75rem; margin: 1.3rem 0 0.9rem; color: #7C857F; font-size: 0.88rem; }
.auth-divider::before, .auth-divider::after { content: ""; flex: 1; height: 1px; background: #EFE8DA; }
.auth-card .aside { margin: 1.1rem 0 0; }
.auth-strip { display: flex; justify-content: center; gap: 0.5rem; margin-top: 1.4rem; }
.auth-strip img { width: 4rem; height: 4rem; object-fit: cover; border-radius: 14px; }
.auth-tagline { margin: 0.6rem 0 0; color: var(--muted); font-size: 0.92rem; text-align: center; }

/* Inscription : avantages à gauche, formulaire à droite (empilés sur téléphone, formulaire d'abord) */
.auth-split { display: flex; flex-direction: column-reverse; }
.auth-side { background: var(--sauge); padding: 1.8rem 1.6rem; display: flex; flex-direction: column; gap: 1rem; }
.auth-side[hidden] { display: none; }
.auth-side-photos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.5rem; }
.auth-side-photos img { width: 100%; aspect-ratio: 1; object-fit: cover; border-radius: 14px; }
.auth-side h2 { font-family: var(--font-display); font-size: 1.45rem; margin: 0.2rem 0 0; }
.auth-side-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.8rem; }
.auth-side-list li { display: flex; gap: 0.75rem; align-items: flex-start; }
.auth-side-list li > span:last-child { display: grid; font-size: 0.92rem; color: #4A5650; }
.auth-side-list strong { color: var(--ink); font-size: 0.97rem; }
.auth-side-ico { flex: none; width: 2.15rem; height: 2.15rem; border-radius: 10px; background: #fff; display: grid; place-items: center; color: var(--bistrot); }
.auth-side-ico svg { width: 1.15rem; height: 1.15rem; }
.auth-side-note { margin: auto 0 0; color: var(--muted); font-size: 0.85rem; }
.auth-main { padding: 2rem 1.75rem; }
.kind-cards { border: 0; padding: 0; margin: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.6rem; }
.kind-card { position: relative; cursor: pointer; }
.kind-card input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.kind-card > span { display: grid; gap: 0.1rem; height: 100%; box-sizing: border-box; padding: 0.75rem 0.9rem; border: 1px solid #E4DCCB; border-radius: 14px; background: var(--paper); }
.kind-card strong { font-size: 1rem; }
.kind-card small { color: var(--muted); font-size: 0.82rem; }
.kind-card input:checked + span { border: 2px solid var(--bistrot); background: #F4F8F5; padding: calc(0.75rem - 1px) calc(0.9rem - 1px); }
.kind-card input:focus-visible + span { outline: 3px solid var(--laiton); outline-offset: 2px; }
@media (min-width: 52rem) {
  .auth-page { padding-top: 3rem; }
  .auth-split { flex-direction: row; }
  .auth-side { flex: 1 1 22rem; padding: 2.2rem 2rem; }
  .auth-main { flex: 1.25 1 26rem; padding: 2.2rem 2.4rem; }
}
body:not(.admin) .auth-card.auth-card-wide, .auth-card.auth-card-wide { max-width: 66rem; padding: 0; overflow: hidden; }

/* ===== 1.22.5 : publicité en vignette, comme un restaurant ===== */
.ad-card { position: relative; display: flex; gap: 0.75rem; align-items: flex-start; padding: 0.75rem; border: 1px dashed #D9CFBC; border-radius: 16px; background: #FFFDF8; color: var(--ink); text-decoration: none; min-width: 0; }
a.ad-card:hover { border-color: #C9BC9F; color: var(--ink); }
.ad-card-img { flex: none; width: 5.5rem; height: 5.5rem; border-radius: 12px; object-fit: cover; background: #fff; border: 1px solid #EFE8DA; }
.ad-card-body { display: flex; flex-direction: column; gap: 0.25rem; min-width: 0; flex: 1; }
.ad-card-head { display: flex; justify-content: space-between; align-items: baseline; gap: 0.5rem; }
.ad-card-head strong { font-size: 1rem; overflow-wrap: anywhere; }
.ad-pill { flex: none; font-size: 0.7rem; font-weight: 700; color: #6A736E; background: #EFEAE0; padding: 0.1rem 0.5rem; border-radius: 999px; }
.ad-card-text { color: #4A5650; font-size: 0.9rem; }
.ad-card-cta { margin-top: 0.2rem; font-weight: 700; font-size: 0.9rem; color: var(--bistrot); }
.ad-card-google { display: block; padding: 0.5rem 0.6rem 0.6rem; }
.ad-card-google .ad-pill { position: absolute; top: 0.45rem; right: 0.6rem; z-index: 1; }
.ad-card-google ins.adsbygoogle { display: block; margin-top: 1.4rem; min-height: 6rem; }
.ad-card-fixed { display: block; width: 100%; height: 6.5rem; }
.resto-side .ad-card { margin-bottom: 1rem; }
.ad-card-google:has(ins[data-ad-status="unfilled"]) { display: none; } /* Google sans annonce : rien de vide */

/* ===== 1.23 : fermetures exceptionnelles ===== */
.day-tab.is-closed { background: repeating-linear-gradient(135deg, var(--danger-soft) 0 6px, var(--paper) 6px 12px); border-bottom: 3px solid var(--danger); }
.day-tab.is-closed i { display: none; }
.day-tab-closed { font-style: normal; font-size: 0.68rem; font-weight: 700; color: var(--danger); line-height: 1.2; }
.day-tab[aria-current].is-closed { background: var(--danger); border-color: var(--danger); }
.day-tab[aria-current] .day-tab-closed { color: #fff; }
.day-legend .lg-closed { background: var(--danger); }
.closure-now { display: grid; gap: 0.15rem; padding: 0.9rem 1rem; margin-bottom: 1.25rem; border-radius: 12px; background: var(--danger-soft); }
.closure-now strong { color: var(--danger); }
.closure-form { display: grid; gap: 0.9rem; }
.closure-dates { display: grid; gap: 0.8rem; grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); }
.closure-dates .field, .closure-form > .field { margin: 0; }
.closure-reasons { border: 0; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.closure-reasons legend { font-weight: 600; margin-bottom: 0.45rem; padding: 0; }
.chip-choice { position: relative; }
.chip-choice input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.chip-choice span { display: inline-flex; align-items: center; min-height: 2.6rem; padding: 0 0.95rem; border-radius: 999px; border: 1.5px solid #C9CFCB; background: var(--paper); font-weight: 600; font-size: 0.92rem; }
.chip-choice input:checked + span { background: var(--bistrot); border-color: var(--bistrot); color: #fff; }
.chip-choice input:focus-visible + span { outline: 3px solid var(--laiton); outline-offset: 2px; }
.closure-list-title { margin: 1.4rem 0 0.4rem; font-size: 1.02rem; }
.closure-list { list-style: none; margin: 0; padding: 0; display: grid; }
.closure-list li { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 0.6rem; padding: 0.8rem 0; border-top: 1px solid var(--line); }
.closure-list li > div:first-child { display: grid; gap: 0.1rem; }
.closure-actions { display: flex; gap: 0.4rem; flex-wrap: wrap; }
.closure-actions form { margin: 0; }
.day-banner-closed_exc { background: var(--danger-soft); border-left-color: var(--danger); }
.day-banner-closed_exc strong { color: var(--danger); }
.day-banner .closure-msg { flex-basis: 100%; font-style: italic; }
.closure-soon { margin: 0 0 0.9rem; font-size: 0.92rem; }

/* ===== 1.23 : cookies (barre de première visite et panneau « Vos cookies ») ===== */
.consent-bar { position: fixed; z-index: 60; left: 0.75rem; right: 0.75rem; bottom: calc(0.75rem + env(safe-area-inset-bottom, 0px)); max-width: 40rem; margin: 0 auto;
  background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 10px 30px rgba(16, 38, 29, 0.18); padding: 0.9rem 1rem; display: grid; gap: 0.7rem; }
.consent-bar p { margin: 0; font-size: 0.93rem; line-height: 1.45; }
.is-pro .consent-bar { bottom: calc(4.6rem + env(safe-area-inset-bottom, 0px)); }
@media (min-width: 60rem) { .is-pro .consent-bar { bottom: 0.75rem; } }
.consent-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.5rem; }
.consent-actions .btn { width: 100%; justify-content: center; min-height: 2.9rem; padding-inline: 0.5rem; }
.consent-panel { border: 0; padding: 1.1rem 1.1rem 1.2rem; width: min(34rem, 100%); max-height: min(44rem, 92vh); overflow: auto; border-radius: 18px;
  background: #F7F5EF; color: var(--ink); box-shadow: 0 20px 50px rgba(16, 38, 29, 0.3); }
.consent-panel::backdrop { background: rgba(16, 38, 29, 0.45); }
@media (max-width: 40rem) { .consent-panel { margin: auto 0 0; width: 100%; max-width: 100%; border-radius: 18px 18px 0 0; padding-bottom: calc(1.2rem + env(safe-area-inset-bottom, 0px)); } }
.consent-head { display: flex; justify-content: space-between; align-items: center; gap: 0.6rem; }
.consent-head h2 { margin: 0; font-family: var(--font-display); font-size: 1.4rem; }
.consent-close { width: 2.75rem; height: 2.75rem; border: 0; background: none; font-size: 1.6rem; line-height: 1; cursor: pointer; color: var(--ink); border-radius: 50%; }
.consent-close:hover { background: var(--sauge); }
.consent-lead { color: var(--muted); font-size: 0.93rem; margin: 0.4rem 0 0.9rem; }
.consent-cat { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); padding: 0.85rem 0.95rem; margin-bottom: 0.65rem; }
.consent-cat-head { display: flex; justify-content: space-between; align-items: center; gap: 0.6rem; flex-wrap: wrap; }
.consent-cat h3 { margin: 0; font-size: 1rem; }
.consent-cat p { margin: 0.35rem 0 0; font-size: 0.88rem; color: var(--muted); line-height: 1.45; }
.consent-always { font-size: 0.75rem; font-weight: 700; color: var(--bistrot); background: var(--ok-soft); border-radius: 999px; padding: 0.2rem 0.65rem; }
.consent-ads-status { font-size: 0.75rem; font-weight: 700; color: var(--laiton-ink); background: var(--laiton-soft); border-radius: 999px; padding: 0.2rem 0.65rem; }
.consent-switch { position: relative; display: inline-flex; flex: none; }
.consent-switch input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; z-index: 1; }
.consent-switch span { width: 3.1rem; height: 1.85rem; border-radius: 999px; background: #8E9893; position: relative; transition: background 0.15s; }
.consent-switch span::after { content: ""; position: absolute; top: 0.2rem; left: 0.2rem; width: 1.45rem; height: 1.45rem; border-radius: 50%; background: #fff; transition: transform 0.15s; }
.consent-switch input:checked + span { background: var(--bistrot); }
.consent-switch input:checked + span::after { transform: translateX(1.25rem); }
.consent-switch input:focus-visible + span { outline: 3px solid var(--laiton); outline-offset: 2px; }
.consent-panel .consent-actions { margin-top: 0.9rem; }
.consent-detail { text-align: center; margin: 0.8rem 0 0; font-size: 0.92rem; }
.consent-toast { margin: 0.8rem 0 0; background: var(--ink); color: #fff; border-radius: 10px; padding: 0.7rem 0.9rem; font-size: 0.92rem; }
@media (prefers-reduced-motion: reduce) { .consent-switch span, .consent-switch span::after { transition: none; } }

/* Tableaux dans les pages légales (1.23) */
.prose-table { overflow-x: auto; margin: 0 0 1.2rem; border: 1px solid var(--line); border-radius: var(--radius-small); background: var(--paper); }
.prose-table table { width: 100%; border-collapse: collapse; font-size: 0.9rem; min-width: 34rem; }
.prose-table th { text-align: left; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.03em; color: var(--muted); padding: 0.55rem 0.7rem; border-bottom: 1px solid #D9DED9; background: var(--sauge); }
.prose-table td { padding: 0.6rem 0.7rem; border-bottom: 1px solid var(--line); vertical-align: top; line-height: 1.45; }
.prose-table tr:last-child td { border-bottom: 0; }
.prose-table td:first-child { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 0.84rem; white-space: nowrap; }

/* ===== 1.24 : suggestions pendant la saisie ===== */
.finder-where { position: relative; }
.suggest-box { position: absolute; z-index: 40; left: 0; right: 0; top: calc(100% + 0.4rem); max-height: min(70vh, 30rem); overflow-y: auto;
  background: var(--paper); color: var(--ink); border-radius: var(--radius); box-shadow: 0 14px 34px rgba(16, 38, 29, 0.22); padding: 0.2rem 0 0.35rem; text-align: left; }
.suggest-group { margin: 0; padding: 0.65rem 0.9rem 0.25rem; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--muted); }
.suggest-option { display: flex; align-items: center; gap: 0.75rem; min-height: 3.2rem; padding: 0.45rem 0.9rem; cursor: pointer; }
.suggest-option:hover, .suggest-option.is-active { background: var(--sauge); }
.suggest-icon { width: 2.1rem; height: 2.1rem; border-radius: 8px; background: var(--sauge); color: var(--bistrot); display: inline-flex; align-items: center; justify-content: center; flex: none; }
.suggest-option.is-active .suggest-icon, .suggest-option:hover .suggest-icon { background: var(--paper); }
.suggest-main { display: grid; gap: 0.05rem; min-width: 0; flex: 1; }
.suggest-main strong { font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.suggest-main small { font-size: 0.84rem; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.suggest-main mark { background: none; color: inherit; font-weight: 800; }
.suggest-price { color: var(--laiton-ink); font-size: 0.92rem; flex: none; }
.suggest-all { border-top: 1px solid var(--line); margin-top: 0.3rem; color: var(--bistrot); font-weight: 600; }
.is-alert dt, .is-alert dd { color: var(--danger); }
.suggest-thumb { width: 2.1rem; height: 2.1rem; border-radius: 8px; object-fit: cover; flex: none; }
/* 1.24.5 : la barre des cookies ne couvre pas la mascotte ouverte (elle revient à sa fermeture) */
body:has(.assistant.is-open) .consent-bar { display: none; }

/* ===== 1.25 : équipe et premiers pas ===== */
.pro-team .pro-card { margin-bottom: 1.25rem; }
.team-list { list-style: none; margin: 0; padding: 0; display: grid; }
.team-list li { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; padding: 0.85rem 0; border-top: 1px solid var(--line); }
.team-list li:first-child { border-top: 0; padding-top: 0; }
.team-av { width: 2.6rem; height: 2.6rem; border-radius: 50%; background: var(--sauge); color: var(--bistrot); font-weight: 700; display: inline-flex; align-items: center; justify-content: center; flex: none; }
.team-who { display: grid; gap: 0.1rem; flex: 1 1 14rem; min-width: 0; }
.team-who small { color: var(--muted); font-size: 0.86rem; }
.team-pill { font-size: 0.76rem; font-weight: 700; border-radius: 999px; padding: 0.25rem 0.7rem; white-space: nowrap; }
.team-pill.is-owner { background: var(--bistrot); color: #fff; }
.team-pill.is-member { background: var(--ok-soft); color: var(--bistrot); }
.team-pill.is-pending { background: var(--laiton-soft); color: var(--laiton-ink); }
.team-actions { display: flex; flex-wrap: wrap; gap: 0.4rem; align-items: flex-start; }
.team-actions form { margin: 0; }
.team-places summary { list-style: none; }
.team-places summary::-webkit-details-marker { display: none; }
.team-places[open] form { display: grid; gap: 0.4rem; margin-top: 0.5rem; padding: 0.7rem; border: 1px solid var(--line); border-radius: 10px; background: var(--paper); }
.team-fields { display: grid; gap: 0.8rem; grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
.team-fields .field { margin: 0; }
.team-checks { border: 0; padding: 0; margin: 0.8rem 0 0; display: grid; gap: 0.35rem; }
.team-checks legend { font-weight: 600; margin-bottom: 0.3rem; padding: 0; }
.team-rights { width: 100%; border-collapse: collapse; font-size: 0.93rem; min-width: 26rem; }
.team-rights th, .team-rights td { padding: 0.55rem 0.7rem; border-bottom: 1px solid var(--line); text-align: left; }
.team-rights th { font-size: 0.78rem; text-transform: uppercase; color: var(--muted); }
.team-rights td + td { width: 7rem; font-weight: 700; color: var(--bistrot); }
.pro-side-actor { display: block; margin-top: 0.3rem; font-size: 0.8rem; color: var(--laiton-ink); font-weight: 600; }
.pro-nav-start { margin: 0.4rem 0 0.3rem; background: var(--laiton-soft) !important; color: var(--laiton-ink) !important; font-weight: 700; }

.start { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); margin-bottom: 1.5rem; overflow: hidden; }
.start-head { display: flex; flex-wrap: wrap; gap: 1.1rem; align-items: center; padding: 1.3rem 1.4rem; background: var(--bistrot); color: #fff; }
.start-head img { width: 5rem; height: 5rem; border-radius: 50%; background: #fff; object-fit: contain; flex: none; }
.start-intro { flex: 1 1 16rem; display: grid; gap: 0.45rem; }
.start-intro h2 { margin: 0; color: #fff; font-size: 1.45rem; }
.start-intro p { margin: 0; color: #E6F1EA; }
.start-intro small { color: #E6F1EA; }
.start-bar { height: 0.6rem; background: rgba(255, 255, 255, 0.2); border-radius: 999px; overflow: hidden; }
.start-bar span { display: block; height: 100%; background: var(--laiton); border-radius: 999px; }
.start-steps { list-style: none; margin: 0; padding: 0.3rem 1.2rem 0.5rem; }
.start-step { border-top: 1px solid var(--line); }
.start-step:first-child { border-top: 0; }
.start-step summary { display: flex; align-items: center; gap: 0.9rem; padding: 0.85rem 0.2rem; cursor: pointer; list-style: none; }
.start-step summary::-webkit-details-marker { display: none; }
.start-num { width: 2rem; height: 2rem; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; font-size: 0.88rem; background: var(--sauge); color: var(--muted); flex: none; }
.start-step.is-done .start-num { background: var(--bistrot); color: #fff; }
.start-step.is-current .start-num { background: var(--laiton); color: #fff; }
.start-step.is-done strong, .start-step.is-skipped strong { color: var(--muted); }
.start-label { display: grid; gap: 0.1rem; flex: 1; }
.start-label small { color: var(--muted); font-size: 0.84rem; }
.start-now { font-size: 0.82rem; font-weight: 700; color: var(--laiton-ink); }
.start-body { padding: 0 0.2rem 1.1rem 2.9rem; display: grid; gap: 0.6rem; }
.start-body p { margin: 0; line-height: 1.55; }
.start-body ul { margin: 0; padding-left: 1.1rem; color: var(--muted); font-size: 0.92rem; line-height: 1.6; }
.start-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; }
.start-actions form { margin: 0; }
.start-hide { padding: 0.8rem 1.4rem 1.1rem; margin: 0; font-size: 0.9rem; border-top: 1px solid var(--line); }
@media (max-width: 40rem) { .start-body { padding-left: 0.2rem; } }
/* Guide « Bien publier » regroupé (1.25) */
.guide-section h3 { font-size: 1.12rem; margin: 0 0 0.4rem; display: flex; gap: 0.55rem; align-items: center; }
.guide-group { margin: 2rem 0 0.8rem; font-size: 1.35rem; }
.guide-start { margin: 0 0 1rem; }
.guide-daily { background: var(--laiton-soft); border-radius: var(--radius); padding: 1rem 1.2rem; margin: 0 0 1.2rem; }
.guide-daily h2 { margin: 0 0 0.4rem; font-size: 1.15rem; }
.guide-daily ol { margin: 0; padding-left: 1.2rem; display: grid; gap: 0.25rem; line-height: 1.5; }
.guide-toc { display: grid; gap: 0.9rem 1.5rem; grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr)); background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); padding: 1rem 1.2rem; margin-bottom: 0.5rem; }
.guide-toc ul { margin: 0.3rem 0 0; padding-left: 1.1rem; font-size: 0.93rem; line-height: 1.6; }
/* Adresse courte (1.25) */
.handle-input { display: flex; align-items: stretch; border: 1px solid #C9D1CC; border-radius: 10px; overflow: hidden; background: var(--paper); }
.handle-input span { display: flex; align-items: center; padding: 0 0.2rem 0 0.8rem; color: var(--muted); background: var(--sauge); white-space: nowrap; font-size: 0.95rem; }
.handle-input input { border: 0; border-radius: 0; flex: 1; min-width: 0; }
.handle-input:focus-within { outline: 3px solid var(--laiton); outline-offset: 1px; }

/* ===== 1.26 : visites de l'équipe ===== */
.visit-box { background: var(--bistrot); color: #fff; border-radius: var(--radius); padding: 1.1rem 1.2rem; margin: 0 0 1.1rem; }
.visit-box h2 { color: #fff; margin: 0 0 0.4rem; font-size: 1.2rem; }
.visit-box p { margin: 0 0 0.7rem; color: #E6F1EA; }
.visit-terms { background: rgba(255, 255, 255, 0.1); border-radius: 10px; padding: 0.8rem 0.95rem; font-size: 0.93rem; line-height: 1.55; }
.visit-terms ul { margin: 0.35rem 0 0; padding-left: 1.1rem; }
.visit-fields { display: grid; gap: 0.2rem; }
.visit-chips { border: 0; padding: 0; margin: 0 0 1rem; display: flex; flex-wrap: wrap; gap: 0.45rem; }
.visit-chips legend { font-weight: 600; margin-bottom: 0.4rem; padding: 0; width: 100%; }
.visit-card { display: flex; gap: 0.8rem; align-items: center; background: var(--laiton-soft); border-radius: var(--radius); padding: 0.8rem; margin: 0 0 1rem; text-decoration: none; color: var(--ink); }
.visit-card img { width: 3.2rem; height: 3.2rem; border-radius: 50%; background: #fff; object-fit: contain; flex: none; }
.visit-card span { display: grid; gap: 0.1rem; }
.visit-card small { color: var(--muted); }
.visit-pro { background: var(--bistrot); color: #fff; border-radius: var(--radius); padding: 1.1rem 1.2rem; margin: 0 0 1.25rem; display: grid; gap: 0.6rem; }
.visit-pro h2 { color: #fff; margin: 0; font-size: 1.15rem; }
.visit-pro p { margin: 0; color: #E6F1EA; }
.visit-pro .btn { justify-self: start; background: #fff; color: var(--bistrot); border-color: #fff; }
.visit-status { font-size: 0.92rem; background: rgba(255, 255, 255, 0.12); border-radius: 8px; padding: 0.55rem 0.75rem; }
.visits-list { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(17rem, 1fr)); }
.visit-tile { background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; text-decoration: none; color: var(--ink); display: grid; }
.visit-tile img { width: 100%; height: 11rem; object-fit: cover; }
.visit-tile div { padding: 0.9rem 1rem 1.1rem; display: grid; gap: 0.3rem; }
.visit-tile small { color: var(--laiton-ink); font-weight: 700; font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.04em; }
.article { max-width: 46rem; margin: 0 auto; display: grid; gap: 1.1rem; }
.article-kicker { justify-self: start; font-size: 0.78rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--laiton-ink); background: var(--laiton-soft); border-radius: 999px; padding: 0.3rem 0.8rem; }
.article h1 { margin: 0; font-size: clamp(1.8rem, 4vw, 2.4rem); line-height: 1.12; }
.article-lead { margin: 0; font-size: 1.15rem; color: var(--muted); line-height: 1.5; }
.article-hero { width: 100%; max-height: 26rem; object-fit: cover; border-radius: var(--radius); }
.article-photos { display: grid; gap: 0.6rem; grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr)); }
.article-photos img { width: 100%; height: 8rem; object-fit: cover; border-radius: 10px; }
.article-body { font-size: 1.06rem; line-height: 1.7; }
.article-place { display: flex; flex-wrap: wrap; gap: 0.9rem; align-items: center; background: var(--paper); border: 1px solid var(--line); border-radius: var(--radius); padding: 1rem; }
.article-place img { width: 4.5rem; height: 4.5rem; object-fit: cover; border-radius: 10px; }
.article-place div { flex: 1 1 12rem; display: grid; }
.article-note { margin: 0; font-size: 0.92rem; color: var(--muted); border-left: 3px solid var(--laiton); padding-left: 0.8rem; }

/* ===== 1.26.2 : en-tête plus compact sur ordinateur (rien ne passe à la ligne) ===== */
.account-chip, .account-chip span { white-space: nowrap; }
@media (min-width: 60rem) {
  .site-menu { margin-left: 1rem; gap: 0.1rem; }
  .menu-link, .menu-group summary { font-size: 0.94rem; padding: 0.45rem 0.5rem; }
  .header-nav { gap: 0.3rem; }
  .header-nav .nav-link { font-size: 0.94rem; padding: 0.45rem 0.35rem; }
  .account-chip { font-size: 0.94rem; padding: 0.2rem 0.65rem 0.2rem 0.2rem; }
  .lang-menu summary { font-size: 0.88rem; }
}
/* Entre 60 et 80 rem : « Espace pro » au lieu de « Espace restaurateur », pastille du compte sans texte. */
@media (min-width: 60rem) and (max-width: 79.99rem) {
  .nav-pro .long { display: none; }
  .nav-pro .short { display: inline; }
  .site-menu { margin-left: 0.6rem; }
}

/* 1.28 : inviter un restaurant, carte au comptoir, offre de lancement, recommandation. */
.invite-page { padding-top: 1.75rem; padding-bottom: 2.5rem; display: flex; flex-direction: column; gap: 1.25rem; }
.invite-reward { display: flex; gap: 1.25rem; align-items: center; padding: 1.1rem 1.35rem; background: var(--pastel-miel, var(--laiton-soft)); border: 1px solid var(--pastel-miel-line, #E8D7AE); border-radius: 16px; }
.invite-reward p { margin: 0; line-height: 1.5; }
.invite-reward span { color: var(--muted); font-size: 0.95rem; }
.invite-reward-big { font-family: var(--font-display); font-weight: 800; font-size: 2rem; color: var(--laiton-ink); white-space: nowrap; }
.invite-tabs { display: flex; gap: 0.25rem; border-bottom: 1px solid #E4DCCB; overflow-x: auto; scrollbar-width: none; }
.invite-tabs a { flex: none; padding: 0.8rem 0.9rem 0.7rem; font-weight: 600; color: var(--muted); text-decoration: none; border-bottom: 3px solid transparent; }
.invite-tabs a:hover { color: var(--ink); }
.invite-tabs a[aria-current="page"] { color: var(--ink); border-bottom-color: var(--laiton); }
.invite-grid { display: grid; gap: 1.25rem; }
@media (min-width: 52rem) { .invite-grid { grid-template-columns: 1fr 1fr; align-items: stretch; } }
.invite-grid .panel { margin: 0; }
.invite-card { display: flex; flex-direction: column; gap: 0.9rem; }
.invite-card h2 { margin: 0; }
.invite-card p { margin: 0; }
.invite-card .field { margin: 0; }
.invite-link-row { display: flex; gap: 0.5rem; }
.invite-link-row input { flex: 1; min-width: 0; background: var(--sauge); }
.invite-share { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.invite-card-qr { align-items: center; text-align: center; }
.invite-card-qr h2, .invite-card-qr > p.muted { align-self: stretch; text-align: left; }
.invite-qr { padding: 0.6rem; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); line-height: 0; }
.invite-qr svg { width: 11rem; height: auto; }
.invite-qr-link { font-weight: 700; color: var(--bistrot); word-break: break-all; }
.invite-reading { padding: 0; }
.invite-list { margin: 0; }
.invite-list .table-scroll { margin-bottom: 0; }
.invite-year { font-size: 0.95rem; color: var(--muted); }
.invite-state { display: inline-block; font-size: 0.85rem; font-weight: 700; border-radius: 999px; padding: 0.2rem 0.65rem; background: #EEF0EE; color: var(--muted); }
.invite-state-trial, .invite-state-pending { background: var(--laiton-soft); color: var(--laiton-ink); }
.invite-state-subscribed { background: var(--ok-soft); color: var(--bistrot); }
.invite-won { color: var(--bistrot); }
.space-invite-reward { margin: 0 0 0.75rem; color: var(--muted); }
.space-invite-reward strong { color: var(--ink); }
/* Carte plein écran à montrer au comptoir */
.invite-fullcard-wrap { padding-top: 1.5rem; padding-bottom: 2rem; }
.invite-fullcard { max-width: 30rem; margin: 0 auto; padding: 1.75rem 1.25rem; background: #FBF6EA; border: 1px solid #E6DCC8; border-radius: 20px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 1rem; }
.invite-fullcard-logo { width: 11rem; height: auto; }
.invite-fullcard-who { margin: 0; font-family: var(--font-display); font-weight: 800; font-size: 1.5rem; line-height: 1.2; color: var(--bistrot); }
.invite-qr-big svg { width: min(16rem, 70vw); }
.invite-fullcard-scan { margin: 0; font-size: 1.1rem; line-height: 1.45; }
.invite-fullcard .invite-qr-link { margin: 0; }
.invite-fullcard-back { text-align: center; margin: 1rem 0 0; }
/* Page Restaurateurs : recommandation et offre de lancement */
.invite-banner { background: var(--laiton-soft); border-bottom: 1px solid #E8D7AE; padding: 0.75rem 0; font-size: 1rem; }
.hero-launch { margin: 0 0 1.1rem; padding: 0.8rem 1rem; background: rgba(255, 255, 255, 0.12); border-radius: var(--radius); line-height: 1.45; font-size: 0.95rem; }
.invite-referred { margin: 0 0 1rem; padding: 0.65rem 0.9rem; background: var(--ok-soft); color: var(--bistrot); border-radius: var(--radius-small); font-weight: 600; }
@media (max-width: 40rem) {
  .invite-reward { flex-direction: column; align-items: flex-start; gap: 0.35rem; }
  .invite-reward-big { font-size: 1.6rem; }
  .invite-tabs { display: grid; grid-template-columns: 1fr 1fr; overflow: visible; }
  .invite-tabs a { flex: auto; text-align: center; font-size: 0.95rem; line-height: 1.3; }
}

/* 1.29 : anti-robot maison et tunnel de paiement. */
.captcha-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.captcha-question[hidden] { display: none; }
.captcha-answer { max-width: 7rem; }
.checkout-steps { list-style: none; display: flex; gap: 0.4rem; padding: 0; margin: 0 0 1rem; font-size: 0.85rem; font-weight: 700; color: var(--muted); }
.checkout-steps li { flex: 1; border-top: 4px solid #E4DCCB; padding-top: 0.4rem; }
.checkout-steps .is-current { border-color: var(--laiton); color: var(--ink); }
.checkout-steps .is-done { border-color: var(--bistrot); color: var(--bistrot); }
.review-box { margin-bottom: 1rem; }
.review-box p { margin: 0.3rem 0 0.9rem; }
.review-box p:last-child { margin-bottom: 0; }
.review-list { margin: 0; }
.review-list div { display: flex; justify-content: space-between; gap: 1rem; padding: 0.55rem 0; border-top: 1px solid var(--line); }
.review-list div:first-child { border-top: 0; }
.review-list dt { color: var(--muted); }
.review-list dd { margin: 0; text-align: right; }
.review-total dt { color: var(--ink); font-weight: 700; }
.review-total dd { font-family: var(--font-display); font-weight: 800; font-size: 1.3rem; }
.review-head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.review-head h2 { font-size: 1rem; margin: 0; }
.checkout .check { margin: 0.5rem 0 0.25rem; }
.captcha-ok { margin: 0.4rem 0 0.6rem; font-size: 0.9rem; font-weight: 600; color: var(--bistrot); }
.captcha-ok span { display: inline-flex; align-items: center; justify-content: center; width: 1.25rem; height: 1.25rem; margin-right: 0.3rem; border-radius: 50%; background: var(--ok-soft); font-size: 0.8rem; }
.captcha-ok[hidden] { display: none; }
