:root {
  --black: #0c0c0c;
  --black-soft: #161616;
  --cream: #e8cda0;
  --cream-light: #f5e8d2;
  --red: #d71920;
  --red-dark: #aa1015;
  --green: #159337;
  --white: #fff;
  --muted: #6e6a65;
  --line: #e6ded3;
  --surface: #fffdf9;
  --shadow: 0 20px 60px rgba(0, 0, 0, .18);
  --radius: 20px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: #171513; background: var(--surface); font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
body.no-scroll { overflow: hidden; }
.demo-banner { position: sticky; top: 0; z-index: 100; padding: 9px 20px; text-align: center; color: #221600; background: #ffd86a; font-size: 13px; font-weight: 800; }
.promotion-banner{position:relative;z-index:4;color:#f5e8d2;background:linear-gradient(105deg,#111 0%,#1c1712 52%,#111 100%);border-top:1px solid rgba(232,205,160,.2);border-bottom:1px solid rgba(232,205,160,.34);box-shadow:0 12px 30px rgba(0,0,0,.14)}
.promotion-banner::before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 15% 40%,rgba(232,205,160,.09),transparent 35%),linear-gradient(90deg,transparent,rgba(215,25,32,.08),transparent)}
.promotion-banner-inner{position:relative;width:min(1280px,100%);min-height:82px;margin:0 auto;padding:14px 32px;display:flex;align-items:center;justify-content:center;gap:34px}
.promotion-banner-copy{display:grid;gap:5px;text-align:right}.promotion-banner-kicker{color:var(--cream);font-size:10px;font-weight:950;letter-spacing:.19em;text-transform:uppercase}.promotion-banner-copy>strong{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:18px;font-weight:850;line-height:1.38;letter-spacing:.015em;text-wrap:balance}
.promotion-banner-code{min-width:205px;display:grid;grid-template-columns:auto auto;grid-template-areas:'label code' 'hint hint';align-items:center;justify-content:center;column-gap:10px;row-gap:2px;padding:10px 18px;color:#19130d;background:linear-gradient(145deg,#f5e8d2,#e8cda0);border:1px solid rgba(255,255,255,.42);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.23);cursor:pointer;transition:transform .18s ease,filter .18s ease}
.promotion-banner-code:hover{transform:translateY(-1px);filter:brightness(1.04)}.promotion-banner-code:focus-visible{outline:3px solid rgba(232,205,160,.35);outline-offset:3px}.promotion-banner-code>span{grid-area:label;color:#7b6550;font-size:10px;font-weight:950;letter-spacing:.12em;text-transform:uppercase}.promotion-banner-code>strong{grid-area:code;color:#9f1117;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:19px;letter-spacing:.08em}.promotion-banner-code>small{grid-area:hint;color:#6c5a48;font-size:9px;font-weight:800}
.site-header { height: 84px; position: sticky; top: 0; z-index: 90; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 24px; padding: 0 max(28px, calc((100vw - 1280px)/2)); color: white; background: rgba(11,11,11,.96); backdrop-filter: blur(14px); border-bottom: 1px solid rgba(255,255,255,.1); }
.demo-banner:not([hidden]) + .site-header { top: 35px; }
.brand { display: inline-flex; align-items: center; gap: 10px; width: max-content; text-decoration: none; }
.brand img { width: 66px; height: 66px; display: block; object-fit: cover; border-radius: 50%; }
.brand strong { display: block; font: 900 22px/1 Georgia, serif; letter-spacing: .04em; text-transform: uppercase; }
.brand small { color: var(--cream); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.site-header nav { display: flex; align-items: center; gap: 26px; font-weight: 700; font-size: 14px; }
.site-header nav a { text-decoration: none; opacity: .9; }
.site-header nav a:hover { opacity: 1; color: var(--cream); }
.phone-link { color: var(--cream) !important; }

.header-social-links { display: inline-flex; align-items: center; gap: 8px; margin-left: -10px; }
.header-social-links > a { width: 34px; height: 34px; display: grid; place-items: center; flex: 0 0 auto; color: var(--cream); background: rgba(255,255,255,.035); border: 1px solid rgba(232,205,160,.42); border-radius: 50%; opacity: 1 !important; transition: .18s ease; }
.header-social-links > a:hover { color: #111; background: var(--cream); border-color: var(--cream); transform: translateY(-1px); }
.header-social-links > a:focus-visible { outline: 3px solid rgba(232,205,160,.28); outline-offset: 2px; }
.header-social-links svg { width: 17px; height: 17px; fill: currentColor; stroke: none; }
.header-social-links a:first-child svg { fill: none; stroke: currentColor; stroke-width: 1.8; }
.header-social-links .header-social-dot { fill: currentColor; stroke: none; }
.cart-pill { justify-self: end; display: inline-flex; align-items: center; gap: 9px; padding: 10px 14px; color: white; background: var(--red); border: 0; border-radius: 999px; cursor: pointer; font-weight: 800; }
.cart-pill b { min-width: 24px; height: 24px; display: grid; place-items: center; color: var(--red); background: white; border-radius: 50%; font-size: 12px; }
.hero { min-height: 690px; position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(360px, .8fr); align-items: center; gap: 72px; padding: 70px max(32px, calc((100vw - 1280px)/2)); color: white; background-color: var(--black); background-image: linear-gradient(100deg, rgba(0,0,0,.98) 20%, rgba(0,0,0,.86) 60%, rgba(0,0,0,.72)), url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 240 240'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.075' stroke-width='2'%3E%3Ccircle cx='40' cy='45' r='24'/%3E%3Ccircle cx='32' cy='39' r='3'/%3E%3Ccircle cx='48' cy='51' r='3'/%3E%3Cpath d='M122 18c15 16 21 35 18 58-22-6-38-18-48-36 8-8 18-15 30-22Z'/%3E%3Cpath d='M92 40c20 3 36 14 48 36'/%3E%3Cpath d='M27 159 82 97l21 92Z'/%3E%3Cpath d='M42 143c18 15 37 22 58 21'/%3E%3Ccircle cx='76' cy='139' r='5'/%3E%3Cpath d='M167 151c13-20 30-29 50-26-1 21-13 37-34 48'/%3E%3Cpath d='M168 150c19 2 35-5 49-25'/%3E%3C/g%3E%3C/svg%3E"); }
.hero-copy, .hero-card { position: relative; z-index: 1; }
.eyebrow { margin: 0 0 13px; color: var(--cream); font-size: 13px; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.eyebrow.red { color: var(--red); }
h1, h2, h3, p { margin-top: 0; }
h1 { max-width: 760px; margin-bottom: 22px; font: 900 clamp(46px, 5vw, 76px)/.98 Georgia, serif; letter-spacing: -.035em; }
h1 em { color: var(--cream); font-style: italic; font-weight: 500; }
.hero-text { max-width: 630px; margin-bottom: 30px; color: #d8d3cc; font-size: 19px; line-height: 1.55; }
.service-switch { max-width: 680px; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 26px; }
.service-button { display: flex; align-items: center; gap: 14px; padding: 16px 18px; text-align: left; color: white; background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.16); border-radius: 16px; cursor: pointer; transition: .2s ease; }
.service-button:hover, .service-button.active { border-color: var(--cream); background: rgba(232,205,160,.13); transform: translateY(-2px); }
.service-button strong, .service-button small { display: block; }
.service-button small { margin-top: 3px; color: #bdb7af; }
body.delivery-unavailable .service-switch { max-width: 680px; grid-template-columns: repeat(2, minmax(0,1fr)); }
body.delivery-unavailable .service-button[data-fulfilment="delivery"] { opacity: .58; cursor: not-allowed; transform: none; }
body.delivery-unavailable .checkout-switch { grid-template-columns: minmax(0,1fr); }
.delivery-unavailable-note { max-width: 680px; margin: -12px 0 24px; padding: 11px 14px; color: #fff4d1; background: rgba(197,122,5,.2); border: 1px solid rgba(232,205,160,.4); border-radius: 11px; font-size: 13px; font-weight: 800; line-height: 1.45; }
.checkout-delivery-unavailable { margin: -12px 0 22px; padding: 11px 13px; color: #6b4900; background: #fff1c8; border: 1px solid #ead092; border-radius: 10px; font-size: 13px; font-weight: 800; line-height: 1.45; }
.pizza-service-limit-note { max-width: 680px; margin: -12px 0 24px; padding: 12px 14px; color: #fff7e2; background: linear-gradient(135deg,rgba(183,24,31,.82),rgba(103,14,18,.88)); border: 1px solid rgba(255,226,178,.42); border-radius: 11px; font-size: 13px; font-weight: 900; line-height: 1.45; box-shadow: 0 10px 30px rgba(0,0,0,.16); }
.pizza-service-limit-note.is-sold-out { background: linear-gradient(135deg,rgba(105,14,18,.94),rgba(47,8,10,.95)); }
.checkout-pizza-service-limit { margin: -12px 0 22px; padding: 11px 13px; color: #6f171b; background: #fff0e1; border: 1px solid #e8b99d; border-radius: 10px; font-size: 13px; font-weight: 850; line-height: 1.45; }
.checkout-pizza-service-limit.is-sold-out { color: #801319; background: #ffe5e6; border-color: #e7aeb1; }
.service-icon { width: 38px; height: 38px; display: grid; place-items: center; flex: 0 0 auto; color: var(--black); background: var(--cream); border-radius: 50%; font-size: 20px; font-weight: 900; }
.primary-cta, .primary-button { display: inline-flex; justify-content: center; align-items: center; min-height: 52px; padding: 0 24px; color: white; background: linear-gradient(135deg, var(--red), #a70c12); border: 0; border-radius: 12px; box-shadow: 0 12px 30px rgba(215,25,32,.25); text-decoration: none; font-weight: 900; cursor: pointer; }
.primary-button:hover, .primary-cta:hover { filter: brightness(1.08); transform: translateY(-1px); }
.primary-button:disabled { cursor: wait; opacity: .55; transform: none; }
.primary-button.full { width: 100%; }
.hero-card { justify-self: center; width: min(470px, 100%); padding: 25px; text-align: center; background: linear-gradient(145deg, rgba(255,255,255,.12), rgba(255,255,255,.035)); border: 1px solid rgba(255,255,255,.17); border-radius: 34px; box-shadow: 0 35px 90px rgba(0,0,0,.45); backdrop-filter: blur(6px); transform: rotate(1.5deg); }
/* Logo fourni par Gastonello : affichage circulaire propre, sans recouvrement ni liseré ajouté. */
.hero-logo-frame {
  width: min(390px, 100%);
  aspect-ratio: 1;
  display: block;
  margin: 0 auto;
  overflow: hidden;
  background: #000;
  border-radius: 50%;
  box-shadow: 0 22px 34px rgba(0,0,0,.48);
}
.hero-logo-frame img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  border: 0;
  border-radius: 50%;
  filter: none;
}
.hero-badges { display: flex; justify-content: center; gap: 14px; margin-top: 17px; color: #e7e0d7; font-size: 13px; font-weight: 700; }
.order-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; max-width: 1120px; margin: -36px auto 0; position: relative; z-index: 3; overflow: hidden; background: #ded6cb; border-radius: 18px; box-shadow: var(--shadow); }
.order-strip div { display: flex; align-items: center; gap: 14px; padding: 25px 30px; background: white; font-weight: 800; }
.order-strip b { width: 36px; height: 36px; display: grid; place-items: center; flex: 0 0 auto; color: white; background: var(--red); border-radius: 50%; }
.menu-section { max-width: 1280px; margin: 0 auto; padding: 105px 32px 80px; }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: 30px; margin-bottom: 32px; }
h2 { margin-bottom: 0; font: 900 clamp(35px, 4vw, 54px)/1.05 Georgia, serif; letter-spacing: -.025em; }
.ingredient-search { position: relative; width: min(330px, 100%); z-index: 20; }
.search-box { display: flex; align-items: center; gap: 9px; width: 100%; padding: 0 14px; background: white; border: 1px solid var(--line); border-radius: 12px; }
.search-box:focus-within { border-color: var(--red); box-shadow: 0 0 0 3px rgba(177, 30, 32, .12); }
.search-box input { width: 100%; height: 48px; border: 0; outline: 0; background: transparent; }
.ingredient-suggestions { position: absolute; top: calc(100% + 7px); left: 0; right: 0; max-height: 310px; overflow-y: auto; padding: 7px; background: #fffdf8; border: 1px solid var(--line); border-radius: 12px; box-shadow: 0 14px 34px rgba(0, 0, 0, .18); }
.ingredient-suggestion { display: flex; align-items: center; width: 100%; min-height: 40px; padding: 9px 11px; border: 0; border-radius: 8px; background: transparent; color: var(--ink); font: inherit; text-align: left; cursor: pointer; }
.ingredient-suggestion::before { content: '⌕'; margin-right: 9px; color: var(--red); font-weight: 800; }
.ingredient-suggestion:hover, .ingredient-suggestion.active { background: rgba(177, 30, 32, .09); color: var(--red); }
.ingredient-suggestions[hidden] { display: none; }
.category-tabs {
  display: flex;
  gap: 9px;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 4px 1px 6px;
  scroll-behavior: smooth;
  scroll-snap-type: x proximity;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.category-tabs::-webkit-scrollbar { display: none; width: 0; height: 0; }
.category-tab { flex: 0 0 auto; scroll-snap-align: start; padding: 11px 17px; background: white; border: 1px solid var(--line); border-radius: 999px; cursor: pointer; font-weight: 800; }
.category-tab.active { color: white; background: var(--black); border-color: var(--black); }
.menu-category { margin: 32px 0 58px; scroll-margin-top: 130px; }
.category-title { display: flex; align-items: center; gap: 14px; margin-bottom: 20px; }
.category-title h3 { margin: 0; font: 900 30px/1 Georgia, serif; }
.category-line { height: 4px; width: 64px; border-radius: 999px; background: var(--red); }
.category-line.green { background: var(--green); }
.product-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.product-card { min-height: 225px; display: flex; flex-direction: column; padding: 22px; background: white; border: 1px solid var(--line); border-radius: 18px; box-shadow: 0 8px 30px rgba(45,34,24,.045); transition: .2s ease; overflow: hidden; }
.product-card.has-image { padding-top: 0; }
.product-card-image { height: 180px; margin: 0 -22px 20px; overflow: hidden; background: #eee7dd; }
.product-card-image img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .35s ease; }
.product-card:hover .product-card-image img { transform: scale(1.035); }
.product-card:hover { border-color: #c9b99f; transform: translateY(-3px); box-shadow: 0 15px 40px rgba(45,34,24,.09); }
.product-card.unavailable { opacity: .52; filter: grayscale(.5); }
.product-topline { display: flex; align-items: start; justify-content: space-between; gap: 14px; }
.product-card h4 { margin: 0; font-size: 20px; letter-spacing: -.01em; text-transform: uppercase; }
.product-card .price { color: var(--red); font-size: 18px; font-weight: 950; white-space: nowrap; }
.product-card p { flex: 1; margin: 12px 0 20px; color: var(--muted); line-height: 1.5; }
.product-card footer { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 0; background: none; border: 0; color: inherit; }
.tags { display: flex; gap: 6px; flex-wrap: wrap; }
.tag { padding: 5px 8px; color: #5a5148; background: #f3eee7; border-radius: 999px; font-size: 11px; font-weight: 800; }
.tag-tone-cream { color: #5a5148; background: #f3eee7; }
.tag-tone-red { color: #8d1118; background: #ffe1e3; }
.tag-tone-green { color: #115e31; background: #dff4e5; }
.tag-tone-gold { color: #6f4b00; background: #ffedbd; }
.tag-tone-black { color: #fff; background: #1a1a1a; }
.tag-tone-blue { color: #174d82; background: #dcecff; }
.tag-tone-purple { color: #63327d; background: #eee0f5; }
.tag-tone-pink { color: #8a3156; background: #f9dfeb; }
.tag-tone-orange { color: #7d3b00; background: #ffe3c2; }
.tag-tone-turquoise { color: #075f61; background: #d8f2f0; }
.tag-tone-brown { color: #5d3927; background: #eadfd6; }
.tag-tone-gray { color: #4f555b; background: #e7eaed; }
.add-button { width: 42px; height: 42px; flex: 0 0 auto; color: white; background: var(--black); border: 0; border-radius: 50%; cursor: pointer; font-size: 24px; line-height: 1; }
.add-button:hover { background: var(--red); }
.loading-card { padding: 40px; text-align: center; color: var(--muted); background: white; border: 1px solid var(--line); border-radius: 18px; }
.values-section { display: grid; grid-template-columns: repeat(3, 1fr); max-width: 1280px; margin: 0 auto; padding: 15px 32px 100px; gap: 18px; }
.values-section article { padding: 30px; background: #f1e6d4; border-radius: 20px; }
.values-section article:nth-child(2) { color: white; background: var(--black); }
.values-section article:nth-child(3) { background: #f2dedf; }
.values-section article > span { font-size: 34px; }
.values-section h3 { margin: 17px 0 9px; font-size: 21px; }
.values-section p { margin: 0; color: inherit; opacity: .75; line-height: 1.55; }
.info-section { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 50px; max-width: 1280px; margin: 0 auto 100px; padding: 60px; color: white; background: var(--black); border-radius: 30px; overflow: hidden; }
.info-section > * { min-width: 0; }
.info-section p { max-width: 650px; color: #c8c1b9; font-size: 17px; line-height: 1.6; }
.text-link { color: var(--cream); font-weight: 900; }
.info-card { padding: 28px; color: var(--black); background: var(--cream); border-radius: 20px; }
.info-card h3 { margin-bottom: 7px; }
.info-card p { color: #514332; font-size: 15px; }
/* V5.13.1.38 — réseaux sociaux sur la page d’accueil */
.social-section {
  max-width: 1280px;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(430px, .95fr);
  align-items: center;
  gap: 44px;
  margin: 0 auto 100px;
  padding: 48px 52px;
  color: #fff;
  background: linear-gradient(135deg, #161616, #090909);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 28px;
  box-shadow: 0 24px 70px rgba(0,0,0,.18);
}
.social-section .eyebrow { margin-bottom: 10px; }
.social-section h2 { max-width: 720px; margin-bottom: 15px; }
.social-section-copy > p:last-child { max-width: 690px; margin: 0; color: rgba(255,255,255,.68); font-size: 16px; line-height: 1.6; }
.social-links { display: grid; gap: 12px; }
.social-card {
  min-height: 86px;
  display: grid;
  grid-template-columns: 52px minmax(0,1fr) auto;
  align-items: center;
  gap: 15px;
  padding: 16px 18px;
  color: #fff;
  background: rgba(255,255,255,.065);
  border: 1px solid rgba(255,255,255,.13);
  border-radius: 17px;
  text-decoration: none;
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}
.social-card:hover { transform: translateY(-2px); border-color: var(--cream); background: rgba(232,205,160,.11); }
.social-card:focus-visible { outline: 3px solid rgba(232,205,160,.35); outline-offset: 3px; }
.social-icon { width: 52px; height: 52px; display: grid; place-items: center; color: #111; background: var(--cream); border-radius: 15px; }
.social-icon svg { width: 27px; height: 27px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.social-icon .social-icon-dot { fill: currentColor; stroke: none; }
.social-icon-facebook svg { fill: currentColor; stroke: none; }
.social-icon-tiktok svg { fill: currentColor; stroke: none; }
.social-card-copy { min-width: 0; display: grid; gap: 3px; }
.social-card-copy small { color: rgba(255,255,255,.62); font-size: 11px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.social-card-copy strong { overflow: hidden; text-overflow: ellipsis; font-size: 17px; white-space: nowrap; }
.social-card-arrow { color: var(--cream); font-size: 24px; line-height: 1; }
@media (max-width: 1020px) {
  .social-section { grid-template-columns: 1fr; margin-inline: 20px; }
}
@media (max-width: 680px) {
  .social-section { margin: 0 14px 70px; padding: 32px 22px; border-radius: 22px; }
  .social-section h2 { font-size: 35px; }
  .social-card { min-height: 78px; grid-template-columns: 46px minmax(0,1fr) auto; padding: 14px; }
  .social-icon { width: 46px; height: 46px; border-radius: 13px; }
  .social-icon svg { width: 24px; height: 24px; }
}

/* V5.13.1.45 — footer Gastonello harmonisé */
.site-footer {
  padding: 0 max(32px, calc((100vw - 1280px)/2));
  color: rgba(255,255,255,.72);
  background: linear-gradient(180deg, #101010 0%, #080808 100%);
  border-top: 1px solid rgba(232,205,160,.18);
  font-size: 13px;
}
.footer-shell {
  display: grid;
  grid-template-columns: minmax(260px, 1.15fr) minmax(280px, 1fr) minmax(190px, .65fr);
  gap: clamp(38px, 6vw, 88px);
  padding: 52px 0 42px;
}
.footer-identity { display: grid; align-content: start; justify-items: start; gap: 14px; }
.footer-brand { display: inline-flex; align-items: center; gap: 13px; color: #fff; text-decoration: none; }
.footer-brand img { width: 52px; height: 52px; display: block; border-radius: 50%; }
.footer-brand span { display: grid; gap: 4px; }
.footer-brand strong { font: 900 20px/1 Georgia, serif; letter-spacing: .05em; text-transform: uppercase; }
.footer-brand small { color: var(--cream); font-size: 10px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.footer-identity p { margin: 0; color: rgba(255,255,255,.58); line-height: 1.6; }
.footer-phone { color: var(--cream); font-size: 15px; font-weight: 900; text-decoration: none; }
.footer-phone:hover { color: #fff; }
.footer-column { display: grid; align-content: start; justify-items: start; gap: 11px; }
.footer-title { margin-bottom: 5px; color: #fff; font-size: 11px; font-weight: 950; letter-spacing: .15em; text-transform: uppercase; }
.footer-column a { color: rgba(255,255,255,.68); text-decoration: none; line-height: 1.4; transition: color .18s ease, transform .18s ease; }
.footer-column a:hover { color: var(--cream); transform: translateX(2px); }
.footer-menu-link { display: inline-flex; align-items: center; gap: 7px; color: var(--cream) !important; font-weight: 850; }
.footer-menu-link span { font-size: 14px; }
.footer-admin-link { margin-top: 12px; padding-top: 14px; color: rgba(255,255,255,.42) !important; border-top: 1px solid rgba(255,255,255,.09); font-size: 11px; }
.footer-admin-link a { color: inherit !important; }
.footer-admin-link span { margin: 0 7px; color: rgba(255,255,255,.28); }
.footer-bottom { display: flex; justify-content: space-between; gap: 24px; padding: 18px 0 24px; color: rgba(255,255,255,.38); border-top: 1px solid rgba(255,255,255,.08); font-size: 11px; }
@media (max-width: 900px) {
  .footer-shell { grid-template-columns: 1fr 1fr; }
  .footer-identity { grid-column: 1 / -1; }
}
@media (max-width: 620px) {
  .site-footer { padding-inline: 20px; }
  .footer-shell { grid-template-columns: 1fr; gap: 34px; padding: 42px 0 34px; }
  .footer-identity { grid-column: auto; }
  .footer-bottom { flex-direction: column; gap: 7px; }
}
.floating-cart { position: fixed; z-index: 80; left: 50%; bottom: max(18px, env(safe-area-inset-bottom)); width: min(560px, calc(100% - 28px)); min-height: 62px; display: none; justify-content: space-between; align-items: center; gap: 18px; padding: 10px 18px; color: white; background: var(--red); border: 0; border-radius: 16px; box-shadow: 0 20px 50px rgba(130,0,0,.35); cursor: pointer; transform: translateX(-50%); }
.floating-cart.visible { display: flex; }
.floating-cart span { font-size: 13px; opacity: .88; }
.floating-cart b { display: inline-grid; width: 24px; height: 24px; place-items: center; margin-right: 4px; color: var(--red); background: white; border-radius: 50%; }
.drawer-backdrop { position: fixed; inset: 0; z-index: 110; background: rgba(0,0,0,.58); backdrop-filter: blur(3px); }
.cart-drawer { position: fixed; z-index: 120; top: 0; right: 0; width: min(475px, 100%); height: 100dvh; display: flex; flex-direction: column; padding: 25px; background: var(--surface); box-shadow: -25px 0 70px rgba(0,0,0,.25); transform: translateX(105%); transition: transform .28s ease; }
.cart-drawer.open { transform: translateX(0); }
.drawer-header { display: flex; justify-content: space-between; align-items: start; padding-bottom: 18px; border-bottom: 1px solid var(--line); }
.drawer-header h2 { font-size: 38px; }
.icon-button { width: 40px; height: 40px; display: grid; place-items: center; padding: 0; color: var(--black); background: #eee7dd; border: 0; border-radius: 50%; cursor: pointer; font-size: 28px; line-height: 1; }
.cart-lines { flex: 1; overflow-y: auto; padding: 14px 0; }
.cart-line { display: grid; grid-template-columns: 1fr auto; gap: 12px; padding: 16px 0; border-bottom: 1px solid var(--line); }
.cart-line h4 { margin: 0 0 5px; font-size: 16px; text-transform: uppercase; }
.cart-line p { margin: 0 0 5px; color: var(--muted); font-size: 12px; line-height: 1.45; }
.cart-line strong { color: var(--red); }
.line-actions { display: flex; justify-content: flex-end; align-items: center; gap: 7px; margin-top: 9px; }
.line-actions button { width: 30px; height: 30px; border: 1px solid var(--line); background: white; border-radius: 50%; cursor: pointer; }
.line-actions .remove-line { width: auto; padding: 0 7px; color: var(--muted); border: 0; background: transparent; font-size: 12px; text-decoration: underline; }
.empty-cart { flex: 1; display: grid; place-content: center; text-align: center; color: var(--muted); }
.empty-cart span { font-size: 54px; }
.empty-cart h3 { margin: 10px 0 5px; color: var(--black); }
.drawer-footer { padding-top: 20px; border-top: 1px solid var(--line); }
.subtotal-row { display: flex; justify-content: space-between; margin-bottom: 8px; font-size: 19px; }
.delivery-note { color: var(--muted); font-size: 12px; }
dialog { padding: 0; border: 0; border-radius: 24px; box-shadow: var(--shadow); }
dialog::backdrop { background: rgba(0,0,0,.65); backdrop-filter: blur(4px); }
.promo-dialog { width: min(760px, calc(100% - 24px)); max-height: 92dvh; overflow: auto; background: var(--surface); }
.promo-dialog-shell { position: relative; display: grid; grid-template-columns: minmax(250px, .9fr) minmax(300px, 1.1fr); min-height: 430px; }
.promo-dialog-image { min-height: 430px; overflow: hidden; background: #eee7dd; }
.promo-dialog-image img { width: 100%; height: 100%; display: block; object-fit: cover; }
.promo-dialog-content { display: flex; flex-direction: column; justify-content: center; padding: 48px 42px; }
.promo-dialog-content h2 { margin-bottom: 18px; font-size: clamp(34px, 5vw, 52px); }
.promo-dialog-content > p:not(.eyebrow) { margin-bottom: 26px; color: var(--muted); font-size: 17px; line-height: 1.6; white-space: pre-line; }
.promo-dialog-content .primary-button { align-self: flex-start; }
.promo-close { position: absolute; z-index: 2; top: 16px; right: 16px; }
.promo-dialog-image[hidden] + .promo-dialog-content { grid-column: 1 / -1; min-height: 390px; text-align: center; align-items: center; }
.promo-dialog-image[hidden] + .promo-dialog-content .primary-button { align-self: center; }
.product-dialog { width: min(640px, calc(100% - 24px)); max-height: 92dvh; overflow: auto; }
.product-dialog form, .checkout-dialog form { position: relative; padding: 35px; }
.dialog-close { position: absolute; top: 18px; right: 18px; }
.product-dialog-image { height: 260px; margin: 0 0 24px; overflow: hidden; background: #eee7dd; border-radius: 16px; }
.product-dialog-image img { width: 100%; height: 100%; display: block; object-fit: cover; }
.product-dialog h2 { padding-right: 45px; font-size: 42px; text-transform: uppercase; }
.product-dialog-description { margin: 15px 0; color: var(--muted); font-size: 17px; line-height: 1.55; }
.product-price { margin-bottom: 25px; color: var(--red); font-size: 25px; font-weight: 950; }
fieldset { margin: 0 0 22px; padding: 0; border: 0; }
legend, .field-label { display: block; margin-bottom: 9px; color: #37322d; font-size: 13px; font-weight: 850; }
.supplement-choices { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; max-height: 250px; overflow-y: auto; }
.supplement-choice { display: flex; align-items: center; gap: 9px; padding: 11px; background: #f6f1ea; border: 1px solid transparent; border-radius: 10px; cursor: pointer; }
.supplement-choice:has(input:checked) { border-color: var(--red); background: #fff1f1; }
.supplement-choice span { margin-left: auto; color: var(--red); font-size: 12px; font-weight: 900; }
textarea, input, select { width: 100%; color: #191613; background: white; border: 1px solid #d8cfc3; border-radius: 10px; outline: 0; }
textarea { padding: 12px; resize: vertical; }
input, select { height: 47px; padding: 0 12px; }
textarea:focus, input:focus, select:focus { border-color: var(--red); box-shadow: 0 0 0 3px rgba(215,25,32,.1); }
.quantity-row { display: flex; justify-content: space-between; align-items: center; margin: 24px 0; font-weight: 850; }
.quantity-control { display: flex; align-items: center; gap: 12px; }
.quantity-control button { width: 38px; height: 38px; border: 1px solid var(--line); background: white; border-radius: 50%; cursor: pointer; font-size: 20px; }
.quantity-control output { min-width: 25px; text-align: center; font-weight: 900; }
.checkout-dialog { width: min(760px, calc(100% - 20px)); max-height: 94dvh; overflow: auto; }
.checkout-dialog h2 { padding-right: 45px; font-size: 40px; }
.checkout-switch { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 24px 0; padding: 5px; background: #eee7dd; border-radius: 12px; }
.checkout-switch button { min-height: 46px; border: 0; border-radius: 9px; background: transparent; cursor: pointer; font-weight: 850; }
.checkout-switch button.active { color: white; background: var(--black); }
.checkout-block { margin: 22px 0; padding: 22px; background: #f7f2eb; border-radius: 16px; }
.checkout-block h3 { margin-bottom: 17px; font-size: 18px; }
.two-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.promotion-code-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px}.promotion-code-entry>.field-label{margin-bottom:0}.promotion-code-actions{min-height:47px;display:flex;align-items:stretch;gap:8px}.promotion-code-actions .secondary-button{min-height:47px;white-space:nowrap}
.field-label { margin-bottom: 12px; }
.field-label input, .field-label select, .field-label textarea { margin-top: 7px; font-weight: 500; }
.field-help { margin: 0; color: var(--muted); font-size: 12px; }
.secondary-button { min-height: 45px; padding: 0 17px; color: var(--black); background: var(--cream); border: 0; border-radius: 10px; cursor: pointer; font-weight: 900; }
.quote-result { margin-top: 13px; padding: 14px; color: #164421; background: #e5f6e9; border-radius: 10px; line-height: 1.45; }
.legal-confirmations { display: grid; gap: 10px; padding: 0; background: none; font-size: 13px; }
.legal-confirmations label { display: flex; align-items: start; gap: 9px; }
.legal-confirmations input { width: 17px; height: 17px; margin: 2px 0 0; flex: 0 0 auto; }
.checkout-summary { display: grid; gap: 9px; padding: 18px 0; border-top: 1px solid var(--line); }
.checkout-summary > div { display: flex; justify-content: space-between; }
/* V5.13.1.68 — les lignes de livraison restent absentes du récapitulatif en retrait. */
.checkout-summary > div[hidden] { display: none !important; }
.checkout-total { padding-top: 10px; border-top: 1px solid var(--line); font-size: 23px; }
.checkout-total strong { color: var(--red); }
.form-error { margin-bottom: 12px; padding: 13px; color: #851018; background: #ffe7e8; border-radius: 10px; font-size: 14px; }
.secure-payment { margin: 10px 0 0; text-align: center; color: var(--muted); font-size: 11px; }
.toast { position: fixed; z-index: 200; left: 50%; bottom: 95px; max-width: calc(100% - 30px); padding: 13px 18px; color: white; background: var(--black); border-radius: 10px; box-shadow: var(--shadow); opacity: 0; pointer-events: none; transform: translate(-50%, 15px); transition: .2s ease; }
.toast.show { opacity: 1; transform: translate(-50%, 0); }
@media (max-width: 1020px) {
  .site-header { grid-template-columns: 1fr auto; }
  .site-header nav { display: none; }
  .hero { grid-template-columns: 1fr; gap: 45px; padding-top: 55px; }
  .hero-card { width: min(500px, 90%); }
  .product-grid { grid-template-columns: repeat(2, 1fr); }
  .info-section { margin-inline: 20px; }
  footer { flex-wrap: wrap; }
}
@media (max-width: 680px) {
  .demo-banner { font-size: 11px; }
  .promotion-banner-inner{min-height:0;padding:13px 18px;flex-direction:column;gap:10px}.promotion-banner-copy{text-align:center}.promotion-banner-copy>strong{font-size:16px}.promotion-banner-code{width:min(290px,100%);min-width:0}.promotion-code-entry{grid-template-columns:1fr}.promotion-code-actions{width:100%;min-height:0}.promotion-code-actions .secondary-button{flex:1}
  .site-header { height: 69px; padding: 0 14px; }
  .demo-banner:not([hidden]) + .site-header { top: 30px; }
  .brand img { width: 54px; height: 54px; }
  .brand strong { font-size: 17px; }
  .brand small { font-size: 9px; }
  .cart-pill span { display: none; }
  .hero { min-height: auto; grid-template-columns: 1fr; gap: 38px; padding: 50px 18px 80px; }
  h1 { font-size: 44px; }
  .hero-text { font-size: 16px; }
  .service-switch, body.delivery-unavailable .service-switch { max-width: 100%; grid-template-columns: 1fr; }
  .hero-card { width: 100%; padding: 16px; border-radius: 25px; }
  .hero-logo-frame { width: 310px; }
  .hero-badges { flex-wrap: wrap; }
  .order-strip { grid-template-columns: 1fr; margin: -35px 14px 0; }
  .order-strip div { padding: 16px 20px; }
  .menu-section { padding: 75px 14px 65px; }
  .section-heading { align-items: stretch; flex-direction: column; }
  .ingredient-search, .search-box { width: 100%; }
  .product-grid { grid-template-columns: 1fr; }
  .product-card { min-height: 205px; }
  .values-section { grid-template-columns: 1fr; padding: 0 14px 70px; }
  .info-section { grid-template-columns: 1fr; gap: 30px; margin: 0 14px 80px; padding: 32px 22px; border-radius: 22px; }
  footer { padding: 30px 18px 105px; flex-direction: column; align-items: flex-start; }
  .footer-links { flex-direction: column; }
  .floating-cart.visible { display: flex; }
  .cart-drawer { padding: 20px 16px; }
  .product-dialog form, .checkout-dialog form { padding: 27px 18px; }
  .promo-dialog-shell { grid-template-columns: 1fr; }
  .promo-dialog-image { min-height: 240px; height: 240px; }
  .promo-dialog-content { padding: 34px 22px 30px; }
  .promo-dialog-content h2 { font-size: 34px; }
  .product-dialog h2, .checkout-dialog h2 { font-size: 32px; }
  .supplement-choices, .two-columns { grid-template-columns: 1fr; }
  .checkout-block { padding: 17px 14px; }
}


/* Horaires configurables — présentation V5.3 */
.hero-hours {
  display: grid;
  gap: 13px;
  margin-top: 20px;
  padding: 18px 20px 17px;
  color: var(--black);
  text-align: left;
  background: linear-gradient(145deg, #f3dfbb, var(--cream));
  border: 1px solid rgba(255,255,255,.5);
  border-radius: 16px;
  box-shadow: 0 10px 26px rgba(0,0,0,.16);
}
.hero-hours-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.hero-hours-head > div { min-width: 0; }
.hero-hours-eyebrow { display: block; margin-bottom: 3px; color: rgba(19,16,12,.62); font-size: 10px; font-weight: 900; letter-spacing: .11em; text-transform: uppercase; }
.hero-hours-head strong { display: block; font: 900 23px/1.05 Georgia, serif; }
.hero-hours-status { flex: 0 0 auto; padding: 6px 10px; color: #0e5827; background: rgba(21,147,55,.14); border: 1px solid rgba(21,147,55,.25); border-radius: 999px; font-size: 11px; font-weight: 900; }
.hero-hours-status.closed { color: #8f1117; background: rgba(215,25,32,.11); border-color: rgba(215,25,32,.22); }
.hero-hours-services { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.hero-hours-service { display: grid; gap: 4px; min-width: 0; padding: 11px 12px; background: rgba(255,255,255,.52); border: 1px solid rgba(67,45,18,.11); border-radius: 11px; }
.hero-hours-service > span { color: rgba(19,16,12,.62); font-size: 11px; font-weight: 900; text-transform: uppercase; }
.hero-hours-service strong { white-space: nowrap; font-size: 16px; line-height: 1.2; }
.hero-hours-service i { color: rgba(19,16,12,.45); font-style: normal; font-weight: 600; }
.hero-hours-closed { padding: 13px; text-align: center; background: rgba(255,255,255,.45); border: 1px solid rgba(67,45,18,.1); border-radius: 11px; font-weight: 900; }
.hero-hours-note { display: block; color: rgba(16,16,16,.62); font-size: 11px; font-weight: 750; line-height: 1.35; }

.weekly-hours-list { display: grid; gap: 9px; margin-top: 22px; }
.weekly-hours-row { display: grid; grid-template-columns: 125px 1fr; gap: 15px; align-items: center; padding: 12px 13px; border: 1px solid rgba(232,205,160,.17); border-radius: 12px; background: rgba(255,255,255,.045); }
.weekly-hours-row.today { border-color: rgba(232,205,160,.62); background: rgba(232,205,160,.10); box-shadow: inset 3px 0 0 var(--cream); }
.weekly-day { display: grid; gap: 3px; }
.weekly-day > strong { color: #fff; font-size: 14px; }
.weekly-day > small { color: var(--cream); font-size: 9px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.weekly-periods { display: flex; gap: 8px; flex-wrap: wrap; }
.weekly-period { display: inline-flex; align-items: center; gap: 8px; min-height: 34px; padding: 7px 10px; color: #fff; background: rgba(255,255,255,.075); border: 1px solid rgba(255,255,255,.08); border-radius: 9px; }
.weekly-period b { color: var(--cream); font-size: 10px; letter-spacing: .06em; text-transform: uppercase; }
.weekly-period strong { color: rgba(255,255,255,.9); font-size: 12px; white-space: nowrap; }
.weekly-period.closed-day { color: rgba(255,255,255,.5); background: rgba(255,255,255,.025); }
.weekly-period.closed-day b { color: rgba(255,255,255,.45); }

@media (max-width: 680px) {
  .hero-hours { padding: 16px; }
  .hero-hours-head strong { font-size: 22px; }
  .hero-hours-services { grid-template-columns: 1fr; }
  .hero-hours-service { grid-template-columns: 54px 1fr; align-items: center; gap: 10px; }
  .hero-hours-service > span { margin: 0; }
  .hero-hours-service strong { text-align: right; font-size: 17px; }
  .weekly-hours-row { grid-template-columns: 1fr; gap: 10px; padding: 13px; }
  .weekly-day { display: flex; align-items: center; justify-content: space-between; }
  .weekly-periods { display: grid; grid-template-columns: 1fr; }
  .weekly-period { justify-content: space-between; }
}
@media (max-width: 390px) {
  .hero-hours-head { align-items: flex-start; }
  .hero-hours-status { max-width: 120px; white-space: normal; text-align: center; }
  .hero-hours-service strong { font-size: 15px; }
}

/* V5.7 — cadre Livraison strict : aucune extension horizontale ou verticale */
.delivery-info-card {
  position: relative;
  align-self: start;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  height: 580px;
  min-height: 580px;
  max-height: 580px;
  overflow: hidden;
  isolation: isolate;
}
.delivery-info-card > h3,
.delivery-info-card > p {
  position: relative;
  z-index: 2;
}
.delivery-italy-art {
  position: absolute;
  z-index: 1;
  left: 28px;
  right: 28px;
  bottom: 22px;
  width: auto;
  height: 340px;
  max-width: calc(100% - 56px);
  max-height: 340px;
  margin: 0;
  overflow: hidden;
  background: #ead1a5;
  border: 1px solid rgba(81,67,50,.08);
  border-radius: 14px;
}
.delivery-italy-art::before {
  content: "";
  position: absolute;
  z-index: 2;
  inset: 0 0 auto;
  height: 22px;
  pointer-events: none;
  background: linear-gradient(to bottom, #ead1a5, rgba(234,209,165,0));
}
.delivery-italy-art img {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  display: block;
  object-fit: contain;
  object-position: center center;
}
@media (max-width: 680px) {
  .delivery-info-card {
    height: 540px;
    min-height: 540px;
    max-height: 540px;
  }
  .delivery-italy-art {
    left: 18px;
    right: 18px;
    bottom: 18px;
    height: 300px;
    max-width: calc(100% - 36px);
    max-height: 300px;
  }
}

/* V5.8 — illustration italienne fondue dans le fond du cadre, sans contour visible */
.delivery-italy-art {
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  overflow: hidden;
}
.delivery-italy-art::before,
.delivery-italy-art::after {
  content: none;
  display: none;
}
.delivery-italy-art img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain;
  object-position: center bottom;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}

/* V5.10 — accès direct à l’itinéraire Google Maps */
.location-actions {
  display: grid;
  justify-items: start;
  gap: 16px;
  margin-top: 22px;
}
.maps-route-button {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) auto;
  align-items: center;
  gap: 13px;
  width: min(100%, 470px);
  padding: 14px 16px;
  color: var(--black);
  text-decoration: none;
  background: var(--cream);
  border: 1px solid rgba(232,205,160,.68);
  border-radius: 14px;
  box-shadow: 0 10px 28px rgba(0,0,0,.20);
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.maps-route-button:hover {
  transform: translateY(-2px);
  background: #f0d8ad;
  box-shadow: 0 14px 34px rgba(0,0,0,.27);
}
.maps-route-button:focus-visible {
  outline: 3px solid var(--red);
  outline-offset: 3px;
}
.maps-route-icon {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  color: var(--cream);
  background: var(--red);
  border-radius: 50%;
}
.maps-route-icon svg {
  width: 23px;
  height: 23px;
  fill: currentColor;
}
.maps-route-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}
.maps-route-copy strong {
  font-size: 16px;
  line-height: 1.2;
}
.maps-route-copy small {
  color: #65533d;
  font-size: 13px;
  line-height: 1.35;
}
.maps-route-arrow {
  color: var(--red);
  font-size: 25px;
  font-weight: 800;
  line-height: 1;
}
@media (max-width: 520px) {
  .maps-route-button {
    grid-template-columns: 40px minmax(0, 1fr) auto;
    gap: 11px;
    width: 100%;
    padding: 13px;
  }
  .maps-route-icon {
    width: 40px;
    height: 40px;
  }
  .maps-route-copy strong { font-size: 15px; }
  .maps-route-copy small { font-size: 12px; }
}


/* V5.11 — accès GPS précis également placé à côté de « Voir la carte » */
.hero-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 12px;
}
.hero-route-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 52px;
  padding: 0 22px;
  color: var(--cream);
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(232,205,160,.65);
  border-radius: 12px;
  text-decoration: none;
  font-weight: 900;
  box-shadow: 0 12px 30px rgba(0,0,0,.18);
  transition: transform .18s ease, background .18s ease, border-color .18s ease;
}
.hero-route-cta:hover {
  color: white;
  background: rgba(232,205,160,.14);
  border-color: var(--cream);
  transform: translateY(-1px);
}
.hero-route-cta:focus-visible {
  outline: 3px solid var(--cream);
  outline-offset: 3px;
}
.hero-route-icon {
  display: grid;
  place-items: center;
  width: 25px;
  height: 25px;
  flex: 0 0 auto;
  color: var(--red);
}
.hero-route-icon svg {
  width: 23px;
  height: 23px;
  fill: currentColor;
}
@media (max-width: 520px) {
  .hero-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }
  .hero-actions .primary-cta,
  .hero-route-cta {
    width: 100%;
    min-width: 0;
    padding-inline: 14px;
  }
}
@media (max-width: 360px) {
  .hero-actions { grid-template-columns: 1fr; }
}

/* V5.13.1.9 — saisie structurée et fiable de l’adresse de livraison */
.address-street-grid{display:grid;grid-template-columns:minmax(110px,.35fr) minmax(0,1.65fr);gap:14px}
@media(max-width:640px){.address-street-grid{grid-template-columns:1fr}}


/* V5.13.1.13 — fidélité */
.nav-loyalty-link{border:0;background:transparent;color:inherit;font:inherit;font-weight:800;cursor:pointer;padding:0}
.nav-loyalty-link:hover{color:var(--red)}
.loyalty-dialog{width:min(520px,calc(100% - 24px));border:0;border-radius:24px;padding:0;box-shadow:var(--shadow)}
.loyalty-dialog::backdrop,.admin-loyalty-dialog::backdrop{background:rgba(0,0,0,.72);backdrop-filter:blur(4px)}
.loyalty-dialog form{position:relative;padding:32px;background:var(--surface)}
.loyalty-dialog h2{margin:0 0 10px}.loyalty-dialog p{color:var(--muted);line-height:1.55}
/* V5.13.1.14 — fidélité plus compacte et harmonisée */
.loyalty-checkout-block{padding:18px;border:1px solid rgba(67,45,18,.10);background:#f7f2eb}
.loyalty-checkout-block h3{margin-bottom:7px}
.loyalty-checkout-block .field-help{max-width:62ch;line-height:1.45}
.loyalty-checkout-block > .secondary-button{min-height:39px;margin-top:12px;padding:0 13px;border:1px solid rgba(67,45,18,.10);font-size:12px}
.loyalty-result{display:grid;gap:4px;margin-top:12px;padding:12px 13px;border:1px solid rgba(28,28,28,.11);border-radius:10px;background:#fff}
.loyalty-result strong{font-size:1rem}.loyalty-result span{color:var(--muted);font-size:12px;line-height:1.4}
.loyalty-result .loyalty-error{color:#a00;font-weight:800}
.loyalty-code-step{display:grid;gap:10px;margin-top:12px;padding:12px;border:1px solid rgba(215,25,32,.18);border-radius:12px;background:#fff8f8}
.loyalty-code-message{margin:0!important;color:var(--muted);font-size:12px;line-height:1.45}
.loyalty-code-step .field-label{margin:0}.loyalty-code-step input{letter-spacing:.16em;font-weight:900}
.loyalty-resend-button{justify-self:center;border:0;background:transparent;color:var(--red);font-size:12px;font-weight:900;cursor:pointer;text-decoration:underline}
.loyalty-code-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end}
.loyalty-code-row .secondary-button{min-height:43px;margin:0;padding:0 16px}
@media(max-width:560px){.loyalty-code-row{grid-template-columns:1fr}.loyalty-code-row .secondary-button{width:100%}}
.loyalty-reward-choice{display:grid;grid-template-columns:18px minmax(0,1fr);gap:10px;align-items:center;margin-top:12px;padding:10px 12px;border:1px solid rgba(28,28,28,.14);border-radius:10px;background:#fff;cursor:pointer;transition:border-color .18s ease,background .18s ease,box-shadow .18s ease}
.loyalty-reward-choice:hover{border-color:rgba(215,25,32,.35)}
.loyalty-reward-choice:has(input:checked){border-color:rgba(215,25,32,.45);background:#fff5f5;box-shadow:inset 3px 0 0 var(--red)}
.loyalty-reward-choice input[type="checkbox"]{appearance:auto;width:18px;height:18px;min-width:18px;margin:0;padding:0;border:0;border-radius:4px;box-shadow:none;accent-color:var(--red)}
.loyalty-reward-choice input[type="checkbox"]:focus{box-shadow:none;outline:2px solid rgba(215,25,32,.22);outline-offset:2px}
.loyalty-reward-copy{display:grid;gap:2px;min-width:0;line-height:1.25}
.loyalty-reward-copy strong{font-size:13px;font-weight:900}
.loyalty-reward-copy small{color:var(--muted);font-size:11px;font-weight:650}
#loyaltyDiscountRow strong{color:var(--green)}
.admin-loyalty-dialog{width:min(920px,calc(100% - 24px));max-height:90dvh;border:0;border-radius:24px;padding:0;box-shadow:var(--shadow)}
.admin-loyalty-shell{position:relative;padding:28px;background:var(--surface);overflow:auto;max-height:90dvh}
.admin-loyalty-shell h2{margin-top:0}.loyalty-detail-button{white-space:nowrap;padding:8px 10px}
.loyalty-history-table .loyalty-points-cell{font-weight:900}.loyalty-history-table .positive{color:var(--green)}.loyalty-history-table .negative{color:var(--red)}
@media(max-width:760px){.site-header nav .nav-loyalty-link{display:none}.loyalty-dialog form{padding:26px 20px}.admin-loyalty-shell{padding:24px 16px}}



/* V5.13.1.15 — page Avis clients Google */
.reviews-page{background:var(--black)}
.reviews-header{position:relative}
.reviews-main{min-height:calc(100vh - 84px);background:var(--black)}
.reviews-hero{
  min-height:calc(100vh - 84px - 108px);
  display:grid;
  grid-template-columns:minmax(0,1.4fr) minmax(260px,.6fr);
  gap:42px;
  align-items:center;
  padding:82px max(5vw,24px);
  color:#fff;
  background-color:var(--black);
  background-image:linear-gradient(100deg,rgba(0,0,0,.98) 20%,rgba(0,0,0,.86) 60%,rgba(0,0,0,.72)),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 240 240'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.075' stroke-width='2'%3E%3Ccircle cx='40' cy='45' r='24'/%3E%3Ccircle cx='32' cy='39' r='3'/%3E%3Ccircle cx='48' cy='51' r='3'/%3E%3Cpath d='M122 18c15 16 21 35 18 58-22-6-38-18-48-36 8-8 18-15 30-22Z'/%3E%3Cpath d='M92 40c20 3 36 14 48 36'/%3E%3Cpath d='M27 159 82 97l21 92Z'/%3E%3Cpath d='M42 143c18 15 37 22 58 21'/%3E%3Ccircle cx='76' cy='139' r='5'/%3E%3Cpath d='M167 151c13-20 30-29 50-26-1 21-13 37-34 48'/%3E%3Cpath d='M168 150c19 2 35-5 49-25'/%3E%3C/g%3E%3C/svg%3E");
}
.reviews-hero h1{margin:8px 0 18px;font-size:clamp(42px,6vw,76px);line-height:.98}
.reviews-hero h1 em{color:var(--cream);font-family:Georgia,serif;font-weight:500}
.reviews-hero>div>p:last-child{max-width:680px;color:rgba(255,255,255,.72);font-size:18px;line-height:1.6}
.reviews-summary{display:grid;justify-items:center;gap:5px;padding:28px 24px;border:1px solid rgba(255,255,255,.16);border-radius:22px;background:rgba(255,255,255,.07);backdrop-filter:blur(8px)}
.reviews-google-label{font-size:12px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:var(--cream)}
.reviews-summary-rating{font-size:56px;line-height:1}
.reviews-summary small{color:rgba(255,255,255,.7);text-align:center}
.review-stars{color:#e0a321;letter-spacing:.12em;font-size:17px}
.reviews-summary-link{display:inline-flex;align-items:center;justify-content:center;min-height:40px;margin-top:11px;padding:0 20px;color:#fff;background:var(--red);border:1px solid var(--red);border-radius:10px;text-decoration:none;font-size:13px;font-weight:900;letter-spacing:.02em;box-shadow:0 8px 20px rgba(215,25,32,.24);transition:filter .18s ease,transform .18s ease}
.reviews-summary-link:hover{filter:brightness(1.08);transform:translateY(-1px)}
@media(max-width:900px){.reviews-hero{min-height:auto;grid-template-columns:1fr}.reviews-summary{justify-self:start;width:min(100%,360px)}}
@media(max-width:620px){.reviews-hero{padding:56px 20px}.reviews-header nav a:not(.phone-link){display:none}}



/* V5.13.1.25 — progression fidélité et frais Uber transparents */
.loyalty-progress-copy{display:grid;gap:4px}
.loyalty-progress-copy strong{font-size:1rem}
.loyalty-progress-copy span{color:var(--muted);font-size:12px;line-height:1.45}
.loyalty-progress{height:10px;margin-top:7px;overflow:hidden;border-radius:999px;background:#ece4d9;box-shadow:inset 0 0 0 1px rgba(67,45,18,.08)}
.loyalty-progress>span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--red),#ef5a48);transition:width .35s ease}
.delivery-fee-breakdown{display:grid;gap:7px;color:var(--black)}
.delivery-fee-breakdown>div{display:flex;justify-content:space-between;gap:18px;align-items:baseline}
.delivery-fee-breakdown span{font-size:13px;font-weight:750;text-wrap:balance}
.delivery-fee-breakdown strong{white-space:nowrap;font-size:14px}
.delivery-fee-breakdown>div:nth-child(2) strong{color:var(--green)}
.delivery-fee-breakdown .delivery-fee-billed{margin-top:2px;padding-top:8px;border-top:1px solid rgba(22,68,33,.18)}
.delivery-fee-breakdown .delivery-fee-billed strong{color:var(--red);font-size:16px}
.ethical-delivery-note{display:flex;align-items:flex-start;gap:10px;margin:13px 0 0;padding:11px 12px;border:1px solid rgba(22,68,33,.18);border-radius:12px;background:rgba(255,255,255,.58);color:#184d28}
.ethical-delivery-icon{display:inline-flex;align-items:center;justify-content:center;width:27px;height:27px;flex:0 0 27px;border-radius:50%;background:#1f6c36;color:#fff;font-size:19px;font-weight:900;line-height:1}
.ethical-delivery-note p,.ethical-delivery-note strong,.ethical-delivery-note span{display:block}
.ethical-delivery-note p{min-width:0;margin:0;font-size:11px;line-height:1.45}
.ethical-delivery-note strong{margin-bottom:2px;color:#123f20;font-size:12px;letter-spacing:.01em}
.delivery-quote-context{margin:10px 0 0;color:#285c33;font-size:12px;line-height:1.45}
#uberFullFeeRow{color:var(--muted)}
#merchantSubsidyRow strong{color:var(--green)}
#deliveryFeeRow{margin-top:2px;padding-top:8px;border-top:1px dashed var(--line);font-weight:900}
#deliveryFeeRow strong{color:var(--red)}
@media(max-width:480px){.delivery-fee-breakdown>div{gap:10px}.delivery-fee-breakdown span{font-size:12px}.ethical-delivery-note{gap:9px;padding:10px}.ethical-delivery-icon{width:25px;height:25px;flex-basis:25px;font-size:17px}.ethical-delivery-note p{font-size:10.5px}}

@media (max-width: 1120px) {
  .site-header nav { gap: 17px; }
  .header-social-links { gap: 6px; margin-left: -5px; }
  .header-social-links > a { width: 31px; height: 31px; }
}

/* V5.13.1.41 — Correctif affichage des suppléments sur mobile et tablette. */
#supplementsFieldset,
.supplement-choices,
.supplement-choice {
  min-width: 0;
  max-width: 100%;
}
.supplement-choices {
  overflow-x: hidden;
}
.supplement-choice {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr) auto;
  align-items: center;
  column-gap: 9px;
  width: 100%;
}
.supplement-choice input[type="checkbox"] {
  appearance: auto;
  width: 18px;
  min-width: 18px;
  height: 18px;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 4px;
  box-shadow: none;
  accent-color: var(--red);
}
.supplement-choice input[type="checkbox"]:focus {
  box-shadow: none;
  outline: 2px solid rgba(215,25,32,.22);
  outline-offset: 2px;
}
.supplement-choice span {
  margin-left: 0;
  white-space: nowrap;
}
.supplement-choice {
  overflow-wrap: anywhere;
}
@media (max-width: 760px) {
  .supplement-choice {
    grid-template-columns: 20px minmax(0, 1fr) auto;
    padding: 12px 10px;
  }
}


/* V5.13.1.47 — sélection d’avis Google en cartes */
.reviews-order-button {
  justify-self: end;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 0 18px;
  color: #fff;
  background: var(--red);
  border-radius: 999px;
  text-decoration: none;
  font-size: 13px;
  font-weight: 900;
  box-shadow: 0 9px 24px rgba(215,25,32,.22);
}
.reviews-order-button:hover { filter: brightness(1.08); }
.reviews-summary-rating { display: flex; align-items: baseline; gap: 4px; }
.reviews-summary-rating span { color: rgba(255,255,255,.58); font-size: 20px; font-weight: 800; }
.reviews-showcase {
  max-width: 1280px;
  margin: 0 auto;
  padding: 90px 32px 110px;
  color: #171513;
  background: var(--surface);
  border-radius: 34px 34px 0 0;
}
.reviews-section-heading {
  display: grid;
  grid-template-columns: minmax(0,1.15fr) minmax(280px,.85fr);
  align-items: end;
  gap: 44px;
  margin-bottom: 38px;
}
.reviews-section-heading .eyebrow { color: var(--red); }
.reviews-section-heading h2 { max-width: 680px; }
.reviews-section-heading > p { margin: 0 0 5px; color: var(--muted); font-size: 17px; line-height: 1.65; }
.reviews-grid {
  display: grid;
  grid-template-columns: repeat(3,minmax(0,1fr));
  gap: 17px;
}
.review-card {
  min-height: 280px;
  display: flex;
  flex-direction: column;
  padding: 24px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 20px;
  box-shadow: 0 12px 34px rgba(45,34,24,.06);
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.review-card:hover {
  transform: translateY(-3px);
  border-color: #ccb895;
  box-shadow: 0 18px 42px rgba(45,34,24,.1);
}
.review-card:nth-child(2), .review-card:nth-child(5) { background: #f4eadb; }
.review-card-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.review-source {
  display: inline-flex;
  align-items: center;
  min-height: 27px;
  padding: 0 10px;
  color: #fff;
  background: var(--black);
  border-radius: 999px;
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.review-stars { color: #e1a400; font-size: 17px; letter-spacing: .07em; white-space: nowrap; }
.review-card blockquote {
  flex: 1;
  margin: 25px 0 28px;
  color: #26211d;
  font: 700 20px/1.55 Georgia, serif;
}
.review-author { display: flex; align-items: center; gap: 12px; padding-top: 17px; border-top: 1px solid rgba(67,45,18,.1); }
.review-avatar {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  color: var(--black);
  background: var(--cream);
  border-radius: 50%;
  font-size: 12px;
  font-weight: 950;
}
.review-author > div { display: grid; gap: 3px; }
.review-author strong { font-size: 14px; }
.review-author small { color: var(--muted); font-size: 11px; }
.reviews-showcase-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  margin-top: 28px;
  padding: 25px 28px;
  color: #fff;
  background: var(--black);
  border-radius: 18px;
}
.reviews-showcase-footer p { max-width: 650px; margin: 0; color: rgba(255,255,255,.7); line-height: 1.55; }
.reviews-google-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  padding: 0 18px;
  color: var(--black);
  background: var(--cream);
  border-radius: 11px;
  text-decoration: none;
  font-size: 13px;
  font-weight: 950;
  white-space: nowrap;
}
.reviews-google-cta:hover { background: #f3dbb1; transform: translateY(-1px); }
@media(max-width:980px) {
  .reviews-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media(max-width:760px) {
  .reviews-header { grid-template-columns: 1fr auto; }
  .reviews-header nav { display: none; }
  .reviews-order-button { display: inline-flex; }
  .reviews-showcase { padding: 68px 20px 80px; border-radius: 26px 26px 0 0; }
  .reviews-section-heading { grid-template-columns: 1fr; gap: 18px; }
  .reviews-grid { grid-template-columns: 1fr; }
  .review-card { min-height: 0; }
  .reviews-showcase-footer { align-items: stretch; flex-direction: column; padding: 23px; }
  .reviews-google-cta { width: 100%; }
}
@media(max-width:430px) {
  .reviews-order-button { min-height: 38px; padding: 0 13px; font-size: 12px; }
  .review-card { padding: 21px; }
  .review-card blockquote { font-size: 18px; }
}


/* V5.13.1.48 — harmonisation complète de la page Avis */
.reviews-page {
  background: #0c0c0c;
}
.reviews-main {
  position: relative;
  overflow: hidden;
  background: #0c0c0c;
}
.reviews-hero {
  min-height: 560px;
  max-width: 1280px;
  margin: 0 auto;
  padding: 82px 32px 118px;
  grid-template-columns: minmax(0,1.25fr) minmax(300px,.75fr);
  gap: 72px;
  background-color: transparent;
  background-image: none;
}
.reviews-main::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: 650px;
  pointer-events: none;
  background-image:
    linear-gradient(100deg,rgba(0,0,0,.98) 15%,rgba(0,0,0,.88) 62%,rgba(0,0,0,.82)),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240' viewBox='0 0 240 240'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.065' stroke-width='2'%3E%3Ccircle cx='40' cy='45' r='24'/%3E%3Ccircle cx='32' cy='39' r='3'/%3E%3Ccircle cx='48' cy='51' r='3'/%3E%3Cpath d='M122 18c15 16 21 35 18 58-22-6-38-18-48-36 8-8 18-15 30-22Z'/%3E%3Cpath d='M92 40c20 3 36 14 48 36'/%3E%3Cpath d='M27 159 82 97l21 92Z'/%3E%3Cpath d='M42 143c18 15 37 22 58 21'/%3E%3Ccircle cx='76' cy='139' r='5'/%3E%3Cpath d='M167 151c13-20 30-29 50-26-1 21-13 37-34 48'/%3E%3Cpath d='M168 150c19 2 35-5 49-25'/%3E%3C/g%3E%3C/svg%3E");
}
.reviews-hero > * { position: relative; z-index: 1; }
.reviews-hero-copy .eyebrow { color: var(--cream); }
.reviews-hero h1 {
  max-width: 760px;
  margin: 10px 0 20px;
  font-size: clamp(48px,5.6vw,76px);
}
.reviews-hero-copy > p:last-of-type {
  max-width: 650px;
  margin-bottom: 0;
  color: rgba(255,255,255,.74);
  font-size: 18px;
  line-height: 1.65;
}
.reviews-hero-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 30px;
}
.reviews-secondary-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 52px;
  padding: 0 22px;
  color: var(--cream);
  border: 1px solid rgba(232,205,160,.58);
  border-radius: 12px;
  text-decoration: none;
  font-weight: 900;
  transition: background .18s ease,border-color .18s ease,transform .18s ease;
}
.reviews-secondary-link:hover {
  color: #fff;
  background: rgba(232,205,160,.1);
  border-color: var(--cream);
  transform: translateY(-1px);
}
.reviews-summary {
  position: relative;
  justify-self: end;
  width: min(100%,390px);
  padding: 34px 30px;
  gap: 8px;
  overflow: hidden;
  border: 1px solid rgba(232,205,160,.28);
  border-radius: 28px;
  background: linear-gradient(145deg,rgba(255,255,255,.11),rgba(255,255,255,.045));
  box-shadow: 0 28px 70px rgba(0,0,0,.3);
  backdrop-filter: blur(8px);
}
.reviews-summary::after {
  content: "“";
  position: absolute;
  right: 18px;
  bottom: -38px;
  color: rgba(232,205,160,.08);
  font: 900 170px/1 Georgia,serif;
}
.reviews-google-label {
  padding: 6px 11px;
  border: 1px solid rgba(232,205,160,.28);
  border-radius: 999px;
  background: rgba(232,205,160,.08);
}
.reviews-summary-rating { margin-top: 9px; font-size: 68px; }
.reviews-summary .review-stars { font-size: 20px; }
.reviews-summary small { font-size: 13px; }
.reviews-summary-place {
  margin-top: 7px;
  color: rgba(255,255,255,.52);
  font-size: 11px;
  font-weight: 850;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.reviews-showcase {
  position: relative;
  z-index: 2;
  margin-top: -54px;
  padding: 82px 32px 104px;
  border-radius: 34px 34px 0 0;
  box-shadow: 0 -22px 70px rgba(0,0,0,.22);
}
.reviews-section-heading {
  display: block;
  max-width: 760px;
  margin: 0 auto 42px;
  text-align: center;
}
.reviews-section-heading .eyebrow { margin-bottom: 11px; }
.reviews-section-heading h2 {
  max-width: none;
  margin: 0;
}
.reviews-section-heading h2 em {
  color: #8f1217;
  font-family: Georgia,serif;
  font-style: italic;
  font-weight: 500;
}
.reviews-grid { gap: 20px; }
.review-card {
  min-height: 292px;
  padding: 26px;
  border-color: rgba(67,45,18,.1);
  border-radius: 22px;
  box-shadow: 0 12px 36px rgba(45,34,24,.055);
}
.review-card:nth-child(2),
.review-card:nth-child(5) { background: #fff; }
.review-card::before {
  content: "“";
  display: block;
  height: 28px;
  margin-bottom: 4px;
  color: rgba(215,25,32,.22);
  font: 900 54px/.7 Georgia,serif;
}
.review-card-head { order: -1; margin-bottom: 18px; }
.review-card blockquote {
  margin: 10px 0 26px;
  font-size: 19px;
  line-height: 1.6;
}
.review-author { margin-top: auto; }
.review-avatar {
  border: 1px solid rgba(67,45,18,.08);
  box-shadow: inset 0 0 0 4px rgba(255,255,255,.38);
}
.reviews-showcase-footer {
  margin-top: 34px;
  padding: 28px 30px;
  border: 1px solid rgba(232,205,160,.13);
  border-radius: 20px;
  box-shadow: 0 18px 45px rgba(0,0,0,.13);
}
.reviews-showcase-footer p {
  color: rgba(255,255,255,.74);
  font-size: 15px;
}
.reviews-google-cta {
  min-height: 48px;
  padding: 0 20px;
}
@media(max-width:980px) {
  .reviews-hero { grid-template-columns: 1fr; gap: 38px; padding-bottom: 108px; }
  .reviews-summary { justify-self: start; }
  .reviews-showcase { margin-top: -44px; }
}
@media(max-width:760px) {
  .reviews-hero { padding: 58px 20px 96px; }
  .reviews-hero h1 { font-size: clamp(42px,12vw,58px); }
  .reviews-hero-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .reviews-hero-actions > a { width: 100%; min-width: 0; padding-inline: 14px; }
  .reviews-summary { width: 100%; }
  .reviews-showcase { margin-top: -34px; padding: 62px 20px 76px; }
  .reviews-section-heading { margin-bottom: 32px; text-align: left; }
  .review-card { padding: 23px; }
}
@media(max-width:430px) {
  .reviews-hero-actions { grid-template-columns: 1fr; }
  .reviews-summary { padding: 28px 22px; }
  .reviews-summary-rating { font-size: 58px; }
  .reviews-showcase { border-radius: 25px 25px 0 0; }
}


/* V5.13.1.49 — Header public harmonisé. */
.site-header {
  height: 82px;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: clamp(20px, 2.5vw, 42px);
  padding: 0 clamp(22px, 3.4vw, 54px);
  background: #0b0b0b;
  border-bottom: 1px solid rgba(232, 205, 160, .16);
  box-shadow: 0 12px 34px rgba(0, 0, 0, .16);
  backdrop-filter: none;
}
.site-header .brand {
  gap: 12px;
  padding: 5px 0;
}
.site-header .brand img {
  width: 58px;
  height: 58px;
  border: 1px solid rgba(232, 205, 160, .22);
  box-shadow: 0 6px 18px rgba(0, 0, 0, .35);
}
.site-header .brand strong {
  font-size: 20px;
  letter-spacing: .055em;
}
.site-header .brand small {
  margin-top: 4px;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .14em;
}
.site-header nav {
  min-width: 0;
  justify-content: flex-end;
  gap: clamp(17px, 1.8vw, 28px);
  font-size: 13px;
}
.header-main-links,
.header-contact {
  display: inline-flex;
  align-items: center;
  min-width: 0;
}
.header-main-links {
  gap: clamp(15px, 1.55vw, 24px);
}
.header-main-links > a,
.header-main-links > .nav-loyalty-link {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  position: relative;
  padding: 0;
  color: rgba(255, 255, 255, .88);
  white-space: nowrap;
  text-decoration: none;
  transition: color .18s ease;
}
.header-main-links > a::after,
.header-main-links > .nav-loyalty-link::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 5px;
  height: 2px;
  background: var(--cream);
  border-radius: 999px;
  opacity: 0;
  transform: scaleX(.45);
  transition: opacity .18s ease, transform .18s ease;
}
.header-main-links > a:hover,
.header-main-links > .nav-loyalty-link:hover {
  color: var(--cream);
}
.header-main-links > a:hover::after,
.header-main-links > .nav-loyalty-link:hover::after,
.header-main-links > a:focus-visible::after,
.header-main-links > .nav-loyalty-link:focus-visible::after {
  opacity: 1;
  transform: scaleX(1);
}
.header-contact {
  gap: 13px;
  padding-left: clamp(14px, 1.5vw, 22px);
  border-left: 1px solid rgba(232, 205, 160, .22);
}
.site-header .phone-link {
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  color: var(--cream) !important;
  font-size: 13px;
  font-weight: 900;
  letter-spacing: .02em;
  white-space: nowrap;
}
.site-header .phone-link:hover {
  color: #fff !important;
}
.site-header .header-social-links {
  gap: 7px;
  margin-left: 0;
}
.site-header .header-social-links > a {
  width: 32px;
  height: 32px;
  color: var(--cream);
  background: rgba(255, 255, 255, .025);
  border-color: rgba(232, 205, 160, .35);
}
.site-header .header-social-links > a:hover {
  color: #111;
  background: var(--cream);
  border-color: var(--cream);
}
.site-header .cart-pill,
.site-header .reviews-order-button {
  min-height: 44px;
  justify-self: end;
  border-radius: 999px;
  box-shadow: 0 8px 22px rgba(215, 25, 32, .22);
}
.site-header .cart-pill {
  padding: 0 15px;
}
.site-header .reviews-order-button {
  padding: 0 20px;
}
.reviews-header {
  position: relative;
}
@media (max-width: 1240px) {
  .site-header {
    gap: 18px;
    padding-inline: 22px;
  }
  .site-header .brand img {
    width: 54px;
    height: 54px;
  }
  .site-header .brand strong {
    font-size: 18px;
  }
  .site-header nav,
  .header-main-links {
    gap: 14px;
  }
  .header-contact {
    gap: 10px;
    padding-left: 13px;
  }
  .site-header .header-social-links {
    gap: 5px;
  }
  .site-header .header-social-links > a {
    width: 30px;
    height: 30px;
  }
}
@media (max-width: 1080px) {
  .site-header {
    height: 72px;
    grid-template-columns: 1fr auto;
    padding-inline: 18px;
  }
  .site-header nav {
    display: none;
  }
  .site-header .brand img {
    width: 52px;
    height: 52px;
  }
  .site-header .brand strong {
    font-size: 18px;
  }
  .site-header .brand small {
    font-size: 9px;
  }
}
@media (max-width: 520px) {
  .site-header {
    height: 68px;
    padding-inline: 12px;
  }
  .site-header .brand {
    gap: 9px;
  }
  .site-header .brand img {
    width: 50px;
    height: 50px;
  }
  .site-header .brand strong {
    font-size: 16px;
  }
  .site-header .brand small {
    margin-top: 2px;
    font-size: 8px;
  }
  .site-header .cart-pill,
  .site-header .reviews-order-button {
    min-height: 42px;
  }
  .site-header .cart-pill {
    padding: 0 11px;
  }
  .site-header .reviews-order-button {
    padding: 0 15px;
    font-size: 12px;
  }
}


/* V5.13.1.50 — Header centré sur la largeur du contenu et navigation mobile complète. */
.site-header {
  min-height: 82px;
  height: auto;
  display: block;
  padding: 0 24px;
  background: #0b0b0b;
}
.site-header-inner {
  width: 100%;
  max-width: 1280px;
  min-height: 82px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(18px, 2vw, 32px);
}
.site-header-inner > .brand { justify-self: start; }
.site-header-inner > nav { justify-self: stretch; }
.site-header-inner > .cart-pill,
.site-header-inner > .reviews-order-button { justify-self: end; }
.header-main-links > .nav-loyalty-link {
  font-weight: 700;
}

@media (max-width: 1080px) {
  .site-header {
    padding-inline: 18px;
  }
  .site-header-inner {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "brand action"
      "nav nav";
    row-gap: 0;
    padding: 8px 0 7px;
  }
  .site-header-inner > .brand { grid-area: brand; }
  .site-header-inner > nav {
    grid-area: nav;
    width: 100%;
    display: flex !important;
    justify-content: space-between;
    gap: 18px;
    padding-top: 7px;
    border-top: 1px solid rgba(232, 205, 160, .14);
  }
  .site-header-inner > .cart-pill,
  .site-header-inner > .reviews-order-button { grid-area: action; }
  .header-main-links,
  .header-contact {
    flex: 0 0 auto;
  }
}

@media (max-width: 760px) {
  .site-header {
    padding-inline: 14px;
  }
  .site-header-inner {
    min-height: 0;
    padding: 7px 0 8px;
  }
  .site-header-inner > nav {
    display: grid !important;
    grid-template-columns: 1fr;
    gap: 5px;
    padding-top: 7px;
    overflow: visible;
  }
  .header-main-links {
    width: 100%;
    display: flex;
    justify-content: space-between;
    gap: 10px;
  }
  .header-main-links > a,
  .header-main-links > .nav-loyalty-link {
    min-height: 34px;
    font-size: 12px;
  }
  .site-header nav .nav-loyalty-link {
    display: inline-flex !important;
    font-weight: 700;
  }
  .header-contact {
    width: 100%;
    justify-content: center;
    gap: 10px;
    padding: 5px 0 0;
    border-left: 0;
    border-top: 1px solid rgba(232, 205, 160, .12);
  }
  .site-header .phone-link {
    min-height: 32px;
    font-size: 12px;
  }
  .site-header .header-social-links > a {
    width: 29px;
    height: 29px;
  }
  .site-header .header-social-links svg {
    width: 15px;
    height: 15px;
  }
  .reviews-header .header-main-links a,
  .reviews-header .header-contact a {
    display: inline-flex !important;
  }
}

@media (max-width: 430px) {
  .site-header {
    padding-inline: 10px;
  }
  .site-header .brand img {
    width: 46px;
    height: 46px;
  }
  .site-header .brand strong {
    font-size: 15px;
  }
  .site-header .brand small {
    font-size: 7px;
  }
  .header-main-links {
    gap: 7px;
  }
  .header-main-links > a,
  .header-main-links > .nav-loyalty-link {
    font-size: 11px;
  }
  .site-header .phone-link {
    font-size: 11px;
  }
  .site-header .cart-pill {
    min-height: 39px;
    padding-inline: 10px;
  }
}


/* V5.13.1.72 — menus composés */
.menu-builder-dialog{width:min(760px,calc(100% - 20px));max-height:94dvh;overflow:auto}
.menu-builder-dialog form{position:relative;padding:35px}
.menu-builder-dialog h2{padding-right:45px;font-size:40px;text-transform:uppercase}
.menu-dialog-image{height:250px;margin:0 0 22px;overflow:hidden;background:#eee7dd;border-radius:16px}
.menu-dialog-image img{width:100%;height:100%;display:block;object-fit:cover}
.menu-dialog-description{margin:12px 0;color:var(--muted);font-size:17px;line-height:1.55}
.menu-base-price,.menu-dialog-total{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:14px 16px;background:#111;color:#fff;border-radius:12px;font-weight:850}
.menu-base-price strong,.menu-dialog-total strong{color:var(--cream);font-size:20px}
.menu-choice-groups{display:grid;gap:14px;margin:18px 0}
.menu-choice-group{padding:16px;background:#f5eee5;border:1px solid var(--line);border-radius:14px}
.menu-choice-group h3{margin:0 0 5px;font:900 23px/1.1 Georgia,serif}
.menu-choice-group>p{margin:0 0 12px;color:var(--muted);font-size:13px}
.menu-choice-slots{display:grid;gap:11px}
.menu-choice-slot{padding:12px;background:#fff;border:1px solid #dfd4c7;border-radius:11px}
.menu-choice-slot .field-label{margin:0}
.menu-choice-slot select{width:100%;height:46px;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:#fff}
.menu-choice-details{margin-top:10px}
.menu-choice-product-summary{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;color:#51483f;font-size:13px}
.menu-choice-product-summary strong{color:#171513}
.menu-choice-note{margin-top:9px}
.menu-choice-note textarea{width:100%;padding:10px;border:1px solid var(--line);border-radius:9px;resize:vertical}
.menu-dialog-total{margin:18px 0 10px;background:#f1e4d1;color:#171513}
.menu-dialog-total strong{color:var(--red)}
.cart-menu-choices{display:grid;gap:4px;margin:7px 0 0;padding:8px 10px;background:#f5eee5;border-radius:8px;color:#5e554d;font-size:12px;line-height:1.4}
.cart-menu-choices b{color:#171513}
.product-card .tag.menu-tag{color:#fff;background:#8f1118}
@media(max-width:680px){.menu-builder-dialog form{padding:27px 18px}.menu-builder-dialog h2{font-size:31px}.menu-dialog-image{height:210px}.menu-base-price,.menu-dialog-total{align-items:flex-start}.menu-choice-group{padding:13px}}


/* V5.13.1.82 — bandeaux libres flottants, compacts et non gênants */
:root { --promotion-floating-height: 0px; }
body.promotion-floating-visible { padding-bottom: calc(var(--promotion-floating-height) + 24px); }
.promotion-banner[hidden] { display: none !important; }
.promotion-banner-code[hidden], .promotion-banner-action[hidden] { display: none !important; }
.promotion-banner-actions { display: flex; align-items: center; justify-content: center; gap: 10px; }
.promotion-banner-action {
  min-height: 44px;
  padding: 10px 18px;
  color: #19130d;
  background: linear-gradient(145deg, #f5e8d2, #e8cda0);
  border: 1px solid rgba(255,255,255,.45);
  border-radius: 12px;
  box-shadow: 0 8px 24px rgba(0,0,0,.22);
  font: 900 13px/1.15 Inter, ui-sans-serif, system-ui, sans-serif;
  cursor: pointer;
  white-space: nowrap;
}
.promotion-banner-action:hover { filter: brightness(1.04); transform: translateY(-1px); }
.promotion-banner-action:focus-visible,
.promotion-banner-close:focus-visible { outline: 3px solid rgba(232,205,160,.42); outline-offset: 3px; }
.promotion-banner-close {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  padding: 0;
  color: #f5e8d2;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 50%;
  font: 700 22px/1 Arial, sans-serif;
  cursor: pointer;
}
.promotion-banner-close:hover { background: rgba(255,255,255,.16); }
.promotion-banner.is-floating {
  position: fixed;
  z-index: 75;
  left: 50%;
  bottom: max(18px, env(safe-area-inset-bottom));
  width: min(820px, calc(100% - 28px));
  border: 1px solid rgba(232,205,160,.42);
  border-radius: 18px;
  box-shadow: 0 22px 60px rgba(0,0,0,.32);
  overflow: hidden;
  transform: translateX(-50%);
}
body.has-floating-cart .promotion-banner.is-floating {
  bottom: calc(max(18px, env(safe-area-inset-bottom)) + 76px);
}
.promotion-banner.is-floating .promotion-banner-inner {
  min-height: 0;
  padding: 12px 14px 12px 18px;
  justify-content: space-between;
  gap: 16px;
}
.promotion-banner.is-floating .promotion-banner-copy {
  min-width: 0;
  text-align: left;
}
.promotion-banner.is-floating .promotion-banner-copy > strong {
  display: block;
  font-size: 15px;
  line-height: 1.3;
}
.promotion-banner.is-floating .promotion-banner-kicker { font-size: 9px; }
.promotion-banner.is-floating .promotion-banner-code:not([hidden]) {
  min-width: 0;
  min-height: 44px;
  padding: 8px 13px;
  display: grid;
  grid-template-columns: auto auto;
  grid-template-areas: 'label code';
  align-items: center;
  gap: 7px;
  border-radius: 11px;
  white-space: nowrap;
}
.promotion-banner.is-floating .promotion-banner-code > span {
  display: block;
  font-size: 9px;
  letter-spacing: .1em;
}
.promotion-banner.is-floating .promotion-banner-code > strong {
  font-size: 15px;
  line-height: 1;
}
.promotion-banner.is-floating .promotion-banner-code > small { display: none; }

@media (max-width: 680px) {
  body.promotion-floating-visible { padding-bottom: calc(var(--promotion-floating-height) + 12px); }
  .promotion-banner-actions { gap: 7px; }
  .promotion-banner.is-floating {
    width: calc(100% - 16px);
    bottom: max(8px, env(safe-area-inset-bottom));
    border-radius: 14px;
  }
  body.has-floating-cart .promotion-banner.is-floating {
    bottom: calc(max(8px, env(safe-area-inset-bottom)) + 72px);
  }
  .promotion-banner.is-floating .promotion-banner-inner {
    padding: 10px 10px 10px 12px;
    flex-direction: row;
    align-items: center;
    gap: 10px;
  }
  .promotion-banner.is-floating .promotion-banner-copy { text-align: left; gap: 2px; }
  .promotion-banner.is-floating .promotion-banner-copy > strong {
    font-size: 12px;
    line-height: 1.28;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
  }
  .promotion-banner.is-floating .promotion-banner-kicker { font-size: 8px; letter-spacing: .13em; }
  .promotion-banner-action {
    min-height: 38px;
    max-width: 142px;
    padding: 8px 11px;
    border-radius: 10px;
    font-size: 11px;
    white-space: normal;
  }
  .promotion-banner.is-floating .promotion-banner-code:not([hidden]) {
    min-height: 38px;
    max-width: 132px;
    padding: 7px 10px;
    gap: 5px;
    border-radius: 10px;
  }
  .promotion-banner.is-floating .promotion-banner-code > span { font-size: 8px; }
  .promotion-banner.is-floating .promotion-banner-code > strong { font-size: 12px; }
  .promotion-banner-close { width: 30px; height: 30px; font-size: 19px; }
  .promotion-banner:not(.is-floating) .promotion-banner-actions { width: min(310px,100%); }
  .promotion-banner:not(.is-floating) .promotion-banner-close { position: absolute; top: 8px; right: 8px; }
}

/* V5.13.1.84 — les promotions avec code utilisent elles aussi le bandeau flottant mobile. */


/* V5.13.1.90 — fenêtre de Vente additionnelle multi-catégories */
.additional-sale-dialog{width:min(720px,calc(100% - 22px));max-height:92dvh;overflow:auto}
.additional-sale-shell{position:relative;padding:34px}
.additional-sale-shell h2{margin:0 48px 10px 0;font-size:clamp(32px,5vw,46px);text-transform:uppercase}
.additional-sale-message{margin:0 0 22px;color:var(--muted);font-size:16px;line-height:1.55}
.additional-sale-products{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;max-height:46dvh;overflow:auto;padding:2px 3px 2px 0;scrollbar-width:thin}
.additional-sale-product{display:grid;grid-template-columns:64px minmax(0,1fr) auto;align-items:center;gap:11px;min-width:0;padding:10px;background:#f7f1e8;border:1px solid var(--line);border-radius:14px}
.additional-sale-product img,.additional-sale-placeholder{width:64px;height:64px;display:grid;place-items:center;background:#eadfce;border-radius:10px;font-size:24px;font-weight:900}
.additional-sale-product img{object-fit:contain;padding:3px;background:#111}
.additional-sale-product-copy{display:grid;gap:4px;min-width:0}
.additional-sale-product-copy strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;text-transform:uppercase}
.additional-sale-product-copy small{display:-webkit-box;overflow:hidden;color:var(--muted);font-size:11px;line-height:1.35;-webkit-box-orient:vertical;-webkit-line-clamp:2}
.additional-sale-product-copy span{color:var(--red);font-size:12px;font-weight:900}
.additional-sale-add{min-height:38px;padding:0 12px;color:#fff;background:var(--red);border:0;border-radius:9px;font-size:12px;font-weight:900}
.additional-sale-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}
@media(max-width:680px){
  .additional-sale-shell{padding:28px 16px 18px}
  .additional-sale-shell h2{font-size:31px}
  .additional-sale-products{grid-template-columns:1fr;max-height:50dvh}
  .additional-sale-product{grid-template-columns:56px minmax(0,1fr) auto;padding:8px}
  .additional-sale-product img,.additional-sale-placeholder{width:56px;height:56px}
  .additional-sale-actions{grid-template-columns:1fr}
}

.additional-sale-product-copy .additional-sale-category-name{display:block;color:#9a161c;font-size:10px;font-weight:900;letter-spacing:.04em;text-transform:uppercase}

.customer-recognition-choice{display:flex!important;align-items:flex-start!important;gap:10px!important;padding:11px 12px;border:1px solid rgba(215,25,32,.15);border-radius:12px;background:#fffaf6}.customer-recognition-choice input{flex:0 0 auto;margin-top:3px}.customer-recognition-choice span{display:grid;gap:2px}.customer-recognition-choice strong{font-size:14px;color:var(--black)}.customer-recognition-choice small{font-size:12px;line-height:1.35;color:var(--muted)}


/* V5.13.1.92 — choix des formats et contenances */
.format-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.format-choice{display:flex;align-items:center;gap:9px;padding:12px;background:#f6f1ea;border:1px solid transparent;border-radius:11px;cursor:pointer}
.format-choice:has(input:checked){border-color:var(--red);background:#fff1f1}
.format-choice input{width:auto;height:auto;margin:0}
.format-choice b{font-size:14px}
.format-choice span{margin-left:auto;color:var(--red);font-size:13px;font-weight:900}
.product-format-note{color:var(--muted);font-size:11px;font-weight:800}
.additional-sale-format{grid-column:2/4;width:100%;height:38px;padding:0 9px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:12px;font-weight:750}
@media(max-width:680px){.format-choices{grid-template-columns:1fr}.additional-sale-format{grid-column:2/4}}

/* V6.3.0-beta.2 — choix de parfums */
.choice-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.choice-choice{display:flex;align-items:center;gap:9px;padding:12px;background:#f6f1ea;border:1px solid transparent;border-radius:11px;cursor:pointer}
.choice-choice:has(input:checked){border-color:var(--red);background:#fff1f1}
.choice-choice input{width:auto;height:auto;margin:0}
.choice-choice b{font-size:14px}
.choice-choice span{margin-left:auto;color:#287044;font-size:12px;font-weight:900}
.choice-choice.is-unavailable{cursor:not-allowed;opacity:.62;background:#eee9e3}
.choice-choice.is-unavailable span{color:var(--muted)}
.additional-sale-choice{grid-column:2/4;width:100%;height:38px;padding:0 9px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:12px;font-weight:750}
@media(max-width:680px){.choice-choices{grid-template-columns:1fr}.additional-sale-choice{grid-column:2/4}}


/* V5.13.1.109 — correction renforcée de la fenêtre « Mes points » */
.loyalty-dialog,
.loyalty-dialog form {
  box-sizing: border-box;
  max-width: 100%;
  overflow-x: hidden;
}
.loyalty-dialog .customer-recognition-choice {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  display: grid !important;
  grid-template-columns: 18px minmax(0, 1fr);
  align-items: start !important;
  gap: 10px !important;
  overflow: hidden;
}
.loyalty-dialog .customer-recognition-choice input[type="checkbox"],
#loyaltyRememberDevice {
  appearance: auto !important;
  -webkit-appearance: checkbox !important;
  width: 18px !important;
  min-width: 18px !important;
  max-width: 18px !important;
  height: 18px !important;
  min-height: 18px !important;
  max-height: 18px !important;
  margin: 2px 0 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 3px !important;
  box-shadow: none !important;
  accent-color: var(--red);
}
.loyalty-dialog .customer-recognition-choice > span {
  min-width: 0;
  max-width: 100%;
  display: grid;
  gap: 2px;
  overflow-wrap: anywhere;
  word-break: normal;
}
.loyalty-dialog .customer-recognition-choice strong,
.loyalty-dialog .customer-recognition-choice small {
  display: block;
  max-width: 100%;
  white-space: normal;
}
@media (max-width: 560px) {
  .loyalty-dialog form {
    padding: 26px 18px;
  }
}


/* V5.13.1.110 — navigation Contact restaurée et page Contact responsive. */
.header-main-links > a[aria-current="page"] {
  color: var(--cream);
}
.header-main-links > a[aria-current="page"]::after {
  opacity: 1;
  transform: scaleX(1);
}

/* Le passage en deux lignes intervient plus tôt afin de préserver la navigation complète. */
@media (max-width: 1180px) {
  .site-header {
    padding-inline: 18px;
  }
  .site-header-inner {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "brand action"
      "nav nav";
    row-gap: 0;
    padding: 8px 0 7px;
  }
  .site-header-inner > .brand { grid-area: brand; }
  .site-header-inner > nav {
    grid-area: nav;
    width: 100%;
    display: flex !important;
    justify-content: space-between;
    gap: 16px;
    padding-top: 7px;
    border-top: 1px solid rgba(232, 205, 160, .14);
  }
  .site-header-inner > .cart-pill,
  .site-header-inner > .reviews-order-button { grid-area: action; }
  .header-main-links,
  .header-contact { flex: 0 0 auto; }
}

@media (max-width: 760px) {
  .site-header-inner > nav {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    gap: 7px;
    overflow: visible;
  }
  .header-main-links {
    width: 100%;
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px;
  }
  .header-main-links > a,
  .header-main-links > .nav-loyalty-link {
    min-height: 36px;
    padding: 0 11px;
    justify-content: center;
    color: rgba(255,255,255,.9);
    background: rgba(255,255,255,.035);
    border: 1px solid rgba(232,205,160,.14);
    border-radius: 999px;
    font-size: 11px;
    line-height: 1.15;
    text-align: center;
  }
  .header-main-links > a::after,
  .header-main-links > .nav-loyalty-link::after { display: none; }
  .header-main-links > a[aria-current="page"] {
    color: #17120d;
    background: var(--cream);
    border-color: var(--cream);
  }
  .header-contact {
    min-width: 0;
    padding-top: 6px;
  }
}

@media (max-width: 560px) {
  .site-header { padding-inline: 10px; }
  .site-header-inner { padding-top: 6px; }
  .header-main-links {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
  }
  .reviews-header .header-main-links,
  .contact-header .header-main-links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .header-main-links > a,
  .header-main-links > .nav-loyalty-link {
    width: 100%;
    min-width: 0;
    padding-inline: 5px;
    white-space: normal;
  }
  .site-header .header-social-links > a {
    width: 28px;
    height: 28px;
  }
}

@media (max-width: 380px) {
  .site-header .brand span { display: none; }
  .site-header .brand img {
    width: 44px;
    height: 44px;
  }
  .site-header .cart-pill,
  .site-header .reviews-order-button {
    min-height: 38px;
    padding-inline: 11px;
  }
  .header-main-links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .site-header .phone-link { font-size: 10px; }
}

/* Page Contact — même direction artistique que le site. */
.contact-page {
  min-width: 0;
  background: #f5efe6;
  overflow-x: hidden;
}
.contact-header { position: sticky; }
.contact-main {
  min-height: calc(100vh - 82px);
  color: #fff;
  background:
    radial-gradient(circle at 12% 12%, rgba(232,205,160,.12), transparent 34%),
    radial-gradient(circle at 90% 82%, rgba(215,25,32,.12), transparent 28%),
    linear-gradient(135deg, #0c0c0c 0%, #17130f 55%, #0b0b0b 100%);
}
.contact-hero {
  width: min(1280px, 100%);
  margin: 0 auto;
  padding: clamp(58px, 7vw, 92px) 32px clamp(70px, 8vw, 110px);
  display: grid;
  grid-template-columns: minmax(0, .88fr) minmax(480px, 1.12fr);
  align-items: start;
  gap: clamp(42px, 6vw, 86px);
}
.contact-intro {
  min-width: 0;
  padding-top: 22px;
}
.contact-intro h1 {
  max-width: 650px;
  margin-bottom: 24px;
  font-size: clamp(46px, 5.3vw, 73px);
  text-wrap: balance;
}
.contact-lead {
  max-width: 640px;
  margin-bottom: 30px;
  color: rgba(255,255,255,.73);
  font-size: clamp(16px, 1.5vw, 19px);
  line-height: 1.65;
}
.contact-details {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 30px;
}
.contact-detail {
  min-width: 0;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  padding: 16px;
  color: #fff;
  background: rgba(255,255,255,.055);
  border: 1px solid rgba(232,205,160,.2);
  border-radius: 15px;
  text-decoration: none;
  transition: transform .18s ease, border-color .18s ease, background .18s ease;
}
.contact-detail:hover {
  transform: translateY(-2px);
  border-color: rgba(232,205,160,.58);
  background: rgba(232,205,160,.09);
}
.contact-detail > span {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  color: #1b130b;
  background: var(--cream);
  border-radius: 50%;
  font-size: 19px;
  font-weight: 900;
}
.contact-detail div { min-width: 0; }
.contact-detail small,
.contact-detail strong { display: block; }
.contact-detail small {
  margin-bottom: 4px;
  color: var(--cream);
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.contact-detail strong {
  overflow-wrap: anywhere;
  font-size: 14px;
  line-height: 1.45;
}
.contact-response-note {
  max-width: 610px;
  margin: 18px 0 0;
  padding-left: 15px;
  color: rgba(255,255,255,.61);
  border-left: 3px solid var(--red);
  font-size: 13px;
  line-height: 1.55;
}
.contact-form-card {
  min-width: 0;
  padding: clamp(24px, 3.2vw, 42px);
  color: #191613;
  background: linear-gradient(150deg, #fffdf9, #f7efe4);
  border: 1px solid rgba(232,205,160,.65);
  border-radius: 28px;
  box-shadow: 0 34px 90px rgba(0,0,0,.42);
}
.contact-form-heading {
  margin-bottom: 25px;
  padding-bottom: 22px;
  border-bottom: 1px solid rgba(82,58,34,.12);
}
.contact-form-heading h2 {
  margin-bottom: 8px;
  font-size: clamp(34px, 4vw, 50px);
}
.contact-form-heading > p:last-child {
  margin-bottom: 0;
  color: var(--muted);
  font-size: 13px;
}
.contact-form-card form {
  display: grid;
  gap: 17px;
}
.contact-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.contact-field {
  min-width: 0;
  display: grid;
  gap: 7px;
  color: #211d18;
  font-size: 13px;
  font-weight: 850;
}
.contact-field > span { line-height: 1.35; }
.contact-field input,
.contact-field select,
.contact-field textarea {
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 12px 13px;
  color: #1d1915;
  background: #fff;
  border: 1px solid #ddd2c3;
  border-radius: 11px;
  outline: 0;
  box-shadow: none;
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
.contact-field input,
.contact-field select { min-height: 48px; }
.contact-field textarea {
  min-height: 165px;
  resize: vertical;
  line-height: 1.55;
}
.contact-field input:focus,
.contact-field select:focus,
.contact-field textarea:focus {
  background: #fff;
  border-color: var(--red);
  box-shadow: 0 0 0 4px rgba(215,25,32,.1);
}
.contact-field > small {
  justify-self: end;
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
}
.contact-consent {
  width: 100%;
  max-width: 100%;
  display: grid;
  grid-template-columns: 19px minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  padding: 13px 14px;
  color: #413a33;
  background: #fff8ee;
  border: 1px solid #eadbc6;
  border-radius: 11px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.45;
  cursor: pointer;
}
.contact-consent input[type="checkbox"] {
  appearance: auto !important;
  -webkit-appearance: checkbox !important;
  width: 18px !important;
  min-width: 18px !important;
  max-width: 18px !important;
  height: 18px !important;
  min-height: 18px !important;
  max-height: 18px !important;
  margin: 1px 0 0 !important;
  padding: 0 !important;
  accent-color: var(--red);
}
.contact-consent span {
  min-width: 0;
  overflow-wrap: anywhere;
}
.contact-honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}
.contact-form-actions {
  display: grid;
  grid-template-columns: minmax(210px, auto) minmax(0, 1fr);
  align-items: center;
  gap: 16px;
}
.contact-form-actions .primary-button {
  min-width: 215px;
}
.contact-form-status {
  min-width: 0;
  margin: 0;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.45;
}
.contact-form-status.success { color: #107032; }
.contact-form-status.error { color: #a30d14; }

@media (max-width: 1020px) {
  .contact-hero {
    grid-template-columns: minmax(0, 1fr);
    gap: 38px;
    padding-top: 55px;
  }
  .contact-intro { padding-top: 0; }
  .contact-intro h1 { max-width: 800px; }
  .contact-lead { max-width: 760px; }
  .contact-details { max-width: 760px; }
}

@media (max-width: 680px) {
  .contact-hero {
    padding: 42px 14px 70px;
    gap: 30px;
  }
  .contact-intro h1 {
    margin-bottom: 18px;
    font-size: clamp(39px, 12vw, 55px);
  }
  .contact-lead {
    margin-bottom: 23px;
    font-size: 16px;
  }
  .contact-details,
  .contact-form-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .contact-detail { padding: 14px; }
  .contact-form-card {
    padding: 25px 16px 21px;
    border-radius: 21px;
  }
  .contact-form-heading {
    margin-bottom: 20px;
    padding-bottom: 17px;
  }
  .contact-form-heading h2 { font-size: 36px; }
  .contact-form-actions {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
  }
  .contact-form-actions .primary-button {
    width: 100%;
    min-width: 0;
  }
}

@media (max-width: 360px) {
  .contact-hero { padding-inline: 10px; }
  .contact-form-card { padding-inline: 13px; }
  .contact-detail {
    grid-template-columns: 38px minmax(0, 1fr);
    gap: 10px;
  }
  .contact-detail > span {
    width: 38px;
    height: 38px;
  }
}
.contact-field[hidden] { display: none !important; }

/* V5.13.1.111 — fermeture pour congés datée */
.hero-hours-closed.vacation { display: grid; gap: 5px; color: #791117; background: rgba(215,25,32,.08); border-color: rgba(215,25,32,.2); }
.hero-hours-closed.vacation strong { font-size: 15px; }
.hero-hours-closed.vacation small { color: rgba(62,24,19,.72); font-size: 11px; line-height: 1.4; }
.vacation-closure-notice { display: flex; gap: 14px; align-items: flex-start; margin: 20px 0 4px; padding: 16px 17px; color: #251a11; background: linear-gradient(135deg,rgba(232,205,160,.98),rgba(244,226,194,.95)); border: 1px solid rgba(232,205,160,.85); border-radius: 14px; box-shadow: 0 12px 28px rgba(0,0,0,.14); }
.vacation-closure-notice[hidden] { display: none !important; }
.vacation-closure-notice > span { flex: 0 0 auto; font-size: 24px; line-height: 1; }
.vacation-closure-notice strong { display: block; margin-bottom: 4px; font: 900 18px/1.15 Georgia,serif; }
.vacation-closure-notice p { margin: 0; color: rgba(37,26,17,.75); font-size: 13px; line-height: 1.5; }
.vacation-closure-notice.active { color: #fff4df; background: linear-gradient(135deg,#7f1017,#a61820); border-color: rgba(255,255,255,.15); }
.vacation-closure-notice.active p { color: rgba(255,244,223,.82); }
@media (max-width:560px){
  .vacation-closure-notice { gap: 11px; padding: 14px; }
  .vacation-closure-notice > span { font-size: 21px; }
  .vacation-closure-notice strong { font-size: 16px; }
  .vacation-closure-notice p { font-size: 12px; }
}

/* V5.13.1.112 — fermeture pour congés harmonisée (horaires normaux inchangés) */
.hero-hours-status.vacation {
  color: #fff7e7;
  background: linear-gradient(135deg,#7b1117,#a31b22);
  border-color: rgba(121,17,23,.42);
  box-shadow: 0 6px 14px rgba(121,17,23,.18);
}
.hero-hours-closed.vacation {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: 46px minmax(0,1fr);
  gap: 14px;
  align-items: center;
  min-width: 0;
  padding: 16px 17px;
  color: #301813;
  text-align: left;
  background:
    radial-gradient(circle at 100% 0,rgba(255,255,255,.72),transparent 42%),
    linear-gradient(135deg,rgba(255,251,241,.88),rgba(239,210,162,.68));
  border: 1px solid rgba(137,32,36,.22);
  border-left: 4px solid #8d151c;
  border-radius: 13px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.72),0 7px 18px rgba(92,44,17,.08);
}
.vacation-card-mark {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  color: #fff8ea;
  background: linear-gradient(145deg,#8b141b,#b3282f);
  border: 1px solid rgba(255,255,255,.34);
  border-radius: 50%;
  box-shadow: 0 7px 15px rgba(121,17,23,.18);
  font-size: 17px;
  line-height: 1;
}
.vacation-card-copy {
  display: grid;
  gap: 3px;
  min-width: 0;
}
.vacation-card-kicker {
  color: rgba(93,29,25,.66);
  font-size: 9px;
  font-weight: 950;
  letter-spacing: .12em;
  line-height: 1.2;
  text-transform: uppercase;
}
.hero-hours-closed.vacation strong {
  color: #781218;
  font: 900 20px/1.08 Georgia,serif;
  overflow-wrap: anywhere;
}
.vacation-card-dates {
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  margin-top: 3px;
  padding: 5px 9px;
  color: rgba(55,30,21,.78);
  background: rgba(255,255,255,.48);
  border: 1px solid rgba(121,17,23,.12);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  line-height: 1.25;
}
.hero-hours-note.vacation {
  margin-top: -1px;
  padding: 10px 7px 0;
  color: rgba(45,29,20,.66);
  text-align: center;
  border-top: 1px solid rgba(92,55,27,.12);
  font-size: 10px;
  font-weight: 750;
}
@media (max-width:680px){
  .hero-hours-closed.vacation {
    grid-template-columns: 40px minmax(0,1fr);
    gap: 11px;
    padding: 14px;
  }
  .vacation-card-mark {
    width: 38px;
    height: 38px;
    font-size: 15px;
  }
  .hero-hours-closed.vacation strong { font-size: 18px; }
  .vacation-card-dates {
    white-space: normal;
    font-size: 10px;
  }
}
@media (max-width:390px){
  .hero-hours-closed.vacation {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
  }
  .vacation-card-copy { justify-items: center; }
  .vacation-card-kicker { letter-spacing: .09em; }
  .vacation-card-dates { justify-content: center; }
  .hero-hours-note.vacation { padding-inline: 2px; }
}


/* V5.13.1.172 — règlement allégé et provenance client obligatoire. */
.discovery-source-block{border:1px solid rgba(67,45,18,.12);background:linear-gradient(180deg,#fbf7f1,#f5eee5)}
.discovery-source-block h3{margin-bottom:7px}
.discovery-source-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:14px}
.discovery-source-options label{min-height:46px;display:flex;align-items:center;gap:10px;padding:11px 13px;border:1px solid rgba(67,45,18,.12);border-radius:11px;background:#fff;cursor:pointer;font-size:13px;font-weight:800;transition:border-color .16s ease,background .16s ease,transform .16s ease}
.discovery-source-options label:hover{border-color:rgba(159,17,23,.30);background:#fffaf5;transform:translateY(-1px)}
.discovery-source-options input{width:18px;height:18px;flex:0 0 auto;accent-color:var(--red)}
.discovery-source-options label:has(input:checked){color:#6f1014;border-color:rgba(159,17,23,.42);background:#fff0ed;box-shadow:inset 0 0 0 1px rgba(159,17,23,.05)}
@media(max-width:680px){.discovery-source-options{grid-template-columns:1fr}.discovery-source-options label{min-height:44px}}


/* V5.13.1.177 — un champ commentaire désactivé doit rester totalement masqué. */
#productNoteField[hidden],
#menuProductNoteField[hidden],
.menu-choice-note[hidden] {
  display: none !important;
}



/* V5.13.1.198 — navigation publique enrichie avec la rubrique Savoir-faire. */
@media (min-width: 1181px) and (max-width: 1320px) {
  .site-header { padding-inline: 16px; }
  .site-header-inner { gap: 16px; }
  .site-header nav { gap: 14px; font-size: 12px; }
  .header-main-links { gap: 12px; }
  .header-contact { gap: 9px; padding-left: 12px; }
  .header-social-links { gap: 5px; margin-left: -4px; }
  .header-social-links > a { width: 31px; height: 31px; }
}


/* Autocomplétion des communes et adresses du formulaire de commande */
.address-autocomplete-field{position:relative;min-width:0}
.address-autocomplete-field>.field-label{margin-bottom:0}
.address-suggestions{position:absolute;z-index:80;top:calc(100% + 6px);left:0;right:0;max-height:260px;overflow-y:auto;padding:6px;background:#fffdf8;border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 38px rgba(22,18,14,.20)}
.address-suggestions[hidden]{display:none}
.address-suggestion{display:flex;flex-direction:column;align-items:flex-start;width:100%;min-height:44px;padding:10px 11px;border:0;border-radius:8px;background:transparent;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.address-suggestion strong{font-size:13px;line-height:1.35}
.address-suggestion span{margin-top:2px;color:#766d65;font-size:11px;line-height:1.35}
.address-suggestion:hover,.address-suggestion:focus-visible,.address-suggestion.active{outline:none;background:rgba(177,30,32,.09);color:var(--red)}
.address-suggestion:hover span,.address-suggestion:focus-visible span,.address-suggestion.active span{color:#704548}
.address-suggestions-status{display:block;padding:10px 11px;color:#766d65;font-size:12px;line-height:1.4}
.address-autocomplete-help{margin:-2px 0 12px}
@media(max-width:640px){.address-suggestions{max-height:220px}.address-suggestion{min-height:48px}}


/* V6.3.0-beta.12 — restauration du header d'origine, sans suivi du défilement. */
.site-header,
.contact-header,
.reviews-header,
.savoir-faire-header {
  position: relative !important;
  top: auto !important;
}

.demo-banner:not([hidden]) + .site-header {
  top: auto !important;
}

/* V6.3.0-beta.18 — alerte de stock visible dans la fiche produit. */
.product-stock-alert {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 12px 0 4px;
  padding: 13px 14px;
  color: #71151a;
  background: #fff0e1;
  border: 1px solid #e5b394;
  border-left: 5px solid var(--red, #a71920);
  border-radius: 12px;
  font-size: 13px;
  font-weight: 800;
  line-height: 1.45;
}
.product-stock-alert::before {
  content: "⚠";
  flex: 0 0 auto;
  font-size: 18px;
  line-height: 1.1;
}
.product-stock-alert[hidden] { display: none !important; }
#addProductButton:disabled {
  cursor: not-allowed;
  opacity: .5;
  filter: grayscale(.25);
}
@media (max-width: 560px) {
  .product-stock-alert { margin-top: 10px; padding: 12px; font-size: 12px; }
}

/* V6.3.0-beta.19 — sélection d’un parfum par glace */
.choice-choices:has(.flavor-unit-choice){grid-template-columns:1fr;gap:10px}
.flavor-unit-choice{display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,1.25fr);align-items:center;gap:14px;padding:12px 13px;background:#f6f1ea;border:1px solid var(--line);border-radius:11px}
.flavor-unit-choice>span{display:grid;gap:3px;min-width:0}
.flavor-unit-choice b{font-size:14px;color:var(--black)}
.flavor-unit-choice small{font-size:11px;line-height:1.35;color:var(--muted)}
.flavor-unit-choice select{width:100%;height:44px;padding:0 11px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--black);font-weight:750}
.flavor-unit-choice select:focus{outline:2px solid rgba(215,25,32,.2);outline-offset:2px;border-color:var(--red)}
.cart-flavor-summary{margin:6px 0;padding:8px 10px;background:#f5eee5;border-radius:8px;color:#5e554d;font-size:12px;line-height:1.45}
.cart-flavor-summary b{color:#171513}
.line-actions .edit-flavors{width:auto;min-width:0;padding:8px 10px;font-size:11px;line-height:1.2;white-space:normal}
@media(max-width:560px){.flavor-unit-choice{grid-template-columns:1fr;gap:8px}.line-actions .edit-flavors{grid-column:1/-1}}
.line-actions .edit-flavors{height:auto;min-height:30px;border-radius:999px}

/* V6.3.0-beta.29 — header public adaptatif, sans chevauchement. */
.site-header-inner {
  max-width: 1600px;
}
.site-header-inner > nav,
.site-header-inner .header-main-links,
.site-header-inner .header-contact {
  min-width: 0;
}

/* Le contrôle JavaScript active ce mode si les libellés occupent plus de place
   que la largeur réellement disponible (langue, zoom ou nouveau lien). */
.site-header-inner.header-layout-stacked {
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "brand action"
    "nav nav";
  row-gap: 0;
  padding: 8px 0 7px;
}
.site-header-inner.header-layout-stacked > .brand { grid-area: brand; }
.site-header-inner.header-layout-stacked > nav {
  grid-area: nav;
  width: 100%;
  display: flex !important;
  justify-content: space-between;
  gap: 16px;
  padding-top: 7px;
  border-top: 1px solid rgba(232, 205, 160, .14);
}
.site-header-inner.header-layout-stacked > .cart-pill,
.site-header-inner.header-layout-stacked > .reviews-order-button { grid-area: action; }

/* Si même la largeur complète du header ne suffit plus, les coordonnées
   passent sur leur propre ligne au lieu de recouvrir la navigation. */
.site-header-inner.header-layout-split-contact > nav {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr);
  gap: 7px;
  overflow: visible;
}
.site-header-inner.header-layout-split-contact .header-main-links {
  width: 100%;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px 12px;
}
.site-header-inner.header-layout-split-contact .header-contact {
  width: 100%;
  justify-content: center;
  gap: 8px;
  padding: 6px 0 0;
  border-left: 0;
  border-top: 1px solid rgba(232, 205, 160, .12);
}

/* Repli CSS autonome : le header reste sûr même si JavaScript est indisponible. */
@media (min-width: 761px) and (max-width: 1520px) {
  .site-header-inner {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "brand action"
      "nav nav";
    row-gap: 0;
    padding: 8px 0 7px;
  }
  .site-header-inner > .brand { grid-area: brand; }
  .site-header-inner > nav {
    grid-area: nav;
    width: 100%;
    display: flex !important;
    justify-content: space-between;
    gap: 16px;
    padding-top: 7px;
    border-top: 1px solid rgba(232, 205, 160, .14);
  }
  .site-header-inner > .cart-pill,
  .site-header-inner > .reviews-order-button { grid-area: action; }
}

@media (min-width: 761px) and (max-width: 1100px) {
  .site-header-inner > nav {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    gap: 7px;
    overflow: visible;
  }
  .site-header-inner .header-main-links {
    width: 100%;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px 12px;
  }
  .site-header-inner .header-contact {
    width: 100%;
    justify-content: center;
    gap: 8px;
    padding: 6px 0 0;
    border-left: 0;
    border-top: 1px solid rgba(232, 205, 160, .12);
  }
}

/* V6.3.0-beta.88 — règlement espèces avec garantie bancaire */
.checkout-payment-choice h3{margin:0 0 12px}.payment-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.payment-choice-card{display:flex;align-items:flex-start;gap:10px;padding:14px;border:1px solid rgba(64,48,34,.18);border-radius:14px;background:#fff;cursor:pointer}.payment-choice-card:has(input:checked){border-color:#171513;box-shadow:0 0 0 1px #171513}.payment-choice-card input{margin-top:3px}.payment-choice-card span{display:grid;gap:4px}.payment-choice-card small{color:#6e665e;line-height:1.35}.cash-payment-notice{margin-top:12px;padding:14px;border-radius:14px;background:#fbf4e8;border:1px solid #ead8b7;line-height:1.45}.cash-payment-notice p{margin:7px 0}.cash-payment-notice label{display:flex;align-items:flex-start;gap:9px;margin-top:10px;font-size:.92rem}.cash-payment-notice label input{margin-top:3px;flex:0 0 auto}.cash-change-notice{font-weight:800;color:#171513}.delivery-card-only{margin:10px 0 0;padding:10px 12px;border-radius:10px;background:#f4f1ed;font-weight:700}.payment-choice-card.is-disabled{opacity:.45;cursor:not-allowed}@media(max-width:640px){.payment-choice-grid{grid-template-columns:1fr}}

/* V6.3.0-beta.91 — choix de règlement harmonisé, logos CB/Visa/Mastercard et garantie espèces renforcée */
.checkout-payment-choice h3{margin:0 0 14px}
.payment-choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.payment-choice-card{position:relative;display:grid;grid-template-columns:48px minmax(0,1fr) 24px;align-items:center;gap:13px;min-height:118px;padding:17px 16px;border:1px solid #ded5ca;border-radius:16px;background:linear-gradient(180deg,#fff 0%,#fdfbf8 100%);cursor:pointer;overflow:hidden;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease}
.payment-choice-card:hover{border-color:#cbbdab;background:#fffdfa;transform:translateY(-1px)}
.payment-choice-card:focus-within{border-color:#a82328;box-shadow:0 0 0 3px rgba(168,35,40,.10)}
.payment-choice-card:has(input:checked){border-color:#a82328;box-shadow:0 8px 24px rgba(49,34,22,.08),0 0 0 1px rgba(168,35,40,.22);background:linear-gradient(145deg,#fffdf9,#fff8ec)}
.payment-choice-card>input[type="radio"]{position:absolute;opacity:0;pointer-events:none}
.payment-choice-visual{width:48px;height:48px;display:grid;place-items:center;border:1px solid #e1d7ca;border-radius:13px;background:#f8f4ee;color:#332a23;transition:all .18s ease}
.payment-choice-card:has(input:checked) .payment-choice-visual{border-color:#d4b99b;background:#fff;color:#8f2025}
.payment-choice-visual svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.payment-choice-copy{min-width:0;display:grid;align-content:center;gap:5px}
.payment-choice-copy>strong{color:#211b17;font-size:15px;line-height:1.2;font-weight:900}
.payment-choice-copy>small{color:#6b625a;font-size:12.5px;line-height:1.42}
.payment-choice-check{width:22px;height:22px;display:grid;place-items:center;border:1px solid #d7cec4;border-radius:50%;background:#fff;color:transparent;font-size:12px;font-weight:950;transition:all .18s ease}
.payment-choice-card:has(input:checked) .payment-choice-check{border-color:#a82328;background:#a82328;color:#fff}
.payment-card-brands{display:flex;align-items:center;gap:7px;margin-top:5px;min-height:25px;flex-wrap:wrap}
.payment-card-brands img{display:block;width:auto;height:23px;max-width:72px;object-fit:contain;border:1px solid #ded8d1;border-radius:4px;background:#fff;box-sizing:border-box}
.payment-card-brands img[alt="CB"]{height:23px;max-width:62px}
.payment-card-brands img[alt="Visa"]{height:23px;max-width:66px}
.payment-card-brands img[alt="Mastercard"]{height:23px;max-width:74px}
.payment-cash-meta{display:inline-flex;align-items:center;gap:6px;width:max-content;margin-top:3px;color:#62594f;font-size:11px;font-weight:800}
.payment-cash-meta>span{width:20px;height:20px;display:grid;place-items:center;border:1px solid #d9cdbd;border-radius:50%;background:#fff;color:#8f2025;font-size:11px;font-weight:950}
.payment-choice-card.is-disabled{opacity:.45;cursor:not-allowed;transform:none}
.cash-payment-notice{position:relative;display:grid;grid-template-columns:32px minmax(0,1fr);gap:13px;margin-top:14px;padding:18px 19px;border:1px solid #d8bf8e;border-left:4px solid #a82328;border-radius:15px;background:linear-gradient(145deg,#fffaf0,#fff5e2);color:#554536;line-height:1.5;box-shadow:0 8px 22px rgba(62,43,24,.06)}
.cash-payment-notice[hidden]{display:none!important}
.cash-guarantee-icon{width:28px;height:28px;display:grid;place-items:center;margin-top:1px;border:2px solid #9a2429;border-radius:50%;background:rgba(255,255,255,.78);color:#9a2429;font-size:14px;font-weight:950}
.cash-guarantee-content{min-width:0}
.cash-guarantee-kicker{display:block;margin:0 0 3px;color:#9a2429;font-size:11px;font-weight:950;letter-spacing:.08em;text-transform:uppercase}
.cash-guarantee-content>strong{display:block;margin:0 0 7px;color:#2b2119;font-size:15px;line-height:1.35}
.cash-guarantee-content>p{margin:0;font-size:13px;line-height:1.58}
.cash-change-notice{display:flex;align-items:center;gap:9px;margin:12px 0 0!important;padding:10px 12px;border:1px solid rgba(168,35,40,.16);border-radius:10px;background:rgba(255,255,255,.68);color:#2d241d}
.cash-change-notice>span{width:24px;height:24px;flex:0 0 24px;display:grid;place-items:center;border-radius:50%;background:#a82328;color:#fff;font-weight:950}
.cash-change-notice strong{font-size:12.5px;line-height:1.4}
.cash-guarantee-consent{display:grid!important;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:11px;margin-top:12px!important;padding:13px 14px;border:1px solid #e2d7ca;border-left:3px solid #c5a978;border-radius:11px;background:#fffdf9;color:#51483f;font-size:12.5px!important;line-height:1.52!important;cursor:pointer}
.cash-guarantee-consent:hover{border-color:#cebda9;background:#fff}
.cash-guarantee-consent:focus-within{border-color:#a82328;box-shadow:0 0 0 3px rgba(168,35,40,.08)}
.cash-guarantee-consent input[type="checkbox"]{appearance:auto!important;-webkit-appearance:checkbox!important;width:18px!important;min-width:18px!important;max-width:18px!important;height:18px!important;min-height:18px!important;max-height:18px!important;margin:2px 0 0!important;padding:0!important;border:0!important;box-shadow:none!important;accent-color:#a82328;cursor:pointer}
.cash-guarantee-consent span{min-width:0;overflow-wrap:anywhere}
.delivery-card-only{margin:12px 0 0;padding:11px 13px;border:1px solid #e4ddd5;border-radius:11px;background:#f8f5f1;color:#4d443c;font-size:12.5px;font-weight:800}
@media(max-width:640px){.payment-choice-grid{grid-template-columns:1fr}.payment-choice-card{min-height:104px;padding:15px}.cash-payment-notice{grid-template-columns:28px minmax(0,1fr);padding:16px 15px}.cash-guarantee-icon{width:26px;height:26px}.payment-card-brands{margin-top:2px}}

/* V6.3.0-beta.92 — règlement : logos cartes uniformes et espèces simplifiées */
.payment-card-brands{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;margin-top:6px;min-height:30px}
.payment-card-brands img,.payment-card-brands img[alt="CB"],.payment-card-brands img[alt="Visa"],.payment-card-brands img[alt="Mastercard"]{display:block;width:64px!important;height:30px!important;max-width:none!important;object-fit:contain;border:1px solid #ded8d1;border-radius:4px;background:#fff;box-sizing:border-box;padding:2px}
.payment-cash-meta{display:inline-flex;align-items:center;width:max-content;margin-top:4px;color:#62594f;font-size:11px;font-weight:800}
.payment-cash-meta>span{display:none!important}
@media(max-width:420px){.payment-card-brands{gap:6px}.payment-card-brands img,.payment-card-brands img[alt="CB"],.payment-card-brands img[alt="Visa"],.payment-card-brands img[alt="Mastercard"]{width:58px!important;height:28px!important}}


/* V6.3.0-beta.93 — logos CB réellement sur une seule ligne */
.payment-choice-card .payment-card-brands{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;gap:8px!important;flex-wrap:nowrap!important;width:max-content;max-width:100%;}
.payment-choice-card .payment-card-brands>img{display:block!important;flex:0 0 64px!important;width:64px!important;height:30px!important;max-width:64px!important;object-fit:contain!important;margin:0!important;}
@media(max-width:420px){.payment-choice-card .payment-card-brands{gap:6px!important}.payment-choice-card .payment-card-brands>img{flex-basis:58px!important;width:58px!important;max-width:58px!important;height:28px!important}}
\n\n/* V6.3.0-beta.94 — coche dégagée des logos et pictogrammes CB sans cadre */
.payment-choice-card{grid-template-columns:48px minmax(0,1fr)!important;padding-right:16px!important;overflow:visible!important}
.payment-choice-check{position:absolute!important;top:14px!important;right:14px!important;z-index:2}
.payment-choice-copy>strong,.payment-choice-copy>small{padding-right:30px}
.payment-choice-card .payment-card-brands{width:auto!important;max-width:100%!important;padding-right:0!important}
.payment-choice-card .payment-card-brands>img,
.payment-choice-card .payment-card-brands>img[alt="CB"],
.payment-choice-card .payment-card-brands>img[alt="Visa"],
.payment-choice-card .payment-card-brands>img[alt="Mastercard"]{
  flex:0 1 64px!important;
  width:64px!important;
  height:30px!important;
  max-width:64px!important;
  object-fit:contain!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  padding:0!important;
  box-shadow:none!important;
}
@media(max-width:420px){
  .payment-choice-card{grid-template-columns:44px minmax(0,1fr)!important;gap:11px!important;padding-right:13px!important}
  .payment-choice-check{top:12px!important;right:12px!important}
  .payment-choice-copy>strong,.payment-choice-copy>small{padding-right:28px}
  .payment-choice-card .payment-card-brands{gap:5px!important}
  .payment-choice-card .payment-card-brands>img,
  .payment-choice-card .payment-card-brands>img[alt="CB"],
  .payment-choice-card .payment-card-brands>img[alt="Visa"],
  .payment-choice-card .payment-card-brands>img[alt="Mastercard"]{
    flex-basis:54px!important;width:54px!important;max-width:54px!important;height:27px!important;
  }
}
\n\n/* V6.3.0-beta.123 — Club Gastonello : consentements marketing explicites et attractifs */
.marketing-optin-block{position:relative;overflow:hidden;border:1px solid #e7d7c2!important;background:linear-gradient(145deg,#fffaf1 0%,#fff 62%,#fbf5ec 100%)!important;box-shadow:0 10px 28px rgba(57,38,22,.055)}
.marketing-optin-block:before{content:"";position:absolute;right:-44px;top:-56px;width:150px;height:150px;border-radius:50%;background:radial-gradient(circle,rgba(168,35,40,.09),rgba(168,35,40,0) 70%);pointer-events:none}
.marketing-optin-head{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr);gap:13px;align-items:start;margin-bottom:14px}
.marketing-optin-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:#971f25;color:#fff;font-size:18px;box-shadow:0 7px 18px rgba(151,31,37,.17)}
.marketing-optin-kicker{margin:1px 0 3px!important;color:#971f25!important;font-size:10px!important;font-weight:950!important;letter-spacing:.11em;text-transform:uppercase}
.marketing-optin-head h3{margin:0 0 5px;color:#261d17;font-size:18px;line-height:1.2}
.marketing-optin-head p:last-child{margin:0;color:#6c6157;font-size:12.5px;line-height:1.5}
.marketing-optin-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.marketing-optin-choice{display:grid!important;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:10px;margin:0!important;padding:13px 14px;border:1px solid #e4d8ca;border-radius:13px;background:rgba(255,255,255,.84);cursor:pointer;transition:border-color .16s ease,background .16s ease,transform .16s ease}
.marketing-optin-choice:hover{border-color:#ccb49d;background:#fff;transform:translateY(-1px)}
.marketing-optin-choice:focus-within{border-color:#971f25;box-shadow:0 0 0 3px rgba(151,31,37,.08)}
.marketing-optin-choice input[type="checkbox"]{appearance:auto!important;-webkit-appearance:checkbox!important;width:18px!important;min-width:18px!important;max-width:18px!important;height:18px!important;min-height:18px!important;max-height:18px!important;margin:2px 0 0!important;padding:0!important;accent-color:#971f25;cursor:pointer}
.marketing-optin-choice span{display:block;min-width:0}.marketing-optin-choice strong{display:block;color:#2c231d;font-size:12.5px;line-height:1.35}.marketing-optin-choice small{display:block;margin-top:4px;color:#72665d;font-size:10.5px;line-height:1.45}
.marketing-optin-legal{margin:10px 1px 0!important;color:#82766c!important;font-size:10px!important;line-height:1.45}
@media(max-width:650px){.marketing-optin-choices{grid-template-columns:1fr}.marketing-optin-head{grid-template-columns:38px minmax(0,1fr)}.marketing-optin-icon{width:38px;height:38px;border-radius:11px}.marketing-optin-head h3{font-size:16px}}

/* v0.6.8 — Responsive mobile robuste pour le checkout.
   Le bouton d'action doit rester au-dessus des barres système Android/Chrome,
   y compris sur les écrans courts et lorsque le viewport visuel se réduit. */
.checkout-submit-zone { position: relative; }

@media (max-width: 680px) {
  .checkout-dialog {
    width: min(100%, 760px);
    max-width: 100%;
    height: auto;
    max-height: calc(100vh - 8px);
    max-height: calc(100svh - 8px);
    margin-block: 4px;
    border-radius: 18px;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
  }

  .checkout-dialog form {
    min-height: 100%;
    padding-bottom: calc(112px + env(safe-area-inset-bottom, 0px));
  }

  .checkout-submit-zone {
    position: sticky;
    z-index: 12;
    bottom: 0;
    margin: 18px -18px calc(-27px - env(safe-area-inset-bottom, 0px));
    padding: 12px 18px calc(14px + env(safe-area-inset-bottom, 0px));
    background: linear-gradient(180deg, rgba(255,253,248,0), #fffdf8 18%, #fffdf8 100%);
  }

  .checkout-submit-zone .pay-button {
    min-height: 52px;
    margin: 0;
    box-shadow: 0 12px 28px rgba(127,66,42,.26);
  }

  .checkout-submit-zone .secure-payment {
    margin-bottom: 0;
    padding-bottom: 0;
  }

  .checkout-summary {
    scroll-margin-bottom: 150px;
  }
}

@media (max-width: 390px), (max-height: 760px) {
  .checkout-dialog form { padding: 20px 14px calc(106px + env(safe-area-inset-bottom, 0px)); }
  .checkout-block { margin: 14px 0; padding: 14px 12px; }
  .checkout-submit-zone {
    margin-inline: -14px;
    margin-bottom: calc(-20px - env(safe-area-inset-bottom, 0px));
    padding-inline: 14px;
  }
}

@media (max-width: 680px) {
  .cart-drawer {
    height: 100vh;
    height: 100svh;
    max-height: 100svh;
    padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px));
    overscroll-behavior: contain;
  }

  .drawer-footer {
    position: sticky;
    z-index: 8;
    bottom: 0;
    margin-inline: -16px;
    margin-bottom: calc(-12px - env(safe-area-inset-bottom, 0px));
    padding: 14px 16px calc(14px + env(safe-area-inset-bottom, 0px));
    background: #fffdf8;
    box-shadow: 0 -12px 24px rgba(23,49,38,.08);
  }

  .cart-lines {
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
  }
}
