
:root{--ink:#232f2a;--ink2:#5b6a62;--paper:#f7f2e8;--card:#fffdf8;--line:#e4dac7;--hair:#d9cdb5;--brand:#2e5c4f;--brand2:#1e4237;--accent:#bc5f3f;--accent2:#a85539;--gold:#a8843c;--cream:#f2ede1}
*{margin:0;padding:0;box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{font-family:'Public Sans',system-ui,sans-serif;background-color:var(--paper);color:var(--ink);line-height:1.68;font-size:16.5px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .035 0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E")}
h1,h2,h3,h4,.serif{font-family:'Fraunces',Georgia,serif;font-weight:600;line-height:1.2;letter-spacing:-.012em}
a{color:var(--brand);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--brand2)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}
::selection{background:#dce8e2}
.wrap{max-width:900px;margin:0 auto;padding:0 24px}
/* ---------- header ---------- */
header.site{background:var(--card);border-bottom:3px double var(--hair)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:15px;padding-bottom:15px;position:relative}
.logo{display:inline-flex;align-items:center;gap:10px;font-family:'Fraunces',serif;font-size:1.3rem;font-weight:700;color:var(--brand2);text-decoration:none;letter-spacing:-.01em}
.logo em{font-style:normal;color:var(--accent)}
.logo .seal{width:26px;height:26px;flex:none}
nav.top{display:flex;align-items:center;gap:22px;flex:none}
nav.top a{font-size:.92rem;color:var(--ink2);text-decoration:none;letter-spacing:.01em;white-space:nowrap}
nav.top a:hover{color:var(--brand)}
.dd{position:relative}
.dd>button{font:inherit;font-size:.92rem;background:none;border:none;color:var(--ink2);cursor:pointer;padding:0;letter-spacing:.01em;white-space:nowrap}
.dd>button:after{content:"";display:inline-block;width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);margin:0 0 3px 7px}
.dd>button:hover{color:var(--brand)}
.dd-menu{display:none;position:absolute;left:0;top:calc(100% + 10px);background:var(--card);border:1px solid var(--line);border-radius:9px;box-shadow:0 14px 28px -12px rgba(35,47,42,.25);min-width:190px;padding:6px 0;z-index:60}
.dd.open .dd-menu,.dd:hover .dd-menu,.dd:focus-within .dd-menu{display:block}
.dd-menu a{display:block;padding:8px 16px;font-size:.9rem}
.dd-menu a:hover{background:var(--cream)}
.dd-h{display:block;padding:8px 16px 2px;font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:var(--gold);font-weight:700;font-family:'Public Sans',sans-serif}
.dd-h:not(:first-child){margin-top:6px;border-top:1px solid var(--line);padding-top:10px}
.dd-wide .dd-menu{left:auto;right:0;min-width:520px;column-count:2;column-gap:0;padding:6px 0 10px}
.dd-wide .dd-h,.dd-wide .dd-menu a{break-inside:avoid}
.dd-wide .dd-h:not(:first-child){border-top:none;margin-top:6px}
nav.top a.navbuy{background:var(--accent);color:#fff;padding:8px 15px;border-radius:7px;font-weight:700;box-shadow:0 1px 0 rgba(35,47,42,.18);transition:background .15s,transform .15s}
nav.top a.navbuy:hover{background:var(--accent2);transform:translateY(-1px);color:#fff}
.menu-btn{display:none;background:none;border:none;cursor:pointer;padding:8px}
.menu-btn span{display:block;width:22px;height:2px;background:var(--brand2);margin:5px 0;border-radius:2px;transition:.22s}
.menu-btn[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-btn[aria-expanded="true"] span:nth-child(2){opacity:0}
.menu-btn[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
@media(max-width:860px){
 .menu-btn{display:block}
 nav.top{display:none;position:absolute;top:100%;left:0;right:0;background:var(--card);border-bottom:1px solid var(--line);box-shadow:0 16px 28px rgba(35,47,42,.09);flex-direction:column;align-items:flex-start;gap:0;padding:8px 24px 20px;z-index:50}
 nav.top.open{display:flex}
 nav.top a{margin:10px 0 0;font-size:1.02rem}

 nav.top a.navbuy{margin-top:16px}
 .dd{width:100%;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
 .dd>button{font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);font-weight:700;cursor:default}
 .dd>button:after{display:none}
 .dd-menu{display:block;position:static;border:none;box-shadow:none;padding:0;min-width:0;background:none;column-count:1}
 .dd-menu a{padding:8px 0}
 .dd-h{padding:10px 0 2px;border-top:none!important;margin-top:0!important}
}
/* ---------- hero & headings ---------- */
.hero{padding:64px 0 44px}
.hero h1{font-size:clamp(2rem,4.8vw,3.1rem);max-width:20ch;font-weight:640}
.hero p.lede{margin-top:16px;font-size:1.13rem;color:var(--ink2);max-width:56ch}
@media (prefers-reduced-motion:no-preference){
 .hero>*{opacity:0;transform:translateY(14px);animation:rise .65s cubic-bezier(.2,.7,.2,1) forwards}
 .hero>*:nth-child(2){animation-delay:.09s}.hero>*:nth-child(3){animation-delay:.18s}.hero>*:nth-child(4){animation-delay:.27s}
 @keyframes rise{to{opacity:1;transform:none}}
}
.crumb{font-size:.8rem;color:var(--ink2);padding-top:24px;letter-spacing:.04em;text-transform:uppercase}
.crumb a{color:var(--ink2)}
article h1{font-size:clamp(1.75rem,4vw,2.5rem);margin:12px 0 8px;font-weight:640}
.reviewed{font-size:.82rem;color:var(--ink2);border-bottom:1px solid var(--hair);padding-bottom:18px;margin-bottom:24px}
.reviewed b{color:var(--brand)}
article h2{font-size:1.45rem;margin:40px 0 12px;position:relative;padding-bottom:8px}
article h2:after{content:"";position:absolute;left:0;bottom:0;width:44px;border-bottom:2px solid var(--gold)}
article h3{font-size:1.1rem;margin:22px 0 6px}
article p{margin:10px 0}
article ul,article ol{margin:10px 0 10px 22px}
article li{margin:6px 0}
.sechead{font-family:'Fraunces',serif;font-size:1.5rem;margin:44px 0 4px}
/* ---------- boxes / tables ---------- */
.box{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:20px 22px;margin:20px 0;box-shadow:0 1px 2px rgba(35,47,42,.04)}
.box.steps{border-left:3px solid var(--brand)}
.box.warn{border-left:3px solid var(--gold)}
.box h3{margin-top:0}
.bt{font-family:'Fraunces',Georgia,serif;font-weight:600;line-height:1.2;letter-spacing:-.012em;font-size:1.1rem;margin:0 0 6px}
.cta .bt{color:#fff;margin:0 0 8px;font-size:1.2rem}
.pcard .bt{margin:12px 0 6px;font-size:1.03rem}
.tgroup .bt{margin:0 0 4px;font-size:.74rem;letter-spacing:.13em;text-transform:uppercase;color:var(--gold);font-family:'Public Sans',sans-serif;font-weight:700}
.facts{width:100%;border-collapse:collapse;margin:16px 0;font-size:.94rem;background:var(--card);border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:0 1px 2px rgba(35,47,42,.04)}
.facts th,.facts td{text-align:left;padding:11px 15px;border-bottom:1px solid var(--line);vertical-align:top}
.facts th{width:34%;color:var(--ink2);font-weight:600;background:var(--cream);font-size:.82rem;letter-spacing:.05em;text-transform:uppercase;font-family:'Public Sans',sans-serif}
.facts tr:last-child td,.facts tr:last-child th{border-bottom:none}
/* ---------- CTA ---------- */
.cta{position:relative;background:linear-gradient(140deg,#2e5c4f,#1e4237);color:#eef0e9;border-radius:12px;padding:26px 28px;margin:30px 0;box-shadow:inset 0 0 0 1px rgba(233,223,201,.28),0 10px 26px -14px rgba(30,66,55,.55)}
.cta:before{content:"";position:absolute;inset:7px;border:1px solid rgba(233,223,201,.22);border-radius:8px;pointer-events:none}
.cta h3{color:#fff;margin:0 0 8px;font-size:1.2rem}
.cta p{margin:0 0 14px;color:#ccdad2;font-size:.96rem}
.cta a.btn{display:inline-block;background:var(--cream);color:#1e4237;font-weight:700;padding:11px 20px;border-radius:7px;text-decoration:none;transition:transform .15s,box-shadow .15s}
.cta a.btn:hover{transform:translateY(-1px);box-shadow:0 6px 14px -6px rgba(0,0,0,.4);color:#1e4237}
.cta .fine{font-size:.76rem;color:#9fb6ab;margin-top:12px}
.cta .fine a{color:#cfe0d7}
/* ---------- faq / grid ---------- */
.faq details{background:var(--card);border:1px solid var(--line);border-radius:9px;margin:9px 0}
.faq summary{cursor:pointer;padding:14px 17px;font-weight:600;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+";float:right;color:var(--accent);font-weight:700;font-size:1.1rem;line-height:1}
.faq details[open] summary:after{content:"\2013"}
.faq .a{padding:0 17px 15px;color:var(--ink2)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:13px;margin:18px 0}
.grid a.tile{background:var(--card);border:1px solid var(--line);border-radius:9px;padding:15px 17px;text-decoration:none;color:var(--ink);font-weight:600;font-size:.95rem;transition:transform .16s,border-color .16s,box-shadow .16s}
.grid a.tile span{display:block;font-weight:400;font-size:.8rem;color:var(--ink2);margin-top:4px}
.grid a.tile:hover{border-color:var(--brand);transform:translateY(-2px);box-shadow:0 8px 18px -10px rgba(35,47,42,.25)}
pre.code{background:#1f2a26;color:#e9e4d6;border-radius:9px;padding:16px 18px;overflow:auto;font-size:.8rem;line-height:1.55;margin:10px 0 18px}
pre.code code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.jump{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:14px 0 6px}
.jump label{font-size:.88rem;font-weight:600;color:var(--ink2)}
.jump select{font:inherit;padding:9px 12px;border:1px solid var(--line);border-radius:7px;background:#fff;min-width:240px}
.showall{font:inherit;font-weight:600;background:var(--card);border:1px solid var(--line);border-radius:7px;padding:10px 18px;cursor:pointer;color:var(--brand);margin:4px 0 8px;transition:border-color .12s}
.showall:hover{border-color:var(--brand)}
/* ---------- footer ---------- */
footer.site{margin-top:72px;border-top:3px double var(--hair);background:var(--card)}
.ftop{display:grid;grid-template-columns:1fr 2.4fr;gap:40px;padding-top:38px;padding-bottom:34px}
.fbrand .logo{font-size:1.15rem}
.fbrand p{font-size:.84rem;color:var(--ink2);margin-top:12px;max-width:38ch;line-height:1.6}
.fcols{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.fcols h4{font-family:'Public Sans',sans-serif;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin-bottom:12px;font-weight:700}
.fcols a{display:block;font-size:.88rem;color:var(--ink2);text-decoration:none;padding:3.5px 0}
.fcols a:hover{color:var(--brand)}
.fbottom{border-top:1px solid var(--line)}
.fbottom .wrap{display:flex;flex-wrap:wrap;gap:6px 24px;justify-content:space-between;padding-top:14px;padding-bottom:16px;font-size:.76rem;color:var(--ink2)}
@media(max-width:760px){.ftop{grid-template-columns:1fr;gap:28px}.fcols{grid-template-columns:repeat(2,1fr);row-gap:26px}}
/* ---------- icons ---------- */
.ic{width:20px;height:20px;flex:none;vertical-align:-4px}
.pico .ic{width:28px;height:28px;color:var(--brand)}
/* ---------- checklist tool & wizard ---------- */
.tool{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:26px;margin:22px 0;box-shadow:0 1px 3px rgba(35,47,42,.05)}
.tool label.q{display:block;font-weight:600;margin:20px 0 8px}
.tool select{font:inherit;padding:10px 12px;border:1px solid var(--line);border-radius:7px;background:#fff}
.opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:9px}
.opts label{display:flex;gap:9px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:7px;padding:10px 12px;font-size:.92rem;cursor:pointer;transition:border-color .12s}
.opts label:hover{border-color:var(--brand)}
.opts input{accent-color:var(--brand)}
.seg{display:flex;gap:9px;flex-wrap:wrap}
.seg label{flex:1;min-width:150px;border:1px solid var(--line);border-radius:7px;padding:11px;cursor:pointer;background:#fff;font-weight:600;font-size:.94rem;transition:border-color .12s}
.seg input{display:none}
.seg span{display:flex;align-items:center;justify-content:center;gap:8px}
.seg .ic{color:var(--ink2)}
.seg label:has(input:checked){border-color:var(--brand);background:#eef3ef;box-shadow:inset 0 0 0 1px var(--brand)}
.seg label:has(input:checked) span,.seg label:has(input:checked) .ic{color:var(--brand2)}
button.gen,.tool button.gen{font:inherit;font-weight:700;background:var(--brand);color:#fff;border:none;border-radius:7px;cursor:pointer;margin-top:22px;padding:13px 24px;letter-spacing:.01em;transition:background .15s,transform .15s}
button.gen:hover{background:var(--brand2);transform:translateY(-1px)}
button.gen:disabled{opacity:.6;transform:none}
#result{display:none;margin-top:28px}
ol.plan{counter-reset:step;list-style:none;margin-left:0}
ol.plan>li{counter-increment:step;background:var(--card);border:1px solid var(--line);border-radius:9px;padding:15px 17px 15px 56px;margin:10px 0;position:relative}
ol.plan>li:before{content:counter(step);position:absolute;left:15px;top:15px;width:27px;height:27px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 1.5px var(--card),0 0 0 2.5px var(--gold);color:#fff;font-weight:700;font-size:.84rem;display:flex;align-items:center;justify-content:center}
.toolbar{display:flex;gap:10px;margin:14px 0;flex-wrap:wrap}
.toolbar button{font:inherit;display:inline-flex;align-items:center;gap:7px;padding:9px 15px;border-radius:7px;border:1px solid var(--line);background:#fff;cursor:pointer}
.toolbar button:hover{border-color:var(--brand)}
/* ---------- hero privacy line & tracker ---------- */
.hero-priv{margin-top:18px;font-size:.92rem;color:var(--ink2);display:flex;gap:9px;align-items:center}
.hero-priv .ic{color:var(--brand)}
.hero-alt{margin-left:14px;font-weight:600}
.split{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:6px 0 10px}
.splitcard{display:block;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px 22px;text-decoration:none;color:var(--ink);transition:border-color .15s,transform .15s,box-shadow .15s}
.splitcard:hover{border-color:var(--brand);transform:translateY(-2px);box-shadow:0 10px 22px -12px rgba(35,47,42,.3)}
.splitcard .bt{display:flex;align-items:center;gap:8px;font-size:1.15rem;margin-bottom:8px}
.splitcard .bt .ic{color:var(--brand)}
.splitcard p{margin:0;font-size:.93rem;color:var(--ink2)}
.splitcard .go{display:inline-block;margin-top:12px;font-weight:700;color:var(--brand)}
.order{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0 8px}
.ostep{position:relative;background:var(--card);border:1px solid var(--line);border-radius:11px;padding:18px 16px 16px 18px}
.ostep>b{position:absolute;top:-12px;left:14px;width:26px;height:26px;border-radius:50%;background:var(--brand);color:#fff;font-size:.82rem;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 1.5px var(--card),0 0 0 2.5px var(--gold)}
.ostep .bt{font-size:1.02rem;margin:4px 0 6px}
.ostep p{margin:0;font-size:.88rem;color:var(--ink2)}
.ostep .src{display:inline-block;margin-top:10px;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);font-weight:700}
.why{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:16px 0}
.why>div{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--brand);border-radius:10px;padding:16px 18px}
.why .bt{font-size:1.02rem;margin-bottom:6px}
.why p{margin:0;font-size:.9rem;color:var(--ink2)}
@media(max-width:760px){.split,.why{grid-template-columns:1fr}.order{grid-template-columns:1fr 1fr}.hero-alt{display:block;margin:12px 0 0}}
@media(max-width:480px){.order{grid-template-columns:1fr}}
.tgroup{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 18px;margin:12px 0}
.tgroup h3{margin:0 0 4px;font-size:.74rem;letter-spacing:.13em;text-transform:uppercase;color:var(--gold);font-family:'Public Sans',sans-serif;font-weight:700}
.titem{display:flex;gap:12px;align-items:flex-start;padding:9px 0;border-top:1px solid var(--line);cursor:pointer}
.titem:first-of-type{border-top:none}
.titem input{margin-top:4px;accent-color:var(--brand);width:17px;height:17px;flex:none}
.titem b{display:block;font-size:.95rem}
.titem span{font-size:.82rem;color:var(--ink2)}
.titem.done b{text-decoration:line-through;color:var(--ink2)}
.pstat{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px}
.pstat b{font-family:'Fraunces',serif;font-size:1.7rem;color:var(--brand2)}
.pbar{height:10px;background:var(--cream);border:1px solid var(--line);border-radius:99px;overflow:hidden;margin:8px 0 4px}
.pbar i{display:block;height:100%;background:linear-gradient(90deg,var(--brand),var(--brand2));width:0;transition:width .3s}
@media print{header.site,footer.site,.tool .inputs,.toolbar,.cta{display:none!important}body{background:#fff}#result{display:block!important}}
/* ---------- packet & wizard pages ---------- */
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:15px;margin:26px 0}
.pcard{background:var(--card);border:1px solid var(--line);border-radius:11px;padding:20px;box-shadow:0 1px 2px rgba(35,47,42,.04)}
.pcard h3{margin:12px 0 6px;font-size:1.03rem}
.pcard p{font-size:.89rem;color:var(--ink2);margin:0}
.buybtn{display:inline-block;background:var(--accent);color:#fff!important;font-weight:800;font-size:1.08rem;padding:15px 32px;border-radius:9px;text-decoration:none;box-shadow:0 10px 22px -10px rgba(188,95,63,.6);transition:transform .15s,background .15s}
.buybtn:hover{background:var(--accent2);transform:translateY(-2px)}
.frow{display:flex;gap:12px;flex-wrap:wrap;margin:10px 0}
.frow label{flex:1;min-width:180px;font-size:.87rem;font-weight:600;color:var(--ink2)}
.frow input,.frow select{display:block;width:100%;margin-top:5px;font:inherit;font-weight:400;color:var(--ink);padding:10px 12px;border:1px solid var(--line);border-radius:7px;background:#fff}
.frow input:focus,.frow select:focus{border-color:var(--brand);outline:none;box-shadow:0 0 0 3px rgba(46,92,79,.12)}
.hint{font-weight:400;color:var(--ink2);font-size:.77rem}
.wz h2,.wz .wq{font-family:'Fraunces',Georgia,serif;font-weight:600;line-height:1.2;letter-spacing:-.012em;font-size:1.17rem;margin:28px 0 6px;border-top:1px solid var(--hair);padding-top:20px}
.wz h2:after{display:none}
.wz .wstep+h2,.wz .wstep+.wq{border-top:none;padding-top:0;margin-top:0}
.wstep{font-size:.86rem;color:var(--ink2);margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--hair)}
.wnum{display:inline-block;background:var(--brand);color:#fff;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:3px 9px;border-radius:99px;margin-right:10px;vertical-align:1px}
.qlab{font-size:.9rem;font-weight:600;color:var(--ink2);margin-bottom:8px}
.seg.small label{min-width:90px;flex:0 1 auto;padding:8px 16px;font-size:.88rem}
#plan h2{border-top:none;padding-top:0}
#plan .box{margin:14px 0}
#plan ul{margin:8px 0 4px 20px}
.dlgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(225px,1fr));gap:11px;margin:16px 0}
.dl{font:inherit;text-align:left;display:flex;gap:11px;align-items:flex-start;background:var(--brand);color:#fff;border:none;border-radius:9px;padding:15px 17px;font-weight:700;cursor:pointer;transition:background .15s,transform .15s}
.dl .ic{margin-top:2px;color:#cfe0d7}
.dl span{font-weight:400;font-size:.79rem;color:#b9cdc4;display:block}
.dl:hover{background:var(--brand2);transform:translateY(-1px)}
