:root{
    --accent:#C1121F;
    --accent-deep:#8A0D16;
    --ink:#1B1819;
    --ink-soft:#433E3F;
    --muted:#6E6669;
    --steel:#9CA3AF;
    --steel-soft:#D7DADD;
    --bg-light:#F5F6F8;
    --card:#FFFFFF;
    --border:#E3E1E2;
    --radius:10px;
    --font:'Hanken Grotesk',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;}
  body{font-family:var(--font);color:var(--ink-soft);line-height:1.6;font-size:16px;background:var(--card);}
  img{max-width:100%;display:block;}
  h1,h2,h3{font-family:var(--font);color:var(--ink);line-height:1.15;}
  a{color:inherit;text-decoration:none;}
  .wrap{max-width:1180px;margin:0 auto;padding:0 24px;}
  .eyebrow{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:0.18em;color:var(--accent);margin-bottom:14px;display:block;}
  section{padding:100px 0;}
  @media (max-width:768px){section{padding:70px 0;}}

  .site-header{position:sticky;top:0;z-index:50;background:rgba(27,24,25,0.97);backdrop-filter:blur(6px);border-bottom:1px solid rgba(255,255,255,0.08);}
  .site-header .wrap{display:flex;align-items:center;justify-content:space-between;padding-top:14px;padding-bottom:14px;}
  .brand{display:flex;align-items:center;gap:10px;}
  .brand img{height:42px;width:42px;border-radius:50%;}
  .brand span{font-weight:800;color:#fff;font-size:18px;letter-spacing:-0.01em;}
  .header-actions{display:flex;align-items:center;gap:18px;}
  .header-phone{color:#fff;font-weight:700;font-size:15px;display:flex;align-items:center;gap:8px;white-space:nowrap;}
  .header-phone svg{flex-shrink:0;}
  .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;font-size:15px;padding:14px 26px;border-radius:6px;border:2px solid transparent;cursor:pointer;transition:all .15s ease;white-space:nowrap;}
  .btn-primary{background:var(--accent);color:#fff;}
  .btn-primary:hover{background:var(--accent-deep);}
  .btn-outline-dark{border-color:rgba(255,255,255,0.35);color:#fff;background:transparent;}
  .btn-outline-dark:hover{border-color:#fff;background:rgba(255,255,255,0.08);}
  .btn-sm{padding:10px 18px;font-size:14px;}
  .header-actions .btn{display:none;}
  @media (min-width:640px){.header-actions .btn{display:inline-flex;}}

  .hero{background:var(--ink);position:relative;overflow:hidden;padding-top:72px;padding-bottom:72px;}
  .hero:before{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(115deg, rgba(193,18,31,0.10) 0px, rgba(193,18,31,0.10) 2px, transparent 2px, transparent 68px);pointer-events:none;}
  .hero .wrap{position:relative;display:grid;grid-template-columns:1.15fr 1fr;gap:56px;align-items:center;}
  @media (max-width:900px){.hero .wrap{grid-template-columns:1fr;gap:52px;}}
  .hero h1{color:#fff;font-size:clamp(2rem,4.4vw,3.1rem);font-weight:800;margin-bottom:20px;}
  .hero h1 .accent-num{color:var(--accent);}
  .hero p.sub{color:#D9D6D6;font-size:18px;max-width:54ch;margin-bottom:28px;}
  .hero-badges{display:flex;flex-wrap:wrap;gap:10px 22px;margin-bottom:32px;}
  .hero-badges span{color:#C9C6C6;font-size:13.5px;font-weight:600;display:flex;align-items:center;gap:7px;}
  .hero-badges span:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0;}
  .hero-ctas{display:flex;flex-wrap:wrap;gap:14px;}
  .hero-visual{position:relative;}
  .hero-photo{position:relative;border-radius:14px;overflow:hidden;box-shadow:0 30px 60px -20px rgba(0,0,0,0.55);border:1px solid rgba(255,255,255,0.12);}
  .hero-photo img{width:100%;height:100%;object-fit:cover;aspect-ratio:386/301;}
  .hero-photo-tag{position:absolute;left:16px;bottom:16px;background:rgba(27,24,25,0.88);border:1px solid rgba(255,255,255,0.18);color:#fff;font-size:12.5px;font-weight:600;padding:8px 14px;border-radius:8px;}
  .hero-inset{position:absolute;left:-30px;bottom:-30px;width:44%;border-radius:12px;overflow:hidden;border:3px solid var(--ink);box-shadow:0 20px 40px -12px rgba(0,0,0,0.6);}
  .hero-inset img{width:100%;aspect-ratio:384/236;object-fit:cover;}
  @media (max-width:900px){.hero-inset{position:static;width:60%;margin-top:16px;border-width:2px;}}
  /* Desktop: inset covers bottom-left, so pin the tag right and cap its width to stay clear of it */
  @media (min-width:901px){.hero-photo-tag{left:auto;right:16px;max-width:calc(56% - 2px);}}

  .trust-strip{padding:36px 0;background:var(--card);border-bottom:1px solid var(--border);}
  .trust-strip .wrap{display:flex;flex-wrap:wrap;gap:22px 36px;align-items:center;justify-content:center;}
  .trust-strip .item{display:flex;align-items:center;gap:10px;color:var(--ink-soft);font-weight:700;font-size:14px;}
  .trust-strip .item svg{color:var(--accent);flex-shrink:0;}

  .tracks{background:var(--card);}
  .section-head{max-width:680px;margin-bottom:48px;}
  .section-head.center{margin:0 auto 48px;text-align:center;}
  .section-head h2{font-size:clamp(1.7rem,3.4vw,2.3rem);font-weight:700;}
  .track-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;}
  @media (max-width:800px){.track-grid{grid-template-columns:1fr;}}
  .track-card{border:1px solid var(--border);border-radius:14px;overflow:hidden;background:var(--card);}
  .track-card .photo{position:relative;}
  .track-card .photo img{width:100%;height:220px;object-fit:cover;}
  .track-card .tag{position:absolute;top:16px;left:16px;background:var(--accent);color:#fff;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;padding:6px 12px;border-radius:5px;}
  .track-card .body{padding:28px;}
  .track-card h3{font-size:21px;margin-bottom:10px;}
  .track-card p{font-size:14.5px;color:var(--muted);margin-bottom:16px;}
  .track-card ul{list-style:none;display:flex;flex-direction:column;gap:9px;margin-bottom:18px;}
  .track-card ul li{font-size:14px;font-weight:600;color:var(--ink-soft);display:flex;gap:8px;}
  .track-card ul li:before{content:"✓";color:var(--accent);font-weight:800;}
  .track-card .best-for{font-size:12.5px;font-weight:700;color:var(--accent);text-transform:uppercase;letter-spacing:0.03em;}

  .form-section{background:var(--bg-light);}
  .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start;}
  @media (max-width:860px){.form-grid{grid-template-columns:1fr;gap:36px;}}
  .form-copy h2{font-size:clamp(1.7rem,3.4vw,2.3rem);font-weight:700;margin-bottom:16px;}
  .form-copy p{max-width:46ch;margin-bottom:22px;color:var(--muted);}
  .form-copy ul{list-style:none;display:flex;flex-direction:column;gap:12px;}
  .form-copy ul li{display:flex;gap:10px;font-weight:600;color:var(--ink-soft);font-size:15px;}
  .form-copy ul li:before{content:"✓";color:var(--accent);font-weight:800;}
  .quote-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:32px;box-shadow:0 20px 40px -28px rgba(27,24,25,0.35);}
  .quote-card h3{font-size:20px;margin-bottom:6px;}
  .quote-card .quote-sub{color:var(--muted);font-size:14px;margin-bottom:22px;}
  .field{margin-bottom:16px;}
  .field label{display:block;font-size:13px;font-weight:700;margin-bottom:6px;color:var(--ink-soft);}
  .field input,.field select,.field textarea{width:100%;padding:12px 14px;border:1.5px solid var(--border);border-radius:6px;font-family:var(--font);font-size:15px;color:var(--ink);background:#fff;}
  .field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);}
  .field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  @media (max-width:480px){.field-row{grid-template-columns:1fr;}}
  .quote-card .btn{width:100%;margin-top:6px;}
  .form-disclaimer{font-size:12px;color:var(--muted);margin-top:14px;text-align:center;}

  .why-us{background:var(--ink);color:#fff;position:relative;}
  .why-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
  @media (max-width:900px){.why-grid{grid-template-columns:1fr;}}
  .why-us .eyebrow{color:var(--accent);}
  .why-us h2{color:#fff;font-size:clamp(1.7rem,3.6vw,2.4rem);font-weight:700;margin-bottom:18px;}
  .why-us h2 em{font-style:italic;color:var(--accent);}
  .why-us p{color:#D9D6D6;margin-bottom:20px;max-width:54ch;}
  .stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:28px;}
  @media (max-width:560px){.stat-row{grid-template-columns:1fr 1fr;}}
  .stat-box{border:1px solid rgba(255,255,255,0.15);border-radius:10px;padding:18px 14px;text-align:center;}
  .stat-box b{display:block;font-size:24px;font-weight:800;color:var(--accent);}
  .stat-box small{font-size:12px;color:#C9C6C6;font-weight:600;}
  .why-photo{border-radius:14px;overflow:hidden;border:1px solid rgba(255,255,255,0.12);}
  .why-photo img{width:100%;aspect-ratio:389/388;object-fit:cover;}

  .process{background:var(--bg-light);}
  .step-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
  @media (max-width:900px){.step-grid{grid-template-columns:1fr 1fr;}}
  @media (max-width:560px){.step-grid{grid-template-columns:1fr;}}
  .step{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:26px 22px;}
  .step .num{width:36px;height:36px;border-radius:50%;background:var(--ink);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;margin-bottom:16px;font-size:15px;}
  .step h3{font-size:16px;margin-bottom:8px;}
  .step p{font-size:14px;color:var(--muted);}

  .finishes{background:var(--card);}
  .finish-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
  @media (max-width:960px){.finish-grid{grid-template-columns:1fr 1fr;}}
  @media (max-width:640px){.finish-grid{grid-template-columns:1fr;}}
  .finish-card{border:1px solid var(--border);border-radius:14px;overflow:hidden;background:var(--card);}
  .finish-card .photo{position:relative;}
  .finish-card .photo img{width:100%;height:150px;object-fit:cover;}
  .finish-card .tag{position:absolute;top:14px;left:14px;background:var(--accent);color:#fff;font-size:11.5px;font-weight:700;padding:6px 12px;border-radius:5px;}
  .finish-card .tag.alt{background:#fff;color:var(--accent);}
  .finish-card .body{padding:20px 22px 24px;}
  .finish-card .desc{font-size:13.5px;color:var(--muted);margin-bottom:16px;min-height:39px;}
  .finish-card .cols{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
  .finish-card .col-label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;color:var(--ink);margin-bottom:8px;}
  .finish-card ul{list-style:none;display:flex;flex-direction:column;gap:6px;}
  .finish-card ul li{font-size:12.5px;font-weight:600;color:var(--ink-soft);display:flex;gap:6px;line-height:1.35;}
  .finish-card ul li:before{content:"•";color:var(--accent);font-weight:800;flex-shrink:0;}
  .finish-card ul.best li:before{content:"✓";}
  .finishes .below-grid{max-width:640px;margin:36px auto 0;text-align:center;color:var(--muted);font-size:14.5px;}
  .finishes .below-grid a{color:var(--accent);font-weight:700;}

  .proof{background:var(--card);}
  .testimonial-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;max-width:860px;margin:0 auto;}
  @media (max-width:640px){.testimonial-grid{grid-template-columns:1fr;}}
  .testimonial-card{background:var(--bg-light);border-radius:14px;padding:36px 32px;border:1px solid var(--border);}
  .testimonial-card .stars{color:var(--accent);font-size:18px;letter-spacing:3px;margin-bottom:16px;}
  .testimonial-card p{font-size:17px;color:var(--ink);font-weight:500;margin-bottom:16px;line-height:1.5;}
  .testimonial-card .who{font-weight:700;color:var(--ink);font-size:14.5px;}

  .faq{background:var(--bg-light);}
  .faq-list{max-width:800px;}
  .faq-item{background:var(--card);border:1px solid var(--border);border-radius:8px;margin-bottom:12px;overflow:hidden;}
  .faq-item summary{padding:20px 24px;font-weight:700;font-size:15.5px;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;color:var(--ink);}
  .faq-item summary::-webkit-details-marker{display:none;}
  .faq-item summary:after{content:"+";font-size:22px;color:var(--accent);font-weight:400;flex-shrink:0;}
  .faq-item[open] summary:after{content:"–";}
  .faq-item .a{padding:0 24px 20px;color:var(--muted);font-size:14.5px;max-width:70ch;}

  .final-cta{background:var(--ink);color:#fff;text-align:center;position:relative;overflow:hidden;}
  .final-cta:before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 0%, rgba(193,18,31,0.22), transparent 60%);}
  .final-cta .wrap{position:relative;}
  .final-cta h2{color:#fff;font-size:clamp(1.8rem,4vw,2.6rem);font-weight:800;margin-bottom:16px;}
  .final-cta p{color:#D9D6D6;margin:0 auto 30px;max-width:52ch;font-size:17px;}
  .final-cta .hero-ctas{justify-content:center;}
  .final-cta .service-area{margin-top:28px;color:#B7B3B3;font-size:13.5px;}

  footer{background:#0F0D0E;color:#B7B3B3;padding:44px 0 100px;font-size:13.5px;}
  footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px;}
  footer .fbrand{display:flex;align-items:center;gap:10px;color:#fff;font-weight:700;margin-bottom:10px;}
  footer .fbrand img{height:30px;width:30px;border-radius:50%;}
  footer a:hover{color:#fff;}
  footer .legal{margin-top:6px;color:#8A8586;}

  .mobile-sticky{display:none;}
  @media (max-width:768px){
    .mobile-sticky{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:60;background:var(--ink);border-top:1px solid rgba(255,255,255,0.12);padding:10px 14px;gap:10px;box-shadow:0 -8px 24px rgba(0,0,0,0.25);}
    .mobile-sticky .btn{flex:1;padding:13px 10px;font-size:14px;}
    footer{padding-bottom:100px;}
  }
/* ================================================================
   Form state styles for builder.js — appended by wire_form.py.
   Deliberately palette-free: everything inherits the design's own
   typography/colors (only the error red is a literal, because an
   error state has to read as an error). If the design defines its
   own error/accent custom properties, swap them in below.
   ================================================================ */
.form-group { position: relative; }
.form-group .messages { display: none; }
.form-group.has-error .messages { display: block; }
.form-group.has-error input,
.form-group.has-error select,
.form-group.has-error textarea { border-color: #d64545; }
.help-block.error {
  display: block;
  margin-top: .35rem;
  font-family: inherit;
  font-size: .8125rem;
  line-height: 1.35;
  color: #d64545;
}
/* .form-group.has-success input { border-color: <design's success color>; } */

.submitButton { position: relative; }
.submitButton[disabled], button[disabled] { opacity: .65; cursor: not-allowed; }
.spinner-border.loader {
  display: inline-block;
  width: 1em;
  height: 1em;
  margin-left: .5em;
  vertical-align: -.125em;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: lpbm-spin .75s linear infinite;
}
@keyframes lpbm-spin { to { transform: rotate(360deg); } }

.thank-you-message { text-align: center; padding: 2rem 1rem; color: inherit; }
.thank-you-heading {
  font-family: inherit;
  font-size: 1.5rem;
  line-height: 1.25;
  margin: 0 0 .5rem;
  color: inherit;
}
.thank-you-content {
  font-family: inherit;
  font-size: 1rem;
  line-height: 1.6;
  margin: 0;
  color: inherit;
  opacity: .85;
}
/* Honeypot: off-screen, never visible to real users */
.hp-field { position: absolute !important; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.form-status:empty { display: none; }
.form-status .form-error { color: #d64545; font-size: 14px; margin: 0 0 12px; }
/* reCAPTCHA widget is a fixed 304px wide; scale it down on narrow phones */
.recaptcha-group { margin-bottom: 14px; overflow: hidden; }
.form-grid > * { min-width: 0; }
@media (max-width:480px){ .quote-card{ padding:24px 18px; } }
@media (max-width:389px){ .g-recaptcha-v2-visible{ transform:scale(0.9); transform-origin:0 0; height:70px; } }
@media (max-width:359px){ .g-recaptcha-v2-visible{ transform:scale(0.77); height:60px; } }
