/* ============================================================
   Prost! Portland — design slot "a" — Krone (schema 0.6.0)
   Restaurant trade, NO-FUNNEL. All selectors scoped [data-design="a"].
   Token system + motion grammar verbatim from krone/design.md,
   remapped from [data-design="a"] -> [data-design="a"].
   ============================================================ */

[data-design="a"] {
  --design-a-primary: #C8341F;

  --a-paper: #FAF7F0;
  --a-ink: #1A1815;
  --a-ink-2: #3A352E;
  --a-muted: #6E665B;
  --a-rule: #1A18151F;
  --a-vermillion: #C8341F;
  --a-vermillion-on: #FAF7F0;
  --a-stone: #EAE5DA;
  --a-critical: #A02418;
  --a-success: #3B5F2E;

  --a-display: 'GT Sectra', 'Tiempos Headline', 'Iowan Old Style', Charter, Georgia, serif;
  --a-body:    'Sectra Fine', 'Tiempos Text', 'Iowan Old Style', Charter, Georgia, serif;
  --a-spec:    'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;

  --a-tick: 4px;
  --a-em: 8px;
  --a-cap: 16px;
  --a-leading: 24px;
  --a-rule-sp: 40px;
  --a-spread: 80px;
  --a-gutter: 128px;
  --a-overture: 200px;

  --a-cut:      120ms;
  --a-settle:   280ms;
  --a-register: 600ms;
  --a-unfurl:   1200ms;
  --a-tide:     22s;
  --a-drift:    18s;

  --a-ease-cut:    cubic-bezier(0.85, 0, 0.15, 1);
  --a-ease-settle: cubic-bezier(0.2, 0.8, 0.2, 1);
  --a-ease-tide:   cubic-bezier(0.45, 0, 0.55, 1);

  background: var(--a-paper);
  color: var(--a-ink);
  font-family: var(--a-body);
  display: block;
}

[data-design="a"].dq-design * { box-sizing: border-box; }
[data-design="a"].dq-design img { display: block; }

/* ---------- Element 1: Animated minimalist header ---------- */

[data-design="a"].rf-header,
[data-design="a"] .rf-header {
  position: sticky; top: 0; z-index: 50;
  background: var(--a-paper);
  border-bottom: 1px solid var(--a-ink);
  box-sizing: border-box;
}
[data-design="a"] .rf-header__bar {
  display: flex; align-items: center; justify-content: space-between;
  padding: 22px clamp(20px, 4vw, 64px);
  position: relative; z-index: 2;
}
[data-design="a"] .rf-logo { text-decoration: none; color: var(--a-ink); }
[data-design="a"] .rf-logo__mark {
  font-family: var(--a-display);
  font-size: clamp(20px, 2vw, 26px);
  letter-spacing: -0.01em;
  font-weight: 400;
}
[data-design="a"] .rf-burger {
  background: transparent; border: 1px solid var(--a-ink);
  width: 44px; height: 36px; padding: 0; cursor: pointer;
  display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px;
}
[data-design="a"] .rf-burger__line {
  display: block; width: 20px; height: 1.5px; background: var(--a-ink);
  transition: transform var(--a-settle) var(--a-ease-settle);
}
[data-design="a"] .rf-burger[aria-expanded="true"] .rf-burger__line:nth-child(1) { transform: translateY(3.25px) rotate(45deg); }
[data-design="a"] .rf-burger[aria-expanded="true"] .rf-burger__line:nth-child(2) { transform: translateY(-3.25px) rotate(-45deg); }
[data-design="a"] .rf-tide {
  position: absolute; left: 0; right: 0; bottom: 0; height: 2px;
  pointer-events: none; overflow: hidden;
}
[data-design="a"] .rf-tide__rule {
  display: block; height: 100%;
  background: var(--a-vermillion);
  transform-origin: left center;
  animation: a-tide var(--a-tide) cubic-bezier(0.45, 0, 0.55, 1) infinite;
}
@keyframes a-tide {
  0%   { transform: scaleX(0); transform-origin: left center; }
  45%  { transform: scaleX(1); transform-origin: left center; }
  50%  { transform: scaleX(1); transform-origin: right center; }
  95%  { transform: scaleX(0); transform-origin: right center; }
  100% { transform: scaleX(0); transform-origin: right center; }
}
[data-design="a"] .rf-drawer {
  position: fixed; inset: 0; background: var(--a-paper);
  z-index: 100; padding: 96px clamp(24px, 6vw, 96px);
  display: flex; flex-direction: column; justify-content: space-between;
  animation: a-drawer-wipe var(--a-register) var(--a-ease-cut) both;
}
[data-design="a"] .rf-drawer[hidden] { display: none; }
@keyframes a-drawer-wipe {
  0%   { clip-path: inset(0 100% 0 0); }
  100% { clip-path: inset(0 0 0 0); }
}
[data-design="a"] .rf-drawer__inner { display: flex; flex-direction: column; justify-content: space-between; height: 100%; }
[data-design="a"] .rf-drawer__nav { display: flex; flex-direction: column; gap: var(--a-leading); }
[data-design="a"] .rf-drawer__nav a {
  font-family: var(--a-display);
  font-size: clamp(32px, 6vw, 72px);
  color: var(--a-ink); text-decoration: none;
  line-height: 1.02; letter-spacing: -0.015em;
  position: relative; display: inline-block; width: max-content;
}
[data-design="a"] .rf-drawer__nav a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 4px;
  height: 3px; background: var(--a-vermillion);
  transform: scaleX(0); transform-origin: left;
  transition: transform var(--a-register) var(--a-ease-settle);
}
[data-design="a"] .rf-drawer__nav a:focus-visible::after { transform: scaleX(1); }
@media (hover: hover) and (pointer: fine) {
  [data-design="a"] .rf-drawer__nav a:hover::after { transform: scaleX(1); }
}
[data-design="a"] .rf-drawer__meta {
  font-family: var(--a-spec); font-size: 12px; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--a-muted);
}
@media (prefers-reduced-motion: reduce) {
  [data-design="a"] .rf-tide__rule { animation: none; transform: scaleX(0.5); transform-origin: left center; }
  [data-design="a"] .rf-drawer { animation: none; }
  [data-design="a"] .rf-drawer__nav a::after { transition: none; }
  [data-design="a"] .rf-burger__line { transition: none; }
}
@media (max-width: 560px) {
  [data-design="a"] .rf-header__bar { padding: 16px 20px; }
  [data-design="a"] .rf-drawer { padding: 80px 20px; }
}

