:root {
  --paper: #F2E8D5;
  --paper-soft: #F8F0E0;
  --paper-deep: #E8DAC0;
  --ink: #1E1410;
  --ink-soft: #4A3A30;
  --ink-light: #7A6A5E;
  --rust: #B3401F;
  --rust-deep: #8A2E14;
  --sage: #3D5345;
  --ochre: #C18924;
  --sand: #E5D6BC;
  --white: #FFFFFF;
  --serif: 'Fraunces', Georgia, 'Times New Roman', serif;
  --sans: 'DM Sans', system-ui, -apple-system, sans-serif;
  --hand: 'Caveat', cursive;
  --container: 1240px;
  --gutter: 32px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.6;
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
  background-image:
    radial-gradient(circle at 12% 8%, rgba(193, 137, 36, 0.055) 0%, transparent 35%),
    radial-gradient(circle at 88% 92%, rgba(179, 64, 31, 0.045) 0%, transparent 40%);
}

img { display: block; max-width: 100%; height: auto; }
a { color: inherit; }

h1, h2, h3, h4 {
  font-family: var(--serif);
  font-weight: 700;
  letter-spacing: -0.02em;
  margin: 0;
  line-height: 1.05;
}

p { margin: 0 0 1em; }
p:last-child { margin-bottom: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }

.container {
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--gutter);
}

.hand {
  display: inline-block;
  font-family: var(--hand);
  font-size: 22px;
  font-weight: 500;
  color: var(--rust);
  line-height: 1.2;
  margin-bottom: 12px;
  transform: rotate(-1.5deg);
  transform-origin: left center;
}

.skip-link {
  position: absolute;
  top: -100px;
  left: 16px;
  background: var(--ink);
  color: var(--paper);
  padding: 12px 20px;
  z-index: 999;
  text-decoration: none;
  transition: top .2s ease;
}
.skip-link:focus { top: 16px; }

/* ====== BUTTONS ====== */
.btn-ticket {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 16px 26px;
  background: var(--rust);
  color: var(--paper);
  border: none;
  cursor: pointer;
  text-decoration: none;
  border-radius: 2px;
  box-shadow: 3px 3px 0 var(--ink);
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
  white-space: nowrap;
}
.btn-ticket:hover {
  background: var(--rust-deep);
  transform: translate(-1px, -1px);
  box-shadow: 5px 5px 0 var(--ink);
}
.btn-ticket:active {
  transform: translate(2px, 2px);
  box-shadow: 1px 1px 0 var(--ink);
}
.btn-ticket i { font-size: 12px; }
.btn-sm { padding: 10px 18px; font-size: 11px; }
.btn-block { display: flex; justify-content: center; width: 100%; }
.btn-ticket.is-disabled { opacity: 0.35; pointer-events: none; }

.link-arrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--rust);
  text-decoration: none;
  border-bottom: 1px solid var(--rust);
  padding-bottom: 4px;
  transition: gap .2s ease, color .2s ease;
}
.link-arrow:hover { gap: 14px; color: var(--rust-deep); }
.link-arrow i { font-size: 11px; }

/* ====== STAMPS ====== */
.stamp {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 130px;
  height: 130px;
  border: 2px solid currentColor;
  border-radius: 50%;
  text-align: center;
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  line-height: 1.4;
  padding: 16px;
  transform: rotate(-9deg);
  position: relative;
}
.stamp::before {
  content: "";
  position: absolute;
  inset: 5px;
  border: 1px dashed currentColor;
  border-radius: 50%;
  opacity: 0.5;
}
.stamp--open { color: var(--rust); }
.stamp--est { color: var(--rust); }
.stamp--est__big {
  font-family: var(--serif);
  font-style: italic;
  font-size: 32px;
  font-weight: 700;
  letter-spacing: -0.02em;
  text-transform: none;
  line-height: 1;
  margin: 4px 0;
}

/* ====== TAPE ====== */
.tape {
  position: absolute;
  width: 80px;
  height: 22px;
  background: rgba(230, 210, 165, 0.72);
  box-shadow: 0 1px 3px rgba(0,0,0,0.08);
  z-index: 2;
}
.tape::before, .tape::after {
  content: "";
  position: absolute;
  top: 0; bottom: 0;
  width: 4px;
  background: repeating-linear-gradient(to bottom, transparent 0 2px, rgba(0,0,0,0.08) 2px 4px);
}
.tape::before { left: 0; }
.tape::after { right: 0; }
.tape--tl { top: -10px; left: 20px; transform: rotate(-8deg); }
.tape--br { bottom: -10px; right: 20px; transform: rotate(-6deg); }
.tape--tc { top: -10px; left: 50%; transform: translateX(-50%) rotate(2deg); }

/* ====== HEADER ====== */
.site-header {
  position: sticky;
  top: 0;
  z-index: 100;
  background: var(--paper);
  border-bottom: 1px solid var(--ink);
  box-shadow: 0 2px 0 var(--paper), 0 3px 0 var(--ink);
}
.header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 16px 0;
}
.brand {
  display: flex;
  flex-direction: column;
  line-height: 1;
  text-decoration: none;
  color: var(--ink);
}
.brand-mark {
  font-family: var(--serif);
  font-size: 28px;
  font-weight: 900;
  letter-spacing: -0.04em;
  font-variation-settings: "opsz" 40, "SOFT" 50;
}
.brand-sub {
  font-family: var(--hand);
  font-size: 16px;
  color: var(--rust);
  margin-top: 2px;
  transform: rotate(-1deg);
  transform-origin: left;
}
.primary-nav ul {
  display: flex;
  gap: 26px;
  align-items: center;
}
.primary-nav a {
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--ink);
  position: relative;
  padding: 6px 0;
}
.primary-nav a::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 0; height: 1px;
  background: var(--rust);
  transition: width .25s ease;
}
.primary-nav a:hover::after { width: 100%; }

.header-actions { display: flex; align-items: center; gap: 14px; }
.open-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  background: #4A8F4F;
  box-shadow: 0 0 0 4px rgba(74, 143, 79, 0.18);
  animation: pulse 2.4s ease-in-out infinite;
}
.open-label {
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-soft);
}
@keyframes pulse {
  0%, 100% { box-shadow: 0 0 0 4px rgba(74, 143, 79, 0.18); }
  50% { box-shadow: 0 0 0 7px rgba(74, 143, 79, 0.08); }
}
.cart-btn {
  position: relative;
  background: var(--ink);
  color: var(--paper);
  border: none;
  width: 42px; height: 42px;
  cursor: pointer;
  display: grid;
  place-items: center;
  font-size: 15px;
  border-radius: 2px;
  box-shadow: 3px 3px 0 var(--rust);
  transition: transform .15s ease, box-shadow .15s ease;
}
.cart-btn:hover {
  transform: translate(-1px, -1px);
  box-shadow: 4px 4px 0 var(--rust);
}
.cart-count {
  position: absolute;
  top: -8px; right: -8px;
  background: var(--rust);
  color: var(--paper);
  font-size: 11px;
  font-weight: 700;
  min-width: 20px; height: 20px;
  border-radius: 10px;
  display: grid; place-items: center;
  padding: 0 6px;
  border: 2px solid var(--paper);
}
.nav-toggle {
  display: none;
  background: none;
  border: none;
  width: 42px; height: 42px;
  cursor: pointer;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  padding: 0;
}
.nav-toggle span {
  display: block;
  width: 22px; height: 2px;
  background: var(--ink);
  border-radius: 1px;
  transition: all .3s ease;
}
.site-header.nav-open .nav-toggle span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.site-header.nav-open .nav-toggle span:nth-child(2) { opacity: 0; }
.site-header.nav-open .nav-toggle span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ====== HERO ====== */
.hero {
  padding: 56px 0 40px;
  position: relative;
}
.hero-wrap {
  display: grid;
  grid-template-columns: 60px 1fr 1fr;
  grid-template-rows: auto auto;
  gap: 32px 40px;
  align-items: start;
}
.hero-side {
  grid-row: 1 / 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding-top: 20px;
}
.hero-side__text {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  font-family: var(--hand);
  font-size: 17px;
  color: var(--ink-soft);
  letter-spacing: 0.06em;
}
.hero-side__line {
  flex: 1;
  width: 1px;
  min-height: 80px;
  background: var(--ink-soft);
  opacity: 0.4;
}
.hero-side__num {
  font-family: var(--serif);
  font-style: italic;
  font-size: 14px;
  color: var(--ink-soft);
}

.hero-copy {
  grid-column: 2;
  grid-row: 1;
  max-width: 560px;
  padding-top: 16px;
}
.hero-title {
  font-family: var(--serif);
  font-size: clamp(2.6rem, 6vw, 5.4rem);
  line-height: 0.94;
  font-weight: 900;
  letter-spacing: -0.045em;
  color: var(--ink);
  margin-bottom: 24px;
  font-variation-settings: "opsz" 144, "SOFT" 30;
}
.hero-title span { display: block; }
.hero-title span:nth-child(2) {
  margin-left: 1.6em;
  font-weight: 400;
  font-variation-settings: "opsz" 144, "SOFT" 80;
}
.hero-title em {
  display: block;
  font-style: italic;
  font-weight: 400;
  color: var(--rust);
  margin-left: 0.3em;
  font-variation-settings: "opsz" 144, "SOFT" 100;
}
.hero-lede {
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.65;
  color: var(--ink-soft);
  margin-bottom: 32px;
  max-width: 480px;
}
.hero-cta {
  display: flex;
  align-items: center;
  gap: 24px;
  flex-wrap: wrap;
}

.hero-photos {
  grid-column: 3;
  grid-row: 1 / 3;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 24px;
  padding-top: 8px;
}
.hero-photo { position: relative; background: var(--white); }
.hero-photo--main {
  width: 100%;
  max-width: 420px;
  padding: 12px;
  box-shadow: 6px 6px 0 var(--ink);
  transform: rotate(1.5deg);
}
.hero-photo--main img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
}
.hero-photo--small {
  width: 55%;
  max-width: 230px;
  padding: 10px;
  box-shadow: 5px 5px 0 var(--ink);
  transform: rotate(-3deg);
  margin-right: 40px;
  margin-top: -20px;
}
.hero-photo--small img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
}
.hero-photos .stamp--open {
  position: absolute;
  bottom: 40px;
  right: -16px;
  background: var(--paper);
  z-index: 3;
}

.hero-ticket {
  grid-column: 2 / 4;
  grid-row: 2;
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 0;
  align-items: stretch;
  background: var(--paper-soft);
  border: 1px solid var(--ink);
  margin-top: 8px;
  position: relative;
}
.hero-ticket::before, .hero-ticket::after {
  content: "";
  position: absolute;
  width: 20px; height: 20px;
  background: var(--paper);
  border: 1px solid var(--ink);
  border-radius: 50%;
  top: 50%;
  transform: translateY(-50%);
}
.hero-ticket::before { left: -11px; }
.hero-ticket::after { right: -11px; }
.hero-ticket__left {
  padding: 22px 28px;
  border-right: 1px dashed var(--ink);
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.hero-ticket__label {
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--rust);
}
.hero-ticket__left strong {
  font-family: var(--serif);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  color: var(--ink);
}
.hero-ticket__mid {
  padding: 22px 24px;
  border-right: 1px dashed var(--ink);
  display: flex;
  align-items: center;
}
.hero-ticket__num {
  font-family: var(--serif);
  font-style: italic;
  font-size: 32px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1;
}
.hero-ticket__right {
  padding: 22px 24px;
  display: flex;
  align-items: center;
}
.hero-ticket__link {
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--rust);
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding-bottom: 3px;
  border-bottom: 1px solid var(--rust);
  transition: gap .2s ease;
}
.hero-ticket__link:hover { gap: 12px; }

/* ====== TAG LINE (hanging tags) ====== */
.tag-line {
  padding: 56px 0 24px;
  overflow: hidden;
  border-top: 1px dashed rgba(30, 20, 16, 0.2);
  border-bottom: 1px dashed rgba(30, 20, 16, 0.2);
  background: var(--paper);
  margin-top: 24px;
}
.tag-line__row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
  gap: 32px 44px;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--gutter);
  padding-top: 20px;
}
.tag {
  position: relative;
  display: inline-block;
  background: var(--paper-soft);
  border: 1px solid var(--ink);
  padding: 8px 18px;
  font-family: var(--hand);
  font-size: 19px;
  color: var(--ink);
  transform: rotate(-2deg);
  box-shadow: 2px 2px 0 rgba(30, 20, 16, 0.15);
}
.tag:nth-child(even) { transform: rotate(2deg); }
.tag:nth-child(3n) { transform: rotate(-1deg); }
.tag::before {
  content: "";
  position: absolute;
  top: -26px;
  left: 50%;
  width: 1px;
  height: 24px;
  background: var(--ink-soft);
  transform: translateX(-50%);
}
.tag::after {
  content: "";
  position: absolute;
  top: -28px;
  left: 50%;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--ink);
  transform: translateX(-50%);
}

/* ====== BOARD ====== */
.board {
  padding: 96px 0;
  background: var(--paper);
}
.board-head {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 48px;
  align-items: end;
  margin-bottom: 48px;
  padding-bottom: 24px;
  border-bottom: 2px solid var(--ink);
}
.board-title {
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(2.6rem, 5.5vw, 4.6rem);
  font-weight: 400;
  letter-spacing: -0.03em;
  color: var(--ink);
  line-height: 0.95;
  font-variation-settings: "opsz" 144, "SOFT" 100;
}
.board-note {
  font-family: var(--sans);
  font-size: 14px;
  line-height: 1.6;
  color: var(--ink-soft);
  padding-bottom: 8px;
}
.board-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.board-item {
  display: grid;
  grid-template-columns: 56px 96px 1fr 160px;
  gap: 28px;
  align-items: center;
  padding: 28px 0;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.25);
  transition: background .2s ease;
}
.board-item:first-child { border-top: 1px dashed rgba(30, 20, 16, 0.25); }
.board-item:hover { background: rgba(232, 218, 192, 0.4); }
.board-num {
  display: grid;
  place-items: center;
  width: 48px; height: 48px;
  border: 2px solid var(--ink);
  border-radius: 50%;
  font-family: var(--serif);
  font-style: italic;
  font-size: 18px;
  font-weight: 600;
  color: var(--rust);
  line-height: 1;
}
.board-photo {
  width: 88px; height: 88px;
  border-radius: 50%;
  overflow: hidden;
  border: 2px solid var(--ink);
  background: var(--sand);
  flex-shrink: 0;
}
.board-photo img { width: 100%; height: 100%; object-fit: cover; }
.board-info h3 {
  font-family: var(--serif);
  font-style: italic;
  font-size: 24px;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--ink);
  margin-bottom: 6px;
}
.board-info p {
  font-family: var(--sans);
  font-size: 14px;
  line-height: 1.6;
  color: var(--ink-soft);
  margin: 0;
  max-width: 480px;
}
.board-action {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
  text-align: right;
}
.board-price {
  font-family: var(--serif);
  font-style: italic;
  font-size: 26px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1;
}
.board-add {
  background: none;
  border: none;
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--rust);
  cursor: pointer;
  padding: 0 0 3px;
  border-bottom: 1px solid var(--rust);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  transition: gap .2s ease, color .2s ease;
}
.board-add:hover { gap: 10px; color: var(--rust-deep); }
.board-add i { font-size: 9px; }

.board-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 24px;
  margin-top: 40px;
  flex-wrap: wrap;
}

/* ====== STORY ====== */
.story {
  padding: 96px 0 0;
  background: var(--paper-deep);
  position: relative;
}
.story-grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 80px;
  align-items: start;
  padding-bottom: 80px;
}
.story-title {
  font-family: var(--serif);
  font-size: clamp(2.2rem, 4vw, 3.4rem);
  line-height: 1.05;
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--ink);
  margin-bottom: 24px;
  font-variation-settings: "opsz" 144, "SOFT" 30;
}
.story-title em {
  font-style: italic;
  font-weight: 400;
  color: var(--rust);
  font-variation-settings: "opsz" 144, "SOFT" 80;
}
.story-copy p {
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.75;
  color: var(--ink-soft);
  margin-bottom: 18px;
}
.story-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
  margin: 28px 0 32px;
  padding: 20px 0;
  border-top: 1px dashed rgba(30, 20, 16, 0.25);
  border-bottom: 1px dashed rgba(30, 20, 16, 0.25);
}
.fact {
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ink);
}
.story-visual {
  position: relative;
  display: flex;
  justify-content: center;
}
.story-photo {
  width: 100%;
  max-width: 440px;
  padding: 14px;
  background: var(--white);
  box-shadow: 8px 8px 0 var(--ink);
  transform: rotate(-1deg);
  position: relative;
}
.story-photo img {
  width: 100%;
  aspect-ratio: 4/5;
  object-fit: cover;
}
.story-visual .stamp--est {
  position: absolute;
  bottom: -24px;
  right: 20px;
  background: var(--paper);
  z-index: 3;
}
.pullquote {
  background: var(--sage);
  color: var(--paper);
  padding: 80px 0;
}
.pullquote p {
  font-family: var(--serif);
  font-size: clamp(1.8rem, 3.6vw, 3rem);
  line-height: 1.2;
  font-weight: 400;
  font-style: normal;
  letter-spacing: -0.02em;
  max-width: 900px;
  margin-bottom: 16px;
  font-variation-settings: "opsz" 144, "SOFT" 50;
}
.pullquote p em {
  font-style: italic;
  color: var(--ochre);
  font-variation-settings: "opsz" 144, "SOFT" 100;
}
.pullquote .hand { color: var(--ochre); }

/* ====== DOORS ====== */
.doors {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 540px;
}
.door {
  padding: 80px 56px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  text-decoration: none;
  color: inherit;
  position: relative;
  overflow: hidden;
  transition: background .3s ease;
}
.door__label {
  position: absolute;
  top: 40px;
  left: 56px;
  font-family: var(--hand);
  font-size: 20px;
  opacity: 0.75;
}
.door__title {
  font-family: var(--serif);
  font-size: clamp(2.4rem, 4.5vw, 4rem);
  line-height: 0.94;
  font-weight: 900;
  letter-spacing: -0.04em;
  margin-bottom: 24px;
  font-variation-settings: "opsz" 144, "SOFT" 30;
}
.door__copy {
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.65;
  max-width: 380px;
  margin-bottom: 32px;
}
.door__cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  padding-bottom: 6px;
  border-bottom: 1px solid currentColor;
  align-self: flex-start;
  transition: gap .2s ease;
}
.door:hover .door__cta { gap: 16px; }
.door--butcher {
  background: var(--sand);
  color: var(--ink);
  background-image:
    linear-gradient(135deg, rgba(232, 218, 192, 1) 0%, rgba(229, 214, 188, 1) 100%),
    url("../img/int.jpg");
  background-size: cover;
  background-position: center;
  background-blend-mode: overlay;
}
.door--butcher:hover { background-color: var(--paper-deep); }
.door--bar {
  background: var(--ink);
  color: var(--paper);
  background-image:
    linear-gradient(180deg, rgba(30, 20, 16, 0.65) 0%, rgba(30, 20, 16, 0.9) 100%),
    url("../img/int.jpg");
  background-size: cover;
  background-position: center;
}
.door--bar .door__label { color: var(--ochre); }
.door--bar .door__cta { color: var(--ochre); border-color: var(--ochre); }
.door--bar:hover { background-color: #2a1e17; }

/* ====== FRONT COUNTER ====== */
.front-counter {
  padding: 112px 0;
  background: var(--paper);
  position: relative;
}
.note {
  max-width: 980px;
  margin: 0 auto;
  background: var(--paper-soft);
  padding: 64px 56px 56px;
  border: 1px solid var(--ink);
  box-shadow: 8px 8px 0 var(--ink);
  transform: rotate(-0.4deg);
  position: relative;
}
.pin {
  position: absolute;
  top: -14px;
  left: 50%;
  width: 28px; height: 28px;
  border-radius: 50%;
  background: var(--rust);
  border: 2px solid var(--ink);
  transform: translateX(-50%);
  box-shadow: 0 2px 4px rgba(30, 20, 16, 0.25);
}
.pin::after {
  content: "";
  position: absolute;
  top: 6px; left: 8px;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: rgba(255,255,255,0.4);
}
.note__title {
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 400;
  letter-spacing: -0.02em;
  color: var(--ink);
  margin-bottom: 40px;
  line-height: 1;
  font-variation-settings: "opsz" 144, "SOFT" 100;
}
.note__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  padding: 32px 0;
  border-top: 1px dashed rgba(30, 20, 16, 0.3);
  border-bottom: 1px dashed rgba(30, 20, 16, 0.3);
  margin-bottom: 32px;
}
.note__grid > div {
  padding-right: 24px;
  border-right: 1px dashed rgba(30, 20, 16, 0.2);
}
.note__grid > div:last-child { border-right: none; padding-right: 0; }
.note__grid h4 {
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--rust);
  margin-bottom: 12px;
}
.note__val {
  font-family: var(--serif);
  font-size: 19px;
  font-weight: 500;
  line-height: 1.35;
  color: var(--ink);
  margin-bottom: 8px;
}
.note__sub {
  font-family: var(--sans);
  font-size: 13px;
  line-height: 1.5;
  color: var(--ink-light);
  margin: 0;
}
.note__cta {
  display: flex;
  gap: 24px;
  align-items: center;
  flex-wrap: wrap;
}

