/*
Theme Name: Faith Ibiza
Author:     Yellowball
Author URI: https://weareyellowball.com
Version:    1.2.6
*/

/* General */

:root {

    /* Sizes */
    --header-height: 0px;
    --document-width: 100vw;
    --page-size-narrow: 792px;
    --page-size: 1200px;
    --page-size-wide: 1400px;
    --page-padding-narrow: 1.25rem;
    --page-padding: 1.875rem;
    --page-padding-wide: 2rem;
    --modal-size: 700px;
    --modal-size-small: 500px;
    --modal-padding: 1.5rem;
    --offset: max(var(--page-padding), calc(var(--document-width) - var(--page-size)) / 2);
    --radius-xs: 2px;
    --radius-l: 0.625rem;
    --radius-xl: 0.75rem;
    --radius-xxl: 12.5rem;
    --radius-8: 0.5rem;
    --radius-16: 1rem;
    --radius-24: 1.5rem;
    --radius-20: 1.25rem;
    --radius-40: 2.5rem;
    --radius-60: 3.75rem;
    --radius-100: 6.25rem;
    --radius-110: 6.875rem;

    /* Default Color Pallette */
    --c-primary: #2F4156;
    --c-primary75: #2F4156BF;
    --c-secondary: #8DAEB6;
    --c-tertiary: #A0EFE9;
    --c-text-light: #FFFFFF;
    --c-text-dark: #4C5B6B;
    --c-bg-light: #EEEBE4;
    --c-bg-dark: #3C859B;
    --c-bg-dark75: #1B566E;
    --c-error: #FF8383;
    --c-hr: #C8C9C8;
    
    /* Font Families */
    --ff-dream-orphans: "Dream Orphans", sans-serif;
    --ff-eastern-harrogate: "Eastern Harrogate", cursive;
    --ff-afacad-flux: "Afacad Flux", sans-serif;

    /* Font Sizes (from 1440px to 390px) */
    --font-200-84: clamp(5.25rem, 2.5571rem + 11.0476vw, 12.5rem);
    --font-150-76: clamp(4.75rem, 3.0321rem + 7.0476vw, 9.375rem);
    --font-150-63: clamp(3.9375rem, 1.9179rem + 8.2857vw, 9.375rem);
    --font-110-65: clamp(4.0625rem, 3.0179rem + 4.2857vw, 6.875rem);
    --font-90-50: clamp(3.125rem, 2.1964rem + 3.8095vw, 5.625rem);
    --font-80-44: clamp(2.75rem, 1.9143rem + 3.4286vw, 5rem);
    --font-70-36: clamp(2.25rem, 1.4607rem + 3.2381vw, 4.375rem);
    --font-60-36: clamp(2.25rem, 1.6929rem + 2.2857vw, 3.75rem);
    --font-50: 3.125rem;
    --font-50-28: clamp(1.75rem, 1.2393rem + 2.0952vw, 3.125rem);
    --font-48-28: clamp(1.75rem, 1.2857rem + 1.9048vw, 3rem);
    --font-36-28: clamp(1.75rem, 1.5643rem + 0.7619vw, 2.25rem);
    --font-36-24: clamp(1.5rem, 1.2214rem + 1.1429vw, 2.25rem);
    --font-30-18: clamp(1.125rem, 0.8464rem + 1.1429vw, 1.875rem);
    --font-30-16: clamp(1rem, 0.675rem + 1.3333vw, 1.875rem);
    --font-28: 1.75rem;
    --font-28-24: clamp(1.5rem, 1.4071rem + 0.381vw, 1.75rem);
    --font-28-19: clamp(1.1875rem, 0.9786rem + 0.8571vw, 1.75rem);
    --font-24-19: clamp(1.1875rem, 1.0714rem + 0.4762vw, 1.5rem);
    --font-24-17: clamp(1.0625rem, 0.9rem + 0.6667vw, 1.5rem);
    --font-24-14: clamp(0.875rem, 0.6429rem + 0.9524vw, 1.5rem);
    --font-21-17: clamp(1.0625rem, 0.9696rem + 0.381vw, 1.3125rem);
    --font-19-17: clamp(1.0625rem, 1.0161rem + 0.1905vw, 1.1875rem);
    --font-19-15: clamp(0.9375rem, 0.8446rem + 0.381vw, 1.1875rem);
    --font-19: 1.188rem;
    --font-18-17: clamp(1.0625rem, 1.0393rem + 0.0952vw, 1.125rem);
    --font-18-16: clamp(1rem, 0.9536rem + 0.1905vw, 1.125rem);
    --font-18-15: clamp(0.9375rem, 0.8679rem + 0.2857vw, 1.125rem);
    --font-17-15: clamp(0.9375rem, 0.8911rem + 0.1905vw, 1.0625rem);
    --font-16-15: clamp(0.9375rem, 0.9143rem + 0.0952vw, 1rem);
    --font-16-13: clamp(0.8125rem, 0.7429rem + 0.2857vw, 1rem);
    --font-16-12: clamp(0.75rem, 0.6571rem + 0.381vw, 1rem);
    --font-15-13: clamp(0.8125rem, 0.7661rem + 0.1905vw, 0.9375rem);
    --font-14-12: clamp(0.75rem, 0.7036rem + 0.1905vw, 0.875rem);
    --font-13: 0.8125rem;
    --font-13-12: clamp(0.75rem, 0.7268rem + 0.0952vw, 0.8125rem);
    --font-13-11: clamp(0.6875rem, 0.6411rem + 0.1905vw, 0.8125rem);
    --font-13-10: clamp(0.625rem, 0.5554rem + 0.2857vw, 0.8125rem);
    --font-12-10: clamp(0.625rem, 0.5786rem + 0.1905vw, 0.75rem);

    /* Button related */
    --outline-light: 1px solid #ffffff4d;
    --outline-purple: 1px solid #D4C9FF;

    /* Text */
    --fw-400: 400;
    --fw-600: 600;

    /* Swiper */
    --swiper-pagination-color: var(--c-primary);
    --swiper-pagination-bullet-inactive-color: var(--c-light-purple);
    --swiper-pagination-bullet-inactive-opacity: 1;
    --swiper-pagination-bullet-size: 6px;
    --swiper-pagination-bullet-border-radius: 6px;
    --swiper-pagination-bullet-horizontal-gap: 5px;
    --swiper-pagination-progressbar-size: 2px;
    --swiper-pagination-progressbar-bg-color: rgb(from var(--c-primary) r g b / 0.2);

}

@function to-rgb($value) { @return red($value), green($value), blue($value); }

*, ::placeholder {
    text-box: trim-both cap alphabetic;
    text-rendering: geometricPrecision;
    scroll-margin-top: calc(var(--header-height, 0px) + 1rem);
}

html {
    scroll-behavior: smooth;
}

body {
	background-color: var(--c-bg-light);
    color: var(--c-text-dark);
}

html.scroll-lock,
body.scroll-lock {
    position: fixed;
    overflow: clip;
    width: 100%;
    overscroll-behavior: none;
}

html.no-smooth,
body.no-smooth {
    scroll-behavior: auto !important;
}

body:not(.window-loaded) {
    /* visibility: hidden; */
}

@media screen and (width > 620px) {
    .only-mobile {
        display: none !important;
    }
}

:where(img, svg) {
    display: block;
    max-width: 100%;
    height: auto;
}

[data-href] {
    cursor: pointer;
}

.scroll-margin {
    scroll-margin-top: calc(var(--header-height, 0px) + 1rem);
}

.grecaptcha-badge,
#awebChromeHelper { 
    visibility: hidden !important;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
}

#page {
    overflow-x: clip;;
}

hr {
    width: 100%;
    border: 0;
    border-bottom: 1px solid var(--c-hr);
}

.hideee {
    display: none !important;
}

/* Typography */

:where(.text-small) {
    font-family: var(--ff-afacad-flux);
    font-size: var(--font-16-12);
    font-style: normal;
    font-weight: 400;
    font-optical-sizing: auto;
    line-height: 1.2;
    letter-spacing: -0.01em;
}

:where(.text-medium) {
    font-family: var(--ff-afacad-flux);
    font-size: var(--font-19-15);
    font-style: normal;
    font-weight: 400;
    font-optical-sizing: auto;
    line-height: 1.2;
    letter-spacing: -0.01em;
}

:where(#page, .text-large) {
    font-family: var(--ff-afacad-flux);
    font-size: var(--font-24-19);
    font-style: normal;
    font-weight: 400;
    font-optical-sizing: auto;
    line-height: 1.2;
    letter-spacing: -0.01em;
}

:where(h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6) {
    color: var(--c-primary);
    font-family: var(--ff-dream-orphans);
    font-size: var(--fs);
    font-style: normal;
    font-weight: 400;
    font-optical-sizing: auto;
    line-height: 1.1;
    letter-spacing: 0.01em;
    text-transform: uppercase;
    margin: 0;
}