/* ---------- Hero: appetite-forward + Element 3 (popular-items menu) ---------- */

[data-design="a"] .a-hero {
  position: relative;
  isolation: isolate;
  min-height: 92vh;
  display: flex; align-items: center; justify-content: center;
  padding: clamp(64px, 12vw, var(--a-overture)) clamp(20px, 6vw, var(--a-gutter)) var(--a-spread);
  background: var(--a-paper);
  overflow: hidden;
}
[data-design="a"] .a-hero__substrate {
  position: absolute; inset: 0; z-index: 0;
  pointer-events: none;
}
/* Exactly one animated layer: a slow amber "pour" wash draws down and settles,
   then sustains a perceptible ambient drift (the pour never fully stops). */
[data-design="a"] .a-hero__pour {
  position: absolute; top: -10%; left: 50%; width: min(70vw, 820px); height: 140%;
  transform: translateX(-50%) scaleY(0);
  transform-origin: top center;
  background: linear-gradient(180deg, transparent 0%, #C8341F14 35%, #C8341F0A 60%, transparent 100%);
  animation: a-pour-in var(--a-unfurl) var(--a-ease-cut) both,
             a-pour-drift 16s var(--a-ease-tide) 1200ms infinite;
}
[data-design="a"] .a-hero__foam {
  position: absolute; top: 6%; left: 50%; width: min(52vw, 620px); height: 10px;
  transform: translateX(-50%) scaleX(0);
  transform-origin: left center;
  background: var(--a-stone);
  opacity: 0.6;
  animation: a-foam-in 900ms var(--a-ease-settle) 400ms both;
}
@keyframes a-pour-in {
  0%   { transform: translateX(-50%) scaleY(0); opacity: 0; }
  100% { transform: translateX(-50%) scaleY(1); opacity: 1; }
}
@keyframes a-pour-drift {
  0%   { transform: translateX(-50%) scaleY(1) translateY(0); }
  50%  { transform: translateX(-50%) scaleY(1) translateY(14px); }
  100% { transform: translateX(-50%) scaleY(1) translateY(0); }
}
@keyframes a-foam-in {
  0%   { transform: translateX(-50%) scaleX(0); opacity: 0; }
  100% { transform: translateX(-50%) scaleX(1); opacity: 0.6; }
}
[data-design="a"] .a-hero__frame {
  position: relative; z-index: 2;
  width: 100%; max-width: 1080px;
  margin-inline: auto;
  display: flex; flex-direction: column; align-items: center; gap: var(--a-spread);
  text-align: center;
}
[data-design="a"] .a-hero__text { max-width: 720px; margin-inline: auto; }
[data-design="a"] .a-hero__kicker {
  font-family: var(--a-spec); font-size: 12px; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--a-muted); margin: 0 0 var(--a-cap) 0;
  opacity: 1;
}
[data-design="a"] .a-hero__headline {
  font-family: var(--a-display);
  font-size: clamp(40px, 7vw, 100px);
  font-weight: 400; letter-spacing: -0.02em; line-height: 0.98;
  color: var(--a-ink); margin: 0 0 var(--a-cap) 0;
  opacity: 1;
}
[data-design="a"] .a-hero__subtitle {
  font-family: var(--a-body); font-style: italic; font-size: clamp(16px, 2vw, 20px);
  line-height: 1.5; color: var(--a-ink-2); margin: 0; opacity: 1;
}

