/* Utility helper classes */
:root {
  --hdr-h-desktop: 98px;
  --hdr-h-mobile: 64px;
  --hdr-h: var(--hdr-h-desktop);
}

@media (max-width: 1024px) {
  :root {
    --hdr-h: var(--hdr-h-mobile);
  }
}

#alc-header,
#leader,
.site-header,
header[role="banner"] {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: var(--hdr-h);
  z-index: 1000 !important;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

.text-center {
  text-align: center !important;
}

.text-right {
  text-align: right !important;
}

.mt-0 { margin-top: 0 !important; }
.mb-0 { margin-bottom: 0 !important; }

.hidden { display: none !important; }

.min-h-100svh {
  min-height: 100vh;
  min-height: 100svh;
}

.hero-wrap {
  position: relative;
  overflow: clip;
  margin-top: 0 !important;
  z-index: 0 !important;
}

.hero-wrap > *:first-child {
  margin-top: 0;
}

.hero-media-abs {
  position: absolute;
  inset: 0;
  z-index: -1;
}

.hero-media-abs > picture,
.hero-media-abs > img,
.hero-media-abs > video {
  display: block;
  width: 100%;
  height: 100%;
}

.hero-media-abs > video,
.hero-media-abs > img,
.hero-media-abs > picture > img {
  object-fit: cover;
  object-position: var(--fx, 50%) var(--fy, 50%);
  -webkit-transform: translateZ(0);
}

.hero-media-abs > picture > img {
  width: 100%;
  height: 100%;
}

.hero--compact {
  min-height: clamp(520px, 84svh, 820px);
}

@media (max-width: 768px) {
  .hero--short {
    min-height: clamp(480px, 78svh, 680px);
  }
}

section,
.section {
  position: relative;
  z-index: 0;
}

.first-section,
.hero-wrap {
  margin-top: 0 !important;
}

main,
.site-container,
.pf-main {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

:target {
  scroll-margin-top: var(--hdr-h);
}

@media (max-width: 1024px) {
  .no-fixed-mobile {
    background-attachment: scroll !important;
  }

  .hero-wrap + section,
  .hero-wrap + .section,
  .hero-wrap + .pf-section {
    padding-top: 60px !important;
    position: relative;
    z-index: 0;
  }

  .hero-wrap + section + section + section,
  .hero-wrap + .section + .section + .section,
  .hero-wrap + .pf-section + .pf-section + .pf-section {
    padding-top: 60px !important;
    position: relative;
    z-index: 0;
  }

}