/* ====== GUESTBOOK ====== */
.guestbook {
  background: var(--sage);
  color: var(--paper);
  padding: 96px 0;
  position: relative;
  overflow: hidden;
}
.guestbook::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: repeating-linear-gradient(
    to bottom,
    transparent 0 38px,
    rgba(251, 243, 231, 0.08) 38px 39px
  );
  pointer-events: none;
}
.guestbook__inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 var(--gutter);
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
  position: relative;
  z-index: 1;
}
.guestbook .hand { color: var(--ochre); }
.guestbook__title {
  font-family: var(--serif);
  font-size: clamp(2.4rem, 4.5vw, 3.8rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--paper);
  margin-bottom: 20px;
  line-height: 1;
  font-variation-settings: "opsz" 144, "SOFT" 30;
}
.guestbook__title em {
  font-style: italic;
  font-weight: 400;
  color: var(--ochre);
  font-variation-settings: "opsz" 144, "SOFT" 100;
}
.guestbook__copy p {
  font-family: var(--sans);
  font-size: 15px;
  line-height: 1.7;
  color: rgba(251, 243, 231, 0.85);
  max-width: 420px;
}
.guestbook__form {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.guestbook__form label {
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--ochre);
}
.guestbook__form input {
  background: transparent;
  border: none;
  border-bottom: 2px solid rgba(251, 243, 231, 0.35);
  padding: 12px 0 14px;
  font-family: var(--serif);
  font-style: italic;
  font-size: 22px;
  color: var(--paper);
  outline: none;
  transition: border-color .2s ease;
  width: 100%;
}
.guestbook__form input::placeholder {
  color: rgba(251, 243, 231, 0.35);
  font-style: italic;
}
.guestbook__form input:focus { border-color: var(--ochre); }
.guestbook__form .btn-ticket {
  align-self: flex-start;
  margin-top: 24px;
  background: var(--ochre);
  color: var(--ink);
  box-shadow: 3px 3px 0 var(--ink);
}
.guestbook__form .btn-ticket:hover { background: var(--paper); }
.form-status {
  font-family: var(--sans);
  font-size: 13px;
  margin-top: 4px;
  min-height: 20px;
}
.form-status.is-error { color: #ffb4a2; }
.form-status.is-success { color: #c3e6b2; }

/* ====== FOOTER ====== */
.site-footer {
  background: var(--ink);
  color: rgba(251, 243, 231, 0.75);
  padding: 80px 0 24px;
  font-size: 14px;
}
.footer-top {
  display: grid;
  grid-template-columns: 1.2fr 2.4fr;
  gap: 80px;
  padding-bottom: 56px;
  border-bottom: 1px solid rgba(251, 243, 231, 0.12);
}
.footer-brand .brand-mark {
  font-size: 36px;
  color: var(--paper);
  display: block;
  margin-bottom: 8px;
}
.footer-brand .hand {
  color: var(--ochre);
  margin-bottom: 20px;
}
.footer-brand p {
  max-width: 300px;
  font-size: 14px;
  line-height: 1.65;
  color: rgba(251, 243, 231, 0.65);
}
.footer-cols {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 40px;
}
.footer-cols h4 {
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ochre);
  margin-bottom: 18px;
}
.footer-cols li { margin-bottom: 10px; }
.footer-cols a {
  color: rgba(251, 243, 231, 0.75);
  text-decoration: none;
  font-size: 14px;
  transition: color .2s ease;
}
.footer-cols a:hover { color: var(--paper); }
.footer-bottom {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  padding-top: 24px;
  font-size: 13px;
  color: rgba(251, 243, 231, 0.5);
  flex-wrap: wrap;
}

/* ====== CART DRAWER ====== */
body.cart-open { overflow: hidden; }
.cart-overlay {
  position: fixed;
  inset: 0;
  background: rgba(30, 20, 16, 0.6);
  z-index: 240;
  opacity: 0;
  visibility: hidden;
  transition: opacity .35s ease, visibility .35s ease;
}
body.cart-open .cart-overlay { opacity: 1; visibility: visible; }
.cart-drawer {
  position: fixed;
  top: 0; right: 0; bottom: 0;
  width: 420px;
  max-width: 100vw;
  background: var(--paper);
  z-index: 250;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform .4s cubic-bezier(0.22, 0.7, 0.2, 1);
  box-shadow: -12px 0 0 rgba(30, 20, 16, 0.2);
}
body.cart-open .cart-drawer { transform: translateX(0); }
.cart-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 24px 28px;
  border-bottom: 1px solid var(--ink);
}
.cart-head .hand { margin: 0 0 4px; font-size: 17px; }
.cart-head h2 {
  font-family: var(--serif);
  font-size: 26px;
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--ink);
}
.cart-close {
  background: none;
  border: 1px solid var(--ink);
  width: 34px; height: 34px;
  cursor: pointer;
  color: var(--ink);
  font-size: 14px;
  display: grid;
  place-items: center;
  border-radius: 2px;
  transition: background .15s ease;
}
.cart-close:hover { background: var(--paper-deep); }
.cart-body {
  flex: 1;
  overflow-y: auto;
  padding: 20px 28px;
}
.cart-empty {
  color: var(--ink-soft);
  font-size: 15px;
  line-height: 1.6;
  padding: 24px 0;
}
.cart-empty a { color: var(--rust); text-decoration: underline; }
.cart-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 16px 0;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.25);
}
.cart-item__info { flex: 1; min-width: 0; }
.cart-item__info strong {
  display: block;
  font-family: var(--serif);
  font-style: italic;
  font-size: 17px;
  font-weight: 600;
  margin-bottom: 2px;
  line-height: 1.2;
}
.cart-item__info span {
  font-family: var(--sans);
  font-size: 13px;
  color: var(--ink-soft);
}
.cart-item__actions {
  display: flex;
  align-items: center;
  gap: 4px;
}
.qty-btn {
  width: 26px; height: 26px;
  border: 1px solid var(--ink);
  background: var(--paper-soft);
  border-radius: 2px;
  cursor: pointer;
  font-size: 14px;
  line-height: 1;
  color: var(--ink);
  display: grid;
  place-items: center;
}
.qty-btn:hover { background: var(--paper-deep); }
.qty-val {
  min-width: 24px;
  text-align: center;
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 600;
}
.remove-btn {
  background: none;
  border: none;
  cursor: pointer;
  color: var(--ink-soft);
  font-size: 12px;
  padding: 6px;
  margin-left: 4px;
  transition: color .15s ease;
}
.remove-btn:hover { color: var(--rust); }
.cart-foot {
  padding: 20px 28px 28px;
  border-top: 1px solid var(--ink);
  background: var(--paper-soft);
}
.cart-totals {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: 6px;
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--ink-soft);
}
.cart-totals strong {
  font-family: var(--serif);
  font-style: italic;
  font-size: 30px;
  font-weight: 700;
  color: var(--ink);
  letter-spacing: -0.02em;
  text-transform: none;
}
.cart-note {
  font-family: var(--hand);
  font-size: 16px;
  color: var(--ink-light);
  margin-bottom: 16px;
}

/* ====== COOKIE ====== */
.cookie-banner {
  position: fixed;
  bottom: 20px;
  left: 20px;
  right: 20px;
  max-width: 520px;
  background: var(--paper-soft);
  color: var(--ink);
  border: 1px solid var(--ink);
  padding: 18px 22px;
  display: flex;
  align-items: center;
  gap: 16px;
  z-index: 200;
  transform: translateY(20px);
  opacity: 0;
  transition: transform .4s ease, opacity .4s ease;
  font-size: 14px;
  line-height: 1.5;
  box-shadow: 4px 4px 0 var(--ink);
}
.cookie-banner.is-visible { transform: translateY(0); opacity: 1; }
.cookie-banner p { margin: 0; flex: 1; }
.cookie-banner a { color: var(--rust); text-decoration: underline; }

/* ====== RESPONSIVE ====== */
@media (max-width: 1024px) {
  .hero-wrap { grid-template-columns: 40px 1fr 1fr; gap: 28px 32px; }
  .hero-title { font-size: clamp(2.4rem, 5.4vw, 4rem); }
  .board-head { grid-template-columns: 1fr 280px; gap: 32px; }
  .story-grid { gap: 56px; }
  .note { padding: 48px 40px 40px; }
  .note__grid { gap: 28px; }
  .footer-top { grid-template-columns: 1fr; gap: 48px; }
  .guestbook__inner { gap: 56px; }
}

@media (max-width: 860px) {
  :root { --gutter: 24px; }
  .nav-toggle { display: flex; }
  .open-label, .open-dot { display: none; }
  .primary-nav {
    position: fixed;
    inset: 0;
    padding: 96px 32px 32px;
    background: var(--paper);
    transform: translateX(100%);
    transition: transform .35s cubic-bezier(0.7, 0, 0.2, 1);
    z-index: 90;
    overflow-y: auto;
  }
  .site-header.nav-open .primary-nav { transform: translateX(0); }
  .primary-nav ul { flex-direction: column; align-items: flex-start; gap: 0; }
  .primary-nav li { width: 100%; border-bottom: 1px dashed rgba(30,20,16,0.2); }
  .primary-nav a {
    display: block;
    padding: 20px 0;
    font-family: var(--serif);
    font-size: 28px;
    font-weight: 700;
    letter-spacing: -0.02em;
    text-transform: none;
  }
  .primary-nav a::after { display: none; }

  .hero { padding: 32px 0 24px; }
  .hero-wrap {
    grid-template-columns: 1fr;
    gap: 32px;
  }
  .hero-side {
    grid-row: auto;
    flex-direction: row;
    align-items: center;
    gap: 12px;
    padding: 0;
  }
  .hero-side__text {
    writing-mode: horizontal-tb;
    transform: none;
    font-size: 15px;
  }
  .hero-side__line { min-height: 0; height: 1px; min-width: 32px; flex: none; }
  .hero-copy { grid-column: 1; grid-row: auto; padding: 0; }
  .hero-title span:nth-child(2) { margin-left: 0.8em; }
  .hero-title em { margin-left: 0; }
  .hero-photos {
    grid-column: 1;
    grid-row: auto;
    flex-direction: row;
    align-items: flex-start;
    gap: 16px;
    padding: 0;
  }
  .hero-photo--main { max-width: 55%; transform: rotate(1deg); }
  .hero-photo--small {
    width: 35%;
    max-width: 180px;
    margin: 0;
    transform: rotate(-3deg);
    align-self: flex-end;
  }
  .hero-photos .stamp--open {
    position: relative;
    right: auto;
    bottom: auto;
    align-self: center;
    margin-left: auto;
    width: 100px;
    height: 100px;
    font-size: 9px;
  }
  .hero-ticket {
    grid-column: 1;
    grid-row: auto;
    grid-template-columns: 1fr;
  }
  .hero-ticket__left,
  .hero-ticket__mid,
  .hero-ticket__right {
    padding: 16px 20px;
    border-right: none;
    border-bottom: 1px dashed var(--ink);
  }
  .hero-ticket__right { border-bottom: none; }
  .hero-ticket__mid { justify-content: flex-start; }

  .board { padding: 72px 0; }
  .board-head { grid-template-columns: 1fr; gap: 16px; margin-bottom: 32px; }
  .board-item {
    grid-template-columns: 40px 72px 1fr;
    gap: 16px;
    padding: 24px 0;
  }
  .board-photo { width: 72px; height: 72px; }
  .board-num { width: 36px; height: 36px; font-size: 15px; }
  .board-info h3 { font-size: 20px; }
  .board-action {
    grid-column: 2 / 4;
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    margin-top: 8px;
    padding-left: 88px;
    gap: 12px;
  }
  .board-price { font-size: 22px; }

  .story { padding: 72px 0 0; }
  .story-grid { grid-template-columns: 1fr; gap: 48px; padding-bottom: 56px; }
  .story-photo { max-width: 100%; }
  .pullquote { padding: 56px 0; }

  .doors { grid-template-columns: 1fr; }
  .door { padding: 72px 32px; min-height: 380px; }
  .door__label { top: 32px; left: 32px; }

  .front-counter { padding: 80px 0; }
  .note { padding: 44px 32px 36px; transform: none; }
  .note__grid { grid-template-columns: 1fr; gap: 24px; }
  .note__grid > div {
    padding-right: 0;
    padding-bottom: 20px;
    border-right: none;
    border-bottom: 1px dashed rgba(30,20,16,0.2);
  }
  .note__grid > div:last-child { border-bottom: none; padding-bottom: 0; }

  .guestbook { padding: 72px 0; }
  .guestbook__inner { grid-template-columns: 1fr; gap: 32px; }

  .site-footer { padding: 64px 0 20px; }
  .footer-cols { grid-template-columns: 1fr 1fr; gap: 32px; }
}

@media (max-width: 640px) {
  :root { --gutter: 20px; }
  .header-inner { padding: 12px 0; }
  .brand-mark { font-size: 24px; }
  .brand-sub { font-size: 14px; }

  .hero-title { font-size: clamp(2.2rem, 11vw, 3.4rem); }
  .hero-title span:nth-child(2) { margin-left: 0.5em; }
  .hero-lede { font-size: 15px; }
  .hero-cta { flex-direction: column; align-items: stretch; gap: 16px; }
  .hero-cta .link-arrow { align-self: flex-start; }
  .hero-photos { flex-direction: column; align-items: center; }
  .hero-photo--main { max-width: 100%; }
  .hero-photo--small { width: 60%; align-self: flex-end; margin-top: -32px; }
  .hero-photos .stamp--open {
    position: absolute;
    top: 40%;
    left: -10px;
    width: 90px; height: 90px;
    font-size: 8px;
    background: var(--paper);
  }

  .tag-line__row { gap: 24px 32px; }
  .tag { font-size: 16px; padding: 6px 14px; }

  .board-action { padding-left: 0; }

  .footer-cols { grid-template-columns: 1fr; gap: 28px; }
  .footer-bottom { flex-direction: column; gap: 8px; }

  .cookie-banner {
    left: 12px; right: 12px; bottom: 12px;
    flex-direction: column;
    align-items: stretch;
    text-align: center;
  }
  .cookie-banner button { width: 100%; }

  .cart-drawer { width: 100%; }
  .guestbook__form .btn-ticket { align-self: stretch; justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
/* ====== MENU PAGE ====== */
.menu-hero {
  padding: 72px 0 56px;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.25);
}
.menu-hero__inner {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 48px;
  align-items: end;
}
.menu-hero__title {
  font-family: var(--serif);
  font-size: clamp(3rem, 7vw, 6rem);
  line-height: 0.92;
  font-weight: 900;
  letter-spacing: -0.045em;
  color: var(--ink);
  margin: 8px 0 20px;
  font-variation-settings: "opsz" 144, "SOFT" 30;
}
.menu-hero__title em {
  font-style: italic;
  font-weight: 400;
  color: var(--rust);
  font-variation-settings: "opsz" 144, "SOFT" 100;
}
.menu-hero__lede {
  font-size: 17px;
  line-height: 1.65;
  color: var(--ink-soft);
  max-width: 540px;
  margin: 0;
}
.menu-hero__stamp { align-self: flex-end; color: var(--rust); }

.menu-layout {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 72px;
  padding: 72px 0 96px;
}
.menu-index {
  align-self: start;
  position: sticky;
  top: 100px;
}
.menu-index__title {
  font-family: var(--hand);
  font-size: 22px;
  color: var(--rust);
  margin: 0 0 8px;
  font-weight: 600;
}
.menu-index__heading {
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ink);
  padding-bottom: 12px;
  margin-bottom: 16px;
  border-bottom: 1px solid var(--ink);
}
.menu-index ul { display: flex; flex-direction: column; gap: 2px; }
.menu-index a {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 10px 12px;
  text-decoration: none;
  color: var(--ink);
  font-size: 13px;
  font-weight: 500;
  border-left: 2px solid transparent;
  transition: background .2s ease, border-color .2s ease;
}
.menu-index a:hover { background: var(--paper-soft); border-left-color: var(--rust); }
.menu-index a span:first-child {
  font-family: var(--serif);
  font-style: italic;
  font-size: 12px;
  color: var(--ink-light);
  margin-right: 12px;
  min-width: 20px;
}
.menu-index__note {
  margin-top: 28px;
  padding: 16px;
  background: var(--paper-soft);
  border: 1px dashed var(--ink);
  font-size: 12px;
  line-height: 1.6;
  color: var(--ink-soft);
}

.menu-content { display: flex; flex-direction: column; gap: 72px; }
.menu-section { scroll-margin-top: 100px; }
.menu-section__head {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 24px;
  align-items: baseline;
  margin-bottom: 8px;
  padding-bottom: 16px;
  border-bottom: 2px solid var(--ink);
}
.menu-section__num {
  font-family: var(--serif);
  font-style: italic;
  font-size: 48px;
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--rust);
  line-height: 1;
}
.menu-section__title {
  font-family: var(--serif);
  font-size: clamp(1.8rem, 3.5vw, 2.6rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--ink);
  line-height: 1;
}
.menu-section__title em { font-style: italic; font-weight: 400; color: var(--rust); }
.menu-section__meta {
  font-family: var(--sans);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--ink-light);
  text-align: right;
  font-weight: 600;
}

.menu-list { display: flex; flex-direction: column; }
.menu-item {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px 24px;
  padding: 20px 0;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.2);
  transition: background .15s ease;
}
.menu-item:hover { background: rgba(232, 218, 192, 0.3); }
.menu-item__main { min-width: 0; }
.menu-item__row {
  display: flex;
  align-items: baseline;
  gap: 10px;
  margin-bottom: 4px;
}
.menu-item__name {
  font-family: var(--serif);
  font-size: 19px;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--ink);
  line-height: 1.2;
  flex-shrink: 0;
}
.menu-item__name em {
  font-style: italic;
  font-weight: 400;
  color: var(--rust);
  font-size: 0.9em;
}
.menu-item__dots {
  flex: 1;
  border-bottom: 1px dotted rgba(30, 20, 16, 0.35);
  height: 0.7em;
  margin: 0 4px;
}
.menu-item__price {
  font-family: var(--serif);
  font-style: italic;
  font-size: 20px;
  font-weight: 600;
  color: var(--ink);
  white-space: nowrap;
}
.menu-item__desc {
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--ink-soft);
  margin: 0;
  max-width: 520px;
}
.menu-item__add {
  align-self: center;
  background: none;
  border: none;
  cursor: pointer;
  font-family: var(--hand);
  font-size: 20px;
  color: var(--rust);
  padding: 4px 10px;
  border-radius: 2px;
  transition: color .15s ease, background .15s ease;
  white-space: nowrap;
  opacity: 0.85;
}
.menu-item__add:hover { color: var(--rust-deep); background: rgba(179, 64, 31, 0.08); opacity: 1; }

.menu-item__tag {
  display: inline-block;
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--rust);
  background: rgba(179, 64, 31, 0.08);
  padding: 2px 8px;
  border-radius: 2px;
  margin-left: 8px;
  vertical-align: middle;
}

.menu-section--signature {
  background: var(--paper-soft);
  padding: 40px 32px;
  border: 1px solid var(--ink);
  box-shadow: 4px 4px 0 var(--ink);
  margin-left: -32px;
  margin-right: -32px;
}
.menu-section--signature .menu-section__head { border-bottom-color: var(--rust); }
.menu-section--bar .menu-section__num,
.menu-section--bar .menu-section__title em { color: var(--ochre); }
.menu-section--butcher .menu-section__num,
.menu-section--butcher .menu-section__title em { color: var(--sage); }

.menu-notes {
  margin-top: 48px;
  padding: 32px;
  background: var(--paper-soft);
  border: 1px dashed var(--ink);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
.menu-notes h4 {
  font-family: var(--hand);
  font-size: 22px;
  color: var(--rust);
  margin: 0 0 6px;
  font-weight: 600;
}
.menu-notes p {
  font-size: 13px;
  line-height: 1.6;
  color: var(--ink-soft);
  margin: 0;
}
.menu-sign {
  margin-top: 40px;
  text-align: right;
  padding-top: 24px;
  border-top: 1px dashed rgba(30, 20, 16, 0.25);
}
.menu-sign .hand { font-size: 28px; }

@media (max-width: 1024px) {
  .menu-layout { grid-template-columns: 200px 1fr; gap: 48px; }
}
@media (max-width: 860px) {
  .menu-hero__inner { grid-template-columns: 1fr; gap: 24px; }
  .menu-hero__stamp { display: none; }
  .menu-layout { grid-template-columns: 1fr; gap: 32px; padding: 48px 0 72px; }
  .menu-index {
    position: static;
    padding: 20px;
    background: var(--paper-soft);
    border: 1px solid var(--ink);
  }
  .menu-index ul { flex-direction: row; flex-wrap: wrap; gap: 6px; }
  .menu-index a {
    padding: 6px 12px;
    background: var(--paper);
    border: 1px solid rgba(30, 20, 16, 0.15);
    border-radius: 2px;
    font-size: 12px;
  }
  .menu-index a span:first-child { display: none; }
  .menu-index__note { display: none; }
  .menu-notes { grid-template-columns: 1fr; gap: 20px; }
  .menu-section--signature { margin-left: 0; margin-right: 0; padding: 32px 20px; }
}
@media (max-width: 640px) {
  .menu-section__head { grid-template-columns: auto 1fr; gap: 16px; }
  .menu-section__num { font-size: 36px; }
  .menu-section__meta { display: none; }
  .menu-item { gap: 6px 12px; }
  .menu-item__dots { display: none; }
  .menu-item__price { font-size: 18px; margin-left: auto; }
  .menu-item__name { font-size: 17px; }
  .menu-item__add { font-size: 18px; padding: 2px 6px; }
}

/* ====== CHECKOUT PAGE ====== */
.checkout-hero {
  padding: 64px 0 40px;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.25);
}
.checkout-hero__title {
  font-family: var(--serif);
  font-size: clamp(2.4rem, 5vw, 4.4rem);
  line-height: 0.95;
  font-weight: 900;
  letter-spacing: -0.04em;
  color: var(--ink);
  margin: 8px 0 0;
}
.checkout-hero__title em {
  font-style: italic;
  font-weight: 400;
  color: var(--rust);
}
.checkout-hero__lede {
  font-size: 16px;
  line-height: 1.65;
  color: var(--ink-soft);
  max-width: 580px;
  margin: 16px 0 0;
}

.checkout { padding: 56px 0 96px; }
.checkout-layout {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 64px;
  align-items: start;
}

