.m-offcanvas-overlay { position: fixed; }

.burger-menu { border: 0; background: transparent; padding: 0; cursor: pointer; }

/* Allow narrow viewports and zoom instead of clipping a 375px-wide document. */
body { min-width: 0; }
.header.motion-static { background: #fff; }

.modal__container { width: min(960px, calc(100vw - 32px)); max-height: calc(100dvh - 32px); padding: 40px 12px 12px; }
.modal__container a { display: block; text-align: center; }
.modal__container img { display: block; max-width: 100%; width: auto; height: auto; max-height: calc(100dvh - 88px); margin: 0 auto; object-fit: contain; }
.modal__close { padding: 0; width: 44px; height: 40px; z-index: 2; color: #151539; font-size: 22px; }

picture { display: contents; }

/* Intrinsic HTML dimensions reserve space; fluid images retain their aspect ratio. */
img { height: auto; }
img.img-contain { height: auto; }

.applySlider { flex-wrap: wrap; }
.application-controls { display: flex; gap: 12px; padding: 12px; width: 100%; }
.application-controls[hidden] { display: none; }
.application-controls button { border: 1px solid #171739; border-radius: 8px; padding: 10px; background: white; color: #171739; }

a:focus-visible, button:focus-visible, [tabindex]:focus-visible { outline: 3px solid #244ed8; outline-offset: 3px; }
.tab button:focus-visible { outline: 3px solid #244ed8; outline-offset: -4px; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
  [data-reveal], .hero-title, .hero-desc, .header { opacity: 1 !important; transform: none !important; }
  .header { background: #fff; }
}

@font-face { font-family: 'Inter'; src: url('../fonts/inter-variable.ttf') format('truetype'); font-style: normal; font-weight: 100 900; font-display: swap; }
.embed-placeholder { display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 16px; padding: 24px; min-height: 280px; height: 100%; width: 100%; background: #ededf5; color: #171739; text-align: center; }
.embed-activate { padding: 12px 24px; border: 0; border-radius: 8px; background: #171739; color: white; cursor: pointer; }

/* The placeholder owns the video ratio; keep its external link below the player. */
.youtube-container { padding-top: 0; }
.youtube-container > .embed-placeholder { height: auto; min-height: 0; padding: 0; gap: 0; }
.youtube-container > .embed-placeholder.is-loaded { aspect-ratio: auto; padding: 0; gap: 0; }
.youtube-container .embed-placeholder iframe { position: static; display: block; flex: none; aspect-ratio: 16 / 9; height: auto !important; }
.youtube-container .embed-placeholder > a { margin: 8px; }
.video-preview { position: relative; display: block; flex: none; width: 100%; aspect-ratio: 16 / 9; padding: 0; border: 0; border-radius: 0; overflow: hidden; background: #171739; cursor: pointer; }
.video-preview img { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: contain; }
.video-play { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); display: grid; place-items: center; width: 72px; height: 52px; border-radius: 12px; background: #e60012; color: #fff; font-size: 28px; line-height: 1; }
.video-preview:hover .video-play { background: #b8000e; }
.video-preview:focus-visible { outline-offset: -4px; }

/* A picture wrapper must preserve Bootstrap ratio direct-child sizing. */
.ratio > picture > img { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }

/* The map is loaded by HTML and keeps its link outside the iframe. */
.map-embed { display: flex; flex-direction: column; width: 100%; height: 100%; gap: 16px; padding: 24px; background: #ededf5; text-align: center; }
.map-embed iframe { display: block; width: 100%; flex: 1 1 0; min-height: 0; border: 0; }
.map-embed > a { flex: none; }
