/* QSB route identity and readability layer */
:root{
  --readable-copy: 68ch;
  --readable-wide: 78ch;
  --text-strong:#15171d;
  --text-body:#404958;
  --text-muted:#5f6979;
  --line-soft:#d9dee6;
}

body{
  font-size:16px;
  line-height:1.7;
  text-rendering:optimizeLegibility;
}

p,li,dd,label,input,select,textarea{
  color:var(--text-body);
}

p{
  max-width:var(--readable-copy);
}

h1,h2,h3,h4{
  color:var(--text-strong);
  text-wrap:balance;
}

.hero h1,.page-hero-dark h1,.public-hero h1,
.hero h2,.page-hero-dark h2,.public-hero h2,
.hero h3,.page-hero-dark h3,.public-hero h3,
.contrast-band h2,.public-section.dark h2,.public-section.dark h3,
.home-final-cta h2,.launch-cta h2,.cta-panel h2{
  color:#fff;
}

.lead,.display-copy,.public-copy{
  max-width:var(--readable-wide);
  color:var(--text-muted);
  line-height:1.75;
}

.hero p,.page-hero-dark p,.public-hero p,
.contrast-band p,.public-section.dark p{
  color:#c5cbd5;
}

.card p,.enterprise-card p,.platform-point span,
.priority-list p,.solution-row p,.timeline-item p{
  color:var(--text-body);
}

.card,.enterprise-card{
  box-shadow:0 14px 40px rgba(8,12,20,.07);
}

.card:hover,.enterprise-card:hover,.platform-point:hover{
  transform:translateY(-3px);
}

.card h3,.enterprise-card h3{
  line-height:1.25;
}

.mini-list li,.bullets li{
  margin:.48rem 0;
}

/* Calmer motion keeps content readable while still polished. */
.reveal{
  transform:translateY(14px)!important;
  transition-duration:.65s!important;
}
.reveal.is-visible{
  transform:none!important;
}

/* Keep text from becoming oversized on wide monitors. */
h1{font-size:clamp(44px,5.4vw,76px)}
h2,.display-title,.public-title{font-size:clamp(34px,4vw,56px)}