.is-dark :where(h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6) {
    color: var(--c-text-light);
}

:where(h1, h2, h3, h4, h5, .h1, .h2, .h3, .h4, .h5).cursive {
    color: var(--c-secondary);
    font-family: var(--ff-eastern-harrogate);
    letter-spacing: 0;
    text-transform: none;
}

.is-dark :where(h1, h2, h3, h4, h5, .h1, .h2, .h3, .h4, .h5).cursive {
    color: var(--c-tertiary);
}

:where(h1, .h1) {
    --fs: var(--font-80-44);
}

:where(h1, .h1).cursive {
    --fs: var(--font-150-76);
}

:where(h2, .h2) {
    --fs: var(--font-70-36);
}

:where(h2, .h2).cursive {
    --fs: var(--font-110-65);
}

:where(h3, .h3) {
    --fs: var(--font-50-28);
}

:where(h3, .h3).cursive {
    --fs: var(--font-90-50);
}

:where(h4, .h4) {
    --fs: var(--font-36-24);
}

:where(h4, .h4).cursive {
    --fs: var(--font-60-36);
}

:where(h5, .h5) {
    --fs: var(--font-28-19);
}

:where(h5, .h5).cursive {
    --fs: var(--font-48-28);
}

:where(h6, .h6) {
    --fs: var(--font-19-15);
}

#page :where(strong, b) {
    font-weight: 600;
}

.is-dark {
    color: var(--c-text-light);
}

/* Layout */

.wrap {
    --size: var(--page-size);
    --pad: var(--page-padding);
    --offset: max(var(--pad), calc(var(--document-width) - var(--size)) / 2);
    width: calc(100% - 2 * var(--pad, 0px));
	max-width: var(--size, 100%);
	padding-inline: var(--pad, 0px);
    margin: 0 auto;
    box-sizing: content-box;
}

.wrap.narrow {
    --size: var(--page-size-narrow);
    --pad: var(--page-padding-narrow);
}

.wrap.wide {
    --size: var(--page-size-wide);
    --pad: var(--page-padding-wide);
}

.wrap .wrap {
    margin: 0 !important;
    padding: 0 !important;
    width: unset !important;
    max-width: unset !important;
    box-sizing: border-box;
}

.site-inner {
    min-height: 100vh;
    min-height: 100svh;
    min-height: 100dvh;
    display: flex;
    flex-direction: column;
    overflow-y: clip;
    isolation: isolate;
}

.site-content {
    flex-grow: 1;
	background-color: var(--c-bg-light);
}

/* Buttons */

.btn {
    position: relative;
    display: inline-block;
    font-size: var(--font-21-17);
    line-height: 1.2;
    font-weight: 500;
    font-style: normal;
    letter-spacing: 0em;
    text-align: center;
    text-decoration: none;
    color: var(--c-primary);
    background: none;
    border: none;
    cursor: pointer;
    text-wrap: nowrap;
    isolation: isolate;
    user-select: none;
}

.btn:where(.primary) {
    padding: 1.375rem 1.875rem;
    border-radius: var(--radius-110);
}

:is(.is-dark .btn, .btn.is-dark):where(.primary) {
    color: var(--c-text-light);
}

.btn:where(.primary)::before {
    content: '';
    position: absolute;
    inset: 0;
    background-color: transparent;
    border-radius: var(--radius-110);
    border: 1px solid var(--c-secondary);
    z-index: -1;
}

.btn:where(.secondary) {
    padding-bottom: 0.625rem;
}

:is(.is-dark .btn, .btn.is-dark):where(.secondary) {
    color: var(--c-text-light);
}

.btn:where(.secondary)::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 1px;
    background-color: var(--c-secondary);
    z-index: -1;
}

.btn:where(.tertiary) {
    color: var(--c-text-light);
    padding: 1.375rem 1.875rem;
    border-radius: var(--radius-110);
}

.btn:where(.tertiary)::before {
    content: '';
    position: absolute;
    inset: 0;
    background-color: var(--c-primary);
    border-radius: var(--radius-110);
    border: 1px solid var(--c-primary);
    z-index: -1;
}

.btn[disabled] {
    opacity: .4;
    pointer-events: none;
}

.btn:where(.w-icon) {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.625rem;
    padding-block: 1.25rem;
}

@media screen and (hover: hover) {
    .btn:where(.primary, .tertiary) {
        transition: color 150ms ease-in-out;
    }

    .btn:where(.primary, .tertiary)::before {
        transition: 150ms ease-in-out;
        transition-property: transform, background-color, border-color;
    }

    .btn:where(.primary, .tertiary):is(:hover, :focus, :focus-within) {
        color: var(--c-bg-light);
    }

    .btn:where(.primary, .tertiary):is(:hover, :focus, :focus-within)::before {
        /* transform: scale(1.2); */
        background-color: var(--c-primary);
        border-color: var(--c-primary);
    }

    .btn:where(.secondary)::before {
        transition: inset 150ms ease-in-out;
    }

    .btn:where(.secondary):is(:hover, :focus, :focus-within)::before {
        left: 0.9375rem;
        right: 0.9375rem;
    }
}

/* Polaroid Image */

.polaroid {
    width: 100%;
    background-color: white;
    padding: 1.5rem;
    aspect-ratio: 0.82;
    border-radius: 3px;
    box-shadow:
        0px 0px 50px 0px rgb(from var(--c-primary) r g b / .1 ) inset,
        0px 4px 10px 0px rgb(from var(--c-primary) r g b / .2 );
}

.polaroid__image {
    width: 100%;
    height: auto;
    aspect-ratio: 1;
    object-fit: cover;
}

.polaroid__label {
    text-align: center;
    margin-top: 2rem;
    color: var(--c-primary) !important;
}

/* Animated Waves */

.animated-waves {
    width: 100%;
    overflow: hidden;
}

.animated-waves svg {
    width: 200%;
    max-width: unset;
    transform: translateX(-50%);
    animation: 5s waves linear infinite;
}

.animated-waves svg.mobile {
    display: none;
}

@keyframes waves {
    0% { transform: translateX(0); }
    100% { transform: translateX(-50%); }
}

/* CookieYes Banner */

.cky-consent-container {
    inset: unset !important;
    left: 50% !important;
    bottom: 1.875rem !important;
    width: min(27.25rem, calc(100% - 3.75rem)) !important;
    transform: translateX(-50%);
    height: auto !important;
    border-radius: 0 !important;
    font-family: var(--ff-dream-orphans);
    font-size: var(--font-16-12);
    line-height: 1.2;
    font-optical-sizing: auto;
    font-weight: 400;
    font-style: normal;
    letter-spacing: -0.01em;
}

.cky-consent-container .cky-consent-bar {
    box-shadow: 0px 4px 40px 0px #00000026 !important;
    padding: 1.875rem !important;
    border: 0 !important;
    border-radius: 0 !important;
    background-color: var(--c-bg-dark) !important;
}

.cky-notice .cky-title,
.cky-preference-header .cky-preference-title {
    font-family: var(--ff-dream-orphans);
    font-size: var(--font-19-15) !important;
    font-weight: 400 !important;
    font-style: normal;
    line-height: 1;
    letter-spacing: 0.01em;
    color: var(--c-text-light) !important;
}

.cky-notice .cky-title {
    margin: 0 0 1.25rem 0 !important;
}

.cky-notice-des {
    text-wrap: balance;
    color: var(--c-text-light) !important;
}

.cky-notice-des a {
    text-decoration: underline;
    color: inherit;
    text-underline-offset: 2px;
}

.cky-notice-des *,
.cky-preference-content-wrapper *,
.cky-dma-content-wrapper *,
.cky-accordion-header-des *,
.cky-gpc-wrapper .cky-gpc-desc * {
    font-size: var(--font-16-12) !important;
}

.cky-notice-btn-wrapper {
    margin-top: 0 !important;
    gap: 0.75rem !important;
}

.cky-notice .cky-title, .cky-notice-des, .cky-notice-btn-wrapper {
    padding: 0 !important;
}

.cky-btn {
    position: relative;
    display: inline-block;
    font-size: 1.125rem !important;
    line-height: 1.2;
    font-weight: 500 !important;
    font-style: normal;
    letter-spacing: 0em;
    text-align: center !important;
    text-decoration: none;
    color: var(--c-text-light) !important;
    background: none !important;
    border: none !important;
    cursor: pointer;
    text-wrap: nowrap;
    isolation: isolate;
    user-select: none;
    margin: 0;
    padding: 1rem 1.5rem !important;
    border-radius: var(--radius-110);
}

.cky-btn::before {
    content: '';
    position: absolute;
    inset: 0;
    background-color: transparent;
    border-radius: var(--radius-110);
    border: 1px solid var(--c-secondary);
    z-index: -1;
}

.cky-btn-accept {
    color: var(--c-primary) !important;
    background-color: var(--c-bg-light) !important;
}

