.service-carousel { max-width: 100%; }
.service-carousel .carousel-inner { border-radius: .75rem; touch-action: pan-y; -webkit-user-select: none; user-select: none; }
.service-carousel .carousel-item { transition: transform .38s cubic-bezier(.22, .61, .36, 1); }
.service-carousel-notice { display: block; position: relative; height: 10.75rem; overflow: hidden; padding-bottom: 2.1rem !important; cursor: pointer; }
.service-carousel-notice:hover { border-color: #ba8a00 !important; background-color: #fff0bb !important; }
.service-carousel-notice:focus-visible { outline: 3px solid #145468; outline-offset: -3px; }
.service-carousel-open { position: absolute; right: .8rem; bottom: .5rem; color: #075e58; font-size: .78rem; font-weight: 800; }
.public-notice-carousel-card { background: #f1f7f8; border-color: #c9dfe1 !important; }
.public-notice-carousel-card:hover { background: #e5f2f3 !important; border-color: #8dbec3 !important; }
.public-notice-carousel-card .service-carousel-open { color: #145468; }
.service-notice-detail { scroll-margin-top: 1.25rem; }
.service-notice-detail:target { outline: 3px solid #e5b839; outline-offset: 3px; background: #fff8df !important; }
.service-carousel-title { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; overflow: hidden; }
.service-carousel-hours { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.service-carousel-area { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; line-clamp: 3; overflow: hidden; }
.service-carousel-navigation { display: flex; align-items: center; justify-content: center; gap: .35rem; min-height: 2.5rem; }
.service-carousel-arrow { border: 0; background: transparent; color: #194d57; font-size: 2rem; line-height: 1; width: 2.25rem; height: 2.25rem; }
.service-carousel-arrow:focus-visible, .service-carousel-indicators button:focus-visible { outline: 2px solid #194d57; outline-offset: 3px; }
.service-carousel-indicators { position: static; display: flex; flex-wrap: wrap; justify-content: center; gap: .12rem; margin: 0; }
.service-carousel-indicators button { position: relative; box-sizing: border-box; width: 1.5rem; height: 1.75rem; margin: 0; border: 0; background: transparent; opacity: 1; }
.service-carousel-indicators button::before { content: ''; position: absolute; top: 50%; left: 50%; width: .9rem; height: .18rem; border-radius: 999px; background: #9aacae; transform: translate(-50%, -50%); transition: width .2s ease, background-color .2s ease; }
.service-carousel-indicators button.active::before { width: 1.25rem; background: #145468; }
@media (prefers-reduced-motion: reduce) {
  .service-carousel .carousel-item, .service-carousel-indicators button::before { transition: none; }
}
