/* V3: presentation-only, full-width image sections. No fixed background,
   scroll hijacking, required animation, or JS-dependent content. */
:root { --sf-scene-ink:#19384d; --sf-scene-paper:#edf5f9; }
[data-section-bg] { position:relative; isolation:isolate; overflow:hidden; background:var(--sf-scene-paper); }
[data-section-bg] > .section-background,
[data-section-bg] .hero-art > .section-background,
[data-section-bg] .picture-wrap > .section-background,
.page-hero[data-section-bg] figure > .section-background {
  display:block; position:absolute; inset:0; width:100%; height:100%; z-index:0; pointer-events:none;
}
[data-section-bg] .section-background img { display:block; width:100%; height:100%; max-width:none; max-height:none; object-fit:cover; object-position:70% 50%; border-radius:0; aspect-ratio:auto; }
[data-section-bg]::before { content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(90deg,rgba(243,249,252,.92),rgba(243,249,252,.6) 56%,rgba(243,249,252,.06)); }
[data-section-bg] > .container { position:relative; z-index:2; }
[data-section-bg] h1,[data-section-bg] h2 { color:var(--sf-scene-ink); }
[data-section-bg] .eyebrow { color:#345e77; }
[data-section-bg] .btn,[data-section-bg] .text-link { position:relative; }
[data-section-bg] .btn-outline { background:rgba(255,255,255,.82); }
/* The first section fills the viewport below the real 84px header. */
.home-hero[data-section-bg] { min-height:calc(100vh - 84px); min-height:calc(100svh - 84px); display:flex; align-items:center; }
.home-hero[data-section-bg]::before { background:linear-gradient(90deg,rgba(243,249,252,.55) 0%,rgba(243,249,252,.44) 36%,rgba(243,249,252,.15) 61%,transparent 80%); }
.home-hero .hero-grid { position:static; display:block; min-height:0; padding:110px 0 120px; }
.home-hero .hero-copy { position:relative; z-index:3; max-width:640px; padding:0; }
.home-hero .hero-copy h1 { font-size:clamp(40px,4.15vw,62px); line-height:1.4; letter-spacing:.018em; margin:0; }
.home-hero .hero-copy h1 span { color:#245979; }
.home-hero .hero-copy .eyebrow { margin-bottom:28px; letter-spacing:.18em; }
.home-hero .hero-copy .lead { margin:28px 0 0; font-size:18px; line-height:2.05; max-width:530px; color:#3d596b; }
.home-hero .hero-copy .button-row { margin-top:35px; gap:14px; }
.home-hero .hero-footnote { margin-top:35px; color:#4f6c7e; }
.home-hero .hero-art { position:absolute; inset:0; width:100%; height:100%; max-width:none; margin:0; z-index:0; }
.home-hero .hero-art-caption { position:absolute; bottom:22px; right:36px; left:auto; z-index:2; margin:0; padding:8px 14px; font-size:11px; border-radius:2px; background:rgba(248,251,252,.93); color:#3b5668; }
.principles { background:#fff; }
/* Main homepage sections are full-bleed, with a finite readable text column. */
.sf-services { padding:100px 0; }
.sf-services::before { background:linear-gradient(90deg,rgba(245,249,251,.78),rgba(245,249,251,.34)); }
.sf-services .section-heading { margin-bottom:40px; }
.sf-services .service-feature { border-radius:3px; background:rgba(255,255,255,.92); box-shadow:0 12px 36px rgba(31,64,83,.035); }
.feature-band[data-section-bg] { min-height:740px; display:flex; align-items:center; padding:100px 0; }
.feature-band[data-section-bg]::before { background:linear-gradient(90deg,rgba(241,248,251,.82),rgba(241,248,251,.65) 37%,rgba(241,248,251,.08) 69%,transparent); }
.feature-band .split { position:static; display:block; z-index:auto; }
.feature-band .picture-wrap { position:absolute; inset:0; width:100%; height:100%; border:0; padding:0; border-radius:0; margin:0; z-index:0; background:none; }
.feature-band .feature-copy { position:relative; z-index:3; max-width:585px; }
.feature-band .feature-copy h2 { font-size:clamp(32px,3.2vw,47px); line-height:1.55; }
.feature-band .feature-copy p { max-width:515px; font-size:16px; line-height:2; }
.feature-band .feature-points { display:grid; grid-template-columns:1fr; gap:14px; margin:24px 0; }
.feature-band .small-note { font-size:13px!important; color:#455f70; }
.sf-industries { padding:105px 0; }
.sf-industries::before { background:linear-gradient(90deg,rgba(242,248,251,.98) 12%,rgba(242,248,251,.83) 57%,rgba(242,248,251,.7)); }
.sf-industries .section-heading { margin-bottom:60px; }
.sf-industries .industry-card { padding:18px 18px 24px; background:rgba(255,255,255,.96); border:1px solid rgba(225,233,239,.9); border-radius:3px; }
.sf-industries .industry-card h3,.sf-industries .industry-card p,.sf-industries .industry-card .eyebrow { margin-left:5px; margin-right:5px; }
.sf-industries .industry-card figure { margin-bottom:26px; }
.sf-core { padding:90px 0; min-height:640px; display:flex; align-items:center; }
.sf-core::before { background:linear-gradient(110deg,rgba(239,247,251,.38),rgba(239,247,251,.15)); }
.sf-core .core-block { border:0; border-radius:0; background:none; overflow:visible; gap:40px; align-items:center; }
.sf-core .core-block figure { padding:14px; background:rgba(255,255,255,.95); border:1px solid #d8e5ed; box-shadow:0 18px 60px rgba(32,62,83,.06); }
.sf-core .core-block .core-copy { padding:26px 0; background:transparent; color:#19384d; }
.sf-core .core-copy p { color:#415f73; }
.sf-core .core-copy .text-link { color:#234f69; border-color:#7190a3; }
.sf-core .core-copy h2 { font-size:37px; line-height:1.6; }
.sf-core .core-copy p { font-size:16px; line-height:2; }
.sf-delivery { min-height:820px; padding:100px 0; }
.sf-delivery::before { background:linear-gradient(90deg,rgba(242,248,251,.94),rgba(242,248,251,.58) 63%,rgba(242,248,251,.3)); }
.sf-delivery .section-heading { display:block; margin-bottom:68px; }
.sf-delivery .section-heading .text-link { margin-top:22px; }
.sf-delivery .process { padding:32px 28px; background:rgba(255,255,255,.96); border:1px solid #dce8ef; }
.sf-delivery .case-strip { background:rgba(255,255,255,.96); padding:30px 28px; margin-top:28px; border:1px solid #dce8ef; }
.sf-step-background { padding-top:84px; padding-bottom:84px; }
.sf-step-background::before { background:rgba(244,249,252,.38); }
.sf-step-background .flow-four article { background:rgba(255,255,255,.94); }
/* Inner hero sections cover their full width, not a side-by-side image card. */
.page-hero[data-section-bg] { min-height:610px; padding-bottom:66px; }
.page-hero[data-section-bg] > .container { position:static; }
.page-hero[data-section-bg] .breadcrumb-trail { position:relative; z-index:3; padding-top:29px; padding-bottom:29px; }
.page-hero[data-section-bg] .page-hero-inner { position:static; display:block; padding:52px 0 40px; }
.page-hero[data-section-bg] .page-hero-inner > div { position:relative; z-index:3; max-width:610px; }
.page-hero[data-section-bg] .page-hero-inner > figure { position:absolute; inset:0; margin:0; z-index:0; }
.page-hero[data-section-bg] h1 { font-size:clamp(34px,3.5vw,52px); line-height:1.5; letter-spacing:.015em; }
.page-hero[data-section-bg] .intro { font-size:16px; line-height:2; max-width:590px; margin-top:25px; }
.page-hero[data-section-bg] .button-row { margin-top:30px; }
.page-hero[data-section-bg] figcaption { position:absolute; bottom:21px; right:36px; padding:6px 12px; margin:0; background:rgba(248,251,252,.92); color:#39586c; font-size:11px; }
.page-hero[data-section-bg].photo-lead::before { background:linear-gradient(90deg,rgba(242,248,251,.83) 0%,rgba(242,248,251,.77) 38%,rgba(242,248,251,.23) 65%,rgba(242,248,251,.02)); }
.page-hero[data-section-bg].quiet-lead { min-height:480px; }
.page-hero[data-section-bg].quiet-lead::before { background:linear-gradient(90deg,rgba(244,249,252,.8),rgba(244,249,252,.25)); }
.page-hero[data-section-bg].quiet-lead .page-hero-inner > div { max-width:800px; }
.page-hero[data-section-bg].quiet-lead .intro { max-width:730px; }
/* CTA is a section-sized image backdrop, not a strip inside a container. */
.cta-band[data-section-bg] { min-height:400px; padding:95px 0; display:flex; align-items:center; }
.cta-band[data-section-bg]::before { background:linear-gradient(105deg,rgba(15,43,63,.97),rgba(29,66,89,.91) 60%,rgba(50,86,106,.83)); }
.cta-band[data-section-bg] h2 { font-size:39px; color:#fff; line-height:1.5; }
.cta-band[data-section-bg] .eyebrow { color:#c3d9e7; }
.cta-band[data-section-bg] p { color:#e0ebf1; max-width:710px; font-size:15px; }
.cta-band[data-section-bg] .btn-primary { color:#143a52; background:#fff; border-color:#fff; }
.cta-band[data-section-bg] .btn-primary:hover { color:#143a52; background:#e6f0f6; border-color:#e6f0f6; }
.sf-contact-body::before { background:rgba(244,249,252,.68); }
.sf-contact-body .form-panel { background:rgba(255,255,255,.98); box-shadow:0 16px 50px rgba(35,64,81,.06); }
/* Keyboard focus remains visible on both photo and solid backgrounds. */
[data-section-bg] a:focus-visible { outline:3px solid #327b9e; outline-offset:5px; }
.cta-band a:focus-visible { outline-color:#fff; }
@media (max-width:1100px) and (min-width:768px) {
  .home-hero .hero-copy { max-width:550px; }
  .home-hero .hero-copy h1 { font-size:46px; }
  .home-hero .hero-copy .lead { font-size:16px; }
  .feature-band .feature-copy { max-width:535px; }
  .sf-core .core-block { gap:26px; }
  .sf-core .core-copy h2 { font-size:31px; }
  .page-hero[data-section-bg] .intro { max-width:530px; }
}
@media (max-width:767px) {
  [data-section-bg]::before { background:linear-gradient(180deg,rgba(242,248,251,.97),rgba(242,248,251,.84) 58%,rgba(242,248,251,.16)); }
  [data-section-bg] .section-background img { object-position:50% 100%; }
  .home-hero[data-section-bg] { min-height:calc(100vh - 68px); min-height:calc(100svh - 68px); align-items:flex-start; }
  .home-hero[data-section-bg]::before { background:linear-gradient(180deg,rgba(239,247,251,.7) 0%,rgba(239,247,251,.6) 44%,rgba(239,247,251,.08) 62%,transparent 70%); }
  .home-hero .hero-grid { padding:53px 0 350px; }
  .home-hero .hero-copy { max-width:100%; }
  .home-hero .hero-copy .eyebrow { margin-bottom:22px; font-size:10px; letter-spacing:.09em; }
  .home-hero .hero-copy h1 { font-size:clamp(32px,8.8vw,40px); line-height:1.48; }
  .home-hero .hero-copy .lead { font-size:14px; margin-top:21px; line-height:1.95; }
  .home-hero .hero-copy .button-row { margin-top:25px; gap:10px; }
  .home-hero .hero-footnote { margin-top:22px; font-size:11px; width:fit-content; padding:3px 6px; background:rgba(239,247,251,.88); }
  .home-hero .hero-art { margin:0; max-width:none; }
  .home-hero .hero-art-caption { right:16px; bottom:14px; font-size:9px; padding:6px 10px; }
  .principles .principle>div { display:block; }
  .sf-services,.sf-industries { padding:65px 0; }
  .sf-services .section-heading { margin-bottom:28px; }
  .feature-band[data-section-bg] { min-height:820px; padding:57px 0 330px; align-items:flex-start; }
  .feature-band[data-section-bg]::before { background:linear-gradient(180deg,rgba(239,247,251,.95) 0%,rgba(239,247,251,.95) 49%,rgba(239,247,251,.43) 65%,rgba(239,247,251,.01)); }
  .feature-band .feature-copy h2 { font-size:32px; line-height:1.5; }
  .feature-band .feature-copy p { font-size:14px; line-height:1.95; }
  .feature-band .feature-points { margin:20px 0; gap:11px; }
  .feature-band .small-note { font-size:12px!important; }
  .sf-industries::before { background:rgba(244,249,252,.87); }
  .sf-industries .section-heading { margin-bottom:32px; }
  .sf-industries .industry-card { padding:15px 15px 25px; }
  .sf-core { min-height:0; padding:65px 0; }
  .sf-core .core-block { grid-template-columns:1fr; gap:27px; }
  .sf-core .core-copy { padding:0; }
  .sf-core .core-copy h2 { font-size:29px; }
  .sf-core .core-copy p { font-size:14px; }
  .sf-delivery { min-height:0; padding:65px 0; }
  .sf-delivery::before { background:rgba(242,248,251,.86); }
  .sf-delivery .section-heading { margin-bottom:36px; }
  .sf-delivery .process { padding:30px 24px 30px 32px; }
  .sf-delivery .case-strip { padding:25px 20px; }
  .sf-step-background { padding-top:58px; padding-bottom:58px; }
  .page-hero[data-section-bg] { min-height:700px; padding-bottom:270px; }
  .page-hero[data-section-bg] .breadcrumb-trail { padding-top:22px; padding-bottom:20px; }
  .page-hero[data-section-bg] .page-hero-inner { padding:26px 0 30px; }
  .page-hero[data-section-bg] h1 { font-size:32px; line-height:1.5; }
  .page-hero[data-section-bg] .intro { margin-top:21px; font-size:14px; line-height:1.95; }
  .page-hero[data-section-bg] .button-row { gap:14px; margin-top:23px; }
  .page-hero[data-section-bg].photo-lead::before { background:linear-gradient(180deg,rgba(239,247,251,.99),rgba(239,247,251,.92) 46%,rgba(239,247,251,.33) 67%,transparent); }
  .page-hero[data-section-bg] figcaption { right:16px; bottom:15px; font-size:9px; padding:6px 9px; }
  .page-hero[data-section-bg].quiet-lead { min-height:0; padding-bottom:32px; }
  .page-hero[data-section-bg].quiet-lead .page-hero-inner { padding-bottom:0; }
  .page-hero[data-section-bg].quiet-lead::before { background:rgba(241,248,251,.58); }
  .page-hero[data-section-bg].quiet-lead figcaption { bottom:7px; }
  .cta-band[data-section-bg] { min-height:360px; padding:60px 0; }
  .cta-band[data-section-bg] h2 { font-size:29px; }
  .cta-band[data-section-bg] p { font-size:14px; line-height:1.95; }
  .cta-band[data-section-bg] .button-row { margin-top:28px; }
}
@media (max-width:374px) {
  .home-hero .hero-copy h1 { font-size:31px; }
  .home-hero .hero-copy .eyebrow { font-size:9px; }
  .feature-band .feature-copy h2,.page-hero[data-section-bg] h1 { font-size:29px; }
  .home-hero .hero-grid { padding-top:43px; }
}
@media (prefers-reduced-motion:reduce) {
  [data-section-bg], [data-section-bg] * { animation:none!important; transition:none!important; }
}
@media print {
  [data-section-bg] { background:#fff!important; min-height:0!important; display:block!important; padding:18px 0!important; overflow:visible!important; }
  [data-section-bg]::before,.section-background,.hero-art,.picture-wrap,.page-hero[data-section-bg] figure { display:none!important; }
  .home-hero .hero-grid,.page-hero[data-section-bg] .page-hero-inner { padding:12px 0!important; }
  .sf-core .core-block { display:block; }
  [data-section-bg] .container,[data-section-bg] h1,[data-section-bg] h2,[data-section-bg] p { color:#111!important; }
}