.checkout-empty {
  grid-column: 1 / -1;
  max-width: 560px;
  margin: 0 auto;
  text-align: center;
  padding: 64px 32px;
  border: 1px dashed var(--ink);
  background: var(--paper-soft);
  display: none;
}
.checkout-empty .hand { font-size: 24px; margin: 0 0 12px; display: block; }
.checkout-empty h2 {
  font-family: var(--serif);
  font-size: 32px;
  margin-bottom: 12px;
  color: var(--ink);
}
.checkout-empty p { color: var(--ink-soft); margin-bottom: 24px; line-height: 1.65; }

.checkout-form { display: flex; flex-direction: column; gap: 28px; }
.checkout-form__head {
  padding-bottom: 12px;
  border-bottom: 1px solid var(--ink);
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 4px;
}
.checkout-form__head h2 {
  font-family: var(--serif);
  font-size: 26px;
  font-weight: 700;
  letter-spacing: -0.02em;
}
.checkout-form__head span {
  font-family: var(--hand);
  font-size: 18px;
  color: var(--rust);
}
.checkout-status {
  padding: 14px 18px;
  background: rgba(179, 64, 31, 0.08);
  border-left: 3px solid var(--rust);
  font-size: 14px;
  line-height: 1.5;
  color: var(--ink);
  margin-bottom: 4px;
  display: none;
}
.checkout-status.is-visible { display: block; }

.field { display: flex; flex-direction: column; gap: 4px; }
.field label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--ink);
}
.field label span { color: var(--rust); }
.field input,
.field select,
.field textarea {
  width: 100%;
  font-family: var(--serif);
  font-style: italic;
  font-size: 18px;
  color: var(--ink);
  background: transparent;
  border: none;
  border-bottom: 1.5px solid var(--ink);
  padding: 10px 0 12px;
  outline: none;
  transition: border-color .2s ease;
  border-radius: 0;
}
.field input::placeholder { color: var(--ink-light); font-style: italic; }
.field input:focus,
.field select:focus,
.field textarea:focus { border-bottom-color: var(--rust); }
.field textarea {
  font-style: normal;
  font-family: var(--sans);
  font-size: 15px;
  resize: vertical;
  min-height: 80px;
}
.field select {
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%231E1410' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 4px center;
  padding-right: 24px;
}
.field__error {
  font-family: var(--hand);
  font-size: 17px;
  color: var(--rust);
  margin: 2px 0 0;
  line-height: 1.2;
  display: none;
}
.field.has-error input,
.field.has-error select,
.field.has-error textarea {
  border-bottom-color: var(--rust);
  background: rgba(179, 64, 31, 0.04);
}
.field.has-error .field__error { display: block; }
.field--row { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }

.checkout-form__actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 16px;
}
.checkout-form__actions .btn-ticket { align-self: flex-start; padding: 18px 32px; font-size: 14px; }
.checkout-form__actions .btn-ticket i { font-size: 13px; }
.checkout-form__actions .btn-ticket:disabled { opacity: 0.6; cursor: not-allowed; }
.checkout-form__note {
  font-size: 12px;
  color: var(--ink-light);
  line-height: 1.5;
}

.checkout-ticket {
  background: var(--paper-soft);
  border: 1px solid var(--ink);
  padding: 32px 28px;
  position: sticky;
  top: 100px;
  font-family: 'Courier New', 'Courier', monospace;
  box-shadow: 4px 4px 0 var(--ink);
  transform: rotate(0.4deg);
}
.checkout-ticket::before,
.checkout-ticket::after {
  content: "";
  position: absolute;
  left: 0; right: 0;
  height: 12px;
  background-image: radial-gradient(circle at 6px 6px, var(--paper) 5px, transparent 5px);
  background-size: 12px 12px;
  background-repeat: repeat-x;
}
.checkout-ticket::before { top: -6px; }
.checkout-ticket::after { bottom: -6px; transform: scaleY(-1); }
.checkout-ticket__head {
  text-align: center;
  padding-bottom: 16px;
  border-bottom: 1px dashed var(--ink);
  margin-bottom: 16px;
}
.checkout-ticket__head .hand { font-size: 20px; color: var(--rust); margin: 0 0 4px; }
.checkout-ticket__head h3 {
  font-family: 'Courier New', monospace;
  font-size: 18px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink);
  margin: 0 0 4px;
}
.checkout-ticket__head p {
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ink-soft);
  margin: 0;
}
.checkout-ticket__items { font-size: 13px; margin-bottom: 16px; }
.checkout-ticket__item {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  padding: 6px 0;
  color: var(--ink);
  line-height: 1.4;
}
.checkout-ticket__item-name { flex: 1; }
.checkout-ticket__item-qty {
  color: var(--ink-soft);
  margin-right: 4px;
  font-size: 11px;
}
.checkout-ticket__item-price { white-space: nowrap; }
.checkout-ticket__totals {
  border-top: 1px dashed var(--ink);
  padding-top: 12px;
  margin-bottom: 16px;
}
.checkout-ticket__row {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  padding: 3px 0;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--ink-soft);
}
.checkout-ticket__row--total {
  font-size: 18px;
  font-weight: 700;
  color: var(--ink);
  padding-top: 8px;
  margin-top: 8px;
  border-top: 1px solid var(--ink);
}
.checkout-ticket__note {
  text-align: center;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-soft);
  line-height: 1.7;
}

@media (max-width: 860px) {
  .checkout-layout { grid-template-columns: 1fr; gap: 32px; }
  .checkout-ticket { position: static; transform: none; }
}
@media (max-width: 640px) {
  .field--row { grid-template-columns: 1fr; gap: 20px; }
  .checkout-form__actions .btn-ticket { align-self: stretch; justify-content: center; }
}
/* ====== ORDER CONFIRMED ====== */
.confirmed-hero {
  padding: 64px 0 40px;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.25);
}
.confirmed-hero__title {
  font-family: var(--serif);
  font-size: clamp(2.4rem, 5vw, 4.4rem);
  line-height: 0.95;
  font-weight: 900;
  letter-spacing: -0.04em;
  color: var(--ink);
  margin: 8px 0 20px;
  font-variation-settings: "opsz" 144, "SOFT" 30;
}
.confirmed-hero__title em {
  font-style: italic;
  font-weight: 400;
  color: var(--rust);
  font-variation-settings: "opsz" 144, "SOFT" 100;
}
.confirmed-hero__lede {
  font-size: 17px;
  line-height: 1.65;
  color: var(--ink-soft);
  max-width: 580px;
  margin: 0;
}

.confirmed { padding: 56px 0 96px; }
.confirmed__inner {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 72px;
  align-items: start;
}
.confirmed__ticket {
  position: sticky;
  top: 100px;
  font-size: 14px;
}
.confirmed__rows {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: 24px 0;
}
.confirmed__row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px dashed var(--ink);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-soft);
  font-family: 'Courier New', monospace;
}
.confirmed__row strong {
  font-family: var(--serif);
  font-style: italic;
  text-transform: none;
  letter-spacing: -0.01em;
  font-size: 20px;
  color: var(--ink);
  text-align: right;
}
.confirmed__next .hand { font-size: 24px; }
.confirmed__list {
  counter-reset: step;
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin: 8px 0 32px;
}
.confirmed__list li {
  counter-increment: step;
  position: relative;
  padding-left: 56px;
  line-height: 1.65;
  font-size: 15px;
  color: var(--ink-soft);
}
.confirmed__list li::before {
  content: counter(step, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: -6px;
  font-family: var(--serif);
  font-style: italic;
  font-size: 32px;
  font-weight: 700;
  color: var(--rust);
  line-height: 1;
}
.confirmed__list li strong {
  color: var(--ink);
  font-weight: 600;
}
.confirmed__note {
  padding: 20px 24px;
  background: var(--paper-soft);
  border-left: 3px solid var(--rust);
  font-size: 14px;
  line-height: 1.65;
  color: var(--ink-soft);
  margin: 0 0 32px;
}
.confirmed__note a {
  color: var(--rust);
  text-decoration: underline;
}
.confirmed__actions {
  display: flex;
  gap: 28px;
  align-items: center;
  flex-wrap: wrap;
}

@media (max-width: 860px) {
  .confirmed__inner { grid-template-columns: 1fr; gap: 40px; }
  .confirmed__ticket { position: static; }
}
@media (max-width: 640px) {
  .confirmed__actions { flex-direction: column; align-items: stretch; gap: 16px; }
  .confirmed__actions .btn-ticket { justify-content: center; }
  .confirmed__actions .link-arrow { align-self: flex-start; }
}
/* ====== OUR STORY PAGE ====== */
.story-hero {
  padding: 72px 0 56px;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.25);
}
.story-hero__inner {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 64px;
  align-items: end;
}
.story-hero__title {
  font-family: var(--serif);
  font-size: clamp(2.4rem, 5.6vw, 4.8rem);
  line-height: 0.94;
  font-weight: 900;
  letter-spacing: -0.045em;
  color: var(--ink);
  margin: 8px 0 24px;
  font-variation-settings: "opsz" 144, "SOFT" 30;
}
.story-hero__title em {
  font-style: italic;
  font-weight: 400;
  color: var(--rust);
  font-variation-settings: "opsz" 144, "SOFT" 100;
}
.story-hero__lede {
  font-size: 17px;
  line-height: 1.7;
  color: var(--ink-soft);
  max-width: 560px;
  margin: 0;
}
.story-hero__visual {
  position: relative;
  padding: 14px;
  background: var(--white);
  box-shadow: 6px 6px 0 var(--ink);
  transform: rotate(2deg);
}
.story-hero__visual img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
}

.story-letter {
  padding: 88px 0;
  background: var(--paper-soft);
  border-bottom: 1px dashed rgba(30, 20, 16, 0.25);
  position: relative;
}
.story-letter__inner {
  max-width: 760px;
  margin: 0 auto;
  padding: 0 var(--gutter);
  position: relative;
}
.story-letter__inner::before {
  content: "";
  position: absolute;
  left: -8px;
  top: 8px;
  bottom: 60px;
  width: 2px;
  background: var(--rust);
  opacity: 0.25;
}
.story-letter__date {
  font-family: var(--sans);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--rust);
  font-weight: 600;
  display: block;
  margin-bottom: 24px;
}
.story-letter p {
  font-family: var(--serif);
  font-size: 18px;
  line-height: 1.8;
  color: var(--ink);
  margin-bottom: 1.1em;
  font-variation-settings: "opsz" 20, "SOFT" 40;
}
.story-letter p:first-of-type::first-letter {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 700;
  font-size: 5em;
  float: left;
  line-height: 0.85;
  margin: 10px 14px 0 0;
  color: var(--rust);
}
.story-letter__sig {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px dashed rgba(30, 20, 16, 0.25);
}
.story-letter__sig .hand {
  font-size: 38px;
  transform: rotate(-3deg);
  margin: 0;
}
.story-letter__sig span:last-child {
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--ink-light);
  font-weight: 600;
}

.story-chapter {
  padding: 96px 0;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.25);
}
.story-chapter--last { border-bottom: none; }
.story-chapter__head {
  display: flex;
  align-items: baseline;
  gap: 20px;
  margin-bottom: 48px;
  padding-bottom: 16px;
  border-bottom: 2px solid var(--ink);
}
.story-chapter__num {
  font-family: var(--hand);
  font-size: 32px;
  color: var(--rust);
  font-weight: 600;
  line-height: 1;
}
.story-chapter__title {
  font-family: var(--serif);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--ink);
  line-height: 1;
}
.story-chapter__title em {
  font-style: italic;
  font-weight: 400;
  color: var(--rust);
}

.story-timeline {
  display: flex;
  flex-direction: column;
}
.story-timeline__item {
  display: grid;
  grid-template-columns: 120px 40px 1fr;
  align-items: start;
  padding: 32px 0;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.18);
}
.story-timeline__item:last-child { border-bottom: none; }
.story-timeline__year {
  font-family: var(--serif);
  font-style: italic;
  font-size: 32px;
  font-weight: 600;
  color: var(--rust);
  line-height: 1;
  padding-top: 4px;
}
.story-timeline__marker {
  position: relative;
  height: 100%;
  display: flex;
  justify-content: center;
  padding-top: 8px;
}
.story-timeline__marker::before {
  content: "";
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--rust);
  border: 2px solid var(--paper);
  box-shadow: 0 0 0 2px var(--ink);
  flex-shrink: 0;
}
.story-timeline__marker::after {
  content: "";
  position: absolute;
  top: 22px;
  left: 50%;
  bottom: -24px;
  width: 1px;
  background: rgba(30, 20, 16, 0.25);
  transform: translateX(-50%);
}
.story-timeline__item:last-child .story-timeline__marker::after { display: none; }
.story-timeline__body h3 {
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 600;
  margin-bottom: 8px;
  letter-spacing: -0.02em;
  color: var(--ink);
  line-height: 1.2;
}
.story-timeline__body p {
  font-size: 15px;
  line-height: 1.65;
  color: var(--ink-soft);
  margin: 0;
  max-width: 560px;
}

.story-people {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
.story-person {
  background: var(--paper-soft);
  border: 1px solid var(--ink);
  display: flex;
  flex-direction: column;
}
.story-person__photo {
  aspect-ratio: 4/5;
  overflow: hidden;
  background: var(--sand);
}
.story-person__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: sepia(0.15) contrast(1.05);
}
.story-person__body {
  padding: 22px 22px 26px;
  border-top: 1px solid var(--ink);
  flex: 1;
  display: flex;
  flex-direction: column;
}
.story-person h3 {
  font-family: var(--serif);
  font-style: italic;
  font-size: 22px;
  font-weight: 600;
  margin-bottom: 4px;
  color: var(--ink);
  letter-spacing: -0.01em;
}
.story-person__role {
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--rust);
  margin-bottom: 12px;
}
.story-person p {
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--ink-soft);
  margin: 0;
}

.story-values {
  padding: 96px 0;
  background: var(--sage);
  color: var(--paper);
}
.story-values__head {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 48px;
  align-items: end;
  margin-bottom: 56px;
  padding-bottom: 24px;
  border-bottom: 1px solid rgba(251, 243, 231, 0.25);
}
.story-values__head .hand {
  color: var(--ochre);
  margin: 0 0 12px;
  display: block;
}
.story-values__title {
  font-family: var(--serif);
  font-size: clamp(2rem, 4vw, 3.2rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--paper);
  line-height: 1;
  margin: 0;
}
.story-values__title em {
  font-style: italic;
  font-weight: 400;
  color: var(--ochre);
}
.story-values__head p {
  font-size: 15px;
  line-height: 1.7;
  color: rgba(251, 243, 231, 0.75);
  margin: 0;
}
.story-values__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 44px 80px;
}
.story-value {
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 20px;
  align-items: start;
}
.story-value__num {
  font-family: var(--serif);
  font-style: italic;
  font-size: 46px;
  font-weight: 700;
  color: var(--ochre);
  line-height: 1;
  letter-spacing: -0.04em;
}
.story-value h3 {
  font-family: var(--serif);
  font-size: 21px;
  font-weight: 600;
  color: var(--paper);
  margin-bottom: 8px;
  letter-spacing: -0.02em;
  line-height: 1.2;
}
.story-value p {
  font-size: 14px;
  line-height: 1.65;
  color: rgba(251, 243, 231, 0.78);
  margin: 0;
}

.story-close {
  padding: 96px 0;
  text-align: center;
}
.story-close .hand {
  display: block;
  margin: 0 0 16px;
}
.story-close p {
  font-family: var(--serif);
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  line-height: 1.3;
  font-weight: 400;
  max-width: 720px;
  margin: 0 auto 32px;
  color: var(--ink);
  letter-spacing: -0.01em;
}
.story-close p em { font-style: italic; color: var(--rust); }
.story-close__actions {
  display: flex;
  gap: 28px;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}

@media (max-width: 860px) {
  .story-hero__inner { grid-template-columns: 1fr; gap: 32px; }
  .story-people { grid-template-columns: 1fr 1fr; }
  .story-chapter { padding: 72px 0; }
  .story-timeline__item { grid-template-columns: 80px 24px 1fr; padding: 24px 0; }
  .story-timeline__year { font-size: 24px; }
  .story-values { padding: 72px 0; }
  .story-values__head { grid-template-columns: 1fr; gap: 16px; margin-bottom: 40px; }
  .story-values__grid { grid-template-columns: 1fr; gap: 32px; }
  .story-letter { padding: 64px 0; }
  .story-letter p { font-size: 17px; }
}
@media (max-width: 640px) {
  .story-people { grid-template-columns: 1fr; }
  .story-value { grid-template-columns: 36px 1fr; gap: 14px; }
  .story-value__num { font-size: 34px; }
  .story-close__actions { flex-direction: column; align-items: stretch; gap: 16px; }
  .story-close__actions .btn-ticket { justify-content: center; }
  .story-close__actions .link-arrow { align-self: center; }
  .story-letter__sig { flex-direction: column; align-items: flex-start; gap: 8px; }
}

/* ====== BUTCHER SHOP PAGE ====== */
.butcher-hero {
  background: var(--ink);
  color: var(--paper);
  padding: 96px 0 88px;
  position: relative;
  overflow: hidden;
}
.butcher-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(180deg, rgba(30, 20, 16, 0.92) 0%, rgba(30, 20, 16, 0.7) 100%),
    url("../img/int.jpg");
  background-size: cover;
  background-position: center;
  z-index: 0;
}
.butcher-hero__inner {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 64px;
  align-items: center;
}
.butcher-hero__label {
  font-family: var(--hand);
  font-size: 24px;
  color: var(--ochre);
  margin-bottom: 12px;
  display: block;
}
.butcher-hero__title {
  font-family: var(--serif);
  font-size: clamp(2.4rem, 5.6vw, 4.8rem);
  line-height: 0.94;
  font-weight: 900;
  letter-spacing: -0.045em;
  color: var(--paper);
  margin-bottom: 24px;
  font-variation-settings: "opsz" 144, "SOFT" 30;
}
.butcher-hero__title em {
  font-style: italic;
  font-weight: 400;
  color: var(--ochre);
  font-variation-settings: "opsz" 144, "SOFT" 100;
}
.butcher-hero__lede {
  font-size: 17px;
  line-height: 1.7;
  color: rgba(251, 243, 231, 0.85);
  max-width: 560px;
  margin: 0;
}
.butcher-hero__info {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  padding: 28px;
  background: rgba(251, 243, 231, 0.06);
  border: 1px solid rgba(251, 243, 231, 0.25);
}
.butcher-hero__info div span {
  display: block;
  font-family: 'Courier New', monospace;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--ochre);
  margin-bottom: 6px;
}
.butcher-hero__info div strong {
  display: block;
  font-family: var(--serif);
  font-style: italic;
  font-size: 20px;
  font-weight: 600;
  color: var(--paper);
  letter-spacing: -0.01em;
  line-height: 1.2;
}

.butcher-chapter {
  padding: 96px 0;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.25);
}
.butcher-chapter--last { border-bottom: none; }
.butcher-chapter__head {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 24px;
  align-items: baseline;
  margin-bottom: 48px;
  padding-bottom: 16px;
  border-bottom: 2px solid var(--ink);
}
.butcher-chapter__num {
  font-family: var(--hand);
  font-size: 28px;
  color: var(--rust);
  font-weight: 600;
  line-height: 1;
}
.butcher-chapter__title {
  font-family: var(--serif);
  font-size: clamp(1.9rem, 4vw, 2.8rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--ink);
  line-height: 1;
}
.butcher-chapter__title em { font-style: italic; font-weight: 400; color: var(--rust); }
.butcher-chapter__meta {
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--ink-light);
  text-align: right;
}

.butcher-case {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 56px;
}
.butcher-case__item {
  display: flex;
  flex-direction: column;
  padding: 22px 0;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.2);
}
.butcher-case__item:nth-child(-n+2) { border-top: 1px dashed rgba(30, 20, 16, 0.2); }
.butcher-case__row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 6px;
}
.butcher-case__name {
  font-family: var(--serif);
  font-style: italic;
  font-size: 20px;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.2;
}
.butcher-case__price {
  font-family: 'Courier New', monospace;
  font-size: 13px;
  font-weight: 700;
  color: var(--rust);
  white-space: nowrap;
  background: var(--paper-soft);
  padding: 3px 8px;
  border: 1px solid var(--ink);
}
.butcher-case__desc {
  font-size: 13px;
  line-height: 1.55;
  color: var(--ink-soft);
  margin: 0 0 10px;
}
.butcher-case__add {
  align-self: flex-start;
  background: none;
  border: none;
  font-family: var(--hand);
  font-size: 18px;
  color: var(--rust);
  cursor: pointer;
  padding: 2px 0;
  transition: color .15s ease;
}
.butcher-case__add:hover { color: var(--rust-deep); }

.butcher-process {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
}
.butcher-process__step {
  display: flex;
  flex-direction: column;
  position: relative;
  padding-top: 20px;
}
.butcher-process__step::before {
  content: "";
  position: absolute;
  top: 0; left: 0;
  width: 36px; height: 2px;
  background: var(--rust);
}
.butcher-process__num {
  font-family: var(--serif);
  font-style: italic;
  font-size: 68px;
  font-weight: 700;
  color: var(--rust);
  line-height: 0.9;
  margin: 12px 0 14px;
  letter-spacing: -0.05em;
}
.butcher-process__step h3 {
  font-family: var(--serif);
  font-size: 19px;
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 8px;
  letter-spacing: -0.02em;
  line-height: 1.2;
}
.butcher-process__step p {
  font-size: 14px;
  line-height: 1.6;
  color: var(--ink-soft);
  margin: 0;
}

.butcher-farms {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 56px;
}
.butcher-farm {
  padding: 22px 0;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.2);
}
.butcher-farm__row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 6px;
}
.butcher-farm__name {
  font-family: var(--serif);
  font-size: 19px;
  font-weight: 600;
  color: var(--ink);
  letter-spacing: -0.01em;
}
.butcher-farm__tag {
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--rust);
  white-space: nowrap;
}
.butcher-farm p {
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--ink-soft);
  margin: 0;
}

