/* ////// Max Width ////// */
body {
    --xs-text-width: 100%;
    --sm-text-width: 100%;
    --md-text-width: calc(32rem + (750 - 16*32)*(1vw/19.2));
    --lg-text-width: calc(47rem + (950 - 16*47)*(1vw/19.2));
}
@media screen and (min-width:600px) {
    body {
        --xs-text-width: calc(23rem + (400 - 16*23)*(1vw/19.2));
        --sm-text-width: calc(28rem + (550 - 16*28)*(1vw/19.2));
    }
}

/* ////// Stacking Order ////// */
.wp-block-group {
    z-index: var(--stacking-order, 0);
}

/* ////// Flex Grow ////// */
.flex-grow {
    flex-grow: 1;
}

/* ////// SHow/Hide ////// */
@media screen and (min-width:1401px) {
    .hide-dsk {
        display: none !important;
    }
}
@media screen and (min-width:1101px) and (max-width:1400px) {
    .hide-lpt {
        display: none !important;
    }
}
@media screen and (min-width:901px) and (max-width:1100px) {
    .hide-tab-lnd {
        display: none !important;
    }
}
@media screen and (min-width:769px) and (max-width:900px) {
    .hide-tab-prt {
        display: none !important;
    }
}
@media screen and (min-width:601px) and (max-width:768px) {
    .hide-mbl-lnd {
        display: none !important;
    }
}
@media screen and (max-width:600px) {
    .hide-mbl-prt {
        display: none !important;
    }
}

/* ////// Border Radius ////// */
body .has-border-radius,
figure.has-border-radius > img {
    overflow: hidden;
    border-radius: var(--border-radius);
}
.has-border-radius-small {
    border-radius: var(--blst-border-radius-small, 10px);
    overflow: hidden;
}
.has-border-radius-medium {
    border-radius: var(--blst-border-radius-medium, 20px);
    overflow: hidden;
}
.has-border-radius-large {
    border-radius: var(--blst-border-radius-large, 30px);
    overflow: hidden;
}

/* ////// Overflow ////// */
.overflow-hidden {
    overflow: hidden;
}
.overflow-scroll-x {
    overflow-x: scroll;
}


/* ////// Min Height ////// */
:root {
--hero-height: 450px;
--section-height: 450px;
--viewport: 550px;
--card-regular: 350px;
--card-tall: 400px;
--card-extra-tall: 450px;
}

@media screen and (orientation:portrait) {
    body {
        --viewport-height: calc( var(--view-height, 100vh) * .9 );
        --section-height: calc( var(--view-height, 100vh) * .875 );
        --inner-height: calc( var(--view-height, 100vh) * .6 );
    }
}
@media screen and (min-width:768px) and (orientation:portrait) {
	body {
        --viewport-height: calc( var(--view-height, 100vh) * .65 );
		--hero-height: calc( var(--view-height, 100vh) * .6 );
        --section-height: calc( var(--view-height, 100vh) * .55 );
        --inner-height: calc( var(--view-height, 100vh) * .5 );
    }
}
@media screen and (min-width:900px) and (orientation: landscape) {
    body {
        --viewport-height: var(--view-height, 100vh);
        --hero-height: calc( var(--view-height, 100vh) * .95 );
        --section-height: calc(var(--view-height, 100vh) * .95);
        --inner-height: calc(var(--view-height, 100vh) * .85);

        --card-regular: calc( var(--view-height, 100vh) * .5 );
        --card-tall: calc( var(--view-height, 100vh) * .6 );
        --card-extra-tall: calc( var(--view-height, 100vh) * .7 );
    }
}

/* --- Viewport --- */
body .wp-site-blocks .is-style-viewport-min-height,
body.editor-styles-wrapper .is-style-viewport-min-height {
    min-height: var(--viewport-height);
}
body .wp-site-blocks .wp-block-group.is-style-viewport-min-height:not(.is-layout-flex),
body.editor-styles-wrapper .wp-block-group.is-style-viewport-min-height:not(.is-layout-flex) {
    display: grid;
}

