/* Three Factor Security cinematic opening, September 2026. */
.hero.dark-hero { min-height: 650px; height: min(880px, calc(100svh - 134px)); place-items: center start; }
.tfs-cinema { position: absolute; inset: 0; overflow: hidden; background: #1b2026; }
.tfs-cinema-poster, .tfs-cinema-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.tfs-cinema-video { opacity: 0; transition: opacity .7s ease; }
.tfs-cinema-video.is-ready { opacity: 1; }
.hero.dark-hero > .hero-shade { background: linear-gradient(90deg, #141a2266, #141a222b 45%, transparent 70%); pointer-events: none; }
.hero.dark-hero > .hero-content { width: min(45%, 770px); text-align: left; margin-left: max(5.5vw, calc((100vw - 1700px) / 2)); padding: 60px 0 88px; }
.hero.dark-hero .hero-content h1 { margin: 0; max-width: 760px; font-size: clamp(48px, 4.15vw, 80px); line-height: 1.035; letter-spacing: -.048em; text-wrap: balance; font-weight: 580; }
.hero.dark-hero .hero-content > .eyebrow { max-width: 540px; color: #dfc38b; font-size: 12px; line-height: 1.65; letter-spacing: .085em; margin-bottom: 25px; }
.hero.dark-hero .hero-content > p:not(.eyebrow) { margin: 24px 0 0; max-width: 605px; font-size: clamp(16px, 1.15vw, 20px); line-height: 1.6; color: #e8eaee; text-shadow: 0 2px 18px #111a24; }
.hero.dark-hero .hero-actions { justify-content: flex-start; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.hero.dark-hero .hero-actions .button { font-size: 14px; min-height: 50px; padding: 14px 20px; }
.tfs-cinema-toggle { position: absolute; z-index: 5; right: 28px; bottom: 25px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; border-radius: 24px; border: 1px solid #ffffff4a; background: #1b2026cf; backdrop-filter: blur(12px); color: #f5f5f5; font: inherit; font-size: 12px; min-height: 44px; min-width: 108px; padding: 10px 14px; cursor: pointer; }
.tfs-cinema-toggle:hover { background: #343b45; border-color: #d5bb7f; }
.tfs-cinema-toggle:focus-visible { outline: 2px solid #e8ce95; outline-offset: 4px; }
.tfs-cinema-toggle svg { color: #d5bb7f; }
@media (min-width: 761px) and (max-width: 1100px) {
  .hero.dark-hero { min-height: 700px; height: auto; }
  .hero.dark-hero > .hero-content { width: 50%; margin-left: 4vw; }
  .hero.dark-hero .hero-content h1 { font-size: clamp(42px, 4.7vw, 56px); }
  .hero.dark-hero .hero-content > p:not(.eyebrow) { font-size: 16px; }
  .hero.dark-hero .tfs-cinema-poster, .hero.dark-hero .tfs-cinema-video { object-position: 65% center; }
}
@media (max-width: 760px) {
  .mobile-home-hero { min-height: 650px; padding: 325px 20px 20px; gap: 22px; justify-content: flex-end; background: #1b2026; }
  .mobile-home-hero:after { z-index: 0; background: linear-gradient(180deg, transparent 15%, #141b2438 38%, #1b2026eb 62%, #1b2026 91%); }
  .mobile-home-hero .tfs-cinema { z-index: 0; }
  .mobile-home-hero .tfs-cinema-poster, .mobile-home-hero .tfs-cinema-video { object-position: 50% 0%; }
  .mobile-home-hero .tfs-cinema-toggle { top: 14px; right: 14px; bottom: auto; font-size: 12px; }
  .mobile-home-hero-copy, .mobile-home-principles { z-index: 2; }
  .mobile-home-hero .eyebrow { max-width: 360px; font-size: 10px; line-height: 1.5; margin: 0 0 12px; color: #e1c58a; }
  .mobile-home-hero .mobile-home-title { font-size: clamp(45px, 13vw, 59px); line-height: 1; }
  .mobile-home-hero-copy > p:not(.eyebrow):not(.mobile-home-title) { margin-top: 14px; font-size: 15px; }
  .mobile-home-hero-actions { margin-top: 19px; }
  .mobile-home-principles { margin-top: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .tfs-cinema-video, .tfs-cinema-toggle { display: none !important; }
  .tfs-cinema-poster { opacity: 1; }
}
