:root {
  --bna-limestone: #F4F0E8;
  --bna-iron: #1C1917;
  --bna-nickel: #3F6252;
  --bna-nickel-deep: #2C463A;
  --bna-nickel-wash: #DCE5DF;
  --bna-copper: #B45309;
  --bna-cellar: #E6DFD3;
  --bna-paper: #FBF8F2;
  --bna-ash: #57534E;
  --bna-rule: #CDC3B3;
  --bna-serif: 'Cormorant', 'Iowan Old Style', Georgia, serif;
  --bna-sans: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --bna-mono: 'Courier Prime', 'Courier New', monospace;
  --bna-wide: 1180px;
  --bna-measure: 68ch;
  --bna-gap: clamp(1.25rem, 3vw, 2.5rem);
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body.bna-body { margin: 0; background: var(--bna-limestone); color: var(--bna-iron); font: 400 1.0625rem/1.7 var(--bna-sans); }
img, svg { max-width: 100%; }
a { color: var(--bna-nickel); text-decoration-thickness: 1px; text-underline-offset: 0.18em; }
a:hover { color: var(--bna-copper); }
a:focus-visible, input:focus-visible, .bna-button:focus-visible { outline: 2px solid var(--bna-copper); outline-offset: 3px; }
h1, h2, h3 { font-family: var(--bna-serif); font-weight: 700; line-height: 1.12; letter-spacing: -0.005em; color: var(--bna-iron); }
.bna-mono { font-family: var(--bna-mono); font-size: 0.92em; letter-spacing: 0; }
.bna-skip { position: absolute; left: -999px; top: 0.5rem; background: var(--bna-iron); color: var(--bna-limestone); padding: 0.5rem 1rem; z-index: 10; }
.bna-skip:focus { left: 0.5rem; }

/* Crest */
.bna-crest { border-bottom: 1px solid var(--bna-rule); background: var(--bna-limestone); }
.bna-crest-band { display: flex; justify-content: center; gap: 1.5rem; flex-wrap: wrap; padding: 0.45rem 1rem; background: var(--bna-nickel-deep); color: var(--bna-cellar); font-size: 0.78rem; letter-spacing: 0.06em; text-transform: uppercase; }
.bna-crest-band .bna-mono { text-transform: none; letter-spacing: 0.04em; color: #F2C79A; }
.bna-crest-core { max-width: var(--bna-wide); margin: 0 auto; padding: 1.4rem var(--bna-gap) 0; display: flex; flex-direction: column; align-items: center; gap: 1rem; }
.bna-crest-home { display: flex; align-items: center; gap: 0.85rem; text-decoration: none; color: var(--bna-iron); }
.bna-crest-home:hover { color: var(--bna-iron); }
.bna-crest-glyph { width: 52px; height: 52px; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.bna-glyph-crock { stroke: var(--bna-iron); stroke-width: 2.6; fill: var(--bna-cellar); }
.bna-glyph-lip, .bna-glyph-ear { stroke: var(--bna-iron); stroke-width: 2.2; }
.bna-glyph-nickel { stroke: var(--bna-nickel); stroke-width: 2.4; fill: var(--bna-limestone); }
.bna-glyph-mark { stroke: var(--bna-copper); stroke-width: 2.2; }
.bna-crest-words { display: flex; flex-direction: column; line-height: 1; }
.bna-crest-name { font-family: var(--bna-serif); font-weight: 700; font-size: clamp(1.9rem, 4vw, 2.5rem); letter-spacing: 0.01em; }
.bna-crest-sub { font-family: var(--bna-serif); font-style: italic; font-weight: 600; font-size: 1.15rem; color: var(--bna-nickel); margin-top: 0.2rem; }
.bna-folios { width: 100%; }
.bna-folio-list { list-style: none; margin: 0; padding: 0; display: flex; justify-content: center; flex-wrap: wrap; gap: 0 0.25rem; }
.bna-folio-link { display: block; padding: 0.7rem 0.9rem 0.8rem; font-size: 0.86rem; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; text-decoration: none; color: var(--bna-ash); border-bottom: 3px solid transparent; }
.bna-folio-link:hover { color: var(--bna-iron); border-bottom-color: var(--bna-cellar); }
.bna-folio-link[aria-current="page"] { color: var(--bna-iron); border-bottom-color: var(--bna-nickel); }

/* Hall */
.bna-tasting-hall { max-width: var(--bna-wide); margin: 0 auto; padding: clamp(1.5rem, 4vw, 3rem) var(--bna-gap) clamp(3rem, 6vw, 5rem); }
.bna-kicker { margin: 0 0 0.6rem; font-size: 0.78rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--bna-copper); }
.bna-lede { font-size: 1.18rem; line-height: 1.6; color: #3B3633; max-width: 60ch; }
.bna-button { display: inline-block; padding: 0.8rem 1.35rem; background: var(--bna-nickel); color: #FFFFFF; font-weight: 600; font-size: 0.95rem; text-decoration: none; border-radius: 2px; border: 1px solid var(--bna-nickel); transition: background 0.15s ease; }
.bna-button:hover { background: var(--bna-nickel-deep); color: #FFFFFF; }
.bna-button-quiet { background: transparent; color: var(--bna-nickel); }
.bna-button-quiet:hover { background: var(--bna-nickel-wash); color: var(--bna-nickel-deep); }
.bna-section-head { max-width: 62ch; margin-bottom: 1.5rem; }
.bna-section-title { font-size: clamp(1.9rem, 3.6vw, 2.6rem); margin: 0 0 0.6rem; }

/* Overture */
.bna-overture { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; padding-bottom: clamp(2.5rem, 5vw, 4rem); border-bottom: 1px solid var(--bna-rule); }
.bna-overture-title { font-size: clamp(2.6rem, 6vw, 4.4rem); margin: 0 0 1.1rem; }
.bna-overture-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 1.75rem 0 2rem; }
.bna-etching { margin: 0; padding: 1.5rem 1.5rem 1rem; background: var(--bna-paper); border: 1px solid var(--bna-rule); box-shadow: 8px 8px 0 var(--bna-cellar); }
.bna-etching-svg { display: block; width: 100%; height: auto; max-height: 440px; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.bna-etch-leaf path { stroke: var(--bna-nickel-deep); stroke-width: 1.8; fill: #E3EAE4; }
.bna-etch-rib path { stroke: var(--bna-nickel-deep); stroke-width: 1.1; }
.bna-etch-hatch path { stroke: var(--bna-nickel); stroke-width: 0.8; opacity: 0.75; }
.bna-etch-stem path { stroke: #8A2F1B; stroke-width: 1.4; }
.bna-etch-bulb { stroke: var(--bna-iron); stroke-width: 1.6; fill: var(--bna-limestone); }
.bna-etch-root path { stroke: var(--bna-ash); stroke-width: 0.9; }
.bna-etching-cap { margin-top: 0.75rem; font-family: var(--bna-serif); font-size: 1.05rem; line-height: 1.35; color: var(--bna-ash); text-align: center; }
.bna-etching-cap .bna-mono { display: block; font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--bna-copper); }

/* Specs (definition lists) */
.bna-brine-specs { margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); border-top: 1px solid var(--bna-rule); }
.bna-spec { padding: 0.7rem 0.9rem 0.7rem 0; border-bottom: 1px solid var(--bna-rule); }
.bna-spec dt { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--bna-ash); }
.bna-spec dd { margin: 0.15rem 0 0; font-size: 0.98rem; overflow-wrap: anywhere; }
.bna-hours .bna-spec:last-child { grid-column: 1 / -1; }
.bna-margin-specs, .bna-booking-specs, .bna-house-specs { grid-template-columns: 1fr; }
.bna-booking-specs, .bna-house-specs { margin: 1.5rem 0; }
.bna-booking-specs .bna-spec, .bna-house-specs .bna-spec { display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; padding-right: 0; }
.bna-booking-specs dd, .bna-house-specs dd { text-align: right; }

/* Calculator */
.bna-calc { margin: clamp(2.5rem, 6vw, 4.5rem) 0; padding: clamp(1.5rem, 4vw, 3rem); background: var(--bna-cellar); border-radius: 3px; position: relative; }
.bna-calc::before { content: ''; position: absolute; inset: 10px; border: 1px solid rgba(28, 25, 23, 0.14); pointer-events: none; }
.bna-calc-intro { max-width: 64ch; margin-bottom: 2rem; position: relative; }
.bna-calc-title { font-size: clamp(1.9rem, 3.6vw, 2.7rem); margin: 0 0 0.75rem; }
.bna-calc-bench { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(1.5rem, 3vw, 2.5rem); align-items: start; position: relative; }
.bna-calc-form { display: grid; gap: 1.5rem; }
.bna-calc-set { margin: 0; padding: 0; border: 0; min-width: 0; display: grid; gap: 0.5rem; }
.bna-calc-legend { display: flex; justify-content: space-between; align-items: baseline; width: 100%; padding: 0; margin-bottom: 0.25rem; font-weight: 600; font-size: 0.95rem; }
.bna-choice, .bna-toggle { display: block; cursor: pointer; }
.bna-choice-input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.bna-choice-card, .bna-toggle-face { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: 0.75rem 1rem; background: var(--bna-paper); border: 1px solid var(--bna-rule); border-radius: 2px; transition: border-color 0.15s ease, background 0.15s ease; }
.bna-toggle-face { display: block; font-size: 0.92rem; color: var(--bna-ash); }
.bna-toggle-face strong { display: block; color: var(--bna-iron); font-size: 1rem; }
.bna-choice-name { font-weight: 500; }
.bna-choice-meta { color: var(--bna-ash); font-size: 0.8rem; white-space: nowrap; }
.bna-choice-input:checked + .bna-choice-card, .bna-choice-input:checked + .bna-toggle-face { border-color: var(--bna-nickel); background: var(--bna-nickel-wash); box-shadow: inset 4px 0 0 var(--bna-nickel); }
.bna-choice-input:focus-visible + .bna-choice-card, .bna-choice-input:focus-visible + .bna-toggle-face { outline: 2px solid var(--bna-copper); outline-offset: 2px; }
.bna-weigh { display: flex; align-items: stretch; max-width: 16rem; }
.bna-input { width: 100%; padding: 0.65rem 0.8rem; font-size: 1.15rem; color: var(--bna-iron); background: var(--bna-paper); border: 1px solid var(--bna-rule); border-right: 0; border-radius: 2px 0 0 2px; }
.bna-input[aria-invalid="true"] { border-color: #B91C1C; }
.bna-weigh-unit { display: flex; align-items: center; padding: 0 0.9rem; background: var(--bna-iron); color: var(--bna-limestone); border-radius: 0 2px 2px 0; }
.bna-calc-pair { grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.bna-readout { color: var(--bna-copper); font-weight: 700; }
.bna-range { width: 100%; accent-color: var(--bna-nickel); }
.bna-hint { margin: 0; font-size: 0.82rem; color: var(--bna-ash); }
.bna-calc-card { background: var(--bna-iron); color: var(--bna-limestone); padding: clamp(1.25rem, 3vw, 2rem); border-radius: 2px; }
.bna-calc-batch { margin: 0 0 1rem; font-size: 0.78rem; letter-spacing: 0.1em; text-transform: uppercase; color: #A8A29E; }
.bna-calc-batch .bna-mono { color: #F2C79A; letter-spacing: 0.04em; font-size: 0.95rem; margin-left: 0.4rem; }
.bna-calc-specs { grid-template-columns: 1fr 1fr; border-top-color: #44403C; }
.bna-calc-specs .bna-spec { border-bottom-color: #44403C; }
.bna-calc-specs dt { color: #A8A29E; }
.bna-calc-specs dd { color: var(--bna-limestone); }
.bna-spec-lead { grid-column: 1 / -1; }
.bna-spec-lead dd { font-size: 2.4rem; font-weight: 700; color: #F2C79A; line-height: 1.15; }
.bna-calc-note { margin: 1.1rem 0 0; font-size: 0.92rem; color: #D6D3D1; }
.bna-calc-warn { margin: 0.9rem 0 0; padding: 0.6rem 0.8rem; border-left: 3px solid var(--bna-copper); background: rgba(180, 83, 9, 0.18); font-size: 0.9rem; }
.bna-calc-fine { margin: 1rem 0 0; font-size: 0.8rem; color: #A8A29E; }

/* Supper table */
.bna-menu, .bna-notes, .bna-guides { margin-top: clamp(2.5rem, 6vw, 4.5rem); }
.bna-table-wrap { overflow-x: auto; margin: 1.5rem 0; border: 1px solid var(--bna-rule); background: var(--bna-paper); }
.bna-harvest-supper { width: 100%; border-collapse: collapse; font-size: 0.95rem; }
.bna-harvest-supper caption { caption-side: top; text-align: left; padding: 0.85rem 1rem; font-family: var(--bna-serif); font-style: italic; font-weight: 600; font-size: 1.15rem; color: var(--bna-nickel-deep); border-bottom: 1px solid var(--bna-rule); }
.bna-harvest-supper th, .bna-harvest-supper td { padding: 0.75rem 1rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--bna-cellar); }
.bna-harvest-supper thead th { font-size: 0.72rem; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; color: var(--bna-ash); background: var(--bna-cellar); border-bottom: 0; }
.bna-harvest-supper tbody th { font-family: var(--bna-serif); font-weight: 700; font-size: 1.1rem; color: var(--bna-nickel); white-space: nowrap; }
.bna-harvest-supper tbody tr:last-child > * { border-bottom: 0; }
.bna-crock-log tbody th, .bna-run-sheet tbody th { font-family: var(--bna-mono); font-size: 0.88rem; font-weight: 400; color: var(--bna-iron); }
.bna-grain-table tbody th { white-space: normal; min-width: 9rem; }
.bna-menu-foot { font-size: 0.9rem; color: var(--bna-ash); max-width: 70ch; }

/* Notes and guides */
.bna-note-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.bna-note { padding: 1.4rem 1.4rem 1.2rem; background: var(--bna-paper); border-top: 3px solid var(--bna-copper); }
.bna-note-stamp { margin: 0; font-size: 0.78rem; color: var(--bna-copper); }
.bna-note-head { font-size: 1.5rem; margin: 0.4rem 0 0.6rem; }
.bna-note p:last-child { margin-bottom: 0; font-size: 0.97rem; }
.bna-guide-row { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--bna-rule); border: 1px solid var(--bna-rule); }
.bna-guide { display: flex; flex-direction: column; gap: 0.5rem; padding: 1.4rem; background: var(--bna-limestone); color: var(--bna-iron); text-decoration: none; transition: background 0.15s ease; }
.bna-guide:hover { background: var(--bna-paper); color: var(--bna-iron); }
.bna-guide-tag { font-size: 0.75rem; color: var(--bna-copper); }
.bna-guide-head { font-family: var(--bna-serif); font-weight: 700; font-size: 1.4rem; line-height: 1.15; }
.bna-guide-text { font-size: 0.92rem; color: var(--bna-ash); }

/* Folio pages */
.bna-trail { font-size: 0.85rem; color: var(--bna-ash); margin-bottom: 1.75rem; }
.bna-trail a { font-weight: 600; }
.bna-trail-sep { margin: 0 0.5rem; color: var(--bna-rule); }
.bna-folio-head { max-width: 52rem; padding-bottom: 1.75rem; margin-bottom: 2.25rem; border-bottom: 1px solid var(--bna-rule); }
.bna-entry-no { margin: 0 0 0.75rem; color: var(--bna-copper); font-size: 0.85rem; }
.bna-folio-title { font-size: clamp(2.4rem, 5.5vw, 3.9rem); margin: 0 0 1rem; }
.bna-byline { margin: 1rem 0 0; font-family: var(--bna-serif); font-style: italic; font-weight: 600; font-size: 1.1rem; color: var(--bna-nickel); }
.bna-folio-body { display: grid; grid-template-columns: 15rem minmax(0, 1fr); gap: clamp(2rem, 5vw, 4rem); align-items: start; }
.bna-margin { position: sticky; top: 1.5rem; min-width: 0; }
.bna-overture-copy, .bna-prose { min-width: 0; }
.bna-folio-narrow { max-width: 48rem; }
.bna-prose { max-width: var(--bna-measure); }
.bna-prose h2 { font-size: clamp(1.7rem, 3vw, 2.2rem); margin: 2.5rem 0 0.75rem; }
.bna-prose p, .bna-prose li { color: #292524; }
.bna-steps, .bna-list, .bna-trivia { padding-left: 1.3rem; }
.bna-steps li, .bna-list li, .bna-trivia li { margin-bottom: 0.65rem; }
.bna-steps li::marker, .bna-trivia li::marker { font-family: var(--bna-mono); color: var(--bna-copper); }
.bna-list li::marker { color: var(--bna-nickel); }
.bna-answer { display: inline-block; margin-left: 0.35rem; padding: 0 0.45rem; font-family: var(--bna-mono); font-size: 0.85rem; background: var(--bna-nickel-wash); color: var(--bna-nickel-deep); border-radius: 2px; }
.bna-homeward { margin: 0 0 2rem; padding: 1.5rem 1.6rem; background: var(--bna-nickel); color: #F1F5F2; border-radius: 2px; }
.bna-homeward .bna-homeward-tag { margin: 0; font-size: 0.78rem; letter-spacing: 0.06em; color: #F2C79A; }
.bna-homeward .bna-homeward-heading { margin: 0.35rem 0 0.5rem; font-family: var(--bna-serif); font-weight: 700; font-size: 1.65rem; line-height: 1.15; color: #FFFFFF; }
.bna-homeward .bna-homeward-text { margin: 0 0 1.1rem; color: #E2EAE5; }
.bna-homeward .bna-button { background: var(--bna-limestone); color: var(--bna-nickel-deep); border-color: var(--bna-limestone); }
.bna-homeward .bna-button:hover { background: #FFFFFF; color: var(--bna-iron); }

/* Ledger */
.bna-ledger { background: var(--bna-iron); color: #D6D3D1; font-size: 0.92rem; }
.bna-ledger a { color: #E7E5E4; text-decoration: none; }
.bna-ledger a:hover { color: #F2C79A; text-decoration: underline; }
.bna-ledger-grid { max-width: var(--bna-wide); margin: 0 auto; padding: 3rem var(--bna-gap) 2rem; display: grid; grid-template-columns: 1.3fr 1fr 1.2fr 1fr; gap: 2rem; }
.bna-ledger-name { font-family: var(--bna-serif); font-weight: 700; font-size: 1.45rem; margin: 0 0 0.75rem; }
.bna-ledger-mail { color: #F2C79A; font-size: 0.85rem; }
.bna-ledger-head { margin: 0 0 0.75rem; font-size: 0.72rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: #A8A29E; }
.bna-ledger-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.5rem; }
.bna-ledger-hours { margin: 0; line-height: 1.8; }
.bna-ledger-foot { max-width: var(--bna-wide); margin: 0 auto; padding: 1.25rem var(--bna-gap) 2rem; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 0.75rem; border-top: 1px solid #44403C; color: #A8A29E; font-size: 0.82rem; }
.bna-ledger-foot p { margin: 0; }

@media (max-width: 960px) {
  .bna-overture, .bna-calc-bench, .bna-folio-body { grid-template-columns: 1fr; }
  .bna-etching { max-width: 22rem; justify-self: center; }
  .bna-margin { position: static; }
  .bna-margin-specs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bna-note-row { grid-template-columns: 1fr; }
  .bna-guide-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bna-ledger-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  body.bna-body { font-size: 1rem; }
  .bna-crest-band { gap: 0.5rem 1rem; font-size: 0.7rem; }
  .bna-folio-link { padding: 0.55rem 0.6rem; font-size: 0.78rem; }
  .bna-calc-pair, .bna-calc-specs, .bna-guide-row, .bna-ledger-grid { grid-template-columns: 1fr; }
  .bna-choice-card { flex-direction: column; gap: 0.15rem; }
  .bna-booking-specs .bna-spec, .bna-house-specs .bna-spec { flex-direction: column; gap: 0.1rem; }
  .bna-booking-specs dd, .bna-house-specs dd { text-align: left; }
}
@media print {
  .bna-crest-band, .bna-folios, .bna-calc, .bna-homeward, .bna-ledger { display: none; }
  body.bna-body { background: #FFFFFF; }
}
