/* Design « Bistrot » : bistrot de quartier, carte à la craie sur ardoise encadrée de bois, carreaux de ciment, zinc et nappe vichy. Caveat + Nunito. */
.d-bistrot {
  --slate: #262d2a;
  --slate-2: #313a36;
  --chalk: #f3efe4;
  --chalk-y: #f2d27a;
  --wood: #6b4226;
  --cream: #f6efe2;
  /* Nappe vichy (couleur principale) */
  --vichy: linear-gradient(90deg, color-mix(in srgb, var(--primary) 55%, transparent) 50%, transparent 0) 0 0 / 22px 22px,
    linear-gradient(color-mix(in srgb, var(--primary) 55%, transparent) 50%, transparent 0) 0 0 / 22px 22px, #fffaf2;
  /* Carreaux de ciment : rosace et cercles d'angle (le fond coloré suit la couleur principale) */
  --tiles: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80'%3E%3Cmask id='m'%3E%3Crect width='80' height='80' fill='%23fff'/%3E%3Cg fill='%23000'%3E%3Cellipse cx='40' cy='40' rx='8' ry='27'/%3E%3Cellipse cx='40' cy='40' rx='27' ry='8'/%3E%3Cellipse cx='40' cy='40' rx='5' ry='20' transform='rotate%2845 40 40%29'/%3E%3Cellipse cx='40' cy='40' rx='5' ry='20' transform='rotate%28-45 40 40%29'/%3E%3Ccircle r='15'/%3E%3Ccircle cx='80' r='15'/%3E%3Ccircle cy='80' r='15'/%3E%3Ccircle cx='80' cy='80' r='15'/%3E%3C/g%3E%3C/mask%3E%3Crect width='80' height='80' fill='%23f1e9d8' mask='url%28%23m%29'/%3E%3Cg fill='none' stroke='%23313a36' stroke-width='1.6'%3E%3Ccircle r='20'/%3E%3Ccircle cx='80' r='20'/%3E%3Ccircle cy='80' r='20'/%3E%3Ccircle cx='80' cy='80' r='20'/%3E%3Ccircle cx='40' cy='40' r='31' stroke-width='1' stroke-dasharray='2 4'/%3E%3C/g%3E%3Ccircle cx='40' cy='40' r='5' fill='%23313a36'/%3E%3Crect width='80' height='80' fill='none' stroke='%23000' stroke-opacity='.1'/%3E%3C/svg%3E") 0 0 / 80px 80px, color-mix(in oklab, var(--primary), #f1e9d8 22%);
  /* Zinc brossé */
  --zinc: repeating-linear-gradient(90deg, rgba(255, 255, 255, .25) 0 1px, transparent 1px 4px), linear-gradient(180deg, #e9ecee, #b9c0c5 55%, #cfd5d8);
  /* Bois du cadre */
  --woodgrain: repeating-linear-gradient(8deg, rgba(0, 0, 0, .12) 0 2px, transparent 2px 7px), linear-gradient(135deg, #8a5a35, var(--wood) 50%, #4f2f1a);
  --bg: var(--cream); --bg-soft: #efe5d3; --surface: #fffcf6;
  --ink: #241c17; --ink-2: #4f443c; --ink-3: #6f635a; --line: #e2d5bf;
  --head-w: 700; --h1-w: 700; --head-track: 0; --h1-track: -.01em;
  --btn-r: 10px; --footer-bg: var(--slate);
}

/* Titres à la main (craie), texte en Nunito */
.d-bistrot .sec-head h2 { font-size: clamp(2.4rem, 4.6vw, 3.6rem); line-height: 1; }
.d-bistrot .eyebrow { font-family: var(--font-body); color: var(--primary-700); letter-spacing: .16em; padding-bottom: 6px; background: linear-gradient(var(--primary), var(--primary)) 50% 100% / 40px 3px no-repeat; }
.d-bistrot .sec-head:not(.center) .eyebrow { background-position: 0 100%; }
.d-bistrot .btn { font-weight: 700; }
.d-bistrot .btn-primary { box-shadow: 0 4px 0 var(--primary-900); }
.d-bistrot .btn-primary:hover { box-shadow: 0 6px 0 var(--primary-900); }
.d-bistrot .btn-ghost { background: transparent; border: 2px solid var(--ink); }

/* En-tête : bandeau vichy sous la devanture */
.d-bistrot .site-header { background: rgba(246, 239, 226, .97); border-bottom: 0; }
.d-bistrot .site-header::after { content: ''; position: absolute; left: 0; right: 0; bottom: -8px; height: 8px; background: var(--vichy); background-size: 8px 8px; }
.d-bistrot .brand-mark { border-radius: 50%; background: var(--slate); box-shadow: 0 0 0 3px var(--cream), 0 0 0 5px var(--wood); }
.d-bistrot .brand-text strong { font-size: 1.7rem; line-height: 1; }
.d-bistrot .brand-stars { color: var(--primary-700); }
.d-bistrot .nav a { font-weight: 700; border-radius: 8px; }
.d-bistrot .nav a:hover { background: transparent; color: var(--primary-700); box-shadow: inset 0 -3px 0 var(--primary); }

/* Bannière : ardoise du jour encadrée de bois */
.d-bistrot .hero { background: radial-gradient(800px 420px at 90% 0, color-mix(in oklab, var(--primary), transparent 88%), transparent 70%), var(--cream); }
.d-bistrot .hero h1 { font-size: clamp(3rem, 6.4vw, 5.4rem); line-height: .95; color: var(--ink); }
.d-bistrot .pill-badge { border-radius: 6px; background: var(--slate); color: var(--chalk); border: 0; font-family: var(--font-head); font-size: 1.3rem; font-weight: 600; padding: .15em .8em; rotate: -2deg; }
.d-bistrot .pill-badge .dot { background: var(--chalk-y); box-shadow: none; }
.d-bistrot .hero-art { border-radius: 14px; border: 16px solid transparent;
  background: radial-gradient(60% 40% at 30% 30%, rgba(255, 255, 255, .07), transparent 70%) padding-box, radial-gradient(50% 50% at 75% 75%, rgba(255, 255, 255, .05), transparent 70%) padding-box, linear-gradient(var(--slate), var(--slate)) padding-box, var(--woodgrain) border-box;
  box-shadow: inset 0 0 40px rgba(0, 0, 0, .55), 0 26px 50px -24px rgba(36, 28, 23, .6); }
.d-bistrot .hero-art::before { background: repeating-linear-gradient(-12deg, rgba(243, 239, 228, .03) 0 3px, transparent 3px 14px); }
.d-bistrot .hero-art::after { content: 'Plat du jour'; position: absolute; top: 9%; left: 0; right: 0; text-align: center; font-family: var(--font-head); font-size: clamp(1.9rem, 4vw, 2.8rem); font-weight: 700; color: var(--chalk); opacity: .92; text-decoration: underline wavy color-mix(in srgb, var(--chalk) 50%, transparent); text-underline-offset: 10px; text-decoration-thickness: 1.5px; }
.d-bistrot .art-ring.r1 { width: 50%; top: 56%; border: 2.5px solid rgba(243, 239, 228, .7); box-shadow: inset 0 0 0 10px transparent, inset 0 0 0 12px rgba(243, 239, 228, .35); }
.d-bistrot .art-ring.r2 { display: none; }
.d-bistrot .art-cross { top: 56%; width: 30%; background: none; border: 0; backdrop-filter: none; }
.d-bistrot .art-cross .ic { stroke: var(--chalk); stroke-width: 1.4; filter: drop-shadow(0 0 1px rgba(243, 239, 228, .6)); }
.d-bistrot .art-pill { background: none; box-shadow: none; color: var(--chalk-y); width: 52px; height: 52px; animation: none; }
.d-bistrot .art-pill .ic { stroke-width: 1.5; width: 34px; height: 34px; }
.d-bistrot .art-pill.p1 { left: 8%; top: auto; bottom: 10%; rotate: -12deg; }
.d-bistrot .art-pill.p2 { right: 8%; top: auto; bottom: 12%; rotate: 10deg; }
.d-bistrot .art-pill.p3 { display: none; }
.d-bistrot .float-card { border-radius: 4px; background: #fffdf7; padding-top: 20px; overflow: hidden; rotate: -2deg; }
.d-bistrot .fc-addr { rotate: 2deg; }

/* Points forts : le comptoir en zinc */
.d-bistrot .hl-grid { border-radius: 12px 12px 4px 4px; border: 0; background: var(--zinc); box-shadow: inset 0 3px 0 rgba(255, 255, 255, .7), inset 0 -6px 0 #8f979c, 0 22px 30px -20px rgba(36, 28, 23, .5); }
.d-bistrot .hl-item + .hl-item { border-left: 1px solid rgba(60, 70, 76, .25); }
.d-bistrot .hl-item small { color: #3e474c; }
.d-bistrot .ic-box { border-radius: 50%; background: var(--slate); color: var(--chalk); }

/* Prestations : petites cartes, liseré vichy */
.d-bistrot .card { border-radius: 10px; border: 1px solid var(--line); padding-top: 38px; }
.d-bistrot .card::before, .d-bistrot .review::before, .d-bistrot .float-card::before, .d-bistrot .quote-form::before, .d-bistrot .site-footer::before { content: ''; position: absolute; inset: 0 0 auto; height: 12px; background: var(--vichy); background-size: 12px 12px; border-radius: inherit; border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
.d-bistrot .float-card::before { height: 7px; background-size: 7px 7px; }
.d-bistrot .card::after { display: none; }
.d-bistrot .card .ic-box { border-radius: 50%; }
.d-bistrot .card h3 { font-size: 1.7rem; font-weight: 700; margin-top: 14px; }

/* Chambres : carreaux de ciment en attendant la photo */
.d-bistrot .room { border-radius: 10px; }
.d-bistrot .room-ph { background: var(--tiles); color: var(--slate); }
.d-bistrot .room-ph .ic { width: 22%; padding: 5%; background: var(--surface); border-radius: 50%; box-shadow: 0 0 0 6px var(--slate); box-sizing: content-box; stroke-width: 1.6; }
.d-bistrot .room-price { border-radius: 6px; background: var(--slate); color: var(--chalk); font-family: var(--font-head); font-size: 1.4rem; padding: .05em .7em; rotate: 3deg; }
.d-bistrot .room h3 { font-size: 1.75rem; }
.d-bistrot .room-cat { color: var(--primary-700); }
.d-bistrot .pj-chip { border-radius: 8px; font-weight: 700; }
.d-bistrot .pj-chip.on, .d-bistrot .pj-pager button.on { background: var(--slate); border-color: var(--slate); }

/* La carte : une vraie ardoise, cadre en bois, écrite à la craie */
.d-bistrot .menu-sec { background: var(--tiles); }
.d-bistrot .menu-sec .sec-head { background: var(--cream); padding: 22px 30px; border-radius: 12px; box-shadow: var(--shadow); }
.d-bistrot .menu-board { border-radius: 12px; border: 20px solid transparent; color: var(--chalk);
  background: radial-gradient(50% 40% at 20% 15%, rgba(255, 255, 255, .08), transparent 70%) padding-box, radial-gradient(40% 50% at 85% 80%, rgba(255, 255, 255, .06), transparent 70%) padding-box, repeating-linear-gradient(-14deg, rgba(243, 239, 228, .025) 0 3px, transparent 3px 16px) padding-box, linear-gradient(var(--slate), var(--slate)) padding-box, var(--woodgrain) border-box;
  box-shadow: inset 0 0 60px rgba(0, 0, 0, .5), 0 30px 60px -28px rgba(0, 0, 0, .7); }
.d-bistrot .menu-deco { display: block; position: absolute; top: 18px; right: 22px; width: 54px; color: rgba(243, 239, 228, .5); rotate: 14deg; }
.d-bistrot .menu-deco .ic { width: 100%; height: auto; stroke-width: 1.3; }
.d-bistrot .menu-group h3 { color: var(--chalk-y); font-size: 2.2rem; border-bottom: 0; padding-bottom: 0; text-decoration: underline wavy rgba(242, 210, 122, .55); text-underline-offset: 8px; text-decoration-thickness: 1.5px; }
.d-bistrot .dish-line strong { font-family: var(--font-head); font-size: 1.55rem; font-weight: 600; color: var(--chalk); line-height: 1.1; }
.d-bistrot .dish-dots { border-bottom: 2px dashed rgba(243, 239, 228, .35); }
.d-bistrot .dish-price { font-family: var(--font-head); font-size: 1.6rem; color: var(--chalk-y); }
.d-bistrot .dish small { color: #c9c6bc; }
.d-bistrot .menu-note { color: #c9c6bc; font-family: var(--font-head); font-size: 1.3rem; font-style: normal; }

/* La maison */
.d-bistrot .about-art { border-radius: 12px; background: var(--tiles); border: 0; box-shadow: var(--shadow-lg); color: var(--slate); }
.d-bistrot .about-art .ic { opacity: 1; background: var(--surface); border-radius: 50%; padding: 7%; box-shadow: 0 0 0 8px var(--slate); stroke-width: 1.5; }
.d-bistrot .about-art-name { font-size: 2.2rem; background: var(--slate); color: var(--chalk); padding: .1em .8em; border-radius: 8px; rotate: -2deg; }
.d-bistrot .stats div { border-radius: 8px; background: var(--slate); border: 0; }
.d-bistrot .stats dt { color: var(--chalk-y); font-size: 2.4rem; }
.d-bistrot .stats dd { color: #d6d2c6; }

/* Labels, avis : billets posés sur le comptoir */
.d-bistrot .trust { background: var(--bg-soft); }
.d-bistrot .trust-item, .d-bistrot .review { border-radius: 6px; box-shadow: var(--shadow-sm); }
.d-bistrot .trust-item h3 { font-size: 1.5rem; }
.d-bistrot .review { position: relative; padding-top: 36px; overflow: hidden; }
.d-bistrot .review:nth-child(odd) { rotate: -.6deg; }
.d-bistrot .review:nth-child(even) { rotate: .6deg; }
.d-bistrot .review blockquote { color: var(--ink); }
.d-bistrot .review figcaption strong { font-family: var(--font-head); font-size: 1.4rem; }
.d-bistrot .stars { color: var(--primary); }

/* Encadré : le store de la devanture */
.d-bistrot .cta { border-radius: 12px; background: var(--slate); padding-top: 82px; }
.d-bistrot .cta::before { content: ''; position: absolute; inset: 0 0 auto; height: 44px;
  background: repeating-linear-gradient(90deg, var(--primary) 0 40px, var(--cream) 40px 80px);
  --m: linear-gradient(#000 0 calc(100% - 12px), transparent 0), radial-gradient(20px 12px at 50% calc(100% - 12px), #000 97%, transparent 100%) 0 0 / 40px 100% repeat-x;
  -webkit-mask: var(--m); mask: var(--m); }
.d-bistrot .cta h2 { color: var(--chalk); font-size: clamp(2rem, 3.6vw, 2.8rem); }
.d-bistrot .cta .btn-white { color: var(--slate); }

/* Équipe : portraits cerclés de vichy */
.d-bistrot .avatar { border-radius: 50%; border: 0; padding: 0; background: radial-gradient(closest-side, var(--primary-50) calc(100% - 12px), #fffaf2 calc(100% - 11.5px) calc(100% - 9px), transparent calc(100% - 8.5px)), var(--vichy); box-shadow: 0 10px 24px -14px rgba(36, 28, 23, .5); }
.d-bistrot .review .avatar { background: var(--slate); box-shadow: none; }
.d-bistrot .review .avatar span { color: var(--chalk); font-family: var(--font-head); font-size: 1.3rem; }
.d-bistrot .member strong { font-family: var(--font-head); font-size: 1.6rem; }

/* Réservation, infos, FAQ, alentours */
.d-bistrot .quote-form { position: relative; background: var(--surface); padding: 42px 30px 30px; border-radius: 10px; box-shadow: var(--shadow); }
.d-bistrot .f-field input, .d-bistrot .f-field select, .d-bistrot .f-field textarea { border-radius: 8px; background: #fff; }
.d-bistrot .quote-points .ic { background: var(--slate); color: var(--chalk); }
.d-bistrot .panel { border-radius: 10px; }
.d-bistrot .panel-head > .ic { border-radius: 50%; background: var(--slate); color: var(--chalk); }
.d-bistrot .panel-head h2, .d-bistrot .news-card h3 { font-size: 1.9rem; }
.d-bistrot .status-line { background: var(--zinc); color: var(--ink); }
.d-bistrot .hours-table tr.today th::after { background: var(--slate); color: var(--chalk); }
.d-bistrot .faq details { border-radius: 8px; border-left: 6px solid var(--primary); }
.d-bistrot .faq summary { font-weight: 700; }
.d-bistrot .faq .plus { background: var(--slate); color: var(--chalk); }
.d-bistrot .towns li { background: var(--slate); border-color: var(--slate); color: var(--chalk); border-radius: 6px; }
.d-bistrot .towns .ic { color: var(--chalk-y); }
.d-bistrot .towns small { color: #cfcbc0; }
.d-bistrot .news-img { background: var(--tiles); }

/* Pied de page : l'ardoise, liseré vichy */
.d-bistrot .site-footer { position: relative; padding-top: 84px; }
.d-bistrot .site-footer h3 { font-family: var(--font-head); text-transform: none; letter-spacing: 0; font-size: 1.7rem; color: var(--chalk-y); }
.d-bistrot .brand-light .brand-mark { box-shadow: none; }

@media (max-width: 920px) {
  .d-bistrot .hl-item + .hl-item { border-left: 0; }
  .d-bistrot .hl-item { border-bottom: 1px solid rgba(60, 70, 76, .25); }
  .d-bistrot .hl-item:nth-child(odd) { border-right: 1px solid rgba(60, 70, 76, .25); }
}
@media (max-width: 560px) {
  .d-bistrot .hl-item:nth-child(odd) { border-right: 0; }
  .d-bistrot .menu-board { border-width: 12px; padding: 28px 18px; }
  .d-bistrot .menu-sec .sec-head { padding: 18px; }
  .d-bistrot .menu-deco { display: none; }
  .d-bistrot .quote-form { padding: 36px 18px 22px; }
  .d-bistrot .hero-art::after { top: 6%; }
}
