/* ======================== LANDING HERO POLISH ======================== */

#landing #hero .hero-video-stage {
   position: relative;
}

#landing #hero .hero-video-play {
   position: absolute;
   inset: 0;
   display: grid;
   place-items: center;
   width: 100%;
   padding: 16px;
   border: 0;
   border-radius: 10px;
   background: transparent;
   color: #ffffff;
   cursor: pointer;
}

#landing #hero .hero-video-play[hidden] {
   display: none;
}

#landing #hero .hero-video-play-content {
   display: flex;
   align-items: center;
   gap: 12px;
   padding: 12px 18px;
   border: 1px solid rgba(255, 255, 255, 0.32);
   border-radius: 999px;
   background: rgba(3, 15, 38, 0.82);
   box-shadow: 0 12px 32px rgba(0, 0, 0, 0.4);
   font-size: clamp(0.72rem, 1.5vw, 0.92rem);
   font-weight: 800;
   line-height: 1;
   transition: transform 180ms ease, background 180ms ease;
}

#landing #hero .hero-video-play:hover .hero-video-play-content,
#landing #hero .hero-video-play:focus-visible .hero-video-play-content {
   transform: scale(1.05);
   background: rgba(22, 62, 119, 0.94);
}

#landing #hero .hero-video-play:focus-visible {
   outline: 3px solid #fbbf24;
   outline-offset: 3px;
}

@media (max-width: 575.98px) {
   #landing #hero .hero-video-play-content {
      gap: 8px;
      padding: 9px 12px;
   }
}

/* Keep the homepage hero clean and theme-safe. The earlier hero surface used
   a grid texture that competed with the message and wrapped product preview. */
#landing #hero {
   background: #ffffff !important;
}

#landing #hero::after {
   background: none !important;
}

#landing #hero .aur {
   opacity: 0 !important;
}

html:not(.lm) #landing #hero {
   background: #0b1220 !important;
}

html:not(.lm) #landing #hero .aur {
   opacity: 0.1 !important;
}

#landing #hero .hbadge {
   display: inline-flex;
   align-items: center;
   justify-content: center;
   gap: 8px;
   min-height: 34px;
   padding: 8px 14px;
   border: 1px solid rgba(37, 99, 235, 0.18);
   border-radius: 999px;
   background: rgba(255, 255, 255, 0.58);
   color: #2563eb;
   font-size: 0.7rem;
   font-weight: 800;
   letter-spacing: 0.045em;
   line-height: 1.2;
   text-transform: uppercase;
   box-shadow: 0 8px 22px rgba(37, 99, 235, 0.08);
}

#landing #hero .hbadge i {
   color: #0ea5e9;
   font-size: 0.75rem;
}

html:not(.lm) #landing #hero .hbadge {
   border-color: rgba(96, 165, 250, 0.28);
   background: rgba(15, 23, 42, 0.54);
   color: #bfdbfe;
   box-shadow: 0 10px 26px rgba(0, 0, 0, 0.18);
}

html:not(.lm) #landing #hero .hbadge i {
   color: #67e8f9;
}

#landing #hero .hero-home-copy-text {
   max-width: 540px;
   margin: 0 auto 24px !important;
   color: var(--tx2) !important;
   font-size: clamp(0.98rem, 1.35vw, 1.12rem) !important;
   line-height: 1.65;
   text-wrap: balance;
}

#landing #hero .hero-trust-row {
   display: flex;
   align-items: center;
   justify-content: center;
   flex-wrap: wrap;
   gap: 8px 18px;
   width: min(100%, 560px);
   margin: 19px auto 0;
   padding-top: 15px;
   border-top: 1px solid rgba(37, 99, 235, 0.14);
   color: var(--tx3);
   font-size: 0.7rem;
   font-weight: 700;
   line-height: 1.35;
}

#landing #hero .hero-trust-row span {
   display: inline-flex;
   align-items: center;
   gap: 6px;
   min-width: 0;
}

