/* self-hosted fonts inlined (was @import — removed to kill render-blocking chain) */
/* vietnamese */
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 400;
  font-display: optional;
  src: url(fonts/6NUs8FyLNQOQZAnv9ZwNjucMHVn85Ni7emAe9lKqZTnbB-gzTK0K1ChJdt9hFwpX9W37ll9_mvIiQvTm.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 400;
  font-display: optional;
  src: url(fonts/6NUs8FyLNQOQZAnv9ZwNjucMHVn85Ni7emAe9lKqZTnbB-gzTK0K1ChJdt9hFwpX9W37ll9_mvMiQvTm.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 400;
  font-display: optional;
  src: url(fonts/6NUs8FyLNQOQZAnv9ZwNjucMHVn85Ni7emAe9lKqZTnbB-gzTK0K1ChJdt9hFwpX9W37ll9_mv0iQg.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url(fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxCBTeO-U.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url(fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxCFTeO-U.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url(fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxC9TeA.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500;
  font-display: optional;
  src: url(fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxCBTeO-U.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500;
  font-display: optional;
  src: url(fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxCFTeO-U.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500;
  font-display: optional;
  src: url(fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxC9TeA.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* vietnamese */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: optional;
  src: url(fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxCBTeO-U.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: optional;
  src: url(fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxCFTeO-U.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: optional;
  src: url(fonts/6NU78FyLNQOQZAnv9bYEvDiIdE9Ea92uemAk_WBq8U_9v0c2Wa0KxC9TeA.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url(fonts/ieVn2YZDLWuGJpnzaiwFXS9tYtpQ59CjCQ.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url(fonts/ieVn2YZDLWuGJpnzaiwFXS9tYtpS59CjCQ.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url(fonts/ieVn2YZDLWuGJpnzaiwFXS9tYtpT59CjCQ.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 400;
  font-display: optional;
  src: url(fonts/ieVn2YZDLWuGJpnzaiwFXS9tYtpd59A.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: optional;
  src: url(fonts/ieVn2YZDLWuGJpnzaiwFXS9tYtpQ59CjCQ.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: optional;
  src: url(fonts/ieVn2YZDLWuGJpnzaiwFXS9tYtpS59CjCQ.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: optional;
  src: url(fonts/ieVn2YZDLWuGJpnzaiwFXS9tYtpT59CjCQ.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: optional;
  src: url(fonts/ieVn2YZDLWuGJpnzaiwFXS9tYtpd59A.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: optional;
  src: url(fonts/ieVn2YZDLWuGJpnzaiwFXS9tYtpQ59CjCQ.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: optional;
  src: url(fonts/ieVn2YZDLWuGJpnzaiwFXS9tYtpS59CjCQ.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: optional;
  src: url(fonts/ieVn2YZDLWuGJpnzaiwFXS9tYtpT59CjCQ.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: optional;
  src: url(fonts/ieVn2YZDLWuGJpnzaiwFXS9tYtpd59A.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: optional;
  src: url(fonts/ieVn2YZDLWuGJpnzaiwFXS9tYtpQ59CjCQ.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* vietnamese */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: optional;
  src: url(fonts/ieVn2YZDLWuGJpnzaiwFXS9tYtpS59CjCQ.woff2) format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: optional;
  src: url(fonts/ieVn2YZDLWuGJpnzaiwFXS9tYtpT59CjCQ.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Hanken Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: optional;
  src: url(fonts/ieVn2YZDLWuGJpnzaiwFXS9tYtpd59A.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


/* =========================================================================
   DrGlenn — editorial design system  ("serif recovery on warm paper")
   Inspired by the Steep reference; reworked into an original warm-gold,
   security-recovery language. Near-monochrome warm paper, one honey accent
   tied to the brand gold, whisper-authority Fraunces headlines, floating
   trust artifacts instead of analytics artifacts.
   ========================================================================= */

:root{
  /* ink + paper */
  --ink:#211d17;          /* warm near-black: text, filled buttons, logo   */
  --ink-2:#3c362d;        /* softer ink for secondary headings             */
  --paper:#fffdf8;        /* warm paper canvas (not pure white)            */
  --mist:#f4efe4;         /* quiet nested card surface                     */
  --fog:#faf6ec;          /* alternating section band                      */
  --slate:#5f584c;        /* links, muted helper text                      */
  --ash:#98918296;        /* tertiary labels                               */
  --line:#e9e1d1;         /* hairline borders                              */

  /* the single chromatic accent — brand gold, washed to paper warmth */
  --honey:#f6e4c1;        /* accent card wash                              */
  --honey-edge:#ecd5a5;   /* hairline on honey                             */
  --bronze:#5c440f;       /* ink + strokes on honey surfaces               */
  --gold:#c8971f;         /* functional gold: underlines, small marks      */
  --gold-ink:#8a6410;     /* AA-contrast gold for TEXT on light surfaces    */

  /* restrained "safe / recovered" signal — used only for status ticks */
  --sage:#3c7a56;
  --sage-wash:#e9f1e7;

  /* type */
  --serif:'Fraunces', 'Source Serif 4', Georgia, ui-serif, serif;
  --sans:'Hanken Grotesk', ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

  /* fluid scale */
  --t-display: clamp(2.85rem, 1.6rem + 5.6vw, 5.5rem);
  --t-h1:      clamp(2.3rem, 1.5rem + 3.4vw, 3.9rem);
  --t-h2:      clamp(1.8rem, 1.3rem + 2.1vw, 2.75rem);
  --t-h3:      clamp(1.28rem, 1.1rem + 0.7vw, 1.6rem);
  --t-lead:    clamp(1.12rem, 1.02rem + 0.4vw, 1.32rem);
  --t-body:1.0625rem;
  --t-sm:.9375rem;
  --t-xs:.8125rem;

  /* structure */
  --max:1180px;
  --gap:clamp(4.5rem, 3rem + 6vw, 8rem);
  --r-card:24px; --r-sm:16px; --r-img:14px; --r-pill:999px;
  --shadow-float:0 0 0 1px rgba(40,30,10,.05), 0 22px 34px -18px rgba(40,30,10,.28), 0 8px 12px -8px rgba(40,30,10,.18);
  --shadow-soft:0 0 0 1px rgba(40,30,10,.04), 0 14px 30px -20px rgba(40,30,10,.35);
}

/* ---------- reset-ish ---------- */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%; overflow-x:clip}
body{overflow-x:clip}
body{
  margin:0; background:var(--paper); color:var(--ink);
  font-family:var(--sans); font-size:var(--t-body); line-height:1.6;
  font-weight:400; letter-spacing:-.003em;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
img{max-width:100%; height:auto; display:block}
a{color:inherit; text-decoration:none}
::selection{background:var(--honey); color:var(--bronze)}

/* ---------- type ---------- */
h1,h2,h3,h4{font-family:var(--serif); font-weight:400; color:var(--ink); margin:0; line-height:1.08; letter-spacing:-.018em;}
h1{font-size:var(--t-h1)} h2{font-size:var(--t-h2)} h3{font-size:var(--t-h3); line-height:1.18; letter-spacing:-.01em}
.serif-italic{font-style:italic}
p{margin:0 0 1rem}
.lead{font-size:var(--t-lead); line-height:1.5; color:var(--ink-2); font-weight:420}
.muted{color:var(--slate)}
.eyebrow{font-family:var(--sans); font-size:var(--t-xs); font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--slate)}
.eyebrow.gold{color:var(--gold-ink)}

/* ---------- layout ---------- */
.wrap{max-width:var(--max); margin:0 auto; padding:0 clamp(1.25rem,4vw,2.5rem)}
section{padding:var(--gap) 0}
.band-fog{background:var(--fog)}
.band-ink{background:var(--ink); color:var(--paper)}
.band-ink h1,.band-ink h2,.band-ink h3{color:var(--paper)}
.stack>*+*{margin-top:1.1rem}
.center{text-align:center}
.grid{display:grid; gap:clamp(1rem,2.5vw,1.5rem)}
@media(min-width:760px){ .g-2{grid-template-columns:repeat(2,1fr)} .g-3{grid-template-columns:repeat(3,1fr)} .g-4{grid-template-columns:repeat(4,1fr)} }

/* ---------- July 4 2026 / 250th banner (homepage) ---------- */
.usa250{background:linear-gradient(180deg,#0b1c46,#0a1a3f); color:#fff; border-bottom:3px solid #B22234; position:relative; overflow:hidden}
.usa250-in{display:flex; align-items:center; justify-content:center; gap:1.1rem; padding:.6rem 1rem; text-align:center; flex-wrap:wrap}
.usa-flag{width:54px; height:auto; border-radius:3px; box-shadow:0 1px 5px rgba(0,0,0,.45); flex:0 0 auto; display:block; animation:usaWave 7s ease-in-out infinite; transform-origin:left center}
@keyframes usaWave{0%,100%{transform:rotate(-.6deg)}50%{transform:rotate(.8deg)}}
.usa250-msg{margin:0; font-family:var(--serif); font-weight:400; font-size:clamp(1rem,2.4vw,1.18rem); letter-spacing:.01em; line-height:1.3}
.usa250-msg strong{font-weight:600}
.usa250-sub{font-family:var(--sans); font-size:.85rem; opacity:.92; letter-spacing:.03em; white-space:nowrap}
.usa250-num{color:#f2c94c; font-weight:700}
@media(prefers-reduced-motion:reduce){ .usa-flag{animation:none} }

/* ---------- buttons (pills) ---------- */
.btn{
  display:inline-flex; align-items:center; gap:.5em; cursor:pointer;
  font-family:var(--sans); font-size:1rem; font-weight:600; letter-spacing:-.01em;
  padding:.85em 1.5em; border-radius:var(--r-pill); border:1.5px solid var(--ink);
  background:var(--ink); color:var(--paper); transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.btn:hover{transform:translateY(-2px); box-shadow:0 12px 22px -12px rgba(33,29,23,.6)}
.btn-ghost{background:transparent; color:var(--ink)}
.btn-ghost:hover{background:rgba(33,29,23,.04)}
.btn-gold{background:var(--gold); border-color:var(--gold); color:#fff}
.btn-lg{padding:1em 1.8em; font-size:1.06rem}
.btn.is-disabled,.btn:disabled{background:var(--mist); color:#a89f8e; border-color:var(--line); cursor:not-allowed; box-shadow:none; pointer-events:none}
.btn.is-disabled:hover,.btn:disabled:hover{transform:none; box-shadow:none}
.signup-closed{display:flex; flex-wrap:wrap; align-items:center; gap:.4rem .9rem; margin:.4rem 0 1.8rem}
.signup-closed .note{font-family:var(--sans); font-size:.86rem; color:var(--slate)}
.arrowlink{display:inline-flex; align-items:center; gap:.4em; font-weight:600; color:var(--ink); border-bottom:1.5px solid transparent; padding-bottom:2px; transition:border-color .18s, gap .18s}
.arrowlink:hover{border-color:var(--gold); gap:.65em}
.arrowlink .ar{transition:transform .18s} .arrowlink:hover .ar{transform:translateX(3px)}

/* ---------- header / nav ---------- */
.site-head{position:sticky; top:0; z-index:50; background:color-mix(in srgb, var(--paper) 88%, transparent); backdrop-filter:blur(10px); border-bottom:1px solid transparent; transition:border-color .2s}
.site-head.scrolled{border-color:var(--line)}
.nav{display:flex; align-items:center; justify-content:space-between; gap:1.5rem; height:74px}
.brand{display:flex; align-items:center; gap:.6rem; font-family:var(--serif); font-size:1.32rem; letter-spacing:-.02em}
.brand .dot{width:10px; height:10px; border-radius:50%; background:var(--gold); box-shadow:0 0 0 4px var(--honey)}
.nav-links{display:none; gap:1.4rem; align-items:center}
.nav-links a{font-size:.95rem; font-weight:500; color:var(--ink-2)}
.nav-links a:hover{color:var(--ink)}
.nav-cta{display:flex; gap:.6rem; align-items:center}
.nav-cta .btn-ghost{display:none}
@media(min-width:560px){ .nav-cta .btn-ghost{display:inline-flex} }
@media(min-width:940px){ .nav-links{display:flex} }
@media(max-width:420px){ .nav .btn{padding:.7em 1.1em; font-size:.9rem} }

/* ---------- hero ---------- */
.hero{position:relative; padding-top:clamp(2.5rem,4vw,4.5rem); overflow:hidden}
.hero-grid{display:grid; grid-template-columns:1fr; gap:clamp(2.5rem,5vw,4rem); align-items:center}
@media(min-width:960px){ .hero-grid{grid-template-columns:1.05fr .95fr} }
.display{font-family:var(--serif); font-size:var(--t-display); line-height:1.02; letter-spacing:-.03em; font-weight:400}
.display .serif-italic{color:var(--bronze)}
.trust-row{display:flex; flex-wrap:wrap; gap:.5rem 1.4rem; margin-top:1.6rem}
.trust-row span{display:inline-flex; align-items:center; gap:.45rem; font-size:.9rem; font-weight:500; color:var(--ink-2)}

/* ---------- floating trust artifacts (collage) ---------- */
.artboard{position:relative; min-height:340px}
.artifact{background:var(--paper); border-radius:20px; box-shadow:var(--shadow-float); padding:16px 18px; border:1px solid rgba(40,30,10,.04); max-width:100%}
.artifact .a-label{font-size:.72rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--slate)}
.artifact .a-big{font-family:var(--serif); font-size:1.9rem; line-height:1.1; margin-top:.15rem}
.artifact .a-row{display:flex; align-items:center; gap:.55rem; margin-top:.5rem; font-size:.95rem; font-weight:500}
.tick{display:inline-grid; place-items:center; width:20px; height:20px; border-radius:50%; background:var(--sage-wash); color:var(--sage); flex:none}
.tick svg{width:12px;height:12px}
.spark{height:34px; width:100%; margin-top:.5rem}
.spark path{fill:none; stroke:var(--bronze); stroke-width:2; stroke-linecap:round}
.ring{--p:0; width:46px;height:46px; border-radius:50%; background:conic-gradient(var(--gold) calc(var(--p)*1%), var(--honey) 0); display:grid; place-items:center; flex:none}
.ring::after{content:""; width:34px;height:34px;border-radius:50%; background:var(--paper)}
.ring b{position:absolute; font-family:var(--sans); font-size:.72rem}
/* desktop collage placement */
@media(min-width:960px){
  .artboard{min-height:560px}
  .af-abs{position:absolute}
  .af-1{top:0; left:0; width:250px}
  .af-2{top:17%; right:0; width:228px}
  .af-3{bottom:13%; left:1%; width:248px}
  .af-photo{bottom:1%; right:13%}
  .af-4{bottom:20%; right:1%; width:200px}
}
.af-4{background:var(--paper); border-radius:20px; box-shadow:var(--shadow-float); padding:14px 16px}
.af-4 .stars{font-size:.95rem; margin:0}
.af-4 .rv{font-size:.82rem; font-weight:600; margin-top:.25rem; color:var(--ink-2)}
.af-photo{display:inline-flex; align-items:center; gap:.6rem; background:var(--paper); border-radius:999px; box-shadow:var(--shadow-float); padding:6px 16px 6px 6px}
.af-photo img{width:44px;height:44px;border-radius:50%; object-fit:cover}
.af-photo .n{font-size:.82rem; font-weight:600} .af-photo .r{font-size:.72rem; color:var(--slate)}
@media(max-width:959px){ .artboard{display:grid; gap:1rem; grid-template-columns:1fr; max-width:440px} .af-photo{width:max-content} }

/* ---------- cards ---------- */
.card{background:var(--mist); border-radius:var(--r-card); padding:clamp(1.5rem,3vw,2.1rem); border:1px solid transparent; transition:transform .2s ease, box-shadow .2s ease}
.card.hover:hover{transform:translateY(-4px); box-shadow:var(--shadow-soft)}
.card h3{margin-bottom:.5rem}
.card .num{font-family:var(--serif); font-size:1.05rem; color:var(--gold-ink)}
.card-accent{background:var(--honey); color:var(--bronze); border-radius:var(--r-card); padding:clamp(1.8rem,4vw,3rem)}
.card-accent h2,.card-accent h3{color:var(--bronze)}
.card-plain{background:var(--paper); border:1px solid var(--line); border-radius:var(--r-card); padding:clamp(1.5rem,3vw,2rem)}

/* free-tools card grid */
.tool-grid{align-items:stretch}
.tool-card{display:flex; flex-direction:column; background:var(--paper); border:1px solid var(--line); text-decoration:none; color:inherit}
.tool-card:hover{border-color:var(--honey)}
.tool-card h3{margin:.15rem 0 .55rem; font-size:1.28rem; line-height:1.2}
.tool-card .muted{flex:1; margin:0 0 1.35rem; font-size:.98rem; line-height:1.6}
.tool-card .arrowlink{margin-top:auto; align-self:flex-start; color:var(--bronze); font-weight:600}
.tool-cat{display:inline-flex; align-items:center; gap:.5em; font-family:var(--sans); font-size:.72rem; font-weight:600; letter-spacing:.09em; text-transform:uppercase; color:var(--slate)}
.tool-cat .d{width:8px; height:8px; border-radius:50%; flex:0 0 auto}

/* pricing */
.price{font-family:var(--serif); font-size:2rem; line-height:1}
.price small{font-family:var(--sans); font-size:.8rem; font-weight:500; color:var(--slate)}
.feat{list-style:none; margin:1rem 0 0; padding:0; display:grid; gap:.55rem; font-size:.95rem}
.feat li{display:flex; gap:.55rem; align-items:flex-start; color:var(--ink-2)}
.feat li .tick{width:18px;height:18px}
.badge{display:inline-block; font-size:.68rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; color:#fff; background:var(--gold); padding:.32em .8em; border-radius:999px; margin-bottom:.85rem}

/* testimonials */
.quote{background:var(--paper); border:1px solid var(--line); border-radius:var(--r-card); padding:clamp(1.4rem,3vw,1.9rem)}
.quote p{font-family:var(--serif); font-size:1.16rem; line-height:1.42; color:var(--ink); font-style:italic; margin:0 0 .9rem}
.quote .who{font-size:.85rem; font-weight:600; color:var(--slate)}
.stars{color:var(--gold-ink); letter-spacing:2px; font-size:.9rem; margin-bottom:.7rem}

/* labels / chips */
.chip{display:inline-flex; align-items:center; gap:.4rem; background:var(--mist); border-radius:999px; padding:.35em .85em; font-size:.82rem; font-weight:500}

/* ---------- contact form (modern filled fields) ---------- */
.dg-form{display:flex; flex-direction:column; gap:1.55rem}
.dg-form .row{display:grid; gap:1.55rem}
@media(min-width:620px){ .dg-form .row.two{grid-template-columns:1fr 1fr} }
.dg-field{display:flex; flex-direction:column; gap:.5rem}
.dg-field label{font-family:var(--sans); font-size:.78rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; color:var(--slate)}
.dg-field .req{color:var(--gold-ink); margin-left:.15em}
.dg-field .hint{font-family:var(--sans); font-size:.85rem; color:var(--slate); font-weight:400; opacity:.9; line-height:1.45; margin-top:.05rem}
.dg-input,.dg-area{
  width:100%; font:inherit; font-size:1.05rem; color:var(--ink); -webkit-appearance:none; appearance:none;
  background:#f7f1e6; border:1.5px solid #efe7d6; border-radius:16px;
  padding:1rem 1.2rem; transition:background .18s ease, border-color .18s ease, box-shadow .18s ease;
  box-shadow:inset 0 1px 2px rgba(33,29,23,.035);
}
.dg-input::placeholder,.dg-area::placeholder{color:#b6ac99}
.dg-input:hover,.dg-area:hover{background:#f4eddf; border-color:#e6dcc6}
.dg-input:focus,.dg-area:focus{outline:none; background:var(--paper); border-color:var(--gold); box-shadow:0 0 0 4px var(--honey), inset 0 1px 2px rgba(33,29,23,0)}
.dg-area{min-height:300px; resize:vertical; line-height:1.7; border-radius:18px; padding:1.1rem 1.2rem}
@media(min-width:920px){ .dg-area{min-height:340px} }
.dg-hp{position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden}
.dg-submit-row{display:flex; flex-wrap:wrap; align-items:center; gap:1rem 1.4rem; margin-top:.4rem}
.dg-note{font-family:var(--sans); font-size:.8rem; color:var(--slate); max-width:34ch; line-height:1.5}
.dg-note a{color:var(--bronze); text-decoration:underline; text-underline-offset:2px}
.dg-status{display:none; border-radius:16px; padding:1.05rem 1.2rem; font-family:var(--sans); font-size:.98rem; line-height:1.55}
.dg-status.show{display:block; animation:dgFade .3s ease both}
.dg-status.ok{background:var(--sage-wash); color:#1f5637; border:1px solid #bcd8c4}
.dg-status.err{background:#fbe9e4; color:#8a2f1c; border:1px solid #f0c7bb}
@keyframes dgFade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.grecaptcha-badge{visibility:hidden}
/* lift the form card */
.dg-form-card{box-shadow:0 18px 50px -28px rgba(33,29,23,.35); border:1px solid var(--line)}

/* ---------- footer ---------- */
.foot{background:var(--ink); color:#d9d1c4; padding:clamp(3.5rem,6vw,5.5rem) 0 2.5rem}
.foot a{color:#d9d1c4} .foot a:hover{color:#fff}
.foot h4,.foot h2{color:#fff; font-family:var(--sans); font-size:.8rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; margin:0 0 1rem}
.foot .cols{display:grid; gap:2.5rem; grid-template-columns:1fr}
@media(min-width:760px){ @media(min-width:560px){ .foot .cols{grid-template-columns:1fr 1fr} }
@media(min-width:920px){ .foot .cols{grid-template-columns:1.5fr 1fr 1fr 1fr 1fr} } }
.foot ul{list-style:none; margin:0; padding:0; display:grid; gap:.6rem; font-size:.92rem}
.foot .brand{color:#fff; margin-bottom:.8rem}
.foot .fine{border-top:1px solid #ffffff1a; margin-top:3rem; padding-top:1.5rem; font-size:.8rem; color:#9a9184; display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; justify-content:space-between}

/* ---------- interior pages ---------- */
.hero-int{padding:clamp(2.2rem,4vw,3.6rem) 0 clamp(1.4rem,2.5vw,2.2rem)}
.breadcrumb{font-size:.85rem; color:var(--slate); margin-bottom:1rem; display:flex; flex-wrap:wrap; gap:.4rem}
.breadcrumb a{border-bottom:1px solid transparent} .breadcrumb a:hover{border-color:var(--gold); color:var(--ink)}
.hero-int h1{font-size:var(--t-h1); max-width:20ch}
.doc{display:grid; gap:clamp(2rem,5vw,3.5rem); grid-template-columns:1fr; align-items:start}
@media(min-width:920px){ .doc{grid-template-columns:minmax(0,1fr) 300px} }
.aside{position:relative}
@media(min-width:920px){ .aside{position:sticky; top:100px} }
.aside-card{background:var(--honey); color:var(--bronze); border-radius:var(--r-card); padding:1.6rem}
.aside-card h3{color:var(--bronze); font-size:1.3rem} .aside-card p{font-size:.92rem; margin:.5rem 0 1rem; opacity:.9}

/* ---------- prose (extracted article content) ---------- */
.prose{max-width:72ch; font-size:1.075rem; line-height:1.72; color:var(--ink-2); min-width:0}
.prose>*+*{margin-top:1.05rem}
.prose h2{font-family:var(--serif); font-weight:400; color:var(--ink); font-size:clamp(1.55rem,1.2rem+1.3vw,2.05rem); line-height:1.15; letter-spacing:-.015em; margin-top:2.6rem}
.prose h3{font-family:var(--serif); font-weight:400; color:var(--ink); font-size:clamp(1.2rem,1.05rem+.5vw,1.45rem); margin-top:1.9rem; line-height:1.25}
.prose h4{font-family:var(--sans); font-weight:600; color:var(--ink); font-size:1.02rem; margin-top:1.5rem}
.prose p{margin:0}
.prose a{color:var(--ink); border-bottom:1.5px solid var(--honey-edge); transition:border-color .15s} .prose a:hover{border-color:var(--gold)}
.prose strong,.prose b{color:var(--ink); font-weight:600}
.prose ul,.prose ol{padding-left:0; margin:0; list-style:none; display:grid; gap:.6rem}
.prose ol{counter-reset:li}
.prose li{position:relative; padding-left:1.7rem}
.prose ul>li::before{content:""; position:absolute; left:.15rem; top:.62em; width:7px; height:7px; border-radius:50%; background:var(--gold)}
.prose ol>li{counter-increment:li} .prose ol>li::before{content:counter(li); position:absolute; left:0; top:.05em; width:1.15rem; height:1.15rem; font-family:var(--sans); font-size:.72rem; font-weight:700; color:#fff; background:var(--ink); border-radius:50%; display:grid; place-items:center}
.prose blockquote{border-left:3px solid var(--honey-edge); margin:1.4rem 0; padding:.2rem 0 .2rem 1.3rem; font-family:var(--serif); font-style:italic; font-size:1.2rem; color:var(--ink)}
.prose table{width:100%; border-collapse:collapse; font-size:.95rem; margin:1.2rem 0}
.prose th,.prose td{text-align:left; padding:.7rem .9rem; border-bottom:1px solid var(--line)}
.prose th{font-family:var(--sans); font-weight:600; color:var(--ink); background:var(--mist)}
.prose img{border-radius:var(--r-img); border:1px solid var(--line); margin:1.4rem 0}
.prose code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:.88em; background:var(--mist); padding:.15em .4em; border-radius:6px}
.prose hr{border:none; border-top:1px solid var(--line); margin:2.2rem 0}
.prose .callout,.prose .et_pb_promo,.prose blockquote.snippet{background:var(--honey); border:1px solid var(--honey-edge); color:var(--bronze); border-radius:var(--r-sm); padding:1.1rem 1.3rem; font-style:normal}
/* buttons that appear inside prose (e.g. ordering steps) */
.prose a.btn{color:var(--paper); border-bottom:none} .prose a.btn:hover{border-bottom:none}
.prose a.btn.btn-ghost{color:var(--ink)} .prose a.btn.btn-gold{color:#fff}
.order-steps{display:grid; gap:.7rem; margin:1.6rem 0}
.order-steps .btn{width:100%; justify-content:flex-start; font-size:1.05rem}
.order-steps .btn .n2{font-family:var(--serif); font-size:1.15em; opacity:.5; margin-right:.7em; min-width:1.4em}
.order-steps .btn .ar{margin-left:auto}

/* ---------- "more than malware" service rows ---------- */
.svc-rows{border:1px solid var(--line); border-radius:var(--r-card); overflow:hidden; background:var(--line); display:grid; gap:1px}
.svc-rows .row{background:var(--paper); padding:1.3rem clamp(1.1rem,2.5vw,1.7rem); display:grid; gap:.3rem; transition:background .18s}
.svc-rows a.row:hover{background:var(--fog)}
.svc-rows .row .rt{font-family:var(--serif); font-size:1.28rem; display:flex; align-items:center; justify-content:space-between; gap:1rem}
.svc-rows .row .rd{color:var(--slate); font-size:.96rem}
.svc-rows .row .ar{color:var(--gold); transition:transform .18s} .svc-rows a.row:hover .ar{transform:translateX(4px)}

/* ---------- stat band (since 1995) ---------- */
.statband{display:grid; gap:1.5rem 1rem; grid-template-columns:repeat(2,1fr)}
@media(min-width:720px){ .statband{grid-template-columns:repeat(4,1fr)} }
.stat-b .n{font-family:var(--serif); font-size:clamp(2.1rem,1.4rem+2.4vw,3rem); line-height:1; color:var(--ink)}
.stat-b .l{font-size:.88rem; color:var(--slate); margin-top:.4rem}

/* reveal on scroll */
.reveal{opacity:0; transform:translateY(22px); transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1; transform:none}
/* above-the-fold hero must never be hidden behind the scroll animation (fixes LCP) */
.hero .reveal{opacity:1; transform:none}
@media(prefers-reduced-motion:reduce){ .reveal{opacity:1;transform:none;filter:none;transition:none} .btn:hover{transform:none} }

/* =======================================================================
   REFINEMENTS — the extra layer. Fine rules, serif flourishes, elegant
   motion, and balance touches. Editorial ornament, not noise.
   ======================================================================= */
html{scroll-behavior:smooth}
:focus-visible{outline:2px solid var(--gold); outline-offset:3px; border-radius:3px}

/* very faint warm-paper wash so the canvas isn't a flat fill */
body{background-color:var(--paper); background-image:
  radial-gradient(60rem 40rem at 12% -5%, #fff7e6 0, rgba(255,247,230,0) 60%),
  radial-gradient(50rem 40rem at 100% 0%, #fdf1dc 0, rgba(253,241,220,0) 55%);
  background-attachment:fixed; background-repeat:no-repeat}

/* top scroll-progress hairline — CSS scroll-driven, no-ops where unsupported */
@keyframes dg-prog{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@supports (animation-timeline:scroll()){
  body::before{content:""; position:fixed; inset:0 0 auto 0; height:3px; z-index:300;
    background:linear-gradient(90deg,var(--gold),var(--honey-edge)); transform-origin:0 50%; transform:scaleX(0);
    animation:dg-prog linear both; animation-timeline:scroll(root)}
}

/* eyebrow gets a leading rule — a small hand-set detail */
.eyebrow{display:inline-flex; align-items:center}
.eyebrow::before{content:""; width:1.9rem; height:1.5px; margin-right:.8rem; background:currentColor; opacity:.55}

/* ornamental centered divider utility (line — diamond — line) */
.flourish{display:flex; align-items:center; gap:1.1rem; color:var(--line); margin:0 auto}
.flourish::before,.flourish::after{content:""; height:1px; background:currentColor; flex:1}
.flourish i{width:7px; height:7px; transform:rotate(45deg); background:var(--gold); box-shadow:0 0 0 4px var(--honey)}

/* nav links: gold underline draws in */
.nav-links a{position:relative}
.nav-links a::after{content:""; position:absolute; left:0; right:0; bottom:-5px; height:1.5px; background:var(--gold); transform:scaleX(0); transform-origin:0; transition:transform .24s ease}
.nav-links a:hover::after{transform:scaleX(1)}
.brand .dot{transition:transform .4s ease} .site-head:hover .brand .dot{transform:rotate(90deg) scale(1.1)}

/* buttons: a soft light-sweep on hover + a lifting arrow */
.btn{position:relative; overflow:hidden; isolation:isolate}
.btn::after{content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(115deg,transparent 32%,rgba(255,255,255,.22) 50%,transparent 68%); transform:translateX(-130%); transition:transform .55s ease}
.btn:hover::after{transform:translateX(130%)}
.btn-ghost::after{background:linear-gradient(115deg,transparent 32%,rgba(200,151,31,.14) 50%,transparent 68%)}

/* cards: a gold capillary line grows across the top on hover + arrow nudge */
.card,.card-plain{position:relative; overflow:hidden}
.card::after,.card-plain::after{content:""; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(90deg,var(--gold),var(--honey-edge)); transform:scaleX(0); transform-origin:0; transition:transform .35s ease}
.card.hover:hover::after,.card-plain.hover:hover::after{transform:scaleX(1)}
.card .arrowlink .ar,.card-plain .arrowlink .ar{transition:transform .2s}
.card.hover:hover .arrowlink .ar{transform:translateX(4px)}

/* service rows: a gold edge slides down on hover */
.svc-rows a.row{position:relative}
.svc-rows a.row::before{content:""; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--gold); transform:scaleY(0); transform-origin:top; transition:transform .28s ease}
.svc-rows a.row:hover::before{transform:scaleY(1)}

/* testimonials get a big decorative opening quote */
.quote{position:relative; padding-top:2.6rem}
.quote::before{content:"\201C"; position:absolute; top:.35rem; left:1.1rem; font-family:var(--serif); font-size:4.2rem; line-height:1; color:var(--honey-edge); pointer-events:none}
.stars{position:relative; z-index:1}

/* stat numbers get a short gold rule beneath */
.stat-b .n{position:relative; display:inline-block}
.stat-b .n::after{content:""; display:block; width:2.1rem; height:2px; background:var(--gold); opacity:.7; margin-top:.55rem}

/* prose links: an underline that draws in (buttons excluded) */
.prose a:not(.btn){border-bottom:none; background-image:linear-gradient(var(--gold),var(--gold)); background-repeat:no-repeat; background-position:0 100%; background-size:0% 1.5px; transition:background-size .28s ease; padding-bottom:1.5px}
.prose a:not(.btn):hover{background-size:100% 1.5px}
/* refined first-paragraph drop cap on long-form prose */
/* drop cap on the article's true opening paragraph (first <p> after the first <h2>),
   never on the byline/meta line that directly follows the <h1> */
.prose>h2:first-of-type+p::first-letter{float:left; font-family:var(--serif); font-weight:400; font-size:3.4em; line-height:.82; padding:.04em .12em 0 0; color:var(--bronze)}
/* refined byline: small, quiet, lettly-spaced meta line */
.prose>h1+p{font-size:.94rem; color:var(--slate); letter-spacing:.01em; margin-top:-.4rem}
.prose>h1+p a{color:var(--bronze)}

/* balance: a clean hairline divider in the content/aside gutter */
@media(min-width:920px){
  .doc{gap:0 clamp(2.5rem,4vw,3.75rem)}
  .aside{padding-left:clamp(2.5rem,4vw,3.75rem); border-left:1px solid var(--line)}
}

/* interior breadcrumb bar reads as an intentional slim rail */
.hero-int.band-fog{border-bottom:1px solid var(--line)}
.breadcrumb span[aria-current],.breadcrumb>span:last-child{color:var(--ink)}

/* gentle life in the hero trust artifacts */
@keyframes dg-float{0%,100%{translate:0 0}50%{translate:0 -8px}}
@media(min-width:960px) and (prefers-reduced-motion:no-preference){
  .af-1{animation:dg-float 6.5s ease-in-out infinite}
  .af-2{animation:dg-float 7.5s ease-in-out infinite .6s}
  .af-3{animation:dg-float 7s ease-in-out infinite 1.1s}
  .af-photo{animation:dg-float 8s ease-in-out infinite .3s}
  .ring{animation:dg-spin 14s linear infinite}
}
@keyframes dg-spin{to{filter:hue-rotate(0)}} /* placeholder to keep ring calm */

/* footer: centered gold seal at the very top edge + link lift */
.foot{position:relative}
.foot::before{content:""; position:absolute; top:0; left:50%; translate:-50% -50%; width:9px; height:9px; transform:rotate(45deg); background:var(--gold); box-shadow:0 0 0 5px var(--ink), 0 0 0 6px #ffffff14}
.foot ul a{position:relative; transition:padding-left .2s ease, color .2s}
.foot ul a:hover{padding-left:.5rem}
.foot ul a::before{content:"\203A"; position:absolute; left:-.15rem; opacity:0; transition:opacity .2s} .foot ul a:hover::before{opacity:.6}

/* accent card gets subtle corner brackets */
.card-accent{position:relative}
.card-accent::before,.card-accent::after{content:""; position:absolute; width:18px; height:18px; border:2px solid var(--bronze); opacity:.22}
.card-accent::before{top:14px; left:14px; border-right:0; border-bottom:0}
.card-accent::after{bottom:14px; right:14px; border-left:0; border-top:0}

/* section headings: hang a hairline off the eyebrow group where useful */
.aside-card{position:relative; overflow:hidden}
.aside-card::after{content:""; position:absolute; right:-30px; bottom:-30px; width:110px; height:110px; border-radius:50%; border:1.5px solid var(--bronze); opacity:.14}

/* ---- packages / pricing ---- */
.pkgs{display:grid;gap:1.1rem;grid-template-columns:1fr}
@media(min-width:640px){.pkgs{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1060px){.pkgs{grid-template-columns:repeat(4,1fr)}}
.pkg{background:#fff;border:1px solid var(--line);border-radius:var(--r-card,20px);padding:1.6rem 1.4rem 1.5rem;display:flex;flex-direction:column;position:relative;transition:transform .2s ease,box-shadow .2s ease}
.pkg:hover{transform:translateY(-3px);box-shadow:0 20px 44px -24px rgba(33,29,23,.28)}
.pkg.pop{border:1.5px solid var(--gold);box-shadow:0 22px 52px -26px rgba(200,151,31,.42)}
.pkg .ribbon{position:absolute;top:0;right:1.2rem;transform:translateY(-50%);background:var(--bronze);color:#fff;font-size:.64rem;letter-spacing:.09em;text-transform:uppercase;font-weight:700;padding:.34rem .7rem;border-radius:999px;white-space:nowrap}
.pkg .pk-name{font-family:var(--serif);font-size:1.35rem;font-weight:400;line-height:1.1}
.pkg .pk-tag{color:var(--slate);font-size:.85rem;margin-top:.3rem;min-height:2.4em;line-height:1.35}
.pkg .pk-price{font-family:var(--serif);font-size:2.05rem;margin:.9rem 0 0;color:var(--ink);line-height:1}
.pkg .pk-price small{font-family:var(--sans);font-size:.72rem;color:var(--slate);font-weight:400;letter-spacing:.02em}
.pkg ul{list-style:none;margin:1.1rem 0 1.5rem;padding:1.1rem 0 0;border-top:1px solid var(--line);display:grid;gap:.5rem;font-size:.88rem;color:var(--slate)}
.pkg ul li{display:flex;gap:.5rem;align-items:flex-start;line-height:1.35}
.pkg ul li::before{content:"\2713";color:var(--sage);font-weight:700;flex:0 0 auto}
.pkg .btn{margin-top:auto;width:100%;justify-content:center}
