:root{
  --navy:#132038;
  --navy-2:#1d2e4d;
  --navy-3:#2b3f63;
  --paper:#efe8d7;
  --paper-2:#e4dbc5;
  --ink:#1a1712;
  --ink-soft:#5c5344;
  --red:#97281f;
  --brass:#b08a3e;
  --rule:#c4b698;
  --display:"Bodoni Moda",Didot,"Times New Roman",serif;
  --body:"Source Serif 4",Georgia,serif;
  --util:"IBM Plex Mono",ui-monospace,Menlo,monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--body);font-size:18px;line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
.wrap{max-width:940px;margin:0 auto;padding:0 26px}
.eyebrow{
  font-family:var(--util);font-size:10.5px;letter-spacing:.24em;
  text-transform:uppercase;color:var(--brass);
}

/* ─────────── hero: the sealed file ─────────── */
.hero{background:var(--navy);color:var(--paper);padding:34px 0 76px;position:relative}
.hero::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:4px;
  background:linear-gradient(90deg,var(--red) 0 33.33%,var(--paper-2) 33.33% 66.66%,var(--navy-3) 66.66%);
  opacity:.85;
}
.brandbar{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:60px}
.brandbar .eyebrow{color:var(--paper-2);opacity:.65}

/* signature: a declaration that fills its own blanks */
.decl{
  background:var(--paper);color:var(--ink);max-width:610px;margin:0 auto;
  padding:34px 38px 30px;position:relative;
  box-shadow:0 22px 50px rgba(0,0,0,.42);
  font-size:15.5px;line-height:2.5;
}
.decl-head{
  font-family:var(--util);font-size:9.5px;letter-spacing:.22em;text-transform:uppercase;
  color:var(--ink-soft);text-align:center;padding-bottom:14px;margin-bottom:20px;
  border-bottom:1px solid var(--rule);line-height:1.6;
}
.decl p{margin:0 0 4px;color:var(--ink-soft)}
.bl{
  display:inline-block;min-width:var(--w,92px);border-bottom:1px solid var(--ink-soft);
  text-align:center;font-family:var(--body);font-style:italic;font-weight:600;
  color:var(--navy);opacity:0;transform:translateY(3px);
  animation:fill .5s cubic-bezier(.22,1,.36,1) forwards;animation-delay:var(--d,0s);
  padding:0 5px;line-height:1.2;
}
@keyframes fill{to{opacity:1;transform:translateY(0)}}
.stamp{
  position:absolute;right:22px;bottom:18px;transform:rotate(-7deg);
  border:2px solid var(--red);color:var(--red);padding:6px 12px;text-align:center;
  font-family:var(--util);font-size:8.5px;letter-spacing:.16em;text-transform:uppercase;
  line-height:1.5;opacity:0;animation:fill .6s ease forwards;animation-delay:2.5s;
}
.stamp b{display:block;font-size:11px;letter-spacing:.1em}

/* the tintype: a photograph pinned beside the file */
.decl-wrap{position:relative;max-width:610px;margin:0 auto}
.decl-wrap .decl{margin:0}
.tintype{
  position:absolute;right:-158px;bottom:-30px;width:148px;margin:0;
  background:#0d1626;padding:7px 7px 0;border:1px solid #3a4763;
  transform:rotate(4deg);box-shadow:0 16px 34px rgba(0,0,0,.5);
}
.tintype img{width:100%;height:auto;display:block;filter:sepia(.12) contrast(.97)}
.tintype figcaption{
  font-family:var(--util);font-size:7.5px;letter-spacing:.14em;text-transform:uppercase;
  color:#8894a6;text-align:center;padding:6px 2px 7px;line-height:1.5;
}
@media(max-width:1060px){.tintype{display:none}}

