/* ================================================================
   VenueBooker — venuebooker.co
   editorial.css — full-bleed editorial press sheet.
   Vocabulary is print: masthead, cover, standfirst, spread, plate,
   folio, ledger, signature, colophon. Hand-written, no build step.
   ================================================================ */

/* ---------- Materials ---------- */
:root{
  /* paper & ink */
  --paper:#FFFFFF;
  --paper-warm:#F7F6F2;
  --paper-tint:#EAF4F0;
  --ink:#14201C;
  --ink-soft:#4A5A54;
  --ink-faint:#7C8A85;

  /* pigments */
  --forest:#0E5744;
  --forest-mid:#137257;
  --forest-lit:#1C8A6B;
  --brass:#E8B04B;
  --brass-deep:#9A6B14;
  --brass-figure:#B07E1F;

  /* night stock (dark bands & colophon) */
  --night:#0F1A16;
  --night-ink:#E9EFEC;
  --night-rule:rgb(255 255 255 / .12);

  /* rules & relief */
  --rule:#E4E2DC;
  --hairline:1px solid var(--rule);
  --lift:0 1px 2px rgb(20 32 28 / .05), 0 8px 24px -8px rgb(20 32 28 / .10);
  --radius-action:10px;
  --radius-stamp:999px;

  /* type scale */
  --type-cover:clamp(2.75rem, 4.5vw + 1rem, 5.5rem);
  --type-headline:clamp(2rem, 2.4vw + 1.2rem, 3.5rem);
  --type-spread:clamp(1.75rem, 1.8vw + 1.1rem, 2.75rem);
  --type-sub:clamp(1.1875rem, 0.6vw + 1.05rem, 1.5rem);
  --type-standfirst:clamp(1.125rem, 0.5vw + 1rem, 1.375rem);
  --type-body:1.0625rem;
  --type-small:0.875rem;
  --type-kicker:0.75rem;

  --face-display:"Libre Caslon Text", Georgia, "Times New Roman", serif;
  --face-text:"Mulish", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  /* page geometry */
  --masthead-h:76px;
  --page:1140px;
  --page-broad:1240px;
  --page-narrow:720px;
  --page-editorial:1280px;
  --measure:65ch;
  --measure-copy:46ch;
  --gutter:clamp(1.25rem, 4vw, 2.5rem);
  --signature-pad:clamp(5.5rem, 10vw, 10rem);
}

/* ---------- Reset ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none !important;transition:none !important}
}
body{
  font-family:var(--face-text);
  font-size:var(--type-body);
  line-height:1.65;
  color:var(--ink-soft);
  background:var(--paper);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
img,svg{display:block;max-width:100%}
ul[class],ol[class]{list-style:none}
::selection{background:var(--paper-tint);color:var(--ink)}
[id]{scroll-margin-top:calc(var(--masthead-h) + 16px)}

/* ---------- Type ---------- */
h1,h2,h3,h4{color:var(--ink);font-weight:600}
.cover__headline,.opener__headline{
  font-family:var(--face-display);
  font-weight:400;
  font-size:var(--type-cover);
  line-height:1.06;
  letter-spacing:-0.012em;
}
h2,.headline{
  font-family:var(--face-display);
  font-weight:400;
  font-size:var(--type-headline);
  line-height:1.12;
  letter-spacing:-0.008em;
}
h3{font-family:var(--face-text);font-weight:600;font-size:var(--type-sub);letter-spacing:-0.003em;line-height:1.32}
.standfirst{font-size:var(--type-standfirst);line-height:1.6;color:var(--ink-soft);max-width:48ch}
.kicker{
  display:block;
  font-family:var(--face-text);
  font-size:var(--type-kicker);
  font-weight:600;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--forest-mid);
  margin-bottom:1rem;
}
.kicker--light{color:rgb(255 255 255 / .92)}
.kicker--night{color:var(--brass)}
p{max-width:var(--measure)}
a{color:var(--forest-mid);text-decoration:none;transition:color 200ms ease-out}
a:hover{color:var(--forest);text-decoration:underline;text-underline-offset:3px}
strong{color:var(--ink);font-weight:600}
em.in-brass{font-style:italic;color:var(--brass)}
.footnote{margin-top:1rem;font-size:0.8125rem;color:var(--ink-faint)}
.jump{
  display:inline-block;margin-top:0.875rem;
  font-size:0.875rem;font-weight:500;
  text-decoration:underline;text-underline-offset:5px;
}

