:root {
  --page:#F7F3EA; --surface:#FFFDF8; --alt:#F0EADC; --ink:#1C211E; --muted:#545B56;
  --primary:#123B2C; --primary-hover:#1B4D3A; --on:#FFFDF8; --brass:#A07C3B; --brass-text:#765A26;
  --line:#E2DCCD; --line-strong:#CBC2AD; --footer:#123B2C; --footer-text:#EFEADF; --footer-muted:#C3CCC2;
  --legal:#0C2B20; --brass-btn:#C9A66B;
  --display:"EB Garamond", Georgia, serif; --sans:"Source Sans 3", system-ui, sans-serif;
}
* { box-sizing: border-box; }
html { -webkit-font-smoothing: antialiased; }
body { margin:0; background:var(--page); color:var(--ink); font-family:var(--sans); font-size:16px; line-height:1.6; }
img { max-width:100%; height:auto; }
a { color:var(--primary); }
h1,h2,h3 { font-family:var(--display); font-weight:600; line-height:1.12; letter-spacing:0; text-wrap:balance; margin:0; }
p { text-wrap:pretty; }
a:focus-visible, button:focus-visible, summary:focus-visible { outline:2px solid var(--brass); outline-offset:3px; }
.skip { position:absolute; left:-999px; }
.skip:focus { left:12px; top:12px; background:#fff; padding:8px 12px; z-index:50; }
.wrap { width:min(1080px, calc(100% - 40px)); margin:0 auto; }
.util { border-bottom:1px solid var(--line); }
.util .wrap { display:flex; justify-content:space-between; gap:16px; padding:6px 0; font-size:13px; color:var(--muted); }
.util a { color:var(--muted); text-decoration:none; }
header.mast { position:sticky; top:0; z-index:40; background:var(--surface); border-top:3px solid var(--primary); border-bottom:1px solid var(--brass); }
.bar { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 0; }
.bar nav { display:flex; align-items:center; gap:26px; }
.bar nav a, .login { color:var(--ink); text-decoration:none; font-weight:500; font-size:15px; }
.bar nav a[aria-current="page"] { color:var(--primary); box-shadow:inset 0 -2px 0 var(--brass); }
.login { font-weight:600; }
.actions { display:flex; align-items:center; gap:12px; }
.btn { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:0 18px; background:var(--primary); color:var(--on); text-decoration:none; font-weight:600; font-size:15px; border-radius:3px; }
.btn:hover { background:var(--primary-hover); }
.btn.ghost { background:transparent; color:var(--ink); border:1px solid var(--line-strong); }
.btn.ghost:hover { background:transparent; color:var(--ink); border-color:var(--primary); }
.btn.ghost.on-dark { color:var(--footer-text); border-color:rgba(239,234,223,.45); }
.btn.ghost.on-dark:hover { background:rgba(239,234,223,.08); color:var(--footer-text); border-color:var(--brass-btn); }
.btn.brass { background:var(--brass-btn); color:var(--legal); }
.menu-btn { display:none; min-width:44px; min-height:44px; border:1px solid var(--line-strong); background:var(--surface); border-radius:3px; font:inherit; font-weight:600; }
.mobile { border-top:1px solid var(--line); padding:8px 0 16px; }
.mobile a { display:flex; min-height:44px; align-items:center; color:var(--ink); text-decoration:none; font-weight:500; }
.eyebrow { font-family:var(--sans); font-size:12px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--brass-text); margin:0; }
.hero { display:grid; grid-template-columns:1.15fr .85fr; gap:56px; align-items:end; padding:64px 0 72px; }
.hero h1 { font-size:64px; max-width:12ch; margin-top:12px; }
.lede { font-size:19px; max-width:38rem; margin-top:18px; }
.muted { color:var(--muted); }
.row { display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; align-items:center; }
.specimen { background:var(--surface); border:1px solid var(--line); border-top:3px solid var(--brass); padding:28px 28px 22px; }
.specimen .when { margin:18px 0 0; font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--brass-text); }
.specimen .line { margin:4px 0 0; font-family:var(--display); font-size:26px; line-height:1.25; }
.specimen .fine { margin:22px 0 0; font-size:13px; color:var(--muted); }
.sift { list-style:none; margin-block:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.sift li { padding:28px 22px 32px; border-left:1px solid var(--line); }
.sift li:first-child { border-left:0; padding-left:0; }
.sift .letter { font-family:var(--display); font-size:42px; color:var(--primary); line-height:1; }
.sift h2 { font-size:26px; margin-top:8px; }
.sift p { margin:8px 0 0; color:var(--muted); }
.band { background:var(--primary); color:var(--footer-text); border-bottom:1px solid var(--brass); }
.band h2, .band p { color:var(--footer-text); }
.band .muted { color:var(--footer-muted); }
.section { padding:56px 0; }
h2.display { font-size:46px; max-width:16ch; }
.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:36px; }
.steps article { border-top:1px solid rgba(239,234,223,.35); padding-top:16px; }
.steps .num { font-family:var(--display); font-size:28px; color:var(--brass-btn); margin:0; }
.steps h3 { font-size:28px; margin-top:8px; }
.page-hero { padding:44px 0 0; }
.page-hero h1 { font-size:56px; max-width:16ch; margin-top:10px; }
.prose { max-width:42rem; font-size:18px; }
.prose h2 { font-size:32px; margin:1.35em 0 .35em; }
.prose h3 { font-size:22px; margin:1.15em 0 .3em; }
.prose ul { margin:.4em 0 1em; padding-left:1.2em; }
.prose li { margin:.35em 0; }
.prose h2.eyebrow { margin:0 0 18px; }
.split { display:grid; grid-template-columns:1fr 1fr; gap:48px; margin-top:12px; }
.pillar { margin-top:28px; display:grid; gap:0; }
.pillar div { display:grid; grid-template-columns:220px 1fr; gap:24px; padding:18px 0; border-top:1px solid var(--line); }
.pillar h3 { font-size:26px; }
.plans { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:32px; }
.plan { display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--line); border-top:3px solid var(--brass); padding:24px; }
.plan.pop { border-color:var(--primary); box-shadow:0 10px 28px rgba(18,59,44,.08); }
.plan .row { margin-top:auto; padding-top:28px; }
.price { font-family:var(--display); font-size:52px; margin:8px 0 0; font-variant-numeric:tabular-nums; }
.price span { font-family:var(--sans); font-size:16px; color:var(--muted); font-weight:500; }
.table-wrap { margin-top:28px; border:1px solid var(--line-strong); background:var(--surface); overflow-x:auto; box-shadow:0 18px 40px rgba(18,59,44,.07); }
table.compare { width:100%; min-width:680px; border-collapse:separate; border-spacing:0; text-align:left; font-size:15.5px; }
table.compare th, table.compare td { padding:15px 20px; border-bottom:1px solid var(--line); vertical-align:middle; }
table.compare thead th { background:var(--primary); color:var(--footer-text); font-size:11px; letter-spacing:.16em; text-transform:uppercase; font-weight:700; border-bottom:3px solid var(--brass); }
table.compare thead th:nth-child(3) { color:var(--brass-btn); }
table.compare thead th:not(:first-child), table.compare tbody td { text-align:center; }
table.compare tbody th { font-weight:600; text-align:left; color:var(--ink); background:var(--surface); width:46%; }
table.compare tbody td { color:var(--ink); background:var(--surface); }
table.compare tbody tr:nth-child(even) th, table.compare tbody tr:nth-child(even) td { background:var(--alt); }
table.compare tbody td:last-child { background:#F3F7F4; box-shadow:inset 3px 0 0 var(--primary); }
table.compare tbody tr:nth-child(even) td:last-child { background:#E7F0EA; }
table.compare tbody tr:last-child th, table.compare tbody tr:last-child td { border-bottom:0; }
table.compare td.in { color:var(--primary); font-weight:600; }
table.compare td.part { color:var(--brass-text); font-weight:600; }
table.compare td.out { color:var(--muted); font-weight:500; }
table.compare td.in::before, table.compare td.part::before, table.compare td.out::before { content:""; display:inline-block; width:7px; height:7px; margin-right:8px; border-radius:50%; transform:translateY(-1px); }
table.compare td.in::before { background:var(--primary); }
table.compare td.part::before { background:var(--brass); }
table.compare td.out::before { background:transparent; box-shadow:inset 0 0 0 1.5px var(--line-strong); }
table.compare thead th:first-child, table.compare tbody th { position:sticky; left:0; z-index:1; }
table.compare thead th:first-child { z-index:2; }
caption { text-align:left; padding:0 0 12px; font-weight:600; }
details { border-bottom:1px solid var(--line); }
details summary { cursor:pointer; min-height:52px; display:flex; align-items:center; justify-content:space-between; gap:16px; font-weight:600; list-style:none; }
details summary::-webkit-details-marker { display:none; }
details summary::after { content:"+"; color:var(--brass); font-family:var(--display); font-size:28px; font-weight:500; line-height:1; }
details[open] summary::after { content:"\2212"; }
details p { margin-top:0; }
.close { background:#0F3326; color:var(--footer-text); }
.close h2 { color:var(--footer-text); }
.close .muted { color:var(--footer-muted); }
footer.legal { background:var(--legal); color:var(--footer-muted); padding:40px 0 48px; font-size:14px; }
footer.legal a { color:var(--footer-text); }
.legal-nav { display:flex; flex-wrap:wrap; gap:8px 16px; }
.legal-nav.pages { margin-top:20px; padding-bottom:16px; border-bottom:1px solid var(--brass); }
.legal-nav.fine { margin-top:4px; }
.mark { height:32px; width:auto; background:transparent; }
footer.legal .mark { height:36px; }
.note { border-left:3px solid var(--brass); padding-left:16px; }
@media (max-width: 860px) {
  .hero, .split, .steps, .plans, .sift { grid-template-columns:1fr; }
  .sift li { border-left:0; border-top:1px solid var(--line); padding-left:0; padding-right:0; }
  .sift li:first-child { border-top:0; }
  .pillar div { grid-template-columns:1fr; gap:4px; }
  .hero { padding:36px 0 48px; }
  .hero h1, .page-hero h1 { font-size:40px; }
  h2.display { font-size:34px; }
  .bar nav, .actions { display:none; }
  .menu-btn { display:inline-flex; align-items:center; justify-content:center; }
  .util .addr { display:none; }
  .section { padding:48px 0; }
}
