/* Common */

html {
    scroll-behavior: smooth;
    scrollbar-color: var(--wp--preset--color--berry) var(--wp--preset--color--fairy);
}

* {
    box-sizing: border-box;
}

::selection {
    background-color: var(--wp--preset--color--berry);
    color: white;
}

.is-style-text-clip.is-style-text-clip::selection {
    -webkit-text-fill-color: white !important;
}

h1,
h2,
h3,
h4,
h5,
h6,
li,
p {
    text-wrap: balance;
    text-wrap: pretty;
}

.custom-logo {
    min-width: 6rem;
}

/* Helpers */

.hide-text {
    border: 0;
    clip: rect(0 0 0 0);
    height: auto;
    margin: 0;
    overflow: clip;
    padding: 0;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

.relative {
    position: relative;
}

.pointer-events--none {
    pointer-events: none;
}

.wp-block-cover__background {
    border-radius: inherit;
}

/* Acknowledgement Page */

h1.acknowledgement-heading {
    text-shadow: 0 4px 4px rgba(0, 0, 0, 0.25);
}

.blur-overlay {
    overflow: visible;
}

.blur-overlay .wp-block-cover__background {
    box-shadow: 0 0 1.5rem 1.5rem white;
}

.artist-description {
    font-size: 0.75rem !important;
    opacity: 0.8;
}

.wp-element-button--has-icon {
    align-items: center;
    display: inline-flex;
    gap: 0.5rem;
}

.wp-block-button__icon {
    height: auto;
    max-height: 2.5rem;
    max-width: 5rem;
    z-index: 1;
}

.wp-block-button__link {
    word-break: keep-all;
}

.is-style-bordered > .wp-block-button__link {
    position: relative;
}

.is-style-bordered > .wp-block-button__link::before {
    background-color: white;
    border-radius: inherit;
    bottom: 1px;
    content: '';
    height: calc(100% - 2px);
    left: 1px;
    position: absolute;
    right: 1px;
    top: 1px;
    width: calc(100% - 2px);
}

.wp-block-details__icon {
    margin-inline-end: 0.5em;
    max-height: 1em;
    width: auto;
}

.is-style-container {
    position: relative;
}

.is-style-background-right {
    position: absolute;
    right: 3rem;
    top: 2rem;
}

.is-style-side-scroll {
    padding-block-end: 0.5rem;
    scrollbar-color: var(--wp--preset--color--berry) transparent;
    scrollbar-width: thin;
}

@media screen and (max-width: 981px) {
    .wp-block-post-template.is-style-side-scroll > .wp-block-post {
        min-width: 100% !important;
    }
}

.wp-block-details .wp-block-group[id],
.is-style-tab-panel .wp-block-group[id] {
    position: relative;
}

.wp-block-details .wp-block-group[id]::before,
.is-style-tab-panel .wp-block-group[id]::before {
    bottom: 100%;
    content: '';
    display: block;
    height: var(--header-height);
    min-height: 3rem;
    opacity: 0;
    pointer-events: none;
    position: absolute;
    visibility: hidden;
    width: 100%;
}

/* Form */

.gform_button:not(.gform-button--width-full) {
    margin-inline: auto !important;
}

.gform-button--width-full {
    width: 100% !important;
}

.gform-theme {
    --gf-local-bg-color: var(--gf-ctrl-btn-bg-color-transparent);
    --gf-local-border-color: var(--gf-ctrl-btn-bg-color-transparent) !important;
    --gf-ctrl-btn-bg-color-primary: var(--wp--preset--color--primary);
    --gf-ctrl-shadow: none;
}

.gform-datepicker,
.ginput_container_text,
.ginput_container_textarea,
.ginput_container_phone,
.ginput_container_select,
.ginput_container_number,
.ginput_container_date,
.ginput_container_email {
    background-clip: padding-box;
    border: 1px solid transparent;
    border-radius: 1.25rem;
    position: relative !important;

    &::before {
        background-image: var(--wp--preset--gradient--pride);
        border-radius: 0.85rem;
        bottom: 0;
        content: '';
        left: 0;
        margin: -1px;
        position: absolute;
        right: 0;
        top: 0;
        z-index: -1;
    }
}

.ginput_container_textarea {
    border-radius: 0.75rem;

    &::before {
        border-radius: 0.5rem;
    }
}

.ginput_container_textarea,
.ginput_complex > .gform-grid-col {
    margin-block-end: 2rem;
    position: relative;

    & .gform-field-label,
    & .gfield_description {
        position: absolute;
    }
}

.ginput_complex > .gform-grid-col {
    position: relative;

    &::before {
        background-image: var(--wp--preset--gradient--pride);
        border-radius: 0.875rem;
        bottom: 0;
        content: '';
        left: 6px;
        margin: -1px;
        position: absolute;
        right: 6px;
        top: 0;
        z-index: -1;
    }
}

.ginput_complex:has(.hidden_sub_label) > .gform-grid-col {
    margin-block-end: 0;
}

.ginput_container_date .gform-datepicker {
    --gf-local-width: 100% !important;
}

.gfield--type-consent {
    display: flex;
    justify-content: center;
    text-align: center;
}

.ginput_container_consent input[type=checkbox] {
    border: 1px solid var(--wp--preset--color--berry);
    border-radius: 0.3125rem;
    position: relative;
}

.gform_image_button {
    aspect-ratio: 1/1;
    background-color: transparent !important;
    background-image: none !important;
    border-width: 0 !important;
    box-shadow: none !important;
    justify-content: center;
    padding: 0 !important;
}

.gform-theme--foundation .gform_fields {
    row-gap: 1.25rem !important;
}

.form-spacing--small .gform_fields {
    row-gap: 0.75rem !important;
}

/* Form Helpers */

.form--inline .gform-body .gform_fields {
    display: flex;
    gap: 0.75rem;
}

.form--inline .gform-button {
    height: 100% !important;
    width: auto;
}

.form--inline:not(.form--fields--large) .gfield--type-submit {
    height: 2.25rem;
}

.form--inline.form--inline--fill .gfield:not(.gfield--type-submit) {
    flex-grow: 1;
}

.form--fields--large {
    .gform-datepicker,
    .ginput_container_text,
    .ginput_container_textarea,
    .ginput_container_phone,
    .ginput_container_select,
    .ginput_container_number,
    .ginput_container_date,
    .ginput_container_email {
        &::before {
            border-radius: 1rem;
        }
    }
}

/* Submit Button -- Fuzzy */

.animated-submit-color {
    transition: transform 0.25s ease-out !important;
}

.animated-submit-color--primary,
.animated-submit-color--secondary {
    border-radius: 50% !important;
    display: inline-block !important;
    filter: blur(0.5rem) !important;
    position: relative !important;
}

.animated-submit-color--primary {
    height: 2.2em !important;
    right: -0.5em !important;
    width: 2.5em !important;
    z-index: 0 !important;
}

.animated-submit-color--secondary {
    height: 1.92em !important;
    right: 0 !important;
    top: 0.2em !important;
    width: 2.3em !important;
    z-index: 1 !important;
}

.form-button--fuzzy-one .gform_button,
.form-button--fuzzy-two .gform_button {
    background-clip: padding-box;
    border-radius: 1.5rem !important;
    display: inline-block;
    height: 1.5rem !important;
    justify-content: flex-start !important;
    overflow: visible;
    padding: 0.2rem 0.625rem 0.2rem 0.8rem !important;
    padding-block-end: 5rem;
    padding-inline: 0.75em 0.5em !important;
    position: relative;
    transition: all 0.25s ease-out;
    transition-property: background-color, color;
}

.form-button--fuzzy-one .gform_button::before,
.form-button--fuzzy-two .gform_button::before {
    background-image: var(--wp--preset--gradient--stellar) !important;
    border-radius: 1.5rem;
    bottom: 0;
    content: '' !important;
    left: 0;
    margin: -1px;
    position: absolute;
    right: 0;
    top: 0;
    z-index: -1 !important;
}

.form-button--fuzzy-one .gform_button:hover,
.form-button--fuzzy-two .gform_button:hover {
    background-color: var(--wp--preset--color--primary) !important;
}

.form-button--fuzzy-one .gform_button .animated-submit-text,
.form-button--fuzzy-two .gform_button .animated-submit-text {
    white-space: nowrap;
}

.gform_button:hover .animated-submit-color.animated-submit-color--primary {
    transform: translateX(1.5em);
}

.gform_button:hover .animated-submit-color.animated-submit-color--secondary {
    transform: translateX(-1.5em);
}

/* Search Bar */

.wp-block-search__inside-wrapper {
    align-items: center;
    background-image: var(--wp--preset--gradient--stellar) !important;
    border: none;
    display: flex;
    padding: 0 !important;
    position: relative;

    & > * {
        z-index: 1;
    }
}

.wp-block-search__inside-wrapper::before {
    background-color: var(--wp--preset--color--base);
    border-radius: 2rem;
    bottom: 1px;
    content: '';
    left: 1px;
    position: absolute;
    right: 1px;
    top: 1px;
    z-index: 0;
}

.wp-block-search__button {
    background-color: transparent;
    margin: 0;
    order: 1 !important;
    padding: 0.375rem !important;
}

.wp-block-search__input {
    background-color: transparent;
    flex: 1;
    margin-left: -0.2rem;
    order: 2;
    padding-right: 1rem;
}

.wp-block-search__button .search-icon {
    transform: rotateY(180deg) translateX(-10%);
}

#search-toggle {
    display: none;
}