.hero-copy{max-width:620px;margin:52px auto 0;text-align:center}
h1{
  font-family:var(--display);font-weight:600;font-size:clamp(46px,8.4vw,84px);
  line-height:.98;letter-spacing:-.02em;margin:0 0 16px;color:var(--paper);
}
.h1sub{
  font-family:var(--util);font-size:clamp(11px,1.9vw,15px);letter-spacing:.34em;color:var(--brass);
  text-transform:uppercase;margin:-6px 0 18px;padding-left:.34em;
}
.tag{
  font-family:var(--display);font-style:italic;font-size:clamp(19px,2.7vw,25px);
  color:var(--brass);margin:0 0 26px;line-height:1.35;
}
.hero-copy p.lede{color:#c3cbd8;font-size:17px;margin:0 auto 32px;max-width:52ch}

.keypoints{
  list-style:none;padding:0;margin:0 auto 34px;max-width:430px;text-align:left;
}
.keypoints li{
  padding:7px 0 7px 24px;position:relative;
}
.keypoints li::before{
  content:"º6";position:absolute;left:2px;top:7px;color:var(--brass);font-size:11px;
}
.keypoints a{
  color:#c3cbd8;text-decoration:none;font-size:15.5px;
  border-bottom:1px solid rgba(176,138,62,.35);transition:color .15s ease,border-color .15s ease;
}
.keypoints a:hover{color:var(--paper);border-color:var(--brass)}
.keypoints a:focus-visible{outline:2px solid var(--brass);outline-offset:2px}

.btn{
  display:inline-block;background:var(--red);color:var(--paper);text-decoration:none;
  font-family:var(--util);font-size:12px;letter-spacing:.18em;text-transform:uppercase;
  padding:15px 30px;border:none;cursor:pointer;transition:background .18s ease;
}
.btn:hover{background:#7d1f18}
.btn:focus-visible{outline:3px solid var(--brass);outline-offset:3px}

/* ─────────── paper sections ─────────── */
.sec{padding:74px 0;border-bottom:1px solid var(--rule)}
.sec:last-of-type{border-bottom:none}
h2{
  font-family:var(--display);font-weight:600;font-size:clamp(27px,4vw,38px);
  line-height:1.12;letter-spacing:-.01em;margin:10px 0 18px;color:var(--navy);
}
.sec > .wrap > p{max-width:62ch}
.sub{color:var(--ink-soft);margin:0 0 34px}

.pair{display:grid;grid-template-columns:1fr 1fr;gap:34px;margin-top:34px}
.card{background:var(--paper-2);padding:26px 28px;border-top:3px solid var(--navy)}
.card.alt{border-top-color:var(--red)}
.card h3{
  font-family:var(--display);font-size:22px;font-weight:600;margin:0 0 6px;color:var(--navy);
}
.card .eyebrow{display:block;margin-bottom:10px}
.card p{margin:0;font-size:16.5px;color:var(--ink-soft)}
.card ul{margin:12px 0 0;padding-left:19px;font-size:16px;color:var(--ink-soft)}
.card li{margin-bottom:5px}

.gets{list-style:none;padding:0;margin:30px 0 0;max-width:66ch}
.gets li{
  padding:17px 0 17px 46px;border-top:1px solid var(--rule);position:relative;font-size:17px;
}
.gets li:last-child{border-bottom:1px solid var(--rule)}
.gets li b{display:block;color:var(--navy);font-weight:600}
.gets li span{color:var(--ink-soft);font-size:16px}
.gets li::before{
  content:attr(data-n);position:absolute;left:0;top:19px;
  font-family:var(--util);font-size:11px;color:var(--brass);letter-spacing:.1em;
}

.isnt{border-left:3px solid var(--brass);padding-left:24px;max-width:64ch;margin-top:26px}
.isnt p{margin:0 0 16px;color:var(--ink-soft);font-size:16.5px}
.isnt p:last-child{margin-bottom:0}
.isnt b{color:var(--navy)}

/* rate schedule - prices set in the body face for legibility, not the Didone */
.rates{width:100%;border-collapse:collapse;margin-top:30px}
.rates th{
  font-family:var(--util);font-size:10px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink-soft);text-align:left;padding:0 0 11px;border-bottom:1.5px solid var(--navy);font-weight:400;
}
.rates th.num{text-align:right}
.rates td{padding:19px 0;border-bottom:1px solid var(--rule);vertical-align:top}
.r-name{padding-right:26px;min-width:190px}
.r-tag{
  display:block;font-family:var(--util);font-size:9.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--brass);margin-bottom:5px;
}
.r-title{font-family:var(--display);font-size:20px;font-weight:600;color:var(--navy);line-height:1.2}
.r-desc{font-size:16px;color:var(--ink-soft);padding-right:26px;line-height:1.55}
.r-price{
  font-family:var(--body);font-weight:600;font-size:27px;color:var(--red);
  text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;line-height:1.15;
}
.r-price small{display:block;font-family:var(--util);font-size:9.5px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-soft);font-weight:400;margin-top:5px}
.note{font-size:15px;color:var(--ink-soft);margin-top:24px;font-style:italic;max-width:64ch}