/* Preferred light navigation treatment. */
.site-header,
.site-header.scrolled{
  background:rgba(255,255,255,.96);
  border-bottom:2px solid var(--qsb-red);
  box-shadow:0 10px 30px rgba(8,12,20,.10);
  backdrop-filter:blur(18px);
}
.brand{color:var(--text-strong)}
.brand .title strong{color:var(--text-strong)}
.brand .title span{color:#77808f}
.logo-wrap{background:#fff;border-color:#e2e6ec}
.navlinks>a,.navdrop-trigger{color:#252a33}
.navlinks>a:hover,.navdrop-trigger:hover,.navlinks>a.active,.navdrop.active>.navdrop-trigger{
  color:#a71920;
  background:#fff1f2;
}
.navdrop-menu{
  background:#fff;
  border-color:#dfe3e8;
  box-shadow:0 24px 70px rgba(8,12,20,.18);
}
.navdrop-menu a{color:#363d49}
.navdrop-menu a:hover{color:#a71920;background:#fff1f2}
.mobile-toggle span{background:#171a20}

/* Homepage contrast corrections. */
.home-hero h1{color:#f8fafc!important}
.home-hero h1 span{color:#f0303a!important}
.home-hero-copy{color:#c9d0db!important}
.home-proof span{color:#c7ced8!important}
.home-hero .btn-outline-light{color:#fff!important}

/* Light ecosystem and solution sections must never inherit white headings. */
.platform-section:not(.dark) .display-title,
.platform-section:not(.dark) .solution-row h3,
.platform-section:not(.dark) .solution-row li,
.platform-section:not(.dark) .solution-row p,
.page-section-light h2,
.page-section-light h3,
.public-section:not(.dark) h2,
.public-section:not(.dark) h3{
  color:var(--text-strong)!important;
}
.platform-section:not(.dark) .display-copy,
.platform-section:not(.dark) .solution-row p,
.platform-section:not(.dark) .solution-row li{
  color:var(--text-body)!important;
}
.platform-section:not(.dark) .solution-row a{color:#c71920!important}

/* Page-family identities: same brand, different visual language. */
.page-home .hero{
  background:
    radial-gradient(circle at 82% 16%,rgba(240,48,58,.30),transparent 29%),
    radial-gradient(circle at 10% 85%,rgba(111,124,255,.12),transparent 33%),
    linear-gradient(135deg,#08090d 0%,#10131b 57%,#250a0f 100%);
}

.page-services .page-hero-dark,
.route-site-service-exposure .public-hero,
.route-site-service-wireless .public-hero,
.route-site-service-readiness .public-hero{
  background:
    linear-gradient(115deg,rgba(214,31,38,.18),transparent 42%),
    linear-gradient(135deg,#0a0b0f,#151820 68%,#211016);
}
.page-services .page-hero-dark::before,
.route-site-service-exposure .public-hero::before,
.route-site-service-wireless .public-hero::before,
.route-site-service-readiness .public-hero::before{
  background-image:linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);
  background-size:72px 100%;
}

.page-shadowscan .public-hero,
.route-public-pages-product-page .public-hero,
.route-shadowhire-overview .public-hero{
  background:
    radial-gradient(circle at 76% 28%,rgba(214,31,38,.28),transparent 25%),
    linear-gradient(145deg,#07080b,#11151e 58%,#18090d);
}
.page-shadowscan .enterprise-card,
.route-public-pages-product-page .enterprise-card,
.route-shadowhire-overview .enterprise-card{
  border-radius:12px;
  border-left:3px solid var(--qsb-red);
}

.page-resources .public-hero{
  background:
    radial-gradient(circle at 18% 20%,rgba(214,31,38,.22),transparent 28%),
    linear-gradient(135deg,#101217,#171b24 62%,#0c0d11);
}
.page-resources .enterprise-card{
  border-radius:8px;
  box-shadow:none;
  border-top:3px solid var(--qsb-red);
}
.page-resources .resource-feature{
  border-radius:10px;
}

.page-about .public-hero,
.page-about .page-hero-dark{
  background:
    linear-gradient(120deg,rgba(214,31,38,.18),transparent 38%),
    linear-gradient(135deg,#0b0c10,#17191f 65%,#101116);
}
.page-about .public-section.alt{
  background:#f7f4f2;
}
.page-about .enterprise-card{
  border-radius:24px 8px 24px 8px;
}

.page-contact .public-hero,
.page-contact .page-hero-dark{
  background:
    radial-gradient(circle at 78% 20%,rgba(240,48,58,.24),transparent 30%),
    linear-gradient(135deg,#090a0d,#15171d 65%,#200b0e);
}
.page-contact .qsb-panel{
  border-top:4px solid var(--qsb-red);
}

/* Service detail pages get distinct operational accents. */
.route-site-service-exposure{--service-accent:#d61f26}
.route-site-service-wireless{--service-accent:#3567d4}
.route-site-service-readiness{--service-accent:#9b5a20}
.route-site-service-exposure .enterprise-card::before,
.route-site-service-wireless .enterprise-card::before,
.route-site-service-readiness .enterprise-card::before{
  background:var(--service-accent);
}
.route-site-service-exposure .public-kicker,
.route-site-service-wireless .public-kicker,
.route-site-service-readiness .public-kicker{
  color:var(--service-accent);
}

/* Readable accordions and forms. */
details{
  color:var(--text-body);
}
details summary{
  color:var(--text-strong);
  font-size:1rem;
  line-height:1.45;
}
.form .field label{
  color:var(--text-strong);
  font-size:.92rem;
}
.form .field input,.form .field select,.form .field textarea{
  color:var(--text-strong);
  font-size:1rem;
  line-height:1.5;
}
.form .field input::placeholder,.form .field textarea::placeholder{
  color:#7b8492;
}

@media(max-width:980px){
  body{font-size:15.5px}
  .hero,.page-hero-dark,.public-hero{padding-top:82px;padding-bottom:68px}
  p,.lead,.display-copy,.public-copy{max-width:100%}
  .navlinks{background:#fff;border-color:#dfe3e8}
  .navlinks>a,.navdrop-trigger{color:#252a33}
}

@media(max-width:640px){
  h1{font-size:clamp(39px,12vw,52px);line-height:1.04}
  h2,.display-title,.public-title{font-size:clamp(31px,9vw,42px);line-height:1.08}
  .card,.enterprise-card{padding:24px}
}

@media(prefers-reduced-motion:reduce){
  .reveal{transform:none!important}
}