/* Element 3 — the animated popular-items menu, built for this lead,
   constrained to Krone's Roster grammar (numbered editorial index, vermillion wipe). */
[data-design="a"] .a-menu { width: 100%; max-width: 640px; margin-inline: auto; }
[data-design="a"] .a-menu__flag {
  font-family: var(--a-spec); font-size: 11px; letter-spacing: 0.1em;
  text-transform: uppercase; color: var(--a-muted); margin: 0 0 var(--a-cap) 0;
  opacity: 1;
}
[data-design="a"] .a-menu__list { list-style: none; margin: 0; padding: 0; }
[data-design="a"] .a-menu__item {
  display: flex; align-items: center; justify-content: center;
  padding: var(--a-cap) 0;
  border-top: 1px solid var(--a-rule);
  position: relative;
  opacity: 1;
}
[data-design="a"] .a-menu__item:last-child { border-bottom: 1px solid var(--a-rule); }
[data-design="a"] .a-menu__name {
  font-family: var(--a-display); font-size: clamp(18px, 2.2vw, 24px);
  letter-spacing: -0.005em; color: var(--a-ink);
  opacity: 1;
  transform: translateY(10px) scale(0.98);
  transition: transform var(--a-register) var(--a-ease-cut);
  position: relative;
}
[data-design="a"] .a-menu__name::before {
  content: ""; position: absolute; left: -14px; top: 50%; width: 6px; height: 6px;
  border-radius: 9999px; background: var(--a-vermillion);
  transform: translateY(-50%) scale(0);
  transition: transform 200ms var(--a-ease-cut);
}
[data-design="a"] .a-menu__item.is-in .a-menu__name {
  transform: none;
}
[data-design="a"] .a-menu__item.is-in .a-menu__name::before {
  transform: translateY(-50%) scale(1);
}
/* Ongoing ambient idle: a slow accent shimmer sweeps the active dot after entrance settles */
[data-design="a"] .a-menu__item.is-in .a-menu__name::after {
  content: ""; position: absolute; left: -18px; top: 50%; width: 14px; height: 14px;
  border-radius: 9999px; border: 1px solid var(--a-vermillion);
  transform: translateY(-50%) scale(0.4);
  opacity: 0;
  animation: a-menu-idle 6s var(--a-ease-tide) 1400ms infinite;
}
@keyframes a-menu-idle {
  0%   { transform: translateY(-50%) scale(0.4); opacity: 0; }
  40%  { transform: translateY(-50%) scale(1.3); opacity: 0.5; }
  80%  { transform: translateY(-50%) scale(1.8); opacity: 0; }
  100% { transform: translateY(-50%) scale(1.8); opacity: 0; }
}

/* ---------- Element 2: low-weight action cluster (beneath the menu) ---------- */

