/* Attractions Carousel */
.attractions-carousel {position: relative; overflow: hidden; margin: 0;}
.attractions-carousel__accent-stars {position: absolute; top: clamp(6px, 1.5vw, 25px); left: 50%; transform: translateX(-50%); width: clamp(55px, 8vw, 130px); height: auto; pointer-events: none;}
.attractions-carousel__header {display: flex; align-items: center; justify-content: space-between; gap: 25px; margin-bottom: var(--s-3);}
.attractions-carousel__carousel {padding-left: calc(max((100% - 1420px) / 2, 0px) + clamp(20px, 3vw, 50px));}
.attractions-carousel__track:not(.slick-initialized) {display: flex; overflow: hidden;}
.attractions-carousel__track:not(.slick-initialized) .attractions-carousel__slide {flex: 0 0 40%; min-width: 0;}
.attractions-carousel .slick-track {display: flex;}
.attractions-carousel .slick-slide {height: auto;}
.attractions-carousel .slick-list {cursor: grab;}
.attractions-carousel .slick-list.dragging {cursor: grabbing;}
.attractions-carousel__slide {padding-right: 40px; height:100%;}
.slick-slide > div {height: 100%;}
.attractions-carousel__card {position: relative; display: flex; flex-direction: column; height: 100%; background: var(--wellington-green); border-radius: var(--radius); overflow: hidden;}
.attractions-carousel__media {position: relative; aspect-ratio: 3 / 2;}
.attractions-carousel__media img {display: block; width: 100%; height: 100%; object-fit: cover;}
.attractions-carousel__media::after {content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 42px; background: var(--wellington-green); -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 320' preserveAspectRatio='none'%3E%3Cpath fill='%23000' d='M0,32L60,48C120,64,240,96,360,101.3C480,107,600,85,720,69.3C840,53,960,43,1080,42.7C1200,43,1320,53,1380,58.7L1440,64L1440,320L1380,320C1320,320,1200,320,1080,320C960,320,840,320,720,320C600,320,480,320,360,320C240,320,120,320,60,320L0,320Z'/%3E%3C/svg%3E"); -webkit-mask-size: 100% 100%; -webkit-mask-repeat: no-repeat; mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 320' preserveAspectRatio='none'%3E%3Cpath fill='%23000' d='M0,32L60,48C120,64,240,96,360,101.3C480,107,600,85,720,69.3C840,53,960,43,1080,42.7C1200,43,1320,53,1380,58.7L1440,64L1440,320L1380,320C1320,320,1200,320,1080,320C960,320,840,320,720,320C600,320,480,320,360,320C240,320,120,320,60,320L0,320Z'/%3E%3C/svg%3E"); mask-size: 100% 100%; mask-repeat: no-repeat;}
.attractions-carousel__body {display: flex; flex-direction: column; align-items: flex-start; gap: clamp(15px, 2.5vw, 30px); flex: 1; padding: clamp(30px, 2.5vw, 45px);}
.attractions-carousel__card-title {margin: 0; font-family: var(--font-display); font-weight: 400; font-size: clamp(18px, 2.5vw, 26px); line-height: 2; color: var(--light);}
.attractions-carousel__text {margin: 0; font-size: 15px; line-height: 1.7; color: var(--white);}
.attractions-carousel__link {display: inline-flex; align-items: center; gap: 12px; margin-top: auto; font-family: var(--font-display); font-size: 22px; color: var(--wellington-gold); text-decoration: none;}
.attractions-carousel__link .attractions-carousel__arrow-icon {width: 24px; height: auto; transition: transform 0.25s ease;}
.attractions-carousel__card:hover .attractions-carousel__arrow-icon {transform: translateX(6px);}
.attractions-carousel__link::after {content: ""; position: absolute; inset: 0; border-radius: var(--radius);}
.attractions-carousel__link:focus-visible {outline: none;}
.attractions-carousel__link:focus-visible::after {outline: 3px solid var(--wellington-gold); outline-offset: -3px;}
.attractions-carousel__card--gold {background: var(--wellington-gold);}
.attractions-carousel__card--lime {background: var(--lime-green);}
.attractions-carousel__final-image {position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.2;}
.attractions-carousel__final-content {position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 14px; margin: auto 0; padding: 35px; text-align: center;}
.attractions-carousel__card--final .eyebrow {color: var(--wellington-gold);}
.attractions-carousel__card--gold .eyebrow, .attractions-carousel__card--lime .eyebrow {color: var(--wellington-green);}
.attractions-carousel__card--gold .attractions-carousel__card-title, .attractions-carousel__card--lime .attractions-carousel__card-title {color: var(--wellington-green);}
.attractions-carousel__card--gold .attractions-carousel__text, .attractions-carousel__card--lime .attractions-carousel__text {color: var(--wellington-green);}
.attractions-carousel__card--gold .attractions-carousel__link, .attractions-carousel__card--lime .attractions-carousel__link {color: var(--wellington-green);}
.attractions-carousel__controls {display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: var(--s-5);}
.attractions-carousel__arrows {display: flex; gap: 12px;}
.attractions-carousel__arrow {display: flex; align-items: center; justify-content: center; width: clamp(50px, 5vw ,75px); height: clamp(50px, 5vw ,75px); border: 0; border-radius: var(--radius-full); background: var(--wellington-gold); color: var(--white); cursor: pointer; transition: opacity 0.25s ease, transform 0.25s ease;}
.attractions-carousel__arrow:hover:not(.slick-disabled) {transform: scale(1.08);}
.attractions-carousel__arrow.slick-disabled {opacity: 0.45; cursor: default; pointer-events: none;}
.attractions-carousel__arrow:focus-visible {outline: 3px solid var(--wellington-green); outline-offset: 3px;}
.attractions-carousel__arrow .attractions-carousel__arrow-icon {width: 22px; height: auto;}
.attractions-carousel__arrow--prev .attractions-carousel__arrow-icon {transform: scaleX(-1);}
.attractions-carousel__dots-list {display: flex; align-items: center; gap: 9px; margin: 0; padding: 0; list-style: none;}
.attractions-carousel__dots-list li {line-height: 0;}
.attractions-carousel__dots-list button {display: block; width: 16px; height: 16px; padding: 0; border: 0; background: transparent; color: var(--wellington-gold); cursor: pointer;}
.attractions-carousel__dots-list button svg {display: block; width: 100%; height: 100%;}
.attractions-carousel__dots-list .slick-active button {color: var(--wellington-green);}
.attractions-carousel__dots-list button:focus-visible {outline: 2px solid var(--wellington-green); outline-offset: 2px; border-radius: var(--radius-full);}
.attractions-carousel--empty {padding: 30px; text-align: center; color: var(--wellington-green);}
.attractions-carousel__button {position: relative;}
.attractions-carousel__accent-arrow {position: absolute; top: calc(100% + -17px); right: calc(100% - -25px); width: clamp(60px, 10vw, 150px); height: auto; pointer-events: none;}


/* Responsive */
@media (max-width: 768px) {
    .attractions-carousel__header {flex-direction: column; align-items: flex-start; gap: 16px;}
    .attractions-carousel__slide {padding-right: 16px;}
    .attractions-carousel__body {padding: 22px 24px 28px;}
    .attractions-carousel__final-content {padding: 24px;}
    .attractions-carousel__media::after {height: 32px;}
    .attractions-carousel__arrow {width: 48px; height: 48px;}
    .attractions-carousel__controls {flex-wrap: wrap; gap: 18px;}
}

@media (max-width: 600px) {
    .attractions-carousel__arrows {display: none;}
    .attractions-carousel__dots-list button {height: 13px; width: 13px;}
}

@media (max-width:500px) {
    .attractions-carousel__accent-stars {left: unset; right: 0; width: clamp(70px, 8vw, 130px); top: 0;}
}