/* Original responsive banner: artwork ratio is consistent across devices. */
.rn-banner-shell{padding-top:36px;padding-bottom:24px;min-width:0}
.rn-banner{position:relative;width:100%;height:var(--rn-banner-desktop,440px);overflow:hidden;border-radius:var(--rn-banner-radius,6px);background:var(--soft);isolation:isolate}
.rn-banner.rn-banner-proportional{height:auto;aspect-ratio:var(--rn-banner-ratio,1600/660)}
.rn-banner-slide{position:absolute;inset:0}
.rn-banner-slide,.rn-banner-slide>a,.rn-banner picture{display:block;width:100%;height:100%;min-width:0}
.rn-banner .rn-banner-slide[hidden]{display:none!important}
.rn-banner .rn-banner-slide picture>img{display:block;width:100%;height:100%;max-width:100%;object-fit:var(--rn-banner-fit,contain);object-position:center}
.rn-banner-slide>a:focus-visible{outline:3px solid var(--accent);outline-offset:-5px}

.rn-banner-controls{position:absolute;inset:0;pointer-events:none;z-index:2}
.rn-banner-controls[hidden]{display:none!important}
.rn-banner-controls button{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:48px;height:48px;min-width:44px;min-height:44px;padding:0;border:0;border-radius:50%;background:#fff;color:#303330;font:500 14px/1.4 -apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;cursor:pointer;pointer-events:auto;box-shadow:0 3px 14px #0000001a}
.rn-banner-controls button:hover{background:#f4f4f2}
.rn-banner-controls button:focus-visible{outline:3px solid #365443;outline-offset:-3px}
.rn-banner-controls [data-rn-banner-prev],.rn-banner-controls [data-rn-banner-next]{position:absolute;top:50%;transform:translateY(-50%)}
.rn-banner-controls [data-rn-banner-prev]{left:16px}
.rn-banner-controls [data-rn-banner-next]{right:16px}
.rn-banner-dots{position:absolute;bottom:4px;left:50%;transform:translateX(-50%);display:flex;max-width:calc(100% - 32px);overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;pointer-events:auto}
.rn-banner-dots::-webkit-scrollbar{display:none}
.rn-banner-dots button{width:44px;height:44px;box-shadow:none;background:transparent}
.rn-banner-dots button:hover{background:transparent}
.rn-banner-dots span{width:9px;height:9px;background:#767676;border:1px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #00000020}
.rn-banner-dots [aria-current=true] span{background:#365443;width:11px;height:11px}
/* Dot rail remains horizontally scrollable for up to eight 44px targets. */
.rn-managed-hero>.elementor-container{max-width:none!important}.rn-managed-hero>.elementor-container>.elementor-column>.elementor-widget-wrap{padding:0}.rn-managed-hero .elementor-widget{margin:0}
@media(max-width:600px){.rn-banner-shell{padding-top:24px;padding-bottom:16px}.rn-banner{height:var(--rn-banner-mobile,280px)}.rn-banner.rn-banner-proportional{height:auto}.rn-banner-controls [data-rn-banner-prev]{left:10px}.rn-banner-controls [data-rn-banner-next]{right:10px}.rn-banner-controls button{width:44px;height:44px}.rn-banner-dots{bottom:0}}
.hero .hero-visual img{width:100%;height:100%;object-fit:cover}

@media(prefers-reduced-motion:no-preference){.rn-banner-slide:not([hidden]){animation:rn-banner-enter .3s ease-out both}}
@keyframes rn-banner-enter{from{opacity:.65;transform:translateX(8px)}to{opacity:1;transform:translateX(0)}}

.rn-banner picture img{user-select:none;-webkit-user-select:none;-webkit-user-drag:none}.rn-banner{touch-action:pan-y pinch-zoom}