.butcher-faq {
  display: flex;
  flex-direction: column;
  gap: 0;
  max-width: 860px;
}
.butcher-faq__item {
  padding: 28px 0;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.22);
}
.butcher-faq__item:first-child { padding-top: 0; }
.butcher-faq__item:last-child { border-bottom: none; }
.butcher-faq__q {
  font-family: var(--hand);
  font-size: 26px;
  font-weight: 600;
  color: var(--rust);
  margin-bottom: 10px;
  line-height: 1.2;
}
.butcher-faq__a {
  font-family: var(--sans);
  font-size: 15px;
  line-height: 1.7;
  color: var(--ink-soft);
  margin: 0;
}

.butcher-cta {
  padding: 96px 0;
  background: var(--sage);
  color: var(--paper);
  text-align: center;
}
.butcher-cta .hand {
  display: block;
  margin: 0 0 16px;
  color: var(--ochre);
}
.butcher-cta h2 {
  font-family: var(--serif);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--paper);
  margin: 0 0 20px;
  line-height: 1.1;
}
.butcher-cta h2 em { font-style: italic; font-weight: 400; color: var(--ochre); }
.butcher-cta p {
  font-size: 16px;
  line-height: 1.65;
  color: rgba(251, 243, 231, 0.85);
  max-width: 560px;
  margin: 0 auto 32px;
}
.butcher-cta .btn-ticket {
  background: var(--paper);
  color: var(--ink);
}
.butcher-cta .btn-ticket:hover { background: var(--ochre); }

@media (max-width: 1024px) {
  .butcher-process { grid-template-columns: repeat(2, 1fr); gap: 40px 32px; }
}
@media (max-width: 860px) {
  .butcher-hero { padding: 72px 0; }
  .butcher-hero__inner { grid-template-columns: 1fr; gap: 32px; }
  .butcher-chapter { padding: 72px 0; }
  .butcher-case { grid-template-columns: 1fr; gap: 0; }
  .butcher-case__item:nth-child(-n+2) { border-top: none; }
  .butcher-case__item:first-child { border-top: 1px dashed rgba(30, 20, 16, 0.2); }
  .butcher-farms { grid-template-columns: 1fr; }
  .butcher-chapter__head { grid-template-columns: auto 1fr; gap: 16px; }
  .butcher-chapter__meta { display: none; }
}
@media (max-width: 640px) {
  .butcher-process { grid-template-columns: 1fr; gap: 32px; }
  .butcher-process__num { font-size: 56px; }
  .butcher-hero__info { grid-template-columns: 1fr; padding: 20px; }
  .butcher-cta { padding: 72px 0; }
  .butcher-cta .btn-ticket { width: 100%; justify-content: center; }
}
/* ====== BAR & AGAVE PAGE ====== */
.bar-hero {
  background: #1a1210;
  color: var(--paper);
  padding: 96px 0 88px;
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid rgba(251, 243, 231, 0.15);
}
.bar-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 20% 30%, rgba(193, 137, 36, 0.14) 0%, transparent 45%),
    radial-gradient(circle at 80% 70%, rgba(179, 64, 31, 0.12) 0%, transparent 50%);
  pointer-events: none;
}
.bar-hero__inner {
  position: relative;
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 64px;
  align-items: end;
}
.bar-hero__label {
  font-family: var(--hand);
  font-size: 24px;
  color: var(--ochre);
  margin-bottom: 12px;
  display: block;
}
.bar-hero__title {
  font-family: var(--serif);
  font-size: clamp(2.8rem, 6vw, 5.6rem);
  line-height: 0.9;
  font-weight: 900;
  letter-spacing: -0.045em;
  color: var(--paper);
  margin: 0 0 24px;
  font-variation-settings: "opsz" 144, "SOFT" 30;
}
.bar-hero__title em {
  font-style: italic;
  font-weight: 400;
  color: var(--ochre);
  font-variation-settings: "opsz" 144, "SOFT" 100;
}
.bar-hero__lede {
  font-size: 17px;
  line-height: 1.7;
  color: rgba(251, 243, 231, 0.8);
  max-width: 560px;
  margin: 0;
}
.bar-hero__meta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px 32px;
  padding: 28px;
  border: 1px solid rgba(251, 243, 231, 0.2);
  background: rgba(251, 243, 231, 0.04);
  align-self: end;
}
.bar-hero__meta div span {
  display: block;
  font-family: 'Courier New', monospace;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--ochre);
  margin-bottom: 8px;
}
.bar-hero__meta div strong {
  display: block;
  font-family: var(--serif);
  font-style: italic;
  font-size: 18px;
  font-weight: 600;
  color: var(--paper);
  line-height: 1.3;
  letter-spacing: -0.01em;
}

.bar-chapter {
  background: #1a1210;
  color: var(--paper);
  padding: 96px 0;
  border-bottom: 1px solid rgba(251, 243, 231, 0.08);
}
.bar-chapter--light {
  background: var(--paper);
  color: var(--ink);
}
.bar-chapter__head {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 24px;
  align-items: baseline;
  margin-bottom: 48px;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(251, 243, 231, 0.25);
}
.bar-chapter--light .bar-chapter__head { border-bottom-color: var(--ink); }
.bar-chapter__num {
  font-family: var(--hand);
  font-size: 28px;
  color: var(--ochre);
  font-weight: 600;
  line-height: 1;
}
.bar-chapter--light .bar-chapter__num { color: var(--rust); }
.bar-chapter__title {
  font-family: var(--serif);
  font-size: clamp(1.9rem, 4vw, 2.8rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--paper);
  line-height: 1;
}
.bar-chapter--light .bar-chapter__title { color: var(--ink); }
.bar-chapter__title em {
  font-style: italic;
  font-weight: 400;
  color: var(--ochre);
}
.bar-chapter--light .bar-chapter__title em { color: var(--rust); }
.bar-chapter__meta {
  font-family: 'Courier New', monospace;
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: rgba(251, 243, 231, 0.55);
  text-align: right;
  white-space: nowrap;
}
.bar-chapter--light .bar-chapter__meta { color: var(--ink-light); }

.bar-feature {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 64px;
  align-items: center;
  margin-bottom: 56px;
}
.bar-feature__visual {
  position: relative;
  padding: 16px;
  background: var(--paper);
  box-shadow: 8px 8px 0 var(--rust);
  transform: rotate(-1.5deg);
}
.bar-feature__visual img {
  width: 100%;
  aspect-ratio: 5/4;
  object-fit: cover;
  filter: contrast(1.05) saturate(0.95);
}
.bar-feature__visual .tape { background: rgba(230, 210, 165, 0.85); }
.bar-feature__copy .hand { color: var(--ochre); font-size: 24px; display: block; margin-bottom: 16px; }
.bar-feature__title {
  font-family: var(--serif);
  font-size: clamp(2rem, 3.8vw, 3.2rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--paper);
  line-height: 1.02;
  margin-bottom: 20px;
}
.bar-feature__title em { font-style: italic; font-weight: 400; color: var(--ochre); }
.bar-feature__copy p {
  font-size: 16px;
  line-height: 1.75;
  color: rgba(251, 243, 231, 0.78);
  margin-bottom: 16px;
}
.bar-feature__price {
  display: inline-flex;
  align-items: baseline;
  gap: 12px;
  padding: 10px 18px;
  border: 1px solid rgba(251, 243, 231, 0.3);
  margin-top: 12px;
}
.bar-feature__price span:first-child {
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--ochre);
}
.bar-feature__price span:last-child {
  font-family: var(--serif);
  font-style: italic;
  font-size: 26px;
  font-weight: 700;
  color: var(--paper);
  letter-spacing: -0.02em;
  line-height: 1;
}

.bar-cocktails {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 64px;
}
.bar-cocktail {
  padding: 24px 0;
  border-bottom: 1px solid rgba(251, 243, 231, 0.12);
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px 24px;
}
.bar-cocktail:nth-child(-n+2) { border-top: 1px solid rgba(251, 243, 231, 0.12); }
.bar-cocktail__name {
  font-family: var(--serif);
  font-style: italic;
  font-size: 21px;
  font-weight: 600;
  color: var(--paper);
  letter-spacing: -0.01em;
  line-height: 1.2;
  margin-bottom: 4px;
}
.bar-cocktail__name em { font-style: normal; color: var(--ochre); font-size: 0.75em; margin-left: 6px; }
.bar-cocktail__price {
  font-family: 'Courier New', monospace;
  font-size: 15px;
  font-weight: 700;
  color: var(--ochre);
  white-space: nowrap;
  align-self: start;
}
.bar-cocktail__desc {
  grid-column: 1 / -1;
  font-family: var(--sans);
  font-size: 13.5px;
  line-height: 1.6;
  color: rgba(251, 243, 231, 0.7);
  margin: 0;
}
.bar-cocktail__add {
  grid-column: 1 / -1;
  background: none;
  border: none;
  padding: 6px 0;
  font-family: var(--hand);
  font-size: 18px;
  color: var(--ochre);
  cursor: pointer;
  text-align: left;
  transition: color .15s ease;
}
.bar-cocktail__add:hover { color: var(--paper); }

.bar-agave {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0;
  border-top: 1px solid var(--ink);
  border-bottom: 1px solid var(--ink);
}
.bar-agave__col {
  padding: 32px 28px;
  border-right: 1px dashed rgba(30, 20, 16, 0.25);
}
.bar-agave__col:last-child { border-right: none; }
.bar-agave__col h3 {
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--rust);
  margin-bottom: 20px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--ink);
}
.bar-agave__list { display: flex; flex-direction: column; gap: 10px; }
.bar-agave__list li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  font-family: var(--serif);
  font-size: 15px;
  font-weight: 500;
  color: var(--ink);
  line-height: 1.3;
}
.bar-agave__list li span:last-child {
  font-family: 'Courier New', monospace;
  font-size: 12px;
  font-weight: 700;
  color: var(--rust);
  white-space: nowrap;
}
.bar-agave__note {
  font-family: var(--hand);
  font-size: 20px;
  color: var(--rust);
  text-align: center;
  margin: 32px 0 0;
}

.bar-taps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.bar-tap {
  background: var(--paper);
  border: 1px solid var(--ink);
  padding: 24px 22px;
  position: relative;
}
.bar-tap::before {
  content: "";
  position: absolute;
  top: -8px;
  left: 22px;
  width: 44px;
  height: 14px;
  background: var(--rust);
  border-radius: 0 0 4px 4px;
}
.bar-tap__num {
  font-family: 'Courier New', monospace;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--rust);
  margin-bottom: 8px;
}
.bar-tap__name {
  font-family: var(--serif);
  font-style: italic;
  font-size: 19px;
  font-weight: 600;
  color: var(--ink);
  letter-spacing: -0.01em;
  line-height: 1.2;
  margin-bottom: 8px;
}
.bar-tap__desc {
  font-size: 13px;
  line-height: 1.55;
  color: var(--ink-soft);
  margin: 0 0 12px;
}
.bar-tap__row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding-top: 12px;
  border-top: 1px dashed rgba(30, 20, 16, 0.25);
  font-family: 'Courier New', monospace;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ink-soft);
}
.bar-tap__row strong {
  font-family: var(--serif);
  font-style: italic;
  font-size: 20px;
  font-weight: 700;
  color: var(--ink);
  text-transform: none;
  letter-spacing: -0.02em;
}

.bar-close {
  background: var(--sage);
  color: var(--paper);
  padding: 96px 0;
  text-align: center;
}
.bar-close .hand { color: var(--ochre); display: block; margin-bottom: 16px; }
.bar-close h2 {
  font-family: var(--serif);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--paper);
  margin: 0 0 20px;
  line-height: 1.1;
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}
.bar-close h2 em { font-style: italic; font-weight: 400; color: var(--ochre); }
.bar-close p {
  font-size: 16px;
  line-height: 1.65;
  color: rgba(251, 243, 231, 0.8);
  max-width: 560px;
  margin: 0 auto 32px;
}

@media (max-width: 1024px) {
  .bar-agave { grid-template-columns: 1fr; }
  .bar-agave__col { border-right: none; border-bottom: 1px dashed rgba(30, 20, 16, 0.25); padding: 28px 0; }
  .bar-agave__col:last-child { border-bottom: none; }
  .bar-taps { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 860px) {
  .bar-hero { padding: 72px 0; }
  .bar-hero__inner { grid-template-columns: 1fr; gap: 32px; }
  .bar-chapter { padding: 72px 0; }
  .bar-feature { grid-template-columns: 1fr; gap: 32px; margin-bottom: 40px; }
  .bar-cocktails { grid-template-columns: 1fr; gap: 0; }
  .bar-cocktail:nth-child(-n+2) { border-top: none; }
  .bar-cocktail:first-child { border-top: 1px solid rgba(251, 243, 231, 0.12); }
  .bar-taps { grid-template-columns: 1fr; }
  .bar-chapter__head { grid-template-columns: auto 1fr; gap: 16px; }
  .bar-chapter__meta { display: none; }
  .bar-close { padding: 72px 0; }
}
@media (max-width: 640px) {
  .bar-hero__meta { grid-template-columns: 1fr; padding: 20px; }
  .bar-close .btn-ticket { width: 100%; justify-content: center; }
}

/* ====== VISIT PAGE ====== */
.visit-hero {
  padding: 72px 0 56px;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.25);
}
.visit-hero__title {
  font-family: var(--serif);
  font-size: clamp(2.6rem, 6vw, 5.2rem);
  line-height: 0.94;
  font-weight: 900;
  letter-spacing: -0.045em;
  color: var(--ink);
  margin: 8px 0 24px;
  font-variation-settings: "opsz" 144, "SOFT" 30;
  max-width: 780px;
}
.visit-hero__title em {
  font-style: italic;
  font-weight: 400;
  color: var(--rust);
  font-variation-settings: "opsz" 144, "SOFT" 100;
}
.visit-hero__lede {
  font-size: 17px;
  line-height: 1.7;
  color: var(--ink-soft);
  max-width: 640px;
  margin: 0;
}

.visit-main {
  padding: 72px 0 96px;
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 64px;
  align-items: start;
}

.visit-map {
  position: relative;
  padding: 20px;
  background: var(--paper-soft);
  border: 1px solid var(--ink);
  box-shadow: 8px 8px 0 var(--ink);
  transform: rotate(-0.6deg);
}
.visit-map::before {
  content: "";
  position: absolute;
  top: -14px;
  left: 50%;
  width: 28px; height: 28px;
  border-radius: 50%;
  background: var(--rust);
  border: 2px solid var(--ink);
  transform: translateX(-50%);
  box-shadow: 0 2px 4px rgba(30, 20, 16, 0.25);
}
.visit-map__frame {
  width: 100%;
  aspect-ratio: 4/3;
  position: relative;
  overflow: hidden;
  background: var(--sand);
  border: 1px solid var(--ink);
}
.visit-map__frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
  filter: sepia(0.12) saturate(0.92) contrast(1.02);
}
.visit-map__caption {
  text-align: center;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px dashed rgba(30, 20, 16, 0.25);
  font-family: var(--hand);
  font-size: 20px;
  color: var(--rust);
}
.visit-map__actions {
  margin-top: 32px;
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  align-items: center;
}
.visit-map__frame { aspect-ratio: 1/1; }
.visit-sidebar {
  display: flex;
  flex-direction: column;
  gap: 32px;
}

.visit-punch {
  background: var(--paper-soft);
  border: 1px solid var(--ink);
  padding: 32px 28px 28px;
  position: relative;
  transform: rotate(0.5deg);
}
.visit-punch::before,
.visit-punch::after {
  content: "";
  position: absolute;
  width: 20px; height: 20px;
  background: var(--paper);
  border: 1px solid var(--ink);
  border-radius: 50%;
  top: 50%;
  transform: translateY(-50%);
}
.visit-punch::before { left: -11px; }
.visit-punch::after { right: -11px; }
.visit-punch__label {
  display: block;
  font-family: var(--hand);
  font-size: 22px;
  color: var(--rust);
  margin-bottom: 4px;
}
.visit-punch h3 {
  font-family: var(--serif);
  font-size: 24px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ink);
  padding-bottom: 16px;
  margin-bottom: 12px;
  border-bottom: 1px dashed var(--ink);
}
.visit-punch__rows { display: flex; flex-direction: column; }
.visit-punch__row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 9px 0;
  border-bottom: 1px dotted rgba(30, 20, 16, 0.3);
  font-family: 'Courier New', monospace;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--ink-soft);
}
.visit-punch__row:last-child { border-bottom: none; }
.visit-punch__row strong {
  font-family: var(--serif);
  font-style: italic;
  font-size: 16px;
  font-weight: 600;
  color: var(--ink);
  text-transform: none;
  letter-spacing: -0.01em;
}
.visit-punch__note {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px dashed rgba(30, 20, 16, 0.25);
  font-family: var(--hand);
  font-size: 18px;
  color: var(--ink-light);
  line-height: 1.3;
}

.visit-card {
  background: var(--white);
  border: 1px solid var(--ink);
  padding: 28px 26px;
  box-shadow: 4px 4px 0 var(--ink);
}
.visit-card h3 {
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--ink);
  margin-bottom: 12px;
  display: flex;
  align-items: baseline;
  gap: 12px;
}
.visit-card h3 i {
  font-size: 14px;
  color: var(--rust);
}
.visit-card p {
  font-size: 14px;
  line-height: 1.65;
  color: var(--ink-soft);
  margin: 0 0 10px;
}
.visit-card p:last-child { margin-bottom: 0; }
.visit-card a {
  color: var(--rust);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  font-weight: 500;
}
.visit-card a:hover { color: var(--rust-deep); }

.visit-directions {
  padding: 96px 0;
  background: var(--sage);
  color: var(--paper);
}
.visit-directions__head {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 32px;
  align-items: end;
  margin-bottom: 48px;
  padding-bottom: 24px;
  border-bottom: 1px solid rgba(251, 243, 231, 0.25);
}
.visit-directions__head .hand { color: var(--ochre); display: block; margin-bottom: 12px; }
.visit-directions__title {
  font-family: var(--serif);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--paper);
  line-height: 1;
  margin: 0;
}
.visit-directions__title em { font-style: italic; font-weight: 400; color: var(--ochre); }

.visit-routes {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
.visit-route {
  padding: 28px 24px;
  border: 1px solid rgba(251, 243, 231, 0.25);
  position: relative;
}
.visit-route__num {
  font-family: var(--serif);
  font-style: italic;
  font-size: 44px;
  font-weight: 700;
  color: var(--ochre);
  line-height: 1;
  letter-spacing: -0.03em;
  margin-bottom: 16px;
}
.visit-route h3 {
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 600;
  color: var(--paper);
  letter-spacing: -0.02em;
  margin-bottom: 10px;
  line-height: 1.2;
}
.visit-route p {
  font-size: 14px;
  line-height: 1.65;
  color: rgba(251, 243, 231, 0.78);
  margin: 0;
}

.visit-extras {
  padding: 96px 0;
}
.visit-extras__head {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 48px;
  align-items: end;
  margin-bottom: 40px;
  padding-bottom: 20px;
  border-bottom: 2px solid var(--ink);
}
.visit-extras__head .hand { display: block; margin-bottom: 12px; }
.visit-extras__title {
  font-family: var(--serif);
  font-size: clamp(1.9rem, 4vw, 2.8rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--ink);
  line-height: 1;
  margin: 0;
}
.visit-extras__title em { font-style: italic; font-weight: 400; color: var(--rust); }
.visit-extras__head p {
  font-size: 14px;
  line-height: 1.65;
  color: var(--ink-soft);
  margin: 0;
}

.visit-extras__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 64px;
}
.visit-extra {
  padding: 24px 0;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.2);
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 20px;
  align-items: start;
}
.visit-extra:nth-child(-n+2) { border-top: 1px dashed rgba(30, 20, 16, 0.2); }
.visit-extra__icon {
  font-family: var(--hand);
  font-size: 28px;
  color: var(--rust);
  line-height: 1;
  font-weight: 600;
  text-align: center;
}
.visit-extra h3 {
  font-family: var(--serif);
  font-size: 18px;
  font-weight: 600;
  color: var(--ink);
  letter-spacing: -0.01em;
  margin-bottom: 6px;
  line-height: 1.2;
}
.visit-extra p {
  font-size: 14px;
  line-height: 1.6;
  color: var(--ink-soft);
  margin: 0;
}

.visit-close {
  padding: 96px 0;
  text-align: center;
  background: var(--paper);
}
.visit-close .hand { display: block; margin-bottom: 16px; }
.visit-close p {
  font-family: var(--serif);
  font-size: clamp(1.6rem, 3vw, 2.4rem);
  line-height: 1.3;
  max-width: 700px;
  margin: 0 auto 32px;
  color: var(--ink);
  font-weight: 400;
  letter-spacing: -0.01em;
}
.visit-close p em { font-style: italic; color: var(--rust); }
.visit-close__actions {
  display: flex;
  gap: 28px;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}

@media (max-width: 1024px) {
  .visit-main { gap: 48px; }
  .visit-routes { grid-template-columns: 1fr 1fr; }
  .visit-extras__head { grid-template-columns: 1fr 260px; gap: 32px; }
}
@media (max-width: 860px) {
  .visit-main { grid-template-columns: 1fr; gap: 40px; padding: 56px 0 72px; }
  .visit-map { transform: none; }
  .visit-directions { padding: 72px 0; }
  .visit-routes { grid-template-columns: 1fr; }
  .visit-extras { padding: 72px 0; }
  .visit-extras__head { grid-template-columns: 1fr; gap: 16px; }
  .visit-extras__grid { grid-template-columns: 1fr; }
  .visit-extra:nth-child(-n+2) { border-top: none; }
  .visit-extra:first-child { border-top: 1px dashed rgba(30, 20, 16, 0.2); }
  .visit-close { padding: 72px 0; }
}
@media (max-width: 640px) {
  .visit-map { padding: 14px; }
  .visit-punch { padding: 24px 20px; }
  .visit-close__actions { flex-direction: column; align-items: stretch; gap: 16px; }
  .visit-close__actions .btn-ticket { justify-content: center; }
}
/* ====== CONTACT PAGE ====== */
.contact-hero {
  padding: 72px 0 56px;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.25);
}
.contact-hero__title {
  font-family: var(--serif);
  font-size: clamp(2.6rem, 6vw, 5.2rem);
  line-height: 0.94;
  font-weight: 900;
  letter-spacing: -0.045em;
  color: var(--ink);
  margin: 8px 0 24px;
  font-variation-settings: "opsz" 144, "SOFT" 30;
  max-width: 780px;
}
.contact-hero__title em {
  font-style: italic;
  font-weight: 400;
  color: var(--rust);
  font-variation-settings: "opsz" 144, "SOFT" 100;
}
.contact-hero__lede {
  font-size: 17px;
  line-height: 1.7;
  color: var(--ink-soft);
  max-width: 640px;
  margin: 0;
}