a:focus-visible,button:focus-visible,summary:focus-visible{
  outline:2px solid var(--forest-lit);
  outline-offset:3px;
  border-radius:3px;
}

/* ---------- Off-page (screen-reader only) ---------- */
.off-page{
  position:absolute;width:1px;height:1px;
  padding:0;margin:-1px;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0;
}

/* ---------- Skip to text ---------- */
.skip-to-text{
  position:absolute;left:-9999px;top:0;z-index:200;
  background:var(--forest);color:#fff;
  padding:10px 18px;border-radius:0 0 10px 0;font-weight:600;
}
.skip-to-text:focus{left:0;text-decoration:none;color:#fff}

/* ---------- Columns & signatures ---------- */
.column{max-width:var(--page);margin-inline:auto;padding-inline:var(--gutter)}
.column--broad{max-width:var(--page-broad);margin-inline:auto;padding-inline:var(--gutter)}
.column--narrow{max-width:var(--page-narrow);margin-inline:auto;padding-inline:var(--gutter)}
.signature{padding-block:var(--signature-pad)}
.signature--tight{padding-block:clamp(3.5rem, 6vw, 6rem)}
.signature--warm{background:var(--paper-warm)}
.signature--tint{background:var(--paper-tint)}
.signature--night{background:var(--night);color:var(--night-ink)}
.signature--night h2,.signature--night h3{color:var(--night-ink)}
.signature--night p{color:rgb(233 239 236 / .78)}
.rule-break{
  border:0;border-top:var(--hairline);
  max-width:var(--page);margin-inline:auto;
  width:calc(100% - 2 * var(--gutter));
}
.deck{margin-bottom:clamp(2.25rem, 4vw, 3.5rem)}
.deck .standfirst{margin-top:1.125rem}
.deck--centred{text-align:center}
.deck--centred h2{margin-inline:auto;max-width:20ch}
.deck--centred .standfirst{margin-inline:auto}

/* ---------- Masthead (overlay bar) ---------- */
.masthead{
  position:fixed;top:0;left:0;right:0;z-index:90;
  height:var(--masthead-h);
  background:transparent;
  border-bottom:1px solid transparent;
  transition:background 220ms ease-out, border-color 220ms ease-out, backdrop-filter 220ms ease-out;
}
.masthead.is-inked{
  background:rgb(255 255 255 / .90);
  -webkit-backdrop-filter:blur(12px);
  backdrop-filter:blur(12px);
  border-bottom-color:var(--rule);
}
.masthead__inner{
  max-width:var(--page-editorial);
  margin-inline:auto;
  padding-inline:var(--gutter);
  height:100%;
  display:flex;align-items:center;gap:clamp(1rem, 3vw, 2.5rem);
}
.imprint{display:inline-flex;align-items:center;gap:10px;text-decoration:none;flex:none}
.imprint:hover{text-decoration:none}
.imprint__device{width:28px;height:28px;flex:none}
.imprint__name{
  font-family:var(--face-text);
  font-weight:700;font-size:1.1875rem;letter-spacing:-0.008em;
  color:var(--ink);line-height:1;
}
.imprint__device .device-frame{stroke:var(--forest)}
.imprint__device .device-corner{fill:var(--brass)}

.contents{flex:1 1 auto;display:flex;align-items:center;gap:1.5rem}
.contents__list{margin-inline:auto;display:flex;align-items:center;gap:clamp(1.5rem, 3vw, 2.75rem)}
.contents__link{
  font-family:var(--face-text);
  font-size:var(--type-kicker);
  font-weight:600;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--ink);
}
.contents__link:hover{color:var(--forest);text-decoration:underline;text-underline-offset:5px}
.contents__link[aria-current="page"]{color:var(--forest);text-decoration:underline;text-underline-offset:5px}
.contents__tail{display:flex;align-items:center;gap:1.125rem;flex:none}
.contents__aside{
  font-size:var(--type-kicker);font-weight:600;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--ink-faint);cursor:not-allowed;
}
.contents__cta{min-height:40px;padding:10px 18px;font-size:0.875rem}
.contents__toggle{
  display:none;margin-left:auto;
  background:none;border:1px solid var(--rule);border-radius:8px;
  width:44px;height:44px;
  align-items:center;justify-content:center;
  cursor:pointer;color:var(--ink);
}
.contents__toggle svg{width:22px;height:22px}
.contents__glyph-shut{display:none}