[data-design="a"] .a-actions {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center;
  gap: var(--a-cap);
}
[data-design="a"] .a-actions--stack { justify-content: flex-start; }
[data-design="a"] .a-chip {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 44px; padding: 10px 22px;
  font-family: var(--a-spec); font-size: 13px; letter-spacing: 0.04em;
  text-decoration: none; border-radius: 0;
  transition: transform 120ms var(--a-ease-cut), box-shadow var(--a-settle) var(--a-ease-settle), background var(--a-settle) var(--a-ease-settle);
}
[data-design="a"] .a-chip--ink {
  background: var(--a-ink); color: var(--a-paper); border: 1px solid var(--a-ink);
}
@media (hover: hover) and (pointer: fine) {
  [data-design="a"] .a-chip--ink:hover { background: #000; }
  [data-design="a"] .a-chip--outline:hover { box-shadow: 0 0 0 2px var(--a-ink); }
  [data-design="a"] .a-chip--link:hover { color: var(--a-vermillion); }
}
[data-design="a"] .a-chip--outline {
  background: transparent; color: var(--a-ink); border: 1px solid var(--a-ink);
}
[data-design="a"] .a-chip--link {
  background: transparent; color: var(--a-ink-2); border: 0; padding: 4px 0;
  text-decoration: underline; text-underline-offset: 3px; text-decoration-color: var(--a-rule);
}
[data-design="a"] .a-chip:active { transform: translateY(1px); }
[data-design="a"] .a-chip:focus-visible { outline: 2px solid var(--a-vermillion); outline-offset: 2px; }

/* ---------- Element 6: pointer between hero and reveal ---------- */

[data-design="a"] .a-pointer {
  display: flex; flex-direction: column; align-items: center; gap: var(--a-em);
  padding: var(--a-leading) clamp(20px, 6vw, var(--a-gutter));
  opacity: 1;
}
[data-design="a"] .a-pointer__wisp {
  display: block; width: 2px; height: 40px;
  background: linear-gradient(180deg, transparent, var(--a-vermillion) 60%, transparent);
  animation: a-wisp 4.5s var(--a-ease-tide) infinite;
  transform-origin: top center;
}
@keyframes a-wisp {
  0%   { transform: scaleY(0.6) translateY(0); opacity: 0.35; }
  50%  { transform: scaleY(1) translateY(6px); opacity: 0.9; }
  100% { transform: scaleY(0.6) translateY(0); opacity: 0.35; }
}
[data-design="a"] .a-pointer__label {
  font-family: var(--a-spec); font-size: 11px; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--a-muted);
  opacity: 1;
}

/* ---------- Element 5: the stein reveal (daily-special / NO-FUNNEL centerpiece) ---------- */

[data-design="a"] .a-reveal {
  padding: var(--a-spread) clamp(20px, 6vw, var(--a-gutter));
  background: var(--a-stone);
  display: flex; flex-direction: column; align-items: center; text-align: center;
  gap: var(--a-spread);
}
[data-design="a"] .a-reveal__head { max-width: 640px; margin-inline: auto; }
[data-design="a"] .a-reveal__kicker {
  font-family: var(--a-spec); font-size: 12px; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--a-muted); margin: 0 0 var(--a-em) 0;
}
[data-design="a"] .a-reveal__title {
  font-family: var(--a-display); font-size: clamp(32px, 5vw, 56px);
  letter-spacing: -0.015em; line-height: 1.05; margin: 0 0 var(--a-cap) 0;
}
[data-design="a"] .a-reveal__hint {
  font-family: var(--a-body); font-style: italic; font-size: 16px; color: var(--a-ink-2); margin: 0;
}

[data-design="a"] .a-stein {
  position: relative;
  display: flex; flex-direction: column; align-items: center; gap: var(--a-cap);
  background: transparent; border: 0; cursor: pointer; padding: var(--a-cap);
  min-height: 44px; min-width: 44px;
}
[data-design="a"] .a-stein__glass {
  position: relative; display: block; width: 84px; height: 116px;
}
[data-design="a"] .a-stein__body {
  position: absolute; left: 8px; right: 8px; bottom: 0; top: 20px;
  background: var(--a-paper);
  border: 2px solid var(--a-ink);
  transform-origin: bottom center;
  transition: transform var(--a-register) var(--a-ease-cut);
}
[data-design="a"] .a-stein__handle {
  position: absolute; right: -14px; top: 34px; width: 20px; height: 46px;
  border: 2px solid var(--a-ink); border-left: 0;
  border-radius: 0 9999px 9999px 0;
}
[data-design="a"] .a-stein__foam {
  position: absolute; left: 6px; right: 6px; top: 0; height: 22px;
  background: var(--a-stone); border: 2px solid var(--a-ink); border-bottom: 0;
  transform: scaleY(0.3); transform-origin: bottom center;
  transition: transform var(--a-register) var(--a-ease-settle);
}
/* Ambient idle before interaction: a slow settle breath, transform-only */
[data-design="a"] .a-stein:not([aria-expanded="true"]) .a-stein__foam {
  animation: a-stein-breathe 5s var(--a-ease-tide) infinite;
}
@keyframes a-stein-breathe {
  0%   { transform: scaleY(0.3); }
  50%  { transform: scaleY(0.38); }
  100% { transform: scaleY(0.3); }
}
[data-design="a"] .a-stein[aria-expanded="true"] .a-stein__body { transform: translateY(-8px); }
[data-design="a"] .a-stein[aria-expanded="true"] .a-stein__foam { transform: scaleY(1) translateY(-8px); animation: none; }
[data-design="a"] .a-stein__label {
  font-family: var(--a-spec); font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--a-ink);
}
[data-design="a"] .a-stein:focus-visible { outline: 2px solid var(--a-vermillion); outline-offset: 4px; }
@media (hover: hover) and (pointer: fine) {
  [data-design="a"] .a-stein:hover .a-stein__body { transform: translateY(-4px); }
}

