:root{
  --bg:#f7f2e9; --bg2:#fffdf7;
  --card:#fffdf7; --card2:#fbf7ee;
  --line:#e3d7bf; --line2:#cdbb96;
  --ink:#221c12; --mut:#5f5747; --mut2:#3f382c;
  --pine:#14342a; --pine2:#1d4a3a;
  --ember:#b03a08; --ember2:#8f2c05;
  --amb:#8a5a00; --ambbg:#fdf3dd;
  --grn:#14532d; --grnbg:#e2efdf;
  --grad:linear-gradient(92deg,#e0600f,#b03a08);
  --gradbtn:linear-gradient(92deg,#8f2c05,#b03a08 60%,#c44a0c);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0; color:var(--ink); background-color:var(--bg);
  font-family:"Inter","SF Pro Display",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  line-height:1.55; font-size:16px;
  background-image:
    linear-gradient(180deg,#fbf7ee,var(--bg) 340px);
  background-repeat:no-repeat;
}
.wrap{max-width:1120px; margin:0 auto; padding:0 18px; position:relative; z-index:1}
a{color:var(--ember)}
:focus-visible{outline:2px solid var(--ember); outline-offset:2px}

/* ---------- site header ---------- */
.sitehead{padding:22px 0 4px}
.brandrow{display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap}
.brand{display:flex; align-items:center; gap:13px; text-decoration:none}
.brand svg{flex:0 0 auto; display:block}
.wm{font-size:27px; font-weight:800; letter-spacing:-.025em; color:var(--ink); line-height:1; white-space:nowrap}
.wm .g{color:var(--pine)}
.wm .r{color:var(--ember)}
nav.main{display:flex; gap:6px; flex-wrap:wrap; align-items:center; margin-top:14px}
nav.main a{
  color:var(--mut2); text-decoration:none; font-size:15px; font-weight:600;
  padding:9px 13px; border-radius:10px; border:1px solid transparent;
}
nav.main a:hover{color:var(--ink); border-color:var(--line2)}
nav.main a.cta{
  color:#fff; background:var(--gradbtn); border-color:transparent;
  box-shadow:0 8px 20px rgba(176,58,8,.28), inset 0 1px 0 rgba(255,255,255,.3);
}
@media (min-width:720px){ nav.main{margin-top:0} }

/* ---------- headings / hero ---------- */
h1{font-size:clamp(29px,6.2vw,50px); line-height:1.1; margin:22px 0 14px; font-weight:800; letter-spacing:-.025em; max-width:17em; overflow-wrap:anywhere}
h2{font-size:clamp(22px,4.6vw,29px); font-weight:800; letter-spacing:-.02em; margin:0 0 10px}
.hero{
  margin-top:18px; border-radius:22px; padding:30px 26px 34px; color:#f5efe0;
  background:
    radial-gradient(600px 300px at 85% -40px, rgba(224,96,15,.35), rgba(224,96,15,0) 70%),
    linear-gradient(160deg,var(--pine2),var(--pine) 70%);
  box-shadow:0 22px 48px rgba(20,52,42,.35);
}
.hero h1{color:#fdf9ee; margin-top:0}
.hero h1 .g{color:#ffb25e}
.hero p{color:#dde5d5}
.hero .sub{color:#e9e2cd}
.rigline{
  display:block; font-size:clamp(16px,3.4vw,20px); font-weight:700; letter-spacing:-.01em;
  color:#fff; border:1px solid rgba(255,255,255,.28); border-radius:14px; padding:13px 17px;
  background:rgba(255,255,255,.07);
}
.sub{color:var(--mut2); font-size:17px; margin:14px 2px 0; max-width:42em}
.crumbs{font-size:14px; color:var(--mut); margin:16px 0 0}
.crumbs a{color:var(--mut2); text-decoration:none; border-bottom:1px solid var(--line2)}
.checked{color:var(--mut); font-size:15px; margin:0 0 6px}

/* ---------- search ---------- */
.search{
  margin:26px 0 6px; border:1px solid var(--line2); border-radius:20px; padding:20px;
  background:linear-gradient(180deg, var(--bg2), var(--card2));
  box-shadow:0 14px 34px rgba(60,45,20,.10), inset 0 1px 0 rgba(255,255,255,.7);
}
.search h2{margin:0 0 4px; font-size:20px; font-weight:750; letter-spacing:-.015em}
.search p{margin:0 0 16px; color:var(--mut); font-size:15px}
.srow{display:grid; grid-template-columns:1fr; gap:10px}
.field label{display:block; font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--mut); margin:0 0 6px 2px}
.field input{
  width:100%; min-width:0; padding:13px 14px; font-size:16px; color:var(--ink);
  background:#fff; border:1px solid var(--line2); border-radius:12px; outline:none;
  font-family:inherit; min-height:48px;
}
.field input::placeholder{color:#8a7d63}
.field input:focus{border-color:var(--ember); box-shadow:0 0 0 3px rgba(224,96,15,.25)}
.sbtn{
  align-self:end; border:0; cursor:pointer; padding:14px 22px; border-radius:12px; min-height:50px;
  font-size:16px; font-weight:750; color:#fff; background:var(--gradbtn);
  box-shadow:0 10px 24px rgba(176,58,8,.30), inset 0 1px 0 rgba(255,255,255,.35);
  font-family:inherit; letter-spacing:.01em; text-decoration:none; display:inline-block; text-align:center;
}
.sbtn:active{transform:translateY(1px)}
.sresult{display:none; margin:16px 2px 0; border:1px solid rgba(176,58,8,.45); border-radius:14px; padding:14px 16px; background:#fdf6e9; color:var(--ink); font-size:16px}
.sresult a{color:var(--ember); font-weight:700}
@media (min-width:720px){ .srow{grid-template-columns:1fr auto} }

/* ---------- sections ---------- */
section{padding:30px 0 4px}
section.alt{
  background:linear-gradient(180deg, rgba(224,96,15,.06), rgba(20,83,45,.05));
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  margin:26px -18px 0; padding:30px 18px 10px;
}
.shead{display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin:0 0 6px}
.shead h2{margin:0}
.pill{font-size:11px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; padding:5px 11px; border-radius:999px; border:1px solid var(--line2)}
.pill.free{color:var(--grn); background:var(--grnbg); border-color:rgba(20,83,45,.35)}
.pill.lock{color:var(--amb); background:var(--ambbg)}
.pill.open{color:#fff; background:var(--pine); border-color:transparent}
.ssub{color:var(--mut); margin:0 0 18px; font-size:16px; max-width:44em}
.biglink{font-weight:700; font-size:17px}

/* ---------- cards ---------- */
.cards{display:grid; grid-template-columns:1fr; gap:16px}
@media (min-width:720px){ .cards{grid-template-columns:1fr 1fr} }
@media (min-width:1024px){ .cards{grid-template-columns:1fr 1fr 1fr} }
.card{
  position:relative; border:1px solid var(--line2); border-radius:18px; padding:20px 20px 18px;
  background:linear-gradient(180deg, var(--card), var(--card2));
  box-shadow:0 12px 30px rgba(60,45,20,.08), inset 0 1px 0 rgba(255,255,255,.8);
  overflow:hidden; min-width:0;
}
.card::before{content:""; position:absolute; top:0; left:0; right:0; height:3px; background:linear-gradient(90deg, transparent, rgba(176,58,8,.4), transparent)}
.card.free::before{background:linear-gradient(90deg, transparent, #2e7d46, transparent)}
.card.paid::before{background:var(--grad)}
.card h3{margin:0 0 2px; font-size:20px; font-weight:780; letter-spacing:-.015em; line-height:1.25; overflow-wrap:anywhere}
.grade{color:var(--mut); font-size:12px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; margin:0 0 2px}
.row{margin-top:13px; min-width:0}
.lab{font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--mut); margin-bottom:2px}
.val{font-size:16px; color:var(--ink); overflow-wrap:anywhere}
.val a{color:var(--ember); text-decoration:none; border-bottom:1px solid rgba(176,58,8,.4)}
.val a:hover{border-bottom-color:var(--ember)}
.mono{font-family:ui-monospace,"SF Mono",SFMono-Regular,Menlo,Consolas,monospace; font-size:15px; letter-spacing:.01em}
.who{font-weight:700}
.job{color:var(--mut2); font-weight:400}
.contact{margin-top:16px; border-top:1px solid var(--line); padding-top:6px}
.nocontact{margin-top:16px; border-top:1px solid var(--line); padding-top:12px; color:var(--mut); font-size:15px}
.lockzone{margin-top:16px; border:1px dashed rgba(176,58,8,.5); border-radius:14px; padding:18px 14px; text-align:center; background:var(--ambbg)}
.lockzone svg{width:26px; height:26px; color:var(--amb)}
.lockzone p{margin:8px 0 0; font-size:15px; font-weight:650; color:#5c4300}

/* ---------- paid panel ---------- */
.panel{margin:34px 0 10px; border-radius:22px; padding:1px; background:linear-gradient(120deg, rgba(224,96,15,.7), rgba(20,83,45,.55), rgba(224,96,15,.6)); box-shadow:0 18px 44px rgba(60,45,20,.16)}
.panel-in{border-radius:21px; padding:24px 22px; background:linear-gradient(180deg,#fffdf7,#fbf4e6)}
.panel h2{margin:0 0 6px; font-size:clamp(21px,4.4vw,26px)}
.panel p{color:var(--mut2); margin:0 0 12px; font-size:16px}
.script{display:flex; gap:11px; align-items:flex-start; margin:10px 0}
.script svg{flex:0 0 auto; width:20px; height:20px; color:#2e7d46; margin-top:2px}
.script b{font-weight:700}
.promise{margin:18px 0 2px; font-size:clamp(17px,3.8vw,20px); font-weight:750; line-height:1.45; color:var(--ink); border-top:1px solid var(--line2); padding-top:18px}
.promise .g{color:var(--ember)}
.price{font-size:clamp(26px,5vw,34px); font-weight:800; letter-spacing:-.02em; margin:6px 0 2px}
.price small{font-size:16px; color:var(--mut2); font-weight:600}

/* ---------- steps / lists ---------- */
.steps{display:grid; grid-template-columns:1fr; gap:14px}
@media (min-width:720px){ .steps{grid-template-columns:1fr 1fr 1fr} }
.step{border:1px solid var(--line2); border-radius:16px; padding:18px; background:linear-gradient(180deg, var(--card), var(--card2))}
.step .n{font-size:12px; font-weight:800; letter-spacing:.16em; text-transform:uppercase; color:var(--ember)}
.step h3{margin:6px 0 6px; font-size:18px}
.step p{margin:0; color:var(--mut2); font-size:15px}

/* ---------- prose (guides, legal) ---------- */
.prose{max-width:46em}
.prose p{color:var(--mut2); font-size:17px; margin:0 0 14px}
.prose h2{margin:28px 0 8px; font-size:23px}
.prose h3{margin:22px 0 6px; font-size:19px}
.prose ul{color:var(--mut2); font-size:17px; margin:0 0 14px; padding-left:22px}
.prose li{margin-bottom:7px}
.prose strong{color:var(--ink)}
.prose .answer{font-size:18px; color:var(--ink)}
blockquote.scriptline{
  margin:0 0 14px; border-left:3px solid var(--ember); padding:10px 16px;
  background:rgba(224,96,15,.07); border-radius:0 12px 12px 0; color:var(--ink); font-size:16px;
}
.door{margin:30px 0 8px; border:1px solid var(--line2); border-radius:18px; padding:22px; background:linear-gradient(180deg, rgba(224,96,15,.09), rgba(20,83,45,.05))}
.door p{margin:0 0 12px; font-size:18px; color:var(--ink)}
.hubgroup{margin:0 0 26px}
.guidelist{list-style:none; margin:0; padding:0}
.guidelist li{border:1px solid var(--line2); border-radius:14px; padding:16px 18px; margin-bottom:10px; background:linear-gradient(180deg, var(--card), var(--card2))}
.guidelist a{font-size:18px; font-weight:700; text-decoration:none}
.guidelist p{margin:4px 0 0; color:var(--mut); font-size:15px}

/* ---------- members ---------- */
.membanner{margin:24px 0 4px; border:1px solid rgba(20,83,45,.45); border-radius:16px; padding:18px; background:var(--grnbg)}
.membanner h1{margin:0 0 6px; font-size:clamp(26px,5.4vw,40px)}
.membanner p{color:var(--mut2); margin:0; font-size:16px}
.savenote{margin:8px 0 2px; border:2px solid var(--ember2); border-radius:14px; padding:9px 12px; background:var(--ambbg)}
.savenote h2{margin:0 0 2px; font-size:20px; line-height:1.15; color:var(--ember2)}
.savenote p{color:var(--mut2); margin:0 0 2px; font-size:15px; line-height:1.3}
.savenote p:last-child{margin-bottom:0}
.savenote a{color:var(--ember2); font-weight:700}
.scriptblock{border:1px solid var(--line2); border-radius:18px; padding:22px; margin:0 0 16px; background:linear-gradient(180deg, var(--card), var(--card2))}
.scriptblock h3{margin:0 0 8px; font-size:20px}
.scriptblock p, .scriptblock li{color:var(--mut2); font-size:16px}
.scriptblock ul{padding-left:22px; margin:0 0 12px}
.scriptblock li{margin-bottom:7px}

/* ---------- footer ---------- */
footer{padding:36px 0 44px; color:var(--mut); font-size:14px; margin-top:34px; border-top:1px solid var(--line2)}
footer .frow{display:flex; gap:16px; flex-wrap:wrap; justify-content:space-between; align-items:flex-start}
footer nav{display:flex; gap:14px; flex-wrap:wrap}
footer nav a{color:var(--mut2); text-decoration:none}
footer p{margin:10px 0 0}

/* state lines: one uniform shape everywhere a state is listed */
.stategroup{margin:0 0 30px}
.stategroup h3{margin:0 0 2px; font-size:21px; font-weight:760; letter-spacing:-.015em}
.citylist{display:grid; grid-template-columns:1fr; gap:0 28px}
.cityline{font-size:17px; margin:0; padding:11px 2px; border-bottom:1px solid var(--line)}
@media (min-width:760px){.citylist{grid-template-columns:1fr 1fr}}