label[for=search-toggle] {
    align-items: center;
    background-image: var(--wp--preset--gradient--stellar) !important;
    border: none;
    border-radius: 50vw;
    display: flex;
    padding: 5px;
    position: relative;

    & > * {
        z-index: 1;
    }
}

label[for=search-toggle] svg {
    transform: scaleX(-1);
}

label[for=search-toggle]::before {
    background-color: var(--wp--preset--color--base);
    border-radius: 2rem;
    bottom: 1px;
    content: '';
    left: 1px;
    position: absolute;
    right: 1px;
    top: 1px;
    z-index: 0;
}

@media screen and (min-width: 1101px) {
    label[for=search-toggle] {
        display: none;
    }
}

@media screen and (max-width: 1100px) {
    #search-toggle + label[for=search-toggle] + .wp-block-search {
        display: none;
    }

    #search-toggle:checked + label[for=search-toggle] {
        background: none !important;
        position: absolute;
        right: 0;
        z-index: 2;
    }

    #search-toggle:checked + label[for=search-toggle]::before {
        opacity: 1;
    }

    #search-toggle:checked + label[for=search-toggle] + .wp-block-search {
        display: block !important;
    }

    #search-toggle:checked + label[for=search-toggle] svg {
        display: none;
    }

    #search-toggle:checked + label[for=search-toggle]::after {
        background-image: url("data:image/svg+xml,%3Csvg width='21' height='21' viewBox='0 0 21 21' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1.19238 1.19239L19.5772 19.5772M19.5772 1.19239L1.19238 19.5772' stroke='%23033143' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E%0A");
        background-position: center;
        background-repeat: no-repeat;
        background-size: contain;
        box-sizing: border-box;
        content: '';
        display: block;
        height: 11px;
        margin: 6px;
        width: 11px;
        z-index: 1;
    }
}

