/* Slider module: full-width animated hero slides. Loaded on every page while the module is on. */

.cms-slider { position: relative; overflow: hidden; width: 100%; background: #030811; isolation: isolate; }
.cms-slider.height-small { height: 45vh; min-height: 320px; }
.cms-slider.height-medium { height: 60vh; min-height: 380px; }
.cms-slider.height-large { height: 80vh; min-height: 440px; }
.cms-slider.height-full { height: 100vh; min-height: 480px; }
.cms-slider-track { position: absolute; inset: 0; }

/* slides */
.cms-slide { position: absolute; inset: 0; display: flex; opacity: 0; visibility: hidden; transition: opacity .9s ease, transform .9s ease, visibility 0s linear .9s; will-change: opacity, transform; }
.cms-slide.is-active { opacity: 1; visibility: visible; z-index: 2; transition-delay: 0s; }
.cms-slide.is-leaving { z-index: 1; }
.transition-slide .cms-slide { transform: translateX(6%); }
.transition-slide .cms-slide.is-active { transform: none; }
.transition-slide .cms-slide.is-leaving { transform: translateX(-6%); }
.transition-zoom .cms-slide { transform: scale(1.08); }
.transition-zoom .cms-slide.is-active { transform: none; }
.transition-zoom .cms-slide.is-leaving { transform: scale(.96); }

.cms-slide-image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform-origin: center; }
.cms-slide.is-active.fx-kenburns .cms-slide-image { animation: cvKenBurnsIn 14s ease-out forwards; }
.cms-slide.is-active.fx-kenburns-out .cms-slide-image { animation: cvKenBurnsOut 14s ease-out forwards; }
.cms-slide.is-active.fx-pan .cms-slide-image { animation: cvPan 16s linear forwards; }
@keyframes cvKenBurnsIn { from { transform: scale(1); } to { transform: scale(1.12); } }
@keyframes cvKenBurnsOut { from { transform: scale(1.12); } to { transform: scale(1); } }
@keyframes cvPan { from { transform: scale(1.1) translateX(-3%); } to { transform: scale(1.1) translateX(3%); } }

.cms-slide-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(3, 8, 17, .15), rgba(3, 8, 17, .55)); opacity: .4; pointer-events: none; }
.overlay-0 .cms-slide-shade { opacity: 0; }
.overlay-20 .cms-slide-shade { opacity: .35; }
.overlay-40 .cms-slide-shade { opacity: .7; }
.overlay-60 .cms-slide-shade { opacity: 1; background: linear-gradient(180deg, rgba(3, 8, 17, .35), rgba(3, 8, 17, .75)); }
.overlay-80 .cms-slide-shade { opacity: 1; background: rgba(3, 8, 17, .78); }
.tone-dark .cms-slide-shade { background: linear-gradient(180deg, rgba(255, 255, 255, .25), rgba(255, 255, 255, .6)); }
.tone-dark.overlay-80 .cms-slide-shade { background: rgba(255, 255, 255, .78); }

