.product {
    color: var(--body-color);
    padding-top: 0;
}

/* utlities */

:root {
    --section-spacer: 8rem;
}

section {
    padding-top: var(--section-spacer);
}

.product__sections section:last-child {
    padding-bottom: var(--section-spacer);
}

/* intro */

.product__hero, .product__hero-image, .product__hero-text {
    text-align: center;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
}

.product__hero-image {
    height: 48vh;
    min-height: 400px;
    width: 100%;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.product__intro-text, .product__intro-subheader {
    max-width: 600px;
    margin: 1rem auto 0 auto;
}

.product__intro-subheader {
    color: var(--primary);
    text-transform: uppercase;
}


/* overview */

.product__overview-content-container {
    row-gap: 2.5rem;
}

.product__overview-left-column,
.product__overview-right-column {
    grid-column-start: span 4;
}

.product__overview-header {
    padding-bottom: 1rem;
}

.product__overview-image-bg {
    transform: matrix(1, 0.05, -0.06, 1, 0, 0);
    background-color: var(--primary);
}

@media (min-width: 1000px) {
    .product__overview-left-column, .product__overview-right-column {
        grid-column-start: span 6;
    }

    .product__overview-right-column {
        padding: 1rem;
    }

    .product__overview-right-column {
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: flex-start;
    }
}


/* booking bar */

.product__bar {
    position: sticky;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 9;
}

.product__bar-content-container {
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    background-color: var(--body-bg);
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
}

.product__bar-right {
    display: flex;
    align-items: flex-end;
    gap: 0.625rem;
}

.product__bar-right-inner {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}

.product__bar-button-outer {
    flex-shrink: 0;
}

.product__bar-details {
    display: flex;
    flex-direction: column;
}

.product__bar-price {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
}

@media (min-width: 1000px) {
    .product__bar-details {
        display: block;
        padding-top: 0.21875rem;
        gap: 0.625rem;
        font-size: 0.75rem;
        line-height: 1.3;
        letter-spacing: 0;
    }

    .product__bar-banners {
        display: flex;
        gap: 0.625rem;
        padding-bottom: 0.4375rem;
    }

    .product__bar-price {
        display: block;
        font-size: 0.75rem;
        line-height: 1.3;
        letter-spacing: 0;
    }
}

/* highlights */

.product__highlights-left-column {
    grid-column: 1 / 5;
}

.product__highlights-right-column {
    grid-column: 1 / 5;
}

@media (min-width: 1000px) {
    .product__highlights-left-column {
        grid-column: 1 / 5;
    }

    .product__highlights-right-column {
        grid-column: 6 / 13;
    }
}

/* highlights navigation */

.product__highlights__swiper-navigation {
    padding-top: calc(1.5625rem - var(--wysiwyg-padding));
    padding-bottom: 2.1875rem;
}

@media (min-width: 1000px) {
    .product__highlights__swiper-navigation {
        padding-bottom: 0;
    }
}

/* highlights pagination bar */

:root {
    --product__highlights-border-height: 0.0625rem;
    --product__highlights-bar-height: 0.1875rem;
}

.product__highlights-pagination-bar {
    margin-bottom: 2.5rem;
    border-bottom: solid var(--product__highlights-border-height) var(--body-color);
}

.product__highlights-pagination-header {
    padding-bottom: 1.25rem;
}

.product__highlights-pagination-inner {
    display: flex;
}

.product__highlights-pagination-item {
    opacity: 0.4;
    cursor: pointer;
    flex: 1 1 auto;
    margin-bottom: calc(var(--product__highlights-bar-height) / -2 + var(--product__highlights-border-height) / -2);
}

.product__highlights-pagination-item.active {
    opacity: 1;
    border-bottom: solid var(--product__highlights-bar-height) var(--primary);
}

.product__highlights-pagination-item-header {
    display: none;
}

@media (min-width: 1000px) {
    .product__highlights-pagination-header {
        padding-bottom: 1.75rem;
    }

    .product__highlights-pagination-inner {
        gap: 2.5rem;
    }

    .product__highlights-pagination-item {
        flex: unset
    }

    .product__highlights-pagination-item-header {
        display: block;
    }
}


/* highlights text slider */

.product__highlights-slide-header {
    padding-bottom: 0.9375rem;
}

@media (min-width: 1000px) {
    .product__highlights-slide-header {
        display: none;
    }
}


/* highlights image slider */

.product__highlights-slide-images {
    display: grid;
    grid-column-gap: var(--x-spacer-small);
    grid-template-columns: repeat(4, 1fr);
}

.product__highlights-slide-image {
    grid-column: 1 / 5;
}

@media (min-width: 1000px) {
    .product__highlights-slide-images {
        grid-template-columns: repeat(7, 1fr);
    }

    .product__highlights-slide-image.single {
        grid-column: 1 / 8;
    }
}


/* hosts */

.product__hosts-content-container {
    row-gap: 2.5rem;
}

.product__hosts-left-column,
.product__hosts-right-column,
.product__hosts-center-column {
    grid-column: 1 / 5;
    padding-bottom: 3.125rem;
}

.product__hosts-header,
.product__hosts-subheader {
    padding-bottom: 1.5625rem;
}

@media (min-width: 1000px) {
    .product__hosts-left-column {
        grid-column: 1 / 7;
    }

    .product__hosts-center-column {
        grid-column: 1 / 13;
    }

    .product__hosts-right-column {
        grid-column: 8 / 12;
        grid-row: 1;
        display: flex;
        flex-direction: column;
        justify-content: center;
    }
}


/* included */

.product__included-left-column, .product__included-right-column {
    grid-column: 1 / 5;
    border: 3px solid #F9F9F9;
    border-radius: var(--border-radius);
    padding: 2rem;
}

.product__included-right-column {
    background-color: #F9F9F9;
}

.product__included-header {
    padding-bottom: 3.125rem;
}

.product__included-accordion-item {
    padding: 1.25rem 0;
    border-bottom: solid 0.0625rem var(--body-color);
}

.product__included-accordion-item:first-of-type {
    border-top: solid 0.0625rem var(--body-color);
}

.product__included-accordion-top {
    display: flex;
    width: 100%;
    justify-content: space-between;
    text-align: left;
}

.product__included__plus {
    margin-left: 1.375rem;
    flex-shrink: 0;
}

.product__included-accordion-top.active,
.product__included-accordion-top:hover {
    color: var(--primary);
}

.product__included-accordion-top.active .product__included__plus {
    transform: rotate(45deg);
}

.product__included-accordion-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.2s ease-out;
    display: grid;
    grid-column-gap: var(--x-spacer-small);
    grid-template-columns: repeat(4, 1fr);
}

