:root{
  --ink:#121821; --panel:#202b38; --chalk:#eceee7; --chalk-dim:#c7ccc2;
  --paper:#f6f5f0; --line:rgba(236,238,231,0.14);
  --signal:#e8b93f; --signal-ink:#3a2b06; --lane:#c2452f; --turf:#5c8a6e;
  --display:'Oswald',sans-serif; --body:'Inter',sans-serif; --mono:'IBM Plex Mono',monospace;
  --maxw:1180px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0; background:var(--paper); color:var(--ink); font-family:var(--body); line-height:1.6; -webkit-font-smoothing:antialiased;}
img{max-width:100%; display:block;}
a{color:inherit;}
.wrap{max-width:var(--maxw); margin:0 auto; padding:0 28px;}
h1,h2,h3,h4{font-family:var(--display); font-weight:600; letter-spacing:.01em; margin:0;}
.eyebrow{font-family:var(--mono); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--lane); font-weight:600;}
.eyebrow.on-dark{color:var(--signal);}
.skip-link{position:absolute; left:-999px; top:0; background:var(--signal); color:var(--signal-ink); padding:10px 16px; z-index:100;}
.skip-link:focus{left:12px; top:12px;}
:focus-visible{outline:3px solid var(--lane); outline-offset:2px;}

.disclosure{background:var(--ink); color:var(--chalk-dim); font-family:var(--mono); font-size:12.5px; text-align:center; padding:8px 16px;}
.disclosure strong{color:var(--chalk); font-weight:600;}

header.site{background:var(--ink); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:50;}
nav.wrap{display:flex; align-items:center; justify-content:space-between; padding:16px 28px; gap:24px;}
.logo{font-family:var(--display); color:var(--chalk); font-size:18px; font-weight:700; text-decoration:none; display:flex; align-items:center; gap:9px;}
.logo .mark{width:11px; height:24px; background:var(--signal); display:inline-block; transform:skewX(-12deg);}
.logo .mark2{width:11px; height:24px; background:var(--lane); display:inline-block; transform:skewX(-12deg); margin-left:-4px;}
.navlinks{display:flex; gap:24px; list-style:none; margin:0; padding:0; font-size:14px;}
.navlinks a{color:var(--chalk-dim); text-decoration:none; font-weight:500;}
.navlinks a:hover{color:var(--signal);}
.nav-cta{background:var(--signal); color:var(--signal-ink); font-weight:700; font-size:13.5px; padding:10px 18px; text-decoration:none; border-radius:2px; white-space:nowrap;}
@media (max-width:940px){ .navlinks{display:none;} }