/* Menu styles */

.wp-block-navigation .has-child:not(.open-on-click):hover > .wp-block-navigation__submenu-container::before {
    background: var(--wp--preset--gradient--chill);
    content: '';
    height: 1px;
    width: 100%;
}

.wp-block-navigation-submenu .wp-block-navigation-item a {
    align-items: center;
    display: flex;
    gap: 5px;
    padding: 15px 20px !important;
}

.wp-block-navigation-submenu .wp-block-navigation-item a::after {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none'%3E%3Cpath opacity='0.8' d='M13.3536 4.85355C13.5488 4.65829 13.5488 4.34171 13.3536 4.14645L10.1716 0.964466C9.97631 0.769204 9.65973 0.769204 9.46447 0.964466C9.2692 1.15973 9.2692 1.47631 9.46447 1.67157L12.2929 4.5L9.46447 7.32843C9.2692 7.52369 9.2692 7.84027 9.46447 8.03553C9.65973 8.2308 9.97631 8.2308 10.1716 8.03553L13.3536 4.85355ZM0 5H13V4H0V5Z' fill='url(%23paint0_linear_3596_923)'/%3E%3Cdefs%3E%3ClinearGradient id='paint0_linear_3596_923' x1='6.5' y1='4.5' x2='6.5' y2='5.5' gradientUnits='userSpaceOnUse'%3E%3Cstop stop-color='%23FF1225'/%3E%3Cstop offset='0.179992' stop-color='%23FF6429'/%3E%3Cstop offset='0.349992' stop-color='%23FFC400'/%3E%3Cstop offset='0.554992' stop-color='%23539916'/%3E%3Cstop offset='0.749992' stop-color='%233347EC'/%3E%3Cstop offset='1' stop-color='%239B5DE6'/%3E%3C/linearGradient%3E%3C/defs%3E%3C/svg%3E");
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    content: '';
    display: inline-block;
    height: 13px;
    opacity: 0;
    width: 13px;
}

.wp-block-navigation-submenu .wp-block-navigation-item a:hover::after,
.wp-block-navigation-submenu .wp-block-navigation-item a:focus::after {
    opacity: 1;
}

.wp-block-navigation .wp-block-navigation__submenu-icon {
    height: 1rem;
    transform: scaleY(1);
    transition: transform 0.3s ease;
    width: 1rem;
}

.wp-block-navigation .wp-block-navigation-item:hover .wp-block-navigation__submenu-icon {
    transform: scaleY(-1);
}

.wp-block-navigation .wp-block-navigation-item a {
    padding: 0.5rem 0.75rem;
}