/* body.block-editor-iframe__body.editor-styles-wrapper .is-style-viewport-min-height {
    min-height: 600px;
} */

/* --- Hero --- */
body .wp-site-blocks .is-style-hero-min-height,
body.editor-styles-wrapper .is-style-hero-min-height {
    min-height: var(--hero-height);
}
body .wp-site-blocks .wp-block-group.is-style-hero-min-height:not(.is-layout-flex),
body.editor-styles-wrapper .wp-block-group.is-style-hero-min-height:not(.is-layout-flex) {
    display: grid;
}

/* body.block-editor-iframe__body.editor-styles-wrapper .is-style-hero-min-height {
    min-height: 500px;
} */

/* --- Section --- */
body .wp-site-blocks .is-style-section-min-height,
body.editor-styles-wrapper .is-style-section-min-height {
    min-height: var(--section-height);
}
body .wp-site-blocks .wp-block-group.is-style-section-min-height:not(.is-layout-flex),
body.editor-styles-wrapper .wp-block-group.is-style-section-min-height:not(.is-layout-flex) {
    display: grid;
}

/* body.block-editor-iframe__body.editor-styles-wrapper .is-style-section-min-height {
    min-height: 500px;
} */

/* --- Inner --- */
body .wp-site-blocks .is-style-inner-min-height,
body.editor-styles-wrapper .is-style-inner-min-height {
    min-height: var(--inner-height);
}
body .wp-site-blocks .wp-block-group.is-style-inner-min-height:not(.is-layout-flex),
body.editor-styles-wrapper .wp-block-group.is-style-inner-min-height:not(.is-layout-flex) {
    display: grid;
}

/* body.block-editor-iframe__body.editor-styles-wrapper .is-style-inner-min-height {
    min-height: 400px;
} */

/* --- Cards: Extra Tall --- */
body .wp-site-blocks .is-style-card-extra-tall-min-height,
body.editor-styles-wrapper .is-style-card-extra-tall-min-height {
    min-height: var(--card-extra-tall);
}
body .wp-site-blocks .wp-block-group.is-style-card-extra-tall-min-height:not(.is-layout-flex),
body.editor-styles-wrapper .wp-block-group.is-style-card-extra-tall-min-height:not(.is-layout-flex) {
    display: grid;
}
/* body.block-editor-iframe__body.editor-styles-wrapper .is-style-card-extra-tall-min-height {
    min-height: 350px;
} */

/* --- Cards: Tall --- */
body .wp-site-blocks .is-style-card-tall-min-height,
body.editor-styles-wrapper .is-style-card-tall-min-height {
    min-height: var(--card-tall);
}
body .wp-site-blocks .wp-block-group.is-style-card-tall-min-height:not(.is-layout-flex),
body.editor-styles-wrapper .wp-block-group.is-style-card-tall-min-height:not(.is-layout-flex) {
    display: grid;
}
/* body.block-editor-iframe__body.editor-styles-wrapper .is-style-card-tall-min-height {
    min-height: 300px;
} */

/* --- Cards: Regular --- */
body .wp-site-blocks .is-style-card-regular-min-height,
body.editor-styles-wrapper .is-style-card-regular-min-height {
    min-height: var(--card-regular);
}
body .wp-site-blocks .wp-block-group.is-style-card-regular-min-height:not(.is-layout-flex),
body.editor-styles-wrapper .wp-block-group.is-style-card-regular-min-height:not(.is-layout-flex) {
    display: grid;
}
/* body.block-editor-iframe__body.editor-styles-wrapper .is-style-card-regular-min-height {
    min-height: 250px;
} */

@media screen and (orientation:portrait) {
    body .wp-site-blocks .remove-min-height-mobile,
    body.editor-styles-wrapper .remove-min-height-mobile {
        min-height: unset;
    }
}

