/* Shared finish for the existing ADT black and gold design. */
:root { --gray:#aaa; --border:#292929; color-scheme:dark; }
html { scroll-padding-top:100px; }
body { padding-bottom:0; }
[hidden] { display:none !important; }
a { text-underline-offset:.2em; }
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible { outline:3px solid #e8d11c; outline-offset:4px; }
button,input,select,textarea { font:inherit; }
button { touch-action:manipulation; }
img { max-width:100%; height:auto; }
nav { height:76px; padding-inline:max(1.5rem,calc((100vw - 1250px)/2)); }
.nav-logo { display:flex; align-items:center; flex-shrink:0; }
.nav-logo img { height:56px; width:auto; }
.nav-links { gap:1.65rem; }
.nav-links a { font-size:.82rem; padding-block:1rem; }
.nav-links a[aria-current="page"]:not(.nav-cta) { color:var(--gold); }
.hamburger { min-height:44px; min-width:44px; align-items:center; justify-content:center; }
.mobile-menu { top:76px; max-height:calc(100dvh - 76px); overflow-y:auto; }
.mobile-menu a { min-height:48px; }
.skip-link { position:fixed; top:-100px; left:1rem; padding:.75rem 1rem; z-index:2000; background:#e1ce16; color:#000; font-weight:700; }
.skip-link:focus { top:1rem; }
main { outline:none; }
.hero { min-height:min(920px,100svh); padding:150px max(2rem,calc((100vw - 1180px)/2)) 90px; }
.hero-content { width:100%; max-width:820px; }
.hero-content h1 { max-width:820px; line-height:1.02; margin-bottom:1.4rem; font-size:clamp(2.8rem,5.7vw,5.25rem); }
.hero-sub { max-width:560px; margin-bottom:1.6rem; }
.hero-bg { background-position:center; }
.hero-buttons { align-items:stretch; gap:.85rem; margin-top:1.3rem; }
.hero-buttons a { display:inline-flex; align-items:center; justify-content:center; min-height:50px; text-align:center; }
.btn-primary,.btn-outline { line-height:1.35; }
.page-hero { min-height:340px; padding-top:145px; padding-bottom:3.5rem; }
.page-hero>.container { width:100%; }
.page-hero h1 { line-height:1.03; }
.page-intro { max-width:620px; color:#ccc; margin-top:1.25rem; }
.page-header { padding:135px 1.5rem 2.5rem; }
.page-header h1 { line-height:1.15; }
.container p { margin-bottom:1rem; }
.home-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:4rem; }
.home-grid>div { min-width:0; }
.stats-inner { gap:.25rem 0; }
.stat-item { font-size:.82rem; }
.svc-num { color:#8f842a; font-size:2rem; }
.featured-svc .svc-num { color:#b2a31c; }
.project-badge p { color:#bdbdbd; font-size:.92rem; margin-bottom:0; }
.project-badge h3 { margin-bottom:.5rem; }
.planning-section { background:#0b0b0b; border-block:1px solid #222; }
.planning-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; margin-block:2.5rem; }
.planning-grid h3 { font-size:1.4rem; margin:.7rem 0; }
.planning-grid p { color:#bdbdbd; }
.step-label { color:var(--gold); font-size:.8rem; letter-spacing:.08em; font-weight:600; }
.text-link { color:var(--gold); font-weight:600; display:inline-block; padding:.6rem 0; }
.guide-grid { display:grid; grid-template-columns:1fr 1fr; gap:2rem; align-items:start; }
.guide-card { background:#111; border:1px solid #292929; padding:2.25rem; }
.guide-card h2 { font-size:2rem; line-height:1.1; }
.guide-card p,.guide-card li { color:#ccc; }
.guide-card ul { padding-left:1.2rem; margin:1.25rem 0; }
.guide-card li { padding:.35rem 0; }
.guide-card a { color:var(--gold); }
.footer-heading { font-family:'Barlow Condensed',sans-serif; font-weight:700; font-size:.85rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold); margin-bottom:1.25rem; }
.footer-grid { grid-template-columns:minmax(0,1.8fr) repeat(3,minmax(0,1fr)); }
.footer-col li a { display:inline-block; padding:.15rem 0; }
.footer-brand img { height:70px !important; width:auto !important; }
.form-row,.form-grid { min-width:0; }
.field,.field input,.field select,.field textarea { min-width:0; }
.field input,.field select,.field textarea,.spacing-item input { font-size:16px; min-height:46px; border-radius:2px; }
.field label { font-size:.72rem; letter-spacing:.1em; }
.field input::placeholder,.field textarea::placeholder { color:#929292; opacity:1; }
.check-item { min-height:44px; }
.field .check-item { font-family:'Barlow',sans-serif; font-size:.88rem; font-weight:500; letter-spacing:0; text-transform:none; color:#ccc; }
.field .check-item input { width:20px; height:20px; min-height:20px; flex:0 0 20px; }
.cd-value a { overflow-wrap:anywhere; }
.form-help { color:#aaa; font-size:.85rem; line-height:1.65; margin:1rem 0; }
.form-help a { color:var(--gold); }
.request-status { background:#152016; border:1px solid #478048; color:#d3f2d3; padding:1rem; margin-top:1rem; text-align:left; font-size:.95rem; }
.request-status[data-state="error"] { background:#2a1816; border-color:#b77561; color:#ffded3; }
.request-status:focus { outline:2px solid var(--gold); }
[data-submit]:disabled { opacity:.65; cursor:wait; }
.axle-table { min-width:1460px; }
.axle-table td input { min-width:60px; min-height:42px; font-size:16px; }
.axle-table th { font-size:.78rem; }
.axle-table td:first-child { position:sticky; left:0; z-index:1; background:#1a1a1a; }
.spacing-item label { font-size:.75rem; }
.form-container { max-width:1100px; }
.submit-section { text-align:left; }
.section-header h2 { margin-bottom:0; font-size:1.05rem; }
.btn-submit { max-width:100%; white-space:normal; }
summary { cursor:pointer; min-height:48px; padding-block:.75rem; }
@media(max-width:1000px) {
  .nav-links { display:none; }
  .hamburger { display:flex; }
}
@media(max-width:800px) {
  .home-grid,.guide-grid,.planning-grid { grid-template-columns:minmax(0,1fr); gap:2rem; }
  .footer-grid { grid-template-columns:1fr 1fr; gap:2rem; }
}
@media(max-width:600px) {
  nav { padding-inline:1.25rem; }
  .hero { min-height:0; padding:135px 1.25rem 4rem; }
  .hero-content h1 { font-size:clamp(2.6rem,10.2vw,3.9rem); line-height:1.03; }
  .hero-sub { font-size:1rem; line-height:1.7; }
  .hero-bg { background-image:linear-gradient(90deg,rgba(0,0,0,.9),rgba(0,0,0,.65)),url('adt-seo-d447799ca7e770.jpg'); background-position:55% center; }
  .hero-buttons { display:grid; grid-template-columns:minmax(0,1fr); }
  .hero-buttons a { width:100%; padding-inline:1rem; }
  .page-hero { min-height:300px; padding:130px 1.25rem 2.5rem; }
  .page-hero h1 { font-size:clamp(2.35rem,10vw,3.6rem); }
  .stat-item { padding:.4rem .8rem; white-space:normal; text-align:center; border:none; }
  .guide-card { padding:1.5rem; }
  .guide-card h2 { font-size:1.85rem; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .footer-brand { grid-column:1 / -1; }
  .footer-brand p { max-width:100%; }
  footer { padding-inline:1.25rem; }
  .footer-bottom { text-align:left; align-items:flex-start; }
  .form-container { padding-inline:1rem; }
  .page-header { padding-inline:1rem; }
  .submit-section { padding:1.25rem; }
  .check-grid { grid-template-columns:1fr; }
  .form-row { grid-template-columns:1fr; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none !important; transition:none !important; }
}

/* The homepage leads with route surveys and keeps supporting services quiet. */
.hero-eyebrow { color:var(--gold); font-size:.78rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; margin-bottom:1.5rem; }
.hero-support { color:#bdbdbd; font-size:.88rem; margin-bottom:1.8rem; line-height:1.7; }
#quoteForm { scroll-margin-top:105px; }
@media(max-width:600px) {
  .hero-eyebrow { max-width:290px; font-size:.72rem; line-height:1.9; letter-spacing:.12em; }
}