#landing #hero .hero-trust-row i {
   color: #10b981;
   font-size: 0.7rem;
}

#landing #hero .hero-video-caption .hero-caption-green {
   color: #15803d !important;
   -webkit-text-fill-color: #15803d !important;
}

#landing #hero .hero-video-caption .hero-caption-yellow {
   color: #a16207 !important;
   -webkit-text-fill-color: #a16207 !important;
}

#landing #hero .hero-video-caption .hero-caption-blue {
   color: #1d4ed8 !important;
   -webkit-text-fill-color: #1d4ed8 !important;
}

html:not(.lm) #landing #hero .hero-video-caption .hero-caption-green {
   color: #4ade80 !important;
   -webkit-text-fill-color: #4ade80 !important;
}

html:not(.lm) #landing #hero .hero-video-caption .hero-caption-yellow {
   color: #fde047 !important;
   -webkit-text-fill-color: #fde047 !important;
}

html:not(.lm) #landing #hero .hero-video-caption .hero-caption-blue {
   color: #60a5fa !important;
   -webkit-text-fill-color: #60a5fa !important;
}

html:not(.lm) #landing #hero .hero-trust-row {
   border-top-color: rgba(148, 163, 184, 0.22);
}

#landing #hero .hero-video-chrome-label {
   color: #000000 !important;
   -webkit-text-fill-color: #000000 !important;
   font-weight: 800 !important;
}

html:not(.lm) #landing #hero .hero-video-chrome-label {
   color: #f8fafc !important;
   -webkit-text-fill-color: #f8fafc !important;
}

#landing #hero .hero-cta-row > .btn {
   min-height: 50px;
   border-radius: 13px;
   font-weight: 800;
   letter-spacing: -0.01em;
   transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease, background 180ms ease;
}

#landing #hero .hero-cta-row > .btn:hover,
#landing #hero .hero-cta-row > .btn:focus-visible {
   transform: translateY(-2px);
}

#landing #hero .hero-primary-cta {
   box-shadow: 0 14px 28px rgba(37, 99, 235, 0.24);
}

#landing #hero .hero-primary-cta:hover,
#landing #hero .hero-primary-cta:focus-visible {
   box-shadow: 0 18px 34px rgba(37, 99, 235, 0.32);
}

body.guest-shell #landing #hero .hero-cta-row > .hero-install-btn.hero-secondary-cta.boc.btn {
   border: 2px solid #f97316 !important;
   background: transparent !important;
   color: #c2410c !important;
   -webkit-text-fill-color: #c2410c !important;
   box-shadow: 0 8px 18px rgba(194, 65, 12, 0.12);
}

body.guest-shell #landing #hero .hero-cta-row > .hero-install-btn.hero-secondary-cta.boc.btn:hover,
body.guest-shell #landing #hero .hero-cta-row > .hero-install-btn.hero-secondary-cta.boc.btn:focus-visible {
   border-color: #ea580c !important;
   background: transparent !important;
   color: #9a3412 !important;
   -webkit-text-fill-color: #9a3412 !important;
   box-shadow: 0 12px 24px rgba(154, 52, 18, 0.2);
}

body.guest-shell #landing #hero .hero-cta-row > .hero-how-it-works-cta.hero-secondary-cta.boc.btn {
   min-width: 0;
   border: 2px solid #eab308 !important;
   background: transparent !important;
   color: #a16207 !important;
   -webkit-text-fill-color: #a16207 !important;
   box-shadow: 0 8px 18px rgba(202, 138, 4, 0.12);
   white-space: nowrap;
}

body.guest-shell #landing #hero .hero-cta-row > .hero-how-it-works-cta.hero-secondary-cta.boc.btn:hover,
body.guest-shell #landing #hero .hero-cta-row > .hero-how-it-works-cta.hero-secondary-cta.boc.btn:focus-visible {
   border-color: #ca8a04 !important;
   background: transparent !important;
   color: #854d0e !important;
   -webkit-text-fill-color: #854d0e !important;
   box-shadow: 0 12px 24px rgba(161, 98, 7, 0.2);
}

