/* The ordinary hero is the fallback when JavaScript or GSAP is unavailable. */
.hero-opening .hero .eyebrow,
.hero-opening .hero h1,
.hero-opening .hero__lead,
.hero-opening .hero .button-row { animation: none; opacity: 1; }
.hero-film, .opening-scroll { display: none; }
.hero-opening .hero-word { display: inline-block; }

.hero-opening.is-enhanced { position: relative; height: 210svh; }
.is-enhanced .hero-stage {
  position: sticky; top: 0; height: 100svh; overflow: hidden;
  perspective: 1400px; background: #fafaf8; isolation: isolate;
}
.is-enhanced .hero-film {
  position: absolute; inset: 0; display: block; overflow: hidden;
  background: #0e2a5e; transform-origin: 50% 35%; will-change: transform, opacity;
}
.hero-film img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: var(--photo-position, 50% 50%);
  opacity: 0;
}
.hero-film img:first-child { opacity: 1; }
.hero-film::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(9, 22, 42, .2), rgba(9, 22, 42, .52) 40%, rgba(9, 22, 42, .57));
}
.is-enhanced .hero {
  z-index: 1; width: 100%; height: 100svh; min-height: 0;
  padding: 110px 0 92px; overflow: visible;
}
.is-enhanced .hero-copy { will-change: transform; }
.is-enhanced .hero h1 { color: white; }
.is-enhanced .hero .eyebrow { color: white; }
.is-enhanced .hero-word { position: relative; }
.hero-word.has-cursor::after {
  content: ""; position: absolute; right: -.09em; top: .1em;
  width: 2px; height: .88em; background: currentColor;
  animation: opening-cursor .75s steps(1) infinite;
}
@keyframes opening-cursor { 0%, 48% { opacity: 1; } 49%, 100% { opacity: 0; } }
.is-enhanced .opening-scroll {
  z-index: 3; position: absolute; bottom: max(28px, env(safe-area-inset-bottom));
  left: 50%; display: flex; flex-direction: column; align-items: center;
  gap: 13px; transform: translateX(-50%); color: white; text-decoration: none;
  font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase;
}
.opening-scroll-icon {
  position: relative; width: 22px; height: 34px; border: 1px solid rgba(255,255,255,.65);
  border-radius: 12px;
}
.opening-scroll-icon::after {
  content: ""; position: absolute; left: 9px; top: 7px; width: 2px; height: 7px;
  border-radius: 2px; background: white; animation: opening-scroll 1.6s ease-in-out infinite;
}
@keyframes opening-scroll { 0%, 100% { transform: translateY(0); opacity: .45; } 50% { transform: translateY(8px); opacity: 1; } }
.has-hero-opening { overflow-x: clip; }
.has-hero-opening .site-header { position: fixed; left: 0; right: 0; }
.has-hero-opening .site-header.is-opening {
  background: transparent; border-color: transparent; box-shadow: none; backdrop-filter: none;
}
.opening-language-switch { display: none; }
.site-header.is-opening .opening-language-switch {
  position: absolute; top: 50%; right: max(20px, calc((100% - var(--container)) / 2));
  display: inline-flex; gap: 8px; transform: translateY(-50%); color: rgba(255,255,255,.65);
}
.site-header.is-opening .opening-language-switch a {
  min-height: 44px; display: inline-flex; align-items: center;
  color: rgba(255,255,255,.65); text-decoration: none;
}
.site-header.is-opening .opening-language-switch a[aria-current="true"] {
  color: white; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px;
}
.site-header.has-white-brand .brand-name,
.site-header.has-white-brand .brand-name > span { color: white; text-shadow: 0 1px 8px rgba(9, 22, 42, .35); }
.site-header.is-opening .nav-links,
.site-header.is-opening .nav-cta,
.site-header.is-opening .menu-button { visibility: hidden; pointer-events: none; }
.has-hero-opening.is-in-opening .service-tray,
.has-hero-opening.is-in-opening .back-to-top { visibility: hidden; pointer-events: none; }

@media (max-width: 760px) {
  .site-header.is-opening .opening-language-switch { right: 14px; }
  .hero-opening.is-enhanced { height: 190svh; }
  .is-enhanced .hero { padding: 100px 0 100px; }
  .is-enhanced .hero h1 { font-size: clamp(32px, 6.8vw, 48px); line-height: 1.18; }
  .is-enhanced .hero__lead { font-size: 1rem; line-height: 1.55; margin: 22px auto 26px; }
  .is-enhanced .hero .button-row { margin-top: 22px; }
  .hero-film img { object-position: var(--mobile-position, 50% 50%); }
}
@media (max-width: 760px) and (max-height: 600px) {
  .is-enhanced .hero { padding: 76px 0 72px; }
  .is-enhanced .hero h1 { font-size: 30px; }
  .is-enhanced .hero__lead { font-size: .95rem; line-height: 1.45; margin: 18px auto 22px; }
  .is-enhanced .opening-scroll { bottom: 16px; gap: 8px; }
  .opening-scroll-icon { height: 28px; }
}
@media (max-height: 560px) and (min-width: 761px) {
  .is-enhanced .hero { padding: 90px 0 56px; }
  .is-enhanced .hero h1 { font-size: 38px; }
  .is-enhanced .hero__lead { margin: 18px auto; font-size: 1rem; }
  .is-enhanced .hero .button-row { margin-top: 16px; }
  .is-enhanced .hero .hero-scroll { display: none; }
}
