/* Site-wide type normalisation (Oct 2026). Lead 18px, body 17px, compact 16px, fine 14px.
   One text colour, four sizes. Loaded last so it settles the many per-page overrides.
   Lead 19px, body 17px, compact 16px (cards), fine 14px. No letter-spacing on running text. */
:root{
  --tx:#3d4a4f;            /* all running text on light backgrounds (9:1 on white) */
  --tx-fine:#5e7480;       /* footnotes, captions, meta */
  --lbl:#1D7686;           /* section labels */
  --fs-lead:1.125rem; --fs-body:1.0625rem; --fs-compact:1rem; --fs-fine:.875rem;
}

/* Dark sections: same structure, light values */
.section--ink,.section--teal,.guar-sec,.gt-band,.sea-darkband,.statband,.ahero,.page-hero,.cf-hero,
.rs-cta,.pd-supply,.cstudy,.cstudy-card,.case-section,.case-details,.contact-section,.chal-card,
.prodx-pfas,.prodx-top,.bt-seaix-top,.bt-pfas-top,.closing,.cimpact,.wt2-contact,.ms-sec,.ourstory,
.lp-final,.side-sub,.spec-next,.case-context,.cta-footer-2,.div-block-301,.div-block-155,.other-detail-box-2,
.section-41,.feature-tile{
  --tx:#fff; --tx-fine:rgba(255,255,255,.88); --lbl:#fff;
}
/* White cards sitting inside dark sections go back to the light values */
.rs-cta-form,.div-block-163,.container-23,.cstudy-card .card-white{
  --tx:#3d4a4f; --tx-fine:#5e7480; --lbl:#1D7686;
}

/* Running text */
:is(main,body>section,body>div,body>article) :is(p,.lead):not(.btn):not([class*="btn"]){
  color:var(--tx) !important; font-size:var(--fs-body) !important; line-height:1.65 !important;
  letter-spacing:0 !important; font-weight:400;
}
:is(main,body>section,body>div,body>article) :is(.lead,.pd-lead):not(.btn):not([class*="btn"]):not(.x){font-size:var(--fs-lead) !important;line-height:1.6 !important}

/* Compact text inside cards and tiles */
:is(.card,.scard,.tile,.tech-tile,.svc-card,.pd-card,.pd-app,.pd-tile,.rs-card,.rs-b5 > *,.chal-card,.cstudy-card,
  .tmem,.tmem-bio,.res-card,.resin-card,.prodx,.spec-card,.art-card,.iu-card,.step,.rs-step,.proc,.catab-panel,
  .mx,.side-card,.faq-item,.rs-faq-grid > *,.pd-faq,.ix-cap,.cw-card,.wts-card,.sc-card) :is(p,.lead){
  --fs-body:var(--fs-compact); --fs-lead:var(--fs-compact);
}

/* Subheading under a section heading: a plain subtitle. No arrow, bar or rule; follows the heading's alignment. */
.eyebrow,.eyebrow.light,.subhead,.cimpact-tag,.apply-tag,.cw-tagline{
  display:block !important; width:auto !important; max-width:none; font-family:"Inter",sans-serif;
  font-size:1.25rem !important; font-weight:500 !important; line-height:1.4 !important; letter-spacing:0 !important;
  color:var(--lbl) !important; text-transform:none; text-align:inherit;
  margin:14px 0 22px !important; padding:0 !important; border:0 !important; background:none !important;
}
.eyebrow::before,.eyebrow::after,.subhead::before,.subhead::after{content:none !important;display:none !important}
.subhead svg,.cimpact-tag svg,.apply-tag svg,.cw-tagline svg{display:none !important}
@media(max-width:640px){.eyebrow,.eyebrow.light,.subhead{font-size:1.125rem !important}}

/* Fine print wins over the running-text rule */
:is(main,body>section,body>div,body>article) :is(p,span,div).fine:not(.btn):not(.x):not(.y),
:is(main,body>section,body>div,body>article) :is(.meta,.note,.pd-note,.tzline,.hint,small):not(.btn):not(.x):not(.y){
  color:var(--tx-fine) !important; font-size:var(--fs-fine) !important; line-height:1.55 !important; letter-spacing:0 !important;
}