html:not(.lm) body.guest-shell #landing #hero .hero-cta-row > .hero-install-btn.hero-secondary-cta.boc.btn {
   border-color: #fb923c !important;
   color: #fdba74 !important;
   -webkit-text-fill-color: #fdba74 !important;
}

html:not(.lm) body.guest-shell #landing #hero .hero-cta-row > .hero-install-btn.hero-secondary-cta.boc.btn:hover,
html:not(.lm) body.guest-shell #landing #hero .hero-cta-row > .hero-install-btn.hero-secondary-cta.boc.btn:focus-visible {
   border-color: #fed7aa !important;
   color: #ffedd5 !important;
   -webkit-text-fill-color: #ffedd5 !important;
}

html:not(.lm) body.guest-shell #landing #hero .hero-cta-row > .hero-how-it-works-cta.hero-secondary-cta.boc.btn {
   border-color: #facc15 !important;
   color: #fde047 !important;
   -webkit-text-fill-color: #fde047 !important;
}

html:not(.lm) body.guest-shell #landing #hero .hero-cta-row > .hero-how-it-works-cta.hero-secondary-cta.boc.btn:hover,
html:not(.lm) body.guest-shell #landing #hero .hero-cta-row > .hero-how-it-works-cta.hero-secondary-cta.boc.btn:focus-visible {
   border-color: #fef08a !important;
   color: #fef9c3 !important;
   -webkit-text-fill-color: #fef9c3 !important;
}

#nbar .guest-nav-cta {
   min-height: 38px;
   border-radius: 11px;
   box-shadow: 0 8px 18px rgba(37, 99, 235, 0.18);
}

@media (min-width: 992px) {
   body.guest-desktop-shell #landing #hero .hero-home-layout {
      /* Bootstrap's col-lg-6 + col-lg-6 already fill the row. An extra flex
         gap would push the video column onto a second line. */
      column-gap: 0;
      align-items: center;
      padding-top: clamp(10px, 1.5vh, 22px);
      padding-bottom: clamp(10px, 1.5vh, 22px);
   }

   body.guest-desktop-shell #landing #hero .hero-home-copy {
      display: flex;
      flex-direction: column;
      justify-content: center;
      min-width: 0;
      align-items: center;
      text-align: center !important;
   }

   body.guest-desktop-shell #landing #hero .hero-home-copy .h1 {
      max-width: none;
      margin-left: 0;
      margin-right: 0;
      font-size: clamp(2.85rem, 3.1vw, 3.8rem) !important;
      letter-spacing: -0.045em;
      line-height: 1.01;
      text-align: center !important;
      text-wrap: balance;
      margin-bottom: 18px;
   }

   body.guest-desktop-shell #landing #hero .hero-title-line {
      white-space: nowrap;
   }

   body.guest-desktop-shell #landing #hero .hero-badge-wrap {
      justify-content: center;
      margin-left: 0;
      margin-right: 0;
   }

   body.guest-desktop-shell #landing #hero .hero-home-copy-text {
      max-width: 560px;
      margin-left: auto;
      margin-right: auto;
      margin-bottom: 22px !important;
      text-align: center !important;
   }

   body.guest-desktop-shell #landing #hero .hero-cta-row {
      grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1fr);
      justify-content: center !important;
      width: min(100%, 580px);
      margin-left: auto;
      margin-right: auto;
   }

   body.guest-desktop-shell #landing #hero .hero-trust-row {
      justify-content: center;
      margin-left: auto;
      margin-right: auto;
      margin-top: 16px;
   }

   body.guest-desktop-shell #landing #hero .desktop-hero-image-row {
      width: min(100%, calc(var(--hero-preview-max-width) + 128px));
      margin-top: 0 !important;
      margin-bottom: 0 !important;
      margin-right: 0;
   }

   body.guest-desktop-shell #landing #hero .desktop-hero-image-frame {
      padding: 10px clamp(18px, 2.2vw, 34px) 6px;
   }

   body.guest-desktop-shell #landing #hero .hero-video-shell {
      padding: 8px 8px 10px;
      border-radius: 20px;
      box-shadow: 0 22px 46px rgba(15, 23, 42, 0.18), 0 1px 0 rgba(255, 255, 255, 0.82) inset;
   }

   body.guest-desktop-shell #landing #hero .desktop-hero-image {
      max-height: clamp(300px, 42vh, 430px);
      border-radius: 14px;
   }

   body.guest-desktop-shell #landing #hero .hero-video-showcase {
      max-width: 860px;
      gap: 10px;
   }

   body.guest-desktop-shell #landing #hero .hero-video-caption {
      max-width: 540px;
      font-size: 0.72rem;
   }

   body.guest-desktop-shell #landing #hero .hero-benefit-row {
      gap: 8px;
   }

   body.guest-desktop-shell #landing #hero .hero-benefit-item {
      min-height: 44px;
      flex-direction: row;
      justify-content: flex-start;
      gap: 8px;
      padding: 7px 9px;
      border-radius: 12px;
      font-size: 0.59rem;
      text-align: left;
   }

   body.guest-desktop-shell #landing #hero .hero-benefit-item i {
      font-size: 0.7rem;
   }
}