.wp-block-navigation .wp-block-navigation-item.current-menu-item > a {
    font-weight: 700;
}

@media screen and (min-width: 782px) {
    .wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container {
        border: none;
        box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.1);
    }

    .wp-block-navigation .has-child:not(.open-on-click):hover > .wp-block-navigation__submenu-container {
        min-width: 250px;
        padding-bottom: 15px;
        padding-top: 15px;

        &::before {
            left: 0;
            position: absolute;
            top: 0;
        }
    }

    .main-menu {
        align-self: stretch;
    }

    .main-menu > nav,
    .main-menu > nav .wp-block-navigation__responsive-container,
    .main-menu .wp-block-navigation__responsive-close,
    .main-menu .wp-block-navigation__responsive-dialog,
    .main-menu .wp-block-navigation__responsive-container-content,
    .main-menu .wp-block-navigation,
    .main-menu .wp-block-navigation__responsive-container-content > ul > .wp-block-navigation-item {
        height: 100%;
    }
}

@media screen and (max-width: 781px) {
    .has-modal-open header .wp-block-site-logo,
    .has-modal-open header .header-search-container {
        position: relative;
        z-index: 999999;
    }

    .wp-block-navigation__responsive-dialog {
        padding: 0 3rem 5rem 1.5rem;
    }

    .wp-block-navigation__responsive-container-close {
        background-clip: padding-box;
        background-color: white;
        border: 1px solid transparent;
        border-radius: 50vw;
        padding: 4px;
        right: 1.5rem;
        top: 1.25rem;
        z-index: unset;
    }

    .wp-block-navigation__responsive-container-close::after {
        background-image: var(--wp--preset--gradient--bubblegum) !important;
        border-radius: 50vw;
        bottom: -1px;
        content: '';
        display: block !important;
        left: -1px;
        position: absolute;
        right: -1px;
        top: -0.5px;
        z-index: -1;
    }

    .wp-block-navigation__responsive-container-close:focus {
        background-color: transparent;
    }

    .wp-block-navigation__responsive-container-close:focus path {
        fill: white;
    }

    .wp-block-navigation__responsive-container-content,
    .wp-block-navigation__container,
    .wp-block-navigation-item {
        width: 100%;
    }

    .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
        padding-top: calc(6rem + 24px);
    }

    header .wp-block-navigation {
        gap: 2rem;
    }

    .wp-block-navigation .wp-block-navigation-item > a {
        color: var(--wp--preset--color--primary) !important;
    }

    .wp-block-navigation > .wp-block-navigation-item > a {
        color: var(--wp--preset--color--primary) !important;
        font-size: 1rem;
    }

    .wp-block-navigation-submenu .wp-block-navigation-item a {
        padding: 13px 24px !important;
    }

    .wp-block-navigation .has-child > .wp-block-navigation-submenu__toggle[aria-expanded=true] + .wp-block-navigation__submenu-container::before {
        position: relative;
    }

    .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item.has-child {
        flex-direction: row;
        flex-wrap: wrap;
    }

    .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item.has-child > ul {
        width: 100%;
    }

    .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-icon {
        display: block;
        height: unset;
        transform: scaleY(1);
        transition: transform 0.3s ease;
        width: unset;

        & svg {
            height: 13px;
            width: 13px;

            & path {
                stroke: var(--wp--preset--gradient--midnite, #062029) !important;
                stroke-linecap: round;
            }
        }
    }

    .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-icon + ul {
        height: 0;
        opacity: 0;
        overflow: hidden;
        padding: 0;
        visibility: hidden;
    }

    .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-icon[aria-expanded=true] + ul {
        height: auto;
        opacity: 1;
        padding-top: var(--wp--style--block-gap, 2rem);
        visibility: visible;
    }

    .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-icon[aria-expanded=true] {
        transform: scaleY(-1);
    }
}

/* Accessibility Plugin customisations */

.pojo-a11y-toolbar-toggle .pojo-a11y-toolbar-toggle-link svg {
    display: none;
}

.pojo-a11y-toolbar-toggle .pojo-a11y-toolbar-toggle-link::before {
    background-image: url('../assets/icons/accessibility.svg');
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    content: '';
    display: block;
    height: 32px;
    width: 32px;
}

/* Block: post navigation link */

.wp-block-post-navigation-link:empty {
    display: none;
}

/* Block: instagram feed */

.sbi_photo img {
    border-radius: 0.75rem;
}

/* Plugin: Image Positioning */

.wp-block-image--width img {
    min-width: 100%;
}

/* Template: 404 */

.heading-icon-404 {
    transform: translate(55%, -25%) scale(0.875);
}
