/* Full-bleed editorial scenes. Controls remain real HTML above a stable image. */
.visual-section {
  position: relative; isolation: isolate; overflow: hidden; width: 100%;
  display: flex; align-items: center; min-height: 560px;
  padding: 88px 0 100px; background: #0b1b2b; color: #f7fafc;
}
.visual-media { position: absolute; inset: 0; z-index: -2; pointer-events: none; }
.visual-media img { width: 100%; height: 100%; object-fit: cover; object-position: 65% center; }
.visual-section::after {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  background: linear-gradient(90deg, rgba(5,18,30,.9) 0%, rgba(5,18,30,.75) 35%, rgba(5,18,30,.22) 66%, rgba(5,18,30,.06) 100%);
}
html[data-theme] .visual-section { background: #0b1b2b; color: #f7fafc; }
html[data-theme] .visual-section > .wrap { background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.visual-section .visual-copy { position: relative; width: min(640px, 100%); }
.visual-section h1, .visual-section h2 { color: #fff; max-width: 14ch; text-wrap: balance; }
.visual-section h1 { font-size: clamp(2.8rem, 4.8vw, 4.7rem); line-height: 1.06; letter-spacing: -.04em; }
.visual-section h2 { font-size: clamp(2.3rem, 4vw, 3.5rem); line-height: 1.1; }
.visual-section p, .visual-section .lede { color: #e0e9ef; max-width: 50ch; }
.visual-section .kicker { color: #85e4d6; }
.visual-section .cta-actions { gap: 12px; margin-top: 28px; justify-content: flex-start; }
.visual-section .btn-accent { background: #65dac7; color: #082a27; border-color: #65dac7; }
html[data-theme] .visual-section .btn-ghost { background: rgba(7,24,37,.68); border-color: #9eacb7; color: #fff; }
.visual-section .text-link { color: #b1f0e4; }
.visual-section a:focus-visible, .visual-section button:focus-visible { outline-color: #fff; }
.visual-caption {
  position: absolute; bottom: 18px; right: clamp(16px, 2vw, 32px);
  padding: 3px 7px; border-radius: 3px; background: rgba(5,18,30,.70);
  color: #d0dbe2; font-size: .7rem; line-height: 1.4; text-align: right; pointer-events: none;
}
.visual-hero { padding-top: calc(var(--nav-h) + 90px); }
.visual-hero, .visual-hero.simple-hero { min-height: min(820px, 88svh); }
.visual-hero .simple-hero-layout { display: block; }
.visual-hero .simple-hero-layout h1 { max-width: 14ch; }
.visual-compact { min-height: 360px; padding-top: calc(var(--nav-h) + 54px); padding-bottom: 66px; }
.visual-compact h1 { max-width: 23ch; font-size: clamp(2rem, 3.2vw, 3.2rem); }
.visual-compact .lede { margin-bottom: 0; }
.visual-tool-intro + .decision-hero { padding-top: 36px; }
body[data-page="service-focus"] #main > section.visual-tool-intro:not(#engagement-options) { display: flex; }
body[data-page="service-focus"] #main > .visual-tool-intro + .decision-hero { padding-top: 36px; }
.visual-tool-intro + .decision-hero .decision-intro { display: none; }
.visual-tool-intro + .av-page { padding-top: 36px; }
.visual-cta { min-height: 440px; }
.visual-cta .wrap { padding: 0; text-align: left; }
.home-assurance { padding: 28px 0; border-bottom: 1px solid var(--line); background: var(--surface); }
.home-assurance .wrap { display: grid; grid-template-columns: .8fr 1.2fr; gap: 36px; align-items: center; }
.home-assurance p { margin: 0; color: var(--muted); font-size: .92rem; }
.home-assurance strong { display: block; color: var(--text); font-size: 1.03rem; margin-bottom: 4px; }
.visual-topics { display: flex; flex-wrap: wrap; gap: 10px; padding: 0; margin: 24px 0; list-style: none; }
.visual-topics li { border-bottom: 1px solid rgba(133,228,214,.45); padding-bottom: 4px; color: #e0e9ef; font-size: .86rem; }
.visual-section .industry-switcher { width: fit-content; max-width: 100%; margin-bottom: 32px; background: rgba(5,18,30,.82); border-color: #607482; }
.visual-section .industry-switcher a { color: #e0e9ef; }
.visual-section .industry-switcher a span { color: #b4c4cf; }
.visual-section .industry-switcher a.is-active { color: #a2eee0; background: rgba(101,218,199,.15); }
@media (min-width: 1600px) { .visual-section .wrap { width: min(1380px, calc(100% - 96px)); } }
@media (max-width: 960px) {
  .visual-media img { object-position: 60% center; }
  .visual-section::after { background: linear-gradient(90deg, rgba(5,18,30,.94), rgba(5,18,30,.78) 52%, rgba(5,18,30,.25)); }
  .home-assurance .wrap { gap: 24px; }
}
@media (max-width: 680px) {
  .visual-section { min-height: 520px; padding: 64px 0 74px; }
  .visual-hero, .visual-compact { padding-top: calc(var(--nav-h) + 60px); }
  .visual-hero, .visual-hero.simple-hero { min-height: 520px; }
  /* Overview banners share a compact phone layout, including Home's two CTAs. */
  .visual-hero.simple-hero, .visual-hero.simple-page-hero {
    min-height: 560px; padding-top: calc(var(--nav-h) + 32px); padding-bottom: 48px;
  }
  .visual-hero.simple-hero h1, .visual-hero.simple-page-hero h1 {
    font-size: clamp(2rem, 8.5vw, 2.6rem); max-width: none; line-height: 1.12; margin-bottom: 18px;
  }
  .visual-hero.simple-hero .lede, .visual-hero.simple-page-hero .lede {
    font-size: 1rem; line-height: 1.55; margin-bottom: 20px;
  }
  .visual-hero.simple-hero .cta-actions, .visual-hero.simple-page-hero .cta-actions {
    margin-top: 20px; gap: 10px;
  }
  .visual-section h1 { font-size: clamp(2.65rem, 10vw, 3.5rem); }
  .visual-section .visual-copy { width: 100%; }
  .visual-media img { object-position: 72% center; }
  .visual-section::after { background: linear-gradient(180deg, rgba(5,18,30,.91), rgba(5,18,30,.88) 50%, rgba(5,18,30,.58)); }
  .visual-caption { right: 16px; bottom: 14px; }
  .visual-compact { min-height: 380px; }
  .visual-compact h1 { font-size: clamp(2rem, 7vw, 2.5rem); }
  .visual-section .cta-actions { align-items: stretch; }
  .visual-section .cta-actions .btn { min-height: 48px; }
  .visual-section .industry-switcher { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); width: 100%; }
  .visual-cta { min-height: 380px; }
  .home-assurance .wrap { grid-template-columns: 1fr; gap: 16px; }
}
/* Keep the existing compact tools readable on narrow phones. */
@media (max-width: 400px) {
  .nav-inner { width: calc(100% - 24px); gap: 8px; }
  .brand-lockup { width: 148px; height: 23px; }
  .theme-trigger { min-width: 100px; gap: 5px; padding: 0 8px; }
  .nav-actions { gap: 4px; }
  .nav-burger { padding: 8px; }
  .chat-empty h1 { white-space: normal; text-wrap: balance; }
}