@media (min-width: 992px) and (max-width: 1199.98px) {
   body.guest-desktop-shell #landing #hero .hero-home-copy .h1 {
      font-size: clamp(2.6rem, 3.7vw, 3.6rem) !important;
   }

   body.guest-desktop-shell #landing #hero .hero-home-copy-text {
      font-size: 0.98rem !important;
   }
}

@media (min-width: 1200px) {
   body.guest-desktop-shell #landing #hero .hero-home-copy {
      min-height: clamp(480px, 58vh, 620px);
      padding: clamp(18px, 2vw, 30px) clamp(14px, 1.5vw, 26px);
   }

   body.guest-desktop-shell #landing #hero .hero-home-copy .h1 {
      max-width: 720px;
      font-size: clamp(3.35rem, 4.25vw, 5.2rem) !important;
      line-height: 0.98;
      margin-bottom: 22px;
   }

   body.guest-desktop-shell #landing #hero .hero-home-copy-text {
      max-width: 650px;
      font-size: clamp(1.08rem, 1.45vw, 1.26rem) !important;
      line-height: 1.58;
      margin-bottom: 26px !important;
   }

   body.guest-desktop-shell #landing #hero .hero-cta-row {
      width: min(100%, 680px);
      gap: 12px !important;
   }

   body.guest-desktop-shell #landing #hero .hero-cta-row > .btn {
      min-height: 56px;
      padding: 13px 18px !important;
      font-size: 1rem !important;
   }

   body.guest-desktop-shell #landing #hero .hero-how-it-works-cta {
      padding-left: 16px !important;
      padding-right: 16px !important;
   }

   body.guest-desktop-shell #landing #hero .hero-trust-row {
      width: min(100%, 650px);
      margin-top: 20px;
      padding-top: 17px;
      gap: 10px 24px;
      font-size: 0.76rem;
   }

   body.guest-desktop-shell #landing #hero .desktop-hero-image-row {
      width: min(calc(100% + 24px), 940px);
      margin-left: -12px;
      margin-right: -12px;
   }

   body.guest-desktop-shell #landing #hero .desktop-hero-image {
      max-height: clamp(340px, 47vh, 520px);
   }
}

@media (max-width: 991.98px) {
   #landing #hero .hero-trust-row {
      width: min(100%, 560px);
   }
}

