/* =============================================================================
   Sandwiché by Route — Food truck libanais à Luxembourg
   GridCore Express · aperçu métier · design system (v2)
   Palette : coral #F96244 · amber #FF9C33 · teal #007C77 · cream #FFF4E8
   -----------------------------------------------------------------------------
   1  Tokens            9  Hero               17 Allergènes         25 Media-frame
   2  Reset / base      10 Concept cards      18 Food-truck grid    26 Reveal / motion
   3  Typographie       11 Dish cards         19 Agenda cards       27 Responsive
   4  Utilities         12 Steps              20 Gallery mosaic     28 Reduced-motion
   5  Buttons           13 Formula cards      21 Audience grid      29 Icons (gc-ic)
   6  Demo bar          14 Events teaser      22 Forms
   7  Header            15 CTA box            23 Contact cards
   8  Mobile menu       16 Menu               24 Footer
   ========================================================================== */

/* 1 — TOKENS ================================================================ */
:root {
  --gc-coral: #F96244;
  --gc-amber: #FF9C33;
  --gc-teal:  #007C77;
  --gc-teal-deep: #036661;

  --gc-coral-ink: #B23A1D;   /* ~5.5:1 on cream — small text/links */
  --gc-amber-ink: #8A5116;   /* ~5.9:1 on cream */
  --gc-amber-soft: #FFD9A6;  /* pale amber for small text on DARK panels (≥4.5:1 on teal) */

  --gc-cream:    #FFF4E8;
  --gc-white:    #FFFFFF;
  --gc-beige:    #FFE8D2;
  --gc-charcoal: #151515;
  --gc-ink:      #1E1E1E;

  --gc-bg:      var(--gc-cream);
  --gc-bg-2:    var(--gc-beige);
  --gc-surface: var(--gc-white);
  --gc-text:    var(--gc-ink);
  --gc-text-soft:  rgba(30,30,30,.68);
  --gc-text-faint: rgba(30,30,30,.46);
  --gc-line:        rgba(30,30,30,.10);
  --gc-line-strong: rgba(30,30,30,.16);
  --gc-header-bg: rgba(255,244,232,.82);

  --gc-radius:    18px;
  --gc-radius-lg: 28px;
  --gc-radius-sm: 12px;
  --gc-ease: cubic-bezier(.16,1,.3,1);
  --gc-ease-reveal: cubic-bezier(.2,.8,.2,1);
  --gc-maxw: 1200px;
  --gc-gutter: clamp(18px, 5vw, 56px);

  --gc-shadow-sm: 0 6px 18px -10px rgba(120,50,15,.28);
  --gc-shadow:    0 22px 50px -26px rgba(120,50,15,.30);
  --gc-shadow-lg: 0 40px 80px -34px rgba(120,50,15,.38);

  --gc-coral-grad: linear-gradient(135deg, #FFB454 0%, #F96244 62%, #EE4E37 100%);
  --gc-teal-grad:  linear-gradient(135deg, #0A8C86 0%, #007C77 100%);
  --gc-warm-grad:  linear-gradient(160deg, #FFF9F1 0%, #FFE8D2 100%);
  --gc-hero-grad:  radial-gradient(120% 90% at 82% 12%, #FFE8D2 0%, #FFF4E8 46%, #FFFBF5 100%);

  --gc-demobar-h: 40px;
  --gc-header-h: 68px;
  color-scheme: light;
}

/* 2 — RESET / BASE ========================================================== */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
  font-family: 'Nunito Sans', system-ui, -apple-system, sans-serif;
  font-size: 17px; line-height: 1.65;
  color: var(--gc-text); background: var(--gc-bg);
  -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
  overflow-x: clip;
}

img, svg, video { display: block; max-width: 100%; }
img { height: auto; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; cursor: pointer; background: none; border: 0; }
input, textarea, select { font: inherit; color: inherit; }
ul { list-style: none; padding: 0; }
:focus-visible { outline: 3px solid var(--gc-teal); outline-offset: 3px; border-radius: 6px; }

/* 3 — TYPOGRAPHIE =========================================================== */
h1, h2, h3, h4 { font-family: 'Fredoka', 'Nunito Sans', sans-serif; font-weight: 600; line-height: 1.08; letter-spacing: -.01em; color: var(--gc-text); }
h1 { font-size: clamp(2.3rem, 4.4vw + 1rem, 4.1rem); font-weight: 700; }
h2 { font-size: clamp(1.85rem, 2.6vw + .8rem, 3rem); }
h3 { font-size: clamp(1.2rem, 1vw + .8rem, 1.55rem); }
p { text-wrap: pretty; }

.gc-sbr-eyebrow {
  display: inline-flex; align-items: center; gap: .5em;
  font-family: 'Fredoka', sans-serif; font-weight: 600;
  font-size: .82rem; letter-spacing: .12em; text-transform: uppercase;
  color: var(--gc-coral-ink);
}
.gc-sbr-eyebrow--teal { color: var(--gc-teal-deep); }
.gc-sbr-eyebrow--amber { color: var(--gc-amber-soft); }
.gc-sbr-lead { font-size: clamp(1.06rem, .5vw + 1rem, 1.28rem); color: var(--gc-text-soft); }
.gc-sbr-en { font-style: italic; }

/* Logo (wordmark) */
.gc-sbr-logo { display: inline-flex; flex-direction: column; line-height: .92; padding: 4px 0; }
.gc-sbr-logo__main { font-family: 'Pacifico', 'Segoe Script', cursive; font-size: 1.68rem; color: var(--gc-coral); }
.gc-sbr-logo__sub  { font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: .66rem; letter-spacing: .34em; text-transform: uppercase; color: var(--gc-teal-deep); padding-left: .18em; }
.gc-sbr-logo--light .gc-sbr-logo__main { color: #fff; }
.gc-sbr-logo--light .gc-sbr-logo__sub  { color: var(--gc-amber); }

/* 4 — UTILITIES ============================================================= */
.gc-sbr-wrap { width: min(100% - 2 * var(--gc-gutter), var(--gc-maxw)); margin-inline: auto; }
.gc-sbr-wrap--narrow { max-width: 820px; }
.gc-sbr-menu-wrap { width: min(1120px, calc(100% - 32px)); margin-inline: auto; }
.gc-sbr-section { padding-block: clamp(3.4rem, 7vw, 7rem); }
.gc-sbr-section--tight { padding-block: clamp(2.6rem, 5vw, 4.5rem); }
.gc-sbr-section--cream { background: var(--gc-cream); }
.gc-sbr-section--white { background: var(--gc-white); }
.gc-sbr-section--beige { background: var(--gc-bg-2); }
.gc-sbr-head { max-width: 680px; margin-bottom: clamp(2rem, 4vw, 3.2rem); }
.gc-sbr-head--center { margin-inline: auto; text-align: center; }
.gc-sbr-head p { margin-top: .9rem; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.gc-sbr-tag {
  display: inline-flex; align-items: center; gap: .4em;
  font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: .74rem;
  letter-spacing: .04em; padding: .34em .8em; border-radius: 999px;
  background: var(--gc-beige); color: var(--gc-coral-ink);
  border: 1px solid rgba(178,58,29,.16);
}
.gc-sbr-tag--teal { background: rgba(0,124,119,.10); color: var(--gc-teal-deep); border-color: rgba(0,124,119,.22); }
.gc-sbr-tag .gc-ic { font-size: 1rem; }

/* 5 — BUTTONS =============================================================== */
.gc-sbr-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: .5em;
  font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: 1rem; line-height: 1;
  padding: .82em 1.5em; border-radius: 999px; min-height: 48px; text-align: center; white-space: nowrap;
  transition: transform .25s var(--gc-ease), box-shadow .25s var(--gc-ease), background-color .2s, color .2s;
  will-change: transform;
}
.gc-sbr-btn .gc-ic { font-size: 1.15rem; }
.gc-sbr-btn svg { width: 19px; height: 19px; flex: none; }
.gc-sbr-btn--primary { background: var(--gc-coral-grad); color: var(--gc-charcoal); box-shadow: var(--gc-shadow-sm); }
.gc-sbr-btn--primary:hover { transform: translateY(-2px); box-shadow: var(--gc-shadow); }
.gc-sbr-btn--teal { background: var(--gc-teal); color: #fff; box-shadow: var(--gc-shadow-sm); }
.gc-sbr-btn--teal:hover { transform: translateY(-2px); background: var(--gc-teal-deep); box-shadow: var(--gc-shadow); }
.gc-sbr-btn--ghost { background: transparent; color: var(--gc-teal-deep); border: 2px solid rgba(0,124,119,.34); }
.gc-sbr-btn--ghost:hover { background: rgba(0,124,119,.08); border-color: var(--gc-teal); }
.gc-sbr-btn--light { background: #fff; color: var(--gc-coral-ink); box-shadow: var(--gc-shadow-sm); }
.gc-sbr-btn--light:hover { transform: translateY(-2px); box-shadow: var(--gc-shadow); }
.gc-sbr-btn--sm { padding: .62em 1.15em; min-height: 44px; font-size: .92rem; }
.gc-sbr-btn--block { width: 100%; }
.gc-sbr-btnrow { display: flex; flex-wrap: wrap; gap: .8rem; }

.gc-sbr-textlink {
  display: inline-flex; align-items: center; gap: .4em;
  font-family: 'Fredoka', sans-serif; font-weight: 600; color: var(--gc-teal-deep);
  transition: gap .2s var(--gc-ease);
}
.gc-sbr-textlink svg { width: 17px; height: 17px; transition: transform .2s var(--gc-ease); }
.gc-sbr-textlink:hover { gap: .6em; }
.gc-sbr-textlink:hover svg { transform: translateX(3px); }

/* 6 — DEMO BAR ============================================================== */
.gc-sbr-demobar {
  position: relative; z-index: 60; min-height: var(--gc-demobar-h);
  background: var(--gc-charcoal); color: rgba(255,255,255,.82);
  display: flex; align-items: center; justify-content: center; gap: 1rem;
  padding: 6px var(--gc-gutter); flex-wrap: wrap; font-size: .8rem;
}
.gc-sbr-demobar__txt { text-align: center; }
.gc-sbr-demobar__txt strong { color: var(--gc-amber); font-weight: 700; }
.gc-sbr-demobar__cta {
  display: inline-flex; align-items: center; gap: .4em;
  font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: .8rem;
  color: var(--gc-charcoal); background: var(--gc-amber);
  padding: .3em .85em; border-radius: 999px; white-space: nowrap;
  transition: transform .2s var(--gc-ease);
}
.gc-sbr-demobar__cta svg { width: 15px; height: 15px; }
.gc-sbr-demobar__cta:hover { transform: translateX(2px); }

/* 7 — HEADER ================================================================ */
.gc-sbr-header {
  position: sticky; top: 0; z-index: 50;
  background: var(--gc-header-bg);
  -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
  border-bottom: 1px solid transparent;
  transition: box-shadow .3s var(--gc-ease), border-color .3s, background-color .3s;
}
.gc-sbr-header.is-stuck { box-shadow: 0 10px 30px -20px rgba(120,50,15,.5); border-bottom-color: var(--gc-line); background: rgba(255,244,232,.94); }
/* 3 zones : logo (gauche) · nav (centrée sur la page) · CTA (droite) */
.gc-sbr-header__inner { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1rem; min-height: var(--gc-header-h); }
.gc-sbr-header__inner > .gc-sbr-logo { justify-self: start; }
.gc-sbr-nav { display: flex; align-items: center; gap: .3rem; justify-self: center; }
.gc-sbr-nav__link {
  font-family: 'Fredoka', sans-serif; font-weight: 500; font-size: .98rem;
  padding: .5em .85em; border-radius: 999px; color: var(--gc-text-soft);
  transition: color .2s, background-color .2s;
}
.gc-sbr-nav__link:hover { color: var(--gc-coral-ink); background: rgba(249,98,68,.08); }
.gc-sbr-nav__link[aria-current="page"] { color: var(--gc-coral-ink); font-weight: 600; }
.gc-sbr-header__cta { grid-column: 3; justify-self: end; }
.gc-sbr-burger {
  grid-column: 3; justify-self: end;
  display: none; width: 46px; height: 46px; border-radius: 12px;
  align-items: center; justify-content: center; background: var(--gc-white); box-shadow: var(--gc-shadow-sm);
}
.gc-sbr-burger svg { width: 24px; height: 24px; color: var(--gc-coral-ink); }

/* 8 — MOBILE MENU =========================================================== */
.gc-sbr-scrim {
  position: fixed; inset: 0; z-index: 55; background: rgba(21,21,21,.42);
  opacity: 0; visibility: hidden; transition: opacity .3s var(--gc-ease), visibility .3s;
  -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
}
.gc-sbr-scrim.is-open { opacity: 1; visibility: visible; }
.gc-sbr-mobile {
  position: fixed; top: 0; right: 0; z-index: 56;
  width: min(84vw, 340px); height: 100dvh; background: var(--gc-cream);
  transform: translateX(100%); transition: transform .35s var(--gc-ease);
  display: flex; flex-direction: column; padding: 1.2rem 1.3rem 2rem;
  box-shadow: -30px 0 60px -30px rgba(120,50,15,.5); overflow-y: auto;
}
.gc-sbr-mobile.is-open { transform: none; }
.gc-sbr-mobile__top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1.4rem; }
.gc-sbr-mobile__close { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--gc-white); box-shadow: var(--gc-shadow-sm); }
.gc-sbr-mobile__close svg { width: 22px; height: 22px; color: var(--gc-coral-ink); }
.gc-sbr-mobile__link {
  font-family: 'Fredoka', sans-serif; font-weight: 500; font-size: 1.16rem;
  padding: .72em .2em; border-bottom: 1px solid var(--gc-line); color: var(--gc-text);
}
.gc-sbr-mobile__link[aria-current="page"] { color: var(--gc-coral-ink); font-weight: 600; }
.gc-sbr-mobile__cta { margin-top: 1.4rem; }

/* 9 — HERO ================================================================== */
.gc-sbr-hero { position: relative; overflow: hidden; background: var(--gc-hero-grad); padding-block: clamp(2.6rem, 5vw, 5.5rem); }
.gc-sbr-hero::before, .gc-sbr-hero::after { content: ""; position: absolute; border-radius: 50%; filter: blur(8px); z-index: 0; pointer-events: none; }
.gc-sbr-hero::before { width: 46vw; max-width: 620px; aspect-ratio: 1; top: -20%; right: -14%; background: radial-gradient(circle at 40% 40%, rgba(255,156,51,.40), transparent 66%); }
.gc-sbr-hero::after { width: 34vw; max-width: 420px; aspect-ratio: 1; bottom: -24%; left: -14%; background: radial-gradient(circle at 50% 50%, rgba(0,124,119,.18), transparent 66%); }
.gc-sbr-hero__grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.04fr); gap: clamp(2rem, 4vw, 4.4rem); align-items: center; }
.gc-sbr-hero__badge { margin-bottom: 1.2rem; }
.gc-sbr-hero__badge .gc-sbr-tag { font-size: .82rem; padding: .46em 1em; background: #fff; box-shadow: var(--gc-shadow-sm); border-color: transparent; }
.gc-sbr-hero h1 { margin-bottom: 1rem; }
.gc-sbr-hero h1 em { font-style: normal; color: var(--gc-coral); }
/* Catering : titre forcé sur 2 lignes (taille réduite pour tenir la colonne) */
.gc-sbr-hero__h1--split { font-size: clamp(2.1rem, 2.4vw + 1rem, 3rem); }
.gc-sbr-hero__h1--split span { display: block; }
.gc-sbr-hero__sub { font-size: clamp(1.12rem, .8vw + 1rem, 1.4rem); font-weight: 600; color: var(--gc-text); margin-bottom: .7rem; }
.gc-sbr-hero__text { margin-bottom: 1.7rem; max-width: 46ch; }
.gc-sbr-hero__ctas { gap: .7rem .8rem; }
.gc-sbr-hero__proof { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.7rem; }

/* Hero visual — truck dominant + floating chips + food cards */
.gc-sbr-hero__visual { position: relative; }
.gc-sbr-hero__truck { box-shadow: var(--gc-shadow-lg); border: 5px solid #fff; --mf-ratio: 5/4; }
.gc-sbr-hero__chips { position: absolute; top: 6%; right: -3%; z-index: 4; display: grid; gap: .5rem; }
.gc-sbr-hero__chip {
  display: inline-flex; align-items: center; gap: .5em; align-self: end;
  background: #fff; border-radius: 999px; padding: .5em .9em; box-shadow: var(--gc-shadow);
  font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: .86rem; white-space: nowrap;
  border: 1px solid var(--gc-line);
}
.gc-sbr-hero__chip .gc-ic { font-size: 1.05rem; color: var(--gc-teal); }
.gc-sbr-hero__chip:nth-child(2) .gc-ic { color: var(--gc-coral); }
.gc-sbr-hero__chip:nth-child(3) .gc-ic { color: var(--gc-amber-ink); }
.gc-sbr-hero__foodrow {
  position: absolute; left: -4%; bottom: -7%; z-index: 4; display: flex; gap: .55rem;
  background: rgba(255,255,255,.9); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  padding: .6rem; border-radius: 16px; box-shadow: var(--gc-shadow); border: 1px solid var(--gc-line);
}
.gc-sbr-hero__food { width: 66px; text-align: center; }
.gc-sbr-hero__food .media-frame { --mf-ratio: 1; border-radius: 10px; margin-bottom: .3rem; }
.gc-sbr-hero__food span { font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: .64rem; color: var(--gc-text-soft); display: block; line-height: 1.1; }

/* 10 — CONCEPT CARDS ======================================================== */
.gc-sbr-cardgrid { display: grid; gap: clamp(1rem, 2vw, 1.6rem); grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.gc-sbr-concept-card {
  background: var(--gc-white); border-radius: var(--gc-radius-lg); padding: 1.8rem 1.7rem;
  border: 1px solid var(--gc-line); box-shadow: var(--gc-shadow-sm);
  transition: transform .3s var(--gc-ease), box-shadow .3s var(--gc-ease);
}
.gc-sbr-concept-card:hover { transform: translateY(-5px); box-shadow: var(--gc-shadow); }
.gc-sbr-concept-card__ic {
  width: 54px; height: 54px; border-radius: 15px; display: grid; place-items: center;
  background: var(--gc-warm-grad); color: var(--gc-coral); margin-bottom: 1.1rem;
  border: 1px solid rgba(249,98,68,.16); font-size: 1.55rem;
}
.gc-sbr-concept-card:nth-child(2) .gc-sbr-concept-card__ic { color: var(--gc-amber-ink); }
.gc-sbr-concept-card:nth-child(3) .gc-sbr-concept-card__ic { color: var(--gc-teal); background: rgba(0,124,119,.08); border-color: rgba(0,124,119,.16); }
.gc-sbr-concept-card h3 { margin-bottom: .5rem; }
.gc-sbr-concept-card p { color: var(--gc-text-soft); font-size: .98rem; }

/* 11 — DISH CARDS (favoris) ================================================= */
.gc-sbr-dishgrid { display: grid; gap: clamp(1rem, 2vw, 1.5rem); grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.gc-sbr-dish-card {
  background: var(--gc-white); border-radius: var(--gc-radius-lg); overflow: hidden;
  border: 1px solid var(--gc-line); box-shadow: var(--gc-shadow-sm);
  display: flex; flex-direction: column; transition: transform .3s var(--gc-ease), box-shadow .3s var(--gc-ease);
}
.gc-sbr-dish-card:hover { transform: translateY(-5px); box-shadow: var(--gc-shadow); }
.gc-sbr-dish-card .media-frame { border-radius: 0; }
.gc-sbr-dish-card__body { padding: 1.2rem 1.3rem 1.4rem; display: flex; flex-direction: column; gap: .5rem; flex: 1; }
.gc-sbr-dish-card__head { display: flex; align-items: baseline; justify-content: space-between; gap: .6rem; }
.gc-sbr-dish-card h3 { font-size: 1.28rem; }
.gc-sbr-dish-card p { color: var(--gc-text-soft); font-size: .95rem; flex: 1; }
.gc-sbr-dish-card .gc-sbr-textlink { margin-top: .4rem; }

/* 12 — STEPS ================================================================ */
.gc-sbr-steps { display: grid; gap: clamp(1rem, 2vw, 1.6rem); grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); counter-reset: step; }
.gc-sbr-step { position: relative; background: var(--gc-white); border-radius: var(--gc-radius-lg); padding: 2rem 1.6rem 1.7rem; border: 1px solid var(--gc-line); box-shadow: var(--gc-shadow-sm); }
.gc-sbr-step__num { counter-increment: step; font-family: 'Fredoka', sans-serif; font-weight: 700; font-size: 1.3rem; width: 46px; height: 46px; border-radius: 50%; display: grid; place-items: center; background: var(--gc-coral-grad); color: var(--gc-charcoal); margin-bottom: 1rem; }
.gc-sbr-step__num::before { content: counter(step); }
.gc-sbr-step h3 { font-size: 1.2rem; margin-bottom: .4rem; }
.gc-sbr-step p { color: var(--gc-text-soft); font-size: .96rem; }

/* 13 — FORMULA CARDS ======================================================== */
.gc-sbr-formulagrid { display: grid; gap: clamp(1rem, 2vw, 1.5rem); grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr)); }
.gc-sbr-formula-card {
  position: relative; overflow: hidden; border-radius: var(--gc-radius-lg);
  background: var(--gc-white); border: 1px solid var(--gc-line); box-shadow: var(--gc-shadow-sm);
  display: flex; flex-direction: column; transition: transform .3s var(--gc-ease), box-shadow .3s var(--gc-ease);
}
.gc-sbr-formula-card:hover { transform: translateY(-5px); box-shadow: var(--gc-shadow); }
.gc-sbr-formula-card .media-frame { border-radius: 0; --mf-ratio: 16/10; }
.gc-sbr-formula-card__body { padding: 1.4rem 1.5rem 1.6rem; display: flex; flex-direction: column; gap: .5rem; flex: 1; }
.gc-sbr-formula-card__label { font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: .74rem; letter-spacing: .1em; text-transform: uppercase; color: var(--gc-teal-deep); }
.gc-sbr-formula-card h3 { font-size: 1.34rem; }
.gc-sbr-formula-card p { color: var(--gc-text-soft); font-size: .96rem; flex: 1; }
.gc-sbr-formula-card .gc-sbr-textlink { margin-top: .3rem; }

/* 14 — EVENTS TEASER ======================================================== */
/* deeper teal than the button gradient so white body text + pale-amber eyebrow both clear AA (≥4.5:1) everywhere on the panel */
.gc-sbr-events { position: relative; overflow: hidden; background: linear-gradient(135deg, #046A64 0%, #024F4A 100%); color: #fff; border-radius: var(--gc-radius-lg); padding: clamp(2.2rem, 5vw, 4rem); }
.gc-sbr-events::after { content: ""; position: absolute; width: 320px; height: 320px; border-radius: 50%; background: radial-gradient(circle, rgba(255,156,51,.34), transparent 66%); top: -40%; right: -8%; pointer-events: none; }
.gc-sbr-events__inner { position: relative; z-index: 1; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.6rem; }
.gc-sbr-events__txt { max-width: 42rem; }
.gc-sbr-events h2 { color: #fff; margin-bottom: .6rem; font-size: clamp(1.55rem, 1vw + 1.15rem, 2.2rem); line-height: 1.16; }
.gc-sbr-events h2 span { display: block; } /* forces exactly 2 lines : « Sur la route des événements » / « au Luxembourg » */
.gc-sbr-events p { color: rgba(255,255,255,.9); }
/* stacke le bouton sous le texte dès la tablette pour que le titre garde toute la largeur (jamais 3 lignes) */
@media (max-width: 860px) { .gc-sbr-events__inner { flex-direction: column; align-items: flex-start; } }

/* 15 — CTA BOX ============================================================== */
.gc-sbr-ctabox { text-align: center; background: var(--gc-warm-grad); border-radius: var(--gc-radius-lg); padding: clamp(2.6rem, 6vw, 5rem) clamp(1.4rem, 4vw, 3rem); border: 1px solid var(--gc-line); position: relative; overflow: hidden; }
.gc-sbr-ctabox::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 20% 0%, rgba(249,98,68,.10), transparent 55%), radial-gradient(circle at 90% 110%, rgba(0,124,119,.10), transparent 55%); pointer-events: none; }
.gc-sbr-ctabox > * { position: relative; z-index: 1; }
.gc-sbr-ctabox h2 { margin-bottom: 1.4rem; max-width: 22ch; margin-inline: auto; }
.gc-sbr-ctabox .gc-sbr-btnrow { justify-content: center; }

/* 16 — MENU ================================================================= */
.gc-sbr-filter { display: flex; flex-wrap: wrap; gap: .55rem; margin-bottom: clamp(1.8rem, 3vw, 2.6rem); }
.gc-sbr-chip {
  font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: .94rem;
  padding: .58em 1.15em; border-radius: 999px; min-height: 44px;
  background: var(--gc-white); color: var(--gc-text-soft); border: 1.5px solid var(--gc-line-strong);
  transition: background-color .2s, color .2s, border-color .2s, transform .15s var(--gc-ease);
}
.gc-sbr-chip:hover { border-color: var(--gc-coral); color: var(--gc-coral-ink); }
.gc-sbr-chip.is-active { background: var(--gc-coral-grad); color: var(--gc-charcoal); border-color: transparent; }

.gc-sbr-menu-cat { margin-bottom: clamp(2.8rem, 4.5vw, 3.8rem); scroll-margin-top: 96px; }
.gc-sbr-menu-cat__title { display: flex; align-items: center; gap: .8rem; margin-bottom: 1.2rem; padding-top: .2rem; }
.gc-sbr-menu-cat__title h2 { font-size: clamp(1.4rem, 1.5vw + 1rem, 1.95rem); white-space: nowrap; }
.gc-sbr-menu-cat__title span { flex: 1; height: 2px; background: linear-gradient(90deg, var(--gc-line-strong), transparent); border-radius: 2px; }

.gc-sbr-menu-list { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
.gc-sbr-menu-item {
  position: relative; display: flex; gap: 1rem; background: var(--gc-white);
  border: 1px solid var(--gc-line); border-radius: var(--gc-radius); padding: .9rem;
  box-shadow: var(--gc-shadow-sm); transition: transform .25s var(--gc-ease), box-shadow .25s var(--gc-ease);
}
.gc-sbr-menu-item:hover { transform: translateY(-3px); box-shadow: var(--gc-shadow); }
.gc-sbr-menu-item.is-hidden { display: none; }
.gc-sbr-menu-item__img { width: 96px; flex: none; }
.gc-sbr-menu-item__img .media-frame { --mf-ratio: 1; border-radius: var(--gc-radius-sm); }
.gc-sbr-menu-item__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: .3rem; }
.gc-sbr-menu-item__head { display: flex; align-items: baseline; justify-content: space-between; gap: .6rem; }
.gc-sbr-menu-item__head h3 { font-size: 1.12rem; }
.gc-sbr-menu-item__price { font-family: 'Fredoka', sans-serif; font-weight: 600; color: var(--gc-coral-ink); white-space: nowrap; }
.gc-sbr-menu-item__price--tbc { font-size: .82rem; color: var(--gc-teal-deep); }
.gc-sbr-menu-item p { font-size: .92rem; color: var(--gc-text-soft); line-height: 1.5; }
.gc-sbr-menu-item__foot { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; margin-top: auto; padding-top: .3rem; }

/* Populaire badge */
.gc-sbr-pop {
  display: inline-flex; align-items: center; gap: .35em;
  font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: .68rem; letter-spacing: .05em; text-transform: uppercase;
  color: var(--gc-charcoal); background: linear-gradient(135deg, #FFD27A, #FF9C33);
  padding: .28em .6em; border-radius: 999px;
}
.gc-sbr-pop .gc-ic { font-size: .85rem; }

/* Allergen icon list (inside menu item) */
.gc-sbr-alg { display: inline-flex; align-items: center; gap: .3rem; color: var(--gc-text-faint); }
.gc-sbr-alg .gc-ic { font-size: 1rem; }

/* Drinks — product cards (image + nom / volume / prix, jamais collés) */
.gc-sbr-drinks { display: grid; gap: .9rem; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.gc-sbr-drink {
  display: grid; grid-template-columns: 88px 1fr; align-items: center; gap: 1rem;
  background: var(--gc-white); border: 1px solid var(--gc-line); border-radius: var(--gc-radius);
  padding: 1rem; box-shadow: var(--gc-shadow-sm); min-height: 104px;
  transition: transform .25s var(--gc-ease), box-shadow .25s var(--gc-ease);
}
.gc-sbr-drink:hover { transform: translateY(-3px); box-shadow: var(--gc-shadow); }
.gc-sbr-drink.is-hidden { display: none; }
.gc-sbr-drink__ic { width: 88px; height: 80px; border-radius: 12px; display: grid; place-items: center; background: #fff; border: 1px solid var(--gc-line); overflow: hidden; padding: 5px; }
.gc-sbr-drink__ic img { width: 100%; height: 100%; object-fit: contain; }
.gc-sbr-drink__body { min-width: 0; }
.gc-sbr-drink__name { font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: 1.02rem; line-height: 1.15; color: var(--gc-text); }
.gc-sbr-drink__meta { font-size: .82rem; color: var(--gc-text-soft); margin-top: 2px; }
.gc-sbr-drink__price { font-family: 'Fredoka', sans-serif; font-weight: 700; color: var(--gc-coral-ink); font-size: 1.08rem; margin-top: .35rem; }
@media (max-width: 900px) { .gc-sbr-drinks { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .gc-sbr-drinks { grid-template-columns: 1fr; } }

.gc-sbr-price-note { margin-top: 1.8rem; font-size: .9rem; color: var(--gc-text-soft); text-align: center; font-style: italic; }

/* 17 — ALLERGÈNES =========================================================== */
.gc-sbr-allergens { background: var(--gc-white); border: 1px solid var(--gc-line); border-radius: var(--gc-radius-lg); padding: clamp(1.6rem, 3vw, 2.4rem); box-shadow: var(--gc-shadow-sm); }
.gc-sbr-allergens h2 { font-size: clamp(1.3rem, 1.4vw + 1rem, 1.7rem); margin-bottom: .4rem; }
.gc-sbr-allergens > p { color: var(--gc-text-soft); font-size: .95rem; margin-bottom: 1.2rem; }
.gc-sbr-allergen-row { display: flex; flex-wrap: wrap; gap: .55rem; }
.gc-sbr-allergen-chip {
  display: inline-flex; align-items: center; gap: .45em;
  font-family: 'Fredoka', sans-serif; font-weight: 500; font-size: .88rem;
  padding: .42em .9em; border-radius: 999px;
  background: var(--gc-cream); color: var(--gc-text); border: 1px solid var(--gc-line-strong);
}
.gc-sbr-allergen-chip .gc-ic { font-size: 1rem; color: var(--gc-teal); }

/* 18 — FOOD-TRUCK INFO GRID ================================================= */
.gc-sbr-infogrid { display: grid; gap: clamp(1rem, 2vw, 1.6rem); grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.gc-sbr-info-card { background: var(--gc-white); border-radius: var(--gc-radius-lg); overflow: hidden; border: 1px solid var(--gc-line); box-shadow: var(--gc-shadow-sm); display: flex; flex-direction: column; }
.gc-sbr-info-card__body { padding: 1.5rem 1.6rem 1.7rem; }
.gc-sbr-info-card__ic { width: 50px; height: 50px; border-radius: 14px; display: grid; place-items: center; background: var(--gc-warm-grad); color: var(--gc-coral); margin-bottom: 1rem; border: 1px solid rgba(249,98,68,.16); font-size: 1.45rem; }
.gc-sbr-info-card:nth-child(2) .gc-sbr-info-card__ic { color: var(--gc-amber-ink); }
.gc-sbr-info-card:nth-child(3) .gc-sbr-info-card__ic { color: var(--gc-teal); background: rgba(0,124,119,.08); border-color: rgba(0,124,119,.16); }
.gc-sbr-info-card h3 { margin-bottom: .5rem; }
.gc-sbr-info-card p { color: var(--gc-text-soft); font-size: .97rem; }

/* 19 — AGENDA CARDS ========================================================= */
.gc-sbr-agenda { display: grid; gap: clamp(1rem, 2vw, 1.5rem); grid-template-columns: repeat(auto-fit, minmax(min(100%, 270px), 1fr)); }
.gc-sbr-agenda-card { display: flex; flex-direction: column; gap: .55rem; background: var(--gc-white); border: 1px solid var(--gc-line); border-radius: var(--gc-radius-lg); padding: 1.6rem 1.5rem; box-shadow: var(--gc-shadow-sm); border-top: 4px solid var(--gc-amber); }
.gc-sbr-agenda-card:nth-child(2) { border-top-color: var(--gc-coral); }
.gc-sbr-agenda-card:nth-child(3) { border-top-color: var(--gc-teal); }
.gc-sbr-agenda-card__date { display: inline-flex; align-items: center; gap: .45em; font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: .82rem; letter-spacing: .04em; text-transform: uppercase; color: var(--gc-amber-ink); }
.gc-sbr-agenda-card__date .gc-ic { font-size: 1.05rem; }
.gc-sbr-agenda-card h3 { font-size: 1.24rem; }
.gc-sbr-agenda-card__meta { display: flex; flex-direction: column; gap: .35rem; }
.gc-sbr-agenda-card__row { display: flex; align-items: center; gap: .45em; color: var(--gc-text-soft); font-size: .95rem; }
.gc-sbr-agenda-card__row .gc-ic { font-size: 1.05rem; color: var(--gc-teal); flex: none; }
.gc-sbr-agenda-card .gc-sbr-btn { margin-top: .4rem; }
/* Agenda — état « pas de dates fixes » : renvoi propre vers Instagram (remplace les cartes placeholder) */
.gc-sbr-agenda-note { display: flex; align-items: center; gap: clamp(1.1rem, 3vw, 2rem); flex-wrap: wrap; background: var(--gc-white); border: 1px solid var(--gc-line); border-left: 5px solid var(--gc-teal); border-radius: var(--gc-radius-lg); padding: clamp(1.6rem, 3.5vw, 2.4rem); box-shadow: var(--gc-shadow-sm); }
.gc-sbr-agenda-note__ic { flex: none; width: 60px; height: 60px; border-radius: 50%; display: grid; place-items: center; background: rgba(0,124,119,.10); color: var(--gc-teal); }
.gc-sbr-agenda-note__ic .gc-ic { font-size: 1.7rem; }
.gc-sbr-agenda-note__body { flex: 1 1 260px; }
.gc-sbr-agenda-note__body h3 { font-size: 1.28rem; margin-bottom: .3rem; }
.gc-sbr-agenda-note__body p { color: var(--gc-text-soft); }
.gc-sbr-agenda-note .gc-sbr-btn { flex: none; }

/* 20 — GALLERY MOSAIC ======================================================= */
.gc-sbr-mosaic { display: grid; gap: clamp(.7rem, 1.5vw, 1.1rem); grid-template-columns: repeat(3, 1fr); grid-auto-rows: 1fr; }
.gc-sbr-mosaic .media-frame { --mf-ratio: 1; box-shadow: var(--gc-shadow-sm); height: 100%; }
.gc-sbr-mosaic .media-frame:first-child { grid-column: span 2; grid-row: span 2; }

/* 21 — AUDIENCE GRID ======================================================== */
.gc-sbr-audience { display: grid; gap: .8rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 165px), 1fr)); }
.gc-sbr-audience-item { display: flex; align-items: center; gap: .7rem; background: var(--gc-white); border: 1px solid var(--gc-line); border-radius: var(--gc-radius); padding: .95rem 1.1rem; box-shadow: var(--gc-shadow-sm); font-family: 'Fredoka', sans-serif; font-weight: 500; font-size: 1rem; transition: transform .25s var(--gc-ease), box-shadow .25s var(--gc-ease); }
.gc-sbr-audience-item:hover { transform: translateY(-3px); box-shadow: var(--gc-shadow); }
.gc-sbr-audience-item .gc-ic { font-size: 1.35rem; color: var(--gc-teal); flex: none; }

/* 22 — FORMS ================================================================ */
.gc-sbr-formwrap { background: var(--gc-white); border: 1px solid var(--gc-line); border-radius: var(--gc-radius-lg); padding: clamp(1.6rem, 4vw, 2.8rem); box-shadow: var(--gc-shadow-sm); }
.gc-sbr-form { display: grid; gap: 1.1rem; grid-template-columns: repeat(2, 1fr); }
.gc-sbr-field { display: flex; flex-direction: column; gap: .4rem; }
.gc-sbr-field--full { grid-column: 1 / -1; }
.gc-sbr-field label { font-family: 'Fredoka', sans-serif; font-weight: 500; font-size: .92rem; }
.gc-sbr-field label .req { color: var(--gc-coral-ink); }
.gc-sbr-field input, .gc-sbr-field textarea, .gc-sbr-field select {
  border: 1.5px solid var(--gc-line-strong); border-radius: var(--gc-radius-sm);
  padding: .72em .9em; background: var(--gc-cream); transition: border-color .2s, background-color .2s; width: 100%; min-height: 46px;
}
.gc-sbr-field textarea { min-height: 120px; resize: vertical; }
.gc-sbr-field input:focus, .gc-sbr-field textarea:focus, .gc-sbr-field select:focus { outline: none; border-color: var(--gc-teal); background: #fff; }
.gc-sbr-field.has-error input, .gc-sbr-field.has-error textarea, .gc-sbr-field.has-error select { border-color: #C6402A; background: #FFF3F0; }
.gc-sbr-field__err { font-size: .82rem; color: #A2331F; display: none; }
.gc-sbr-field.has-error .gc-sbr-field__err { display: block; }
.gc-sbr-form__actions { grid-column: 1 / -1; margin-top: .3rem; }
.gc-sbr-form-success {
  grid-column: 1 / -1; display: none; align-items: flex-start; gap: .9rem;
  background: rgba(0,124,119,.08); border: 1px solid rgba(0,124,119,.28); border-radius: var(--gc-radius); padding: 1.1rem 1.3rem;
}
.gc-sbr-form-success.is-visible { display: flex; }
.gc-sbr-form-success .gc-ic { font-size: 1.6rem; color: var(--gc-teal); flex: none; margin-top: 2px; }
.gc-sbr-form-success strong { font-family: 'Fredoka', sans-serif; display: block; margin-bottom: .1rem; }
.gc-sbr-form-success p { font-size: .95rem; color: var(--gc-text-soft); }

/* 23 — CONTACT CARDS ======================================================== */
.gc-sbr-contactgrid { display: grid; gap: clamp(1rem, 2vw, 1.4rem); grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); }
.gc-sbr-contact-card { display: flex; flex-direction: column; gap: .55rem; background: var(--gc-white); border: 1px solid var(--gc-line); border-radius: var(--gc-radius-lg); padding: 1.6rem 1.5rem; box-shadow: var(--gc-shadow-sm); transition: transform .3s var(--gc-ease), box-shadow .3s var(--gc-ease); }
.gc-sbr-contact-card:hover { transform: translateY(-4px); box-shadow: var(--gc-shadow); }
.gc-sbr-contact-card__ic { width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; background: var(--gc-warm-grad); color: var(--gc-coral); border: 1px solid rgba(249,98,68,.16); font-size: 1.35rem; }
.gc-sbr-contact-card:nth-child(3) .gc-sbr-contact-card__ic { color: var(--gc-teal); background: rgba(0,124,119,.08); border-color: rgba(0,124,119,.16); }
.gc-sbr-contact-card__label { font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: .8rem; letter-spacing: .06em; text-transform: uppercase; color: var(--gc-text-soft); }
.gc-sbr-contact-card__val { font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: 1.02rem; color: var(--gc-text); overflow-wrap: anywhere; word-break: normal; line-height: 1.3; }
.gc-sbr-contact-card a.gc-sbr-contact-card__val:hover { color: var(--gc-coral-ink); }
.gc-sbr-contact-card .gc-sbr-btn { margin-top: auto; }

/* Hours line */
.gc-sbr-hours { display: inline-flex; align-items: center; gap: .5em; font-size: .95rem; color: var(--gc-text-soft); }
.gc-sbr-hours .gc-ic { font-size: 1.1rem; color: var(--gc-teal); }

/* Form : label optionnel + note WhatsApp */
.gc-sbr-field__opt { font-weight: 500; font-size: .8rem; color: var(--gc-text-soft); }
.gc-sbr-wa-note { display: inline-flex; align-items: center; gap: .5em; margin-top: 1rem; font-size: .95rem; color: var(--gc-text-soft); }
.gc-sbr-wa-note .gc-ic { color: var(--gc-teal); font-size: 1.2rem; }
.gc-sbr-wa-note a { color: var(--gc-teal-deep); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }

/* 23b — TESTIMONIALS (avis clients) ========================================= */
.gc-sbr-testigrid { display: grid; gap: clamp(1rem, 2vw, 1.5rem); grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); max-width: 920px; margin-inline: auto; }
.gc-sbr-testi {
  display: flex; flex-direction: column; gap: 1.1rem; min-height: 250px;
  background: var(--gc-white); border: 1px solid var(--gc-line); border-top: 4px solid var(--gc-coral);
  border-radius: var(--gc-radius-lg); padding: 2rem 2.1rem; box-shadow: var(--gc-shadow-sm);
  transition: transform .3s var(--gc-ease), box-shadow .3s var(--gc-ease);
}
.gc-sbr-testi:nth-child(2) { border-top-color: var(--gc-teal); }
.gc-sbr-testi:hover { transform: translateY(-5px); box-shadow: var(--gc-shadow); }
.gc-sbr-testi__top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.gc-sbr-testi__quote { color: var(--gc-coral); font-size: 2.7rem; line-height: .8; }
.gc-sbr-testi:nth-child(2) .gc-sbr-testi__quote { color: var(--gc-teal); }
.gc-sbr-testi__stars { display: inline-flex; gap: .18rem; color: var(--gc-amber); }
.gc-sbr-testi__stars .gc-ic { font-size: 1.15rem; }
.gc-sbr-testi__text { font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: clamp(1.35rem, 1.4vw + 1rem, 1.7rem); color: var(--gc-text); line-height: 1.3; }
.gc-sbr-testi__foot { margin-top: auto; padding-top: 1rem; border-top: 1px solid var(--gc-line); display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .5rem .9rem; }
.gc-sbr-testi__meta { display: inline-flex; align-items: center; gap: .5em; font-size: .88rem; color: var(--gc-text-soft); }
.gc-sbr-testi__meta .gc-ic { color: var(--gc-coral); font-size: 1.1rem; }
.gc-sbr-testi:nth-child(2) .gc-sbr-testi__meta .gc-ic { color: var(--gc-teal); }
.gc-sbr-testi__link { font-size: .92rem; }

/* 23c — FEATURE SPLIT (image + texte) ======================================= */
.gc-sbr-feature { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(1.4rem, 3vw, 3rem); align-items: center; }
.gc-sbr-feature--rev .gc-sbr-feature__media { order: 2; }
.gc-sbr-feature__media { --mf-ratio: 16/10; box-shadow: var(--gc-shadow); border: 5px solid #fff; border-radius: var(--gc-radius-lg); }
.gc-sbr-feature__body h2 { margin-bottom: .6rem; font-size: clamp(1.5rem, 1.2vw + 1rem, 2rem); line-height: 1.18; text-wrap: balance; }
.gc-sbr-feature__body p { color: var(--gc-text-soft); margin-bottom: 1.2rem; }
.gc-sbr-feature__body .gc-sbr-eyebrow { margin-bottom: .5rem; }

/* 24 — FOOTER =============================================================== */
.gc-sbr-footer { background: var(--gc-charcoal); color: rgba(255,255,255,.72); padding-top: clamp(2.8rem, 6vw, 4.5rem); }
.gc-sbr-footer__grid { display: grid; gap: 2rem; grid-template-columns: 1.4fr 1fr 1.2fr; padding-bottom: 2.6rem; }
.gc-sbr-footer__brand { max-width: 30ch; }
.gc-sbr-footer__brand p { margin-top: .9rem; color: rgba(255,255,255,.62); font-size: .96rem; }
.gc-sbr-footer__social { display: flex; gap: .6rem; margin-top: 1.2rem; }
.gc-sbr-footer__social a { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: rgba(255,255,255,.08); color: #fff; transition: background-color .2s, transform .2s var(--gc-ease); font-size: 1.25rem; }
.gc-sbr-footer__social a:hover { background: var(--gc-coral); transform: translateY(-2px); }
.gc-sbr-wolt-ic { width: 1.4em; height: 1.4em; object-fit: contain; border-radius: 5px; display: inline-block; flex: none; }
.gc-sbr-footer__col h4 { font-size: .82rem; letter-spacing: .1em; text-transform: uppercase; color: var(--gc-amber); margin-bottom: 1rem; }
.gc-sbr-footer__col li { margin-bottom: .55rem; }
.gc-sbr-footer__col a, .gc-sbr-footer__col span { color: rgba(255,255,255,.72); font-size: .96rem; transition: color .2s; }
.gc-sbr-footer__col a:hover { color: #fff; }
.gc-sbr-footer__col .gc-sbr-hours { color: rgba(255,255,255,.72); }
.gc-sbr-footer__col .gc-sbr-hours .gc-ic { color: var(--gc-amber); }
.gc-sbr-footer__wa { display: inline-flex; align-items: center; gap: .45em; }
.gc-sbr-footer__wa .gc-ic { color: var(--gc-amber); font-size: 1.05rem; }
.gc-sbr-footer__wa:hover .gc-ic { color: #fff; }
.gc-sbr-footer__sign {
  border-top: 1px solid rgba(255,255,255,.12);
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .5rem;
  padding-block: 1.3rem; font-family: 'DM Mono', 'Nunito Sans', monospace, sans-serif; font-size: .8rem; color: rgba(255,255,255,.5);
}
.gc-sbr-footer__sign a { color: rgba(255,255,255,.72); }
.gc-sbr-footer__sign a:hover { color: var(--gc-amber); }

/* 25 — MEDIA-FRAME (placeholder-safe) ======================================= */
.media-frame { position: relative; overflow: hidden; display: block; aspect-ratio: var(--mf-ratio, 4/3); border-radius: var(--gc-radius); background: linear-gradient(160deg, #FFE8D2, #FFF4E8); }
.media-frame img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; transition: opacity .3s; }
.media-frame.is-empty { border: 1px dashed var(--gc-line-strong); }
.media-frame.is-empty img { opacity: 0; }
.media-frame.is-empty::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 30% 25%, rgba(255,156,51,.14), transparent 60%), radial-gradient(circle at 80% 90%, rgba(0,124,119,.09), transparent 55%); }
.media-frame.is-empty::after {
  content: attr(data-label); position: absolute; inset: 0; padding: 10px;
  display: flex; align-items: center; justify-content: center; text-align: center;
  font-family: 'Fredoka', sans-serif; font-size: .7rem; font-weight: 600;
  letter-spacing: .05em; text-transform: uppercase; color: rgba(178,58,29,.7);
}

/* 26 — REVEAL / MOTION ====================================================== */
/* Gated on .js : si le JS ne charge pas, le contenu reste visible (jamais caché). */
.js [data-reveal] {
  opacity: 0; transform: translateY(22px); filter: blur(3px);
  transition: opacity .6s var(--gc-ease-reveal), transform .6s var(--gc-ease-reveal), filter .6s var(--gc-ease-reveal);
  transition-delay: var(--delay, 0ms);
}
.js [data-reveal].is-in { opacity: 1; transform: none; filter: none; }

/* 27 — RESPONSIVE =========================================================== */
@media (max-width: 1080px) {
  .gc-sbr-nav, .gc-sbr-header__cta { display: none; }
  .gc-sbr-burger { display: flex; }
}
@media (max-width: 960px) {
  .gc-sbr-hero__grid { grid-template-columns: 1fr; gap: 2.2rem; }
  .gc-sbr-hero__copy { order: 1; }
  .gc-sbr-hero__visual { order: 2; max-width: 560px; margin-inline: auto; width: 100%; }
  .gc-sbr-footer__grid { grid-template-columns: 1fr 1fr; }
  .gc-sbr-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .gc-sbr-menu-list { grid-template-columns: 1fr; }
  .gc-sbr-feature { grid-template-columns: 1fr; gap: 1.6rem; }
  .gc-sbr-feature--rev .gc-sbr-feature__media { order: 0; }
}
@media (max-width: 640px) {
  body { font-size: 16px; }
  .gc-sbr-hero__chips { position: static; flex-direction: row; flex-wrap: wrap; display: flex; gap: .4rem; margin-top: 1rem; }
  .gc-sbr-hero__chip { align-self: auto; }
  .gc-sbr-hero__foodrow { position: static; margin-top: .8rem; justify-content: space-between; background: transparent; box-shadow: none; border: 0; padding: 0; -webkit-backdrop-filter: none; backdrop-filter: none; }
  .gc-sbr-hero__food { flex: 1; width: auto; }
  .gc-sbr-mosaic { grid-template-columns: repeat(2, 1fr); }
  .gc-sbr-mosaic .media-frame:first-child { grid-column: span 2; grid-row: auto; }
  .gc-sbr-form { grid-template-columns: 1fr; }
  .gc-sbr-footer__grid { grid-template-columns: 1fr; gap: 1.6rem; }
  .gc-sbr-events__inner { flex-direction: column; align-items: flex-start; }
}
@media (max-width: 420px) {
  :root { --gc-gutter: 16px; }
  .gc-sbr-demobar { font-size: .74rem; }
  .gc-sbr-menu-item__img { width: 80px; }
}

/* 28 — REDUCED MOTION ======================================================= */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
  [data-reveal] { opacity: 1 !important; transform: none !important; filter: none !important; transition: none !important; }
  .gc-sbr-btn:hover, .gc-sbr-concept-card:hover, .gc-sbr-dish-card:hover, .gc-sbr-formula-card:hover, .gc-sbr-contact-card:hover, .gc-sbr-menu-item:hover, .gc-sbr-audience-item:hover { transform: none; }
}

/* 28b — POINTER MOTION (effet souris) ======================================= */
/* Activé uniquement quand le JS détecte un pointeur fin + mouvement autorisé   */
/* (classe .gc-has-pointer posée sur <html>). 100% décoratif, pointer-events:none. */
.gc-cursor-glow {
  position: fixed; left: 0; top: 0; width: 280px; height: 280px; margin: -140px 0 0 -140px;
  border-radius: 50%; pointer-events: none; z-index: 3; opacity: 0;
  background: radial-gradient(circle, rgba(250,122,92,.22), rgba(250,122,92,0) 62%);
  mix-blend-mode: multiply; filter: blur(18px); will-change: transform;
  transition: opacity .5s ease;
}
.gc-has-pointer .gc-cursor-glow { opacity: .7; }

/* Parallaxe : couches du héros déplacées par le JS (transform inline) */
.gc-has-pointer .gc-sbr-hero__truck,
.gc-has-pointer .gc-sbr-hero__chips,
.gc-has-pointer .gc-sbr-hero__foodrow { will-change: transform; }

/* Spotlight : halo chaud qui suit la souris à l'intérieur des cartes */
.gc-has-pointer .gc-sbr-concept-card,
.gc-has-pointer .gc-sbr-dish-card,
.gc-has-pointer .gc-sbr-formula-card,
.gc-has-pointer .gc-sbr-info-card,
.gc-has-pointer .gc-sbr-testi,
.gc-has-pointer .gc-sbr-menu-item,
.gc-has-pointer .gc-sbr-drink,
.gc-has-pointer .gc-sbr-audience-item { position: relative; }
.gc-has-pointer .gc-sbr-concept-card::after,
.gc-has-pointer .gc-sbr-dish-card::after,
.gc-has-pointer .gc-sbr-formula-card::after,
.gc-has-pointer .gc-sbr-info-card::after,
.gc-has-pointer .gc-sbr-testi::after,
.gc-has-pointer .gc-sbr-menu-item::after,
.gc-has-pointer .gc-sbr-drink::after,
.gc-has-pointer .gc-sbr-audience-item::after {
  content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  z-index: 3; opacity: 0; transition: opacity .35s ease;
  background: radial-gradient(210px circle at var(--mx, 50%) var(--my, 50%), rgba(249,98,68,.14), rgba(249,98,68,0) 58%);
}
.gc-has-pointer .gc-sbr-concept-card:hover::after,
.gc-has-pointer .gc-sbr-dish-card:hover::after,
.gc-has-pointer .gc-sbr-formula-card:hover::after,
.gc-has-pointer .gc-sbr-info-card:hover::after,
.gc-has-pointer .gc-sbr-testi:hover::after,
.gc-has-pointer .gc-sbr-menu-item:hover::after,
.gc-has-pointer .gc-sbr-drink:hover::after,
.gc-has-pointer .gc-sbr-audience-item:hover::after { opacity: 1; }

/* 29 — ICONS (gc-ic mask system, files in assets/icons/) ==================== */
.gc-ic {
  display: inline-block; width: 1.25em; height: 1.25em; flex: none; vertical-align: -.15em;
  background-color: currentColor;
  -webkit-mask: var(--ic) center / contain no-repeat; mask: var(--ic) center / contain no-repeat;
}
.gc-ic--sm { width: 1em; height: 1em; }
.gc-ic--lg { width: 1.6em; height: 1.6em; }
.gc-ic--arrow { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M5%2012h14M13%206l6%206-6%206'/%3E%3C/svg%3E"); }
.gc-ic--calendar { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='1.8'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Crect%20x='3'%20y='4.5'%20width='18'%20height='16.5'%20rx='2.5'/%3E%3Cpath%20d='M3%209.5h18M8%202.5v4M16%202.5v4'/%3E%3C/svg%3E"); }
.gc-ic--cart { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='1.8'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M3%205h2.2l1.9%2010.4a1.6%201.6%200%200%200%201.6%201.3h7.4a1.6%201.6%200%200%200%201.6-1.2L21%208H6.2'/%3E%3Ccircle%20cx='9'%20cy='20'%20r='1.3'/%3E%3Ccircle%20cx='17'%20cy='20'%20r='1.3'/%3E%3C/svg%3E"); }
.gc-ic--catering { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='1.8'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M4%2013a8%208%200%200%201%2016%200Z'/%3E%3Cpath%20d='M3%2013h18'/%3E%3Cpath%20d='M12%205V3'/%3E%3Cpath%20d='M6%2021h12'/%3E%3Cpath%20d='M12%2017v4'/%3E%3C/svg%3E"); }
.gc-ic--check { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='2'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M20%206%209%2017l-5-5'/%3E%3C/svg%3E"); }
.gc-ic--drink { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='1.8'%20stroke-linecap='round'%20stroke-linejoin='round'%20aria-hidden='true'%3E%3Cpath%20d='M6.2%208h11.6l-1.15%2011.1a1.6%201.6%200%200%201-1.6%201.4H8.95a1.6%201.6%200%200%201-1.6-1.4L6.2%208Z'/%3E%3Cpath%20d='M6.2%208l-.55-2.45a1%201%200%200%201%20.98-1.22h10.74a1%201%200%200%201%20.98%201.22L18.8%208'/%3E%3Cpath%20d='M14.2%203.7%2013.1%208'/%3E%3Cpath%20d='M8.6%2012h7'/%3E%3C/svg%3E"); }
.gc-ic--egg { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='1.8'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M12%203c3.5%200%206%204.5%206%209a6%206%200%200%201-12%200c0-4.5%202.5-9%206-9Z'/%3E%3C/svg%3E"); }
.gc-ic--gluten { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='1.8'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M12%2021V7'/%3E%3Cpath%20d='M12%207c0-2%201.5-3.5%203.5-3.5C15.5%205.5%2014%207%2012%207Z'/%3E%3Cpath%20d='M12%207c0-2-1.5-3.5-3.5-3.5C8.5%205.5%2010%207%2012%207Z'/%3E%3Cpath%20d='M12%2012c0-2%201.5-3.5%203.5-3.5C15.5%2010.5%2014%2012%2012%2012Z'/%3E%3Cpath%20d='M12%2012c0-2-1.5-3.5-3.5-3.5C8.5%2010.5%2010%2012%2012%2012Z'/%3E%3Cpath%20d='M12%2017c0-2%201.5-3.5%203.5-3.5C15.5%2015.5%2014%2017%2012%2017Z'/%3E%3Cpath%20d='M12%2017c0-2-1.5-3.5-3.5-3.5C8.5%2015.5%2010%2017%2012%2017Z'/%3E%3C/svg%3E"); }
.gc-ic--instagram { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='1.8'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Crect%20x='3'%20y='3'%20width='18'%20height='18'%20rx='5'/%3E%3Ccircle%20cx='12'%20cy='12'%20r='4'/%3E%3Ccircle%20cx='17.4'%20cy='6.6'%20r='1.1'%20fill='black'%20stroke='none'/%3E%3C/svg%3E"); }
.gc-ic--leaf { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='1.8'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M20%204C10%204%204%209%204%2017c0%201.5.4%202.5.4%202.5S11%2019%2015%2015s5-11%205-11Z'/%3E%3Cpath%20d='M4%2020c3-6%207-9%2012-11'/%3E%3C/svg%3E"); }
.gc-ic--mail { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='1.8'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Crect%20x='3'%20y='5'%20width='18'%20height='14'%20rx='2.5'/%3E%3Cpath%20d='m3.5%207%208.5%206%208.5-6'/%3E%3C/svg%3E"); }
.gc-ic--map-pin { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='1.8'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M12%2021.5s-7-6.3-7-11.2A7%207%200%200%201%2019%2010.3c0%204.9-7%2011.2-7%2011.2Z'/%3E%3Ccircle%20cx='12'%20cy='10'%20r='2.5'/%3E%3C/svg%3E"); }
.gc-ic--milk { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='1.8'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M8%202h8v3l1.5%203v12a1%201%200%200%201-1%201H7.5a1%201%200%200%201-1-1V8L8%205Z'/%3E%3Cpath%20d='M6.5%2010h11'/%3E%3C/svg%3E"); }
.gc-ic--mustard { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='1.8'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M12%203v4'/%3E%3Cpath%20d='M12%207c-3%200-5%202.4-5%206.5S9%2020%2012%2020s5-2.4%205-6.5S15%207%2012%207Z'/%3E%3Cpath%20d='M10%2012h4'/%3E%3C/svg%3E"); }
.gc-ic--nuts { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='1.8'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M12%203c4%201%206%204.2%206%208%200%204.5-2.7%209-6%209s-6-4.5-6-9c0-3.8%202-7%206-8Z'/%3E%3Cpath%20d='M12%206v13'/%3E%3Cpath%20d='M9%2010c1.5%201%204.5%201%206%200'/%3E%3C/svg%3E"); }
.gc-ic--phone { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='1.8'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M4%204h4l2%205-2.5%201.5a11%2011%200%200%200%205%205L14%2013l5%202v4a2%202%200%200%201-2%202A16%2016%200%200%201%202%206a2%202%200%200%201%202-2Z'/%3E%3C/svg%3E"); }
.gc-ic--quote { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='black'%20aria-hidden='true'%3E%3Cpath%20d='M9.6%205.5C6.5%206.4%204.3%209.2%204.3%2012.6V18h6.2v-6.2H7.4c0-1.9%201.1-3.3%202.9-3.9L9.6%205.5Zm10.1%200c-3.1.9-5.3%203.7-5.3%207.1V18h6.2v-6.2h-3.1c0-1.9%201.1-3.3%202.9-3.9L19.7%205.5Z'/%3E%3C/svg%3E"); }
.gc-ic--sesame { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='1.8'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cellipse%20cx='9'%20cy='8'%20rx='2.4'%20ry='3.6'%20transform='rotate(-25%209%208)'/%3E%3Cellipse%20cx='15.5'%20cy='10'%20rx='2.4'%20ry='3.6'%20transform='rotate(20%2015.5%2010)'/%3E%3Cellipse%20cx='11'%20cy='15.5'%20rx='2.4'%20ry='3.6'%20transform='rotate(-10%2011%2015.5)'/%3E%3C/svg%3E"); }
.gc-ic--soy { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='1.8'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M6%204c3.5%200%205%202.2%205%205.5S9.5%2015%206%2015'/%3E%3Cpath%20d='M11%209.5c3-2.2%206.5-1.2%208.5%201.3-2%202.8-5.5%203.6-8.5%201.5'/%3E%3Cpath%20d='M9%2015v5'/%3E%3C/svg%3E"); }
.gc-ic--star { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='black'%20aria-hidden='true'%3E%3Cpath%20d='M12%202.5l2.9%205.88%206.49.94-4.69%204.58%201.11%206.46L12%2017.9l-5.81%203.06%201.11-6.46-4.69-4.58%206.49-.94L12%202.5Z'/%3E%3C/svg%3E"); }
.gc-ic--truck { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='1.8'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M3%2016V6a1%201%200%200%201%201-1h10v11'/%3E%3Cpath%20d='M14%208h4l3%203.5V16h-3'/%3E%3Ccircle%20cx='7.5'%20cy='17.5'%20r='2'/%3E%3Ccircle%20cx='16.5'%20cy='17.5'%20r='2'/%3E%3Cpath%20d='M9.5%2017.5h5'/%3E%3C/svg%3E"); }
.gc-ic--utensils { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='black'%20stroke-width='1.8'%20stroke-linecap='round'%20stroke-linejoin='round'%3E%3Cpath%20d='M7%203v7a2%202%200%200%200%204%200V3M9%2010v11'/%3E%3Cpath%20d='M17%203c-1.7%200-3%202-3%204.5S15.3%2012%2017%2012v9'/%3E%3C/svg%3E"); }
.gc-ic--whatsapp { --ic: url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%20fill='black'%20aria-hidden='true'%3E%3Cpath%20d='M12.04%202C6.58%202%202.13%206.45%202.13%2011.91c0%201.75.46%203.45%201.32%204.95L2%2022l5.25-1.38a9.9%209.9%200%200%200%204.79%201.22h.01c5.46%200%209.91-4.45%209.91-9.91%200-2.65-1.03-5.14-2.9-7.01A9.82%209.82%200%200%200%2012.04%202Zm0%201.8c2.17%200%204.2.85%205.74%202.38a8.06%208.06%200%200%201%202.38%205.73c0%204.48-3.64%208.12-8.12%208.12a8.1%208.1%200%200%201-4.13-1.13l-.3-.18-3.12.82.83-3.04-.19-.31a8.05%208.05%200%200%201-1.24-4.29c0-4.48%203.64-8.12%208.12-8.12Zm-3.2%204.36c-.15%200-.4.06-.61.29-.21.23-.8.78-.8%201.9s.82%202.2.94%202.35c.11.15%201.6%202.44%203.87%203.42.54.23.96.37%201.29.48.54.17%201.03.15%201.42.09.43-.06%201.34-.55%201.53-1.08.19-.53.19-.98.13-1.08-.06-.09-.21-.15-.44-.26-.23-.11-1.34-.66-1.55-.74-.21-.08-.36-.11-.51.12-.15.23-.58.73-.71.88-.13.15-.26.17-.49.06-.23-.12-.96-.36-1.83-1.13-.68-.6-1.13-1.35-1.27-1.58-.13-.23-.01-.35.1-.47.1-.1.23-.26.34-.4.11-.13.15-.23.23-.38.08-.15.04-.29-.02-.4-.06-.12-.51-1.25-.71-1.71-.18-.44-.37-.38-.51-.39-.13%200-.28-.01-.43-.01Z'/%3E%3C/svg%3E"); }
