:root { --ink:#10252c; --pine:#153b3e; --cream:#f8f1e4; --paper:#fffdf7; --coral:#e85d3f; --gold:#f6bd60; --mist:#d6e8df; --line:#c7d3ca; }
* { box-sizing:border-box; }
body { margin:0; color:var(--ink); background:var(--cream); font:17px/1.55 "Avenir Next", Avenir, "Trebuchet MS", sans-serif; }
a { color:inherit; }
.shell { width:min(1120px, calc(100% - 40px)); margin:0 auto; }
.masthead { position:relative; overflow:hidden; padding:22px 0 96px; color:var(--paper); background:var(--pine); }
.legal-masthead { padding-bottom:22px; }
.masthead::before { position:absolute; inset:0; content:""; opacity:.72; background:linear-gradient(118deg, transparent 0 48%, #2e6460 48% 49%, transparent 49% 100%), radial-gradient(circle at 83% 19%, #ef825d 0 5%, transparent 5.2%); }
.topline, .hero { position:relative; }
.topline { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.brand { display:flex; align-items:center; gap:10px; color:var(--paper); text-decoration:none; font:700 22px/1 "Avenir Next", sans-serif; letter-spacing:-.06em; }
.brand-mark { display:grid; width:29px; height:29px; place-items:center; color:var(--pine); background:var(--gold); border-radius:8px 8px 8px 1px; font:700 21px Georgia, serif; }
.nav-links { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:18px; }
.nav-links a { color:#d8e6dc; text-decoration:none; font:700 12px/1 "Avenir Next", sans-serif; letter-spacing:.04em; }
.nav-links a:hover { color:var(--gold); }
.nav-links .nav-bot { padding:8px 10px; border:1px solid var(--gold); border-radius:6px; color:var(--pine); background:var(--gold); }
.nav-links .nav-bot:hover { color:var(--pine); background:#ffd17e; }
.hero { display:grid; grid-template-columns:minmax(0,1.13fr) minmax(280px,.87fr); gap:54px; align-items:end; padding-top:106px; }
.article-hero { padding-top:84px; }
.eyebrow, .section-kicker, .card-tag { margin:0 0 15px; color:var(--gold); font:700 12px/1.25 "Avenir Next", sans-serif; letter-spacing:.14em; text-transform:uppercase; }
h1, h2, h3 { font-family:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif; font-weight:600; }
h1 { max-width:760px; margin:0; font-size:clamp(48px, 7vw, 90px); line-height:.94; letter-spacing:-.065em; }
.article-hero h1 { font-size:clamp(45px, 6vw, 74px); }
.lead { max-width:650px; margin:27px 0 0; color:#d8e6dc; font-size:clamp(18px, 2vw, 22px); }
.free-note { margin:18px 0 0; color:var(--gold); font:700 13px/1.35 "Avenir Next", sans-serif; letter-spacing:.02em; }
.actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:34px; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:47px; padding:11px 18px; border:1px solid var(--gold); border-radius:7px; background:var(--gold); color:var(--pine); text-decoration:none; font:700 14px/1.1 "Avenir Next", sans-serif; transition:transform .2s ease, background .2s ease; }
.button:hover { transform:translateY(-2px); background:#ffd17e; }
.button.ghost { border-color:#779d95; background:transparent; color:var(--paper); }
.route-card { display:grid; gap:17px; padding:25px; border:1px solid #59827a; border-radius:13px; background:#103134; box-shadow:12px 12px 0 #0c2528; }
.route-label { color:#a8c6bd; font:700 11px/1 "Avenir Next", sans-serif; letter-spacing:.12em; text-transform:uppercase; }
.route { display:grid; grid-template-columns:1fr 34px 1fr; gap:8px; align-items:center; }
.route-node { padding:12px 10px; border:1px solid #5b877e; border-radius:7px; color:var(--paper); text-align:center; font:700 14px/1.2 "Avenir Next", sans-serif; }
.route-node.accent { color:var(--pine); border-color:var(--gold); background:var(--gold); }
.route-arrow { color:var(--coral); text-align:center; font:700 11px/1 "Avenir Next", sans-serif; text-transform:uppercase; }
.route-note { margin:0; color:#a8c6bd; font-size:13px; }
main { padding-top:84px; }
.section-head { display:grid; grid-template-columns:minmax(170px,.6fr) minmax(0,1.4fr); gap:34px; align-items:start; margin-bottom:30px; }
.section-kicker { color:#56716e; }
h2 { margin:0; font-size:clamp(34px, 4.6vw, 57px); line-height:.98; letter-spacing:-.055em; }
.cards { display:grid; grid-template-columns:repeat(2, 1fr); gap:16px; }
.card { min-height:250px; padding:25px; border:1px solid var(--line); border-radius:12px; background:var(--paper); }
.card:nth-child(2) { background:var(--mist); border-color:#a9cabc; }
.card-link { display:block; height:100%; text-decoration:none; }
.card-link:hover .card-more { color:var(--coral); }
.card-tag { color:#56716e; }
h3 { margin:46px 0 11px; font-size:28px; line-height:1; letter-spacing:-.04em; }
.card h3 { margin:0 0 12px; }
.card p, .copy-block p { margin:0; color:#50615f; }
.card-more { display:inline-block; margin-top:22px; color:var(--pine); font:700 13px/1 "Avenir Next", sans-serif; }
.content { width:min(760px, 100%); margin:88px auto; }
.legal-main { padding-top:64px; }
.legal-title { width:min(760px, 100%); margin:0 auto; }
.legal-title h1 { font-size:clamp(42px, 6vw, 64px); color:var(--pine); }
.legal-main .content { margin-top:30px; }
.home-content { width:100%; display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.copy-block { padding:36px 0; border-top:1px solid var(--line); }
.home-content .copy-block { padding:28px; border:1px solid var(--line); background:#f0eadc; }
.copy-block h2 { margin-bottom:20px; font-size:clamp(31px, 4vw, 47px); }
.copy-block p + p { margin-top:16px; }
.copy-block ul { display:grid; gap:12px; margin:22px 0 0; padding:0; list-style:none; }
.copy-block li { position:relative; padding-left:25px; color:#38524f; }
.copy-block li::before { position:absolute; left:0; content:"+"; color:var(--coral); font-weight:700; }
.closing { position:relative; overflow:hidden; margin:84px 0 0; padding:54px; color:var(--paper); background:var(--coral); }
.closing::after { position:absolute; top:-80px; right:4%; width:250px; height:250px; border:1px solid #f8b09b; border-radius:50%; content:""; }
.closing > * { position:relative; }
.closing .section-kicker { color:#ffd1bd; }
.closing h2 { max-width:690px; margin:14px 0 30px; }
.closing .button { background:var(--gold); }
footer { display:flex; justify-content:space-between; gap:24px; padding:27px 0 36px; color:#54716b; font-size:13px; }
footer nav { display:flex; flex-wrap:wrap; gap:18px; }
footer a { text-decoration:none; font-weight:700; }
footer a:hover { color:var(--coral); }
@media (max-width:760px) { .shell { width:min(100% - 28px, 620px); } .masthead { padding-bottom:66px; } .legal-masthead { padding-bottom:22px; } .hero, .section-head, .home-content { grid-template-columns:1fr; } .hero { gap:42px; padding-top:76px; } .article-hero { padding-top:64px; } h1 { font-size:clamp(46px, 16vw, 70px); } .route-card { box-shadow:8px 8px 0 #0c2528; } main { padding-top:57px; } .legal-main { padding-top:43px; } .cards { grid-template-columns:1fr; } .content { margin:56px auto; } .home-content { gap:12px; } .closing { margin:55px -14px 0; padding:35px 25px; } footer { display:block; } footer nav { margin-top:14px; } }
@media (max-width:460px) { .topline { align-items:flex-start; } .nav-links { gap:11px; padding-top:5px; } .nav-links a { font-size:11px; } .actions .button { width:100%; } }