[data-design="a"] .a-stein__panel {
  max-width: 520px; margin-inline: auto;
  padding: var(--a-leading) var(--a-spread);
  background: var(--a-paper);
  border: 1px solid var(--a-ink);
  animation: a-panel-in var(--a-register) var(--a-ease-cut) both;
}
[data-design="a"] .a-stein__panel[hidden] { display: none; }
@keyframes a-panel-in {
  0%   { opacity: 0; transform: translateY(12px); clip-path: inset(0 0 100% 0); }
  100% { opacity: 1; transform: translateY(0);    clip-path: inset(0 0 0% 0); }
}
[data-design="a"] .a-stein__kicker {
  font-family: var(--a-spec); font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--a-muted); margin: 0 0 var(--a-em) 0;
}
[data-design="a"] .a-stein__panel-title {
  font-family: var(--a-display); font-size: clamp(24px, 3vw, 34px);
  margin: 0 0 var(--a-em) 0; letter-spacing: -0.01em;
}
[data-design="a"] .a-stein__panel-body {
  font-family: var(--a-body); font-size: 16px; line-height: 1.5; color: var(--a-ink-2); margin: 0;
}

@media (prefers-reduced-motion: reduce) {
  [data-design="a"] .a-hero__pour { animation: none; transform: translateX(-50%) scaleY(1); opacity: 1; }
  [data-design="a"] .a-hero__foam { animation: none; transform: translateX(-50%) scaleX(1); }
  [data-design="a"] .a-menu__name { transition: none; opacity: 1; transform: none; }
  [data-design="a"] .a-menu__name::before { transition: none; transform: translateY(-50%) scale(1); }
  [data-design="a"] .a-menu__item.is-in .a-menu__name::after { animation: none; opacity: 0; }
  [data-design="a"] .a-pointer__wisp { animation: none; opacity: 0.6; }
  [data-design="a"] .a-stein__foam { animation: none; }
  [data-design="a"] .a-stein__body, [data-design="a"] .a-stein__foam { transition: none; }
  [data-design="a"] .a-stein__panel { animation: none; }
}

/* ---------- Full menu (Element 4 mid-page + guardrail rows) ---------- */