.contact-main {
  padding: 72px 0 96px;
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 80px;
  align-items: start;
}

.postcard {
  position: relative;
  background: var(--paper-soft);
  border: 1px solid var(--ink);
  box-shadow: 8px 8px 0 var(--ink);
  padding: 40px 36px 36px;
  transform: rotate(-0.4deg);
}
.postcard::before,
.postcard::after {
  content: "";
  position: absolute;
  width: 20px; height: 20px;
  background: var(--paper);
  border: 1px solid var(--ink);
  border-radius: 50%;
  top: 50%;
  transform: translateY(-50%);
}
.postcard::before { left: -11px; }
.postcard::after { right: -11px; }
.postcard__head {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  align-items: start;
  padding-bottom: 24px;
  margin-bottom: 24px;
  border-bottom: 1px dashed var(--ink);
}
.postcard__head .hand {
  font-size: 24px;
  margin: 0 0 8px;
  display: block;
}
.postcard__title {
  font-family: var(--serif);
  font-size: 28px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ink);
  margin: 0;
  line-height: 1.1;
}
.postcard__stamp {
  width: 90px;
  height: 100px;
  border: 2px solid var(--rust);
  padding: 6px;
  position: relative;
  transform: rotate(6deg);
  background: var(--paper);
  flex-shrink: 0;
}
.postcard__stamp::before {
  content: "";
  position: absolute;
  inset: 4px;
  border: 1px dashed var(--rust);
  opacity: 0.55;
}
.postcard__stamp-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: sepia(0.35) saturate(0.85) contrast(1.05);
}
.postcard__stamp-label {
  position: absolute;
  inset: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--serif);
  font-style: italic;
  font-size: 9px;
  font-weight: 700;
  color: var(--rust);
  background: rgba(251, 243, 231, 0.55);
  text-align: center;
  line-height: 1.2;
  padding: 4px;
}

.contact-form { display: flex; flex-direction: column; gap: 20px; }
.contact-form .field { display: flex; flex-direction: column; gap: 4px; }
.contact-form .field label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--ink);
}
.contact-form .field label span { color: var(--rust); }
.contact-form .field input,
.contact-form .field select,
.contact-form .field textarea {
  width: 100%;
  font-family: var(--serif);
  font-style: italic;
  font-size: 17px;
  color: var(--ink);
  background: transparent;
  border: none;
  border-bottom: 1.5px solid var(--ink);
  padding: 8px 0 10px;
  outline: none;
  border-radius: 0;
  transition: border-color .2s ease;
}
.contact-form .field input::placeholder,
.contact-form .field textarea::placeholder { color: var(--ink-light); font-style: italic; }
.contact-form .field input:focus,
.contact-form .field select:focus,
.contact-form .field textarea:focus { border-bottom-color: var(--rust); }
.contact-form .field textarea {
  font-style: normal;
  font-family: var(--sans);
  font-size: 14px;
  resize: vertical;
  min-height: 100px;
}
.contact-form .field select {
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%231E1410' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 4px center;
  padding-right: 24px;
  cursor: pointer;
}
.contact-form .field--row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.contact-form .field__error {
  font-family: var(--hand);
  font-size: 16px;
  color: var(--rust);
  margin: 2px 0 0;
  display: none;
  line-height: 1.2;
}
.contact-form .field.has-error input,
.contact-form .field.has-error select,
.contact-form .field.has-error textarea { border-bottom-color: var(--rust); }
.contact-form .field.has-error .field__error { display: block; }
.postcard__honeypot {
  position: absolute;
  left: -9999px;
  width: 1px; height: 1px;
  overflow: hidden;
}
.postcard__foot {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px dashed var(--ink);
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.postcard__note {
  font-size: 12px;
  line-height: 1.55;
  color: var(--ink-light);
  margin: 0;
}
.postcard__note a { color: var(--rust); text-decoration: underline; }
.contact-status {
  padding: 14px 18px;
  background: rgba(179, 64, 31, 0.08);
  border-left: 3px solid var(--rust);
  font-size: 14px;
  line-height: 1.5;
  color: var(--ink);
  display: none;
}
.contact-status.is-visible { display: block; }
.contact-status.is-success {
  background: rgba(61, 83, 69, 0.1);
  border-left-color: var(--sage);
}

.contact-book { position: sticky; top: 100px; }
.contact-book__label {
  font-family: var(--hand);
  font-size: 22px;
  color: var(--rust);
  margin: 0 0 16px;
  font-weight: 600;
  display: block;
}
.contact-book__title {
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ink);
  padding-bottom: 12px;
  margin-bottom: 20px;
  border-bottom: 1px solid var(--ink);
}
.contact-book__item {
  padding: 18px 0;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.22);
  display: grid;
  grid-template-columns: 40px 1fr;
  gap: 16px;
  align-items: start;
}
.contact-book__item:last-child { border-bottom: none; }
.contact-book__icon {
  font-family: var(--serif);
  font-style: italic;
  font-size: 26px;
  color: var(--rust);
  line-height: 1;
  font-weight: 700;
  text-align: center;
}
.contact-book__item h3 {
  font-family: var(--serif);
  font-size: 17px;
  font-weight: 600;
  color: var(--ink);
  letter-spacing: -0.01em;
  margin: 0 0 4px;
  line-height: 1.2;
}
.contact-book__item p {
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--ink-soft);
  margin: 0;
}
.contact-book__item a {
  color: var(--rust);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  font-weight: 500;
}
.contact-book__item a:hover { color: var(--rust-deep); }
.contact-hours {
  margin-top: 28px;
  padding: 20px;
  background: var(--paper-soft);
  border: 1px dashed var(--ink);
  font-family: 'Courier New', monospace;
  font-size: 12px;
  line-height: 1.7;
  color: var(--ink-soft);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.contact-hours strong {
  font-family: var(--serif);
  font-style: italic;
  font-size: 15px;
  color: var(--ink);
  text-transform: none;
  letter-spacing: -0.01em;
  display: block;
  margin-bottom: 8px;
}

.contact-map {
  padding: 72px 0;
  background: var(--paper-deep);
  border-top: 1px dashed rgba(30, 20, 16, 0.25);
  border-bottom: 1px dashed rgba(30, 20, 16, 0.25);
}
.contact-map__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: center;
}
.contact-map__copy .hand { display: block; margin-bottom: 12px; }
.contact-map__copy h2 {
  font-family: var(--serif);
  font-size: clamp(1.8rem, 3.5vw, 2.6rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--ink);
  line-height: 1.05;
  margin: 0 0 16px;
}
.contact-map__copy h2 em { font-style: italic; font-weight: 400; color: var(--rust); }
.contact-map__copy p {
  font-size: 15px;
  line-height: 1.7;
  color: var(--ink-soft);
  margin: 0 0 20px;
}
.contact-map__frame {
  position: relative;
  aspect-ratio: 4/3;
  border: 1px solid var(--ink);
  overflow: hidden;
  box-shadow: 6px 6px 0 var(--ink);
}
.contact-map__frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  filter: sepia(0.12) saturate(0.92) contrast(1.02);
}

@media (max-width: 1024px) {
  .contact-main { gap: 56px; }
}
@media (max-width: 860px) {
  .contact-main { grid-template-columns: 1fr; gap: 40px; padding: 48px 0 72px; }
  .contact-book { position: static; }
  .postcard { padding: 32px 24px 24px; transform: none; }
  .contact-map__inner { grid-template-columns: 1fr; gap: 32px; }
  .contact-map { padding: 56px 0; }
}
@media (max-width: 640px) {
  .postcard__head { grid-template-columns: 1fr; }
  .postcard__stamp { width: 70px; height: 80px; transform: rotate(-3deg); }
  .contact-form .field--row { grid-template-columns: 1fr; gap: 16px; }
  .contact-form .btn-ticket { width: 100%; justify-content: center; }
  .contact-map__frame { aspect-ratio: 1/1; }
}

/* ====== RESERVATIONS PAGE ====== */
.resv-hero {
  padding: 72px 0 56px;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.25);
}
.resv-hero__inner {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 48px;
  align-items: end;
}
.resv-hero__title {
  font-family: var(--serif);
  font-size: clamp(2.6rem, 6vw, 5.2rem);
  line-height: 0.94;
  font-weight: 900;
  letter-spacing: -0.045em;
  color: var(--ink);
  margin: 8px 0 24px;
  font-variation-settings: "opsz" 144, "SOFT" 30;
}
.resv-hero__title em {
  font-style: italic;
  font-weight: 400;
  color: var(--rust);
  font-variation-settings: "opsz" 144, "SOFT" 100;
}
.resv-hero__lede {
  font-size: 17px;
  line-height: 1.7;
  color: var(--ink-soft);
  max-width: 640px;
  margin: 0;
}
.resv-hero .stamp { color: var(--rust); }

.resv-main {
  padding: 72px 0 96px;
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 72px;
  align-items: start;
}

.resv-form-wrap {
  background: var(--paper-soft);
  border: 1px solid var(--ink);
  padding: 44px 36px 36px;
  box-shadow: 8px 8px 0 var(--ink);
  position: relative;
}
.resv-form-wrap::before {
  content: "reservation request";
  position: absolute;
  top: -14px;
  left: 32px;
  background: var(--rust);
  color: var(--paper);
  font-family: 'Courier New', monospace;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  padding: 5px 12px;
}
.resv-form__head {
  padding-bottom: 20px;
  margin-bottom: 24px;
  border-bottom: 1px dashed var(--ink);
}
.resv-form__head .hand { font-size: 22px; margin: 0 0 8px; display: block; }
.resv-form__head h2 {
  font-family: var(--serif);
  font-size: 26px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ink);
  margin: 0;
  line-height: 1.1;
}

.resv-form { display: flex; flex-direction: column; gap: 20px; }
.resv-form .field { display: flex; flex-direction: column; gap: 4px; }
.resv-form .field label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--ink);
}
.resv-form .field label span { color: var(--rust); }
.resv-form .field input,
.resv-form .field select,
.resv-form .field textarea {
  width: 100%;
  font-family: var(--serif);
  font-style: italic;
  font-size: 17px;
  color: var(--ink);
  background: transparent;
  border: none;
  border-bottom: 1.5px solid var(--ink);
  padding: 8px 0 10px;
  outline: none;
  border-radius: 0;
  transition: border-color .2s ease;
}
.resv-form .field input::placeholder { color: var(--ink-light); font-style: italic; }
.resv-form .field input:focus,
.resv-form .field select:focus,
.resv-form .field textarea:focus { border-bottom-color: var(--rust); }
.resv-form .field textarea {
  font-family: var(--sans);
  font-style: normal;
  font-size: 14px;
  min-height: 80px;
  resize: vertical;
}
.resv-form .field select {
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%231E1410' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 4px center;
  padding-right: 24px;
  cursor: pointer;
}
.resv-form .field--row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.resv-form .field__error {
  font-family: var(--hand);
  font-size: 16px;
  color: var(--rust);
  margin: 2px 0 0;
  display: none;
}
.resv-form .field.has-error input,
.resv-form .field.has-error select,
.resv-form .field.has-error textarea { border-bottom-color: var(--rust); }
.resv-form .field.has-error .field__error { display: block; }
.resv-form__honeypot {
  position: absolute;
  left: -9999px;
  width: 1px; height: 1px;
  overflow: hidden;
}
.resv-form__actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 8px;
}
.resv-form__actions .btn-ticket { align-self: flex-start; padding: 16px 28px; }
.resv-form__note {
  font-size: 12px;
  line-height: 1.55;
  color: var(--ink-light);
  margin: 0;
}
.resv-form__note a { color: var(--rust); text-decoration: underline; }
.resv-status {
  padding: 14px 18px;
  background: rgba(179, 64, 31, 0.08);
  border-left: 3px solid var(--rust);
  font-size: 14px;
  line-height: 1.5;
  color: var(--ink);
  display: none;
}
.resv-status.is-visible { display: block; }
.resv-status.is-success {
  background: rgba(61, 83, 69, 0.1);
  border-left-color: var(--sage);
}

.resv-side { display: flex; flex-direction: column; gap: 24px; }

.resv-policy {
  background: var(--paper);
  border: 1px solid var(--ink);
  padding: 28px 26px;
}
.resv-policy__label {
  display: block;
  font-family: var(--hand);
  font-size: 22px;
  color: var(--rust);
  margin-bottom: 4px;
}
.resv-policy h3 {
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ink);
  padding-bottom: 14px;
  margin-bottom: 16px;
  border-bottom: 1px dashed var(--ink);
}
.resv-policy ol {
  counter-reset: policy;
  display: flex;
  flex-direction: column;
  gap: 14px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.resv-policy ol li {
  counter-increment: policy;
  position: relative;
  padding-left: 40px;
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--ink-soft);
}
.resv-policy ol li::before {
  content: counter(policy, decimal-leading-zero);
  position: absolute;
  left: 0;
  top: -3px;
  font-family: var(--serif);
  font-style: italic;
  font-size: 22px;
  font-weight: 700;
  color: var(--rust);
  line-height: 1;
}

.resv-large {
  background: var(--sage);
  color: var(--paper);
  padding: 28px 26px;
}
.resv-large__label {
  display: block;
  font-family: var(--hand);
  font-size: 22px;
  color: var(--ochre);
  margin-bottom: 4px;
}
.resv-large h3 {
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 700;
  color: var(--paper);
  letter-spacing: -0.02em;
  margin: 0 0 12px;
  line-height: 1.2;
}
.resv-large p {
  font-size: 14px;
  line-height: 1.65;
  color: rgba(251, 243, 231, 0.82);
  margin: 0 0 16px;
}
.resv-large a {
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--ochre);
  text-decoration: none;
  border-bottom: 1px solid var(--ochre);
  padding-bottom: 3px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: gap .2s ease;
}
.resv-large a:hover { gap: 12px; }

.resv-walkin {
  padding: 24px 26px;
  background: var(--paper-soft);
  border: 1px dashed var(--ink);
}
.resv-walkin h3 {
  font-family: var(--serif);
  font-style: italic;
  font-size: 19px;
  font-weight: 600;
  color: var(--ink);
  margin: 0 0 8px;
  line-height: 1.2;
}
.resv-walkin p {
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--ink-soft);
  margin: 0;
}

.resv-faq {
  padding: 96px 0;
  border-top: 1px dashed rgba(30, 20, 16, 0.25);
  background: var(--paper);
}
.resv-faq__head { max-width: 680px; margin-bottom: 48px; }
.resv-faq__head .hand { display: block; margin-bottom: 12px; }
.resv-faq__head h2 {
  font-family: var(--serif);
  font-size: clamp(1.9rem, 4vw, 2.8rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--ink);
  line-height: 1.05;
  margin: 0;
}
.resv-faq__head h2 em { font-style: italic; font-weight: 400; color: var(--rust); }
.resv-faq__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 64px;
}
.resv-faq__item {
  padding: 24px 0;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.22);
}
.resv-faq__item:nth-child(-n+2) { border-top: 1px dashed rgba(30, 20, 16, 0.22); }
.resv-faq__q {
  font-family: var(--hand);
  font-size: 24px;
  font-weight: 600;
  color: var(--rust);
  margin: 0 0 8px;
  line-height: 1.2;
}
.resv-faq__a {
  font-size: 14px;
  line-height: 1.65;
  color: var(--ink-soft);
  margin: 0;
}

@media (max-width: 1024px) {
  .resv-main { gap: 56px; }
}
@media (max-width: 860px) {
  .resv-hero__inner { grid-template-columns: 1fr; }
  .resv-hero .stamp { display: none; }
  .resv-main { grid-template-columns: 1fr; gap: 40px; padding: 48px 0 72px; }
  .resv-form-wrap { padding: 32px 24px 24px; }
  .resv-faq { padding: 72px 0; }
  .resv-faq__grid { grid-template-columns: 1fr; }
  .resv-faq__item:nth-child(-n+2) { border-top: none; }
  .resv-faq__item:first-child { border-top: 1px dashed rgba(30, 20, 16, 0.22); }
}
@media (max-width: 640px) {
  .resv-form .field--row { grid-template-columns: 1fr; gap: 16px; }
  .resv-form__actions .btn-ticket { align-self: stretch; justify-content: center; }
  .resv-form-wrap::before { left: 20px; }
}
/* ====== CATERING PAGE ====== */
.catering-hero {
  padding: 88px 0 64px;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.25);
  position: relative;
}
.catering-hero__inner {
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 48px;
  align-items: center;
}
.catering-hero__title {
  font-family: var(--serif);
  font-size: clamp(2.6rem, 6vw, 5rem);
  line-height: 0.93;
  font-weight: 900;
  letter-spacing: -0.045em;
  color: var(--ink);
  margin: 8px 0 24px;
  font-variation-settings: "opsz" 144, "SOFT" 30;
}
.catering-hero__title em {
  font-style: italic;
  font-weight: 400;
  color: var(--rust);
  font-variation-settings: "opsz" 144, "SOFT" 100;
}
.catering-hero__lede {
  font-size: 17px;
  line-height: 1.7;
  color: var(--ink-soft);
  max-width: 540px;
  margin: 0 0 32px;
}
.catering-hero__visual {
  position: relative;
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 16px;
  align-items: end;
}
.catering-hero__visual img {
  width: 100%;
  object-fit: cover;
  border: 1px solid var(--ink);
  box-shadow: 6px 6px 0 var(--ink);
  background: var(--white);
}
.catering-hero__visual img:first-child {
  aspect-ratio: 3/4;
  transform: rotate(-2deg);
}
.catering-hero__visual img:last-child {
  aspect-ratio: 1;
  transform: rotate(3deg) translateY(-40px);
}

.catering-stats {
  padding: 32px 0;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.25);
  background: var(--paper-soft);
}
.catering-stats__inner {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.catering-stat {
  text-align: center;
  padding: 0 16px;
  border-right: 1px dashed rgba(30, 20, 16, 0.22);
}
.catering-stat:last-child { border-right: none; }
.catering-stat strong {
  display: block;
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(28px, 4vw, 42px);
  font-weight: 700;
  color: var(--rust);
  letter-spacing: -0.03em;
  line-height: 1;
  margin-bottom: 6px;
}
.catering-stat span {
  display: block;
  font-family: var(--sans);
  font-size: 10.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--ink-soft);
}

.catering-chapter {
  padding: 88px 0;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.25);
}
.catering-chapter--last { border-bottom: none; }
.catering-chapter__head {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 24px;
  align-items: baseline;
  margin-bottom: 48px;
  padding-bottom: 20px;
  border-bottom: 2px solid var(--ink);
}
.catering-chapter__num {
  font-family: var(--hand);
  font-size: 28px;
  color: var(--rust);
  font-weight: 600;
  line-height: 1;
}
.catering-chapter__title {
  font-family: var(--serif);
  font-size: clamp(1.9rem, 4vw, 2.8rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--ink);
  line-height: 1;
}
.catering-chapter__title em { font-style: italic; font-weight: 400; color: var(--rust); }
.catering-chapter__meta {
  font-family: 'Courier New', monospace;
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--ink-light);
  text-align: right;
}

.catering-formats { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 40px; }
.catering-format {
  padding: 20px 0;
  border-top: 2px solid var(--ink);
}
.catering-format__num {
  font-family: var(--serif);
  font-style: italic;
  font-size: 56px;
  font-weight: 700;
  color: var(--rust);
  line-height: 0.9;
  letter-spacing: -0.04em;
  margin-bottom: 16px;
}
.catering-format h3 {
  font-family: var(--serif);
  font-size: 24px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ink);
  line-height: 1.15;
  margin-bottom: 10px;
}
.catering-format p {
  font-size: 14px;
  line-height: 1.65;
  color: var(--ink-soft);
  margin: 0 0 14px;
}
.catering-format__min {
  display: block;
  font-family: var(--hand);
  font-size: 19px;
  color: var(--rust);
  font-weight: 600;
  padding-top: 12px;
  border-top: 1px dashed rgba(30, 20, 16, 0.25);
}

.catering-packages {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 0;
  border: 1px solid var(--ink);
  background: var(--paper-soft);
  box-shadow: 6px 6px 0 var(--ink);
}
.catering-package {
  padding: 36px 28px;
  border-right: 1px solid var(--ink);
  display: flex;
  flex-direction: column;
}
.catering-package:last-child { border-right: none; }
.catering-package--featured {
  background: var(--paper);
  position: relative;
}
.catering-package--featured::before {
  content: "most popular";
  position: absolute;
  top: -12px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--rust);
  color: var(--paper);
  font-family: var(--hand);
  font-size: 16px;
  font-weight: 600;
  padding: 3px 14px;
  letter-spacing: 0.02em;
}
.catering-package__name {
  font-family: var(--hand);
  font-size: 22px;
  color: var(--rust);
  margin: 0 0 4px;
  font-weight: 600;
}
.catering-package__title {
  font-family: var(--serif);
  font-size: 26px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ink);
  line-height: 1.1;
  margin-bottom: 12px;
}
.catering-package__price {
  font-family: var(--serif);
  font-style: italic;
  font-size: 34px;
  font-weight: 700;
  color: var(--rust);
  letter-spacing: -0.03em;
  line-height: 1;
  padding-bottom: 16px;
  margin-bottom: 16px;
  border-bottom: 1px dashed var(--ink);
}
.catering-package__price small {
  font-family: var(--sans);
  font-style: normal;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ink-soft);
  display: block;
  margin-top: 6px;
}
.catering-package__list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 20px;
  flex: 1;
}
.catering-package__list li {
  font-family: var(--sans);
  font-size: 13.5px;
  line-height: 1.5;
  color: var(--ink-soft);
  padding-left: 18px;
  position: relative;
}
.catering-package__list li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--rust);
  font-weight: 700;
}
.catering-package__cta {
  align-self: stretch;
  text-align: center;
}