.product__included-accordion-text {
    grid-column: 1 / 5;
    padding-top: 1.25rem;
}

.product__included-item {
    display: flex;
    gap: 0.625rem;
    padding-bottom: 0.625rem;
    align-items: center;
}

@media (min-width: 1000px) {
    .product__included-left-column, .product__included-right-column {
        padding: 4rem 3rem;
    }

    .product__included-left-column {
        grid-column: 1 / span 8;
    }

    .product__included-right-column {
        grid-column: 9 / span 4;
    }

    .product__included-left-column.full-row, .product__included-right-column.full-row {
        grid-column: 3 / span 8;
    } 

    .product__included-accordion-item {
        padding: 1.875rem 0;
        border-bottom: solid 0.0625rem var(--body-color);
    }

    .product__included__plus {
        margin-left: 5.3125rem;
    }

    .product__included-left-column .product__included-accordion-text {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .product__included-accordion-text {
        padding-top: 1.875rem;
    }

    .product__included-header {
        padding-bottom: 0;
    }
}


/* variants */

.product__variants-heading {
    padding-bottom: 3.125rem;
}

.product__variants-items {
    row-gap: 1.25rem;
}

.product__variants .experience-card {
    grid-column: span 6;
}



/* extras */

.product__extras-heading {
    padding-bottom: 3.125rem;
}

.product__extras-items {
    row-gap: 1.25rem;
}

.product__extras .experience-card {
    grid-column: span 4;
}


@media (min-width: 1000px) {
    .product__extras-items--1 .product__experience-card--1 {
        grid-column: 5 / 9;
    }

    .product__extras-items--2 .product__experience-card--1 {
        grid-column: 3 / 7;
    }

    .product__extras-items--2 .product__experience-card--2 {
        grid-column: 7 / 11;
    }
}

/* gallery */

.product__gallery-heading {
    padding-bottom: 1rem;
}

.product__gallery-slide {
    padding: 0 calc(var(--x-spacer-small)/2);
}

@media (min-width: 1000px) {

    .product__gallery-swiper .product__gallery-swiper-pagination.swiper-pagination-bullets {
        bottom: 2.5rem;
        gap: calc(0.4375rem + 0.10625rem * 2);
    }

    .product__gallery-swiper-pagination--bullet {
        width: calc(1.5625rem - 0.10625rem * 2);
        height: calc(1.5625rem - 0.10625rem * 2);
        outline: 0.10625rem solid var(--body-color);
    }

    .product__gallery-swiper-pagination--bullet-active {
        border: 0.20625rem solid var(--body-bg);
    }
}

/* venue */

.product__venue-content-container {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.product__venue-image img, .product__venue-image {
    width: 100%;
    height: auto;
}

/* reviews */

.product__reviews-heading {
    padding-bottom: 3.125rem;
}

.product__reviews-left-column {
    grid-column: 1 / 5;
}

.product__reviews-right-column {
    grid-column: 1 / 5;
}

.product__reviews__swiper-navigation,
.product__review-header,
.product__reviews-swiper__text {
    padding-bottom: 2.1875rem;
}

@media (min-width: 1000px) {
    .product__reviews-heading {
        padding-bottom: 5.75rem;
    }

    .product__reviews-left-column {
        grid-column: 1 / 4;
    }

    .product__reviews-right-column {
        grid-column: 4 / 13;
        margin-right: var(--x-spacer-neg);
    }

    .product__reviews__swiper-navigation {
        padding-bottom: 0;
    }

    .product__reviews-slide {
        padding-right: var(--x-spacer-small);
    }

    .product__review-header,
    .product__reviews-swiper__text {
        padding-bottom: 1.5625rem;
    }
}


/* faq & trip tips */

.product__faq-left-column, .product__tips-left-column {
    grid-column: 1 / 5;
}

.product__faq-right-column, .product__tips-right-column {
    grid-column: 1 / 5;
}

.product__faq-header, .product__tips-header {
    padding-bottom: 3.125rem;
}

.product__faq-accordion-item, .product__tips-accordion-item {
    padding: 1.25rem 0;
    border-bottom: solid 0.0625rem var(--body-color);
}

.product__faq-accordion-item:first-of-type, .product__tips-accordion-item:first-of-type {
    border-top: solid 0.0625rem var(--body-color);
}

.product__faq-accordion-top, .product__tips-accordion-top {
    display: flex;
    width: 100%;
    justify-content: space-between;
    text-align: left;
}

.product__faq__plus, .product__tips__plus {
    margin-left: 1.375rem;
    flex-shrink: 0;
}

.product__faq-accordion-top.active,
.product__faq-accordion-top:hover,
.product__tips-accordion-top.active,
.product__tips-accordion-top:hover {
    color: var(--primary);
}

.product__faq-accordion-top.active .product__faq__plus,
.product__tips-accordion-top.active .product__tips__plus {
    transform: rotate(45deg);
}

.product__faq-accordion-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.2s ease-out;
    display: grid;
    grid-column-gap: var(--x-spacer-small);
    grid-template-columns: repeat(4, 1fr);
}

.product__faq-accordion-text {
    grid-column: 1 / 5;
    padding-top: 1.25rem;
}

@media (min-width: 1000px) {
    .product__faq-left-column, .product__tips-left-column {
        grid-column: 1 / 6;
    }

    .product__faq-right-column, .product__tips-right-column {
        grid-column: 6 / 13;
    }

    .product__faq-accordion-item, .product__tips-accordion-item {
        padding: 1.875rem 0;
        border-bottom: solid 0.0625rem var(--body-color);
    }

    .product__faq__plus, .product__tips__plus {
        margin-left: 5.3125rem;
    }

    .product__faq-accordion-content {
        grid-template-columns: repeat(7, 1fr);
    }

    .product__faq-accordion-text {
        grid-column: 1 / 5;
        padding-top: 1.875rem;
    }

    .product__faq-header, .product__tips-header {
        padding-bottom: 0;
    }

    .product__faq-accordion-header, .product__tips-accordion-header {
        font-size: 1.4375rem;
        line-height: 1.2;
        letter-spacing: -0.01em;
    }
}

/* product cta */

.product__cta {
    background-color: var(--secondary);
    padding: var(--section-spacer) 0;
}

.product__cta .default-grid {
    row-gap: 1rem;
}

.product__cta-image, .product__cta-text {
    grid-column-start: span 4;
}

.product__cta-text {
    background-color: var(--body-color);
    color: var(--body-bg);
    padding: var(--x-spacer);
}

@media (min-width: 1000px) {
    .product__cta-image, .product__cta-text {
        grid-row: 1 / span 1;
        grid-column-start: span 6;
    }
    .product__cta-image {
        grid-column: 1 / span 7;
    }
    .product__cta-text {
        grid-column: 7 / span 6;
    }
    .product__cta-text {
        margin-top: var(--x-spacer);
    }
}