
:root {
  --bg: #eef4fb;
  --bg2: #dfe8f5;
  --panel: rgba(255,255,255,0.80);
  --panel-strong: rgba(255,255,255,0.9);
  --line: rgba(24,65,122,0.14);
  --text: #10233c;
  --muted: #4f647f;
  --accent: #256ed6;
  --accent-soft: #eff6ff;
  --accent-strong: #0f4fa6;
  --shadow: 0 18px 48px rgba(16,35,60,0.10);
  --radius: 26px;
  --radius-sm: 18px;
  --container: 1220px;
  --theme-btn-bg: rgba(255,255,255,0.85);
  --theme-btn-border: rgba(37,110,214,0.18);
  --grid-line: rgba(37,110,214,0.06);
  --topbar-bg: rgba(244,248,255,0.88);
  --highlight: #c9daee;
}
body[data-theme="dark"] {
  --bg: #050d18;
  --bg2: #0b1728;
  --panel: rgba(7,17,31,0.78);
  --panel-strong: rgba(8,18,34,0.90);
  --line: rgba(120,179,255,0.14);
  --text: #f2f7ff;
  --muted: #b4c6dd;
  --accent: #65aeff;
  --accent-soft: rgba(255,255,255,0.04);
  --accent-strong: #dcecff;
  --shadow: 0 24px 70px rgba(0,0,0,0.35);
  --theme-btn-bg: rgba(8,18,34,0.88);
  --theme-btn-border: rgba(120,179,255,0.18);
  --grid-line: rgba(120,179,255,0.06);
  --topbar-bg: rgba(5,13,24,0.88);
  --highlight: #ffffff;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,Arial,Helvetica,sans-serif;color:var(--text);background:radial-gradient(circle at 12% 0%, rgba(89,155,255,0.16), transparent 30%),radial-gradient(circle at 88% 2%, rgba(8,79,166,0.18), transparent 22%),linear-gradient(180deg,var(--bg) 0%, var(--bg2) 100%);transition:background .6s ease,color .45s ease;overflow-x:hidden;min-height:100vh}
a{color:var(--accent);text-decoration:none}
a:hover{opacity:.92}
img{max-width:100%;display:block}
body::before{content:"";position:fixed;inset:0;background-image:linear-gradient(var(--grid-line) 1px, transparent 1px),linear-gradient(90deg,var(--grid-line) 1px, transparent 1px);background-size:34px 34px;mask-image:radial-gradient(circle at center, black 40%, transparent 100%);pointer-events:none;z-index:-3}
body::after{content:"";position:fixed;inset:0;background:radial-gradient(circle at center, rgba(255,255,255,0.04), transparent 60%);pointer-events:none;z-index:-4}
.container{width:min(var(--container), calc(100% - 32px));margin:0 auto}
.card,.glass{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);backdrop-filter:blur(16px);transition:background .45s ease,border-color .45s ease,color .35s ease,transform .2s ease}
.section{padding:28px 0 48px}
.section-tight{padding:8px 0 32px}
.eyebrow{display:inline-flex;align-items:center;gap:10px;padding:10px 14px;border-radius:999px;background:var(--accent-soft);border:1px solid var(--line);font-size:.78rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:700;margin-bottom:16px}
h1,h2,h3{margin:0 0 14px;line-height:1.04;letter-spacing:-.03em;text-wrap:balance;max-width:18ch}
h1{font-size:clamp(2.8rem, 5vw, 5.4rem)}
h2{font-size:clamp(2rem, 3.4vw, 3rem)}
h3{font-size:1.3rem}
p{margin:0 0 16px;color:var(--muted);line-height:1.75}
.lead{font-size:1.08rem;max-width:800px}
.highlight{color:var(--highlight);transition:color .45s ease}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 20px;border-radius:999px;border:1px solid transparent;font-weight:700;cursor:pointer;transition:transform .2s ease, box-shadow .2s ease, background .4s ease, border-color .4s ease, color .4s ease}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:linear-gradient(135deg,#ffffff,var(--accent));color:#081223;box-shadow:0 14px 38px rgba(37,110,214,0.22)}
.btn-secondary{background:var(--panel-strong);color:var(--text);border-color:var(--line)}
.btn-ghost{background:transparent;color:var(--text);border-color:var(--line)}
.tag-row{display:flex;flex-wrap:wrap;gap:12px;margin:20px 0 26px}.tag{padding:11px 14px;border-radius:999px;background:var(--accent-soft);border:1px solid var(--line);font-size:.92rem;color:var(--text)}
.cta-row{display:flex;gap:14px;flex-wrap:wrap}
.topbar{border-bottom:1px solid var(--line);background:var(--topbar-bg);backdrop-filter:blur(14px);overflow:hidden}
.ticker{white-space:nowrap;display:inline-block;padding:13px 0;min-width:100%;animation:scroll 34s linear infinite;color:var(--muted);font-size:.92rem;letter-spacing:.03em}
@keyframes scroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.site-header{position:sticky;top:0;z-index:35;background:rgba(255,255,255,0.05);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
body[data-theme="dark"] .site-header{background:rgba(0,0,0,0.08)}
.nav-shell{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:20px;align-items:center;padding:14px 0}
.brand{display:inline-flex;align-items:center;gap:12px;color:var(--text);font-weight:800;letter-spacing:-.02em;min-width:0}
.brand-logo{width:54px;height:54px;object-fit:contain;transition:opacity .35s ease, transform .35s ease;flex:0 0 auto}
.brand-logo.small{width:48px;height:48px}
.brand-text{font-size:1.1rem;white-space:nowrap}
.desktop-nav,.footer-links,.mobile-menu ul{list-style:none;padding:0;margin:0}
.desktop-nav{min-width:0;justify-self:end}
.desktop-nav ul{display:flex;gap:clamp(10px,1.1vw,18px);justify-content:flex-end;align-items:center;flex-wrap:nowrap;white-space:nowrap}
.desktop-nav a{color:var(--text);font-weight:600;padding:8px 0;position:relative;font-size:.98rem;white-space:nowrap}
.desktop-nav a.active::after,.desktop-nav a:hover::after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:2px;border-radius:999px;background:var(--accent)}
.menu-toggle{display:none;background:var(--panel-strong);color:var(--text);border:1px solid var(--line);border-radius:14px;padding:10px 13px;font-size:1.2rem;cursor:pointer}
.mobile-menu{display:none;border-top:1px solid var(--line);background:var(--panel-strong)}
.mobile-menu.open{display:block}
.mobile-menu ul{padding:10px 16px 18px;display:grid;gap:8px}.mobile-menu a{display:block;padding:10px 0;color:var(--text);font-weight:600}
.nav-cta{white-space:nowrap;justify-self:end}
.theme-toggle{position:fixed;top:18px;right:18px;z-index:50;display:inline-flex;align-items:center;gap:10px;min-height:50px;padding:0 15px;border-radius:999px;border:1px solid var(--theme-btn-border);background:var(--theme-btn-bg);color:var(--text);box-shadow:var(--shadow);backdrop-filter:blur(14px);cursor:pointer;transition:transform .25s ease, background .45s ease, color .45s ease, border-color .45s ease}
.theme-toggle:hover{transform:translateY(-1px)}
.wrap-lines{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:-1;opacity:.72}
.wrap-lines span{position:absolute;display:block;height:2px;width:130vw;background:linear-gradient(90deg,transparent 0%, rgba(101,174,255,0.15) 24%, rgba(255,255,255,0.40) 50%, rgba(101,174,255,0.16) 76%, transparent 100%);border-radius:999px;animation:drift 15s linear infinite}
.wrap-lines span:nth-child(1){top:15%;left:-12vw;transform:rotate(-6deg);animation-delay:0s}.wrap-lines span:nth-child(2){top:29%;left:-10vw;transform:rotate(4deg);animation-delay:-3s}.wrap-lines span:nth-child(3){top:46%;left:-5vw;transform:rotate(-4deg);animation-delay:-6s}.wrap-lines span:nth-child(4){top:63%;left:-9vw;transform:rotate(8deg);animation-delay:-2s}.wrap-lines span:nth-child(5){top:79%;left:-6vw;transform:rotate(-5deg);animation-delay:-8s}
@keyframes drift{0%{transform:translateX(-6vw)}50%{opacity:.9}100%{transform:translateX(6vw) translateY(-8px)}}
.hero-home{padding:38px 0 24px}.hero-shell{display:grid;grid-template-columns:1.05fr .95fr;gap:24px;align-items:stretch}
.hero-copy,.hero-media,.stat-card,.icon-card,.split-card,.review-card,.faq-card,.gallery-card,.contact-card,.state-card,.service-detail,.industry-card,.cta-band,.map-card,.about-card{padding:30px;position:relative;overflow:hidden}
.hero-copy::after,.hero-media::after,.cta-band::after,.split-card::after{content:"";position:absolute;inset:auto -10% -28% auto;width:280px;height:280px;background:radial-gradient(circle, rgba(101,174,255,0.15), transparent 65%);pointer-events:none}
.hero-media img.hero-image{width:100%;height:100%;object-fit:cover;border-radius:22px;min-height:420px;border:1px solid var(--line)}
.hero-media .logo-badge{position:absolute;top:28px;right:28px;width:120px;padding:10px;border-radius:24px;background:var(--panel-strong);border:1px solid var(--line)}
.quick-stats{display:grid;grid-template-columns:repeat(3, 1fr);gap:18px;padding-bottom:20px}.stat-card strong{display:block;font-size:1.9rem;margin-bottom:8px}.stat-card p{margin:0}
.grid-3,.grid-4,.grid-2{display:grid;gap:22px}.grid-3{grid-template-columns:repeat(3, minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4, minmax(0,1fr))}.grid-2{grid-template-columns:repeat(2, minmax(0,1fr))}
.icon-card:hover,.gallery-card:hover,.state-card:hover,.industry-card:hover,.service-detail:hover{transform:translateY(-2px)}
.icon-card img,.gallery-card img{width:100%;height:220px;object-fit:cover;border-radius:20px;border:1px solid var(--line);margin-bottom:18px}
.gallery-card img{height:240px}.service-list,.check-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}.service-list li,.check-list li{position:relative;padding-left:22px;color:var(--muted);line-height:1.65}.service-list li::before,.check-list li::before{content:"✓";position:absolute;left:0;top:0;color:var(--accent);font-weight:800}
.split{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:stretch}.split-media img{width:100%;height:100%;object-fit:cover;border-radius:22px;border:1px solid var(--line)}
.map-card img{width:100%;height:auto;border-radius:22px;border:1px solid var(--line)}
.breadcrumb{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:20px;font-size:.95rem}.breadcrumb a,.breadcrumb span{color:var(--muted)}
.page-hero{padding:34px 0 18px}.page-hero .glass{padding:34px}
.service-grid .icon-card h3,.state-grid .state-card h3{margin-bottom:10px}
.reviews-layout{display:grid;grid-template-columns:.95fr 1.05fr;gap:24px}.review-shot{width:100%;border-radius:24px;border:1px solid var(--line)}
.rating-line{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px}.rating-value{font-size:2.2rem;font-weight:900;color:var(--text)}.stars{font-size:1.2rem;color:#ffd24d;letter-spacing:.18em}
.review-quote{padding:18px;border-radius:18px;background:var(--accent-soft);border:1px solid var(--line);margin-top:12px}.review-quote strong{display:block;margin-bottom:6px;color:var(--text)}
.faq-wrap{display:grid;gap:14px}.faq-item{padding:22px;border-radius:20px;background:var(--panel);border:1px solid var(--line)}.faq-item h3{font-size:1.12rem;margin-bottom:8px}
.gallery-wrap{display:grid;grid-template-columns:repeat(3, minmax(0,1fr));gap:22px}
.contact-layout{display:grid;grid-template-columns:.95fr 1.05fr;gap:24px}.contact-points{display:grid;gap:12px;margin:0 0 22px}.contact-point{padding:16px 18px;border-radius:18px;background:var(--accent-soft);border:1px solid var(--line)}
form{display:grid;gap:14px}.field-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}label{display:block;font-size:.92rem;font-weight:700;color:var(--text);margin-bottom:8px}input,select,textarea{width:100%;border:1px solid var(--line);background:rgba(255,255,255,.65);color:var(--text);padding:15px 16px;border-radius:16px;font:inherit;outline:none;transition:border-color .25s ease, box-shadow .25s ease, background .45s ease, color .45s ease}body[data-theme="dark"] input,body[data-theme="dark"] select,body[data-theme="dark"] textarea{background:rgba(255,255,255,0.04)}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px rgba(37,110,214,0.12)}textarea{min-height:160px;resize:vertical}.honeypot{position:absolute;left:-9999px}.status-box{padding:14px 16px;border-radius:16px;background:var(--accent-soft);border:1px solid var(--line);display:none}.status-box.show{display:block}
.cta-band{display:flex;justify-content:space-between;gap:24px;align-items:center}.cta-band p{max-width:760px;margin-bottom:0}
.site-footer{padding:48px 0 18px;border-top:1px solid var(--line);margin-top:34px;background:rgba(255,255,255,0.02)}.footer-grid{display:grid;grid-template-columns:minmax(280px,1.35fr) repeat(3,minmax(180px,1fr));gap:28px;align-items:start}.footer-copy{font-size:.96rem}.footer-links{display:grid;gap:10px}.footer-links a{color:var(--muted);white-space:nowrap}.footer-contact{display:flex;flex-direction:column;gap:8px;margin-top:14px}.footer-contact a{color:var(--text);font-weight:700}.footer-bottom{padding-top:18px;border-top:1px solid var(--line);margin-top:24px}.footer-brand{margin-bottom:12px}
.state-tags{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.state-tag{padding:10px 12px;border-radius:999px;background:var(--accent-soft);border:1px solid var(--line);font-size:.9rem;color:var(--text)}
.intro-overlay{position:fixed;inset:0;z-index:120;display:grid;place-items:center;background:radial-gradient(circle at center, rgba(37,110,214,0.18), transparent 36%), linear-gradient(180deg,#030b15 0%, #081223 100%);opacity:0;pointer-events:none;transition:opacity .45s ease, visibility .45s ease;visibility:hidden}.intro-overlay.active{opacity:1;pointer-events:auto;visibility:visible}.intro-logo-shell{width:min(42vw, 240px);aspect-ratio:1;display:grid;place-items:center}.intro-logo{width:100%;filter:drop-shadow(0 18px 55px rgba(90,169,255,0.32));animation:introPulse 2.2s ease forwards}@keyframes introPulse{0%{transform:scale(.28);opacity:0}22%{opacity:1}68%{transform:scale(1.1)}100%{transform:scale(1);opacity:1}}
@media (max-width: 1240px){.nav-shell{grid-template-columns:auto minmax(0,1fr)}.nav-cta{display:none}.desktop-nav ul{gap:12px}.desktop-nav a{font-size:.94rem}}
@media (max-width: 1120px){.grid-4{grid-template-columns:repeat(2, minmax(0,1fr))}.footer-grid{grid-template-columns:repeat(2, minmax(0,1fr))}}
@media (max-width: 980px){.hero-shell,.split,.reviews-layout,.contact-layout,.grid-3,.quick-stats,.gallery-wrap,.grid-2{grid-template-columns:1fr}.field-grid{grid-template-columns:1fr}.nav-shell{grid-template-columns:auto 1fr auto}.desktop-nav,.nav-cta{display:none}.menu-toggle{display:inline-flex;justify-self:end}.hero-media img.hero-image{min-height:300px}}
@media (max-width: 720px){.container{width:min(var(--container), calc(100% - 22px))}.hero-copy,.hero-media,.stat-card,.icon-card,.split-card,.review-card,.faq-card,.gallery-card,.contact-card,.state-card,.service-detail,.industry-card,.cta-band,.map-card,.about-card{padding:22px}.theme-toggle{top:12px;right:12px;min-height:46px;padding:0 14px}.brand-text{display:none}.hero-media .logo-badge{width:88px;top:18px;right:18px}.gallery-wrap{grid-template-columns:1fr}.grid-4{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.ticker{animation-duration:40s}}

.hero-copy h1,
.page-hero h1,
.cta-band h2 {
  max-width: none;
}

.grid-2 > div > h2,
.grid-2 > .glass > h2,
.faq-card h2,
.about-card h2,
.split-card h2 {
  max-width: 16ch;
}

@media (max-width: 720px) {
  h1, h2, h3 {
    text-wrap: pretty;
  }
  .grid-2 > div > h2,
  .grid-2 > .glass > h2,
  .faq-card h2,
  .about-card h2,
  .split-card h2 {
    max-width: 14ch;
  }
}