@media screen and (hover: hover) {
    .cky-btn {
        transition: color 150ms ease-in-out;
    }

    .cky-btn::before {
        transition: 150ms ease-in-out;
        transition-property: transform, background-color, border-color;
    }

    .cky-btn:is(:hover, :focus, :focus-within) {
        color: var(--c-bg-light) !important;
    }

    .cky-btn:is(:hover, :focus, :focus-within)::before {
        transform: scale(1.2);
        background-color: var(--c-primary);
        border-color: var(--c-primary);
    }
}

.cky-accordion-header-des {
    color: var(--c-text-light) !important;
}

/* CookieAdmin */

#page .cookieadmin_box {
    inset: unset;
    bottom: 1.875rem;
    left: 50%;
    transform: translateX(-50%);
    width: min(27.25rem, calc(100% - 3.75rem));
}

#page .cookieadmin_consent_inside {
    background-color: var(--c-bg-dark) !important;
    border: 0 !important;
    box-shadow: 0px 4px 40px 0px #00000026;
    padding: 1.875rem;
    border-radius: 0;
}

#page #cookieadmin_notice_title {
    color: var(--c-text-light) !important;
    font-family: var(--ff-dream-orphans);
    font-size: var(--font-19-15);
    font-style: normal;
    font-weight: 400;
    font-optical-sizing: auto;
    line-height: 1.1;
    letter-spacing: 0.01em;
    text-transform: uppercase;
    margin-bottom: 1.25rem;
    padding: 0;
}

#page .cookieadmin_notice_con {
    padding: 0;
}

#page #cookieadmin_notice {
    font-family: var(--ff-afacad-flux);
    font-size: var(--font-16-12);
    font-style: normal;
    font-weight: 400;
    font-optical-sizing: auto;
    line-height: 1.2;
    letter-spacing: -0.01em;
    margin-block: 0 1.875rem;
    color: var(--c-text-light) !important;
}

#page .cookieadmin_consent_btns {
    flex-wrap: nowrap;
    gap: 0.75rem;
}

#page .cookieadmin_btn {
    position: relative;
    display: inline-block;
    font-size: 1.125rem;
    line-height: 1.2;
    font-weight: 500;
    font-style: normal;
    letter-spacing: 0em;
    text-align: center;
    text-decoration: none;
    color: var(--c-text-light) !important;
    background: none !important;
    border: none;
    cursor: pointer;
    text-wrap: nowrap;
    isolation: isolate;
    user-select: none;
    margin: 0;
    padding: 1rem 1.5rem;
    border-radius: var(--radius-110);
}

#page .cookieadmin_btn::before {
    content: '';
    position: absolute;
    inset: 0;
    background-color: transparent;
    border-radius: var(--radius-110);
    border: 1px solid var(--c-secondary);
    z-index: -1;
}

#page .cookieadmin_accept_btn {
    color: var(--c-primary) !important;
    background-color: var(--c-bg-light) !important;
}

@media screen and (hover: hover) {
    #page .cookieadmin_btn {
        transition: color 150ms ease-in-out;
    }

    #page .cookieadmin_btn::before {
        transition: 150ms ease-in-out;
        transition-property: transform, background-color, border-color;
    }

    #page .cookieadmin_btn:is(:hover, :focus, :focus-within) {
        color: var(--c-bg-light) !important;
    }

    #page .cookieadmin_btn:is(:hover, :focus, :focus-within)::before {
        /* transform: scale(1.2); */
        background-color: var(--c-primary);
        border-color: var(--c-primary);
    }
}

#page .cookieadmin-poweredby {
    display: none;
}

#page .cookieadmin_cookie_modal {
    background-color: var(--c-bg-dark) !important;
    border: 0 !important;
    box-shadow: 0px 4px 40px 0px #00000026;
    border-radius: 0;
}

#page .cookieadmin_mod_head {
    padding: 1.875rem;
    border-bottom: 1px solid var(--c-text-light);
}

#page .cookieadmin_preference_title {
    color: var(--c-text-light) !important;
    margin: 0;
}

#page .cookieadmin_close_pref {
    color: var(--c-text-light);
}

#page .cookieadmin_details_wrapper {
    padding: 1.875rem;
    color: var(--c-text-light) !important;
}

#page .cookieadmin_preference_details {
    padding: 0;
    margin-bottom: 1.25rem;
}

#page .cookieadmin_preference {
    font-size: var(--font-16-15);
    height: 7.1em;
    height: 5.7lh;
    padding-bottom: 4px;
}

#page .cookieadmin_showmore {
    color: var(--c-text-light);
    text-decoration: underline;
    font-size: var(--font-16-15);
}

#page .cookieadmin_types {
    padding: 1.875rem;
    border-top: 1px solid var(--c-text-light);
}

#page .cookieadmin_act {
    color: var(--c-tertiary);
}

#page .cookieadmin_desc {
    margin-top: 1.875rem;
    font-size: var(--font-16-15);
    padding: 0 4rem 0 1.5rem;
}

#page .cookieadmin-nece-cookies {
    margin-top: 1.5rem;
}

#page .cookieadmin_slider {
    border: 1px solid var(--c-text-light);
    box-sizing: content-box;
}

#page .cookieadmin_modal_footer {
    padding: 1.875rem;
    display: flex;
    gap: 0.75rem 1.875rem;
    border-top: 1px solid var(--c-text-light);
}

@media screen and (width <= 620px) {
    #page .cookieadmin_box {
        left: 1.25rem;
        right: 1.25rem;
        bottom: 1.25rem;
        transform: none;
        width: auto;
    }
    #page .cookieadmin_consent_btns {
        flex-wrap: wrap;
    }
    #page .cookieadmin_btn {
        width: auto;
    }
    #page .cookieadmin_modal_footer {
        gap: 0.75rem;
    }
    #page .cookieadmin_types {
        padding-inline: 0;
    }
}

@media screen and (width <= 420px) {
    #page .cookieadmin_cookie_modal {
        inset: 0;
        max-width: 100vw;
        max-height: 100vh;
    }
}

/* Modal */

.modal {
    position: fixed;
    inset: 0;
    background-color: rgb(from var(--c-primary) r g b / 0.75);
    z-index: 99;
}

.modal:not(.active) {
    display: none;
}

.modal .modal-inner {
    --padding: 5rem;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: var(--c-bg-light);
    color: var(--c-primary);
    width: min(var(--modal-size), calc(100vw - var(--padding)));
    max-width: calc(100vw - var(--padding));
    height: calc(100vh - var(--padding));
    height: calc(100svh - var(--padding));
    height: calc(100dvh - var(--padding));
    max-height: calc(100vh - var(--padding));
    max-height: calc(100svh - var(--padding));
    max-height: calc(100dvh - var(--padding));
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.modal.gallery-lightbox .modal-inner {
    width: 100%;
    max-width: 100%;
    height: 100%;
    max-height: 100%;
    background-color: var(--c-bg-dark);
    color: var(--c-text-light);
    padding: 1.875rem;
    isolation: isolate;
}

.modal.gallery-lightbox .modal-close {
    position: absolute;
    top: 1.875rem;
    right: 1.875rem;
    border: 0;
    background: none;
    padding: 0;
    width: 1.4375rem;
    height: 1.4375rem;
    z-index: 1;
}

.modal.gallery-lightbox .modal-close::before,
.modal.gallery-lightbox .modal-close::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 140%;
    height: 1px;
    background-color: currentColor;
}

.modal.gallery-lightbox .modal-close::before {
    transform: translate(-50%, -50%) rotate(-45deg);
}

.modal.gallery-lightbox .modal-close::after {
    transform: translate(-50%, -50%) rotate(45deg);
}

.modal.gallery-lightbox .splide {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    height: 100%;
}

.modal.gallery-lightbox .splide__title {
    color: var(--c-text-light);
}

.modal.gallery-lightbox .splide__track {
    width: 70%;
    box-shadow: 0px 4px 40px 0px #00000026;
}

.modal.gallery-lightbox .splide__slide {
    aspect-ratio: 1.778;
}

.modal.gallery-lightbox .splide__slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.modal.gallery-lightbox .splide__progress {
    font-size: var(--font-19);
}

.modal.gallery-lightbox .splide__arrows {
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    transform: translateY(-50%);
    pointer-events: none;
    display: flex;
    justify-content: space-between;
}

.modal.gallery-lightbox .splide__arrow {
    pointer-events: all;
    width: 3.5625rem;
    height: 3.5625rem;
    aspect-ratio: 1;
    border: 1px solid currentColor;
    border-radius: 50%;
    background: none;
    display: grid;
    place-items: center;
    padding: 0;
}

.modal.gallery-lightbox .splide__arrow svg {
    width: 20%;
    height: 20%;
}

/* Horizontal Scroll Element */

.hscroll-container {
    --color: white;
    position: relative;
    width: calc(100% + 2 * var(--pad, var(--page-padding, 0px)));
    margin-left: calc(-1 * var(--pad, var(--page-padding, 0px)));
}