[data-design="a"] .a-menu-full {
  --menu-row-pad: 12px;
  padding: var(--a-spread) clamp(20px, 6vw, var(--a-gutter));
  background: var(--a-paper);
}
[data-design="a"] .a-menu-full__head {
  max-width: 760px; margin-inline: auto; text-align: center; margin-bottom: var(--a-spread);
}
[data-design="a"] .a-menu-full__kicker {
  font-family: var(--a-spec); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--a-vermillion); margin: 0 0 var(--a-em) 0;
}
[data-design="a"] .a-menu-full__title {
  font-family: var(--a-display); font-size: clamp(32px, 4.5vw, 56px);
  letter-spacing: -0.015em; margin: 0 0 var(--a-cap) 0;
}
[data-design="a"] .a-menu-full__note {
  font-family: var(--a-body); font-style: italic; font-size: 15px; color: var(--a-muted); margin: 0;
}
[data-design="a"] .a-menu-full__cols {
  display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: var(--a-spread);
  max-width: 1080px; margin-inline: auto;
}
[data-design="a"] .a-menu-full__section-head {
  display: grid; grid-template-columns: 1fr auto; align-items: baseline;
  border-bottom: 1px solid var(--a-ink); padding-bottom: var(--a-em); margin-bottom: var(--a-cap);
}
[data-design="a"] .a-menu-full__section-title {
  font-family: var(--a-display); font-size: 22px; letter-spacing: -0.01em;
}
[data-design="a"] .a-menu-full__section-no {
  font-family: var(--a-spec); font-size: 12px; letter-spacing: 0.08em; color: var(--a-muted);
}
[data-design="a"] .a-menu-full__rows { list-style: none; margin: 0; padding: 0; }
[data-design="a"] .a-menu-full__row {
  display: grid; grid-template-columns: minmax(0,auto) 1fr auto;
  align-items: baseline; column-gap: var(--a-em);
  padding: var(--menu-row-pad) 0;
  border-bottom: 1px solid var(--a-rule);
}
[data-design="a"] .a-menu-full__name {
  font-family: var(--a-body); font-size: 16px; color: var(--a-ink);
  min-width: 0; overflow-wrap: anywhere;
}
[data-design="a"] .a-menu-full__leader {
  border-bottom: 1px dotted var(--a-rule);
  transform: translateY(-4px);
  min-width: 0;
}
[data-design="a"] .a-menu-full__price {
  font-family: var(--a-spec); font-size: 14px; color: var(--a-muted);
  white-space: nowrap; font-variant-numeric: tabular-nums; justify-self: end;
}
@media (max-width: 768px) {
  [data-design="a"] .a-menu-full__cols { grid-template-columns: 1fr; gap: var(--a-spread); }
}

/* ---------- Hours & Location ---------- */

[data-design="a"] .a-hours {
  padding: var(--a-spread) clamp(20px, 6vw, var(--a-gutter));
  background: var(--a-stone);
}
[data-design="a"] .a-hours__grid {
  display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: var(--a-spread);
  max-width: 1080px; margin-inline: auto;
}
[data-design="a"] .a-hours__kicker {
  font-family: var(--a-spec); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--a-vermillion); margin: 0 0 var(--a-em) 0;
}
[data-design="a"] .a-hours__title {
  font-family: var(--a-display); font-size: clamp(24px, 3vw, 34px);
  letter-spacing: -0.01em; margin: 0 0 var(--a-cap) 0;
}
[data-design="a"] .a-hours__list { list-style: none; margin: 0; padding: 0; }
[data-design="a"] .a-hours__list li {
  display: flex; justify-content: space-between; gap: var(--a-cap);
  padding: var(--a-em) 0; border-top: 1px solid var(--a-rule);
  font-family: var(--a-body); font-size: 15px; color: var(--a-ink-2);
}
[data-design="a"] .a-hours__address {
  font-family: var(--a-body); font-size: 16px; color: var(--a-ink-2); margin: 0 0 var(--a-cap) 0;
}
@media (max-width: 768px) {
  [data-design="a"] .a-hours__grid { grid-template-columns: 1fr; }
}

/* ---------- Gallery ---------- */

[data-design="a"] .a-gallery {
  padding: var(--a-spread) clamp(20px, 6vw, var(--a-gutter));
  background: var(--a-paper);
}
[data-design="a"] .a-gallery__head { max-width: 760px; margin-inline: auto; text-align: center; margin-bottom: var(--a-spread); }
[data-design="a"] .a-gallery__kicker {
  font-family: var(--a-spec); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--a-vermillion); margin: 0 0 var(--a-em) 0;
}
[data-design="a"] .a-gallery__title {
  font-family: var(--a-display); font-size: clamp(28px, 4vw, 48px); letter-spacing: -0.015em; margin: 0;
}
[data-design="a"] .a-gallery__grid {
  display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 24px;
  max-width: 1080px; margin-inline: auto;
}
[data-design="a"] .a-gallery__frame {
  margin: 0; border: 1px solid var(--a-ink); aspect-ratio: 4 / 3; overflow: hidden;
  background: var(--a-stone);
}
[data-design="a"] .a-gallery__frame--photo img {
  width: 100%; height: 100%; object-fit: cover;
}
[data-design="a"] .a-gallery__frame--treatment {
  display: flex; align-items: center; justify-content: center;
}
[data-design="a"] .a-gallery__treatment-mark {
  font-family: var(--a-display); font-size: clamp(36px, 6vw, 64px);
  color: var(--a-ink); opacity: 0.18; letter-spacing: -0.02em;
}
@media (max-width: 560px) {
  [data-design="a"] .a-gallery__grid { grid-template-columns: 1fr; }
}