/* content */
.cms-slide-content { position: relative; z-index: 2; display: flex; width: 100%; padding-top: 56px; padding-bottom: 56px; }
.cms-slide.valign-top .cms-slide-content { align-items: flex-start; }
.cms-slide.valign-middle .cms-slide-content { align-items: center; }
.cms-slide.valign-bottom .cms-slide-content { align-items: flex-end; }
.cms-slide.align-left .cms-slide-content { justify-content: flex-start; text-align: left; }
.cms-slide.align-center .cms-slide-content { justify-content: center; text-align: center; }
.cms-slide.align-right .cms-slide-content { justify-content: flex-end; text-align: right; }
.cms-slide-box { max-width: 720px; }
.cms-slide.align-center .cms-slide-box .hero-actions { justify-content: center; }
.cms-slide.align-right .cms-slide-box .hero-actions { justify-content: flex-end; }
.cms-slide-box h2 { margin: 0; font-size: clamp(34px, 6vw, 72px); line-height: 1.02; letter-spacing: -.02em; }
.cms-slide-box .eyebrow { margin: 0 0 14px; }
.cms-slide-text { margin: 18px 0 0; font-size: clamp(16px, 1.6vw, 20px); line-height: 1.55; }
.cms-slide-box .hero-actions { margin-top: 28px; }
.tone-light .cms-slide-box { color: #f4f8ff; }
.tone-light .cms-slide-text { color: rgba(244, 248, 255, .85); }
.tone-dark .cms-slide-box { color: #0f1b2d; }
.tone-dark .cms-slide-text { color: rgba(15, 27, 45, .8); }
.tone-dark .cms-slide-box .eyebrow { color: #0f1b2d; }
.cms-slide-link { position: absolute; inset: 0; z-index: 3; }

/* layer animations: each line follows the previous one */
.cms-slide-layer { opacity: 0; }
.cms-slide.is-active .cms-slide-layer { animation: cvLayerUp .9s cubic-bezier(.2, .7, .2, 1) both; }
.cms-slide.is-active .cms-slide-layer:nth-child(1) { animation-delay: .25s; }
.cms-slide.is-active .cms-slide-layer:nth-child(2) { animation-delay: .45s; }
.cms-slide.is-active .cms-slide-layer:nth-child(3) { animation-delay: .65s; }
.cms-slide.is-active .cms-slide-layer:nth-child(4) { animation-delay: .85s; }
.cms-slide.is-active.anim-down .cms-slide-layer { animation-name: cvLayerDown; }
.cms-slide.is-active.anim-left .cms-slide-layer { animation-name: cvLayerLeft; }
.cms-slide.is-active.anim-right .cms-slide-layer { animation-name: cvLayerRight; }
.cms-slide.is-active.anim-zoom .cms-slide-layer { animation-name: cvLayerZoom; }
.cms-slide.is-active.anim-fade .cms-slide-layer { animation-name: cvLayerFade; }
.cms-slide.is-active.anim-none .cms-slide-layer { animation: none; opacity: 1; }
@keyframes cvLayerUp { from { opacity: 0; transform: translateY(36px); } to { opacity: 1; transform: none; } }
@keyframes cvLayerDown { from { opacity: 0; transform: translateY(-36px); } to { opacity: 1; transform: none; } }
@keyframes cvLayerLeft { from { opacity: 0; transform: translateX(-48px); } to { opacity: 1; transform: none; } }
@keyframes cvLayerRight { from { opacity: 0; transform: translateX(48px); } to { opacity: 1; transform: none; } }
@keyframes cvLayerZoom { from { opacity: 0; transform: scale(.8); } to { opacity: 1; transform: none; } }
@keyframes cvLayerFade { from { opacity: 0; } to { opacity: 1; } }

/* controls */
.cms-slider-arrow { position: absolute; top: 50%; z-index: 5; width: 48px; height: 48px; margin-top: -24px; border: 1px solid rgba(255, 255, 255, .25); border-radius: 50%; background: rgba(3, 8, 17, .45); color: #fff; font-size: 30px; line-height: 1; cursor: pointer; backdrop-filter: blur(6px); transition: background .15s, border-color .15s; }
.cms-slider-arrow:hover { background: rgba(57, 221, 240, .35); border-color: var(--cyan); }
.cms-slider-arrow.is-prev { left: 18px; }
.cms-slider-arrow.is-next { right: 18px; }
.cms-slider-dots { position: absolute; bottom: 22px; left: 0; right: 0; z-index: 5; display: flex; justify-content: center; gap: 8px; }
.cms-slider-dots button { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .4); cursor: pointer; transition: transform .15s, background .15s; }
.cms-slider-dots button.is-active { background: var(--cyan); transform: scale(1.3); }
.cms-slider-progress { position: absolute; bottom: 0; left: 0; right: 0; z-index: 5; height: 3px; background: rgba(255, 255, 255, .12); }
.cms-slider-progress i { display: block; width: 0; height: 100%; background: var(--cyan); }
.cms-slider.is-playing .cms-slider-progress i { transition: width linear; }

@media (max-width: 860px) {
  .cms-slider.height-large, .cms-slider.height-full { height: 70vh; }
  .cms-slide-content { padding-top: 40px; padding-bottom: 56px; }
  .cms-slide-box h2 { font-size: clamp(28px, 8vw, 44px); }
  .cms-slider-arrow { width: 38px; height: 38px; margin-top: -19px; font-size: 24px; }
  .cms-slider-arrow.is-prev { left: 8px; }
  .cms-slider-arrow.is-next { right: 8px; }
  .cms-slide.align-right .cms-slide-content, .cms-slide.align-center .cms-slide-content { justify-content: center; text-align: center; }
  .cms-slide.align-center .cms-slide-box .hero-actions, .cms-slide.align-right .cms-slide-box .hero-actions { justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
  .cms-slide, .cms-slide-image, .cms-slide-layer { animation: none !important; transition: none !important; }
  .cms-slide-layer { opacity: 1; }
}