@media (max-width: 767.98px) {
   body.guest-mobile-shell #landing #hero .hbadge {
      width: fit-content;
      max-width: min(calc(100% - 20px), 310px);
      min-height: 32px;
      padding: 7px 11px;
      font-size: 0.62rem;
      letter-spacing: 0.02em;
      line-height: 1.25;
      white-space: normal;
   }

   body.guest-mobile-shell #landing #hero .hbadge::before {
      content: none !important;
      display: none !important;
   }

   body.guest-mobile-shell #landing #hero .hero-home-copy-text {
      max-width: 350px !important;
      margin-bottom: 20px !important;
      font-size: 0.91rem !important;
      line-height: 1.55;
      text-align: center;
   }

   body.guest-mobile-shell #landing #hero .hero-home-copy .h1 {
      max-width: 360px;
      letter-spacing: -0.035em;
      text-wrap: balance;
   }

   body.guest-mobile-shell #landing #hero .hero-cta-row {
      display: flex !important;
      grid-template-columns: none !important;
      width: auto !important;
      max-width: calc(100% - 20px);
      align-items: stretch;
      justify-content: center;
      flex-wrap: nowrap !important;
      gap: 8px !important;
      margin-bottom: 0 !important;
   }

   body.guest-mobile-shell #landing #hero .hero-cta-row > .btn {
      min-height: 45px !important;
      height: auto !important;
      padding: 9px 8px !important;
      border-radius: 11px;
      font-size: 0.72rem !important;
      line-height: 1.1 !important;
      white-space: nowrap !important;
      width: auto !important;
      min-width: 0 !important;
      flex: 0 1 auto;
   }

   body.guest-mobile-shell #landing #hero .hero-how-it-works-cta {
      padding-left: 7px !important;
      padding-right: 7px !important;
      font-size: 0.7rem !important;
   }

   body.guest-mobile-shell #landing #hero .hero-primary-cta {
      grid-column: 1 / -1;
      min-height: 48px !important;
      font-size: 0.82rem !important;
   }

   body.guest-mobile-shell #landing #hero .hero-secondary-cta i {
      margin-right: 4px !important;
   }

   body.guest-mobile-shell #landing #hero .hero-trust-row {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      align-items: stretch;
      gap: 6px;
      width: min(100%, 390px);
      margin-top: 17px;
      padding-top: 13px;
      font-size: 0.59rem;
      line-height: 1.2;
      text-align: center;
   }

   body.guest-mobile-shell #landing #hero .hero-trust-row span {
      flex-direction: column;
      justify-content: flex-start;
      gap: 5px;
   }

   body.guest-mobile-shell #landing #hero .hero-trust-row i {
      font-size: 0.68rem;
   }

   body.guest-mobile-shell #landing .mobile-hero-preview-row {
      margin-top: 22px !important;
   }

   body.guest-mobile-shell #landing .mobile-hero-image-frame {
      padding-top: 6px;
      padding-bottom: 8px;
   }

   body.guest-mobile-shell #landing .hero-video-showcase {
      gap: 4px;
   }

   body.guest-mobile-shell #landing .hero-video-shell {
      border-radius: 18px;
      box-shadow: 0 20px 40px rgba(15, 23, 42, 0.17), 0 1px 0 rgba(255, 255, 255, 0.8) inset;
   }

   body.guest-mobile-shell #landing .mobile-hero-image {
      border-radius: 12px;
   }

   body.guest-mobile-shell #landing .hero-video-caption {
      max-width: 300px;
      font-size: 0.66rem;
      line-height: 1.4;
   }

   body.guest-mobile-shell #landing .hero-benefit-item {
      min-height: 44px;
      border-radius: 10px;
      font-size: 0.54rem;
   }
}

@media (max-width: 374.98px) {
   body.guest-mobile-shell #landing #hero .hero-trust-row {
      font-size: 0.54rem;
   }

   body.guest-mobile-shell #landing #hero .hero-cta-row > .btn {
      font-size: 0.66rem !important;
   }

   body.guest-mobile-shell #landing #hero .hero-how-it-works-cta {
      font-size: 0.62rem !important;
   }
}

@media (prefers-reduced-motion: reduce) {
   #landing #hero .hero-cta-row > .btn {
      transition: none;
   }
}
