:root{
  --ink:#1C2B45;
  --ink-soft:#3C4A63;
  --paper:#E9EAE1;
  --paper-light:#F7F7F1;
  --card:#FAF9F4;
  --brass:#B08D3E;
  --brass-dark:#8C6F2E;
  --stamp:#A6402F;
  --savings:#3D6B57;
  --savings-light:#E4EEE8;
  --line: rgba(28,43,69,0.14);
  --radius: 4px;
  --shadow: 0 12px 32px rgba(28,43,69,0.10);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:'IBM Plex Sans', sans-serif;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3{
  font-family:'Fraunces', serif;
  font-weight:600;
  line-height:1.08;
  margin:0 0 .5em;
  letter-spacing:-0.01em;
}
.mono{
  font-family:'IBM Plex Mono', monospace;
}
a{color:inherit;}
.wrap{max-width:1140px; margin:0 auto; padding:0 28px;}
section{padding:96px 0;}
@media (max-width:720px){ section{padding:64px 0;} }

/* ---------- HEADER ---------- */
header{
  position:sticky; top:0; z-index:50;
  background:rgba(233,234,225,0.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:18px 0;
}
.logo{
  font-family:'Fraunces', serif; font-weight:700; font-size:1.15rem;
  letter-spacing:-0.01em;
  display:flex; align-items:baseline; gap:8px;
}
.logo span{
  font-family:'IBM Plex Mono', monospace; font-weight:500; font-size:.62rem;
  background:var(--ink); color:var(--paper-light);
  padding:2px 6px; border-radius:2px; letter-spacing:.06em;
}
nav ul{list-style:none; display:flex; gap:30px; margin:0; padding:0;}
nav ul li a{
  text-decoration:none; font-size:.86rem; font-weight:500;
  color:var(--ink-soft); letter-spacing:.02em;
  padding-bottom:3px; border-bottom:1px solid transparent;
  transition:border-color .15s, color .15s;
}
nav ul li a:hover{color:var(--ink); border-color:var(--brass);}
.nav-cta{
  background:var(--ink); color:var(--paper-light) !important;
  padding:10px 18px; border-radius:2px; font-weight:600 !important;
  border:1px solid var(--ink) !important;
}
.nav-cta:hover{background:var(--ink-soft) !important; border-color:var(--ink-soft) !important;}
.menu-btn{display:none; background:none; border:none; cursor:pointer;}
.menu-btn span{display:block; width:22px; height:2px; background:var(--ink); margin:5px 0;}
@media (max-width:860px){
  nav ul{display:none;}
  .menu-btn{display:block;}
  nav.open ul{
    display:flex; flex-direction:column; gap:0;
    position:absolute; top:64px; left:0; right:0;
    background:var(--paper-light); border-bottom:1px solid var(--line);
    padding:8px 28px 20px;
  }
  nav.open ul li{padding:10px 0; border-bottom:1px solid var(--line);}
}

/* ---------- HERO ---------- */
.hero{padding-top:72px; padding-bottom:60px;}
.hero-grid{
  display:grid; grid-template-columns:1.05fr .95fr; gap:64px; align-items:center;
}
@media (max-width:900px){ .hero-grid{grid-template-columns:1fr;} }
.eyebrow{
  font-family:'IBM Plex Mono', monospace; font-size:.72rem; letter-spacing:.12em;
  text-transform:uppercase; color:var(--brass-dark); font-weight:600;
  display:flex; align-items:center; gap:10px; margin-bottom:18px;
}
.eyebrow::before{content:''; width:22px; height:1px; background:var(--brass-dark);}
.hero h1{font-size:clamp(2.3rem, 4.4vw, 3.4rem); color:var(--ink);}
.hero h1 em{font-style:normal; color:var(--stamp);}
.hero p.lede{font-size:1.14rem; color:var(--ink-soft); max-width:46ch; margin:0 0 30px;}
.hero-actions{display:flex; gap:16px; flex-wrap:wrap; margin-bottom:34px;}
.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:15px 26px; border-radius:2px; font-weight:600; font-size:.95rem;
  text-decoration:none; border:1px solid transparent; cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease;
}
.btn:hover{transform:translateY(-1px);}
.btn-primary{background:var(--stamp); color:#fff; box-shadow:0 8px 20px rgba(166,64,47,0.28);}
.btn-primary:hover{background:#8f3728;}
.btn-ghost{background:transparent; color:var(--ink); border-color:var(--ink);}
.btn-ghost:hover{background:var(--ink); color:var(--paper-light);}
.trust-row{display:flex; gap:28px; flex-wrap:wrap;}
.trust-item{display:flex; align-items:center; gap:8px; font-size:.82rem; color:var(--ink-soft); font-weight:500;}
.trust-item .dot{width:6px; height:6px; border-radius:50%; background:var(--savings);}

/* ---------- SIGNATURE: ASSESSMENT NOTICE CARD ---------- */
.notice-card{
  position:relative;
  background:var(--card);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
  padding:34px 32px 30px;
  border-radius:2px;
  max-width:420px;
  margin-left:auto;
}
.notice-card::before{
  content:'';
  position:absolute; inset:8px;
  border:1px dashed rgba(28,43,69,0.18);
  pointer-events:none;
}
.notice-head{
  display:flex; justify-content:space-between; align-items:flex-start;
  border-bottom:1px solid var(--line); padding-bottom:14px; margin-bottom:18px;
}
.notice-head .tag{
  font-family:'IBM Plex Mono', monospace; font-size:.62rem; letter-spacing:.1em;
  color:var(--ink-soft); text-transform:uppercase;
}
.notice-head h3{font-size:1rem; margin:4px 0 0; font-family:'IBM Plex Mono', monospace; font-weight:600; letter-spacing:.02em;}
.notice-row{display:flex; justify-content:space-between; padding:9px 0; border-bottom:1px dotted var(--line); font-size:.86rem;}
.notice-row span:first-child{color:var(--ink-soft);}
.notice-row .val{font-family:'IBM Plex Mono', monospace; font-weight:500;}
.assessed-old{
  color:var(--stamp); text-decoration:line-through; text-decoration-thickness:1.5px;
}
.assessed-new{
  color:var(--savings); font-weight:600; font-size:1.05rem;
}
.notice-savings{
  margin-top:18px; background:var(--savings-light); border:1px solid rgba(61,107,87,0.25);
  padding:14px 16px; border-radius:2px;
  display:flex; justify-content:space-between; align-items:center;
}
.notice-savings .label{font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; color:var(--savings); font-weight:600;}
.notice-savings .amount{font-family:'IBM Plex Mono', monospace; font-weight:600; font-size:1.3rem; color:var(--savings);}
.stamp{
  position:absolute; top:-18px; right:-16px;
  width:104px; height:104px; border-radius:50%;
  border:2.5px solid var(--brass);
  display:flex; align-items:center; justify-content:center;
  transform:rotate(-14deg);
  background:rgba(250,249,244,0.9);
  color:var(--brass-dark);
  font-family:'IBM Plex Mono', monospace; font-weight:700; font-size:.66rem;
  letter-spacing:.06em; text-align:center; text-transform:uppercase;
  line-height:1.35;
  box-shadow:0 4px 14px rgba(176,141,62,0.25);
}
.stamp::before, .stamp::after{
  content:''; position:absolute; border-radius:50%; border:1px solid var(--brass);
}
.stamp::before{inset:6px;}

/* ---------- GUARANTEE BAR ---------- */
.guarantee-bar{
  background:var(--ink); color:var(--paper-light); padding:0;
}
.guarantee-inner{
  display:grid; grid-template-columns:repeat(4,1fr); gap:0;
}
@media (max-width:800px){ .guarantee-inner{grid-template-columns:repeat(2,1fr);} }
.guarantee-item{
  padding:30px 24px; text-align:center; border-right:1px solid rgba(255,255,255,0.12);
}
.guarantee-item:last-child{border-right:none;}
.guarantee-item .g-label{font-weight:700; font-size:.95rem; letter-spacing:.02em;}
.guarantee-item .g-sub{font-size:.78rem; color:rgba(247,247,241,0.6); margin-top:4px;}

/* ---------- SECTION HEADERS ---------- */
.section-head{max-width:620px; margin-bottom:52px;}
.section-head .eyebrow{margin-bottom:14px;}
.section-head h2{font-size:clamp(1.7rem,3vw,2.3rem);}
.section-head p{color:var(--ink-soft); font-size:1.02rem;}

/* ---------- HOW IT WORKS ---------- */
.steps{
  display:grid; grid-template-columns:repeat(4,1fr); gap:2px;
  background:var(--line); border:1px solid var(--line);
}
@media (max-width:900px){ .steps{grid-template-columns:1fr 1fr;} }
@media (max-width:520px){ .steps{grid-template-columns:1fr;} }
.step{background:var(--card); padding:32px 26px;}
.step .num{
  font-family:'IBM Plex Mono', monospace; font-weight:600; font-size:.78rem;
  color:var(--brass-dark); display:block; margin-bottom:16px;
}
.step h3{font-size:1.08rem; font-family:'IBM Plex Sans', sans-serif; font-weight:700; margin-bottom:8px;}
.step p{font-size:.9rem; color:var(--ink-soft); margin:0;}

/* ---------- SERVICE AREA ---------- */
.counties{
  display:flex; flex-wrap:wrap; gap:12px;
}
.county-chip{
  border:1px solid var(--line); background:var(--card);
  padding:10px 18px; border-radius:2px; font-size:.86rem; font-weight:600;
  display:flex; align-items:center; gap:8px;
}
.county-chip .mono{font-size:.68rem; color:var(--brass-dark);}

/* ---------- TESTIMONIALS ---------- */
.testi-grid{
  display:grid; grid-template-columns:repeat(3,1fr); gap:22px;
}
@media (max-width:900px){ .testi-grid{grid-template-columns:1fr 1fr;} }
@media (max-width:600px){ .testi-grid{grid-template-columns:1fr;} }
.testi-card{
  background:var(--card); border:1px solid var(--line); border-radius:2px;
  padding:28px 24px; display:flex; flex-direction:column; gap:16px;
}
.testi-card .quote{font-size:.95rem; color:var(--ink); flex:1;}
.testi-card .quote::before{content:'\201C'; color:var(--brass); font-family:'Fraunces',serif; font-size:1.6rem; line-height:0; display:inline-block; margin-right:2px; vertical-align:-4px;}
.testi-name{
  font-family:'IBM Plex Mono', monospace; font-size:.76rem; font-weight:600;
  color:var(--ink-soft); border-top:1px solid var(--line); padding-top:12px;
  text-transform:uppercase; letter-spacing:.04em;
}

/* ---------- DEADLINES ---------- */
.deadline-wrap{
  background:var(--card); border:1px solid var(--line); border-radius:2px;
  padding:40px; display:flex; justify-content:space-between; align-items:center; gap:32px; flex-wrap:wrap;
}
.deadline-wrap h3{font-size:1.4rem; margin-bottom:8px;}
.deadline-wrap p{color:var(--ink-soft); margin:0; max-width:52ch;}
.deadline-note{
  font-family:'IBM Plex Mono', monospace; font-size:.72rem; color:var(--stamp);
  margin-top:10px; letter-spacing:.02em;
}

/* ---------- FAQ TEASER ---------- */
.faq-list{border-top:1px solid var(--line);}
.faq-item{border-bottom:1px solid var(--line); padding:22px 0; cursor:pointer;}
.faq-item .q{display:flex; justify-content:space-between; align-items:center; font-weight:600; font-size:1rem;}
.faq-item .q .plus{font-family:'IBM Plex Mono', monospace; color:var(--brass-dark); font-size:1.1rem; transition:transform .2s;}
.faq-item.open .q .plus{transform:rotate(45deg);}
.faq-item .a{max-height:0; overflow:hidden; transition:max-height .25s ease; font-size:.92rem; color:var(--ink-soft);}
.faq-item.open .a{max-height:240px; margin-top:12px;}

/* ---------- FINAL CTA ---------- */
.final-cta{
  background:var(--ink); color:var(--paper-light); text-align:center;
}
.final-cta h2{color:#fff; font-size:clamp(1.8rem,3.4vw,2.6rem); max-width:20ch; margin:0 auto 18px;}
.final-cta p{color:rgba(247,247,241,0.75); max-width:50ch; margin:0 auto 34px;}

/* ---------- FOOTER ---------- */
footer{background:var(--paper-light); border-top:1px solid var(--line); padding:56px 0 30px;}
.foot-grid{display:grid; grid-template-columns:1.3fr 1fr 1fr; gap:40px; margin-bottom:40px;}
@media (max-width:700px){ .foot-grid{grid-template-columns:1fr;} }
footer h4{font-size:.76rem; text-transform:uppercase; letter-spacing:.08em; color:var(--ink-soft); margin-bottom:14px;}
footer ul{list-style:none; margin:0; padding:0;}
footer ul li{margin-bottom:8px;}
footer ul li a{text-decoration:none; font-size:.9rem; color:var(--ink); opacity:.85;}
footer ul li a:hover{opacity:1; color:var(--brass-dark);}
.foot-bottom{
  border-top:1px solid var(--line); padding-top:22px; display:flex; justify-content:space-between;
  flex-wrap:wrap; gap:10px; font-size:.78rem; color:var(--ink-soft);
}

/* ================================================================
   INTERIOR / SIMPLE CONTENT PAGES (Privacy, Legal, Pay, etc.)
   ================================================================ */

.page-hero{
  padding:64px 0 40px;
  border-bottom:1px solid var(--line);
  background:var(--paper-light);
}
.page-hero h1{font-size:clamp(2rem,4vw,2.6rem);}
.page-hero p{color:var(--ink-soft); font-size:1.02rem; max-width:60ch; margin:0;}

.prose{max-width:760px;}
.prose h2{font-size:1.3rem; margin-top:2em;}
.prose h2:first-child{margin-top:0;}
.prose p{color:var(--ink-soft); margin-bottom:1.3em; font-size:.98rem;}
.prose .updated{
  font-family:'IBM Plex Mono', monospace; font-size:.74rem; color:var(--brass-dark);
  text-transform:uppercase; letter-spacing:.06em; display:block; margin-bottom:2.2em;
}
.prose a{color:var(--brass-dark); text-decoration:underline;}

/* Simple notice/alert box (e.g. Pay page technical notice) */
.notice-box{
  background:var(--savings-light); border:1px solid rgba(61,107,87,0.3);
  padding:20px 24px; border-radius:2px; margin:24px 0;
  font-size:.92rem; color:var(--ink);
}
.notice-box.-warning{
  background:#FBEAE7; border-color:rgba(166,64,47,0.3);
}
.notice-box strong{display:block; margin-bottom:6px; font-family:'IBM Plex Mono', monospace; font-size:.74rem; text-transform:uppercase; letter-spacing:.06em;}

/* Simple lookup form (Pay page) */
.simple-form{
  background:var(--card); border:1px solid var(--line); border-radius:2px;
  padding:32px; max-width:480px; margin-top:24px;
}
.simple-form label{display:block; font-weight:600; font-size:.85rem; margin-bottom:8px;}
.simple-form input{
  width:100%; padding:13px; border:1px solid var(--line); background:var(--paper-light);
  font-family:'IBM Plex Sans', sans-serif; font-size:.95rem; margin-bottom:16px; border-radius:2px;
}