.catering-gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin-bottom: 24px;
}
.catering-gallery__item {
  position: relative;
  background: var(--white);
  padding: 10px;
  box-shadow: 4px 4px 0 var(--ink);
}
.catering-gallery__item:nth-child(odd) { transform: rotate(-2deg); }
.catering-gallery__item:nth-child(even) { transform: rotate(2deg); }
.catering-gallery__item img {
  width: 100%;
  aspect-ratio: 1;
  object-fit: cover;
}
.catering-gallery__caption {
  font-family: var(--hand);
  font-size: 16px;
  color: var(--rust);
  text-align: center;
  margin-top: 8px;
  font-weight: 600;
}
.catering-gallery-note {
  font-family: var(--sans);
  font-size: 13px;
  line-height: 1.65;
  color: var(--ink-light);
  text-align: center;
  max-width: 640px;
  margin: 0 auto;
}

.catering-quote {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 64px;
  align-items: start;
}
.catering-quote__copy .hand { display: block; margin-bottom: 12px; }
.catering-quote__copy h2 {
  font-family: var(--serif);
  font-size: clamp(1.9rem, 3.8vw, 2.8rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--ink);
  line-height: 1.05;
  margin: 0 0 20px;
}
.catering-quote__copy h2 em { font-style: italic; font-weight: 400; color: var(--rust); }
.catering-quote__copy p {
  font-size: 15px;
  line-height: 1.75;
  color: var(--ink-soft);
  margin-bottom: 16px;
}
.catering-quote__list {
  padding-top: 20px;
  margin-top: 20px;
  border-top: 1px dashed rgba(30, 20, 16, 0.25);
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.catering-quote__list li {
  font-size: 14px;
  line-height: 1.5;
  color: var(--ink-soft);
  padding-left: 22px;
  position: relative;
}
.catering-quote__list li::before {
  content: "→";
  position: absolute;
  left: 0;
  color: var(--rust);
  font-weight: 700;
}

.catering-envelope {
  background: var(--paper-soft);
  border: 1px solid var(--ink);
  padding: 40px 32px 32px;
  box-shadow: 8px 8px 0 var(--ink);
  position: relative;
  transform: rotate(0.4deg);
}
.catering-envelope::before {
  content: "";
  position: absolute;
  top: 0;
  left: 32px;
  right: 32px;
  height: 30px;
  background: linear-gradient(180deg, var(--paper-deep) 0%, var(--paper-soft) 100%);
  border-bottom: 1px dashed var(--ink);
  transform: translateY(-1px);
}
.catering-envelope::after {
  content: "catering inquiry";
  position: absolute;
  top: 8px;
  left: 50%;
  transform: translateX(-50%);
  font-family: 'Courier New', monospace;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--rust);
}
.catering-form { display: flex; flex-direction: column; gap: 18px; }
.catering-form .field { display: flex; flex-direction: column; gap: 4px; }
.catering-form .field label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--ink);
}
.catering-form .field label span { color: var(--rust); }
.catering-form .field input,
.catering-form .field select,
.catering-form .field textarea {
  width: 100%;
  font-family: var(--serif);
  font-style: italic;
  font-size: 16px;
  color: var(--ink);
  background: transparent;
  border: none;
  border-bottom: 1.5px solid var(--ink);
  padding: 8px 0 10px;
  outline: none;
  border-radius: 0;
  transition: border-color .2s ease;
}
.catering-form .field input::placeholder { color: var(--ink-light); font-style: italic; }
.catering-form .field input:focus,
.catering-form .field select:focus,
.catering-form .field textarea:focus { border-bottom-color: var(--rust); }
.catering-form .field textarea {
  font-family: var(--sans);
  font-style: normal;
  font-size: 14px;
  min-height: 80px;
  resize: vertical;
}
.catering-form .field select {
  -webkit-appearance: none;
  appearance: none;
  background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%231E1410' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 4px center;
  padding-right: 24px;
  cursor: pointer;
}
.catering-form .field--row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.catering-form .field__error {
  font-family: var(--hand);
  font-size: 16px;
  color: var(--rust);
  margin: 2px 0 0;
  display: none;
}
.catering-form .field.has-error input,
.catering-form .field.has-error select,
.catering-form .field.has-error textarea { border-bottom-color: var(--rust); }
.catering-form .field.has-error .field__error { display: block; }
.catering-form__honeypot {
  position: absolute;
  left: -9999px;
  width: 1px; height: 1px;
  overflow: hidden;
}
.catering-form__actions {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 8px;
}
.catering-form__actions .btn-ticket { align-self: flex-start; padding: 16px 28px; }
.catering-form__note {
  font-size: 12px;
  line-height: 1.55;
  color: var(--ink-light);
  margin: 0;
}
.catering-form__note a { color: var(--rust); text-decoration: underline; }
.catering-status {
  padding: 14px 18px;
  background: rgba(179, 64, 31, 0.08);
  border-left: 3px solid var(--rust);
  font-size: 14px;
  line-height: 1.5;
  color: var(--ink);
  display: none;
}
.catering-status.is-visible { display: block; }
.catering-status.is-success {
  background: rgba(61, 83, 69, 0.1);
  border-left-color: var(--sage);
}

@media (max-width: 1024px) {
  .catering-formats { gap: 28px; }
  .catering-quote { gap: 48px; }
}
@media (max-width: 860px) {
  .catering-hero { padding: 64px 0 48px; }
  .catering-hero__inner { grid-template-columns: 1fr; gap: 40px; }
  .catering-hero__visual { max-width: 480px; margin: 0 auto; }
  .catering-stats__inner { grid-template-columns: 1fr 1fr; gap: 20px 16px; }
  .catering-stat:nth-child(2) { border-right: none; }
  .catering-chapter { padding: 64px 0; }
  .catering-formats { grid-template-columns: 1fr; gap: 24px; }
  .catering-packages { grid-template-columns: 1fr; }
  .catering-package { border-right: none; border-bottom: 1px solid var(--ink); }
  .catering-package:last-child { border-bottom: none; }
  .catering-gallery { grid-template-columns: 1fr 1fr; gap: 16px; }
  .catering-quote { grid-template-columns: 1fr; gap: 40px; }
  .catering-envelope { transform: none; }
  .catering-chapter__head { grid-template-columns: auto 1fr; gap: 16px; }
  .catering-chapter__meta { display: none; }
}
@media (max-width: 640px) {
  .catering-form .field--row { grid-template-columns: 1fr; gap: 16px; }
  .catering-form__actions .btn-ticket { align-self: stretch; justify-content: center; }
  .catering-package { padding: 32px 22px; }
  .catering-envelope { padding: 32px 22px 24px; }
}

/* ====== EVENTS PAGE ====== */
.events-hero {
  padding: 88px 0 56px;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.25);
}
.events-hero__inner {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 56px;
  align-items: end;
}
.events-hero__title {
  font-family: var(--serif);
  font-size: clamp(2.6rem, 6vw, 5.2rem);
  line-height: 0.93;
  font-weight: 900;
  letter-spacing: -0.045em;
  color: var(--ink);
  margin: 8px 0 24px;
  font-variation-settings: "opsz" 144, "SOFT" 30;
}
.events-hero__title em {
  font-style: italic;
  font-weight: 400;
  color: var(--rust);
  font-variation-settings: "opsz" 144, "SOFT" 100;
}
.events-hero__lede {
  font-size: 17px;
  line-height: 1.7;
  color: var(--ink-soft);
  max-width: 620px;
  margin: 0;
}
.events-hero__meta {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 24px;
  border: 1px solid var(--ink);
  background: var(--paper-soft);
  font-family: 'Courier New', monospace;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--ink-soft);
}
.events-hero__meta strong {
  display: block;
  font-family: var(--serif);
  font-style: italic;
  font-size: 17px;
  text-transform: none;
  letter-spacing: -0.01em;
  color: var(--ink);
  margin-bottom: 2px;
}

.events-chapter {
  padding: 88px 0;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.25);
}
.events-chapter--last { border-bottom: none; }
.events-chapter__head {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 24px;
  align-items: baseline;
  margin-bottom: 40px;
  padding-bottom: 20px;
  border-bottom: 2px solid var(--ink);
}
.events-chapter__num {
  font-family: var(--hand);
  font-size: 28px;
  color: var(--rust);
  font-weight: 600;
  line-height: 1;
}
.events-chapter__title {
  font-family: var(--serif);
  font-size: clamp(1.9rem, 4vw, 2.8rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--ink);
  line-height: 1;
}
.events-chapter__title em { font-style: italic; font-weight: 400; color: var(--rust); }
.events-chapter__meta {
  font-family: 'Courier New', monospace;
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--ink-light);
  text-align: right;
}

.events-weekly {
  display: flex;
  flex-direction: column;
}
.events-weekly__row {
  display: grid;
  grid-template-columns: 140px 1fr 1fr auto;
  gap: 24px;
  align-items: center;
  padding: 22px 0;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.22);
}
.events-weekly__row:first-child { border-top: 1px dashed rgba(30, 20, 16, 0.22); }
.events-weekly__row.is-today { background: rgba(217, 164, 65, 0.15); padding-left: 16px; padding-right: 16px; margin: 0 -16px; }
.events-weekly__day {
  font-family: var(--serif);
  font-style: italic;
  font-size: 22px;
  font-weight: 600;
  color: var(--rust);
  letter-spacing: -0.01em;
  line-height: 1;
}
.events-weekly__row.is-today .events-weekly__day::after {
  content: "← today";
  display: block;
  font-family: var(--hand);
  font-style: normal;
  font-size: 14px;
  color: var(--rust);
  font-weight: 600;
  margin-top: 4px;
}
.events-weekly__event {
  font-family: var(--serif);
  font-size: 19px;
  font-weight: 600;
  color: var(--ink);
  letter-spacing: -0.01em;
  line-height: 1.25;
}
.events-weekly__event small {
  display: block;
  font-family: var(--sans);
  font-size: 12.5px;
  font-weight: 400;
  color: var(--ink-soft);
  letter-spacing: 0;
  margin-top: 3px;
  line-height: 1.4;
}
.events-weekly__note {
  font-family: var(--hand);
  font-size: 18px;
  color: var(--ink-light);
  line-height: 1.3;
}
.events-weekly__time {
  font-family: 'Courier New', monospace;
  font-size: 12px;
  font-weight: 700;
  color: var(--ink-soft);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  white-space: nowrap;
  text-align: right;
}

.events-calendar {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 40px 64px;
}
.events-calendar__month {
  background: var(--paper-soft);
  border: 1px solid var(--ink);
  padding: 28px 28px 24px;
  box-shadow: 4px 4px 0 var(--ink);
}
.events-calendar__month-head {
  padding-bottom: 14px;
  margin-bottom: 20px;
  border-bottom: 1px dashed var(--ink);
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
}
.events-calendar__month-name {
  font-family: var(--serif);
  font-size: 24px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ink);
  line-height: 1.1;
}
.events-calendar__month-year {
  font-family: var(--hand);
  font-size: 20px;
  color: var(--rust);
  font-weight: 600;
}
.events-calendar__list {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.events-calendar__item {
  display: grid;
  grid-template-columns: 60px 1fr;
  gap: 16px;
  align-items: baseline;
  padding: 14px 0;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.2);
}
.events-calendar__item:last-child { border-bottom: none; }
.events-calendar__date {
  font-family: 'Courier New', monospace;
  font-size: 12px;
  font-weight: 700;
  color: var(--rust);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  line-height: 1.2;
}
.events-calendar__date strong {
  display: block;
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 700;
  color: var(--ink);
  letter-spacing: -0.02em;
  margin-bottom: 1px;
}
.events-calendar__content h4 {
  font-family: var(--serif);
  font-size: 17px;
  font-weight: 600;
  color: var(--ink);
  letter-spacing: -0.01em;
  line-height: 1.25;
  margin-bottom: 3px;
}
.events-calendar__content p {
  font-size: 13px;
  line-height: 1.5;
  color: var(--ink-soft);
  margin: 0;
}
.events-calendar__content a {
  color: var(--rust);
  text-decoration: none;
  border-bottom: 1px solid currentColor;
  font-weight: 500;
}

.events-featured {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
}
.events-featured__visual {
  position: relative;
  padding: 14px;
  background: var(--white);
  box-shadow: 6px 6px 0 var(--ink);
  transform: rotate(1.5deg);
}
.events-featured__visual img {
  width: 100%;
  aspect-ratio: 4/3;
  object-fit: cover;
}
.events-featured__copy .hand { display: block; margin-bottom: 12px; }
.events-featured__copy h3 {
  font-family: var(--serif);
  font-size: clamp(1.9rem, 3.5vw, 2.6rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--ink);
  line-height: 1.05;
  margin: 0 0 16px;
}
.events-featured__copy h3 em { font-style: italic; font-weight: 400; color: var(--rust); }
.events-featured__copy p {
  font-size: 15px;
  line-height: 1.7;
  color: var(--ink-soft);
  margin-bottom: 16px;
}
.events-featured__details {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px 24px;
  padding: 20px 0;
  margin: 12px 0 24px;
  border-top: 1px dashed rgba(30, 20, 16, 0.25);
  border-bottom: 1px dashed rgba(30, 20, 16, 0.25);
}
.events-featured__details div span {
  display: block;
  font-family: 'Courier New', monospace;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--rust);
  margin-bottom: 4px;
}
.events-featured__details div strong {
  display: block;
  font-family: var(--serif);
  font-style: italic;
  font-size: 16px;
  font-weight: 600;
  color: var(--ink);
  letter-spacing: -0.01em;
  line-height: 1.3;
}

.events-cta {
  padding: 88px 0;
  background: var(--sage);
  color: var(--paper);
  text-align: center;
}
.events-cta .hand { display: block; margin-bottom: 16px; color: var(--ochre); }
.events-cta h2 {
  font-family: var(--serif);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--paper);
  line-height: 1.1;
  max-width: 720px;
  margin: 0 auto 20px;
}
.events-cta h2 em { font-style: italic; font-weight: 400; color: var(--ochre); }
.events-cta p {
  font-size: 16px;
  line-height: 1.65;
  color: rgba(251, 243, 231, 0.82);
  max-width: 560px;
  margin: 0 auto 32px;
}
.events-cta .btn-ticket {
  background: var(--paper);
  color: var(--ink);
}
.events-cta .btn-ticket:hover { background: var(--ochre); }

@media (max-width: 1024px) {
  .events-calendar { gap: 32px 40px; }
}
@media (max-width: 860px) {
  .events-hero { padding: 64px 0 40px; }
  .events-hero__inner { grid-template-columns: 1fr; gap: 32px; }
  .events-chapter { padding: 64px 0; }
  .events-chapter__head { grid-template-columns: auto 1fr; gap: 16px; }
  .events-chapter__meta { display: none; }
  .events-weekly__row { grid-template-columns: 100px 1fr; gap: 12px 20px; }
  .events-weekly__note { grid-column: 1 / -1; padding-left: 100px; font-size: 16px; }
  .events-weekly__time { grid-column: 1 / -1; text-align: left; padding-left: 100px; }
  .events-calendar { grid-template-columns: 1fr; }
  .events-featured { grid-template-columns: 1fr; gap: 32px; }
  .events-cta { padding: 64px 0; }
}
@media (max-width: 640px) {
  .events-weekly__row { grid-template-columns: 1fr; gap: 8px; padding: 18px 0; }
  .events-weekly__row.is-today { padding-left: 12px; padding-right: 12px; margin: 0 -12px; }
  .events-weekly__note,
  .events-weekly__time { padding-left: 0; }
  .events-weekly__day { font-size: 18px; }
  .events-weekly__event { font-size: 17px; }
  .events-calendar__month { padding: 22px 20px 18px; }
  .events-featured__details { grid-template-columns: 1fr; }
  .events-cta .btn-ticket { width: 100%; justify-content: center; }
}
/* ====== FAQ PAGE ====== */
.faq-hero {
  padding: 72px 0 56px;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.25);
}
.faq-hero__inner {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 48px;
  align-items: end;
}
.faq-hero__title {
  font-family: var(--serif);
  font-size: clamp(2.6rem, 6vw, 5.2rem);
  line-height: 0.94;
  font-weight: 900;
  letter-spacing: -0.045em;
  color: var(--ink);
  margin: 8px 0 24px;
  font-variation-settings: "opsz" 144, "SOFT" 30;
}
.faq-hero__title em {
  font-style: italic;
  font-weight: 400;
  color: var(--rust);
  font-variation-settings: "opsz" 144, "SOFT" 100;
}
.faq-hero__lede {
  font-size: 17px;
  line-height: 1.7;
  color: var(--ink-soft);
  max-width: 620px;
  margin: 0;
}
.faq-hero .stamp { color: var(--rust); }

.faq-main {
  padding: 72px 0 96px;
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 72px;
  align-items: start;
}

.faq-catalog {
  position: sticky;
  top: 100px;
  background: var(--paper-soft);
  border: 1px solid var(--ink);
  padding: 24px 20px;
  box-shadow: 4px 4px 0 var(--ink);
}
.faq-catalog__label {
  display: block;
  font-family: var(--hand);
  font-size: 22px;
  color: var(--rust);
  font-weight: 600;
  margin: 0 0 4px;
}
.faq-catalog h2 {
  font-family: var(--serif);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ink);
  padding-bottom: 14px;
  margin-bottom: 8px;
  border-bottom: 1px solid var(--ink);
}
.faq-catalog ul { display: flex; flex-direction: column; gap: 2px; }
.faq-catalog a {
  display: grid;
  grid-template-columns: 32px 1fr;
  gap: 8px;
  align-items: baseline;
  padding: 10px 8px;
  text-decoration: none;
  color: var(--ink);
  font-family: var(--sans);
  font-size: 13px;
  font-weight: 500;
  border-left: 2px solid transparent;
  transition: background .2s ease, border-color .2s ease;
  line-height: 1.3;
}
.faq-catalog a:hover { background: var(--paper); border-left-color: var(--rust); }
.faq-catalog a span:first-child {
  font-family: 'Courier New', monospace;
  font-size: 10px;
  font-weight: 700;
  color: var(--rust);
  letter-spacing: 0.08em;
}
.faq-catalog__note {
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px dashed rgba(30, 20, 16, 0.25);
  font-size: 12px;
  line-height: 1.55;
  color: var(--ink-soft);
}
.faq-catalog__note a { color: var(--rust); text-decoration: underline; font-weight: 500; }

.faq-content { display: flex; flex-direction: column; gap: 64px; }
.faq-section { scroll-margin-top: 100px; }
.faq-section__head {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 20px;
  align-items: baseline;
  padding-bottom: 16px;
  margin-bottom: 24px;
  border-bottom: 2px solid var(--ink);
}
.faq-section__num {
  font-family: var(--hand);
  font-size: 26px;
  color: var(--rust);
  font-weight: 600;
  line-height: 1;
}
.faq-section__title {
  font-family: var(--serif);
  font-size: clamp(1.7rem, 3vw, 2.2rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--ink);
  line-height: 1.05;
}
.faq-section__title em { font-style: italic; font-weight: 400; color: var(--rust); }
.faq-section__count {
  font-family: 'Courier New', monospace;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--ink-light);
  white-space: nowrap;
}

.faq-cards {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.faq-card {
  padding: 24px 0;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.22);
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 20px;
  align-items: start;
}
.faq-card:first-child { padding-top: 4px; }
.faq-card:last-child { border-bottom: none; }
.faq-card__num {
  font-family: 'Courier New', monospace;
  font-size: 11px;
  font-weight: 700;
  color: var(--rust);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding-top: 6px;
  line-height: 1.2;
}
.faq-card__body h3 {
  font-family: var(--hand);
  font-size: 24px;
  font-weight: 600;
  color: var(--rust);
  margin: 0 0 8px;
  line-height: 1.25;
  letter-spacing: 0;
}
.faq-card__body p {
  font-size: 14.5px;
  line-height: 1.7;
  color: var(--ink-soft);
  margin: 0 0 8px;
}
.faq-card__body p:last-child { margin-bottom: 0; }
.faq-card__body a { color: var(--rust); text-decoration: underline; font-weight: 500; }

.faq-close {
  padding: 88px 0;
  background: var(--sage);
  color: var(--paper);
  text-align: center;
}
.faq-close .hand { color: var(--ochre); display: block; margin-bottom: 16px; }
.faq-close h2 {
  font-family: var(--serif);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--paper);
  line-height: 1.1;
  max-width: 720px;
  margin: 0 auto 20px;
}
.faq-close h2 em { font-style: italic; font-weight: 400; color: var(--ochre); }
.faq-close p {
  font-size: 16px;
  line-height: 1.65;
  color: rgba(251, 243, 231, 0.82);
  max-width: 560px;
  margin: 0 auto 32px;
}
.faq-close__actions {
  display: flex;
  gap: 24px;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}
.faq-close .btn-ticket {
  background: var(--paper);
  color: var(--ink);
}
.faq-close .btn-ticket:hover { background: var(--ochre); }

