/* Slider layout option 1. All behavior lives in assets/js/site-slider.js. */
.site-slider { position:relative; isolation:isolate; background:#f1f5f9; touch-action:pan-y; }
.site-slider-track { display:grid; }
.site-slide { position:relative; grid-area:1 / 1; display:grid; min-width:0; aspect-ratio:var(--slide-ratio, 1140 / 496); }
.site-slide[hidden] { display:grid !important; visibility:hidden; pointer-events:none; }
.site-slide-image, .site-slide-cover, .site-slide-link { position:absolute; inset:0; width:100%; height:100%; }
.site-slider .site-slide-image { height:100%; object-fit:cover; }
.site-slide-cover { z-index:1; pointer-events:none; }
.site-slide-link { z-index:2; }
.site-slide-content { position:relative; z-index:3; display:flex; padding:clamp(1.25rem, 4vw, 3.5rem); pointer-events:none; }
.site-slide-caption { width:min(100%, 36rem); padding:1rem; pointer-events:none; }
.site-slider .site-slide-content { padding-top:calc(clamp(1.25rem, 4vw, 3.5rem) + var(--site-header-height, 0px)); }
.site-slide-caption a, .site-slide-caption button { pointer-events:auto; }
.site-slide-caption:empty { display:none; }
.site-slide-caption > :last-child { margin-bottom:0; }
.site-slide-caption h1, .site-slide-caption .h1, .site-slide-caption .h1s { font-size:clamp(1.5rem, 2.8vw, 2.5rem) !important; }
.site-slide-caption h2, .site-slide-caption .h2s { font-size:clamp(1.3rem, 2.2vw, 2.2rem) !important; }
.site-slide-caption h3, .site-slide-caption .h3s { font-size:clamp(1.1rem, 1.8vw, 1.9rem) !important; }
.site-slide-caption .btn { margin-top:.5rem; }
.site-slide-content.align-left { justify-content:flex-start; text-align:left; }
.site-slide-content.align-center { justify-content:center; text-align:center; }
.site-slide-content.align-right { justify-content:flex-end; text-align:right; }
.site-slide-content.vertical-top { align-items:flex-start; }
.site-slide-content.vertical-center { align-items:center; }
.site-slide-content.vertical-bottom { align-items:flex-end; }
.site-slider--fullscreen .site-slide { aspect-ratio:auto; min-height:calc(100svh - var(--slide-offset, 0px)); }
.site-slider-controls { position:relative; z-index:4; display:flex; align-items:center; justify-content:center; gap:.25rem; background:#fff; padding:.35rem; }
.site-slider-controls[hidden] { display:none; }
.site-slider-controls button { min-width:44px; min-height:44px; border:0; background:transparent; color:var(--theme-secondary,#3e93d7); border-radius:.25rem; }
.site-slider-controls button:hover,.site-slider-controls button:focus-visible { background:#eef9ff; }
.site-slider-controls button:focus-visible { outline:3px solid currentColor; outline-offset:1px; }
.site-slider-controls [data-slide-pause] { padding:0 .75rem; }
.site-slider-dots { display:flex; }
.site-slider-dots span { display:block; width:10px; height:10px; border:1px solid currentColor; border-radius:50%; margin:auto; }
.site-slider-dots [aria-current="true"] span { background:currentColor; }
@media (max-width:575px) {
    .site-slide { aspect-ratio:auto; min-height:24rem; }
    .site-slider--single .site-slide { aspect-ratio:var(--slide-ratio, 1140 / 496); min-height:0; }
    .site-slide-content { align-items:flex-end !important; padding:1rem; }
    .site-slide-caption { width:100%; padding:1rem; background:rgba(255,255,255,.88); text-align:left; }
}