.hscroll-inner {
    padding-inline: var(--pad, var(--page-padding, 0px));
    padding-bottom: 0.9375rem;
    overflow-x: auto;
}

.hscroll-container::before,
.hscroll-container::after {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    bottom: 0;
    width: 4rem;
    transition: opacity 200ms ease;
    z-index: 2;
    pointer-events: none;
}

.hscroll-container::before {
    left: 0;
    background-image: linear-gradient(90deg, var(--color), transparent);
}

.hscroll-container.no-left-shadow::before {
    opacity: 0;
}

.hscroll-container::after {
    right: 0;
    background-image: linear-gradient(-90deg, var(--color), transparent);
}

.hscroll-container.no-right-shadow::after {
    opacity: 0;
}

/* Header */

.site-header {
    /* position: fixed; */
    /* top: 0; */
    /* left: 0; */
    /* width: 100%; */
    color: var(--c-text-light);
    background-color: transparent;
    z-index: 10;
}

.site-header .site-branding {
    position: absolute;
    top: 1.875rem;
    left: 50%;
    transform: translateX(-50%);
}

.site-header .custom-logo,
.site-navigation .custom-logo {
    display: block;
    width: auto;
    height: auto;
    max-height: 4.5rem;
    color: var(--c-primary);
}

.site-navigation .custom-logo {
    color: var(--c-bg-light);
}

.site-header a {
    color: currentColor;
}

/* .site-header .site-header-main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2.5rem;
    position: relative;
    padding-block: 1.875rem;
} */

.site-header .menu-btn, .site-navigation .menu-btn {
    position: relative;
    color: var(--c-text-light);
    display: inline-flex;
    align-items: center;
    gap: 0.625rem;
    padding: 1rem 1.625rem;
    border: 0;
    border-radius: var(--radius-100);
    background: none;
    isolation: isolate;
    text-decoration: none;
    text-transform: uppercase;
    cursor: pointer;
    font-family: var(--ff-dream-orphans);
    font-size: var(--font-24-14);
    line-height: 1.1;
    letter-spacing: 0.01em;
    backdrop-filter: blur(15px);
}

.site-header .menu-btn::before, .site-navigation .menu-btn::before {
    content: '';
    position: absolute;
    inset: 0;
    display: block;
    border-radius: var(--radius-100);
    background-color: var(--c-bg-dark75);
    opacity: .75;
    z-index: -1;
    mix-blend-mode: multiply;
    transition: 150ms ease-in-out;
    transition-property: transform, background-color, opacity;
}

.site-header .menu-btn:is(:hover, :focus-visible)::before, .site-navigation .menu-btn:is(:hover, :focus-visible)::before {
    background-color: var(--c-primary);
    transform: scale(1.2);
    opacity: 1;
}


.site-navigation .close-btn {
    color: var(--c-text-light);
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 1.25rem;
    padding: 1rem 1.625rem;
    border: 0;
    border-radius: var(--radius-100);
    background: none;
    isolation: isolate;
    text-decoration: none;
    text-transform: uppercase;
    cursor: pointer;
    font-family: var(--ff-dream-orphans);
    font-size: var(--font-24-14);
    line-height: 1.1;
    letter-spacing: 0.01em;
    backdrop-filter: blur(15px);
}

.site-navigation .close-btn::before {
    content: '';
    position: absolute;
    inset: 0;
    display: block;
    border-radius: var(--radius-100);
    background-color: var(--c-bg-dark75);
    opacity: .75;
    z-index: -1;
    mix-blend-mode: multiply;
    transition: 150ms ease-in-out;
    transition-property: transform, background-color, opacity;
}

.site-navigation .close-btn:is(:hover, :focus-visible)::before {
    background-color: var(--c-bg-dark75);
    transform: scale(1.2);
    opacity: 1;
}

.site-header .menu-btn svg, .site-navigation .close-btn svg, .site-navigation .menu-btn svg {
    height: 1.125rem;
    width: auto;
    color: var(--c-tertiary);
}

.site-navigation .menu-btn--top-right {
    position: fixed;
    top: 1.875rem;
    right: 1.875rem;
}

/* Hamburger menu - Main navigation */
.site-navigation {
    pointer-events: none;
    /* width: 100%; */
    /* height: 100%; */
    position: relative;
    z-index: 100;
    isolation: isolate;
}
.site-navigation .mynavigation {
    /* display: flex;
    justify-content: space-between;
    width: 100%;
    height: 100%;
    position: fixed; */
    /* top: -100%; */
}
.site-navigation .nav {
    /* flex-basis: 35%; */
    background-color: var(--c-bg-dark);
    position: fixed;
    left: 0;
    top: 0;
    height: 100vh;
    height: 100svh;
    height: 100dvh;
    width: 40vw;
    width: 40svw;
    transform: translateX(-100%);
    transition: transform 1s cubic-bezier(0.7, 0, 0.14, 1);
}
.site-navigation .nav::before,
.site-navigation .nav::after {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    background-color: var(--c-bg-dark);
    width: 0.5rem;
    transition: transform 1s cubic-bezier(0.6, 0, 0.10, 1);
}
.site-navigation .nav-inner {
    /* flex-basis: 35%; */
    transform: translateX(100%);
    opacity: 0;
    transition:
        opacity 1s cubic-bezier(0.7, 0, 0.14, 1),
        transform 1s cubic-bezier(0.7, 0, 0.14, 1);
    padding: 1.875rem;
}
.site-navigation .hover {
    /* flex-basis: 65%; */
    background: var(--c-primary75);
    position: fixed;
    inset: 0;
    z-index: -1;
    opacity: 0;
    transition: opacity 300ms ease-out;
}
.site-navigation .actions-container {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}
.site-navigation .hamburger-container {
    flex-direction: column;
    margin-top: 3.75rem;
    margin-left: 1.875rem;
}

.site-navigation .hamburger-container ul li {
    list-style: none;
    display: inline-flex;
    flex-direction: column;
    align-items: flex-start;
    /* padding-bottom: 1rem;
    padding-left: 2rem;
    background: url(img/plus_nav.svg) 0px 13px no-repeat; */
}

.site-navigation .roller {
    overflow: hidden;
    padding-block: 0.25em;
    margin-block: -0.25em;
}

.site-navigation .roller__text {
    display: inline-block;
    transform: translateY(calc(105% + 0.25em));
    transition: transform 300ms ease-out;
}

#hamburger-overlay:not(.active) * {
    pointer-events: none !important;
    user-select: none !important;
}

#hamburger-overlay.active {
    pointer-events: auto;
}

#hamburger-overlay.active .nav {
    transform: translateX(0);
}

#hamburger-overlay.active .nav-inner {
    opacity: 1;
    transform: translateX(0);
}

#hamburger-overlay.active .hover {
    opacity: 1;
}

#hamburger-overlay.active .roller__text {
    transform: translateY(0);
    transition-delay: 500ms;
}

/* Menu plus sign */

.site-navigation .hamburger-container .main-menu .menu-item-has-children > a {
    position: relative;
    display: inline-block;
    color: var(--c-text-light);
    cursor: pointer;
}

.site-navigation .hamburger-container .main-menu .menu-item-has-children > a::before,
.site-navigation .hamburger-container .main-menu .menu-item-has-children > a::after {
  content: "";
  position: absolute;
  --sizeplus: 13px;
  width: var(--sizeplus);
  height: var(--sizeplus);
  left: 6px;
  top: 50%;
  background: currentColor;
  transition: transform 0.3s ease;
}

.site-navigation .hamburger-container .main-menu .menu-item-has-children > a::before {
  width: 13px;
  height: 1px;
  transform: translate(-50%, -50%);
}

.site-navigation .hamburger-container .main-menu .menu-item-has-children > a::after {
  width: 1px;
  height: 13px;
  transform: translate(-50%, -50%);
}

.site-navigation .hamburger-container .main-menu .menu-item-has-children > a:hover::before,
.site-navigation .hamburger-container .main-menu .menu-item-has-children > a:hover::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

.site-navigation .hamburger-container .main-menu .menu-item-has-children.active > a:hover::before {
  transform: translate(-50%, -50%) rotate(0deg);
}

.site-navigation .hamburger-container .main-menu .menu-item-has-children.active > a::after {
  transform: translate(-50%, -50%) rotate(90deg);
}

/* Menu plus sign */

.site-navigation .hamburger-container .main-menu {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1.875rem;
    margin: 0;
    padding: 0;
}

.site-navigation .hamburger-container .main-menu li.active a {
    opacity: 1;
}

.site-navigation .hamburger-container .main-menu .menu-item a {
    padding-left: 2rem;
}

.site-navigation .hamburger-container .main-menu .menu-item a:is(:hover, :focus) {
    color: var(--c-tertiary);
}

.site-navigation .hamburger-container .main-menu .menu-item .sub-menu li {
    padding-left: 0;
}

.site-navigation .hamburger-container .main-menu .menu-item.active a {
    color: var(--c-tertiary);
}

