:root{
  --ink:#1B1E22;
  --dusk:#232B38;
  --slate:#3D4852;
  --paper:#F2EEE6;
  --amber:#D9A441;
  --amber-dark:#B9862F;
  --line:#D9D3C6;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;
  line-height:1.5;
}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px;}
a{color:inherit;}

header.top{
  background:var(--dusk);
  color:#EDE7D8;
  padding:16px 0;
}
header.top .wrap{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;}
.brand{font-weight:700;font-size:1.05rem;letter-spacing:0.2px;text-decoration:none;}
.brand span{color:var(--amber);}
.top-nav{display:flex;align-items:center;gap:20px;}
.top-nav a{color:#C9C2AE;font-size:0.88rem;text-decoration:none;}
.top-nav a:hover{color:#EDE7D8;}
.top-nav a.nav-cta{
  background:var(--amber);
  color:#241B08;
  padding:8px 14px;
  border-radius:4px;
  font-weight:700;
}
.top-phone{color:#C9C2AE;font-size:0.92rem;text-decoration:none;}

.hero{
  background:var(--dusk);
  color:#F2EEE6;
  padding:64px 0 88px;
  position:relative;
  overflow:hidden;
}
.hero::after{
  content:"";
  position:absolute;
  right:-120px;top:-80px;
  width:420px;height:420px;
  background:radial-gradient(circle, rgba(217,164,65,0.16) 0%, rgba(217,164,65,0) 70%);
}
.hero-grid{
  display:grid;
  grid-template-columns:1.15fr 0.85fr;
  gap:56px;
  align-items:start;
  position:relative;
}
.hero h1{
  font-size:2.6rem;
  line-height:1.12;
  margin:0 0 18px;
  font-weight:800;
  letter-spacing:-0.5px;
  max-width:520px;
}
.hero p.lead{
  font-size:1.08rem;
  color:#C9C2AE;
  max-width:460px;
  margin:0 0 28px;
}
.trust-row{display:flex;gap:28px;flex-wrap:wrap;margin-top:36px;}
.trust-item{font-size:0.88rem;color:#B7AF98;display:flex;align-items:center;gap:8px;}
.trust-item svg{flex:none;}

.card{
  background:#FBF9F4;
  color:var(--ink);
  border-radius:6px;
  padding:28px;
  box-shadow:0 24px 48px rgba(0,0,0,0.28);
}
.card h2{
  margin:0 0 6px;
  font-size:1.3rem;
  font-weight:800;
}
.card p.sub{
  margin:0 0 20px;
  color:#5B5748;
  font-size:0.92rem;
}
.field{margin-bottom:14px;}
.field label{
  display:block;
  font-size:0.78rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.4px;
  color:#7A7563;
  margin-bottom:6px;
}
.field input, .field select, .field textarea{
  width:100%;
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:4px;
  font-size:0.95rem;
  background:#fff;
  color:var(--ink);
  font-family:inherit;
}
.field textarea{resize:vertical;min-height:80px;}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:2px solid var(--amber-dark);
  outline-offset:1px;
}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.submit-btn{
  width:100%;
  background:var(--amber);
  color:#241B08;
  border:none;
  padding:14px;
  border-radius:4px;
  font-size:1rem;
  font-weight:800;
  cursor:pointer;
  margin-top:6px;
}
.submit-btn:hover{background:var(--amber-dark);}
.fine{font-size:0.76rem;color:#8C876F;margin-top:12px;text-align:center;}
.fine a{color:#7A7563;text-decoration:underline;}

section.how{padding:64px 0;}
section.how h2{
  font-size:1.6rem;
  font-weight:800;
  margin:0 0 36px;
  max-width:480px;
}
.how-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;}
.how-item h3{
  margin:0 0 8px;
  font-size:1.05rem;
  font-weight:700;
}
.how-item p{margin:0;color:var(--slate);font-size:0.92rem;}
.how-item .num{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:32px;height:32px;
  border:1.5px solid var(--ink);
  border-radius:50%;
  font-size:0.85rem;
  font-weight:800;
  margin-bottom:14px;
}

/* Contractor page: comparison / value cards */
section.value{padding:64px 0;}
section.value h2{
  font-size:1.6rem;
  font-weight:800;
  margin:0 0 36px;
  text-align:center;
}
.value-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.value-card{
  background:#FBF9F4;
  border:1px solid var(--line);
  border-radius:6px;
  padding:24px;
}
.value-card h3{margin:0 0 10px;font-size:1.05rem;font-weight:700;}
.value-card p{margin:0;color:var(--slate);font-size:0.9rem;}

section.guarantee{background:var(--dusk);color:#F2EEE6;padding:48px 0;}
section.guarantee h2{font-size:1.5rem;font-weight:800;margin:0 0 12px;color:var(--amber);}
section.guarantee p.lead{color:#C9C2AE;}

section.compare{background:#FBF9F4;padding:56px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
section.compare h2{font-size:1.4rem;font-weight:800;margin:0 0 28px;text-align:center;}
table.compare-table{width:100%;border-collapse:collapse;max-width:640px;margin:0 auto;}
table.compare-table th, table.compare-table td{
  text-align:left;padding:12px 16px;border-bottom:1px solid var(--line);font-size:0.92rem;
}
table.compare-table th{color:#7A7563;text-transform:uppercase;font-size:0.72rem;letter-spacing:0.4px;}
table.compare-table td.good{color:#3D6B4A;font-weight:700;}
table.compare-table td.bad{color:#A34936;}

/* Legal / policy pages */
.legal{padding:56px 0 80px;}
.legal h1{font-size:2rem;font-weight:800;margin:0 0 8px;}
.legal .updated{color:var(--slate);font-size:0.85rem;margin:0 0 40px;}
.legal h2{font-size:1.15rem;font-weight:800;margin:36px 0 12px;}
.legal p, .legal li{color:var(--slate);font-size:0.95rem;line-height:1.65;}
.legal ul{padding-left:20px;}
.legal a{color:var(--amber-dark);}

footer{
  background:var(--dusk);
  color:#8C876F;
  padding:28px 0;
  font-size:0.82rem;
}
footer .footer-links{margin-top:10px;}
footer .footer-links a{color:#B7AF98;text-decoration:none;margin-right:18px;font-size:0.8rem;}
footer .footer-links a:hover{color:#EDE7D8;}

/* Multi-step form wizard */
.step-progress{
  display:flex;
  gap:6px;
  margin-bottom:20px;
}
.step-dot{
  height:4px;
  flex:1;
  background:var(--line);
  border-radius:2px;
  transition:background 0.2s;
}
.step-dot.active, .step-dot.done{background:var(--amber);}
.step-panel{display:none;}
.step-panel.active{display:block;}
.choice-grid{display:flex;flex-direction:column;gap:10px;margin-bottom:8px;}
.choice-btn{
  width:100%;
  text-align:left;
  background:#fff;
  border:1px solid var(--line);
  border-radius:6px;
  padding:14px 16px;
  font-size:0.95rem;
  font-family:inherit;
  color:var(--ink);
  cursor:pointer;
  transition:border-color 0.15s, background 0.15s;
}
.choice-btn:hover{border-color:var(--amber);background:#FFFBF2;}
.choice-btn.selected{border-color:var(--amber-dark);background:#FDF4E2;font-weight:700;}
.step-back{
  display:inline-block;
  margin-bottom:14px;
  font-size:0.82rem;
  color:#7A7563;
  text-decoration:none;
  cursor:pointer;
}
.step-back:hover{color:var(--ink);}
.step-label{
  font-size:0.72rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.5px;
  color:#A29C86;
  margin-bottom:6px;
}
.step-question{
  font-size:1.15rem;
  font-weight:800;
  margin:0 0 18px;
}

@media (max-width: 820px){
  .hero-grid{grid-template-columns:1fr;}
  .hero h1{font-size:2rem;}
  .how-grid{grid-template-columns:1fr;gap:28px;}
  .value-grid{grid-template-columns:1fr;}
  .top-nav{gap:12px;}
}