/* ---------- About (Element 4-grammar: the considered paragraph) ---------- */

[data-design="a"] .a-about {
  padding: var(--a-spread) clamp(20px, 6vw, var(--a-gutter));
  background: var(--a-stone);
  display: grid; grid-template-columns: 1fr;
  max-width: 100%;
}
[data-design="a"] .a-about__title {
  font-family: var(--a-display); font-size: clamp(32px, 5vw, 72px);
  letter-spacing: -0.02em; line-height: 0.98; margin: 0 0 var(--a-spread) 0;
  max-width: 14ch;
}
[data-design="a"] .a-about__body {
  position: relative; max-width: 60ch; margin-left: auto; margin-right: 0;
}
[data-design="a"] .a-about__lede {
  font-family: var(--a-display); font-size: clamp(19px, 2vw, 24px);
  line-height: 1.4; letter-spacing: -0.005em; color: var(--a-ink); margin: 0;
  width: 100%; max-width: 100%;
  transition: max-width var(--a-drift) cubic-bezier(0.45, 0, 0.55, 1);
}
[data-design="a"] .a-about__lede.is-tight { max-width: 94%; }
[data-design="a"] .a-about__lede.is-loose { max-width: 100%; }
[data-design="a"] .a-about__rule {
  display: block; position: relative; height: 2px;
  margin-top: var(--a-rule-sp);
  background: var(--a-vermillion); width: 88px;
  animation: a-drift 18s cubic-bezier(0.45, 0, 0.55, 1) infinite;
}
@keyframes a-drift {
  0%   { transform: translateX(-3px); }
  50%  { transform: translateX(3px); }
  100% { transform: translateX(-3px); }
}
[data-design="a"] .a-about__sign {
  font-family: var(--a-spec); font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--a-muted); margin: var(--a-rule-sp) 0 0 auto; max-width: 60ch;
}
@media (prefers-reduced-motion: reduce) {
  [data-design="a"] .a-about__lede { transition: none; max-width: 100%; }
  [data-design="a"] .a-about__rule { animation: none; }
}
@media (max-width: 768px) {
  [data-design="a"] .a-about__body { margin-left: 0; margin-right: 0; }
  [data-design="a"] .a-about__sign { margin-left: 0; }
}

/* ---------- Footer ---------- */

[data-design="a"] .a-footer {
  padding: var(--a-spread) clamp(20px, 6vw, var(--a-gutter)) var(--a-leading);
  background: var(--a-paper);
  border-top: 1px solid var(--a-ink);
}
[data-design="a"] .a-footer__grid {
  display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: var(--a-spread);
  max-width: 1080px; margin-inline: auto;
  font-family: var(--a-spec); text-transform: uppercase; letter-spacing: 0.06em; font-size: 13px;
}
[data-design="a"] .a-footer__col { display: flex; flex-direction: column; gap: var(--a-em); }
[data-design="a"] .a-footer__name { color: var(--a-ink); margin: 0; }
[data-design="a"] .a-footer__year::before { content: "\2014 "; color: var(--a-vermillion); }
[data-design="a"] .a-footer__addr { color: var(--a-muted); margin: 0; text-transform: none; letter-spacing: 0; font-size: 14px; }
[data-design="a"] .a-footer__label { color: var(--a-muted); margin: 0; }
@media (max-width: 768px) {
  [data-design="a"] .a-footer__grid { grid-template-columns: 1fr; gap: var(--a-cap); }
}

/* ============================================================
   Mobile / overflow discipline (bottom of file, per contract)
   ============================================================ */
[data-design="a"].dq-design,
[data-design="a"] .dq-design {
  max-width: 100%;
  overflow-x: clip;
}
[data-design="a"].dq-design * { min-width: 0; }
[data-design="a"].dq-design img,
[data-design="a"].dq-design svg:not([data-keep-size]) {
  max-width: 100%;
  height: auto;
}

/* Phase-3.4 hero visibility floor (forge_assemble) */
[data-design="a"] [data-mf-role="hero"] :is(h1,h2,p,.headline,.subtitle,.proof,[class*="headline"],[class*="subtitle"],[class*="proof"]),
[data-design="a"] [data-mf-role="cta"] { opacity: 1 !important; }
