:root {
    --theme-color-primary: var(--wp--preset--color--primary, #9c7162);
    --theme-color-secondary: var(--wp--preset--color--secondary, #ce9582);
    --theme-color-accent: var(--wp--preset--color--secondary-2);
    --theme-color-lighter: var(--wp--preset--color--secondary-3);
    --theme-color-light: var(--wp--preset--color--secondary-4);
    --theme-color-dark: var(--wp--preset--color--contrast);
    --theme-color-grey: var(--wp--preset--color--neutral-900);
    --theme-color-base: var(--wp--preset--color--base);
    --scrollbar-width: 0.5rem;
    --scrollbar-height: 0.4rem;
    --scrollbar-thumb-color: var(--wp--preset--color--primary, #9c7162);
    --scrollbar-border-radius: 0.5rem;

    /* Extra colours (not in Theme.json) */
    --theme-color-dark-snow-frost: #cae2ea;
    --theme-color-dark-accent: #7fcacd;
    --theme-color-darker-accent: #5fb5b6;
    --theme-color-dark-snow-blue-ice: #248dae;
    --theme-color-darker-snow-blue-ice: #006f92;
    --theme-color-darkest-snow-blue-ice: #00556f;
}

/* Common */
html {
    scroll-behavior: smooth;
}

p,
li,
h1,
h2,
h3,
h4,
h5,
h6 {
    text-wrap: pretty;
    word-break: keep-all;
}

/* Allows for simpler theme color changes */
.primary-theme-color {
    color: var(--theme-color-primary, #9c7162);
}

.secondary-theme-color {
    color: var(--theme-color-secondary, #ce9582);
}

.sr-only {
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    height: 1px;
    height: 0;
    overflow: hidden;
    position: absolute;
    white-space: nowrap;
    width: 1px;
    width: 0;
}

.hide-text {
    background-color: transparent;
    border: 0;
    color: transparent !important;
    display: block;
    font-size: 0 !important;
    height: 0;
    left: 0;
    overflow: hidden;
    position: absolute;
    text-decoration: none;
    text-shadow: none;
    top: 0;
    width: 0;
}

.wp-block-heading.has-angle-font-family {
    font-weight: 400 !important;
    letter-spacing: normal;
}

.header--shadow {
    box-shadow:
        0 71px 20px 0 rgba(205, 150, 130, 0),
        0 45px 18px 0 rgba(205, 150, 130, 0.01),
        0 25px 15px 0 rgba(205, 150, 130, 0.02),
        0 11px 11px 0 rgba(205, 150, 130, 0.04),
        0 3px 6px 0 rgba(205, 150, 130, 0.05);
}

.wp-block-group.is-style-overflow {
    overflow: visible;
}

.wp-block-media-text p {
    margin-bottom: 1rem;
}

.wp-block-media-text__media > img {
    border: 4px solid var(--wp--preset--color--white);
    border-radius: 2rem !important;
    box-shadow: var(--wp--preset--shadow--light);
}

.is-style-overflow-hidden {
    overflow: hidden;
}

/* Small subheading label text */
.is-style-retreat-label-text {
    font-family: var(--wp--preset--font-family--montserrat);
    font-size: var(--wp--preset--font-size--tiny);
    font-weight: 500;
    letter-spacing: 0.25rem;
    line-height: 1.2;
    padding-bottom: 0.25rem;
    text-transform: uppercase;
}

/* Blog Post Template styles - Default Wordpress post title & image */
figure.wp-block-post-featured-image {
    border-radius: 1rem;
    overflow: clip;

    & img {
        height: 100%;
        object-fit: cover;
        object-position: center;
        width: 100%;
    }
}

.wp-block-post-title {
    margin-top: 2rem;
}

@media screen and (min-width: 1200px) {
    .wp-block-post-featured-image {
        display: flex;
        flex-direction: column;
        margin-inline: auto;
    }
}

/* Card: Destination */
.card--destination {
    box-shadow: var(--wp--preset--shadow--light);
    overflow: hidden;
    position: relative;
}

.card--destination > .wp-block-buttons {
    bottom: 0;
    position: absolute;
}

.card--destination .wp-block-buttons,
.card--destination .wp-block-button,
.card--destination .wp-block-button__link {
    width: 100%;
}

.card--destination .wp-block-button__link {
    backdrop-filter: blur(10px);
    background-color: transparent;
    border-radius: 0;
}

.card--destination .wp-block-button__link::before,
.card--destination .wp-block-button__link::after {
    content: '';
    position: absolute;
    width: 100%;
}

.card--destination .wp-block-button__link::before {
    background-color: white;
    inset: 0;
    opacity: 0.4;
    z-index: -1;
}

.card--destination .wp-block-button__link::after {
    bottom: 100%;
    height: 100vh;
    left: 0;
    opacity: 0;
}

.card--destination .wp-block-image > img {
    min-height: 24rem;
    transition: transform 0.25s ease-out;
}

.card--destination:focus-within .wp-block-image > img,
.card--destination:hover .wp-block-image > img {
    transform: scale(1.125);
}

details summary {
    list-style: none;

    &::marker,
    &::-webkit-details-marker {
        display: none;
        opacity: 0;
    }
}

.wp-block-details summary {
    align-items: center;
    display: flex;

    &::after {
        background-color: currentcolor;
        color: inherit;
        content: '';
        display: block;
        height: 0.75em;
        margin-left: 0.5rem;
        mask-image: url("data:image/svg+xml,%3Csvg width='12' height='7' viewBox='0 0 12 7' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L6 6L11 1' stroke='currentColor' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
        mask-position: center;
        mask-repeat: no-repeat;
        mask-size: 0.75em;
        transform: rotate(0deg);
        transition: transform 0.3s ease;
        width: 0.75em;
    }

    & + * {
        margin-top: 0.5rem;
    }
}

.wp-block-details[open] summary::after {
    transform: rotate(180deg);
}

/* List styles */
ul.wp-block-list {
    padding-inline-start: 1.5rem;
}

ul.wp-block-list > li {
    list-style-type: none;
    margin-block: 0.5em;
    margin-inline-end: 3rem;
    position: relative;
}

ul.wp-block-list > li::before {
    background-color: currentcolor;
    content: '';
    display: inline-block;
    height: 1.3em;
    left: -1.5rem;
    mask-image: url("data:image/svg+xml,%3Csvg width='14' height='22' viewBox='0 0 14 22' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.000557189 6.64355C0.000371426 6.64381 0.000185697 6.64408 0 6.64435V6.64286C0.000185634 6.64309 0.000371364 6.64332 0.000557189 6.64355C0.456556 5.98908 1.10979 5.80225 1.83462 5.92491C3.38711 6.18716 4.46653 7.06047 5.05485 8.51072C5.06788 8.54338 5.08041 8.57653 5.10496 8.64036C5.3004 8.42512 5.41867 8.18762 5.56851 7.97288C5.63115 7.88332 5.53142 7.84225 5.48181 7.79772C5.10697 7.46175 4.72912 7.12925 4.35127 6.79576C3.0719 5.66663 1.79253 4.538 0.513654 3.40837C0.452015 3.35395 0.395386 3.29457 0.317712 3.21936C0.624401 3.04519 0.937102 2.97642 1.26283 2.95761C1.80856 2.92595 2.32573 3.04519 2.81482 3.27626C4.08267 3.87497 4.9406 4.85813 5.51338 6.10403C5.70782 6.52659 5.82909 6.97141 5.90827 7.42514C6.00298 7.43009 6.02252 7.35438 6.06913 7.31331C6.20644 7.19357 6.21145 7.06641 6.14681 6.89422C5.75092 5.83585 5.37056 4.77204 4.98319 3.7107C4.60234 2.66667 4.21847 1.62364 3.84012 0.57863C3.80354 0.478187 3.73489 0.380711 3.76696 0.244148C3.99197 0.276804 4.18941 0.370815 4.37733 0.483629C4.70156 0.677095 4.97417 0.930926 5.21471 1.21791C5.88422 2.0175 6.29765 2.94326 6.57377 3.93434C6.74816 4.56076 6.84087 5.20003 6.86241 5.86207C6.93959 5.83783 6.91854 5.774 6.93407 5.73392C6.95362 5.68246 6.96164 5.62655 6.97266 5.57212C7.345 3.78838 7.71683 2.00414 8.08867 0.220397C8.09268 0.20209 8.09418 0.183782 8.09819 0.165475C8.14529 -0.0319492 8.18639 -0.0462983 8.35226 0.0882865C8.43895 0.158548 8.52264 0.234746 8.59731 0.316883C9.20668 0.991291 9.43369 1.7889 9.36002 2.67805C9.2618 3.86507 8.71657 4.84576 7.91628 5.70819C7.84913 5.78093 7.75742 5.83486 7.71884 5.94223C7.82708 5.9645 7.89723 5.89028 7.97892 5.85515C9.56247 5.16688 11.1991 4.9749 12.895 5.34056C13.2072 5.40785 13.5068 5.51473 13.7925 5.65673C13.8426 5.68147 13.8907 5.71017 13.9398 5.73788C13.9739 5.75718 14.0014 5.78736 13.9999 5.82546C13.9974 5.88384 13.9468 5.89226 13.8997 5.89968C13.5765 5.95312 13.2533 6.00754 12.9295 6.05999C11.1276 6.35233 9.32556 6.64417 7.52358 6.936L7.52189 6.93628C7.29087 6.97388 7.06036 7.01891 6.82834 7.04464C6.68401 7.06097 6.5893 7.12529 6.51163 7.24107C6.40589 7.39792 6.28812 7.54735 6.17436 7.70173C6.25505 7.74972 6.29514 7.71905 6.33673 7.70123C7.0824 7.38258 7.86968 7.2762 8.67198 7.29698C9.73286 7.32469 10.7537 7.54339 11.7093 8.01593C12.1824 8.24996 12.6153 8.53992 12.9651 8.93724C13.0338 9.01542 13.143 9.08518 13.0929 9.22867C12.8669 9.26083 12.6479 9.19354 12.4289 9.16237C10.3147 8.86054 8.20142 8.55426 6.08867 8.24254C5.89724 8.21434 5.77096 8.24947 5.68276 8.43056C5.60008 8.60077 5.49183 8.75862 5.3876 8.93377C5.5214 8.96594 5.60359 8.90606 5.69078 8.8838C7.11147 8.51963 8.43946 8.72744 9.67373 9.5112C9.91126 9.66212 10.1212 9.84766 10.3092 10.0565C10.898 10.7106 11.1345 11.4483 10.8599 12.3197C10.7386 12.3118 10.6504 12.239 10.5552 12.1881C8.85739 11.2816 7.16058 10.3736 5.46377 9.46618C5.4307 9.44836 5.39813 9.43104 5.36455 9.41373L5.36409 9.4135C5.17913 9.31971 5.17554 9.31789 5.0759 9.51021C4.47555 10.6685 4.02554 11.8818 3.71835 13.146C3.44273 14.282 3.28888 15.4334 3.24278 16.6031C3.17413 18.3468 3.37859 20.0553 3.8296 21.7386C3.83912 21.7743 3.85516 21.8089 3.86217 21.8445C3.89374 21.9994 3.86869 22.0221 3.71084 21.9835C3.6928 21.9791 3.65822 21.9652 3.65822 21.9652C3.30192 22.0073 3.17213 21.5011 3.17213 21.5011C2.91806 20.4541 2.77423 19.3943 2.73915 18.3176C2.65496 15.7303 3.08844 13.2331 4.04859 10.8244C4.24453 10.3336 4.46954 9.85558 4.71459 9.38651C4.85791 9.1124 4.90752 9.16138 4.57878 8.99513C3.13654 8.26481 1.69481 7.53498 0.253071 6.80367C0.171084 6.76221 0.0776241 6.73798 0.000557189 6.64355Z' fill='black'/%3E%3C/svg%3E%0A");
    mask-position: center;
    mask-repeat: no-repeat;
    mask-size: contain;
    position: absolute;
    width: 1em;
}

/* Block style helpers */

.destination--radius {
    border-radius: 100px;
}

.glass--effect {
    backdrop-filter: blur(10px);
}

/* Accordion */

.accordion-content ul,
.accordion-content ol {
    white-space: normal;
}

.accordion-content .alignleft,
.accordion-content .alignright {
    margin-block-end: 0.5rem;
}

.accordion-content .alignleft {
    float: left;
    margin-inline-end: 0.5rem;
}

.accordion-content .aligncenter {
    margin-inline: auto;
}

.accordion-content .alignright {
    float: right;
    margin-inline-start: 0.5rem;
}

.accordion-content__clear {
    clear: both;
    display: block;
}

/* FAQ + FAQ Category */

.faq__title {
    align-items: start;
    cursor: pointer;
    display: flex;
    font-size: var(--wp--preset--font-size--medium);
    font-weight: bold;
    gap: 0.5rem;
    justify-content: space-between;
    line-height: 1.3;
    list-style-type: none;
    padding: 1.5rem 0;
    position: relative;
}

.faq__content-wrapper {
    border-bottom: 1px solid var(--wp--preset--color--secondary);
}

.faq__content--inner-wrapper {
    margin: 0;
    padding-bottom: 1rem;
}

.faq__content-wrapper[open] .faq__title {
    padding-block-end: 0.75rem;
}

.faq__content-wrapper .faq__title::after {
    background-image: url('../assets/icons/plus.svg');
    background-repeat: no-repeat;
    background-size: contain;
    content: '';
    display: inline-block;
    flex-shrink: 0;
    height: 1.25rem;
    transition: all 0.25s ease-out;
    transition-property: transform;
    width: 1.25rem;
    z-index: 1;
}

.faq__content-wrapper[open] .faq__title::after {
    transform: rotate(45deg);
}

.faq__content {
    line-height: 1.5;
    max-width: 56rem;
    white-space: pre-line;

    & ul,
    & ol {
        white-space: normal;
    }
}

@media screen and (max-width: 768px) {
    .faq__content-wrapper .faq__title::after {
        height: 1rem;
        width: 1rem;
    }
}

/* Slider */
.slider-arrows--package .splide__arrow {
    transform: translateY(-200%);
}

.splide .splide__arrows {
    align-items: center;
    display: flex;
    justify-content: space-between;
    left: 0;
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    z-index: 1;
}

.splide .splide__arrows .splide__arrow {
    align-items: center;
    background-color: var(--wp--preset--color--secondary);
    border: none;
    border-radius: 50%;
    box-shadow: var(--wp--preset--shadow--strong);
    color: var(--wp--preset--color--white);
    cursor: auto;
    display: flex;
    height: 2.5rem;
    justify-content: center;
    opacity: 1;
    padding: 0;
    transition: all 0.2s linear;
    transition-property: background-color, color;
    width: 2.5rem;
}

.wp-block-cloudcatch-splide-carousel.alignfull .splide__arrow {
    background-color: transparent;
    border: 3px solid var(--wp--preset--color--white);
    height: 3.125rem;
    width: 3.125rem;
}

.wp-block-splide-carousel .splide__arrows .splide__arrow {
    position: absolute;
    top: 50%;
}

.wp-block-splide-carousel .splide__arrows .splide__arrow--next {
    right: -3rem;
}

.wp-block-splide-carousel .splide__arrows .splide__arrow--prev {
    left: -3rem;
}

.splide .splide__arrows .splide__arrow svg {
    fill: currentColor;
    height: 1.2em;
    width: 1.2em;
}

.splide .splide__arrows .splide__arrow:disabled {
    opacity: 0.3;
}

.splide .splide__arrows .splide__arrow--prev svg {
    transform: scaleX(-1);
}

figure.wp-block-splide-carousel {
    margin: 0;
}

.wp-block-splide-carousel figure {
    margin: 0;
}

.wp-block-cloudcatch-splide-carousel.alignfull .splide__arrow--prev {
    left: calc(var(--wp--style--root--padding-left) * 2.5);
}

.wp-block-cloudcatch-splide-carousel.alignfull .splide__arrow--next {
    right: calc(var(--wp--style--root--padding-right) * 2.5);
}

.wp-block-splide-carousel .splide__pagination__page {
    background-color: var(--wp--preset--color--secondary);
    border-radius: 1rem;
    height: 0.675rem;
    margin-inline-end: 0.675em;
    opacity: 0.3;
    transition: all 0.25s ease-out;
    transition-property: background-color, opacity, width;
    width: 0.675rem;
}

.wp-block-splide-carousel .splide__pagination__page:hover {
    cursor: auto;
}

.wp-block-splide-carousel .splide__pagination__page.is-active {
    background-color: var(--wp--preset--color--secondary);
    opacity: 1;
    width: 2.25rem;
}

.pagination-white .wp-block-splide-carousel {
    .splide__pagination__page,
    .splide__pagination__page.is-active {
        background-color: white;
    }
}

.pagination-inline .wp-block-splide-carousel .splide__pagination {
    bottom: unset;
    padding-top: 2rem;
    position: relative;
}

.splide.is-initialized:not(.is-overflow) .splide__arrows,
.splide.is-initialized:not(.is-overflow) .splide__pagination {
    visibility: hidden;
}

/* Retreat cards */
.retreat-card-img {
    cursor: pointer;
    transition: transform 0.3s ease;
}

.retreat-card-img:hover {
    transform: scale(0.98);
}

/* Retreat slider -- Vertically-align arrows with image */
.retreat-card--slider {
    --retreat-card-img--width: 560px;
}

.retreat-card--slider.wp-block-cloudcatch-splide-carousel .splide__arrows .splide__arrow {
    position: absolute;
    top: calc((var(--retreat-card-img--width) * 2 / 3) / 2.75);
    transform: translateY(-50%);
}

@media screen and (max-width: 1249px) {
    .retreat-card--slider.wp-block-cloudcatch-splide-carousel .splide__arrows .splide__arrow {
        top: calc((var(--retreat-card-img--width) * 2 / 3) / 3);
    }
}

@media screen and (max-width: 1079px) {
    .retreat-card--slider.wp-block-cloudcatch-splide-carousel .splide__arrows .splide__arrow {
        top: calc((min(var(--retreat-card-img--width), 45vw) * 2 / 3) / 2.15);
    }
}

@media screen and (max-width: 599px) {
    .retreat-card--slider.wp-block-cloudcatch-splide-carousel .splide__arrows .splide__arrow {
        top: calc((min(var(--retreat-card-img--width), 90vw) * 2 / 3) / 2.15);
    }
}

.single-retreat .wp-site-blocks > .entry-content .wp-block-cover {
    min-height: 70vh;
}

/* Search */
.wp-block-search__input {
    padding: 0.5rem 1.5rem;
}

.wp-block-search__input:focus {
    padding: 0.5rem 1.5rem;
}

/* clears the ‘X’ from Chrome */
input[type=search]::-webkit-search-decoration,
input[type=search]::-webkit-search-cancel-button,
input[type=search]::-webkit-search-results-button,
input[type=search]::-webkit-search-results-decoration {
    filter: grayscale(1);
}

@media screen and (max-width: 1400px) {
    .splide .splide__arrows .splide__arrow--next {
        right: -1rem;
    }

    .splide .splide__arrows .splide__arrow--prev {
        left: -1rem;
    }

    .wp-block-cloudcatch-splide-carousel.alignfull .splide__arrow--prev {
        left: 4dvw;
    }

    .wp-block-cloudcatch-splide-carousel.alignfull .splide__arrow--next {
        right: 4dvw;
    }

    .slider-arrows--package .splide__arrow {
        transform: translateY(-200%);
    }
}