@media (max-width: 1024px) {
  .faq-main { grid-template-columns: 220px 1fr; gap: 48px; }
}
@media (max-width: 860px) {
  .faq-hero__inner { grid-template-columns: 1fr; }
  .faq-hero .stamp { display: none; }
  .faq-main { grid-template-columns: 1fr; gap: 32px; padding: 48px 0 72px; }
  .faq-catalog { position: static; }
  .faq-catalog ul { flex-direction: row; flex-wrap: wrap; gap: 6px; }
  .faq-catalog a {
    padding: 8px 12px;
    background: var(--paper);
    border: 1px solid rgba(30, 20, 16, 0.15);
    border-left-width: 1px;
    border-radius: 2px;
  }
  .faq-catalog a span:first-child { display: none; }
  .faq-catalog__note { display: none; }
  .faq-content { gap: 48px; }
  .faq-close { padding: 72px 0; }
}
@media (max-width: 640px) {
  .faq-card { grid-template-columns: 1fr; gap: 6px; }
  .faq-card__num { padding-top: 0; }
  .faq-card__body h3 { font-size: 22px; }
  .faq-close__actions { flex-direction: column; align-items: stretch; gap: 16px; }
  .faq-close__actions .btn-ticket { justify-content: center; }
}

/* ====== LOCAL INGREDIENTS PAGE ====== */
.li-hero {
  padding: 88px 0 64px;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.25);
  position: relative;
}
.li-hero__inner {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 64px;
  align-items: center;
}
.li-hero__title {
  font-family: var(--serif);
  font-size: clamp(2.6rem, 6vw, 5rem);
  line-height: 0.93;
  font-weight: 900;
  letter-spacing: -0.045em;
  color: var(--ink);
  margin: 8px 0 24px;
  font-variation-settings: "opsz" 144, "SOFT" 30;
}
.li-hero__title em {
  font-style: italic;
  font-weight: 400;
  color: var(--rust);
  font-variation-settings: "opsz" 144, "SOFT" 100;
}
.li-hero__lede {
  font-size: 17px;
  line-height: 1.75;
  color: var(--ink-soft);
  max-width: 560px;
  margin: 0 0 20px;
}
.li-hero__aside {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 28px;
  border: 1px solid var(--ink);
  background: var(--paper-soft);
  box-shadow: 6px 6px 0 var(--ink);
  transform: rotate(0.5deg);
}
.li-hero__aside-label {
  display: block;
  font-family: var(--hand);
  font-size: 22px;
  color: var(--rust);
  font-weight: 600;
  margin-bottom: 8px;
}
.li-hero__aside h3 {
  font-family: var(--serif);
  font-size: 18px;
  font-weight: 600;
  color: var(--ink);
  margin: 0 0 8px;
  letter-spacing: -0.01em;
  line-height: 1.2;
}
.li-hero__aside p {
  font-size: 13.5px;
  line-height: 1.65;
  color: var(--ink-soft);
  margin: 0;
}
.li-hero__aside hr {
  border: none;
  border-top: 1px dashed rgba(30, 20, 16, 0.25);
  margin: 4px 0;
}

.li-chapter {
  padding: 88px 0;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.25);
}
.li-chapter--last { border-bottom: none; }
.li-chapter--tight { padding: 64px 0; }
.li-chapter__head {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 24px;
  align-items: baseline;
  margin-bottom: 48px;
  padding-bottom: 20px;
  border-bottom: 2px solid var(--ink);
}
.li-chapter__num {
  font-family: var(--hand);
  font-size: 28px;
  color: var(--rust);
  font-weight: 600;
  line-height: 1;
}
.li-chapter__title {
  font-family: var(--serif);
  font-size: clamp(1.9rem, 4vw, 2.8rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--ink);
  line-height: 1;
}
.li-chapter__title em { font-style: italic; font-weight: 400; color: var(--rust); }
.li-chapter__meta {
  font-family: 'Courier New', monospace;
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--ink-light);
  text-align: right;
  white-space: nowrap;
}

.li-manifesto {
  max-width: 820px;
  margin: 0 auto;
  text-align: center;
  padding: 0 var(--gutter);
}
.li-manifesto p {
  font-family: var(--serif);
  font-style: italic;
  font-size: clamp(1.4rem, 2.6vw, 1.9rem);
  line-height: 1.5;
  color: var(--ink);
  letter-spacing: -0.01em;
  margin: 0;
}
.li-manifesto p strong {
  font-style: normal;
  font-weight: 700;
  color: var(--rust);
}

.li-farms {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 64px;
}
.li-farm {
  padding: 28px 0;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.22);
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 20px;
  align-items: start;
}
.li-farm:first-child,
.li-farm:nth-child(2) { border-top: 1px dashed rgba(30, 20, 16, 0.22); }
.li-farm__icon {
  font-family: var(--serif);
  font-style: italic;
  font-size: 26px;
  font-weight: 700;
  color: var(--rust);
  line-height: 1;
  padding-top: 4px;
  text-align: center;
}
.li-farm__body h3 {
  font-family: var(--serif);
  font-size: 21px;
  font-weight: 600;
  color: var(--ink);
  letter-spacing: -0.02em;
  line-height: 1.2;
  margin: 0 0 4px;
}
.li-farm__where {
  display: inline-block;
  font-family: var(--sans);
  font-size: 10.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--rust);
  margin-bottom: 8px;
}
.li-farm__body p {
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--ink-soft);
  margin: 0;
}

.li-season {
  background: var(--paper-soft);
  border: 1px solid var(--ink);
  padding: 32px 28px;
  box-shadow: 4px 4px 0 var(--ink);
}
.li-season__head {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  align-items: baseline;
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 1px dashed var(--ink);
}
.li-season__head .hand {
  font-size: 22px;
  font-weight: 600;
  color: var(--rust);
  margin: 0;
  display: block;
}
.li-season__head h3 {
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ink);
  margin: 0;
  line-height: 1.15;
}
.li-season__note {
  font-family: var(--hand);
  font-size: 17px;
  color: var(--ink-light);
  text-align: right;
  font-weight: 500;
}

.li-season__table {
  display: grid;
  grid-template-columns: 140px repeat(12, 1fr);
  gap: 0;
  font-size: 11px;
}
.li-season__row {
  display: contents;
}
.li-season__cell {
  padding: 8px 4px;
  border-bottom: 1px dotted rgba(30, 20, 16, 0.25);
  text-align: center;
  font-family: 'Courier New', monospace;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--ink-soft);
  line-height: 1;
}
.li-season__cell--month {
  font-size: 10px;
  color: var(--ink-light);
  padding: 6px 2px;
  border-bottom: 1px solid var(--ink);
}
.li-season__cell--label {
  text-align: left;
  font-family: var(--serif);
  font-style: italic;
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
  text-transform: none;
  letter-spacing: -0.01em;
  padding: 8px 10px 8px 4px;
  border-bottom: 1px dotted rgba(30, 20, 16, 0.25);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.li-season__dot {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--rust);
  margin: 0 auto;
  opacity: 0;
  transition: opacity .2s ease;
}
.li-season__cell--in .li-season__dot { opacity: 1; }
.li-season__cell--peak .li-season__dot {
  opacity: 1;
  background: var(--rust-deep);
  box-shadow: 0 0 0 2px var(--paper-soft), 0 0 0 3px var(--rust-deep);
}
.li-season__cell--low .li-season__dot {
  opacity: 0.4;
  background: var(--ink-soft);
}

.li-season__legend {
  display: flex;
  gap: 24px;
  align-items: center;
  flex-wrap: wrap;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px dashed rgba(30, 20, 16, 0.25);
  font-family: var(--sans);
  font-size: 11px;
  color: var(--ink-soft);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-weight: 600;
}
.li-season__legend span {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.li-season__legend-dot {
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--rust);
}
.li-season__legend-dot--peak {
  background: var(--rust-deep);
  box-shadow: 0 0 0 2px var(--paper-soft), 0 0 0 3px var(--rust-deep);
}
.li-season__legend-dot--low { background: var(--ink-soft); opacity: 0.4; }

.li-sourcing {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: start;
}
.li-sourcing__copy .hand { display: block; margin-bottom: 12px; }
.li-sourcing__copy h3 {
  font-family: var(--serif);
  font-size: clamp(1.7rem, 3vw, 2.2rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--ink);
  line-height: 1.05;
  margin: 0 0 16px;
}
.li-sourcing__copy h3 em { font-style: italic; font-weight: 400; color: var(--rust); }
.li-sourcing__copy p {
  font-size: 15px;
  line-height: 1.75;
  color: var(--ink-soft);
  margin-bottom: 16px;
}
.li-sourcing__principles {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.li-sourcing__principle {
  padding: 20px 0;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.22);
  display: grid;
  grid-template-columns: 36px 1fr;
  gap: 16px;
  align-items: start;
}
.li-sourcing__principle:first-child { padding-top: 0; }
.li-sourcing__principle:last-child { border-bottom: none; }
.li-sourcing__principle-num {
  font-family: var(--serif);
  font-style: italic;
  font-size: 26px;
  font-weight: 700;
  color: var(--rust);
  line-height: 1;
  letter-spacing: -0.02em;
}
.li-sourcing__principle h4 {
  font-family: var(--serif);
  font-size: 17px;
  font-weight: 600;
  color: var(--ink);
  letter-spacing: -0.01em;
  line-height: 1.25;
  margin: 0 0 4px;
}
.li-sourcing__principle p {
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--ink-soft);
  margin: 0;
}

.li-visit {
  padding: 88px 0;
  background: var(--sage);
  color: var(--paper);
  text-align: center;
}
.li-visit .hand { color: var(--ochre); display: block; margin-bottom: 16px; }
.li-visit h2 {
  font-family: var(--serif);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--paper);
  line-height: 1.1;
  max-width: 720px;
  margin: 0 auto 20px;
}
.li-visit h2 em { font-style: italic; font-weight: 400; color: var(--ochre); }
.li-visit p {
  font-size: 16px;
  line-height: 1.65;
  color: rgba(251, 243, 231, 0.82);
  max-width: 620px;
  margin: 0 auto 32px;
}
.li-visit__actions {
  display: flex;
  gap: 24px;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
}
.li-visit .btn-ticket {
  background: var(--paper);
  color: var(--ink);
}
.li-visit .btn-ticket:hover { background: var(--ochre); }
.li-visit .link-arrow {
  color: var(--ochre);
  border-bottom-color: var(--ochre);
}
.li-visit .link-arrow:hover { color: var(--paper); border-bottom-color: var(--paper); }

@media (max-width: 1024px) {
  .li-hero__inner { gap: 48px; }
  .li-farms { gap: 0 40px; }
  .li-sourcing { gap: 40px; }
  .li-season__table { font-size: 10px; }
  .li-season__cell--label { font-size: 13px; }
}
@media (max-width: 860px) {
  .li-hero { padding: 64px 0 48px; }
  .li-hero__inner { grid-template-columns: 1fr; gap: 40px; }
  .li-hero__aside { transform: none; }
  .li-chapter { padding: 64px 0; }
  .li-chapter__head { grid-template-columns: auto 1fr; gap: 16px; }
  .li-chapter__meta { display: none; }
  .li-farms { grid-template-columns: 1fr; gap: 0; }
  .li-farm:nth-child(2) { border-top: none; }
  .li-sourcing { grid-template-columns: 1fr; gap: 32px; }
  .li-season__table { font-size: 9px; grid-template-columns: 100px repeat(12, 1fr); }
  .li-season__cell { padding: 6px 2px; }
  .li-season__cell--label { font-size: 12px; padding-right: 6px; }
  .li-season__dot { width: 10px; height: 10px; }
  .li-season__head { grid-template-columns: 1fr; gap: 8px; }
  .li-season__note { text-align: left; }
  .li-visit { padding: 72px 0; }
}
@media (max-width: 640px) {
  .li-season { padding: 24px 16px; }
  .li-season__table {
    display: flex;
    flex-direction: column;
    gap: 0;
    font-size: 11px;
  }
  .li-season__row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 8px;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px dotted rgba(30, 20, 16, 0.25);
  }
  .li-season__row:first-child { display: none; }
  .li-season__cell--label {
    border-bottom: none;
    padding: 0;
    font-size: 14px;
    white-space: normal;
    overflow: visible;
  }
  .li-season__cell {
    border-bottom: none;
    padding: 0;
    display: none;
  }
  .li-season__cell--mobile-months {
    display: flex;
    gap: 3px;
    align-items: center;
  }
  .li-season__cell--mobile-months .li-season__dot {
    display: none;
  }
  .li-season__cell--mobile-months .li-season__m {
    width: 8px;
    height: 12px;
    border-radius: 1px;
    background: transparent;
    border: 1px solid rgba(30, 20, 16, 0.15);
  }
  .li-season__cell--mobile-months .li-season__m.is-in { background: var(--rust); border-color: var(--rust); }
  .li-season__cell--mobile-months .li-season__m.is-peak { background: var(--rust-deep); border-color: var(--rust-deep); }
  .li-season__cell--mobile-months .li-season__m.is-low { background: var(--ink-light); opacity: 0.4; border-color: var(--ink-light); }
  .li-season__legend { font-size: 10px; gap: 14px; }
  .li-visit__actions { flex-direction: column; align-items: stretch; gap: 16px; }
  .li-visit__actions .btn-ticket { justify-content: center; }
  .li-visit__actions .link-arrow { align-self: center; }
}
/* ====== NEWSLETTER PAGE ====== */
.nl-hero {
  padding: 88px 0 64px;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.25);
  position: relative;
}
.nl-hero__inner {
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 72px;
  align-items: center;
}
.nl-hero__title {
  font-family: var(--serif);
  font-size: clamp(2.6rem, 6vw, 5rem);
  line-height: 0.93;
  font-weight: 900;
  letter-spacing: -0.045em;
  color: var(--ink);
  margin: 8px 0 24px;
  font-variation-settings: "opsz" 144, "SOFT" 30;
}
.nl-hero__title em {
  font-style: italic;
  font-weight: 400;
  color: var(--rust);
  font-variation-settings: "opsz" 144, "SOFT" 100;
}
.nl-hero__lede {
  font-size: 17px;
  line-height: 1.75;
  color: var(--ink-soft);
  max-width: 560px;
  margin: 0 0 20px;
}
.nl-hero__signature {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px dashed rgba(30, 20, 16, 0.25);
  font-size: 13px;
  color: var(--ink-light);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-weight: 600;
}
.nl-hero__signature .hand {
  font-size: 28px;
  margin: 0;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 600;
  color: var(--rust);
}

.nl-book {
  position: relative;
  background: var(--paper-soft);
  border: 1px solid var(--ink);
  padding: 36px 32px 32px;
  box-shadow: 8px 8px 0 var(--ink);
  transform: rotate(0.6deg);
  background-image:
    repeating-linear-gradient(
      to bottom,
      transparent 0 36px,
      rgba(30, 20, 16, 0.06) 36px 37px
    );
}
.nl-book::before {
  content: "";
  position: absolute;
  top: 20px;
  bottom: 20px;
  left: 44px;
  width: 1px;
  background: var(--rust);
  opacity: 0.45;
}
.nl-book__label {
  display: block;
  font-family: var(--hand);
  font-size: 22px;
  color: var(--rust);
  font-weight: 600;
  margin: 0 0 6px;
  padding-left: 28px;
}
.nl-book h3 {
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ink);
  margin: 0 0 24px;
  padding-left: 28px;
  line-height: 1.2;
}
.nl-form {
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding-left: 28px;
}
.nl-form .field { display: flex; flex-direction: column; gap: 4px; }
.nl-form .field label {
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--ink);
}
.nl-form .field input {
  width: 100%;
  font-family: var(--serif);
  font-style: italic;
  font-size: 18px;
  color: var(--ink);
  background: transparent;
  border: none;
  border-bottom: 1.5px solid var(--ink);
  padding: 8px 0 10px;
  outline: none;
  border-radius: 0;
  transition: border-color .2s ease;
}
.nl-form .field input::placeholder {
  color: var(--ink-light);
  font-style: italic;
}
.nl-form .field input:focus { border-bottom-color: var(--rust); }
.nl-form .field__error {
  font-family: var(--hand);
  font-size: 16px;
  color: var(--rust);
  margin: 2px 0 0;
  display: none;
}
.nl-form .field.has-error input { border-bottom-color: var(--rust); }
.nl-form .field.has-error .field__error { display: block; }
.nl-status {
  padding: 14px 18px;
  background: rgba(179, 64, 31, 0.08);
  border-left: 3px solid var(--rust);
  font-size: 14px;
  line-height: 1.5;
  color: var(--ink);
  display: none;
  margin-left: 28px;
}
.nl-status.is-visible { display: block; }
.nl-status.is-success {
  background: rgba(61, 83, 69, 0.1);
  border-left-color: var(--sage);
}
.nl-form__note {
  font-size: 12px;
  line-height: 1.55;
  color: var(--ink-light);
  margin: 0;
}
.nl-form__note a { color: var(--rust); text-decoration: underline; }
.nl-form__honeypot {
  position: absolute;
  left: -9999px;
  width: 1px; height: 1px;
  overflow: hidden;
}
.nl-form .btn-ticket { align-self: flex-start; }

.nl-chapter {
  padding: 88px 0;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.25);
}
.nl-chapter--last { border-bottom: none; }
.nl-chapter__head {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 24px;
  align-items: baseline;
  margin-bottom: 48px;
  padding-bottom: 20px;
  border-bottom: 2px solid var(--ink);
}
.nl-chapter__num {
  font-family: var(--hand);
  font-size: 28px;
  color: var(--rust);
  font-weight: 600;
  line-height: 1;
}
.nl-chapter__title {
  font-family: var(--serif);
  font-size: clamp(1.9rem, 4vw, 2.8rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--ink);
  line-height: 1;
}
.nl-chapter__title em { font-style: italic; font-weight: 400; color: var(--rust); }
.nl-chapter__meta {
  font-family: 'Courier New', monospace;
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--ink-light);
  text-align: right;
  white-space: nowrap;
}

.nl-perks {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 48px;
}
.nl-perk {
  padding-top: 20px;
  border-top: 2px solid var(--ink);
  position: relative;
}
.nl-perk__num {
  font-family: var(--serif);
  font-style: italic;
  font-size: 60px;
  font-weight: 700;
  color: var(--rust);
  line-height: 0.9;
  letter-spacing: -0.05em;
  margin-bottom: 16px;
}
.nl-perk h3 {
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ink);
  line-height: 1.15;
  margin: 0 0 10px;
}
.nl-perk p {
  font-size: 14px;
  line-height: 1.7;
  color: var(--ink-soft);
  margin: 0;
}

.nl-archive {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 64px;
}
.nl-issue {
  padding: 22px 0;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.22);
  display: grid;
  grid-template-columns: 56px 1fr auto;
  gap: 20px;
  align-items: baseline;
}
.nl-issue:first-child,
.nl-issue:nth-child(2) { border-top: 1px dashed rgba(30, 20, 16, 0.22); }
.nl-issue__num {
  font-family: 'Courier New', monospace;
  font-size: 11px;
  font-weight: 700;
  color: var(--rust);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1.3;
}
.nl-issue__body h3 {
  font-family: var(--serif);
  font-size: 19px;
  font-weight: 600;
  color: var(--ink);
  letter-spacing: -0.01em;
  line-height: 1.25;
  margin: 0 0 3px;
}
.nl-issue__body p {
  font-size: 13px;
  line-height: 1.5;
  color: var(--ink-soft);
  margin: 0;
}
.nl-issue__date {
  font-family: var(--hand);
  font-size: 17px;
  color: var(--ink-light);
  white-space: nowrap;
  font-weight: 500;
}

.nl-close {
  padding: 88px 0;
  background: var(--sage);
  color: var(--paper);
  text-align: center;
}
.nl-close .hand { color: var(--ochre); display: block; margin-bottom: 16px; }
.nl-close h2 {
  font-family: var(--serif);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--paper);
  line-height: 1.1;
  max-width: 720px;
  margin: 0 auto 20px;
}
.nl-close h2 em { font-style: italic; font-weight: 400; color: var(--ochre); }
.nl-close p {
  font-size: 16px;
  line-height: 1.65;
  color: rgba(251, 243, 231, 0.82);
  max-width: 560px;
  margin: 0 auto 32px;
}

@media (max-width: 860px) {
  .nl-hero { padding: 64px 0 48px; }
  .nl-hero__inner { grid-template-columns: 1fr; gap: 40px; }
  .nl-book { transform: none; }
  .nl-chapter { padding: 64px 0; }
  .nl-chapter__head { grid-template-columns: auto 1fr; gap: 16px; }
  .nl-chapter__meta { display: none; }
  .nl-perks { grid-template-columns: 1fr; gap: 32px; }
  .nl-archive { grid-template-columns: 1fr; }
  .nl-issue:nth-child(2) { border-top: none; }
  .nl-issue:first-child { border-top: 1px dashed rgba(30, 20, 16, 0.22); }
  .nl-close { padding: 64px 0; }
}
@media (max-width: 640px) {
  .nl-book { padding: 28px 20px 24px; }
  .nl-book::before { left: 28px; }
  .nl-book__label,
  .nl-book h3,
  .nl-form { padding-left: 16px; }
  .nl-status { margin-left: 16px; }
  .nl-form .btn-ticket { align-self: stretch; justify-content: center; }
  .nl-issue { grid-template-columns: 1fr; gap: 4px; }
  .nl-issue__date { font-size: 15px; }
}

/* ====== ACCESSIBILITY PAGE ====== */
.a11y-hero {
  padding: 72px 0 56px;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.25);
}
.a11y-hero__inner {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 48px;
  align-items: end;
}
.a11y-hero__title {
  font-family: var(--serif);
  font-size: clamp(2.4rem, 5.5vw, 4.6rem);
  line-height: 0.94;
  font-weight: 900;
  letter-spacing: -0.04em;
  color: var(--ink);
  margin: 8px 0 24px;
  font-variation-settings: "opsz" 144, "SOFT" 30;
  max-width: 820px;
}
.a11y-hero__title em {
  font-style: italic;
  font-weight: 400;
  color: var(--rust);
  font-variation-settings: "opsz" 144, "SOFT" 100;
}
.a11y-hero__lede {
  font-size: 17px;
  line-height: 1.75;
  color: var(--ink-soft);
  max-width: 700px;
  margin: 0;
}
.a11y-badge {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: 120px;
  height: 120px;
  border: 2px solid var(--rust);
  border-radius: 50%;
  text-align: center;
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--rust);
  line-height: 1.35;
  padding: 12px;
  transform: rotate(-6deg);
  position: relative;
  flex-shrink: 0;
}
.a11y-badge::before {
  content: "";
  position: absolute;
  inset: 5px;
  border: 1px dashed var(--rust);
  border-radius: 50%;
  opacity: 0.55;
}
.a11y-badge strong {
  font-family: var(--serif);
  font-style: italic;
  font-size: 26px;
  font-weight: 700;
  letter-spacing: -0.02em;
  text-transform: none;
  line-height: 1;
  margin: 6px 0;
  color: var(--rust-deep);
}

