[data-design="b"]{
  --char:#14100B; --walnut:#211811; --cellar:#0E0B07;
  --linen:#F2E6CC; --linen-soft:#CBB48C; --muted:#8E7A57; --rule:#3A2C1E;
  --brass:#B58B43; --brass-lit:#E7C677; --oxblood:#7C2F26; --oxblood-deep:#5E231C;
  --ember:#CF5A2C; --success:#7E8A4E; --critical:#D23B2A;
  --design-b-primary: var(--brass);
  --font-display:'Hoefler Text','Bodoni 72','Didot','Big Caslon','Times New Roman',serif;
  --font-body:'Neue Haas Grotesk Text','Helvetica Neue',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,'SFMono-Regular','JetBrains Mono',monospace;
  --t-meta:13px; --t-cap:14px; --t-body:17px; --t-lead:20px;
  --t-h3:clamp(1.3rem,2.6vw,1.6rem); --t-h2:clamp(1.7rem,4.2vw,2.5rem);
  --t-h1:clamp(2.25rem,6.2vw,4rem); --t-display:clamp(2.9rem,8vw,4.9rem);
  --dur-sear:180ms; --dur-plate:520ms; --dur-engrave:1600ms;
  --ease-sear:cubic-bezier(.2,.8,.2,1);
  --ease-plate:cubic-bezier(.22,1,.36,1);
  --ease-engrave:cubic-bezier(.65,.02,.28,1);
  --r-brand:2px; --r-panel:4px; --r-line:3px; --r-coin:999px;
  --sp-ash:4px; --sp-coal:8px; --sp-skewer:12px; --sp-cut:16px; --sp-plate:24px;
  --sp-course:32px; --sp-table:48px; --sp-room:80px; --sp-hall:clamp(56px,9vw,120px);
  --elev-ring:0 0 0 1px var(--rule);
  --elev-brass:0 0 0 1px color-mix(in oklab,var(--brass),transparent 55%);
  --elev-deboss:inset 0 1px 0 rgba(0,0,0,.5),inset 0 -1px 0 color-mix(in oklab,var(--brass),transparent 80%);
  --elev-raised:0 2px 2px rgba(0,0,0,.4),0 22px 44px rgba(0,0,0,.55);
  --glow-ember:0 0 22px color-mix(in oklab,var(--ember),transparent 62%);
  --focus-ring:0 0 0 3px color-mix(in oklab,var(--brass),transparent 60%);
  color:var(--linen); background:var(--char);
  font-family:var(--font-body); box-sizing:border-box;
}
[data-design="b"].dq-design *,[data-design="b"].dq-design *::before,[data-design="b"].dq-design *::after{ box-sizing:border-box; }
@media (prefers-color-scheme:dark){
  [data-design="b"]{
    --char:#0C0907; --walnut:#1A130D; --cellar:#070504;
    --linen:#F4E8CF; --linen-soft:#C3AB80; --muted:#87724E; --rule:#2F2318;
    --brass:#C49A4E; --brass-lit:#EAC97A; --oxblood:#8A352A; --oxblood-deep:#6A281F;
    --ember:#DA6233; --success:#94A05F; --critical:#E05241;
  }
}

/* ============ 1. Header ============ */
[data-design="b"] .ec-header{ position:relative; background:var(--char);
  border-bottom:1px solid var(--rule); }
[data-design="b"] .ec-header__atmos{ position:absolute; inset:0; overflow:hidden; pointer-events:none; }
[data-design="b"] .ec-header__glow{ position:absolute; left:clamp(10px,5vw,60px); top:50%;
  width:min(260px,52vw); height:120px; transform:translateY(-50%);
  background:radial-gradient(ellipse at center,color-mix(in oklab,var(--ember),transparent 68%),transparent 70%);
  filter:blur(7px); opacity:.45; animation:ec-ember 26s ease-in-out infinite; }
[data-design="b"] .ec-header__rail{ position:absolute; left:0; right:0; bottom:0; height:1.5px;
  background:var(--rule); overflow:hidden; opacity:.85; }