/* gettysburg band - the argument for the whole service, in one stone */
.stone{display:grid;grid-template-columns:400px 1fr;gap:46px;align-items:center}
.stone figure{margin:0;background:var(--paper-2);padding:9px 9px 0;border:1px solid var(--rule)}
.stone img{width:100%;height:auto;display:block}
.stone .mount{
  font-family:var(--util);font-size:8.5px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink-soft);text-align:center;padding:11px 0 9px;
}
.stone-lead{
  font-family:var(--display);font-size:clamp(23px,3.2vw,31px);font-weight:600;line-height:1.24;
  color:var(--navy);margin:0 0 20px;letter-spacing:-.01em;
}
.stone p{margin:0 0 15px;max-width:50ch;color:var(--ink-soft)}
.stone p:last-child{margin-bottom:0}

/* founder - portrait mounted like a carte de visite */
.founder{display:grid;grid-template-columns:252px 1fr;gap:44px;align-items:start;margin-top:34px}
.cdv{background:var(--paper-2);padding:9px 9px 0;border:1px solid var(--rule)}
.cdv img{width:100%;height:auto;display:block}
.cdv .mount{
  font-family:var(--util);font-size:8.5px;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink-soft);text-align:center;padding:11px 0 9px;
}
.f-name{font-family:var(--display);font-size:29px;font-weight:600;color:var(--navy);margin:0 0 4px;line-height:1.1}
.f-role{
  font-family:var(--util);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--brass);margin:0 0 22px;
}
.founder p{margin:0 0 16px;max-width:60ch}
.founder p:last-child{margin-bottom:0}
.f-plain{border-left:3px solid var(--brass);padding-left:20px;color:var(--ink-soft);font-size:16.5px}
.samples{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:32px}
.sample{
  border:1px solid var(--rule);background:var(--paper-2);padding:23px 24px;
  text-decoration:none;color:inherit;display:block;transition:border-color .18s ease,background .18s ease;
}
.sample:hover{border-color:var(--navy);background:#ded3ba;transform:translateY(-2px)}
.sample{transition:border-color .18s ease,background .18s ease,transform .18s ease}
.sample:focus-visible{outline:3px solid var(--brass);outline-offset:2px}
.sample .eyebrow{display:block;margin-bottom:9px}
.sample h3{font-family:var(--display);font-size:19px;font-weight:600;margin:0 0 6px;color:var(--navy);line-height:1.25}
.sample p{font-size:15.5px;color:var(--ink-soft);margin:0 0 14px;line-height:1.5}
.sample .go{font-family:var(--util);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--red)}
.sample.soon{opacity:.55;pointer-events:none}
.sample.soon .go{color:var(--ink-soft)}