.site-navigation .hamburger-container .main-menu .menu-item .sub-menu {
    display: flex;
    flex-direction: column;
    gap: 1.125rem;
    margin: 0;
    padding: 0;
}

.site-navigation .hamburger-container .main-menu .menu-item .sub-menu a {
    font-family: var(--ff-afacad-flux);
    font-size: var(--font-21-17);
    color: var(--c-text-light);
    text-transform: none;
}

.site-navigation .hamburger-container ul li a {
    text-decoration: none;
    color: var(--c-text-light);
    text-rendering: geometricPrecision;
    text-transform: uppercase;
    cursor: pointer;
    font-family: var(--ff-dream-orphans);
    font-size: var(--font-36-24);
    line-height: 1.1;
    letter-spacing: 0.01em;
}


.site-navigation .hamburger-container ul li a::before {
    position: absolute;
    top: 50%;
    right: 1rem;
}

#hamburger-menu-state {
    display: none;
}

.site-header .menu-btn--top-left {
    position: fixed;
    top: 1.875rem;
    /* left: var(--offset, 2rem); */
    left: 1.875rem;
}

.site-header .menu-btn--top-right {
    position: fixed;
    top: 1.875rem;
    /* right: var(--offset, 2rem); */
    right: 1.875rem;
}

/* Menu accordion anim */

.site-navigation .hamburger-container .main-menu .menu-item .sub-menu {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transform: translateY(1.875rem);
    transition: 300ms ease-out;
    transition-property: max-height, opacity, transform, margin;
    will-change: max-height, opacity, transform, margin;

    font-family: var(--ff-afacad-flux);
    font-size: var(--font-21-17);
    text-transform: none;
    backface-visibility: hidden;
    transform-style: preserve-3d;
	padding-bottom: 0.25em;
	margin-bottom: -0.25em;
}

.site-navigation .hamburger-container .main-menu .menu-item.active .sub-menu {
    margin-top: 1.875rem;
    max-height: var(--max-height, 500px);
    opacity: 1;
    transform: translateY(0);
}

.site-navigation .hamburger-container .main-menu .menu-item .sub-menu a {
    font-family: inherit;
    font-size: inherit;
    color: var(--c-text-light);
    transform: translateZ(0);
    will-change: opacity, transform;
}

.site-navigation .hamburger-container .main-menu .menu-item:not(.active) .sub-menu {
    transition-delay: 0.05s;
}

/* Disable other lvl 1 links */
.site-navigation .hamburger-container .main-menu .menu-item {
    pointer-events: auto;
    transition: pointer-events 0.3s ease;
}

.site-navigation .hamburger-container .main-menu:has(> .menu-item.active) > .menu-item:not(.active) {
    pointer-events: none;
    opacity: 0.3;
    transition: opacity 0.3s ease;
}

.site-navigation .hamburger-container .main-menu:has(> .menu-item.active) > .menu-item:not(.active) a {
    cursor: not-allowed;
}

.site-navigation .hamburger-container .main-menu:not(:has(> .menu-item.active)) > .menu-item {
    opacity: 1;
}

/* Forms */

form {
    color: var(--c-primary);
}

.is-dark form {
    color: var(--c-text-light);
}

form :is(input:not([type=radio],[type=checkbox],[type=submit]), textarea, select) {
    width: 100%;
    display: block;
    font-size: var(--font-18-17);
    font-weight: 400;
    line-height: 1.2;
    letter-spacing: 0em;
    background: none;
    padding-bottom: 1.25rem;
    border: 0;
    border-bottom: 1px solid var(--c-secondary);
    caret-color: var(--c-secondary);
    text-box: unset;
    outline: none;
}

form textarea {
    --lines: 4;
    --min-lines: 1;
    --max-lines: 8;
    resize: vertical;
    height: calc(var(--lines) * 1.2em + 1.25rem);
    height: calc(var(--lines) * 1lh + 1.25rem);
    min-height: calc(var(--min-lines) * 1.2em + 1.25rem) !important;
    min-height: calc(var(--min-lines) * 1lh + 1.25rem) !important;
    max-height: calc(var(--max-lines) * 1.2em + 1.25rem) !important;
    max-height: calc(var(--max-lines) * 1lh + 1.25rem) !important;
}

form :is(input:not([type=radio],[type=checkbox],[type=submit]), textarea, select)::placeholder {
    font-weight: 400;
    color: rgb(from currentColor r g b / .3);
    text-box: unset;
}

/* WPCF7 Form */

.wpcf7 .gbwp-form-wrapper {
    display: flex;
    flex-direction: column;
    gap: 3.75rem;
}

.wpcf7 .gbwp-field-wrap {
    display: flex;
    flex-direction: column;
    gap: 1.5625rem;
}

.wpcf7 .gbwp-field-label {
    display: block;
    font-family: var(--ff-dream-orphans);
    font-size: var(--font-17-15);
    line-height: 1.1;
    letter-spacing: 0.01em;
    text-transform: uppercase;
}

.wpcf7-form .wpcf7-spinner {
    display: none;
}

.wpcf7-form-control-wrap {
    text-box: unset;
}

.wpcf7-form :is(input:not([type=radio],[type=checkbox],[type=submit]), textarea, select).wpcf7-not-valid {
    color: var(--c-error);
    outline-color: var(--c-error);
}

.wpcf7-form .wpcf7-not-valid-tip {
    font-size: var(--font-13);
    color: var(--c-error);
    margin-top: 1em;
}

.wpcf7-form :where(.wpcf7-radio, .wpcf7-checkbox, .wpcf7-acceptance) .wpcf7-list-item {
    margin: 0;
    padding-block: 0.6rem;
}

.wpcf7-form :where(.wpcf7-radio, .wpcf7-checkbox) .wpcf7-list-item-label {
    font-size: var(--font-18-17);
}

.wpcf7-form :where(.wpcf7-radio, .wpcf7-checkbox, .wpcf7-acceptance) input {
    position: absolute;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    width: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
}

.wpcf7-form :where(.wpcf7-radio, .wpcf7-checkbox, .wpcf7-acceptance) .wpcf7-list-item-label::before {
    content: '';
    display: inline-block;
    width: 1.25rem;
    height: 1.25rem;
    outline: 1px solid var(--c-secondary);
    outline-offset: 0.375rem;
    margin: 0.375rem;
    margin-right: 0.875rem;
    vertical-align: middle;
    transform: translateY(-2px);
}

.wpcf7-form .wpcf7-radio .wpcf7-list-item-label::before {
    border-radius: 50%;
}

.wpcf7-form :where(.wpcf7-radio, .wpcf7-checkbox, .wpcf7-acceptance) input:not(:checked):is(:hover, :focus-visible) + .wpcf7-list-item-label::before {
    background-color: rgb(from var(--c-secondary) r g b / .3);
}

.is-dark .wpcf7-form :where(.wpcf7-radio, .wpcf7-checkbox, .wpcf7-acceptance) input:not(:checked):is(:hover, :focus-visible) + .wpcf7-list-item-label::before {
    background-color: rgb(from var(--c-text-light) r g b / .3);
}

.wpcf7-form :where(.wpcf7-radio, .wpcf7-checkbox, .wpcf7-acceptance) input:checked + .wpcf7-list-item-label::before {
    background-color: var(--c-secondary);
}

.is-dark .wpcf7-form :where(.wpcf7-radio, .wpcf7-checkbox, .wpcf7-acceptance) input:checked + .wpcf7-list-item-label::before {
    background-color: var(--c-text-light);
}

.wpcf7-form .wpcf7-acceptance {
    font-size: var(--font-18-15);
    letter-spacing: 0em;
}

.wpcf7-form .wpcf7-acceptance a {
    color: currentColor;
    text-decoration: underline;
}

.is-dark .wpcf7-form .wpcf7-acceptance a {
    color: var(--c-tertiary);
}

.wpcf7-form .wpcf7-acceptance .wpcf7-list-item {
    margin-bottom: 1.25rem;
}

.wpcf7-form .wpcf7-radio {
    display: flex;
    flex-wrap: wrap;
    gap: 2.5rem;
}

.wpcf7-form :is(input[type=submit], button[type=submit]) {
    margin-top: 1.875rem;
}

.wpcf7-form .wpcf7-response-output {
    border: none !important;
    margin: 3em 0 0 !important;
    padding: 0 !important;
    font-size: var(--font-13);
}

/* Gravity Forms */

.gform_wrapper form {
    --gf-error-color: var(--c-error);
    --gf-form-footer-margin-y-start: 3.125rem;
}

.gform_fields {
    gap: 3.75rem 1.5rem !important;
}

.gfield_label {
    display: block !important;
    font-family: var(--ff-dream-orphans);
    font-size: var(--font-17-15);
    text-transform: uppercase;
}

.ginput_container:not(:first-child) {
    margin-top: 1.5625rem;
}

.gfield_radio {
    display: flex;
    flex-wrap: wrap;
    gap: 2.5rem;
}