[data-design="b"] .ec-header__rail::after{ content:""; position:absolute; top:0; bottom:0; width:38%;
  background:linear-gradient(90deg,transparent,var(--brass-lit),transparent); transform:translateX(-160%);
  animation:ec-gild 22s linear infinite; }
[data-design="b"] .ec-header__bar{ position:relative; display:flex; align-items:center;
  justify-content:space-between; gap:var(--sp-cut); padding:var(--sp-plate) clamp(16px,5vw,64px); max-width:100%; }
[data-design="b"] .ec-logo{ display:inline-flex; align-items:center; gap:var(--sp-coal); text-decoration:none; }
[data-design="b"] .ec-logo__crest{ width:28px; height:28px; flex:none; }
[data-design="b"] .ec-logo__ring{ stroke-dasharray:80; stroke-dashoffset:80;
  animation:ec-engrave 1.6s var(--ease-engrave) .2s forwards; }
[data-design="b"] .ec-logo__flame{ opacity:0; transform-origin:14px 16px;
  animation:ec-spark .55s var(--ease-plate) 1.1s forwards, ec-flicker 5s ease-in-out 1.7s infinite; }
[data-design="b"] .ec-logo__mark{ font-family:var(--font-display); font-size:var(--t-h2);
  font-weight:600; letter-spacing:.04em; color:var(--linen); animation:ec-plate-settle .7s var(--ease-sear) both; }
[data-design="b"] .ec-burger{ display:grid; gap:5px; padding:11px; background:none;
  border:1px solid var(--brass); border-radius:var(--r-brand); cursor:pointer; min-width:44px; min-height:44px; }
[data-design="b"] .ec-burger span{ width:20px; height:1.6px; background:var(--brass);
  transition:transform var(--dur-sear) var(--ease-sear),opacity var(--dur-sear); }
[data-design="b"] .ec-burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(6.6px) rotate(45deg); }
[data-design="b"] .ec-burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
[data-design="b"] .ec-burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6.6px) rotate(-45deg); }
[data-design="b"] .ec-drawer{ position:fixed; inset:0; z-index:60; background:var(--cellar);
  box-shadow:inset 0 0 0 2px color-mix(in oklab,var(--brass),transparent 60%),var(--elev-raised);
  display:grid; place-items:center; animation:ec-plate-settle .42s var(--ease-plate) both; }
[data-design="b"] .ec-drawer[hidden]{ display:none; }
[data-design="b"] .ec-drawer__case{ display:grid; gap:var(--sp-course); text-align:center; padding:var(--sp-room); }
[data-design="b"] .ec-rail-link{ font-family:var(--font-display); font-size:var(--t-h2);
  color:var(--linen); text-decoration:none; }