/* ─────────── the form: the page's actual job ─────────── */
.form-sec{background:var(--navy);color:var(--paper);padding:76px 0;border:none}
.form-sec h2{color:var(--paper)}
.form-sec .sub{color:#c3cbd8}
.form-sec .eyebrow{color:var(--brass)}
form{max-width:660px;margin-top:34px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.f{margin-bottom:19px}
label{
  display:block;font-family:var(--util);font-size:10.5px;letter-spacing:.16em;
  text-transform:uppercase;color:var(--brass);margin-bottom:7px;
}
label .opt{color:#8894a6;letter-spacing:.08em}
input,select,textarea{
  width:100%;background:var(--navy-2);border:1px solid var(--navy-3);color:var(--paper);
  font-family:var(--body);font-size:16.5px;padding:12px 13px;border-radius:0;
}
select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--brass) 50%),linear-gradient(135deg,var(--brass) 50%,transparent 50%);
  background-position:calc(100% - 19px) 20px,calc(100% - 13px) 20px;background-size:6px 6px;background-repeat:no-repeat;padding-right:40px;}
textarea{min-height:82px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:2px solid var(--brass);outline-offset:1px;border-color:var(--brass)}
.privacy{font-size:14.5px;color:#8894a6;margin:20px 0 0;max-width:56ch}
.thanks{
  display:none;border:1px solid var(--brass);padding:26px 28px;margin-top:34px;max-width:660px;
}
.thanks h3{font-family:var(--display);font-size:24px;margin:0 0 8px;color:var(--paper)}
.thanks p{margin:0;color:#c3cbd8;font-size:16.5px}

footer{padding:44px 0 56px;font-size:14.5px;color:var(--ink-soft)}
footer p{margin:0 0 12px;max-width:66ch}
footer b{color:var(--navy)}

@media(max-width:760px){
  body{font-size:17px}
  .pair,.samples,.row,.founder,.stone{grid-template-columns:1fr}
  .stone figure{max-width:320px}
  .cdv{max-width:260px}
  /* rate table stacks into rows on small screens */
  .rates thead{display:none}
  .rates tr{display:block;border-bottom:1px solid var(--rule);padding:18px 0}
  .rates td{display:block;border:none;padding:0}
  .r-name{padding:0 0 7px}
  .r-desc{padding:0 0 11px}
  .r-price{text-align:left;font-size:25px}
  .r-price small{margin-top:3px}
  .decl{padding:26px 22px 24px;font-size:14.5px;line-height:2.4}
  .stamp{right:14px;bottom:12px}
  .sec{padding:54px 0}
  .brandbar{margin-bottom:38px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .bl,.stamp{animation:none;opacity:1;transform:none}
}

/* ---- multi-page additions (restructure, Aug 2026) ---- */
.sitenav{background:var(--navy);border-bottom:1px solid rgba(176,138,62,.35)}
.sitenav .wrap{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;padding-top:.7rem;padding-bottom:.7rem}
.nav-brand{font-family:"Bodoni Moda",serif;font-weight:700;font-size:1.05rem;color:var(--paper);text-decoration:none;letter-spacing:.02em}
.nav-brand span{color:var(--brass)}
.nav-links{display:flex;flex-wrap:wrap;gap:.9rem}
.nav-links a{color:var(--ice,#c3cbd8);text-decoration:none;font-size:.85rem;letter-spacing:.04em}
.nav-links a:hover,.nav-links a:focus{color:var(--brass);text-decoration:underline}
.pagehead{background:var(--navy);color:var(--paper);padding:3rem 0 2.5rem}
.pagehead h1{font-family:"Bodoni Moda",serif;font-size:clamp(1.7rem,4.5vw,2.6rem);line-height:1.12;margin:.4rem 0 .8rem;color:var(--paper)}
.pagehead .lede{color:#c3cbd8;max-width:46rem}
.coverage th[scope=row] a{color:inherit}
.cell-muted{color:#7a7264;font-size:.85rem;font-style:italic}
.cell-none{font-style:normal;font-size:.78rem;max-width:11rem}
.pnote{display:block;font-size:.72rem;color:#7a7264;font-style:italic;font-weight:400}
.byline{display:flex;align-items:center;gap:1rem;margin:1.2rem 0 0}
.byline img{width:56px;height:56px;object-fit:cover;border-radius:50%;border:2px solid var(--brass)}
.byline p{font-size:.9rem;margin:0}

/* coverage grid: label each cell when the table linearizes on mobile */
@media(max-width:760px){
  .coverage td[data-label]{display:flex;gap:.45rem;align-items:baseline;padding:4px 0}
  .coverage td[data-label]::before{content:attr(data-label);font-family:"IBM Plex Mono",monospace;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:#7a7264;min-width:9.5rem;flex-shrink:0}
  .coverage th[scope=row]{display:block;padding:14px 0 6px}
  .coverage .cell-none{max-width:none}
}

/* coverage grid: its own desktop treatment (the .rates styles were built for the
   3-column rate table; the grid is a 5-column matrix and reads differently) */
.coverage{table-layout:fixed}
.coverage thead th{text-align:center;padding:0 8px 11px;vertical-align:bottom}
.coverage thead th:first-child{text-align:left;width:21%}
.coverage tbody td{text-align:center;vertical-align:middle;padding:16px 10px;border-left:1px solid var(--rule)}
.coverage tbody th[scope=row]{text-align:left;vertical-align:middle;padding:16px 12px 16px 0;border-bottom:1px solid var(--rule)}
.coverage tbody th[scope=row] a{font-family:var(--display);font-size:16px;font-weight:600;color:var(--navy);text-decoration:none;display:inline-block;line-height:1.25}
.coverage tbody th[scope=row] a:hover,.coverage tbody th[scope=row] a:focus{color:var(--red);text-decoration:underline}
.coverage td.r-price{text-align:center;font-size:22px}
.coverage td.r-price a{color:var(--red);text-decoration:none;border-bottom:2px solid var(--brass)}
.coverage td.r-price a:hover,.coverage td.r-price a:focus{color:var(--navy);border-bottom-color:var(--navy)}
.coverage .cell-muted{text-align:center}
.coverage .cell-none{max-width:none;font-size:.74rem;line-height:1.45}
@media(max-width:760px){
  .coverage tbody td{border-left:none;text-align:left;padding:4px 0}
  .coverage td.r-price{font-size:20px}
}

/* ===== researcher guides: long-form prose + data tables ===== */
.guide-body{max-width:72ch;margin:0 auto}
.guide-body > *:first-child{margin-top:0}
.guide-body > h2{margin-top:2.3rem}
.guide-body h3{font-family:var(--display);font-weight:600;font-size:clamp(20px,2.6vw,25px);line-height:1.2;color:var(--navy-2);margin:1.9rem 0 .5rem}
.guide-body p{margin:0 0 1.05rem}
.guide-body ul,.guide-body ol{margin:0 0 1.2rem;padding-left:1.3em}
.guide-body li{margin:.42rem 0}
.guide-body li > ul,.guide-body li > ol{margin:.42rem 0}
.guide-body strong{color:var(--navy-2);font-weight:600}
.guide-body em{font-style:italic}
.guide-body a{color:var(--red);text-decoration:underline;text-decoration-color:var(--brass);text-underline-offset:2px}
.guide-body a:hover,.guide-body a:focus{color:var(--navy)}
.guide-body hr{border:none;border-top:1px solid var(--rule);margin:2.4rem 0}
.guide-body blockquote{margin:1.2rem 0;padding:.2rem 0 .2rem 1.1rem;border-left:3px solid var(--brass);color:var(--ink-soft);font-style:italic}
.guide-body .tbl{overflow-x:auto;margin:1.5rem 0;border:1px solid var(--rule)}
.guide-body table{border-collapse:collapse;width:100%;font-size:15px;line-height:1.5;background:var(--paper)}
.guide-body th,.guide-body td{text-align:left;vertical-align:top;padding:9px 14px;border-bottom:1px solid var(--rule)}
.guide-body thead th{font-family:var(--util);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);background:var(--paper-2);white-space:nowrap}
.guide-body tbody tr:last-child td{border-bottom:none}
.guide-body td:first-child{font-weight:600;color:var(--navy-2)}
.guide-card p{color:var(--ink-soft);font-size:.95rem}
@media(max-width:640px){.guide-body thead th{white-space:normal}}