/* ////// Full Width ////// */
@media screen and (max-width:1100px) {
    .wp-block-group.full-width-below-1100 {
        max-width: unset;
    }
}
@media screen and (max-width:900px) {
    .wp-block-group.full-width-below-900 {
        max-width: unset;
    }
}
@media screen and (max-width:768px) {
    .wp-block-group.full-width-below-768 {
        max-width: unset;
    }
}
@media screen and (max-width:600px) {
    .wp-block-group.full-width-below-600 {
        max-width: unset;
    }
}



/* ////// Text Styles ////// */
.text-has-opacity {
    opacity: var(--text-opacity);
}
@media not (prefers-color-scheme: dark) {
    /* --- Tints & Shades --- */
    .text-tint-20 {
        color: color-mix(in oklab, currentColor 80%, #ffffff 20%);
    }
    .text-tint-40 {
        color: color-mix(in oklab, currentColor 60%, #ffffff 40%);
    }
    .text-tint-60 {
        color: color-mix(in oklab, currentColor 40%, #ffffff 60%);
    }

    .text-shade-20 {
        color: color-mix(in oklab, currentColor 80%, #000000 20%);
    }
    .text-shade-40 {
        color: color-mix(in oklab, currentColor 60%, #000000 40%);
    }
    .text-shade-60 {
        color: color-mix(in oklab, currentColor 40%, #000000 60%);
    }
}

span.gradient-text,
span.gradient-heading {
    background: linear-gradient(90deg, var(--wp--preset--color--primary) 0%, var(--wp--preset--color--secondary) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* ////// Group Styles ////// */

:root {
    --bg-tint: 0%;
    --bg-shade: 0%;
    --bg-transparency: 0%;
}
/* --- Tints --- */
.has-primary-background-color.has-bg-tint {
    background-color: color-mix(in oklab, var(--wp--preset--color--primary) calc(100% - var(--bg-tint)), #fff var(--bg-tint)) !important;
}
.has-secondary-background-color.has-bg-tint {
    background-color: color-mix(in oklab, var(--wp--preset--color--secondary) calc(100% - var(--bg-tint)), #fff var(--bg-tint)) !important;
}
.has-tertiary-background-color.has-bg-tint {
    background-color: color-mix(in oklab, var(--wp--preset--color--tertiary) calc(100% - var(--bg-tint)), #fff var(--bg-tint)) !important;
}
.has-quaternary-background-color.has-bg-tint {
    background-color: color-mix(in oklab, var(--wp--preset--color--quaternary) calc(100% - var(--bg-tint)), #fff var(--bg-tint)) !important;
}
.has-quinary-background-color.has-bg-tint {
    background-color: color-mix(in oklab, var(--wp--preset--color--quinary) calc(100% - var(--bg-tint)), #fff var(--bg-tint)) !important;
}
.has-dark-background-color.has-bg-tint {
    background-color: color-mix(in oklab, var(--wp--preset--color--dark) calc(100% - var(--bg-tint)), #fff var(--bg-tint)) !important;
}
.has-light-background-color.has-bg-tint {
    background-color: color-mix(in oklab, var(--wp--preset--color--light) calc(100% - var(--bg-tint)), #fff var(--bg-tint)) !important;
}
.has-accent-background-color.has-bg-tint {
    background-color: color-mix(in oklab, var(--wp--preset--color--accent) calc(100% - var(--bg-tint)), #fff var(--bg-tint)) !important;
}

/* --- Shades --- */
.has-primary-background-color.has-bg-shade {
    background-color: color-mix(in oklab, var(--wp--preset--color--primary) calc(100% - var(--bg-shade)), #000000 var(--bg-shade)) !important;
}
.has-secondary-background-color.has-bg-shade {
    background-color: color-mix(in oklab, var(--wp--preset--color--secondary) calc(100% - var(--bg-shade)), #000000 var(--bg-shade)) !important;
}
.has-tertiary-background-color.has-bg-shade {
    background-color: color-mix(in oklab, var(--wp--preset--color--tertiary) calc(100% - var(--bg-shade)), #000000 var(--bg-shade)) !important;
}
.has-quaternary-background-color.has-bg-shade {
    background-color: color-mix(in oklab, var(--wp--preset--color--quaternary) calc(100% - var(--bg-shade)), #000000 var(--bg-shade)) !important;
}
.has-quinary-background-color.has-bg-shade {
    background-color: color-mix(in oklab, var(--wp--preset--color--quinary) calc(100% - var(--bg-shade)), #000000 var(--bg-shade)) !important;
}
.has-dark-background-color.has-bg-shade {
    background-color: color-mix(in oklab, var(--wp--preset--color--dark) calc(100% - var(--bg-shade)), #000000 var(--bg-shade)) !important;
}
.has-light-background-color.has-bg-shade {
    background-color: color-mix(in oklab, var(--wp--preset--color--light) calc(100% - var(--bg-shade)), #000000 var(--bg-shade)) !important;
}
.has-accent-background-color.has-bg-shade {
    background-color: color-mix(in oklab, var(--wp--preset--color--accent) calc(100% - var(--bg-shade)), #000000 var(--bg-shade)) !important;
}

/* --- Transparency --- */
.has-primary-background-color.has-bg-transparency {
    background-color: color-mix(in srgb, var(--wp--preset--color--primary), transparent var(--bg-transparency)) !important;
}
.has-secondary-background-color.has-bg-transparency {
    background-color: color-mix(in srgb, var(--wp--preset--color--secondary), transparent var(--bg-transparency)) !important;
}
.has-tertiary-background-color.has-bg-transparency {
    background-color: color-mix(in srgb, var(--wp--preset--color--tertiary), transparent var(--bg-transparency)) !important;
}
.has-quaternary-background-color.has-bg-transparency {
    background-color: color-mix(in srgb, var(--wp--preset--color--quaternary), transparent var(--bg-transparency)) !important;
}
.has-quinary-background-color.has-bg-transparency {
    background-color: color-mix(in srgb, var(--wp--preset--color--quinary), transparent var(--bg-transparency)) !important;
}
.has-dark-background-color.has-bg-transparency {
    background-color: color-mix(in srgb, var(--wp--preset--color--dark), transparent var(--bg-transparency)) !important;
}
.has-light-background-color.has-bg-transparency {
    background-color: color-mix(in srgb, var(--wp--preset--color--light), transparent var(--bg-transparency)) !important;
}
.has-accent-background-color.has-bg-transparency {
    background-color: color-mix(in srgb, var(--wp--preset--color--accent), transparent var(--bg-transparency)) !important;
}
.has-bg-transparency.has-bg-blur {
    backdrop-filter: blur(5px);
}

/* ////// Link Styles ////// */

/* --- No Style --- */
body .link-no-style a,
body a.link-no-style,
body :is(h1,h2,h3,h4,h5,h6).link-no-style a {
    background-image: unset;
    text-decoration: none;
    border: none;
    animation: none;
}
/* No Style:hover */
body .link-no-style a:hover,
body a.link-no-style:hover,
body :is(h1,h2,h3,h4,h5,h6).link-no-style a:hover,

body .link-no-style a:focus,
body a.link-no-style:focus,
body :is(h1,h2,h3,h4,h5,h6).link-no-style a:focus {
    color: inherit;
}

/* --- Underline Hidden: Fade --- */
body .link-fade a,
body a.link-fade,
body :is(h1,h2,h3,h4,h5,h6).link-fade a {
    animation: none;
    text-decoration-color: transparent;
    text-decoration-thickness: 1px;
    text-decoration-line: underline;
    text-underline-offset: 2px;
}
/* Underline Hidden: Fade:hover */
body .link-fade a:hover,
body a.link-fade:hover,
body :is(h1,h2,h3,h4,h5,h6).link-fade a:hover {
    color: inherit;
    text-decoration-style: dotted;
    text-decoration-color: currentColor;
}

/* --- Underline Hidden: Expand --- */
body .link-expand a,
body a.link-expand,
body :is(h1,h2,h3,h4,h5,h6).link-expand a {
    border: none;
    animation: none;
    color: inherit;
    padding: 2px;
    border: unset;
    background-color: unset;
    background-image: linear-gradient(to top, currentColor 100%, currentColor 100%);
    background-repeat: no-repeat;
    background-size: 0% var(--link-underline-weight, 1px);
    background-position: left 100%;
    transition: background-size .3s ease, color .3s ease;
    text-decoration: none;
}
/* Underline Hidden: Expand:hover */
body .link-expand a:hover,
body a.link-expand:hover,
body :is(h1,h2,h3,h4,h5,h6).link-expand a:hover,

body .link-expand a:focus,
body a.link-expand:focus,
body :is(h1,h2,h3,h4,h5,h6).link-expand a:focus{
    color: inherit;
    background-size: 100% var(--link-underline-weight, 1px);
}

/* ////// Vertical text ////// */
.vertical-text {
    writing-mode: vertical-rl;
    transform: rotate(180deg);
}
.vertical-text.vertical-text-flip {
    transform: rotate(0deg);
}
@media screen and (min-width:601px) {
    .vertical-text-above-600 {
        writing-mode: vertical-rl;
        transform: rotate(180deg);
    }
    .vertical-text-above-600.vertical-text-flip {
        transform: rotate(0deg);
    }
}
@media screen and (min-width:769px) {
    .vertical-text-above-768 {
        writing-mode: vertical-rl;
        transform: rotate(180deg);
    }
    .vertical-text-above-768.vertical-text-flip {
        transform: rotate(0deg);
    }
}
@media screen and (min-width:901px) {
    .vertical-text-above-900 {
        writing-mode: vertical-rl;
        transform: rotate(180deg);
    }
    .vertical-text-above-900.vertical-text-flip {
        transform: rotate(0deg);
    }
}
@media screen and (min-width:1101px) {
    .vertical-text-above-1100 {
        writing-mode: vertical-rl;
        transform: rotate(180deg);
    }
    .vertical-textt-above-1100.vertical-text-flip {
        transform: rotate(0deg);
    }
}
@media screen and (min-width:1401px) {
    .vertical-text-above-1400 {
        writing-mode: vertical-rl;
        transform: rotate(180deg);
    }
    .vertical-text-above-1400.vertical-text-flip {
        transform: rotate(0deg);
    }
}

[class*="vertical-text"] {
    max-height: var(--max-height, auto);
}

body .translate-minus-50,
body .translate-plus-50 {
    position: relative;
    z-index: 2;
}

/* ////// Stacking Order ////// */
:where(h1, h2, h3, h4, h5, h6) {
    z-index: var(--stacking-order);
}

/* ////// Centre text ////// */
@media screen and (max-width:1024px) {
    :is(h1,h2,h3,h4,h5,h6,p,li,a,span).text-align-centre-below-1024 {
        text-align: center;
    }
}
@media screen and (max-width:900px) {
    :is(h1,h2,h3,h4,h5,h6,p,li,a,span).text-align-centre-below-900 {
        text-align: center;
    }
}
@media screen and (max-width:768px) {
    :is(h1,h2,h3,h4,h5,h6,p,li,a,span).text-align-centre-below-768 {
        text-align: center;
    }
}
@media screen and (max-width:600px) {
    :is(h1,h2,h3,h4,h5,h6,p,li,a,span).text-align-centre-below-600 {
        text-align: center;
    }
}

/* ////// Left Align text ////// */
@media screen and (max-width:1024px) {
    :is(h1,h2,h3,h4,h5,h6,p,li,a,span).text-align-left-below-1024 {
        text-align: left;
    }
}
@media screen and (max-width:900px) {
    :is(h1,h2,h3,h4,h5,h6,p,li,a,span).text-align-left-below-900 {
        text-align: left;
    }
}
@media screen and (max-width:768px) {
    :is(h1,h2,h3,h4,h5,h6,p,li,a,span).text-align-left-below-768 {
        text-align: left;
    }
}
@media screen and (max-width:600px) {
    :is(h1,h2,h3,h4,h5,h6,p,li,a,span).text-align-left-below-600 {
        text-align: left;
    }
}