[data-design="b"] .ec-rail-link--dim{ font-family:var(--font-mono); font-size:var(--t-cap); color:var(--brass); letter-spacing:.08em; }
@keyframes ec-engrave{ to{ stroke-dashoffset:0; } }
@keyframes ec-spark{ to{ opacity:1; } }
@keyframes ec-flicker{ 0%,100%{ opacity:1; transform:scaleY(1); } 45%{ opacity:.82; transform:scaleY(.96); } 70%{ opacity:.95; } }
@keyframes ec-ember{ 0%,100%{ opacity:.35; } 50%{ opacity:.6; } }
@keyframes ec-gild{ 0%{ transform:translateX(-160%); } 100%{ transform:translateX(320%); } }
@keyframes ec-plate-settle{ from{ opacity:0; transform:translateY(.18em); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){
  [data-design="b"] .ec-logo__ring{ animation:none; stroke-dashoffset:0; }
  [data-design="b"] .ec-logo__flame{ animation:none; opacity:1; }
  [data-design="b"] .ec-header__glow{ animation:none; opacity:.45; }
  [data-design="b"] .ec-header__rail::after{ animation:none; opacity:0; }
  [data-design="b"] .ec-logo__mark,[data-design="b"] .ec-drawer{ animation:none; opacity:1; transform:none; }
}
@media (max-width:560px){ [data-design="b"] .ec-header__glow{ width:60vw; } }
@media (max-width:380px){ [data-design="b"] .ec-logo__mark{ font-size:1.4rem; } }

/* ============ 2. Actions / CTA ============ */
[data-design="b"] .ec-actions{ display:flex; flex-wrap:wrap; align-items:center;
  gap:var(--sp-skewer); margin-top:var(--sp-plate); }
[data-design="b"] .ec-plaque{ --mx:0px; --my:0px; position:relative; display:inline-flex;
  align-items:center; gap:var(--sp-coal); padding:var(--sp-skewer) var(--sp-plate); border-radius:var(--r-brand);
  font-family:var(--font-display); font-size:var(--t-lead); letter-spacing:.02em; text-decoration:none; cursor:pointer;
  transform:translate(var(--mx),var(--my));
  transition:transform var(--dur-sear) var(--ease-sear),box-shadow var(--dur-sear),background var(--dur-sear); }
[data-design="b"] .ec-plaque--sear{ background:var(--oxblood); color:var(--linen);
  box-shadow:var(--elev-brass); animation:ec-sear-breath 5s ease-in-out infinite; }
[data-design="b"] .ec-plaque--rail{ background:transparent; color:var(--linen); border:1px solid var(--brass); box-shadow:none; font-size:var(--t-body); }
[data-design="b"] .ec-plaque__glyph{ width:18px; height:18px; color:var(--ember); }
[data-design="b"] .ec-plaque:active{ transform:translateY(1px);
  box-shadow:var(--elev-deboss),inset 0 0 18px color-mix(in oklab,var(--ember),transparent 52%);
  background:var(--oxblood-deep); animation:none; }
[data-design="b"] .ec-plaque:focus-visible{ outline:none; box-shadow:var(--focus-ring),var(--elev-deboss); }
[data-design="b"] .ec-chip{ padding:var(--sp-coal) var(--sp-cut); border:1px solid var(--brass);
  border-radius:var(--r-brand); color:var(--linen); text-decoration:none; font-size:var(--t-cap);
  min-height:44px; display:inline-flex; align-items:center;
  transition:border-color var(--dur-sear),color var(--dur-sear); }
[data-design="b"] .ec-chip--rail{ font-size:var(--t-body); }
@media (hover:hover) and (pointer:fine){
  [data-design="b"] .ec-plaque--sear:hover{ background:#8a352a; }
  [data-design="b"] .ec-plaque--rail:hover{ border-color:var(--brass-lit); color:var(--brass-lit); }
  [data-design="b"] .ec-chip:hover{ border-color:var(--brass-lit); color:var(--brass-lit); }
}
@keyframes ec-sear-breath{ 0%,100%{ box-shadow:var(--elev-brass); } 50%{ box-shadow:var(--elev-brass),var(--glow-ember); } }
@media (prefers-reduced-motion:reduce){
  [data-design="b"] .ec-plaque--sear{ animation:none; }
  [data-design="b"] .ec-plaque{ transform:none!important; transition:box-shadow var(--dur-sear); }
}
@media (max-width:380px){ [data-design="b"] .ec-actions{ gap:var(--sp-coal); } }

/* ============ 3. Hero carte ============ */
[data-design="b"] .ec-hero{ padding:var(--sp-hall) clamp(16px,5vw,64px); max-width:1180px; margin-inline:auto; isolation:isolate; position:relative; }
[data-design="b"] .ec-hero__crest{ width:120px; max-width:46vw; height:auto; display:block; margin-bottom:var(--sp-cut); }
[data-design="b"] .ec-crest__arc{ stroke-dasharray:140; stroke-dashoffset:140;
  animation:ec-engrave 1.7s var(--ease-engrave) .2s forwards; }
[data-design="b"] .ec-crest__flame{ opacity:0; transform-origin:60px 36px;
  animation:ec-spark .6s var(--ease-plate) 1.1s forwards, ec-flicker 5.5s ease-in-out 1.8s infinite; }
[data-design="b"] .ec-kicker{ font-family:var(--font-mono); font-size:var(--t-meta); letter-spacing:.16em;
  text-transform:uppercase; color:var(--brass); margin:0 0 var(--sp-skewer); position:relative; z-index:2; }
[data-design="b"] .ec-hero__title{ font-family:var(--font-display); font-weight:600;
  font-size:var(--t-h1); line-height:1.1; letter-spacing:-.012em; color:var(--linen); margin:0; max-width:18ch;
  opacity:1; position:relative; z-index:2; }
[data-design="b"] .ec-hero__sub{ font-size:var(--t-lead); color:var(--linen-soft); max-width:46ch;
  margin:var(--sp-cut) 0 var(--sp-table); opacity:1; position:relative; z-index:2; }
[data-design="b"] .ec-carte{ list-style:none; margin:0; padding:0; display:grid; gap:var(--sp-skewer); position:relative; z-index:2; }
[data-design="b"] .ec-carte__row{ display:grid; grid-template-columns:minmax(0,auto) 1fr auto;
  align-items:baseline; column-gap:var(--sp-skewer); padding:var(--sp-skewer) 0; border-bottom:1px solid var(--rule);
  opacity:1; transform:translateY(.55em); }
[data-design="b"] .ec-carte.is-plated .ec-carte__row{ animation:ec-plate-up var(--dur-plate) var(--ease-plate) forwards;
  animation-delay:calc(var(--i,0)*110ms); }
[data-design="b"] .ec-carte__name{ min-width:0; overflow-wrap:anywhere; font-family:var(--font-display);
  font-size:var(--t-h3); color:var(--linen); position:relative; }
[data-design="b"] .ec-carte__leader{ align-self:end; height:1px; margin-bottom:.34em;
  background-image:radial-gradient(circle,var(--brass) .6px,transparent .7px); background-size:6px 2px;
  background-repeat:repeat-x; opacity:.6; }
[data-design="b"] .ec-carte__price{ justify-self:end; white-space:nowrap; font-family:var(--font-mono);
  font-variant-numeric:tabular-nums; font-size:var(--t-body); color:var(--linen-soft); }
[data-design="b"] .ec-carte__price::before{ content:"$"; color:var(--muted); }
[data-design="b"] .ec-carte.is-idle .ec-carte__row:first-child .ec-carte__name::after{
  content:""; position:absolute; right:-12px; top:-3px; width:8px; height:15px; border-radius:60%;
  background:radial-gradient(circle at 50% 100%,color-mix(in oklab,var(--ember),transparent 50%),transparent 70%);
  opacity:0; animation:ec-shimmer 5.5s ease-in-out infinite; }
@keyframes ec-plate-up{ to{ opacity:1; transform:none; } }
@keyframes ec-shimmer{ 0%{ opacity:0; transform:translateY(2px) scale(.9); } 40%{ opacity:.7; } 100%{ opacity:0; transform:translateY(-13px) scale(1.05); } }
@media (prefers-reduced-motion:reduce){
  [data-design="b"] .ec-carte__row{ opacity:1; transform:none; }
  [data-design="b"] .ec-crest__arc{ animation:none; stroke-dashoffset:0; }
  [data-design="b"] .ec-crest__flame{ animation:none; opacity:1; }
  [data-design="b"] .ec-carte.is-plated .ec-carte__row,
  [data-design="b"] .ec-carte.is-idle .ec-carte__row:first-child .ec-carte__name::after{ animation:none; }
}
@media (max-width:560px){ [data-design="b"] .ec-carte__name{ font-size:var(--t-body); } }

/* ============ 4. Boards (menu sections) ============ */
[data-design="b"] .ec-board{ padding:var(--sp-hall) clamp(16px,5vw,64px); max-width:1180px;
  margin-inline:auto; background:var(--char); }
[data-design="b"] .ec-board--b{ padding-top:var(--sp-table); }
[data-design="b"] .ec-board__head{ display:flex; align-items:end; gap:var(--sp-cut);
  margin-bottom:var(--sp-table); }
[data-design="b"] .ec-board__head h2{ font-family:var(--font-display); font-weight:600;
  font-size:var(--t-h2); margin:0; color:var(--linen); white-space:nowrap; }
[data-design="b"] .ec-board__rule{ flex:1; height:22px; max-width:100%; }
[data-design="b"] .ec-board__rule path{ stroke-dasharray:200; stroke-dashoffset:200;
  transition:stroke-dashoffset var(--dur-engrave) var(--ease-engrave); }
[data-design="b"] .ec-board.is-seen .ec-board__rule path{ stroke-dashoffset:0; }
[data-design="b"] .ec-board.is-seen .ec-board__head h2{ animation:ec-ember 22s ease-in-out infinite; }
[data-design="b"] .ec-cuts{ list-style:none; margin:0; padding:0; display:grid; gap:var(--sp-skewer); }
[data-design="b"] .ec-cuts li{ display:grid; grid-template-columns:minmax(0,auto) 1fr auto;
  align-items:baseline; column-gap:var(--sp-skewer); padding:var(--sp-skewer) 0; border-bottom:1px solid var(--rule);
  clip-path:inset(0 100% 0 0); }
[data-design="b"] .ec-board.is-seen .ec-cuts li{ animation:ec-wipe-in var(--dur-plate) var(--ease-engrave) forwards;
  animation-delay:calc(var(--i,0)*90ms); }
[data-design="b"] .ec-cuts__name{ min-width:0; overflow-wrap:anywhere; font-family:var(--font-display);
  font-size:var(--t-h3); color:var(--linen); }
[data-design="b"] .ec-cuts__note{ color:var(--linen-soft); font-size:var(--t-cap); align-self:center; }
[data-design="b"] .ec-cuts__price{ justify-self:end; white-space:nowrap; font-family:var(--font-mono);
  font-variant-numeric:tabular-nums; font-size:var(--t-meta); letter-spacing:.06em; color:var(--muted); }
@keyframes ec-wipe-in{ to{ clip-path:inset(0 0 0 0); } }
@media (prefers-reduced-motion:reduce){
  [data-design="b"] .ec-board__rule path{ transition:none; stroke-dashoffset:0; }
  [data-design="b"] .ec-board.is-seen .ec-board__head h2{ animation:none; }
  [data-design="b"] .ec-cuts li{ clip-path:none; animation:none; }
}
@media (max-width:560px){ [data-design="b"] .ec-cuts li{ grid-template-columns:minmax(0,1fr) auto; }
  [data-design="b"] .ec-cuts__note{ grid-column:1/-1; align-self:start; } }

/* ============ 5. Cloche reveal ============ */
[data-design="b"] .ec-special{ padding:var(--sp-hall) clamp(16px,5vw,64px); text-align:center; }
[data-design="b"] .ec-special__h{ font-family:var(--font-display); font-size:var(--t-h2);
  margin:0 0 var(--sp-table); color:var(--linen); }
[data-design="b"] .ec-cloche{ position:relative; width:min(420px,92vw); margin-inline:auto;
  aspect-ratio:8/5; cursor:pointer; border-radius:var(--r-panel); }
[data-design="b"] .ec-cloche:focus-visible{ outline:none; box-shadow:var(--focus-ring); }
[data-design="b"] .ec-cloche__plate{ position:absolute; inset:0; display:grid; place-content:center;
  gap:var(--sp-skewer); padding:var(--sp-plate); background:var(--walnut); border:1px solid var(--rule);
  border-radius:var(--r-panel); box-shadow:var(--elev-ring); }
[data-design="b"] .ec-cloche__dish{ font-family:var(--font-display); font-size:var(--t-h3);
  color:var(--linen); margin:0; max-width:30ch; opacity:0; transition:opacity .5s var(--ease-plate) .18s; }
[data-design="b"] .ec-coin--today{ display:inline-block; padding:var(--sp-ash) var(--sp-skewer);
  border-radius:var(--r-coin); background:var(--ember); color:var(--char); font-family:var(--font-mono);
  font-size:var(--t-meta); letter-spacing:.14em; text-transform:uppercase; opacity:0;
  transition:opacity .5s var(--ease-plate) .26s; justify-self:center; }
[data-design="b"] .ec-cloche__dome{ position:absolute; inset:0; display:grid; place-content:center;
  transform-origin:50% 88%; transition:transform .7s var(--ease-plate),opacity .55s var(--ease-plate); will-change:transform; }
[data-design="b"] .ec-cloche__dome svg{ width:min(300px,72%); height:auto; }
[data-design="b"] .ec-cloche__steam{ position:absolute; left:50%; top:30%; width:10px; height:22px;
  border-radius:60%; transform:translateX(-50%);
  background:radial-gradient(circle at 50% 100%,color-mix(in oklab,var(--ember),transparent 55%),transparent 70%); opacity:0; }
[data-design="b"] .ec-cloche__hint{ position:absolute; left:0; right:0; bottom:var(--sp-skewer);
  font-family:var(--font-mono); font-size:var(--t-meta); letter-spacing:.14em; text-transform:uppercase;
  color:var(--brass); transition:opacity var(--dur-sear); }
[data-design="b"] .ec-cloche.is-open .ec-cloche__dome{ transform:translateY(-86%) scale(1.04); opacity:0; }
[data-design="b"] .ec-cloche.is-open .ec-cloche__steam{ animation:ec-shimmer 5.5s ease-in-out .2s 3; }
[data-design="b"] .ec-cloche.is-open .ec-cloche__dish,
[data-design="b"] .ec-cloche.is-open .ec-coin--today{ opacity:1; }
[data-design="b"] .ec-cloche.is-open .ec-cloche__hint{ opacity:0; }
@media (prefers-reduced-motion:reduce){
  [data-design="b"] .ec-cloche__dome{ transition:none; }
  [data-design="b"] .ec-cloche.is-open .ec-cloche__dome{ transform:none; opacity:0; display:none; }
  [data-design="b"] .ec-cloche__dish,[data-design="b"] .ec-coin--today{ transition:none; }
  [data-design="b"] .ec-cloche.is-open .ec-cloche__steam{ animation:none; }
}
@media (max-width:380px){ [data-design="b"] .ec-cloche__dish{ font-size:var(--t-body); } }

/* ============ 6. Pointer ============ */
[data-design="b"] .ec-pointer{ display:grid; justify-items:center; gap:var(--sp-coal);
  padding:var(--sp-course) 0; color:var(--muted); opacity:1; }
[data-design="b"] .ec-pointer__skewer{ max-width:100%; }
[data-design="b"] .ec-pointer__line{ stroke-dasharray:170; stroke-dashoffset:170;
  animation:ec-engrave 2.2s var(--ease-engrave) forwards; }
[data-design="b"] .ec-pointer__coal{ transform-origin:12px 68px; filter:drop-shadow(0 0 5px color-mix(in oklab,var(--ember),transparent 40%));
  opacity:0; animation:ec-spark .5s var(--ease-plate) 2.1s forwards, ec-coal-pulse 6s ease-in-out 2.6s infinite; }
[data-design="b"] .ec-pointer__steam{ width:8px; height:18px; border-radius:60%; margin-top:-8px;
  background:radial-gradient(circle at 50% 100%,color-mix(in oklab,var(--ember),transparent 55%),transparent 70%);
  animation:ec-shimmer 5.5s ease-in-out 2.4s infinite; }
[data-design="b"] .ec-pointer__label{ font-family:var(--font-mono); font-size:var(--t-meta);
  letter-spacing:.16em; text-transform:uppercase; color:var(--brass); }
@keyframes ec-coal-pulse{ 0%,100%{ opacity:.7; transform:scale(.92); } 50%{ opacity:1; transform:scale(1.12); } }
@media (prefers-reduced-motion:reduce){
  [data-design="b"] .ec-pointer__line{ animation:none; stroke-dashoffset:0; }
  [data-design="b"] .ec-pointer__coal{ animation:none; opacity:1; }
  [data-design="b"] .ec-pointer__steam{ animation:none; opacity:.4; }
}

/* ============ Story / About ============ */
[data-design="b"] .ec-story{ padding:var(--sp-hall) clamp(16px,5vw,64px); max-width:1180px; margin-inline:auto;
  display:grid; gap:var(--sp-table); grid-template-columns:1fr; }
[data-design="b"] .ec-story__crest{ width:90px; height:auto; }
[data-design="b"] .ec-story__col{ max-width:60ch; margin-inline:auto; }
[data-design="b"] .ec-story__col h2{ font-family:var(--font-display); font-size:var(--t-h2); color:var(--linen); margin:0 0 var(--sp-cut); }
[data-design="b"] .ec-story__col p{ font-size:var(--t-body); line-height:1.6; color:var(--linen-soft); margin:0; }
@media (min-width:820px){ [data-design="b"] .ec-story{ grid-template-columns:auto 1fr; align-items:start; } }

/* ============ Gallery ============ */
[data-design="b"] .ec-gallery{ padding:var(--sp-hall) clamp(16px,5vw,64px); max-width:1180px; margin-inline:auto; }
[data-design="b"] .ec-gallery h2{ font-family:var(--font-display); font-size:var(--t-h2); color:var(--linen); margin:0 0 var(--sp-table); }
[data-design="b"] .ec-gallery__grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:var(--sp-plate); }
[data-design="b"] .ec-gallery__img{ width:100%; height:260px; object-fit:cover; border-radius:var(--r-panel);
  border:1px solid var(--rule); box-shadow:var(--elev-ring); display:block; }

/* ============ Hours & Location ============ */
[data-design="b"] .ec-hours{ padding:var(--sp-hall) clamp(16px,5vw,64px); max-width:1180px; margin-inline:auto; }
[data-design="b"] .ec-hours__panel{ background:var(--walnut); border:1px solid var(--rule); border-radius:var(--r-panel);
  padding:var(--sp-plate); box-shadow:var(--elev-ring); max-width:640px; margin-inline:auto; display:grid; gap:var(--sp-skewer); }
[data-design="b"] .ec-hours__panel h2{ font-family:var(--font-display); font-size:var(--t-h2); color:var(--linen); margin:0; }
[data-design="b"] .ec-hours__row{ font-size:var(--t-body); color:var(--linen-soft); margin:0; }
[data-design="b"] .ec-hours__note{ color:var(--muted); font-size:var(--t-cap); }

/* ============ Catering ============ */
[data-design="b"] .ec-catering{ padding:var(--sp-hall) clamp(16px,5vw,64px); max-width:760px; margin-inline:auto; text-align:center; }
[data-design="b"] .ec-catering__copy{ font-size:var(--t-body); color:var(--linen-soft); margin:0 0 var(--sp-table); }

/* ============ Footer ============ */
[data-design="b"] .ec-footer{ background:var(--cellar); padding:var(--sp-hall) clamp(16px,5vw,64px);
  text-align:center; display:grid; gap:var(--sp-coal); justify-items:center; }
[data-design="b"] .ec-footer__name{ font-family:var(--font-display); font-size:var(--t-h3); color:var(--linen); margin:0; }
[data-design="b"] .ec-footer__row{ font-size:var(--t-cap); color:var(--linen-soft); margin:0; }
[data-design="b"] .ec-footer__link{ color:var(--linen-soft); text-decoration:none; }
[data-design="b"] .ec-footer__links{ display:flex; flex-wrap:wrap; gap:var(--sp-skewer); justify-content:center; margin-top:var(--sp-coal); }
[data-design="b"] .ec-footer__copy{ font-family:var(--font-mono); font-size:var(--t-meta); color:var(--muted); margin-top:var(--sp-cut); }
@media (hover:hover) and (pointer:fine){
  [data-design="b"] .ec-footer__link:hover{ color:var(--brass-lit); }
}

/* ============ MOBILE / OVERFLOW GUARD (mandatory, bottom of file) ============ */
[data-design="b"].dq-design,[data-design="b"] .dq-design{max-width:100%;overflow-x:clip;}
[data-design="b"].dq-design *{min-width:0;}
[data-design="b"].dq-design img,[data-design="b"].dq-design svg:not([data-keep-size]){max-width:100%;height:auto;}

/* Phase-3.4 hero visibility floor (forge_assemble) */
[data-design="b"] [data-mf-role="hero"] :is(h1,h2,p,.headline,.subtitle,.proof,[class*="headline"],[class*="subtitle"],[class*="proof"]),
[data-design="b"] [data-mf-role="cta"] { opacity: 1 !important; }