/* Text set on photographs: pure white, medium weight, no tracking */
.feature-tile{--tx:#fff}
.feature-tile .ft-body p{font-weight:500 !important}
.ft-tags span{letter-spacing:0 !important;text-transform:none !important;font-size:.8125rem !important}

/* Square corners on article pages */
.art-detail .art-cat,.art-back,.art-cover,.art-cover img,.art-prose figure,.art-prose figure img{border-radius:0 !important}

/* Dark sections (Oct 21): one flat brand teal, no gradients, no outline-tree overlays */
.sea-darkband,.wts-darkband,.rs-cta,.cimpact,.cstudy-card,.cfeat,.iu-res-teal,.bioh,.cf-hero,.guar-sec,.section--teal,.gt-band{
  background:#1D7686 !important; background-image:none !important;
}
.cimpact-tree,.sea-darkband::after,.guar-sec::after,.rs-cta::before,.rs-cta::after,.cimpact::after,.bioh::after,.cf-hero::after{display:none !important}
.sea-darkband,.wts-darkband,.rs-cta,.cimpact,.cstudy-card,.cfeat,.iu-res-teal,.bioh,.cf-hero,.guar-sec,.section--teal,.gt-band{
  --tx:#fff; --tx-fine:rgba(255,255,255,.88); --lbl:#fff;
}
.sea-darkband .accent,.guar-sec .accent,.guar-sec .accent--air,.rs-cta .accent,.cimpact .accent,.bioh .accent,.cf-hero .accent{color:#bfe6ea !important}

/* SEA-IX band layout: heading left, copy right, applications as a clean list */
.band{padding-block:clamp(56px,7vw,96px) !important}
.band-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:clamp(28px,5vw,80px);align-items:start}
.band-grid h2{color:#fff;font-size:clamp(1.9rem,3vw,2.6rem) !important;line-height:1.12;margin:0 !important}
.band-grid .eyebrow{margin-bottom:0 !important}
.bioh .bio-role,.bioh [class*="role"]{color:#fff !important}
.band .sea-darkband-p{margin:0 !important;max-width:none}
.band-apps{display:grid;grid-template-columns:180px 1fr;gap:20px 32px;margin-top:clamp(36px,4vw,52px);padding-top:26px;border-top:1px solid rgba(255,255,255,.3)}
.band-apps-l{font-weight:600;color:#fff;font-size:1rem}
.band-apps ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:14px 32px}
.band-apps li{color:#fff;font-size:1rem;line-height:1.4}
@media(max-width:900px){.band-grid,.band-apps{grid-template-columns:1fr}.band-apps ul{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.band-apps ul{grid-template-columns:1fr}}

/* Headings: no letter-spacing (standing rule) */
h1,h2,h3,h4,h5{letter-spacing:0 !important}

/* RSSCT landing: Grand Forks band used a Philadelphia skyline photo; plain band, readable text (Oct 21) */
.cta-footer-2.huis{background-image:none !important;background:#fff !important;padding:64px 0 !important;border-top:1px solid #dfe8ea}
.cta-footer-2.huis .contact-para{color:#3d4a4f !important;--tx:#3d4a4f}

/* Brand rule: no letter-spacing anywhere (Oct 21) */
body *{letter-spacing:0 !important}

/* Square corners on the water landing components (Oct 21) */
[class^="bt-"],[class*=" bt-"],.bt-pilot,.bt-seaix{border-radius:0 !important}

/* Brand rule: no gradients anywhere. Flat equivalents for every gradient in styles.css (Oct 21) */
.section--teal,.rs-cta,.cstudy-card,.cimpact,.cta-split .left,.gt-band,.cfeat,.art-cta-sec,.sea-darkband,.iu-res-teal,.iu-card,.guar-sec,.page-hero{background:#1D7686 !important;background-image:none !important}
.page-hero::after,.life-card::after{background:none !important}
.lhb-mark,.cf-mark,.tmem-photo.is-av,.whyc-col::before{background:#1D7686 !important}
.tm-photo,.leader-photo .av{background:#E9F1F2 !important}
.accent,.stat-panel .n,.mission-badge .n{background:none !important;-webkit-text-fill-color:currentColor !important;color:#1D7686}
.nav-link.is-current::after,.nav-link.is-current-parent::after,.drop-link.is-current::before,.mega-parent.is-current::before{background:#1D7686 !important}
.section--ink .stats.stats-3 .stat::before{background:#1D7686 !important}
.feature-tile .btn-outline-light:hover{background:#fff !important;color:#1D7686 !important}
/* photo scrims: flat washes instead of fades */
.cv-media-cap,.rs-expert figcaption{background:rgba(16,28,32,.78) !important}
.tile::after,.statband-shade,.os-scrim2{background:rgba(16,28,32,.55) !important}
.ahero-shade{background:rgba(8,13,15,.62) !important}
.feature-tile::after{background:rgba(8,20,28,.6) !important}
.feature-tile[href*="clean-air"]::after,.feature-tile[href*="clean-water"]::after{background:rgba(29,118,134,.72) !important}
.tech-tile::before{background:rgba(245,248,248,.92) !important}
/* Shared footer newsletter line was dark on dark on the Webflow pages */
.site-footer p{--tx:rgba(255,255,255,.72);--tx-fine:rgba(255,255,255,.72);color:rgba(255,255,255,.72) !important}
.guar-sec p,.guar-sec small{color:rgba(255,255,255,.95) !important}
.sea-darkband p,.gt-band p,.cta-split .left p{color:#fff}