.a11y-chapter {
  padding: 72px 0;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.22);
}
.a11y-chapter--last { border-bottom: none; }
.a11y-chapter__head {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 24px;
  align-items: baseline;
  margin-bottom: 32px;
  padding-bottom: 16px;
  border-bottom: 2px solid var(--ink);
}
.a11y-chapter__num {
  font-family: var(--hand);
  font-size: 26px;
  color: var(--rust);
  font-weight: 600;
  line-height: 1;
}
.a11y-chapter__title {
  font-family: var(--serif);
  font-size: clamp(1.7rem, 3vw, 2.2rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ink);
  line-height: 1.05;
}
.a11y-chapter__title em { font-style: italic; font-weight: 400; color: var(--rust); }

.a11y-body {
  max-width: 820px;
  font-size: 15.5px;
  line-height: 1.75;
  color: var(--ink-soft);
}
.a11y-body p { margin: 0 0 16px; }
.a11y-body p:last-child { margin-bottom: 0; }
.a11y-body a { color: var(--rust); text-decoration: underline; font-weight: 500; }

.a11y-features {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 64px;
}
.a11y-feature {
  padding: 20px 0;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.2);
  display: grid;
  grid-template-columns: 40px 1fr;
  gap: 16px;
  align-items: start;
}
.a11y-feature:nth-child(-n+2) { border-top: 1px dashed rgba(30, 20, 16, 0.2); }
.a11y-feature__mark {
  font-family: var(--hand);
  font-size: 24px;
  font-weight: 600;
  color: var(--rust);
  text-align: center;
  line-height: 1;
  padding-top: 2px;
}
.a11y-feature h3 {
  font-family: var(--serif);
  font-size: 17px;
  font-weight: 600;
  color: var(--ink);
  letter-spacing: -0.01em;
  line-height: 1.3;
  margin: 0 0 4px;
}
.a11y-feature p {
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--ink-soft);
  margin: 0;
}

.a11y-feedback {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: start;
}
.a11y-feedback__copy .hand { display: block; margin-bottom: 12px; }
.a11y-feedback__copy h3 {
  font-family: var(--serif);
  font-size: clamp(1.7rem, 3vw, 2.2rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--ink);
  line-height: 1.05;
  margin: 0 0 16px;
}
.a11y-feedback__copy h3 em { font-style: italic; font-weight: 400; color: var(--rust); }
.a11y-feedback__copy p {
  font-size: 15px;
  line-height: 1.75;
  color: var(--ink-soft);
  margin-bottom: 16px;
}
.a11y-feedback__copy ul {
  margin-top: 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.a11y-feedback__copy li {
  font-size: 14px;
  line-height: 1.5;
  color: var(--ink-soft);
  padding-left: 20px;
  position: relative;
}
.a11y-feedback__copy li::before {
  content: "→";
  position: absolute;
  left: 0;
  color: var(--rust);
  font-weight: 700;
}

.a11y-form-wrap {
  background: var(--paper-soft);
  border: 1px solid var(--ink);
  padding: 32px 28px 28px;
  box-shadow: 6px 6px 0 var(--ink);
  transform: rotate(0.3deg);
}
.a11y-form { display: flex; flex-direction: column; gap: 16px; }
.a11y-form .field { display: flex; flex-direction: column; gap: 4px; }
.a11y-form .field label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--ink);
}
.a11y-form .field label span { color: var(--rust); }
.a11y-form .field input,
.a11y-form .field textarea {
  width: 100%;
  font-family: var(--serif);
  font-style: italic;
  font-size: 16px;
  color: var(--ink);
  background: transparent;
  border: none;
  border-bottom: 1.5px solid var(--ink);
  padding: 8px 0 10px;
  outline: none;
  border-radius: 0;
  transition: border-color .2s ease;
}
.a11y-form .field input::placeholder { color: var(--ink-light); font-style: italic; }
.a11y-form .field input:focus,
.a11y-form .field textarea:focus { border-bottom-color: var(--rust); }
.a11y-form .field textarea {
  font-family: var(--sans);
  font-style: normal;
  font-size: 14px;
  min-height: 100px;
  resize: vertical;
}
.a11y-form .field__error {
  font-family: var(--hand);
  font-size: 16px;
  color: var(--rust);
  margin: 2px 0 0;
  display: none;
}
.a11y-form .field.has-error input,
.a11y-form .field.has-error textarea { border-bottom-color: var(--rust); }
.a11y-form .field.has-error .field__error { display: block; }
.a11y-form__honeypot {
  position: absolute;
  left: -9999px;
  width: 1px; height: 1px;
  overflow: hidden;
}
.a11y-status {
  padding: 14px 18px;
  background: rgba(179, 64, 31, 0.08);
  border-left: 3px solid var(--rust);
  font-size: 14px;
  line-height: 1.5;
  color: var(--ink);
  display: none;
}
.a11y-status.is-visible { display: block; }
.a11y-status.is-success {
  background: rgba(61, 83, 69, 0.1);
  border-left-color: var(--sage);
}
.a11y-form__note {
  font-size: 12px;
  line-height: 1.55;
  color: var(--ink-light);
  margin: 0;
}
.a11y-form__actions { display: flex; flex-direction: column; gap: 10px; margin-top: 4px; }
.a11y-form__actions .btn-ticket { align-self: flex-start; }

@media (max-width: 860px) {
  .a11y-hero__inner { grid-template-columns: 1fr; gap: 24px; }
  .a11y-badge { display: none; }
  .a11y-chapter { padding: 56px 0; }
  .a11y-features { grid-template-columns: 1fr; }
  .a11y-feature:nth-child(2) { border-top: none; }
  .a11y-feature:first-child { border-top: 1px dashed rgba(30, 20, 16, 0.2); }
  .a11y-feedback { grid-template-columns: 1fr; gap: 40px; }
  .a11y-form-wrap { transform: none; }
}
@media (max-width: 640px) {
  .a11y-form__actions .btn-ticket { align-self: stretch; justify-content: center; }
}

/* ====== SITEMAP PAGE ====== */
.sm-hero {
  padding: 72px 0 56px;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.25);
}
.sm-hero__title {
  font-family: var(--serif);
  font-size: clamp(2.6rem, 6vw, 5rem);
  line-height: 0.94;
  font-weight: 900;
  letter-spacing: -0.045em;
  color: var(--ink);
  margin: 8px 0 24px;
  font-variation-settings: "opsz" 144, "SOFT" 30;
}
.sm-hero__title em {
  font-style: italic;
  font-weight: 400;
  color: var(--rust);
  font-variation-settings: "opsz" 144, "SOFT" 100;
}
.sm-hero__lede {
  font-size: 17px;
  line-height: 1.7;
  color: var(--ink-soft);
  max-width: 640px;
  margin: 0;
}

.sm-main { padding: 72px 0 96px; }

.sm-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0 80px;
}
.sm-section {
  padding: 32px 0;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.22);
}
.sm-section__head {
  display: flex;
  align-items: baseline;
  gap: 16px;
  padding-bottom: 16px;
  margin-bottom: 8px;
  border-bottom: 2px solid var(--ink);
}
.sm-section__num {
  font-family: 'Courier New', monospace;
  font-size: 12px;
  font-weight: 700;
  color: var(--rust);
  letter-spacing: 0.08em;
  line-height: 1;
}
.sm-section__title {
  font-family: var(--serif);
  font-size: 24px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ink);
  line-height: 1.1;
  flex: 1;
}
.sm-section__title em { font-style: italic; font-weight: 400; color: var(--rust); }
.sm-section__count {
  font-family: var(--sans);
  font-size: 10.5px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: var(--ink-light);
  white-space: nowrap;
}
.sm-links { display: flex; flex-direction: column; gap: 0; }
.sm-link {
  display: grid;
  grid-template-columns: 40px 1fr;
  gap: 16px;
  align-items: baseline;
  padding: 12px 0;
  border-bottom: 1px dotted rgba(30, 20, 16, 0.25);
  text-decoration: none;
  color: inherit;
  transition: background .15s ease, padding .15s ease;
}
.sm-link:last-child { border-bottom: none; }
.sm-link:hover {
  background: var(--paper-soft);
  padding-left: 8px;
  padding-right: 8px;
}
.sm-link__num {
  font-family: 'Courier New', monospace;
  font-size: 10.5px;
  font-weight: 700;
  color: var(--rust);
  letter-spacing: 0.06em;
  line-height: 1.4;
}
.sm-link__body h4 {
  font-family: var(--serif);
  font-size: 16px;
  font-weight: 600;
  color: var(--ink);
  letter-spacing: -0.01em;
  line-height: 1.3;
  margin: 0 0 2px;
}
.sm-link__body p {
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--ink-soft);
  margin: 0;
}

.sm-footnote {
  margin-top: 48px;
  padding-top: 24px;
  border-top: 1px dashed rgba(30, 20, 16, 0.25);
  font-family: var(--sans);
  font-size: 13px;
  line-height: 1.65;
  color: var(--ink-light);
  max-width: 720px;
}
.sm-footnote a { color: var(--rust); text-decoration: underline; }

.sm-xml {
  margin-top: 24px;
  padding: 18px 22px;
  background: var(--paper-soft);
  border: 1px dashed var(--ink);
  font-family: 'Courier New', monospace;
  font-size: 12px;
  color: var(--ink-soft);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  transition: background .15s ease;
}
.sm-xml:hover { background: var(--paper-deep); }
.sm-xml strong {
  font-family: var(--serif);
  font-style: italic;
  font-size: 14px;
  color: var(--ink);
  letter-spacing: -0.01em;
  text-transform: none;
}

@media (max-width: 860px) {
  .sm-grid { grid-template-columns: 1fr; gap: 0; }
  .sm-main { padding: 48px 0 72px; }
}
@media (max-width: 640px) {
  .sm-section__count { display: none; }
  .sm-link { grid-template-columns: 32px 1fr; gap: 12px; }
}
/* ====== LEGAL PAGES ====== */
.legal-hero {
  padding: 72px 0 56px;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.25);
  background: var(--paper);
}
.legal-hero__inner {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 48px;
  align-items: end;
}
.legal-hero__label {
  display: block;
  font-family: var(--hand);
  font-size: 22px;
  color: var(--rust);
  font-weight: 600;
  margin-bottom: 12px;
}
.legal-hero__title {
  font-family: var(--serif);
  font-size: clamp(2.4rem, 5.5vw, 4.6rem);
  line-height: 0.94;
  font-weight: 900;
  letter-spacing: -0.04em;
  color: var(--ink);
  margin: 0 0 20px;
  font-variation-settings: "opsz" 144, "SOFT" 30;
}
.legal-hero__title em {
  font-style: italic;
  font-weight: 400;
  color: var(--rust);
  font-variation-settings: "opsz" 144, "SOFT" 100;
}
.legal-hero__meta {
  display: flex;
  gap: 40px;
  flex-wrap: wrap;
  padding-top: 20px;
  border-top: 1px dashed rgba(30, 20, 16, 0.25);
  max-width: 720px;
}
.legal-hero__meta div span {
  display: block;
  font-family: 'Courier New', monospace;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.16em;
  color: var(--rust);
  margin-bottom: 4px;
}
.legal-hero__meta div strong {
  display: block;
  font-family: var(--serif);
  font-style: italic;
  font-size: 15px;
  font-weight: 600;
  color: var(--ink);
  letter-spacing: -0.01em;
  line-height: 1.3;
}
.legal-seal {
  width: 130px;
  height: 130px;
  border: 2px solid var(--rust);
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-family: var(--sans);
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  line-height: 1.35;
  padding: 16px;
  transform: rotate(-8deg);
  position: relative;
  flex-shrink: 0;
  color: var(--rust);
}
.legal-seal::before {
  content: "";
  position: absolute;
  inset: 6px;
  border: 1px dashed var(--rust);
  border-radius: 50%;
  opacity: 0.5;
}
.legal-seal strong {
  font-family: var(--serif);
  font-style: italic;
  font-size: 26px;
  font-weight: 700;
  letter-spacing: -0.03em;
  text-transform: none;
  color: var(--rust-deep);
  margin: 4px 0;
  line-height: 1;
}

.legal-main {
  padding: 72px 0 96px;
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 72px;
  align-items: start;
}
.legal-toc {
  position: sticky;
  top: 100px;
  background: var(--paper-soft);
  border: 1px solid var(--ink);
  padding: 24px 20px;
  box-shadow: 4px 4px 0 var(--ink);
}
.legal-toc__label {
  display: block;
  font-family: var(--hand);
  font-size: 20px;
  color: var(--rust);
  font-weight: 600;
  margin: 0 0 4px;
}
.legal-toc h2 {
  font-family: var(--serif);
  font-size: 17px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ink);
  padding-bottom: 12px;
  margin-bottom: 10px;
  border-bottom: 1px solid var(--ink);
}
.legal-toc ul {
  display: flex;
  flex-direction: column;
  gap: 2px;
  list-style: none;
  padding: 0;
  margin: 0;
}
.legal-toc a {
  display: grid;
  grid-template-columns: 26px 1fr;
  gap: 8px;
  align-items: baseline;
  padding: 8px 8px;
  text-decoration: none;
  color: var(--ink);
  font-family: var(--sans);
  font-size: 12.5px;
  font-weight: 500;
  border-left: 2px solid transparent;
  line-height: 1.3;
  transition: background .15s ease, border-color .15s ease;
}
.legal-toc a:hover {
  background: var(--paper);
  border-left-color: var(--rust);
}
.legal-toc a span:first-child {
  font-family: 'Courier New', monospace;
  font-size: 10px;
  font-weight: 700;
  color: var(--rust);
  letter-spacing: 0.06em;
}
.legal-toc__updated {
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px dashed rgba(30, 20, 16, 0.25);
  font-family: 'Courier New', monospace;
  font-size: 10px;
  line-height: 1.6;
  color: var(--ink-light);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.legal-toc__updated strong {
  display: block;
  font-family: var(--serif);
  font-style: italic;
  font-size: 14px;
  color: var(--ink);
  text-transform: none;
  letter-spacing: -0.01em;
  margin-top: 2px;
}

.legal-doc {
  font-size: 15.5px;
  line-height: 1.75;
  color: var(--ink-soft);
  max-width: 780px;
}
.legal-preamble {
  font-family: var(--serif);
  font-size: 16.5px;
  line-height: 1.75;
  color: var(--ink);
  padding: 24px 28px;
  background: var(--paper-soft);
  border-left: 3px solid var(--rust);
  margin-bottom: 48px;
}
.legal-preamble p { margin: 0 0 12px; }
.legal-preamble p:last-child { margin-bottom: 0; }
.legal-preamble strong {
  font-weight: 600;
  color: var(--rust-deep);
}

.legal-section {
  padding: 32px 0;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.22);
  scroll-margin-top: 100px;
}
.legal-section:last-child { border-bottom: none; }
.legal-section__head {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 20px;
  align-items: baseline;
  margin-bottom: 20px;
}
.legal-section__num {
  font-family: 'Courier New', monospace;
  font-size: 11px;
  font-weight: 700;
  color: var(--rust);
  letter-spacing: 0.08em;
  line-height: 1.4;
  padding-top: 6px;
}
.legal-section h2 {
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ink);
  line-height: 1.2;
  margin: 0;
}
.legal-section h3 {
  font-family: var(--serif);
  font-size: 17px;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--ink);
  line-height: 1.3;
  margin: 20px 0 8px;
}
.legal-section p { margin: 0 0 14px; }
.legal-section p:last-child { margin-bottom: 0; }
.legal-section a {
  color: var(--rust);
  text-decoration: underline;
  font-weight: 500;
}
.legal-section a:hover { color: var(--rust-deep); }
.legal-section ul,
.legal-section ol {
  margin: 8px 0 14px;
  padding-left: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
  list-style: none;
}
.legal-section ul li {
  padding-left: 20px;
  position: relative;
  line-height: 1.65;
}
.legal-section ul li::before {
  content: "—";
  position: absolute;
  left: 0;
  color: var(--rust);
  font-weight: 700;
}
.legal-section ol {
  counter-reset: legal-list;
}
.legal-section ol li {
  counter-increment: legal-list;
  padding-left: 28px;
  position: relative;
  line-height: 1.65;
}
.legal-section ol li::before {
  content: counter(legal-list) ".";
  position: absolute;
  left: 0;
  color: var(--rust);
  font-weight: 700;
  font-family: 'Courier New', monospace;
  font-size: 13px;
  top: 1px;
}
.legal-section table {
  width: 100%;
  border-collapse: collapse;
  margin: 12px 0 20px;
  font-size: 13.5px;
}
.legal-section th,
.legal-section td {
  text-align: left;
  padding: 10px 12px;
  border-bottom: 1px dashed rgba(30, 20, 16, 0.22);
  vertical-align: top;
  line-height: 1.55;
}
.legal-section th {
  font-family: var(--sans);
  font-size: 10.5px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--rust);
  border-bottom: 1px solid var(--ink);
  background: var(--paper-soft);
}
.legal-section td:first-child {
  font-family: 'Courier New', monospace;
  font-size: 11.5px;
  color: var(--ink-soft);
  font-weight: 600;
  white-space: nowrap;
}

.legal-foot {
  margin-top: 56px;
  padding: 32px 28px;
  background: var(--paper-soft);
  border: 1px solid var(--ink);
  box-shadow: 4px 4px 0 var(--ink);
}
.legal-foot__label {
  display: block;
  font-family: var(--hand);
  font-size: 22px;
  color: var(--rust);
  font-weight: 600;
  margin-bottom: 8px;
}
.legal-foot h3 {
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--ink);
  margin: 0 0 12px;
}
.legal-foot p {
  font-size: 14px;
  line-height: 1.65;
  color: var(--ink-soft);
  margin: 0 0 8px;
}
.legal-foot p:last-child { margin-bottom: 0; }
.legal-foot a {
  color: var(--rust);
  text-decoration: underline;
  font-weight: 500;
}
.legal-signature {
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px dashed rgba(30, 20, 16, 0.25);
  display: flex;
  justify-content: space-between;
  gap: 32px;
  align-items: baseline;
  flex-wrap: wrap;
  font-size: 12px;
  color: var(--ink-light);
  text-transform: uppercase;
  letter-spacing: 0.14em;
  font-weight: 600;
}
.legal-signature .hand {
  font-size: 26px;
  color: var(--rust);
  text-transform: none;
  letter-spacing: 0;
  font-weight: 600;
  margin: 0;
}

.legal-nav {
  margin-top: 72px;
  padding-top: 32px;
  border-top: 1px dashed rgba(30, 20, 16, 0.25);
}
.legal-nav__label {
  font-family: var(--hand);
  font-size: 20px;
  color: var(--rust);
  margin: 0 0 16px;
  display: block;
  font-weight: 600;
}
.legal-nav__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.legal-nav a {
  display: block;
  padding: 20px 22px;
  background: var(--paper-soft);
  border: 1px solid var(--ink);
  text-decoration: none;
  color: inherit;
  transition: background .15s ease, transform .15s ease, box-shadow .15s ease;
}
.legal-nav a:hover {
  background: var(--paper);
  transform: translate(-1px, -1px);
  box-shadow: 3px 3px 0 var(--ink);
}
.legal-nav a h4 {
  font-family: var(--serif);
  font-size: 16px;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--ink);
  margin: 0 0 4px;
  line-height: 1.2;
}
.legal-nav a p {
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--ink-soft);
  margin: 0;
}
.legal-nav a.is-current {
  background: var(--rust);
  color: var(--paper);
  pointer-events: none;
  border-color: var(--rust-deep);
  box-shadow: 3px 3px 0 var(--rust-deep);
}
.legal-nav a.is-current h4 { color: var(--paper); }
.legal-nav a.is-current p { color: rgba(251, 243, 231, 0.8); }

@media (max-width: 1024px) {
  .legal-main { grid-template-columns: 220px 1fr; gap: 48px; }
}
@media (max-width: 860px) {
  .legal-hero__inner { grid-template-columns: 1fr; gap: 24px; }
  .legal-seal { display: none; }
  .legal-main { grid-template-columns: 1fr; gap: 32px; padding: 48px 0 72px; }
  .legal-toc { position: static; }
  .legal-toc ul { flex-direction: row; flex-wrap: wrap; gap: 6px; }
  .legal-toc a {
    padding: 8px 12px;
    background: var(--paper);
    border: 1px solid rgba(30, 20, 16, 0.15);
    border-left-width: 1px;
    border-radius: 2px;
    font-size: 11.5px;
  }
  .legal-toc a span:first-child { display: none; }
  .legal-toc__updated { display: none; }
  .legal-doc { font-size: 15px; }
  .legal-nav__grid { grid-template-columns: 1fr; }
  .legal-nav a.is-current { transform: none; box-shadow: 2px 2px 0 var(--rust-deep); }
  .legal-nav a:hover { transform: none; box-shadow: none; }
}
@media (max-width: 640px) {
  .legal-hero__meta { gap: 20px; }
  .legal-section__head { gap: 12px; }
  .legal-section { padding: 24px 0; }
  .legal-section h2 { font-size: 19px; }
  .legal-signature { flex-direction: column; align-items: flex-start; gap: 8px; }
  .legal-section table { font-size: 12px; }
  .legal-section th,
  .legal-section td { padding: 8px 8px; }
  .legal-section td:first-child { white-space: normal; }
}