:is(.gchoice, .ginput_container_consent) {
    display: flex;
    align-items: center;
    margin: 0;
    padding-block: 0.6rem;
}

:is(.gchoice, .ginput_container_consent) input {
    position: absolute;
    overflow: hidden;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    width: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
}

:is(.gchoice, .ginput_container_consent) .gform-field-label {
    font-size: var(--font-18-17);
    line-height: 1.1;
}

:is(.ginput_container_consent) .gfield_consent_label {
    font-size: var(--font-18-15);
}

:is(.gchoice, .ginput_container_consent) .gform-field-label a {
    color: var(--c-bg-dark);
    text-decoration: underline;
}

.is-dark :is(.gchoice, .ginput_container_consent) .gform-field-label a {
    color: var(--c-tertiary);
}

:is(.gchoice, .ginput_container_consent) .gform-field-label::before {
    content: '';
    display: inline-block;
    width: 1.25rem;
    height: 1.25rem;
    outline: 1px solid var(--c-secondary);
    outline-offset: 0.375rem;
    margin: 0.375rem;
    margin-right: 0.875rem;
    vertical-align: middle;
    transform: translateY(-2px);
    cursor: pointer;
    text-align: center;
}

.ginput_container_consent .gform-field-label::before {
    margin-right: 1.3125rem;
}

.gfield_radio .gchoice .gform-field-label::before {
    border-radius: 50%;
}

:is(.gchoice, .ginput_container_consent) input[type=radio]:not(:checked):is(:hover, :focus-visible) + .gform-field-label::before {
    background-color: rgb(from var(--c-secondary) r g b / .3);
}

.is-dark :is(.gchoice, .ginput_container_consent) input[type=radio]:not(:checked):is(:hover, :focus-visible) + .gform-field-label::before {
    background-color: rgb(from var(--c-text-light) r g b / .3);
}

:is(.gchoice, .ginput_container_consent) input[type=radio]:checked + .gform-field-label::before {
    background-color: var(--c-secondary);
}

.is-dark :is(.gchoice, .ginput_container_consent) input[type=radio]:checked + .gform-field-label::before {
    background-color: var(--c-text-light);
}

:is(.gchoice, .ginput_container_consent) input[type=checkbox]:checked + .gform-field-label::before {
    content: var(--i-checkmark--light);
}

.is-dark :is(.gchoice, .ginput_container_consent) input[type=checkbox]:checked + .gform-field-label::before {
    content: var(--i-checkmark--dark);
}

.gform_fields #field_submit {
    justify-content: flex-end;
}

.gform_validation_errors {
    margin-bottom: 1.25rem;
    color: var(--gf-error-color);
    font-size: var(--font-13);
}

.gform_submission_error {
    font-size: var(--font-17-15);
}

.gform_validation_errors ol {
    list-style: none;
    padding: 0;
    margin: 0;
}

.gform_validation_errors ol li {
    margin-top: 0.75rem;
}

.gform_validation_error_link {
    color: currentColor;
    text-decoration: none;
}

.gfield .gfield_validation_message {
    font-size: var(--font-13);
    color: var(--gf-error-color);
    margin-top: 0.5rem;
}

.gform-footer:not(:has(input[type=submit])),
.gform_required_legend,
.gfield_required {
    display: none !important;
}

.gfield_required_asterisk {
    margin-left: 0.25rem;
}

.gform_button[type=submit] {
    position: relative;
    display: inline-block;
    font-size: var(--font-21-17);
    line-height: 1.2;
    font-weight: 500;
    font-style: normal;
    letter-spacing: 0em;
    text-align: center;
    text-decoration: none;
    color: var(--c-primary);
    background: none;
    border: 1px solid var(--c-secondary);
    border-radius: var(--radius-110);
    cursor: pointer;
    text-wrap: nowrap;
    isolation: isolate;
    user-select: none;
    padding: 1.375rem 1.875rem;
    border-radius: var(--radius-110);
}

.is-dark .gform_button[type=submit] {
    color: var(--c-text-light);
}

.gform_button[type=submit][disabled] {
    opacity: .4;
    pointer-events: none;
}

.gform-theme--foundation.ui-datepicker select.ui-datepicker-month, .gform-theme--foundation.ui-datepicker select.ui-datepicker-year {
    appearance: none;
    margin: 0;
    padding: 0 !important;
    border: none;
    background-image:none !important;

    font-family: var(--ff-afacad-flux) !important;
    font-size: var(--font-24-19) !important;
    font-weight: var(--fw-400) !important;
    color: var(--c-primary) !important;
}

.gform-theme--foundation.ui-datepicker .ui-datepicker-header {
    padding: 0 !important;
}

.gform-theme--foundation.ui-datepicker .ui-datepicker-title {
    line-height: unset !important;
    margin: 0 !important;
    display: flex !important;
    justify-content: center !important;
}

.gform-theme--foundation.ui-datepicker td a, .gform-theme--foundation.ui-datepicker td span {
    font-size: 1rem !important;
    padding: 0.688rem 0.469rem !important;
    height: 32px !important;
    max-height: 32px !important;
    max-width: 32px !important;
    min-height: 32px !important;
    min-width: 32px !important;
    width: 32px !important;
    border-radius: 50% !important;
    margin-inline: auto !important;
    /* margin: 0.625rem 0.625rem !important; */
    font-family: var(--ff-afacad-flux) !important;
}

.gform-theme--foundation.ui-datepicker td {
    padding: 0 !important;
}

.gform-theme--foundation.ui-datepicker table {
    font-size: 1rem !important;
    inline-size: auto !important;
    margin-block-end: 0 !important;
}

.gform-theme--foundation.ui-datepicker {
    padding: 1.25rem !important;
}

.gform-theme--foundation.ui-datepicker .ui-datepicker-next, .gform-theme--foundation.ui-datepicker .ui-datepicker-prev {
    block-size: unset !important;
    inline-size: unset !important;
    inset-block-start: unset !important;

    width: 2rem !important;
    height: 2rem !important;
    aspect-ratio: 1 !important;
    border-radius: 50% !important;
    background: none !important;
    border: 1px solid var(--c-secondary) !important;
    padding: 0 !important;
}

.gform-theme--foundation.ui-datepicker .ui-datepicker-next::before {
    background-image: var(--i-angle-right-primary) !important;
    transform: none !important;
    background-size: auto !important;
    inset-block-start: 24% !important;
    inset-inline-start: 22% !important;
}

.gform-theme--foundation.ui-datepicker .ui-datepicker-prev::before {
    background-image: var(--i-angle-left-primary) !important;
    transform: none !important;
    background-size: auto !important;
    inset-block-start: 24% !important;
    inset-inline-start: 22% !important;
}

.gform-theme--foundation.ui-datepicker th {
    padding-block: 0 !important;
    padding-inline: 0 !important;
    padding: 0.938rem 0 !important;
}

.gform-theme--foundation .ui-datepicker-calendar {
    border-collapse: separate !important;
    border-spacing: 0.625rem !important;
}

.gform-theme--foundation .ui-datepicker-calendar td,
.gform-theme--foundation .ui-datepicker-calendar th {
    margin: 0.625rem !important;
}

.gform-theme--foundation .ui-datepicker-calendar td span,
.gform-theme--foundation .ui-datepicker-calendar th span {
    font-family: var(--ff-afacad-flux) !important;
}

.gform-theme--foundation .ui-datepicker-calendar  tbody td .ui-state-default {
    color: var(--c-primary) !important;
}

.gform-theme--foundation .ui-datepicker-calendar  tbody td .ui-state-highlight {
    outline: 1px solid var(--c-bg-dark);
}

.gform-theme--foundation .ui-datepicker-calendar  tbody .ui-datepicker-unselectable span {
    color: rgb(from var(--c-primary) r g b / 0.3) !important;
}

.gform-theme--foundation .ui-datepicker-calendar thead span {
    color: var(--c-secondary) !important;
    font-weight: var(--fw-400) !important;
}

.gform-theme--foundation.ui-datepicker {
    background-color: var(--c-bg-light) !important;
    margin-top: 1.25rem !important;
    /* box-shadow: 0px 4px 40px 0px #00000026 !important; */
    box-shadow: none !important;
    border: none !important;
}

.gform-theme--foundation.ui-datepicker .ui-datepicker-next-hover {
    inset-inline-end: 2px !important;
}

.gform-theme--foundation.ui-datepicker .ui-datepicker-prev-hover {
    inset-inline-start: 2px !important;
}

.gform-theme--foundation .ui-datepicker-calendar tbody td:not(.ui-datepicker-unselectable):hover .ui-state-default,
.gform-theme--foundation .ui-datepicker-calendar tbody td .ui-state-active {
    border: none !important;
    background-color: var(--c-bg-dark) !important;
    color: var(--c-text-light) !important;
    outline: none;
}

.gform-datepicker:focus-visible {
    outline: none !important;
}

