.photo-carousel .carousel-frame{position:relative;background:#e8efef;overflow:hidden}
.carousel-hero .carousel-frame{position:absolute;inset:0;background:#153c50}
.carousel-about .carousel-frame{aspect-ratio:1.16}
.photo-carousel .carousel-viewport{position:absolute;inset:0;display:flex;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;overscroll-behavior-inline:contain;scrollbar-width:none}
.photo-carousel .carousel-viewport::-webkit-scrollbar{display:none}
.photo-carousel .carousel-viewport:focus-visible{outline:3px solid var(--gold);outline-offset:-3px}
.photo-carousel .carousel-slide{flex:0 0 100%;width:100%;height:100%;scroll-snap-align:start;scroll-snap-stop:always}
.photo-carousel .carousel-slide img{display:block;width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
.photo-carousel .carousel-slide.portrait img{object-fit:contain}
.photo-carousel .carousel-controls{position:absolute;z-index:3;bottom:16px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:0;background:#153c50ed;color:#fff}
.carousel-hero .carousel-controls{bottom:70px}
.photo-carousel .carousel-controls button{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:8px;border:0;background:transparent;color:inherit;cursor:pointer;font-size:21px;line-height:1}
.photo-carousel .carousel-controls button:hover{background:#315f76}
.photo-carousel .carousel-status{padding:0 10px;min-width:54px;text-align:center;font-size:12px;line-height:1.4;white-space:nowrap;font-variant-numeric:tabular-nums}
@media(min-width:651px) and (max-width:850px){.carousel-about .carousel-frame{aspect-ratio:.78}}
@media(max-width:650px){.carousel-about .carousel-frame{aspect-ratio:1.2}.carousel-hero .carousel-controls{bottom:65px}.photo-carousel .carousel-controls{bottom:13px}.carousel-hero .carousel-controls{bottom:65px}}
@media print{.photo-carousel .carousel-controls{display:none}.photo-carousel .carousel-slide:not(:first-child){display:none}}