nav.breadcrumb{padding:12px 28px 0; font-family:var(--mono); font-size:11.5px; color:#8a8f80; max-width:var(--maxw); margin:0 auto;}
nav.breadcrumb a{color:#8a8f80; text-decoration:none;}
nav.breadcrumb a:hover{color:var(--lane);}
nav.breadcrumb .sep{margin:0 6px; color:#c9c5b6;}
nav.breadcrumb .current{color:var(--ink);}

.lane-divider{display:flex; align-items:center; gap:16px; margin:0 0 40px 0;}
.lane-divider .lbl{font-family:var(--mono); font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--lane); white-space:nowrap; font-weight:600;}
.lane-divider .track{flex:1; height:10px; background-image:repeating-linear-gradient(90deg, currentColor 0 2px, transparent 2px 22px); color:rgba(18,24,33,0.18);}
section.on-dark .lane-divider .lbl{color:var(--signal);}
section.on-dark .lane-divider .track{color:rgba(236,238,231,0.18);}

/* ===== ARTICLE HERO (interior pages) ===== */
.art-hero{background:radial-gradient(circle at 8px 8px, rgba(236,238,231,0.05) 1.5px, transparent 1.6px) 0 0/26px 26px, var(--ink); color:var(--chalk); padding:44px 0 52px;}
.art-hero h1{font-size:clamp(28px,4vw,44px); line-height:1.08; color:var(--chalk); margin:14px 0 16px; text-transform:uppercase; max-width:20ch;}
.art-hero p.lede{font-size:16.5px; color:var(--chalk-dim); max-width:62ch; margin:0 0 18px;}
.art-hero .stat-row{display:flex; gap:20px; flex-wrap:wrap; font-family:var(--mono); font-size:12px; color:var(--chalk-dim);}
.art-hero .stat-row b{color:var(--signal);}

/* ===== HOME HERO ===== */
.hero{background:radial-gradient(circle at 8px 8px, rgba(236,238,231,0.05) 1.5px, transparent 1.6px) 0 0/26px 26px, var(--ink); color:var(--chalk); padding:56px 0 76px;}
.hero-grid{display:grid; grid-template-columns:1.05fr 0.95fr; gap:56px; align-items:start;}
@media (max-width:980px){ .hero-grid{grid-template-columns:1fr;} }
.hero h1{font-size:clamp(30px,4.2vw,50px); line-height:1.06; color:var(--chalk); margin:14px 0 18px; text-transform:uppercase;}
.hero h1 em{font-style:normal; color:var(--signal);}
.hero p.lede{font-size:17px; color:var(--chalk-dim); max-width:54ch; margin:0 0 26px;}
.hero-meta{display:flex; gap:20px; flex-wrap:wrap; font-family:var(--mono); font-size:12px; color:var(--chalk-dim); margin-bottom:8px;}
.hero-meta b{color:var(--chalk);}

.calc{background:var(--panel); border:1px solid var(--line); border-radius:6px; padding:26px 26px 22px;}
.calc-head{display:flex; justify-content:space-between; align-items:baseline; margin-bottom:18px;}
.calc-head h2{font-size:15px; color:var(--chalk); text-transform:uppercase; letter-spacing:.04em;}
.calc-head span{font-family:var(--mono); font-size:11px; color:var(--chalk-dim);}
.calc-step{margin-bottom:18px;}
.calc-step .step-lbl{font-family:var(--mono); font-size:11.5px; color:var(--signal); letter-spacing:.08em; text-transform:uppercase; display:flex; align-items:center; gap:8px; margin-bottom:9px;}
.calc-step .step-lbl .n{width:18px; height:18px; border:1px solid var(--signal); border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-size:10.5px; color:var(--signal);}
.opt-row{display:flex; gap:8px; flex-wrap:wrap;}
.opt{flex:1 1 auto; min-width:86px; background:transparent; border:1px solid var(--line); color:var(--chalk-dim); font-family:var(--body); font-size:13px; font-weight:600; padding:10px 8px; border-radius:4px; cursor:pointer; text-align:center; transition:border-color .15s, color .15s, background .15s;}
.opt:hover{border-color:var(--chalk-dim);}
.opt[aria-pressed="true"]{background:var(--signal); border-color:var(--signal); color:var(--signal-ink);}
.fam-stepper{display:flex; align-items:center; gap:14px;}
.fam-btn{width:34px; height:34px; border-radius:4px; border:1px solid var(--line); background:transparent; color:var(--chalk); font-size:18px; cursor:pointer; line-height:1;}
.fam-count{font-family:var(--mono); font-size:15px; color:var(--chalk); min-width:70px; text-align:center;}
.calc-total{margin-top:20px; padding-top:18px; border-top:1px dashed var(--line);}
.calc-total .lbl{font-size:12.5px; color:var(--chalk-dim); font-family:var(--mono); text-transform:uppercase; letter-spacing:.06em;}
.calc-total .val{font-family:var(--mono); font-size:34px; font-weight:600; color:var(--signal); line-height:1;}
.calc-total .val small{font-size:14px; color:var(--chalk-dim); font-weight:500;}
.calc-sub{font-family:var(--mono); font-size:11.5px; color:var(--chalk-dim); margin-top:6px;}
.calc-note{font-size:11.5px; color:var(--chalk-dim); margin-top:14px; line-height:1.5;}

section{padding:56px 0;}
section.on-dark{background:var(--ink); color:var(--chalk);}
section.tinted{background:#ece9de;}
.sec-head{max-width:660px; margin-bottom:32px;}
.sec-head h2{font-size:clamp(24px,2.8vw,34px); text-transform:uppercase; margin:10px 0 12px;}
.sec-head p{color:#4a4f47; font-size:15.5px;}
section.on-dark .sec-head p{color:var(--chalk-dim);}

.trust{background:var(--paper); border-top:1px solid #dcd8c9; border-bottom:1px solid #dcd8c9;}
.trust .wrap{display:grid; grid-template-columns:repeat(4,1fr); gap:24px; padding:24px 28px;}
@media (max-width:760px){ .trust .wrap{grid-template-columns:repeat(2,1fr);} }
.trust-item{font-family:var(--mono); font-size:11.5px; color:#5a5f56;}
.trust-item b{display:block; font-family:var(--display); font-size:21px; color:var(--ink); text-transform:uppercase; margin-bottom:2px;}

.plans{display:grid; grid-template-columns:repeat(4,1fr); gap:16px;}
@media (max-width:980px){ .plans{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .plans{grid-template-columns:1fr;} }
.plan-card{background:#fff; border:1px solid #ddd9ca; border-radius:6px; padding:22px 20px; position:relative;}
.plan-card.featured{border-color:var(--lane); box-shadow:0 0 0 1px var(--lane);}
.plan-card .tag{position:absolute; top:-11px; left:18px; background:var(--lane); color:#fff; font-family:var(--mono); font-size:10.5px; padding:3px 9px; letter-spacing:.06em; text-transform:uppercase; border-radius:2px;}
.plan-card h3{font-size:19px; text-transform:uppercase; margin-bottom:4px;}
.plan-card .price{font-family:var(--mono); font-size:29px; font-weight:600; color:var(--ink); margin:8px 0 2px;}
.plan-card .price small{font-size:13px; font-weight:500; color:#6a6f63;}
.plan-card .range{font-family:var(--mono); font-size:11.5px; color:#8a8f80; margin-bottom:14px;}
.plan-card ul{list-style:none; margin:0; padding:0; font-size:13.5px; color:#3d4038;}
.plan-card li{padding:6px 0; border-top:1px solid #eeece2; display:flex; gap:8px;}
.plan-card li:first-child{border-top:none;}
.plan-card li::before{content:"✓"; color:var(--turf); font-weight:700;}

.fees{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
@media (max-width:860px){ .fees{grid-template-columns:1fr;} }
.fee-card{background:var(--panel); border:1px solid var(--line); border-radius:6px; padding:22px;}
.fee-card.light{background:#fff; border-color:#ddd9ca;}
.fee-card .amt{font-family:var(--mono); font-size:25px; color:var(--signal); font-weight:600;}
.fee-card.light .amt{color:var(--lane);}
.fee-card h4{color:var(--chalk); font-size:15px; text-transform:uppercase; margin:6px 0 8px;}
.fee-card.light h4{color:var(--ink);}
.fee-card p{color:var(--chalk-dim); font-size:13.5px; margin:0;}
.fee-card.light p{color:#4a4f47;}

.pass-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:14px;}
@media (max-width:900px){ .pass-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:560px){ .pass-grid{grid-template-columns:1fr;} }
.pass-card{background:#fff; border:1px solid #ddd9ca; border-radius:6px; padding:18px;}
.pass-card .badge{font-family:var(--mono); font-size:10.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--lane); font-weight:600;}
.pass-card h4{font-size:15.5px; margin:8px 0 6px;}
.pass-card p{font-size:13px; color:#4a4f47; margin:0;}

table.hours, table.cmp-table, table.data-table{width:100%; border-collapse:collapse; font-size:14px; background:#fff;}
table.hours th, table.hours td, table.cmp-table th, table.cmp-table td, table.data-table th, table.data-table td{padding:12px 14px; border-bottom:1px solid #e5e2d5; text-align:left;}
table.hours th, table.cmp-table th, table.data-table th{font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:#6a6f63; font-weight:600;}
.cmp-table td.hi{font-weight:700; color:var(--lane);}
.cmp-wrap{overflow-x:auto; border:1px solid #ddd9ca; border-radius:6px;}
.two-col{display:grid; grid-template-columns:1fr 1fr; gap:22px;}
@media (max-width:860px){ .two-col{grid-template-columns:1fr;} }
.holiday-note{font-size:13px; color:#4a4f47; margin-top:14px;}

.hub-cat{margin-bottom:36px;}
.hub-cat-head{display:flex; align-items:baseline; gap:12px; margin-bottom:16px; flex-wrap:wrap;}
.hub-cat-head h3{font-size:18px; text-transform:uppercase; color:var(--ink);}
.hub-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
@media (max-width:900px){ .hub-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:600px){ .hub-grid{grid-template-columns:1fr;} }
.hub-card{background:#fff; border:1px solid #ddd9ca; border-radius:5px; padding:16px 17px; text-decoration:none; color:var(--ink); display:block; transition:border-color .15s, transform .15s;}
.hub-card:hover{border-color:var(--lane); transform:translateY(-2px);}
.hub-card .k{font-family:var(--mono); font-size:10.5px; color:#8a8f80; text-transform:uppercase; letter-spacing:.05em;}
.hub-card h4{font-size:14.5px; font-family:var(--body); font-weight:700; margin:6px 0 0; line-height:1.35;}
.hub-card .vol{font-family:var(--mono); font-size:10.5px; color:var(--turf); margin-top:6px;}

.faq{max-width:820px;}
details{border-bottom:1px solid var(--line); padding:16px 0;}
details summary{font-family:var(--display); font-size:16.5px; cursor:pointer; list-style:none; display:flex; justify-content:space-between; align-items:center; gap:14px; color:var(--chalk);}
section:not(.on-dark) details summary{color:var(--ink);}
details summary::-webkit-details-marker{display:none;}
details summary::after{content:"+"; font-size:22px; color:var(--signal); font-family:var(--body);}
details[open] summary::after{content:"–";}
details p{color:var(--chalk-dim); font-size:14.5px; margin:12px 0 0; max-width:66ch;}
section:not(.on-dark) details p{color:#4a4f47;}

.author{display:flex; gap:18px; align-items:flex-start; background:#fff; border:1px solid #ddd9ca; border-radius:6px; padding:22px;}
.author .pic{width:56px; height:56px; border-radius:50%; background:var(--lane); flex-shrink:0; display:flex; align-items:center; justify-content:center; color:#fff; font-family:var(--display); font-size:20px;}
.author h4{font-size:15px; margin-bottom:3px;}
.author p{font-size:13.5px; color:#5a5f56; margin:0;}

.cta-band{background:var(--lane); color:#fff; text-align:center; padding:50px 28px;}
.cta-band h2{font-size:clamp(22px,3.2vw,32px); text-transform:uppercase; margin-bottom:12px;}
.cta-band p{color:rgba(255,255,255,0.85); margin-bottom:22px;}
.btn-primary{background:var(--ink); color:var(--chalk); text-decoration:none; font-weight:700; padding:14px 30px; border-radius:3px; display:inline-block; font-size:14.5px;}

/* ===== ARTICLE PROSE ===== */
.prose{max-width:760px;}
.prose p{font-size:15.5px; color:#33362f; margin:0 0 16px;}
.prose h2{font-size:23px; text-transform:uppercase; margin:0 0 14px;}
.prose h3{font-size:17px; margin:0 0 10px; text-transform:none; font-family:var(--body); font-weight:700;}
.prose ul, .prose ol{font-size:15px; color:#33362f; padding-left:22px; margin:0 0 16px;}
.prose li{margin-bottom:6px;}
.prose .callout{background:#fff; border-left:3px solid var(--lane); border-radius:0 6px 6px 0; padding:16px 18px; font-size:14.5px; color:#33362f; margin:20px 0;}
.prose .callout b{color:var(--lane);}

.toc{background:#fff; border:1px solid #ddd9ca; border-radius:6px; padding:18px 20px; margin-bottom:32px; max-width:420px;}
.toc h4{font-family:var(--mono); font-size:11px; text-transform:uppercase; letter-spacing:.06em; color:#8a8f80; margin-bottom:10px;}
.toc ol{margin:0; padding-left:18px; font-size:13.5px;}
.toc li{margin-bottom:6px;}
.toc a{text-decoration:none; color:var(--ink);}
.toc a:hover{color:var(--lane);}

.related-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:14px;}
@media (max-width:900px){ .related-grid{grid-template-columns:repeat(2,1fr);} }
@media (max-width:600px){ .related-grid{grid-template-columns:1fr;} }

footer{background:var(--ink); color:var(--chalk-dim); padding:50px 0 26px; font-size:13.5px;}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:34px; margin-bottom:34px;}
@media (max-width:760px){ .foot-grid{grid-template-columns:1fr 1fr;} }
.foot-grid h5{color:var(--chalk); font-family:var(--mono); font-size:11.5px; text-transform:uppercase; letter-spacing:.06em; margin-bottom:14px;}
.foot-grid ul{list-style:none; margin:0; padding:0;}
.foot-grid li{margin-bottom:9px;}
.foot-grid a{color:var(--chalk-dim); text-decoration:none;}
.foot-grid a:hover{color:var(--signal);}
.foot-legal{border-top:1px solid var(--line); padding-top:22px; font-size:12px; color:#8a9099; line-height:1.6;}