.gform-theme--foundation .gform_fields > .gfield--type-consent:last-child {
    margin-top: -4rem;
}

@media screen and (hover: hover) {
    .gform_button[type=submit] {
        transition: 150ms ease-in-out;
        transition-property: color, background-color, border-color;
    }

    .gform_button[type=submit]:is(:hover, :focus, :focus-within) {
        color: var(--c-bg-light);
        background-color: var(--c-primary);
        border-color: var(--c-primary);
    }
}

.gfield_description {
    font-size: var(--font-13-11);
}

.is-dark .gfield_description {
    color: var(--c-bg-light);
}

.gfield_description:not(:first-child) {
    margin-top: 0.75rem;
}

.gfield_description.instruction {
    display: none;
}

.ginput_container_date {
    position: relative;
}

.ginput_container_date::after {
    content: var(--i-calendar-primary);
    position: absolute;
    top: 0;
    right: 0;
    pointer-events: none;
}

.is-dark .ginput_container_date::after {
    content: var(--i-calendar-tertiary);
}

.ginput_container_date > .ui-datepicker-trigger {
    display: none;
}

.is-dark .ginput_container_date > input,
.is-dark .ginput_container_date > input::placeholder {
    color: var(--c-tertiary);
}

/* Gravity Forms Advanced Select - Plugin */

.gfield_select_tomselect {
    --ts-select-color-input: transparent;
    --ts-select-font-size: var(--font-18-17);
    --ts-select-line-height: 1.2;
    --ts-select-border: 0;
    --ts-select-border-radius: 0px;
    --ts-select-padding-y: 0px;
    --ts-select-padding-x: 0px;
    --ts-select-color-dropdown-item-active: var(--c-bg-light);
    --ts-select-color-dropdown-item-active-text: var(--c-secondary);
}

.gfield_select_tomselect .ts-control {
    position: relative;
    padding-bottom: 1.25rem !important;
    border-bottom: 1px solid var(--c-secondary);
}

.gfield_select_tomselect .ts-control::after {
    content: var(--i-caret-primary);
    position: absolute;
    top: 5px;
    right: 0;
    pointer-events: none;
}

.is-dark .gfield_select_tomselect .ts-control::after {
    content: var(--i-caret-tertiary);
}

.is-dark .gfield_select_tomselect .ts-control input,
.is-dark .gfield_select_tomselect .ts-control input::placeholder {
    color: var(--c-tertiary);
}

.gfield_select_tomselect .ts-control > .item {
    background: var(--c-bg-dark) !important;
    color: var(--c-text-light) !important;
}

.is-dark .gfield_select_tomselect .ts-control > .item {
    background: var(--c-bg-light) !important;
    color: var(--c-primary) !important;
}

.gfield_select_tomselect.plugin-clear_button .clear-button {
    margin-right: 1rem !important;
    color: var(--c-primary) !important;
    top: 5px !important;
    transform: none !important;
}

.is-dark .gfield_select_tomselect.plugin-clear_button .clear-button {
    color: var(--c-tertiary) !important;
}

.gfield_select_tomselect .ts-dropdown {
    background: var(--c-bg-light) !important;
    color: var(--c-primary) !important;
    margin-top: 1.25rem !important;
    padding: 1.25rem;
}

.gfield_select_tomselect .ts-dropdown .option {
    padding: 0.625rem 0;
}

.gfield_select_tomselect .ts-dropdown .option:not(:last-child) {
    margin-bottom: 0.75rem;
}

/* Footer */

.site-footer {
    background-color: var(--c-primary);
    position: sticky;
    bottom: 0;
    z-index: -1;
    max-height: 100vh;
    max-height: 100svh;
    max-height: 100dvh;
    overflow: auto;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.site-footer::-webkit-scrollbar {
    display: none;
}

.site-footer .footer-content {
    padding-block: 7.5rem 5rem;
}

.site-footer .footer-content a:hover,
.site-footer .footer-content a:hover svg {
    color: var(--c-tertiary);
}

.site-footer .footer__text-content--main {
    margin-bottom: 10rem;
}

.site-footer .footer__text-content--main :where(h1, h2, h3, h4, h5, .h1, .h2, .h3, .h4, .h5).cursive {
    margin-left: 4rem;
    margin-top: -0.15em;
}

.site-footer .footer-grid-content {
    display: grid;
    grid-template-columns: auto auto;
    justify-content: space-between;
    gap: 2.5rem;
}

.site-footer .info-wrapper {
    grid-column: 1;
    grid-row: 1;
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
}

.site-footer .footer__text-content--secondary {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2.5rem;
}

.site-footer .footer__text-content--secondary > * {
    margin-block: 0;
}

.site-footer .footer__text-content--secondary a {
    display: block;
    color: currentColor;
    text-decoration: none;
}

.site-footer .footer_social-links {
    display: flex;
    gap: 1.5625rem;
    align-items: center;
    flex-wrap: wrap;
}

.site-footer .footer_social-links a svg {
    color: var(--c-text-light);
    width: auto;
    max-width: 1.25rem;
    height: auto;
    max-height: 1.25rem;
}

.site-footer .legal-wrapper {
    grid-column: 1;
    grid-row: 2;
    margin-top: auto;
    display: flex;
    align-items: flex-end;
    gap: 5rem;
}

.site-footer .legal-menu {
    margin: 0;
    padding: 0;
    list-style-type: none;
}

.site-footer .legal-menu li {
    text-wrap: nowrap;
    text-box: unset;
    line-height: 0.67;
}

.site-footer .legal-menu a {
    color: rgb(from var(--c-text-light) r g b / .7);
    text-decoration: none;
    font-size: var(--font-12-10);
    letter-spacing: 0em;
}

.site-footer .copyright {
    max-width: 16.125rem;
    color: rgb(from var(--c-text-light) r g b / .7);
    font-size: var(--font-12-10);
    line-height: 1.5;
    letter-spacing: 0em;
}

.site-footer .copyright a {
    color: currentColor;
    text-decoration: none;
}

.site-footer .menu-wrapper {
    grid-column: 2;
    grid-row: 1 / span 2;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.5625rem;
}

.site-footer .menu-wrapper .menu-title {
    margin-bottom: 2.375rem;
}

.site-footer .menu-wrapper ul {
    margin: 0;
    padding: 0;
    list-style-type: none;
    text-wrap: nowrap;
}

.site-footer .menu-wrapper ul li {
    text-box: unset;
    line-height: 1.15;
}

.site-footer .menu-wrapper ul li a {
    color: rgb(from var(--c-text-light) r g b / .7);
    text-decoration: none;
    font-size: var(--font-16-12);
    letter-spacing: 0em;
}

/* Rolling Number */

@property --num {
    syntax: "<integer>";
    initial-value: 0;
    inherits: false;
}
  
.rolling-number {
    --anim-dur: 1000ms;
    counter-reset: num var(--num);
}

.rolling-number.animate {
    animation: rolling-number var(--anim-dur) forwards ease-in-out;
}

.rolling-number::before {
    content: var(--num);
    content: counter(num);
}

@keyframes rolling-number {
    from {
        --num: 0;
    }
    to {
        --num: var(--nr);
    }
}

/* Ajax Loading Indicator */

@keyframes ajax-loading-spinner {
    100%{
        transform: translate(-50%, -50%) rotate(1turn);
    }
}

.ajax-loading {
    position: relative;
    pointer-events: none;
    min-height: 10rem;
}

.ajax-loading::after {
    content: '';
    display: block;
    width: 5rem;
    height: 5rem;
    aspect-ratio: 1;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background:
      radial-gradient(farthest-side, var(--c-primary) 94%, transparent) top/8px 8px no-repeat,
      conic-gradient(transparent 30%, var(--c-primary));
    -webkit-mask: radial-gradient(farthest-side, transparent calc(100% - 8px),black 0);
    animation: ajax-loading-spinner 1s infinite linear;
    z-index: 1;
}

.ajax-loading > * {
    opacity: .3 !important;
    transition-duration: 0ms !important;
}

/* Accordions */

.accordion {
    border-top: 1px solid rgb(from var(--c-primary) r g b / 0.2);
}

.accordion:last-child {
    border-bottom: 1px solid rgb(from var(--c-primary) r g b / 0.2);
}

.accordion .ac-state {
    display: none;
}

.accordion .ac-trigger {
    display: flex;
    align-items: center;
    justify-content: flex-start;
	cursor: pointer;
    padding-block: 2.5rem;
    user-select: none;
}

.accordion .ac-counter {
    flex-basis: 17%;
    flex-shrink: 0;
    color: var(--c-bg-dark);
}

.accordion .ac-title {
    transition: transform 100ms ease-out;
    margin-right: 0.5rem;
}

.accordion .ac-state:not(:checked) ~ .ac-trigger:hover .ac-title {
    transform: translateX(0.9375rem);
}

.accordion .ac-icon {
    width: 1.5rem;
    height: 1.5rem;
    position: relative;
    margin-left: auto;
    flex-shrink: 0;
}

.accordion .ac-icon::before,
.accordion .ac-icon::after {
    content: '';
    position: absolute;
    width: 100%;
    height: 1px;
    background-color: var(--c-primary);
    top: 50%;
    left: 50%;
    transition: transform 200ms ease-out;
}

.accordion .ac-icon::before {
    transform: translate(-50%, -50%);
}

.accordion .ac-icon::after {
    transform: translate(-50%, -50%) rotate(-90deg);
}

.accordion .ac-state:checked ~ .ac-trigger .ac-icon::after {
    transform: translate(-50%, -50%) rotate(0deg);
}

.accordion .ac-content {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows 200ms ease-out;
}

.accordion .ac-state:checked ~ .ac-content {
    grid-template-rows: 1fr;
}

.accordion .ac-content-inner {
	overflow: hidden;
	transition: padding 200ms ease-out;
    width: 66%;
    margin-inline: auto;
}

.accordion .ac-state:checked ~ .ac-content .ac-content-inner {
    padding-block: 1.25rem 3.75rem;
}

/* Google Maps */

.gm-style .zoom-control {
    display: flex;
    flex-direction: column;
    gap: 0.625rem;
    height: auto;
    bottom: 1.875rem !important;
    right: 1.875rem !important;
}

.gm-style .zoom-control button {
    display: grid;
    place-items: center;
    background-color: var(--c-text-light);
    color: var(--c-primary);
    border: 0;
    border-radius: 50%;
    padding: 0;
    width: 2.6875rem;
    height: 2.6875rem;
    aspect-ratio: 1;
    position: relative;
    box-shadow: 0px 4px 10px 0px #00000033;
}

.gm-style .zoom-control button::before {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 0.9375rem;
    height: 1px;
    background-color: currentColor;
}

.gm-style .zoom-control button.zoom-control-in::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(90deg);
    width: 0.9375rem;
    height: 1px;
    background-color: currentColor;
}