/* Over the cover photograph: white ink, no bar */
.masthead--over:not(.is-inked) .imprint__name{color:#fff}
.masthead--over:not(.is-inked) .imprint__device .device-frame{stroke:#fff}
.masthead--over:not(.is-inked) .imprint__device .device-corner{fill:var(--brass)}
.masthead--over:not(.is-inked) .contents__link{color:rgb(255 255 255 / .88)}
.masthead--over:not(.is-inked) .contents__link:hover,
.masthead--over:not(.is-inked) .contents__link[aria-current="page"]{color:#fff}
.masthead--over:not(.is-inked) .contents__aside{color:rgb(255 255 255 / .55)}
.masthead--over:not(.is-inked) .contents__toggle{border-color:rgb(255 255 255 / .45);color:#fff}
.masthead--over:not(.is-inked) .contents__cta{
  background:transparent;border-color:rgb(255 255 255 / .45);color:#fff;
}
.masthead--over:not(.is-inked) .contents__cta:hover{background:#fff;color:var(--ink);border-color:#fff}

/* ---------- Actions ---------- */
.action{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:46px;padding:13px 24px;
  border-radius:var(--radius-action);
  font-family:var(--face-text);font-weight:600;font-size:0.9375rem;line-height:1.2;
  text-align:center;text-decoration:none;cursor:pointer;border:1px solid transparent;
  transition:background 200ms ease-out, color 200ms ease-out, border-color 200ms ease-out,
    transform 200ms ease-out, box-shadow 200ms ease-out;
}
.action:hover{text-decoration:none}
.action--ink{background:var(--forest);color:#fff}
.action--ink:hover{background:var(--forest-mid);color:#fff;transform:translateY(-1px);box-shadow:var(--lift)}
.action--ink:active{transform:translateY(0);box-shadow:none}
.action--outline{background:transparent;border-color:var(--rule);color:var(--ink)}
.action--outline:hover{border-color:var(--forest-mid);color:var(--forest)}
.action--paper{background:#fff;color:var(--ink)}
.action--paper:hover{background:var(--paper-tint);color:var(--ink);transform:translateY(-1px)}
.action--edge{background:transparent;border-color:rgb(255 255 255 / .45);color:#fff}
.action--edge:hover{background:rgb(255 255 255 / .12);color:#fff;border-color:#fff}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:2rem}
.actions--centred{justify-content:center}

/* ---------- Stamp ---------- */
.stamp{
  display:inline-flex;align-items:center;gap:6px;
  border-radius:var(--radius-stamp);
  font-size:0.75rem;font-weight:600;line-height:1;
  padding:7px 13px;white-space:nowrap;
  background:rgb(232 176 75 / .18);color:var(--brass-deep);
}

/* ================================================================
   COVER — full-bleed photograph
   ================================================================ */
.cover{
  position:relative;
  display:grid;
  isolation:isolate;
  min-height:clamp(560px, 76vh, 860px);
  background:var(--night);
}
.cover--brief{min-height:clamp(420px, 56vh, 640px)}
.cover__frame{
  position:absolute;inset:0;z-index:-2;
  width:100%;height:100%;
  object-fit:cover;object-position:center 60%;
}
.cover__frame--low{object-position:center 72%}
.cover__frame--left{object-position:left 40%}
.cover__scrim{
  position:absolute;inset:0;z-index:-1;
  /* Two layers: a masthead-strip wash so the overlay nav clears AA on bright
     photographs, plus the bottom-weighted scrim the cover copy sits on. */
  background:
    linear-gradient(to bottom, rgb(15 26 22 / .58) 0, rgb(15 26 22 / 0) 200px),
    linear-gradient(to top,
      rgb(15 26 22 / .92) 0%,
      rgb(15 26 22 / .70) 42%,
      rgb(15 26 22 / .30) 100%);
}
.cover__copy{
  align-self:end;
  width:100%;
  max-width:var(--page-editorial);
  margin-inline:auto;
  padding:calc(var(--masthead-h) + 3rem) var(--gutter) clamp(3.5rem, 7vw, 6rem);
  color:var(--night-ink);
}
.cover__headline{color:#fff;max-width:18ch}
.cover__copy .standfirst{margin-top:1.375rem;color:rgb(233 239 236 / .94);max-width:48ch}
.cover__copy .footnote{color:rgb(233 239 236 / .88)}
.cover__copy .jump{color:rgb(255 255 255 / .85)}
.cover__copy .jump:hover{color:#fff}
.cover--brief .cover__headline{max-width:22ch}

/* ================================================================
   SPREAD — the dominant repeating component
   ================================================================ */
.spread{
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:stretch;
}
.spread--major{grid-template-columns:1.12fr 0.88fr} /* used with --flip: copy leads, wider */
.spread__plate{
  position:relative;
  margin:0;
  min-height:clamp(380px, 55vh, 640px);
  background:var(--paper-tint);
  overflow:hidden;
}
.plate{width:100%;height:100%;object-fit:cover;object-position:center}
.plate--low{object-position:center 68%}
.plate--left{object-position:left 35%}
.plate--high{object-position:center 30%}
.plate--dusk{object-position:84% center}
.spread--flip .spread__plate{order:2}
.spread__copy{
  display:flex;flex-direction:column;justify-content:center;
  padding:clamp(3rem, 7vw, 7rem) clamp(2rem, 6vw, 6rem);
}
.spread__copy > *{max-width:var(--measure-copy)}
.spread--major .spread__copy{padding-inline:clamp(2rem, 4.5vw, 4.5rem)}
.spread--major .spread__copy > *{max-width:42rem}
.spread--warm .spread__copy{background:var(--paper-warm)}
.spread--tint .spread__copy{background:var(--paper-tint)}
.folio{
  display:block;
  font-family:var(--face-display);
  font-weight:700;
  font-size:1.0625rem;
  letter-spacing:0.045em;
  color:var(--ink-faint);
  margin-bottom:0.75rem;
}
.spread__headline{
  font-family:var(--face-display);
  font-weight:400;
  font-size:var(--type-spread);
  line-height:1.12;
  letter-spacing:-0.008em;
  max-width:18ch;
}
.spread__copy > p{margin-top:1.125rem;font-size:1.0625rem;color:var(--ink-soft)}

/* ---------- Ledger (hairline definition list) ---------- */
.ledger{display:grid;margin-top:clamp(1.75rem, 3vw, 2.5rem)}
.ledger__item{
  border-top:var(--hairline);
  padding-block:1rem;
  display:grid;grid-template-columns:auto 1fr;gap:0 1rem;
}
.ledger__item:last-child{border-bottom:var(--hairline)}
.ledger__mark{
  font-family:var(--face-display);
  font-weight:700;
  font-size:0.9375rem;line-height:1.55;
  color:var(--brass-figure);
  min-width:2ch;
}
.ledger__icon{width:20px;height:20px;color:var(--forest-mid);margin-top:0.3125rem}
.ledger__term{display:block;font-weight:600;color:var(--ink);font-size:1.0625rem;line-height:1.45}
.ledger__gloss{margin-top:0.25rem;font-size:0.9375rem;color:var(--ink-soft);max-width:44ch}
.ledger--double{grid-template-columns:1fr 1fr;column-gap:2.5rem}
.ledger--double .ledger__item:nth-last-child(2){border-bottom:var(--hairline)}

/* ---------- Pull quote ---------- */
.pull-quote{
  margin:clamp(2.5rem, 5vw, 3.5rem) 0;
  padding:clamp(1.5rem, 3vw, 2rem) 0;
  border-top:2px solid var(--ink);
  border-bottom:var(--hairline);
  font-family:var(--face-display);
  font-weight:400;
  font-size:clamp(1.5rem, 1.4vw + 1.1rem, 2.125rem);
  line-height:1.28;
  letter-spacing:-0.005em;
  color:var(--ink);
  max-width:24ch;
}

/* ================================================================
   EXHIBIT — the single product-interface showcase
   ================================================================ */
.exhibit{
  max-width:820px;margin:clamp(2.5rem, 5vw, 3.5rem) auto 0;
  background:linear-gradient(180deg, #fff, var(--paper-tint));
  border:var(--hairline);
  border-radius:14px;
  padding:clamp(1.5rem, 3.4vw, 3rem);
  padding-bottom:clamp(3rem, 6vw, 5.25rem);
  position:relative;
}
.diary{
  background:var(--paper);
  border:var(--hairline);
  border-radius:12px;
  box-shadow:var(--lift);
  padding:1.25rem;
}
.diary__head{display:flex;align-items:baseline;justify-content:space-between;gap:8px;margin-bottom:1rem}
.diary__head strong{font-size:0.9375rem;color:var(--ink)}
.diary__head span{font-size:0.75rem;color:var(--ink-faint)}
.diary__days{
  display:grid;grid-template-columns:repeat(5,1fr);gap:6px;
  font-size:0.6875rem;font-weight:600;color:var(--ink-faint);
  text-align:center;margin-bottom:6px;letter-spacing:0.04em;
}
.diary__grid{display:grid;grid-template-columns:repeat(5,1fr);grid-template-rows:repeat(6,34px);gap:6px}
.diary__cell{border:1px dashed var(--rule);border-radius:6px}
.diary__slot{
  border-radius:6px;
  font-size:0.625rem;font-weight:600;line-height:1.25;
  padding:5px 7px;overflow:hidden;
  display:flex;align-items:flex-start;
}
.diary__slot--a{background:var(--forest);color:#fff;grid-column:1;grid-row:2 / span 2}
.diary__slot--b{background:var(--paper-tint);color:var(--forest);border:1px solid rgb(28 138 107 / .35);grid-column:2;grid-row:1 / span 2}
.diary__slot--c{background:var(--forest-lit);color:#fff;grid-column:3;grid-row:3 / span 3}
.diary__slot--d{background:rgb(232 176 75 / .28);color:#7A5410;border:1px solid rgb(232 176 75 / .6);grid-column:5;grid-row:2 / span 4}
.diary__slot--e{background:var(--paper-tint);color:var(--forest);border:1px solid rgb(28 138 107 / .35);grid-column:4;grid-row:5 / span 2}
.flash{
  position:absolute;right:clamp(0.75rem, 2vw, 2rem);bottom:1.25rem;
  transform:rotate(2deg);
  background:var(--paper);
  border:var(--hairline);
  border-radius:12px;
  box-shadow:0 2px 4px rgb(20 32 28 / .06), 0 16px 32px -12px rgb(20 32 28 / .18);
  padding:0.75rem 1rem;
  display:flex;align-items:center;gap:10px;
  font-size:0.8125rem;font-weight:500;color:var(--ink);
  max-width:280px;
}
.flash__icon{
  flex:none;width:28px;height:28px;border-radius:50%;
  background:var(--paper-tint);color:var(--forest-mid);
  display:flex;align-items:center;justify-content:center;
}
.flash__icon svg{width:16px;height:16px}
.flash small{display:block;font-weight:400;color:var(--ink-faint);font-size:0.75rem}

/* ================================================================
   RULE BAND — hairline figures
   ================================================================ */
.rule-band{
  display:grid;grid-template-columns:repeat(3,1fr);
  border-top:2px solid var(--ink);
  border-bottom:var(--hairline);
}
.rule-band__cell{padding:clamp(1.75rem, 3.5vw, 2.75rem) clamp(1rem, 2vw, 2rem)}
.rule-band__cell + .rule-band__cell{border-left:var(--hairline)}
.rule-band__figure{
  font-family:var(--face-display);font-weight:700;
  font-size:clamp(3.25rem, 4.6vw, 5rem);line-height:1.04;
  color:var(--ink);letter-spacing:-0.005em;
}
.rule-band__figure .in-brass{font-style:normal;color:var(--brass-figure)}
.rule-band__gloss{margin-top:0.75rem;font-size:0.9375rem;color:var(--ink-soft);max-width:26ch}
.rule-band__note{margin-top:1.5rem;font-size:var(--type-small);color:var(--ink-faint);max-width:none}

/* ---------- Dateline (roadmap) ---------- */
.dateline{margin-top:clamp(3rem, 5vw, 4.5rem);display:grid;grid-template-columns:repeat(4,1fr);gap:0}
.dateline__entry{position:relative;padding:1.25rem 1.25rem 0 0;border-top:var(--hairline)}
.dateline__entry::before{
  content:"";position:absolute;top:-4px;left:0;
  width:7px;height:7px;border-radius:50%;background:var(--forest-mid);
}
.dateline__entry--current::before{background:var(--brass)}
.dateline__when{
  font-size:0.75rem;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--forest-mid);margin-bottom:0.5rem;
}
.dateline__entry--current .dateline__when{color:var(--brass-deep)}
.dateline__entry h3{font-size:1rem;margin-bottom:0.25rem}
.dateline__entry p{font-size:0.875rem;color:var(--ink-soft)}

/* ================================================================
   Q&A
   ================================================================ */
.qanda{border-top:2px solid var(--ink)}
.qanda__item{border-bottom:var(--hairline)}
.qanda__ask{
  list-style:none;cursor:pointer;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:1.5rem 0.25rem;
  font-weight:600;font-size:1.0625rem;color:var(--ink);
  transition:color 200ms ease-out;
}
.qanda__ask::-webkit-details-marker{display:none}
.qanda__ask:hover{color:var(--forest)}
.qanda__mark{flex:none;width:18px;height:18px;color:var(--ink-faint);transition:transform 200ms ease-out}
.qanda__item[open] .qanda__mark{transform:rotate(180deg)}
.qanda__answer{padding:0 0.25rem 1.625rem;color:var(--ink-soft);max-width:var(--measure)}
.qanda__answer p + p{margin-top:0.75rem}

/* ================================================================
   ENDPIECE — closing full-bleed photograph
   ================================================================ */
.endpiece{
  position:relative;
  display:grid;place-items:center;
  isolation:isolate;
  min-height:clamp(420px, 52vh, 600px);
  background:var(--night);
  text-align:center;
}
.endpiece__frame{
  position:absolute;inset:0;z-index:-2;
  width:100%;height:100%;object-fit:cover;object-position:center 55%;
}
.endpiece__scrim{
  position:absolute;inset:0;z-index:-1;
  background:linear-gradient(180deg, rgb(15 26 22 / .90) 0%, rgb(15 26 22 / .84) 50%, rgb(15 26 22 / .94) 100%);
}
.endpiece__copy{
  max-width:var(--page-narrow);margin-inline:auto;
  padding:clamp(4rem, 8vw, 6rem) var(--gutter);
  color:var(--night-ink);
}
.endpiece__copy h2{color:#fff;margin-inline:auto;max-width:18ch}
.endpiece__copy .standfirst{margin:1.25rem auto 0;color:rgb(233 239 236 / .92)}
.endpiece__copy .footnote{color:rgb(233 239 236 / .80);margin-inline:auto}

/* ================================================================
   TARIFF SHEET (pricing)
   ================================================================ */
.tariff-sheet{border-top:2px solid var(--ink)}
.tariff{
  display:grid;
  grid-template-columns:minmax(0,20ch) minmax(0,1fr) minmax(0,15rem);
  gap:clamp(1.5rem, 4vw, 3rem);
  padding-block:clamp(2.25rem, 4vw, 3.25rem);
  border-bottom:var(--hairline);
  align-items:start;
}
.tariff--featured{background:linear-gradient(90deg, var(--paper-tint), transparent 70%)}
.tariff__name{font-family:var(--face-display);font-weight:700;font-size:1.6875rem;line-height:1.14;letter-spacing:-0.005em;color:var(--ink)}
.tariff__flag{
  display:inline-block;margin-top:0.625rem;
  font-size:0.6875rem;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;
  color:var(--brass-deep);
}
.tariff__for{margin-top:0.5rem;font-size:0.9375rem;color:var(--ink-soft);max-width:26ch}
.tariff__lines{display:grid;grid-template-columns:1fr 1fr;column-gap:2rem;row-gap:0.625rem;font-size:0.9375rem}
.tariff__lines li{display:flex;gap:10px;align-items:flex-start}
.tick{flex:none;width:16px;height:16px;margin-top:5px;color:var(--forest-mid)}
.tariff__price{display:flex;flex-direction:column;align-items:flex-start;gap:0.875rem}
.tariff__figure{
  font-family:var(--face-display);font-weight:700;
  font-size:2.375rem;line-height:1.05;color:var(--ink);
}
.tariff__note{margin-top:2rem;font-size:var(--type-small);color:var(--ink-faint);max-width:none}

/* ================================================================
   TABULATION (comparison table)
   ================================================================ */
.table-plate{overflow-x:auto;border-top:2px solid var(--ink)}
table.tabulation{width:100%;border-collapse:collapse;font-size:0.9375rem;min-width:600px}
table.tabulation th,table.tabulation td{
  padding:16px 18px 16px 0;text-align:left;border-bottom:var(--hairline);vertical-align:top;
}
table.tabulation thead th{
  font-weight:600;color:var(--ink);font-size:var(--type-kicker);
  letter-spacing:0.12em;text-transform:uppercase;
}
table.tabulation tbody th{font-weight:600;color:var(--ink)}
table.tabulation .yes{color:var(--forest);font-weight:600}
table.tabulation .muted{color:var(--ink-faint)}

/* ================================================================
   DISPATCH (contact block)
   ================================================================ */
.dispatch{
  border-top:2px solid var(--ink);border-bottom:var(--hairline);
  padding-block:clamp(1.75rem, 3vw, 2.5rem);
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.5rem;
}
.dispatch h3{margin-bottom:0.375rem}
.dispatch p{font-size:0.9375rem;max-width:46ch}

/* ================================================================
   BODY COPY (about / support / back matter)
   ================================================================ */
.bodycopy h2{margin-top:3rem;margin-bottom:1rem}
.bodycopy h2:first-child{margin-top:0}
.bodycopy h3{margin-top:2rem;margin-bottom:0.625rem}
.bodycopy p{margin-bottom:1rem}
.bodycopy ul,.bodycopy ol{margin:0 0 1rem 1.375rem}
.bodycopy li{margin-bottom:0.5rem;max-width:62ch}
.bodycopy li::marker{color:var(--forest-mid)}

/* ================================================================
   BACK MATTER (legal pages)
   ================================================================ */
.backmatter-head{
  padding-block:calc(var(--masthead-h) + clamp(2.5rem, 5vw, 4.5rem)) clamp(1.5rem, 3vw, 2.5rem);
  border-bottom:var(--hairline);
  background:var(--paper-warm);
}
.backmatter__meta{font-size:var(--type-small);color:var(--ink-faint);margin-top:1rem}
.backmatter-body{padding-block:clamp(3rem, 6vw, 5rem) clamp(4rem, 8vw, 7rem)}
.index-panel{
  border-top:2px solid var(--ink);border-bottom:var(--hairline);
  padding-block:1.5rem;margin-bottom:3rem;
}
.index-panel h2{
  font-family:var(--face-text);font-size:var(--type-kicker);font-weight:600;
  letter-spacing:0.14em;text-transform:uppercase;color:var(--forest-mid);
  margin-bottom:1rem;
}
.index-panel ol{list-style:none;columns:2;column-gap:2rem;font-size:0.9375rem}
.index-panel li{margin-bottom:0.5rem;break-inside:avoid}
.index-panel a{color:var(--ink)}
.index-panel a:hover{color:var(--forest)}
.backmatter__section{margin-bottom:2.75rem}
.backmatter__section h2{
  font-family:var(--face-text);
  font-size:1.25rem;font-weight:600;letter-spacing:-0.01em;
  margin-bottom:0.875rem;
}
.backmatter__section h3{font-size:1.0625rem;margin-top:1.5rem;margin-bottom:0.5rem}
.backmatter__section p{margin-bottom:0.875rem}
.backmatter__section ul,.backmatter__section ol{margin:0 0 1rem 1.375rem}
.backmatter__section li{margin-bottom:0.5rem;max-width:62ch}
table.backmatter-table{width:100%;border-collapse:collapse;font-size:0.875rem;min-width:520px}
table.backmatter-table th,table.backmatter-table td{
  padding:12px 14px 12px 0;text-align:left;border-bottom:var(--hairline);vertical-align:top;
}
table.backmatter-table thead th{font-weight:600;color:var(--ink)}
.sidenote{
  border-left:3px solid var(--forest-mid);
  background:var(--paper-tint);
  padding:1.125rem 1.5rem;
  margin:1.25rem 0;
  font-size:0.9375rem;
}
.sidenote strong{color:var(--forest)}

/* ================================================================
   COLOPHON (footer)
   ================================================================ */
.colophon{background:var(--night);color:var(--night-ink);padding-block:clamp(3.5rem, 6vw, 5rem) 0}
.colophon__grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr;gap:2.5rem;padding-bottom:3rem}
.colophon .imprint__name{color:#fff}
.colophon .imprint__device .device-frame{stroke:var(--night-ink)}
.colophon .imprint__device .device-corner{fill:var(--night-ink)}
.colophon__brand p{font-size:0.9375rem;color:rgb(233 239 236 / .65);margin-top:1rem;max-width:32ch}
.colophon__mail{display:inline-block;margin-top:0.875rem;font-size:0.9375rem;color:var(--forest-lit)}
.colophon__mail:hover{color:#fff}
.colophon h3{
  font-size:0.75rem;font-weight:600;letter-spacing:0.12em;text-transform:uppercase;
  color:rgb(233 239 236 / .5);margin-bottom:1rem;
}
.colophon__col ul{display:grid;gap:0.625rem;list-style:none}
.colophon__col a{font-size:0.9375rem;color:rgb(233 239 236 / .8)}
.colophon__col a:hover{color:#fff}
.colophon__base{
  border-top:1px solid var(--night-rule);
  padding-block:1.75rem 2.25rem;
  font-size:0.8125rem;color:rgb(255 255 255 / .58);
}
.colophon__base p{max-width:none;color:rgb(255 255 255 / .58)}
.colophon__base p + p{margin-top:0.375rem}
.colophon__base a{color:rgb(255 255 255 / .74)}
.colophon__base a:hover{color:#fff}

/* ---------- Settle-in (JS-gated) ---------- */
.has-settle [data-settle]{opacity:0;transform:translateY(14px);transition:opacity 600ms ease-out, transform 600ms ease-out}
.has-settle [data-settle].is-settled{opacity:1;transform:none}

/* ================================================================
   Responsive
   ================================================================ */
@media (max-width:1099px){
  .ledger--double{grid-template-columns:1fr;column-gap:0}
  .ledger--double .ledger__item:nth-last-child(2){border-bottom:0}
  .spread--major{grid-template-columns:1fr 1fr}
  .tariff{grid-template-columns:minmax(0,18ch) minmax(0,1fr);row-gap:1.5rem}
  .tariff__price{grid-column:1 / -1;flex-direction:row;align-items:center;gap:1.5rem;flex-wrap:wrap}
  .tariff__lines{grid-template-columns:1fr}
}

@media (max-width:899px){
  .spread,.spread--major{grid-template-columns:1fr}
  .spread--flip .spread__plate{order:0}
  .spread__plate{min-height:52vw}
  .spread__copy{padding:clamp(2.5rem, 8vw, 4rem) var(--gutter)}
  .spread__copy > *,.spread--major .spread__copy > *{max-width:none}
  .dateline{grid-template-columns:1fr 1fr;gap:2rem}
  .colophon__grid{grid-template-columns:1fr 1fr;gap:2rem}
  .colophon__brand{grid-column:1 / -1}
  .rule-band{grid-template-columns:1fr}
  .rule-band__cell + .rule-band__cell{border-left:0;border-top:var(--hairline)}
}

@media (max-width:767px){
  :root{--masthead-h:64px}
  .contents__toggle{display:inline-flex}
  .contents{
    position:fixed;inset:var(--masthead-h) 0 0 0;
    background:var(--paper);
    flex-direction:column;align-items:stretch;justify-content:flex-start;
    gap:0;padding:1.5rem var(--gutter) 2.5rem;
    margin:0;overflow-y:auto;
    display:none;
  }
  body.is-contents-open .contents{display:flex}
  body.is-contents-open{overflow:hidden}
  body.is-contents-open .masthead{background:var(--paper);border-bottom-color:var(--rule)}
  body.is-contents-open .masthead--over .imprint__name{color:var(--ink)}
  body.is-contents-open .masthead--over .imprint__device .device-frame{stroke:var(--forest)}
  body.is-contents-open .masthead--over .contents__toggle{border-color:var(--rule);color:var(--ink)}
  body.is-contents-open .contents__glyph-open{display:none}
  body.is-contents-open .contents__glyph-shut{display:block}
  .contents__list{flex-direction:column;align-items:stretch;gap:0;margin:0}
  .contents__list li{border-bottom:var(--hairline)}
  .contents__link{display:block;padding:1.125rem 0.25rem;font-size:0.875rem;color:var(--ink)}
  .masthead--over:not(.is-inked) .contents__link{color:var(--ink)}
  .contents__tail{flex-direction:column;align-items:stretch;gap:0}
  .contents__aside{display:block;padding:1.125rem 0.25rem;border-bottom:var(--hairline)}
  .masthead--over:not(.is-inked) .contents__aside{color:var(--ink-faint)}
  .contents__cta{margin-top:1.5rem;width:100%;min-height:48px;font-size:0.9375rem}
  .masthead--over:not(.is-inked) .contents__cta{background:var(--forest);color:#fff;border-color:transparent}
  .dateline{grid-template-columns:1fr;gap:1.75rem}
  .colophon__grid{grid-template-columns:1fr 1fr}
  .index-panel ol{columns:1}
  .flash{right:0.75rem}
  .tariff{grid-template-columns:1fr}
  .tariff--featured{background:var(--paper-tint)}
  .qanda__ask{font-size:1rem}
}

@media (max-width:479px){
  .colophon__grid{grid-template-columns:1fr}
  .actions .action{width:100%}
  .exhibit{padding-inline:1rem}
  .diary{padding:0.875rem}
  .diary__grid{grid-template-rows:repeat(6,30px)}
  .flash{max-width:220px;right:0.5rem}
}
