/* Home-page video layer. Keep the existing picture as the fallback. */
.hero--home .hero__video {
  position: absolute;
  inset: 0 0 0 auto;
  width: 76%;
  height: 100%;
  object-fit: cover;
  object-position: 35% center;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 22%);
  mask-image: linear-gradient(90deg, transparent, #000 22%);
  opacity: 0;
  transition: opacity 900ms ease;
  pointer-events: none;
}
.hero--home.is-video-playing .hero__video,
.hero--home.is-video-paused .hero__video { opacity: 1; }
.hero__video-toggle {
  position: absolute;
  right: max(24px, calc((100vw - 1180px) / 2));
  top: 24px;
  z-index: 3;
  padding: 10px 16px;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 999px;
  color: #fff;
  background: rgba(6,20,35,.7);
  font: inherit;
  font-size: 13px;
  cursor: pointer;
}
.hero__video-toggle[hidden] { display: none; }
.hero__video-toggle:focus-visible { outline: 3px solid #e8bd62; outline-offset: 4px; }
@media (prefers-reduced-motion: no-preference) {
  .hero--home .hero__content > * { animation: kvEnter 900ms both; }
  .hero--home .hero__content > :nth-child(2) { animation-delay: 120ms; }
  .hero--home .hero__content > :nth-child(3) { animation-delay: 240ms; }
  .hero--home .hero__content > :nth-child(4) { animation-delay: 360ms; }
  .hero--home .hero__content > :nth-child(5) { animation-delay: 480ms; }
  .hero--home .eyebrow::before { transform-origin: left; animation: kvLine 1s 150ms both; }
}
@keyframes kvEnter { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes kvLine { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@media (prefers-reduced-motion: reduce) {
  .hero--home .hero__video, .hero__video-toggle { display: none; }
}

/* Full-frame editorial hero */
.hero--home { min-height: min(880px,calc(100svh - 86px)); align-items: end; isolation: isolate; }
.hero--home .hero__video { inset: 0; width: 100%; object-position: center 42%; mask-image: none; -webkit-mask-image: none; }
.hero--home .hero__picture { inset: 0; height: 100%; }
.hero--home::before { background: linear-gradient(90deg,rgba(3,17,30,.63),rgba(3,17,30,0) 75%),linear-gradient(0deg,rgba(3,17,30,.95),rgba(3,17,30,.25) 52%,rgba(3,17,30,.02) 85%); }
.hero--home .hero__inner { width: min(1360px,calc(100% - 112px)); padding: 120px 0 64px; align-self: end; }
.hero--home .hero__content { max-width: 100%; }
.hero--home .eyebrow { font-size: 11px; letter-spacing: .22em; margin-bottom: 28px; color: #f0ca7e; }
.hero--home h1 { font-size: clamp(60px,6.5vw,100px); line-height: 1.16; letter-spacing: -.035em; font-weight: 900; margin: 0 0 24px; text-shadow: 0 2px 28px rgba(0,0,0,.12); }
.hero--home h1 span { color: #f0ca7e; }
.hero--home .hero__lead { font-size: 15px; line-height: 1.9; max-width: 36em; margin-bottom: 30px; color: #fff; }
.hero--home .hero__actions { gap: 12px; }
.hero--home .hero__actions .btn { border-radius: 2px; min-height: 58px; padding: 16px 32px; box-shadow: none; }
.hero--home .btn--primary { background: #e2b858; color: #071b2d; border-color: #e2b858; }
.hero--home .btn--secondary { background: rgba(6,20,35,.16); color: #fff; border-color: rgba(255,255,255,.7); backdrop-filter: blur(8px); }
.hero--home .hero__badges { display: none; }
.hero--home .hero__status { display: none; }
.hero--home .hero__video-toggle { top: 28px; right: 40px; font-size: 11px; background: rgba(6,20,35,.25); backdrop-filter: blur(8px); }
.hero--home .hero__signature { position:absolute; right:0; bottom:64px; text-align:right; color:rgba(255,255,255,.85); font-size:11px; letter-spacing:.18em; line-height:2; }
.hero--home .hero__signature strong { display:block; font-size:20px; font-weight:500; letter-spacing:.12em; }
@media (max-width: 767px) {
  .hero--home { min-height: 700px; min-height: max(680px,calc(100svh - 72px)); }
  .hero--home .hero__video { object-position: 37% center; }
  .hero--home .hero__picture img { object-position: 64% center; }
  .hero--home::before { background: linear-gradient(0deg,rgba(3,17,30,.98),rgba(3,17,30,.82) 30%,rgba(3,17,30,.12) 64%,rgba(3,17,30,0)); }
  .hero--home .hero__inner { width:calc(100% - 40px); padding:250px 0 94px; align-self:end; }
  .hero--home .eyebrow { font-size:9px; letter-spacing:.14em; margin-bottom:18px; }
  .hero--home h1 { font-size:clamp(36px,10.8vw,62px); line-height:1.24; margin-bottom:18px; }
  .hero--home .hero__lead { font-size:13px; max-width:26em; margin-bottom:24px; line-height:1.85; }
  .hero--home .hero__actions { display:grid; grid-template-columns:1fr 1fr; gap:10px; max-width:none; }
  .hero--home .hero__actions .btn { padding:14px 6px; font-size:12px; min-height:52px; }
  .hero--home .hero__video-toggle { top:18px; right:18px; padding:8px 12px; font-size:10px; }
  .hero--home .hero__signature { display:none; }
}

/* The fallback and video share a frame, crop and position. */
.hero--home .hero__picture img { object-position: center 42%; transform: none; animation: none; }
.hero--home .hero__video { transition: none; }
@media (max-width: 767px) {
  .hero--home .hero__picture img { object-position: 37% center; }
}

/* Characters arrive from the foreground, in reading order, once per load. */
.hero--home .hero__signature { perspective: 700px; }
.hero--home .signature-line { display: block; white-space: nowrap; }
.hero--home .signature-char { display: inline-block; color: inherit; transform-origin: 50% 55%; }
@media (prefers-reduced-motion: no-preference) {
  .hero--home .hero__signature.is-signature-visible .signature-char {
    animation: signatureArrive 560ms cubic-bezier(.16,1,.3,1) both;
    animation-delay: calc(350ms + var(--char-order) * 48ms);
  }
}
@keyframes signatureArrive {
  0% { opacity: 0; transform: translate3d(-12px,10px,180px) scale(2.3) rotate(-5deg); filter: blur(7px); }
  64% { opacity: 1; transform: translate3d(0,0,0) scale(.94); filter: blur(0); }
  82% { transform: translate3d(0,0,0) scale(1.025); }
  100% { opacity: 1; transform: none; filter: blur(0); }
}

@media (prefers-reduced-motion: no-preference) {
  .hero--home .hero__signature.signature-motion-ready .signature-char { opacity: 0; }
}
@media (max-width: 767px) {
  .hero--home .hero__signature { display: block; position: static; margin-top: 28px; text-align: left; font-size: 9px; letter-spacing: .13em; }
  .hero--home .hero__signature strong { font-size: 16px; letter-spacing: .1em; }
  .trust-bar__inner > :last-child:nth-child(odd) { grid-column: 1 / -1; }
}