.gmap .marker {
    width: 1.5rem;
    height: 1.5rem;
    border-radius: 50%;
    box-shadow: 0px 4px 10px 0px #00000033;
    background-image: var(--i-map-pin-primary);
    background-color: var(--c-text-light);
    background-position: center;
    background-size: auto 50%;
    background-repeat: no-repeat;
}

.gmap.marker-size--small .marker {
    width: 1.5rem;
    height: 1.5rem;
}

.gmap.marker-size--medium .marker {
    width: 2rem;
    height: 2rem;
}

.gmap.marker-size--large .marker {
    width: 2.5rem;
    height: 2.5rem;
}

.gmap .marker.active {
    background-image: var(--i-map-pin-tertiary);
    background-color: var(--c-primary);
}

.gm-style .open-in-google-maps-btn {
    bottom: 1.875rem !important;
    left: 1.875rem !important;
    display: inline-block;
    font-size: var(--font-18-15);
    line-height: 1.2;
    font-weight: 500;
    font-style: normal;
    letter-spacing: 0em;
    text-align: center;
    text-decoration: none;
    color: var(--c-primary);
    background-color: var(--c-text-light);
    border: none;
    box-shadow: 0px 4px 10px 0px #00000033;
    padding: 1rem 1.5rem;
    border-radius: var(--radius-110);
}

@media screen and (width <= 1024px) {
    #hamburger-menu-state:checked ~ .site-header-main .hamburger-container {
        display: flex;
    }

    .site-navigation .nav {
        /* flex-basis: 50%; */
        width: 50vw;
        width: 50svw;
    }

    .site-navigation .mynavigation .hover {
        /* flex-basis: 50%; */
    }
}

@media screen and (width <= 800px) {
    .modal.gallery-lightbox .modal-inner {
        padding-inline: 0;
    }

    .modal.gallery-lightbox .modal-close {
        width: 1rem;
        height: 1rem;
    }

    .modal.gallery-lightbox .splide__track {
        width: 100%;
    }

    .modal.gallery-lightbox .splide__slide {
        aspect-ratio: 1.772;
    }

    .modal.gallery-lightbox .splide__arrows {
        display: none;
    }
}

@media screen and (width <= 620px) {
    :root {
        /* --page-padding-narrow: 1rem; */
        /* --page-padding: 1.125rem; */
        /* --page-padding-wide: 1.25rem; */
    }
    .only-desktop {
        display: none !important;
    }
    .site-header .custom-logo,
    .site-navigation .custom-logo {
        max-width: 16.7vw;
    }
    .cky-consent-container {
        left: 1.25rem !important;
        right: 1.25rem !important;
        bottom: 1.25rem !important;
        width: unset !important;
    }
    .cky-consent-container .cky-consent-bar {
        padding: 2rem 1.875rem !important;
    }
    .cky-notice-btn-wrapper {
        flex-direction: row !important;
    }
    .cky-notice-btn-wrapper .cky-btn {
        flex-basis: calc(50% - .3125rem);
        flex-grow: 1;
        order: unset !important;
    }
    .site-footer .footer-content .footer_design-item {
        max-width: 80%;
        right: -4.2rem;
    }
    /* Footer */
    .site-footer {
        position: relative;
        z-index: auto;
        max-height: unset;
    }
    .site-footer .footer-content {
        padding-block: 5rem 1.875rem;
    }

    .site-footer .footer__text-content--main {
        margin-bottom: 6.875rem;
    }

    .site-footer .footer__text-content--main .cursive {
        margin-left: 0;
        margin-top: -0.25em;
    }

    .site-footer .footer__text-content--main h1 {
        max-width: 10ch;
    }

    .site-footer .footer-grid-content {
        display: flex;
        gap: 5rem;
        flex-direction: column;
    }

    .site-footer .footer__text-content--secondary {
        gap: 1.75rem;
    }

    .site-footer .info-wrapper {
        gap: 2.375rem;
    }

    .site-footer .footer_social-links {
        gap: 1.25rem;
    }

    /* Header */
    .site-header .site-branding {
        top: 1.25rem;
    }

    .site-header .menu-btn {
        top: 1.25rem;
        padding: 0.625rem 0.938rem;
        gap: 0.375rem;
    }

    .site-header .menu-btn--top-left {
        left: 1.25rem;
    }

    .site-header .menu-btn--top-right {
        right: 1.25rem;
    }

    .site-navigation .close-btn,
    .site-navigation .menu-btn {
        padding: 0.625rem 0.938rem;
        gap: 0.625rem;
    }

    .site-header .menu-btn svg,
    .site-navigation .close-btn svg,
    .site-navigation .menu-btn svg {
        height: 0.625rem;
    }

    .site-header .menu-btn svg {
        height: 0.75rem;
    }

    /* Animated Waves */
    .animated-waves svg.desktop {
        display: none;
    }
    .animated-waves svg.mobile {
        display: block;
    }

    /* navigation */
    .site-navigation .nav {
        /* flex-basis: 100%; */
        width: 100vw;
        width: 100svw;
    }

    .site-navigation .nav-inner {
        padding: 1.25rem;
    }

    .site-navigation .hover {
        /* flex-basis: 0%; */
        display: none;
    }

    .site-navigation .hamburger-container {
        margin-left: 0.625rem;
    }
    
    .site-navigation .menu-btn::before {
        content: '';
        position: absolute;
        inset: 0;
        display: block;
        border-radius: var(--radius-100);
        background-color: var(--c-bg-dark75);
        opacity: .75;
        z-index: -1;
        mix-blend-mode: multiply;
        transition: 150ms ease-in-out;
        transition-property: transform, background-color, opacity;
    }

    .site-navigation .menu-btn:is(:hover, :focus-visible)::before {
        background-color: var(--c-bg-dark75);
        transform: scale(1.2);
        opacity: 1;
    }

    .gm-style .zoom-control {
        bottom: 1.25rem !important;
        right: 1.25rem !important;
        gap: 0.5rem;
    }

    .gm-style .zoom-control button {
        width: 2.4375rem;
        height: 2.4375rem;
    }

    .gm-style .zoom-control button::before,
    .gm-style .zoom-control button.zoom-control-in::after {
        width: 0.8125rem;
    }

    .gm-style .open-in-google-maps-btn {
        bottom: 1.25rem !important;
        left: 1.25rem !important;
        padding: 0.9375rem 1.375rem;
    }

    /* Accordion */
    .accordion .ac-trigger {
        padding-block: 1.875rem;
    }
    .accordion .ac-counter {
        flex-basis: 13%;
    }
    .accordion .ac-icon {
        width: 1rem;
        height: 1rem;
    }
    .accordion .ac-content-inner {
        width: 74%;
    }
    .accordion .ac-state:checked ~ .ac-content .ac-content-inner {
        padding-block: 0 1.875rem;
    }
    /* Form */
    .gfield_radio {
        flex-direction: column;
        gap: 0.75rem;
    }
    .ginput_container:not(:first-child) {
        margin-top: 1.25rem;
    }

}