.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-latin-tr-c72f22f2a0a1.woff2') format('woff2'); 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; }

.application-controls button:disabled { color: #707171; border-color: #a9a9b2; background: #f2f2f5; cursor: default; }

.download-meta { display: inline-block; color: #707171; font-size: 1rem; line-height: 1.5; }

.skip-link { transition: none; position: fixed; left: 16px; top: 12px; z-index: 10000; padding: 12px 20px; background: #171739; color: #fff; border-radius: 8px; transform: translateY(-200%); }
.skip-link:focus { transform: translateY(0); }
#main-content { scroll-margin-top: 120px; }
#main-content:focus { outline: none; }

.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }
.hero-cta { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; max-width: 100%; padding: 12px 18px; border: 1px solid #fff; border-radius: 8px; color: #171739; background: #fff; font-size: 16px; line-height: 1.35; text-align: center; text-decoration: none; }
.hero-cta-primary { color: #fff; background: #171739; }
.hero-cta:hover { color: #171739; background: #e8e8f0; }
.first-section .hero-image-wrap { --hero-min-height: 580px; height: auto; min-height: var(--hero-min-height); }
.first-section .hero-image-wrap > picture > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.first-section .hero-image-body { position: relative; min-height: var(--hero-min-height); padding-top: 120px; }
@media (min-width: 992px) { .first-section .hero-image-wrap { --hero-min-height: calc(580px + 60 * (100vw - var(--br-min) * 1px) / (var(--br-max) - var(--br-min))); } }
@media (min-width: 1440px) { .first-section .hero-image-wrap { --hero-min-height: calc(640px + 216 * (100vw - 1440px) / 480); } }

.privacy-link { margin-top: 12px; font-size: 16px; }
.privacy-link a, .information-page a { text-decoration: underline; color: #171739; }
.information-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; max-width: 960px; margin: auto; padding: 24px 20px; }
.information-header img { width: min(222px, 48vw); height: auto; }
.information-content { max-width: 850px; margin: auto; padding: 24px 20px 80px; font-size: 18px; line-height: 1.65; color: #171739; }
.information-content h1 { font-size: clamp(28px, 4vw, 40px); line-height: 1.2; margin-bottom: 28px; }
.information-content p, .information-content ul { margin-bottom: 24px; }
.information-content ul { list-style: disc; padding-left: 24px; }
