/* OSP 81039 — responsive blank-first 1920 × 470 banner slider */
[data-cattype="81039"].osp81039 {
  --banner-max-width: 1920px;
  --banner-height: 470px;
  --banner-arrow-size: 30px;
  --banner-chevron-size: 18px;
  --banner-arrow-offset: 18px;
  --banner-dot-size: 11px;
  --banner-dot-gap: 9px;
  --banner-dot-active: #ed1b2f;
  --banner-dot-idle: #a9a9ac;
  --banner-pagination-gap: 13px;
  --banner-pagination-height: 32px;
  position: relative;
  width: 100%;
  padding: 0;
  margin: 0;
  background: #fff;
}
[data-cattype="81039"] .osp81039__slider { position: relative; width: 100%; margin: 0; overflow: hidden; }
[data-cattype="81039"] .osp81039__viewport { position: relative; width: 100%; overflow: hidden; background: #fff; }
[data-cattype="81039"] .osp81039__track { display: flex; margin: 0; padding: 0; width: 100%; transition: transform .45s ease; }
[data-cattype="81039"] .osp81039__slide { flex: 0 0 100%; width: 100%; min-width: 0; margin: 0; padding: 0; }
[data-cattype="81039"] .osp81039__media { display: flex; align-items: center; justify-content: center; overflow: hidden; width: 100%; aspect-ratio: 1920 / 470; max-height: var(--banner-height); margin: 0 auto; background: #fff; }
[data-cattype="81039"] .osp81039__image { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; border: none; margin: 0; padding: 0; }
/* Desktop banners: wide image fits proportionally; mobile-specific image uses same viewport. */
[data-cattype="81039"] .osp81039__arrow { position: absolute; top: 50%; z-index: 4; display: flex; align-items: center; justify-content: center; width: var(--banner-arrow-size); height: var(--banner-arrow-size); padding: 0; margin: 0; border: 0; border-radius: 50%; background: rgba(0,0,0,.22); color: #fff; cursor: pointer; transform: translateY(-50%); transition: background .2s ease; }
[data-cattype="81039"] .osp81039__arrow:hover { background: rgba(0,0,0,.48); }
[data-cattype="81039"] .osp81039__arrow svg { display: block; width: var(--banner-chevron-size); height: var(--banner-chevron-size); }
[data-cattype="81039"] .osp81039__arrow--prev { left: var(--banner-arrow-offset); }
[data-cattype="81039"] .osp81039__arrow--next { right: var(--banner-arrow-offset); }
/* Position pagination over the image, rather than adding a row below the banner. */
[data-cattype="81039"] .osp81039__dots { position: absolute; left: 50%; bottom: 18px; z-index: 5; display: flex; justify-content: center; align-items: center; gap: var(--banner-dot-gap); width: max-content; max-width: calc(100% - 20px); min-height: 0; margin: 0; padding: 6px 10px; transform: translateX(-50%); }
[data-cattype="81039"] .osp81039__dot { display: block; width: var(--banner-dot-size); height: var(--banner-dot-size); min-width: var(--banner-dot-size); margin: 0; padding: 0; border: 0; border-radius: 50%; background: var(--banner-dot-idle); cursor: pointer; }
[data-cattype="81039"] .osp81039__dot.is-active { background: var(--banner-dot-active); }
[data-cattype="81039"] .osp81039__arrow:focus-visible,
[data-cattype="81039"] .osp81039__dot:focus-visible { outline: 2px solid #339d01; outline-offset: 3px; }
[data-cattype="81039"] .osp81039__arrow[hidden],
[data-cattype="81039"] .osp81039__dots[hidden] { display: none !important; }
@media (min-width: 1921px) { [data-cattype="81039"] .osp81039__media { height: var(--banner-height); } }
@media (max-width: 767px) { [data-cattype="81039"].osp81039 { --banner-arrow-size: 26px; --banner-chevron-size: 16px; --banner-arrow-offset: 6px; --banner-dot-size: 9px; --banner-pagination-gap: 9px; --banner-pagination-height: 26px; } [data-cattype="81039"] .osp81039__dots { bottom: 9px; padding: 5px 8px; } }
@media (prefers-reduced-motion: reduce) { [data-cattype="81039"] .osp81039__track { transition: none; } }