/* Hero banner: dark fade over the per-page image + quote form (hero_parts.py)
   Generated by build.py – edit the source module, then rebuild. */

/* Hero banner: the image is set inline per page on <header class="hero" style="background-image:…">.
   The dark fade over it (keeps the text readable) lives here. */
header.hero{background-color:#000;background-repeat:no-repeat;background-position:right center;background-size:cover}
header.hero:before{background:linear-gradient(90deg,#050505 0%,rgba(0,0,0,.94) 30%,rgba(0,0,0,.6) 55%,rgba(0,0,0,.25) 100%),
  radial-gradient(50% 55% at 85% 15%,rgba(106,49,200,.22),transparent 70%)!important}
@media(max-width:900px){header.hero:before{background:linear-gradient(180deg,rgba(0,0,0,.9),rgba(0,0,0,.78))!important}}

.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,410px);gap:clamp(32px,5vw,80px);align-items:center}
.hero-copy h1{padding-top:clamp(40px,5vw,72px)}

/* "Get a Free Quote" card */
.hero-form{position:relative;margin-top:clamp(24px,3vw,48px);padding:24px clamp(22px,2.6vw,32px) 22px;color:#fff;border-radius:22px;overflow:hidden;isolation:isolate;
  background:linear-gradient(115deg,#6a31c8 0%,#9a22ad 55%,#c90269 100%);box-shadow:0 30px 80px -30px rgba(201,2,105,.65),0 0 0 1px rgba(255,255,255,.12) inset}
.hero-form:before{content:"";position:absolute;z-index:-1;width:260px;height:260px;border-radius:50%;right:-90px;top:-110px;background:radial-gradient(circle,rgba(255,255,255,.28),transparent 70%);animation:hfGlow 9s ease-in-out infinite}
@keyframes hfGlow{50%{transform:translate(-40px,30px) scale(1.15)}}
.hero-form h2{font-size:clamp(21px,1.8vw,25px);font-weight:700;letter-spacing:-.02em;line-height:1.15;text-align:center;color:#fff}
.hero-form .hf-sub{text-align:center;font-weight:600;font-size:13.5px;margin:6px 0 8px;color:#f6ecff}
.hero-form form{display:grid;gap:2px}
.hf-f{position:relative;padding-top:14px}
.hf-f input,.hf-f textarea{width:100%;font:inherit;font-size:15px;color:#fff;background:transparent;border:0;border-bottom:1px solid rgba(255,255,255,.75);border-radius:0;padding:7px 4px 6px;outline:none;transition:border-color .25s}
.hf-f textarea{resize:vertical;min-height:44px}
.hf-f label{position:absolute;left:4px;top:21px;font-size:15px;color:rgba(255,255,255,.9);pointer-events:none;transition:top .2s,font-size .2s,color .2s}
.hf-f input:focus+label,.hf-f input:not(:placeholder-shown)+label,
.hf-f textarea:focus+label,.hf-f textarea:not(:placeholder-shown)+label{top:2px;font-size:12px;color:#fff;letter-spacing:.02em}
.hf-f textarea+label{top:21px}
.hero-form button{margin-top:14px;font:inherit;font-size:17px;font-weight:500;letter-spacing:.02em;padding:11px 18px;border:0;border-radius:6px;background:#fff;color:#1a1033;cursor:pointer;transition:transform .25s,box-shadow .25s,background .25s}
.hero-form button:hover{transform:translateY(-2px);box-shadow:0 14px 26px -12px rgba(0,0,0,.5)}
.hero-form button:focus-visible{outline:2px solid #fff;outline-offset:3px}
.hf-f input,.hf-f textarea,.hf-f input:focus,.hf-f textarea:focus,.hf-f input:focus-visible,.hf-f textarea:focus-visible{outline:none!important;box-shadow:none}
.hf-f input:focus,.hf-f textarea:focus{border-bottom:2px solid #fff!important;padding-bottom:5px}
.hf-err{display:block;min-height:0;font-size:12px;line-height:1.3;color:#ffe3ef;font-weight:600}
.hf-err:not(:empty){padding-top:4px}.hf-err:not(:empty):before{content:"⚠ "}
.hf-f.bad input{border-bottom-color:#ffd0e4;border-bottom-width:2px}
.hero-form button:disabled{opacity:.75;cursor:wait;transform:none}

@media(max-width:1100px){.hero-grid{grid-template-columns:1fr}.hero-form{max-width:520px;margin-top:8px}}
/* Request section: copy left, lead form right (all three section styles) */
.lf-request{margin-top:0;justify-self:end;width:100%;max-width:420px;text-align:left}
.cta.cta-split,.v-cta3 .inn.cs-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,420px);gap:clamp(28px,5vw,72px);align-items:center;text-align:left}
.cta.cta-split{padding:clamp(32px,5vw,64px)}
.v-cta3 .inn.cs-split{padding:clamp(28px,5vw,60px)}
.cs-copy h2,.v-cta3 .cs-copy h2,.cta .cs-copy h2{margin:0;max-width:20ch;text-align:left}
.cs-copy p,.v-cta3 .cs-copy p{margin:16px 0 0;max-width:56ch;text-align:left}
.cs-copy .req,.v-cta3 .cs-copy .req{margin:24px 0 0;max-width:56ch;text-align:left;padding:16px 18px;border:0;border-left:3px solid currentColor;border-radius:0 12px 12px 0;background:rgba(255,255,255,.1)}
.v-cta3 .cs-copy .req{background:color-mix(in srgb,var(--acc) 8%,transparent);border-left-color:var(--acc)}
.v-cta2 .cs-copy .exq{margin-top:24px}
.v-cta2{grid-template-columns:minmax(0,1fr) minmax(300px,420px)}
.lf-glass{background:rgba(18,6,38,.38);box-shadow:0 0 0 1px rgba(255,255,255,.22) inset,0 30px 60px -30px rgba(0,0,0,.55);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.lf-glass:before{opacity:.5}
.hero-form.flash{animation:lfFlash 1.1s ease .35s 2}
@keyframes lfFlash{0%{box-shadow:0 0 0 0 rgba(201,2,105,.75)}100%{box-shadow:0 0 0 22px rgba(201,2,105,0)}}
@media(max-width:1000px){.cta.cta-split,.v-cta3 .inn.cs-split,.v-cta2{grid-template-columns:1fr}.lf-request{justify-self:stretch;max-width:none}}
@media(prefers-reduced-motion:reduce){.hero-form:before,.hero-form.flash{animation:none}}
