/*
Theme Name: Cariboo Blockbase
Theme URI: https://caribooits.ca
Author: Ben Johnstone
Author URI: https://caribooits.ca
Description: A child theme of Blockbase for Cariboo ITS.
Requires at least: 6.1
Tested up to: 6.7
Requires PHP: 7.4
Version: 1.0.39
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Template: blockbase
Text Domain: cariboo-blockbase
Tags: full-site-editing, block-patterns, wide-blocks
*/
@import url("https://use.typekit.net/cyl2qfa.css");

:root {
    --breakpoint-mobile: 980px; /* used in @media (max-width: 980px) / (min-width: 981px) */
    --tec-color-background-events-bar-submit-button: var(--wp--preset--color--secondary) !important;
}


/* Highlight heading style — 500 weight, mixed case */
.is-style-highlight.wp-block-post-title,
.is-style-highlight.wp-block-heading,
h1.is-style-highlight,
h2.is-style-highlight,
h3.is-style-highlight,
h4.is-style-highlight,
h5.is-style-highlight,
h6.is-style-highlight,
.wp-block-heading.is-style-highlight h1,
.wp-block-heading.is-style-highlight h2,
.wp-block-heading.is-style-highlight h3,
.wp-block-heading.is-style-highlight h4,
.wp-block-heading.is-style-highlight h5,
.wp-block-heading.is-style-highlight h6 {
    font-weight: 500 !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}


/* ── Primary button states ── */
.wp-block-button:not([class*="is-style-"]) .wp-block-button__link,
.wp-block-button.is-style-fill .wp-block-button__link {
    /* Default: orange fill, 4px orange gap then 2px plum inset border */
    background: var(--wp--preset--color--secondary) !important;
    color: #ffffff !important;
    padding-left: calc(var(--wp--custom--button--spacing--padding--left) * 0.66) !important;
    padding-right: calc(var(--wp--custom--button--spacing--padding--right) * 0.66) !important;
    box-shadow:
        inset 0 0 0 4px var(--wp--preset--color--secondary),
        inset 0 0 0 7px var(--wp--preset--color--primary) !important;
    transition: box-shadow 0.15s ease, background 0.15s ease !important;
}
.wp-block-button:not([class*="is-style-"]) .wp-block-button__link:hover,
.wp-block-button.is-style-fill .wp-block-button__link:hover {
    /* Hover: same orange fill, inset border switches to yellow */
    background: var(--wp--preset--color--secondary) !important;
    box-shadow:
        inset 0 0 0 4px var(--wp--preset--color--secondary),
        inset 0 0 0 7px #FDD79E !important;
}
.wp-block-button:not([class*="is-style-"]) .wp-block-button__link:active,
.wp-block-button.is-style-fill .wp-block-button__link:active {
    /* Down: same as hover, yellow text + border */
    background: var(--wp--preset--color--secondary) !important;
    color: #FDD79E !important;
    box-shadow:
        inset 0 0 0 4px var(--wp--preset--color--secondary),
        inset 0 0 0 7px #FDD79E !important;
}
.wp-block-button:not([class*="is-style-"]) .wp-block-button__link:focus-visible,
.wp-block-button.is-style-fill .wp-block-button__link:focus-visible {
    /* Focus: orange fill, plum inset + outer plum ring */
    background: var(--wp--preset--color--secondary) !important;
    box-shadow:
        inset 0 0 0 4px var(--wp--preset--color--secondary),
        inset 0 0 0 7px var(--wp--preset--color--primary) !important;
    outline: 2px solid var(--wp--preset--color--primary) !important;
    outline-offset: 3px !important;
}
.wp-block-button:not([class*="is-style-"]) .wp-block-button__link:disabled,
.wp-block-button:not([class*="is-style-"]) .wp-block-button__link[disabled],
.wp-block-button.is-style-fill .wp-block-button__link:disabled,
.wp-block-button.is-style-fill .wp-block-button__link[disabled] {
    /* Disabled: grey fill, no shadow */
    background: var(--wp--preset--color--disabled-grey) !important;
    color: #ffffff !important;
    box-shadow: none !important;
    cursor: not-allowed !important;
    pointer-events: none !important;
}

/* Secondary button — orange outline */
.wp-block-button.is-style-secondary .wp-block-button__link {
    background: transparent !important;
    color: var(--wp--preset--color--secondary);
    border: 3px solid var(--wp--preset--color--secondary);
    border-radius: var(--wp--custom--border--radius--small) !important;
    padding-left: calc(var(--wp--custom--button--spacing--padding--left) / 2) !important;
    padding-right: calc(var(--wp--custom--button--spacing--padding--right) / 2) !important;
    padding-top: var(--wp--preset--spacing--20) !important;
    padding-bottom: var(--wp--preset--spacing--20) !important;
    font-family: var(--wp--preset--font-family--bricolage-grotesque-condensed) !important;
    font-size: var(--wp--custom--font-sizes--normal) !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
    box-shadow: none !important;
    transition: background 0.15s ease, color 0.15s ease !important;
}
.wp-block-button.is-style-secondary .wp-block-button__link:hover {
    background: var(--wp--preset--color--secondary) !important;
    color: #ffffff !important;
    border-color: var(--wp--preset--color--secondary) !important;
}
.wp-block-button.is-style-secondary .wp-block-button__link:active {
    background: var(--wp--preset--color--secondary) !important;
    color: #FDD79E !important;
    border-color: var(--wp--preset--color--secondary) !important;
}
.wp-block-button.is-style-secondary .wp-block-button__link:focus-visible {
    background: transparent !important;
    color: var(--wp--preset--color--secondary) !important;
    border-color: var(--wp--preset--color--secondary) !important;
    outline: 2px solid var(--wp--preset--color--primary) !important;
    outline-offset: 3px !important;
}

/* Tertiary button — text link with custom arrow */
@keyframes cariboo-arrow-slide {
    0%, 100% { transform: translateY(-50%) translateX(0); }
    50%       { transform: translateY(-50%) translateX(4px); }
}

.wp-block-button.is-style-tertiary {
    width: fit-content !important;
}
.wp-block-button.is-style-tertiary .wp-block-button__link {
    background: transparent !important;
    color: var(--wp--preset--color--secondary) !important;
    border: none !important;
    padding: 0.0625em calc(0.5rem + 14px + 0.375em) 0.0625em 0.25em !important;
    border-radius: var(--wp--custom--border--radius--small) !important;
    box-shadow: none !important;
    position: relative;
    transition: color 0.15s ease !important;
    text-decoration: none !important;
}
.wp-block-button.is-style-tertiary .wp-block-button__link::after {
    content: '';
    position: absolute;
    right: 0.375em;
    top: 50%;
    transform: translateY(-50%);
    width: 14px;
    height: 15px;
    background-image: url('assets/images/arrow-right-orange.svg');
    background-repeat: no-repeat;
    background-size: contain;
    transition: opacity 0.15s ease;
}
.wp-block-button.is-style-tertiary .wp-block-button__link:hover,
.wp-block-button.is-style-tertiary .wp-block-button__link:active {
    text-decoration: none !important;
}
.wp-block-button.is-style-tertiary .wp-block-button__link:hover::after {
    opacity: 0.5;
    animation: cariboo-arrow-slide 0.7s ease-in-out infinite;
}
.wp-block-button.is-style-tertiary .wp-block-button__link:active {
    outline: none !important;
    box-shadow: 0 0 0 2px #ffffff, 0 0 0 3px #612c55 !important;
}
.wp-block-button.is-style-tertiary .wp-block-button__link:focus,
.wp-block-button.is-style-tertiary .wp-block-button__link:focus-visible {
    outline: none !important;
    box-shadow: 0 0 0 2px #ffffff, 0 0 0 3px #612c55 !important;
}

/* Tertiary button on dark/plum backgrounds */
.has-primary-background-color .wp-block-button.is-style-tertiary .wp-block-button__link,
.has-black-background-color .wp-block-button.is-style-tertiary .wp-block-button__link {
    color: #ffffff !important;
}
.has-primary-background-color .wp-block-button.is-style-tertiary .wp-block-button__link::after,
.has-black-background-color .wp-block-button.is-style-tertiary .wp-block-button__link::after {
    background-image: url('assets/images/arrow-right-white.svg');
}
.has-primary-background-color .wp-block-button.is-style-tertiary .wp-block-button__link:active,
.has-black-background-color .wp-block-button.is-style-tertiary .wp-block-button__link:active {
    outline: none !important;
    box-shadow: 0 0 0 2px #612c55, 0 0 0 3px #ffffff !important;
}
.has-primary-background-color .wp-block-button.is-style-tertiary .wp-block-button__link:focus-visible,
.has-black-background-color .wp-block-button.is-style-tertiary .wp-block-button__link:focus-visible {
    box-shadow:
        0 0 0 3px var(--wp--preset--color--primary),
        0 0 0 5px #ffffff !important;
}

/* ── Tertiary on orange bg → dark text + dark arrow ── */
.has-secondary-background-color .wp-block-button.is-style-tertiary .wp-block-button__link {
    color: var(--wp--preset--color--foreground) !important;
}
.has-secondary-background-color .wp-block-button.is-style-tertiary .wp-block-button__link::after {
    background-image: url("data:image/svg+xml,%3Csvg width='14' height='15' viewBox='0 0 14 15' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7.744 14.336C7.70133 13.6533 7.776 12.9387 7.968 12.192C8.18133 11.4453 8.512 10.752 8.96 10.112C9.42933 9.472 10.016 9.00267 10.72 8.704V8.416L0 8.736V5.568L10.72 5.888V5.664C9.97333 5.23733 9.36533 4.71467 8.896 4.096C8.42667 3.47733 8.08533 2.816 7.872 2.112C7.68 1.38667 7.59467 0.682667 7.616 0H11.168C11.1253 0.853333 11.2 1.67467 11.392 2.464C11.584 3.25333 11.8933 3.968 12.32 4.608C12.768 5.248 13.312 5.77067 13.952 6.176V8.16C13.0347 8.8 12.32 9.64267 11.808 10.688C11.3173 11.7333 11.104 12.9493 11.168 14.336H7.744Z' fill='%230a0a0a'/%3E%3C/svg%3E") !important;
}

/* =============================================
   FILTER BUTTONS
   ============================================= */
.wp-block-button.is-style-filter .wp-block-button__link {
    background: transparent !important;
    color: var(--wp--preset--color--foreground) !important;
    border: 1.5px solid var(--wp--preset--color--foreground) !important;
    border-radius: 100px !important;
    font-size: 0.75rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    padding: 0.3em 1em !important;
    line-height: 1.4 !important;
    box-shadow: none !important;
}
.wp-block-button.is-style-filter .wp-block-button__link:hover {
    background: var(--wp--preset--color--primary) !important;
    color: #ffffff !important;
    border-color: var(--wp--preset--color--primary) !important;
}
.wp-block-button.is-style-filter .wp-block-button__link:focus-visible {
    outline: 2px solid var(--wp--preset--color--primary) !important;
    outline-offset: 2px !important;
}

/* =============================================
   TAG STYLES
   ============================================= */
.wp-block-button.is-style-tag-orange .wp-block-button__link,
.wp-block-button.is-style-tag-plum .wp-block-button__link {
    border-radius: 100px !important;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    padding: 0.3em 0.875em !important;
    border: none !important;
    line-height: 1.4 !important;
    box-shadow: none !important;
}

.wp-block-button.is-style-tag-orange .wp-block-button__link {
    background: var(--wp--preset--color--secondary) !important;
    color: #ffffff !important;
}
.wp-block-button.is-style-tag-orange .wp-block-button__link:hover {
    background: #c9510a !important;
}

.wp-block-button.is-style-tag-plum .wp-block-button__link {
    background: var(--wp--preset--color--primary) !important;
    color: #ffffff !important;
}
.wp-block-button.is-style-tag-plum .wp-block-button__link:hover {
    background: #4d2242 !important;
}

/* =============================================
   ARROW BUTTON
   ============================================= */
.wp-block-button.is-style-arrow .wp-block-button__link {
    background: var(--wp--preset--color--primary) !important;
    border: none !important;
    border-radius: var(--wp--custom--border--radius--small) !important;
    width: 48px !important;
    height: 48px !important;
    min-width: 0 !important;
    padding: 0 !important;
    position: relative !important;
    box-shadow: none !important;
    font-size: 0 !important;
    line-height: 1 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}
.wp-block-button.is-style-arrow .wp-block-button__link::after {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg width='14' height='15' viewBox='0 0 14 15' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7.744 14.336C7.70133 13.6533 7.776 12.9387 7.968 12.192C8.18133 11.4453 8.512 10.752 8.96 10.112C9.42933 9.472 10.016 9.00267 10.72 8.704V8.416L0 8.736V5.568L10.72 5.888V5.664C9.97333 5.23733 9.36533 4.71467 8.896 4.096C8.42667 3.47733 8.08533 2.816 7.872 2.112C7.68 1.38667 7.59467 0.682667 7.616 0H11.168C11.1253 0.853333 11.2 1.67467 11.392 2.464C11.584 3.25333 11.8933 3.968 12.32 4.608C12.768 5.248 13.312 5.77067 13.952 6.176V8.16C13.0347 8.8 12.32 9.64267 11.808 10.688C11.3173 11.7333 11.104 12.9493 11.168 14.336H7.744Z' fill='%23ffffff'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 14px 15px;
}
.wp-block-button.is-style-arrow .wp-block-button__link:hover {
    background: var(--wp--preset--color--secondary) !important;
}
.wp-block-button.is-style-arrow .wp-block-button__link:active {
    background: #c9510a !important;
}
.wp-block-button.is-style-arrow .wp-block-button__link:disabled,
.wp-block-button.is-style-arrow .wp-block-button__link[disabled] {
    background: var(--wp--preset--color--disabled-grey) !important;
}

/* =============================================
   NAVIGATION STATES
   ============================================= */
/* Custom burger icon */
.wp-block-navigation__responsive-container-open svg {
    display: none !important;
}
.wp-block-navigation__responsive-container-open::after {
    content: '';
    display: block;
    width: 32px;
    height: 32px;
    background-image: none; /* set via inline style */
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

@media (max-width: 980px) {
    .site-header .wp-block-site-logo img {
        width: 85px !important;
        height: auto !important;
    }
}

/* ── Mobile menu overlay (≤980px only) ─────────────────────── */
@media (max-width: 980px) {
    .wp-block-navigation__responsive-container.is-menu-open {
        background-color: var(--wp--preset--color--cream-light) !important;
        z-index: 101 !important;
        padding: 0 !important;
    }
    .wp-block-navigation__responsive-close,
    .wp-block-navigation__responsive-dialog {
        padding: 0 !important;
        height: 100% !important;
    }
    .wp-block-navigation__responsive-dialog {
        display: flex !important;
        flex-direction: column !important;
    }

    /* Overlay header row */
    .mobile-overlay-header {
        display: flex !important;
        align-items: flex-start !important;
        justify-content: space-between !important;
        padding: 0.75rem var(--wp--custom--gap--horizontal) !important;
        width: 100% !important;
        box-sizing: border-box !important;
        flex-shrink: 0 !important;
    }
    .mobile-overlay-logo {
        margin: 0 !important;
        padding: 0 !important;
    }

    /* Close button */
    .wp-block-navigation__responsive-container-close {
        background: none !important;
        border: none !important;
        padding: 0 !important;
        color: var(--wp--preset--color--primary) !important;
        font-family: var(--wp--preset--font-family--bricolage-grotesque-condensed) !important;
        font-size: 2rem !important;
        font-weight: 600 !important;
        line-height: 1 !important;
        cursor: pointer !important;
        flex-shrink: 0 !important;
    }
    .wp-block-navigation__responsive-container-close svg {
        display: none !important;
    }
    .wp-block-navigation__responsive-container-close::after {
        content: 'X' !important;
        display: block !important;
    }

    /* Nav items — top-aligned with padding, not vertically centred */
    .wp-block-navigation__responsive-container-content {
        flex: 1 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: flex-start !important;
        padding-top: 1.25rem !important;
    }
    .wp-block-navigation__responsive-container-content .wp-block-navigation__container {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        gap: 1.25rem !important;
        width: 100% !important;
    }
    /* Extra breathing room above the CTA button */
    .wp-block-navigation__responsive-container-content .btn-primary {
        margin-top: 1.25rem !important;
    }

    /* Nav link text */
    .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content {
        font-family: var(--wp--preset--font-family--bricolage-grotesque-condensed) !important;
        font-size: var(--wp--preset--font-size--gigantic) !important;
        font-weight: 800 !important;
        color: var(--wp--preset--color--secondary) !important;
        text-align: center !important;
        text-transform: uppercase !important;
        text-decoration: none !important;
        letter-spacing: 0 !important;
    }
    /* Don't uppercase the CTA button in the nav */
    .wp-block-navigation__responsive-container-content .btn-primary .wp-block-navigation-item__content {
        text-transform: none !important;
        font-size: var(--wp--custom--font-sizes--normal) !important;
    }
    .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content:hover {
        text-decoration: none !important;
        opacity: 0.75 !important;
    }

    /* Primary header variant */
    .has-primary-background-color .wp-block-navigation__responsive-container.is-menu-open {
        background-color: var(--wp--preset--color--primary) !important;
    }
    .has-primary-background-color .wp-block-navigation__responsive-container-close {
        color: var(--wp--preset--color--cream-light) !important;
    }
    .has-primary-background-color .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content {
        color: #ffffff !important;
    }
}

/* Nav breakpoint override: collapse at 980px instead of WP default 600px */
@media (max-width: 980px) {
    .wp-block-navigation__responsive-container:not(.is-menu-open) {
        display: none !important;
    }
    .wp-block-navigation__responsive-container-open {
        display: flex !important;
    }
}
@media (min-width: 981px) {
    .wp-block-navigation__responsive-container {
        display: flex !important;
    }
    .wp-block-navigation__responsive-container-open {
        display: none !important;
    }
    .mobile-overlay-header {
        display: none !important;
    }
}

/* Light nav — orange hover + underline, focus outline */

.wp-block-navigation__container > li > .wp-block-navigation-item__content:hover {
    text-decoration: underline !important;
    text-decoration-color: var(--wp--preset--color--secondary) !important;
    text-decoration-thickness: 6px !important;
    text-underline-offset: 9px !important;
}

.wp-block-navigation .wp-block-navigation-item__content:focus-visible {
    outline: 2px solid var(--wp--preset--color--primary) !important;
    outline-offset: 3px !important;
    border-radius: 2px !important;
}

/* Dark/footer nav — white default, orange hover */
.has-black-background-color .wp-block-navigation .wp-block-navigation-item__content,
.has-foreground-background-color .wp-block-navigation .wp-block-navigation-item__content {
    color: #ffffff !important;
}
.has-black-background-color .wp-block-navigation .wp-block-navigation-item__content:hover,
.has-foreground-background-color .wp-block-navigation .wp-block-navigation-item__content:hover,
.has-black-background-color .wp-block-navigation .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content,
.has-foreground-background-color .wp-block-navigation .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content {
    color: var(--wp--preset--color--secondary) !important;
    text-decoration: underline !important;
    text-underline-offset: 4px !important;
}
.has-black-background-color .wp-block-navigation .wp-block-navigation-item__content:focus-visible,
.has-foreground-background-color .wp-block-navigation .wp-block-navigation-item__content:focus-visible {
    outline-color: #ffffff !important;
}

/* =============================================
   DARK SECTION — BUTTON CONTEXT OVERRIDES
   ============================================= */

/* Secondary (outline) on orange bg → dark/black outline */
.has-secondary-background-color .wp-block-button.is-style-secondary .wp-block-button__link,
.wp-block-button.is-style-secondary a.featured-post__btn.wp-block-button__link {
    color: #fff !important;
    border-color: #fff !important;
}


.has-secondary-background-color .wp-block-button.is-style-secondary .wp-block-button__link:hover {
    background: var(--wp--preset--color--foreground) !important;
    color: #ffffff !important;
    border-color: var(--wp--preset--color--foreground) !important;
}

.wp-block-button.is-style-secondary .has-white-color.wp-block-button__link {
    color: #fff !important;
    border-color: #fff !important;
}

/* =============================================
   FOCUS STATES — ALL BUTTONS
   ============================================= */
.wp-block-button__link:focus-visible {
    outline: 2px solid var(--wp--preset--color--primary) !important;
    outline-offset: 2px !important;
}
/* Focus on dark sections */
.has-primary-background-color .wp-block-button__link:focus-visible,
.has-black-background-color .wp-block-button__link:focus-visible,
.has-foreground-background-color .wp-block-button__link:focus-visible {
    outline-color: #ffffff !important;
}

/* =============================================
   DISABLED STATES
   ============================================= */
.wp-block-button__link:disabled,
.wp-block-button__link[disabled] {
    background: var(--wp--preset--color--disabled-grey) !important;
    color: #ffffff !important;
    border-color: var(--wp--preset--color--disabled-grey) !important;
    cursor: not-allowed !important;
    opacity: 1 !important;
    pointer-events: none !important;
}
.wp-block-button.is-style-secondary .wp-block-button__link:disabled,
.wp-block-button.is-style-secondary .wp-block-button__link[disabled] {
    background: transparent !important;
    color: var(--wp--preset--color--disabled-grey) !important;
    border-color: var(--wp--preset--color--disabled-grey) !important;
}
.wp-block-button.is-style-tertiary .wp-block-button__link:disabled,
.wp-block-button.is-style-tertiary .wp-block-button__link[disabled] {
    background: transparent !important;
    color: var(--wp--preset--color--disabled-grey) !important;
    border: none !important;
}
.wp-block-button.is-style-tertiary .wp-block-button__link:disabled::after,
.wp-block-button.is-style-tertiary .wp-block-button__link[disabled]::after {
    display: none !important;
}

.z-50 {
    position: relative;
    z-index: 50;
}

.ginput_container_textarea .charleft {
    text-align: right;
}

input.gform_button,
input.gform_button[type="submit"],
li.wp-block-navigation-item.btn-primary a {
    
    font-family: var(--wp--preset--font-family--bricolage-grotesque-condensed) !important;
    font-size: var(--wp--custom--font-sizes--normal) !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
    background: var(--wp--preset--color--secondary) !important;
    color: #ffffff !important;
    border: none !important;
    border-radius: var(--wp--custom--border--radius--button) !important;
    padding: 0.5em 1em !important;
    box-shadow:
        inset 0 0 0 4px var(--wp--preset--color--secondary),
        inset 0 0 0 7px var(--wp--preset--color--primary) !important;
    transition: box-shadow 0.15s ease, background 0.15s ease !important;
    cursor: pointer !important;
    display: inline-block !important;
    text-decoration: none !important;
    color: #fff !important;
}
input.gform_button:hover,
input.gform_button[type="submit"]:hover,
li.wp-block-navigation-item.btn-primary a:hover {

    color: #fff !important;
    text-decoration: none !important;
    background: var(--wp--preset--color--secondary) !important;
    box-shadow:
        inset 0 0 0 4px var(--wp--preset--color--secondary),
        inset 0 0 0 7px #FDD79E !important;
}
input.gform_button:active,
input.gform_button[type="submit"]:active,
li.wp-block-navigation-item.btn-primary a:active {
    background: var(--wp--preset--color--secondary) !important;
    color: #FDD79E !important;
    box-shadow:
        inset 0 0 0 4px var(--wp--preset--color--secondary),
        inset 0 0 0 7px #FDD79E !important;
}
input.gform_button:focus-visible,
input.gform_button[type="submit"]:focus-visible,
li.wp-block-navigation-item.btn-primary a:focus-visible {
    background: var(--wp--preset--color--secondary) !important;
    box-shadow:
        inset 0 0 0 4px var(--wp--preset--color--secondary),
        inset 0 0 0 7px var(--wp--preset--color--primary) !important;
    outline: 2px solid var(--wp--preset--color--primary) !important;
    outline-offset: 3px !important;
}

.site-footer-container li.wp-block-navigation-item.btn-primary {
    display: none !important;
}
.site-footer-container {
    position: relative;
    z-index: 50;
    @media (max-width:980px) {
       .wp-block-navigation-is-layout-flex.footer-menu ul.wp-block-navigation {
            flex-direction: column !important;
            li {
                font-size: var(--wp--custom--font-sizes--normal) !important;
            }
       }
        
        .wp-block-site-logo  {
            margin-top: -40px !important;
            img {
                width: 120px !important;
                height: auto !important;
            }
               
        }
        #sub-footer {
            flex-direction: column-reverse !important;
            align-items: center !important;
            
            gap: 2rem !important;
            padding: 2rem !important;

            .social-icons {
                gap: 2rem !important;
            }

            & > .wp-block-group {
                justify-content: center !important;
            }
        }
    }
}

/* legacy selector kept for any existing rules below */
.gform_body {
    input::placeholder,
    select,
    textarea::placeholder {
        color: color-mix(in srgb, var(--wp--preset--color--primary) 50%, transparent) !important;
        font-size: var(--wp--preset--font-size--medium) !important;
    }
}

#sub-footer {
    a {
        text-decoration: none;

        &:hover {
            text-decoration: underline !important;
            text-underline-thickness: 1px !important;
            text-underline-offset: 3px !important;
        }

    }

    .social-icons {
        a:hover {
            opacity: 0.5;
        }
    }

}

.wp-site-blocks > header {
    position: sticky !important;
    top: 0 !important;
    z-index: 100 !important;
}

.wp-site-blocks .site-header .wp-block-site-logo {
    text-align: left !important;
}

/* Replace 768px with your desired breakpoint */
@media (max-width: 980px) {
    /* Stack columns vertically while keeping flex so gap/block-spacing still applies */
    .wp-block-columns {
        flex-wrap: wrap !important;
    }

    .wp-block-group__inner-container,
    .flex-container,
    .entry-content .wp-block-column {
        flex-basis: 100% !important;
        width: 100% !important;
    }

    .entry-content .wp-block-column {
        flex-basis: 100% !important;
        width: 100% !important;
    }

    .wp-block-columns > .wp-block-column {
        flex-basis: 100% !important;
        width: 100% !important;
        min-width: 100% !important;
    }

    .site-header {
        padding-top: var(--wp--preset--spacing--spacing-2) !important;
        padding-bottom: var(--wp--preset--spacing--spacing-2) !important; 
       
        .wp-block-site-logo {
            margin-bottom: -45px !important;
           margin-top: 0 !important;
        }
    }
}

.text-balance {
    text-wrap: balance !important;
}

.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet, .swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
    border-radius: 2px !important;
}
.swiper-pagination-bullet:not(.swiper-pagination-bullet-active) {
    background: #fff !important;
    opacity: 1 !important;

    &:hover {
        background: var(--wp--preset--color--cream-dark) !important;
    }
    &:focus {
         background: #fff !important;
         outline: 1px solid #fff !important;
    }
}
.swiper-pagination-bullet-active {
    transform: scale(1) !important;
}

/* ── Taxonomy tag pills ── */
.wp-block-post-terms a,
.wp-block-post-terms__separator {
    display: inline-flex;
    align-items: center;
    font-family: var(--wp--preset--font-family--bricolage-grotesque-condensed) !important;
    font-size: 18px;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    line-height: 1;
    text-decoration: none;
    padding: 4px 8px;
    border-radius: 6px;
    border: 2px solid transparent;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

/* Hide default separator */
.wp-block-post-terms__separator {
    display: none;
}

/* Default: orange filled */
.wp-block-post-terms a {
    background: var(--wp--preset--color--primary);
    color: #ffffff;
    border-color: var(--wp--preset--color--primary);
}

.single-post {
    .wp-block-post-terms a {
        background: var(--wp--preset--color--primary);
        color: #ffffff;
        border-color: var(--wp--preset--color--primary);
    }

    .wp-block-heading {
        color: var(--wp--preset--color--primary);
    }
    .single-post-header {
        .wp-block-post-terms a {
            background: var(--wp--preset--color--secondary);
            border-color: var(--wp--preset--color--secondary);
        }
        .wp-block-post-featured-image,
        .wp-block-post-featured-image img {
            @media (max-width: 600px) {
                height: 350px !important;   
            }
        }
    }

    @media (max-width: 600px) {
        .post-content-wrap {
            padding-top: 0 !important;
        }
    }
}

.wp-block-post-terms a:hover {
    background: transparent;
    color: var(--wp--preset--color--secondary) !important;
}

/* Variant: tag-orange — orange outline */
.is-style-tag-orange .wp-block-post-terms a {
    background: var(--wp--preset--color--secondary);
    color: var(--wp--preset--color--secondary);
    border-color: var(--wp--preset--color--secondary);
}

.is-style-tag-orange .wp-block-post-terms a:hover {
    background: var(--wp--preset--color--secondary);
    color: #ffffff;
}

/* Variant: tag-plum — dark plum filled */
.is-style-tag-plum .wp-block-post-terms a {
    background: var(--wp--preset--color--dark-plum);
    color: #ffffff;
    border-color: var(--wp--preset--color--dark-plum);
}

.is-style-tag-plum .wp-block-post-terms a:hover {
    background: transparent;
    color: var(--wp--preset--color--dark-plum);
}

/* ── Quote block ── */
.wp-block-quote {
    border: none;
    border-radius: 12px;
    padding: clamp(1.5rem, 6vw, 3rem);
    margin: var(--wp--preset--spacing--spacing-4) 0;
    color: var(--wp--preset--color--primary);
}

.wp-block-quote p {
    font-family: var(--wp--preset--font-family--bricolage-grotesque-condensed);
    font-size: inherit !important;
    font-weight: 400;
    line-height: 1;
    margin: 0 0 1.25rem;
}

.wp-block-quote cite,
.wp-block-quote .wp-block-quote__citation {
    font-family: var(--wp--preset--font-family--bricolage-grotesque-condensed);
    font-size: 0.75em !important;
    font-weight: 700;
    font-style: normal !important;
    text-transform: uppercase;
    line-height: 1em;
    letter-spacing: 0.05em;
    display: block;
    margin-top: var(--wp--preset--spacing--spacing-2);
}

.wp-block-quote cite::before,
.wp-block-quote .wp-block-quote__citation::before {
    content: '\2013\00a0'; /* — */
}

.cariboo-photo-and-quote {
    .wp-block-quote {
        background: transparent;
        padding: 0;
        border-radius: none;
    }
}

/* ── Query Loop: clickable card + image zoom ── */

/* Post card needs a stacking context for the cover link */
.wp-block-query .wp-block-post {
    position: relative;
}

/* Injected cover link fills the entire post card */
.post-card-cover-link {
    position: absolute;
    inset: 0;
    z-index: 1;
}

/* Keep taxonomy pills, title, excerpt, and cover content above the cover link */
.wp-block-query .wp-block-post .wp-block-post-terms,
.wp-block-query .wp-block-post .wp-block-post-title,
.wp-block-query .wp-block-post .wp-block-post-excerpt,
.wp-block-query .wp-block-post .wp-block-stack,
.wp-block-query .wp-block-post .wp-block-cover__inner-container {
    position: relative;
    z-index: 2;
}

/* Zoom cover image on card hover */
.wp-block-query .wp-block-post .wp-block-cover__image-background {
    transition: transform 0.8s ease !important;
}

.wp-block-query .wp-block-post:hover .wp-block-cover__image-background {
    transform: scale(1.05) !important;
}

/* ── core/video block: centered play button overlay ── */
.wp-block-video {
    position: relative;
}

.video-play-overlay {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 80px;
    height: 80px;
    padding: 0;
    border: none;
    background: transparent;
    cursor: pointer;
    transition: transform 0.2s ease, opacity 0.2s ease;
    z-index: 1;
}

.video-play-overlay:hover {
    transform: translate(-50%, -50%) scale(1.1);
}

.video-play-overlay svg {
    width: 100%;
    height: 100%;
    display: block;
    filter: drop-shadow(0 4px 12px rgba(0,0,0,0.25));
}

/* ── Cover block: video pause/play button ── */
.cover-video-toggle {
    position: absolute;
    bottom: var(--wp--preset--spacing--spacing-6);
    right: var(--wp--preset--spacing--spacing-6);
    z-index: 10;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--wp--preset--color--cream-light, #FDF8EE);
    border: none;
    border-radius: 4px;
    cursor: pointer;
    color: var(--wp--preset--color--dark-plum, #4C2343);
    transition: background 0.15s ease, color 0.15s ease;
}

.cover-video-toggle:hover {
    background: var(--wp--preset--color--yellow, #FDCA7A);
}

.cover-video-toggle:active {
    background: var(--wp--preset--color--secondary, #EC5F09);
    color: #ffffff;
}

.cover-video-toggle:focus-visible {
    outline: 2px solid var(--wp--preset--color--dark-plum, #4C2343);
    outline-offset: 2px;
}

.cover-video-toggle__icon svg {
    display: block;
    width: 16px;
    height: 16px;
}

/* ── Query Loop: Filter bar ── */
.cariboo-filter-bar {
    display: flex;
    color: var(--wp--preset--color--primary);
    flex-wrap: wrap;
    justify-content: flex-end;
    
    margin-bottom: var(--wp--preset--spacing--spacing-4, 32px);

    .inner {
        padding: var(--wp--preset--spacing--spacing-1);
        border-radius: var(--wp--custom--border--radius--small);
        background: var(--wp--preset--color--cream-dark);
        display: flex;
        flex-wrap: nowrap;
        align-items: center;
        gap: var(--wp--preset--spacing--spacing-1);

        @media (max-width: 600px) {
            width: 100%;
        }

        .label {
            padding: 0 var(--wp--preset--spacing--spacing-1);

            @media (max-width: 600px) {
                 padding: 0;
            }

        }
    }
}

a.cariboo-filter-pill {
    display: inline-flex;
    align-items: center;
    font-family: var(--wp--preset--font-family--bricolage-grotesque-condensed) !important;
    font-size:  var(--wp--preset--font-size--medium, 1rem) !important;
    font-weight: 400;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    line-height: 1;
    text-decoration: none;
    padding: 4px 8px;
    border-radius: 6px;
    border: 1px solid var(--wp--preset--color--primary);
    color: var(--wp--preset--color--primary);
    background: transparent;
    transition: background 0.15s ease, color 0.15s ease;

    &.is-active {
        background: var(--wp--preset--color--secondary);
        border-color: var(--wp--preset--color--secondary);
        color: #ffffff; 
    }
}

.cariboo-filter-pill:hover,
.cariboo-filter-pill.is-active {
    background: var(--wp--preset--color--secondary);
      border-color: var(--wp--preset--color--secondary);
    color: #ffffff;
    text-decoration: none;
}

.wp-block-post-template.is-loading {
    opacity: 0.4;
    pointer-events: none;
    transition: opacity 0.2s ease;
}

/* ── Query Loop: Load More button ── */
.cariboo-load-more-wrap {
    display: flex;
    justify-content: center;
    margin-top: var(--wp--preset--spacing--spacing-6, 48px);

    @media (max-width: 600px) {
        .cariboo-load-more {
            width: 100% !important;
            justify-content: center !important;
        }
        
    }
}

.cariboo-load-more {
    display: inline-flex;
    align-items: center;
    font-family: var(--wp--preset--font-family--bricolage-grotesque-condensed) !important;
    font-size: var(--wp--custom--font-sizes--normal, 1rem);
    font-weight: 600;
    line-height: 1.4;
    color: var(--wp--preset--color--secondary);
    background: transparent;
    border: 3px solid var(--wp--preset--color--secondary);
    border-radius: var(--wp--custom--border--radius--small, 4px);
    padding: 0.5em 1em;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease;
}

.cariboo-load-more:hover {
    background: var(--wp--preset--color--secondary);
    color: #ffffff;
}

.cariboo-load-more:active {
    background: var(--wp--preset--color--secondary);
    color: #FDD79E;
}

.cariboo-load-more:focus-visible {
    background: transparent;
    color: var(--wp--preset--color--secondary);
    border-color: var(--wp--preset--color--secondary);
    outline: 2px solid var(--wp--preset--color--primary);
    outline-offset: 2px;
}

.cariboo-load-more.is-loading {
    opacity: 0.6;
    cursor: wait;
}

/* ── Query Loop: 3-column grid on desktop ── */
.wp-block-query .wp-block-post-template {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--wp--style--block-gap, 1.5rem);
}

@media (max-width: 980px) {
    .wp-block-query .wp-block-post-template {
        grid-template-columns: 1fr;
    }
    .cariboo-info-card-grid {
        grid-template-columns: 1fr !important;
        gap: 0 !important;
    }
}


/* Header shadow — only visible after scrolling away from top */
.site-header {
    transition: box-shadow 0.3s ease;
}

.site-header.is-scrolled {
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.12);
}

:root .wp-block-post-template.is-layout-flow > *{
    margin-top: 0 !important;
}
li:has(> .story-post-card) {
   &:has(.post-card-cover-link:hover) {
        h2 a {
            color: var(--wp--preset--color--yellow) !important;
        }
   }
   &:has(.post-card-cover-link:focus) {
        h2 a {
            color: var(--wp--preset--color--secondary) !important;
        }
   }
}
.story-post-card {
    position: relative;
    
    .story-category {
        display: flex;
        gap:var(--wp--preset--spacing--spacing-1);
        flex-wrap: wrap;
    }
     x
    &.wp-block-cover.is-position-bottom-center {
            align-content: stretch !important;
            justify-content: stretch !important;
            flex-direction: column !important;
    }
    &.wp-block-cover.is-position-bottom-center .wp-block-cover__inner-container {
        align-content: stretch !important;
        margin-top: 0 !important;
        align-self: stretch !important;
        justify-self: stretch !important;
        max-height: none !important;
        position: absolute !important;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        padding: var(--wp--preset--spacing--spacing-4) !important;

        & > .wp-block-group {
            height: 100% !important;
        }

        @media (max-width: 600px) {
            padding: var(--wp--preset--spacing--spacing-2) !important;
          
        }

       
    }
    
    @media (max-width: 600px) {
            min-height: 390px !important;
            padding: var(--wp--preset--spacing--spacing-2) !important;
          
    }
}


body {
    overflow-x: clip; /* prevent horizontal scroll from out-of-bounds slides without creating a scroll container */
}


/* ── Column block: flex direction override ────────────────────────────────────── */
.wp-block-columns.cariboo-flex-row-reverse {
    display: flex;
    flex-direction: row-reverse;
}

.wp-block-columns.cariboo-flex-column-reverse {
    display: flex;
    flex-direction: column-reverse;
}

/* ── Group block: reverse layout order (desktop only, resets on mobile) ─────── */
@media (min-width: 981px) {
    .wp-block-group.is-layout-flex.is-reverse-layout {
        flex-direction: row-reverse;
    }
    .wp-block-group.is-layout-flex.is-vertical.is-reverse-layout {
        flex-direction: column-reverse;
    }
}

/* ── Responsive spacing scale — halved on mobile ───────────────────────────── */
/* Overriding the CSS custom properties means every block that uses a spacing
   preset automatically gets the reduced value on mobile, with no per-block rules. */
@media (max-width: 767px) {
    :root {
        --wp--preset--spacing--spacing-half: 3px;
        --wp--preset--spacing--spacing-1:    6px;
        --wp--preset--spacing--spacing-2:    12px;
        --wp--preset--spacing--spacing-3:    18px;
        --wp--preset--spacing--spacing-4:    24px;
        --wp--preset--spacing--spacing-5:    30px;
        --wp--preset--spacing--spacing-6:    36px;
        --wp--preset--spacing--spacing-7:    42px;
        --wp--preset--spacing--spacing-8:    48px;
        --wp--preset--spacing--spacing-9:    54px;
        --wp--preset--spacing--spacing-10:   60px;
        --wp--preset--spacing--spacing-11:   72px;
        --wp--preset--spacing--spacing-xl:   90px;
    }
}

/* ── Reduced border radius on mobile ───────────────────────────────────────── */
/* spacing-half resolves to the mobile-overridden value (3px) automatically. */
@media (max-width: 767px) {
    .wp-block-image img,
    .wp-block-cover,
    .wp-block-group {
        border-radius: var(--wp--preset--spacing--spacing-half);
    }

   
}

/* ── Responsive visibility ──────────────────────────────────────────────────── */
@media (max-width: 767px) {
    .cariboo-hide-mobile { display: none !important; }
}
@media (min-width: 768px) and (max-width: 980px) {
    .cariboo-hide-tablet { display: none !important; }
}
@media (min-width: 981px) {
    .cariboo-hide-desktop { display: none !important; }
}

@media (max-width: 767px) {
    .page-hero.wp-block-cover {
        min-height: 536px !important;
        align-items: flex-end !important;
        padding-top: var(--wp--preset--spacing--spacing-3) !important;
        padding-right: var(--wp--preset--spacing--spacing-3) !important;
        padding-bottom: var(--wp--preset--spacing--spacing-3) !important;
        padding-left: var(--wp--preset--spacing--spacing-3) !important;
    }
    .wp-block-ver:not(.cariboo-map) .wp-block-cover__background {
        
        background: linear-gradient(180deg,rgba(0,0,0,0) 45%,rgb(1,1,1) 100%) !important;

    }
    .mobile-full-width {
        width: 100%;
    }
}

ul.wp-block-navigation__submenu-container {
    font-weight: 400;
    text-transform: none;

    li {
        font-size: var(--wp--preset--font-size--large) !important;
    }
}

@media (max-width: 980px) {
    /* Submenu items — smaller than top-level, centered */
    .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
        font-size: var(--wp--preset--font-size--x-large) !important;
        text-align: center !important;
        justify-content: center !important;
    }

    .wp-block-navigation__responsive-container-content .wp-block-navigation-item.open-on-hover-click > .wp-block-navigation__submenu-container {
        position: static !important;
        background: transparent !important;
        box-shadow: none !important;
        padding: 0.5rem 0 0 !important;
        min-width: 0 !important;
        width: 100% !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        display: none !important;
    }

    .wp-block-navigation.is-responsive .is-menu-open .wp-block-navigation-item {
        align-items: center !important;

    }

    .wp-block-navigation .has-child .wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content {
        padding: 0 1em;
    }
}

/* ── Single post header: staggered fade-in ───────────────────── */
/* Fade only — transform is owned by JS parallax so must not appear in keyframes */
@keyframes postHeaderFadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* Start hidden */
.single-post-header .wp-block-post-terms,
.single-post-header .wp-block-post-title,
.single-post-header .wp-block-post-excerpt,
.single-post-header .wp-block-post-featured-image {
    opacity: 0;
}

.single-post-header.is-animated .wp-block-post-terms {
    animation: postHeaderFadeIn 0.45s ease forwards;
    animation-delay: 0ms;
}
.single-post-header.is-animated .wp-block-post-title {
    animation: postHeaderFadeIn 0.45s ease forwards;
    animation-delay: 100ms;
}
.single-post-header.is-animated .wp-block-post-excerpt {
    animation: postHeaderFadeIn 0.45s ease forwards;
    animation-delay: 280ms;
}
.single-post-header.is-animated .wp-block-post-featured-image {
    animation: postHeaderFadeIn 0.5s ease forwards;
    animation-delay: 450ms;
}

/* Parallax: individual elements move at different speeds */
.single-post-header .wp-block-post-terms,
.single-post-header .wp-block-post-title,
.single-post-header .wp-block-post-excerpt,
.single-post-header .wp-block-post-featured-image {
    will-change: transform;
}

/* ── L2 hero: fade-in + parallax ──────────────────────────────── */
.l2-hero .wp-block-cover__image-background,
.l2-hero .wp-block-cover__video-background {
    will-change: transform;
    /* Oversized so the bottom edge never shows during parallax.
       300px extra covers ~860px of scroll at a 0.35x factor. */
    height: calc(100% + 300px) !important;
    top: -50px !important;
}

.l2-hero .wp-block-cover__inner-container {
    opacity: 0;
    transition: opacity 0.9s ease;
    will-change: opacity, transform;
}

.l2-hero.l2-hero--ready .wp-block-cover__inner-container {
    opacity: 1;
}

/* Default link :focus — half-opacity underline */
a:focus,
.wp-element-link:focus {
    text-decoration: underline;
    text-decoration-color: color-mix(in srgb, currentColor 50%, transparent);   
}

/* Text links inside paragraphs — solid outline + underline on keyboard focus */
p a:focus-visible {
    outline: 1.5px solid currentColor !important;
    outline-style: solid !important;
    outline-offset: 4px;
    border-radius: 4px;
    text-decoration: underline;
}

/* ── Group block cover link ───────────────────────────────────── */
.group-block-cover-link {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: block;
    cursor: pointer;
}

/* Visually hidden but accessible to screen readers */
.group-block-sr-link {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Ensure interactive elements inside the group remain clickable above the cover link */
.wp-block-group:has(.group-block-cover-link) a:not(.group-block-cover-link):not(.group-block-sr-link),
.wp-block-group:has(.group-block-cover-link) button {
    position: relative;
    z-index: 2;
}

/* Image zoom on hover — clip to the image frame, scale only the img content */
.wp-block-group:has(.group-block-cover-link) .wp-block-image {
    overflow: hidden;
}
.wp-block-group:has(.group-block-cover-link) .wp-block-image img {
    transform: scale(1);
    transition: transform 0.6s ease;
    will-change: transform;
}
.wp-block-group:has(.group-block-cover-link) {
    transition: background 0.3s ease;
}
.wp-block-group:has(> .group-block-cover-link:hover) .wp-block-image img,
.wp-block-group:has(> .group-block-cover-link:focus-visible) .wp-block-image img {
    transform: scale(1.06);
}
.wp-block-group:has(> .group-block-cover-link:hover) {
    background: var(--wp--preset--color--primary) !important;

    .wp-block-heading,
    p {
        color: #fff !important;
    }
}

.wp-block-group:has(> .group-block-cover-link:focus-visible),
.wp-block-group:has(> .group-block-cover-link:active) {
     .wp-block-heading,
    p {
        color: var(--wp--preset--color--yellow) !important;
    }
}

.cariboo-icon-card.wp-block-group {
    border-radius: var(--wp--custom--border--radius--standard);
    position: relative;
}

/* Cover link — stretches over the entire icon card */
.cariboo-icon-card .icon-card-cover-link {
    position: absolute;
    inset: 0;
    z-index: 1;
    display: block;
    cursor: pointer;
    border-radius: inherit;
}

/* Keep interactive elements above the cover link */
.cariboo-icon-card a:not(.icon-card-cover-link),
.cariboo-icon-card button {
    position: relative;
    z-index: 2;
}

/* Image zoom on hover */
.cariboo-icon-card:has(.icon-card-cover-link) .wp-block-image img {
    transform: scale(1);
    transition: transform 0.6s ease;
    will-change: transform;
}
.cariboo-icon-card:has(> .icon-card-cover-link:hover) .wp-block-image img,
.cariboo-icon-card:has(> .icon-card-cover-link:focus-visible) .wp-block-image img {
    transform: scale(1.06);
}
.cariboo-icon-card:has(> .icon-card-cover-link:hover) .wp-block-button.is-style-tertiary .wp-block-button__link,
.cariboo-icon-card:has(> .icon-card-cover-link:focus-visible) .wp-block-button.is-style-tertiary .wp-block-button__link {
    text-decoration: none !important;
}
.cariboo-icon-card:has(> .icon-card-cover-link:hover) .wp-block-button.is-style-tertiary .wp-block-button__link::after,
.cariboo-icon-card:has(> .icon-card-cover-link:focus-visible) .wp-block-button.is-style-tertiary .wp-block-button__link::after {
    opacity: 0.5;
    animation: cariboo-arrow-slide 0.7s ease-in-out infinite;
}


.cariboo-icon-grid-banner.wp-block-cover {
    .wp-block-group.is-layout-grid {
        margin-top: 0 !important;
    }

    @media (max-width: 767px) {
        padding: 0 !important;

        .wp-block-columns {
            display: flex !important;
            flex-direction: column-reverse !important;
        }

        box-shadow: none !important;

        .wp-block-column:has(.wp-block-button) > .wp-block-group {
            height: 460px !important;
            padding: var(--wp--preset--spacing--spacing-4) !important;
        }

        .wp-block-cover__image-background {
            height: 460px !important;
            border-radius: var(--wp--custom--border--radius--standard) !important;
        }
    }
}

/* Only stretch to full width on mobile when there is a single button and wrapping is allowed */
.wp-block-buttons.is-layout-flex:not(.is-nowrap):has(> .wp-block-button:only-child:not(.is-style-tertiary)) {
    @media (max-width: 767px) {
        .wp-block-button {
            width: 100% !important;
            max-width: 767px !important;
        }
    }
}

.callout-block-1,
.featured-post__content-wrap,
.wp-block-buttons.has-secondary-background-color,
.has-secondary-background-color  {
    .wp-block-button.is-style-secondary a.wp-block-button__link,
    .wp-block-button.is-style-secondary a.wp-block-button__link {
        &:hover,
        &:hover:focus {
            color: var(--wp--preset--color--secondary) !important;
            background: #fff !important;
            border-color: #fff !important;
        }
        
        &:focus,
        &:focus-visible {
            color: #fff !important;
            background: var(--wp--preset--color--secondary) !important;
            border-color: #fff !important;
        }
    }
    
}

/* =============================================================================
   THE EVENTS CALENDAR — theme styling
   ============================================================================= */

/* ── Reset plugin defaults ── */
.tribe-common *,
.tribe-events * {
    box-sizing: border-box;
}

/* ── Tribe buttons → secondary (orange outline) style ── */
.tribe-common-c-btn,
.tribe-common-c-btn-border {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: transparent !important;
    color: var(--wp--preset--color--secondary) !important;
    border: 3px solid var(--wp--preset--color--secondary) !important;
    border-radius: var(--wp--custom--border--radius--small) !important;
    font-family: var(--wp--preset--font-family--bricolage-grotesque) !important;
    font-size: 0.9375rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.01em !important;
    line-height: 1.4 !important;
    padding: 0.55em 1.25em !important;
    text-decoration: none !important;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease !important;
}

.tribe-common-c-btn:hover,
.tribe-common-c-btn-border:hover {
    background: var(--wp--preset--color--secondary) !important;
    color: #ffffff !important;
    border-color: var(--wp--preset--color--secondary) !important;
}

.tribe-common-c-btn:active,
.tribe-common-c-btn-border:active {
    background: var(--wp--preset--color--secondary) !important;
    color: #FDD79E !important;
    border-color: var(--wp--preset--color--secondary) !important;
}

/* ── Top bar / navigation ── */
.tribe-events .tribe-events-header {
    border-bottom: none;
    padding-bottom: var(--wp--preset--spacing--spacing-3);
}

.tribe-events .tribe-events-c-nav__list-item-link,
.tribe-events .tribe-events-c-top-bar__nav-link {
    color: var(--wp--preset--color--primary);
    font-family: var(--wp--preset--font-family--bricolage-grotesque-condensed);
    font-weight: 700;
    text-decoration: none;
}

.tribe-events .tribe-events-c-nav__list-item-link:hover,
.tribe-events .tribe-events-c-top-bar__nav-link:hover {
    color: var(--wp--preset--color--secondary);
}

/* ── List view: event row ── */
.tribe-events-calendar-list__event-row {
    margin-bottom: var(--wp--preset--spacing--spacing-3) !important;
    list-style: none !important;
}

.tribe-events-calendar-list__event-row::before {
    display: none !important;
}

.tribe-events-calendar-list__event {
    background: var(--wp--preset--color--primary) !important;
    border-radius: var(--wp--custom--border--radius--standard, 12px) !important;
    padding: var(--wp--preset--spacing--spacing-4) !important;
    box-shadow: var(--wp--preset--shadow--natural) !important;
    display: flex !important;
    flex-direction: column !important;
    gap: var(--wp--preset--spacing--spacing-2) !important;
    width: 100% !important;
    border: none !important;
}

/* ── Title ── */
.tribe-events-calendar-list__event-title {
    font-family: var(--wp--preset--font-family--bricolage-grotesque-condensed) !important;
    font-size: clamp(1.25rem, 3vw, 1.75rem) !important;
    font-weight: 700 !important;
    line-height: 1.15 !important;
    margin: 0 0 var(--wp--preset--spacing--spacing-1) !important;
    text-transform: none !important;
}

.tribe-events-calendar-list__event-title-link {
    color: #ffffff !important;
    text-decoration: none !important;
}

.tribe-events-calendar-list__event-title-link:hover {
    color: var(--wp--preset--color--secondary) !important;
    text-decoration: none !important;
}

/* ── Description ── */
.tribe-events-calendar-list__event-description {
    color: rgba(255, 255, 255, 0.85) !important;
    font-size: var(--wp--preset--font-size--medium, 1rem) !important;
    margin: 0 !important;
}

.tribe-events-calendar-list__event-description p {
    margin: 0 !important;
}

/* ── Date / time ── */
.tribe-events-calendar-list__event-datetime-wrapper {
    margin-top: auto !important;
    padding-top: var(--wp--preset--spacing--spacing-2) !important;
}

.tribe-events-calendar-list__event-datetime {
    font-family: var(--wp--preset--font-family--bricolage-grotesque-condensed) !important;
    font-size: var(--wp--preset--font-size--large) !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    display: block !important;
}

/* Date part (e.g. "September 28") */
.tribe-events-calendar-list__event-datetime .tribe-event-date-start {
    color: var(--wp--preset--color--secondary) !important;
    display: block !important;
}

/* Time part (e.g. "6:30–8:00") */
.tribe-events-calendar-list__event-datetime .tribe-event-time {
    color: #ffffff !important;
    font-size: 1.1rem !important;
    display: block !important;
}

/* ── Venue / category ── */
.tribe-events-calendar-list__event-venue,
.tribe-events-calendar-list__event-category {
    color: rgba(255, 255, 255, 0.7) !important;
    font-size: 0.875rem !important;
}

/* ── Featured image — hide by default, keep if present ── */
.tribe-events-calendar-list__event-featured-image-wrapper {
    border-radius: 8px !important;
    overflow: hidden !important;
    margin-bottom: var(--wp--preset--spacing--spacing-2) !important;
}

/* ── Grid layout for list view: 2 columns ── */
.tribe-events-calendar-list__events {
    display: grid !important;
    grid-template-columns: repeat(2, 1fr) !important;
    gap: var(--wp--preset--spacing--spacing-3) !important;
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.tribe-events-calendar-list__event-row {
    margin-bottom: 0 !important;
}

/* ── Bottom nav ── */
.tribe-events-calendar-list__nav {
    margin-top: var(--wp--preset--spacing--spacing-4) !important;
}

.tribe-events .tribe-events-c-nav__list-item-link {
    border: 2px solid var(--wp--preset--color--secondary) !important;
    border-radius: var(--wp--custom--border--radius--button, 12px) !important;
    padding: 0.4em 1.2em !important;
    color: var(--wp--preset--color--secondary) !important;
    font-weight: 700 !important;
    transition: background 0.15s ease, color 0.15s ease !important;
}

.tribe-events .tribe-events-c-nav__list-item-link:hover {
    background: var(--wp--preset--color--secondary) !important;
    color: #ffffff !important;
}

/* ── Month view: basic theming ── */
.tribe-events .tribe-events-calendar-month__calendar-event {
    background: var(--wp--preset--color--primary) !important;
    border-radius: 4px !important;
    color: #ffffff !important;
}

.tribe-events .tribe-events-calendar-month__calendar-event-title-link {
    color: #ffffff !important;
}

.tribe-events .tribe-events-calendar-month__day--current .tribe-events-calendar-month__day-date {
    color: var(--wp--preset--color--secondary) !important;
}

/* ── Mobile: single column ── */
@media (max-width: 767px) {
    .tribe-events-calendar-list__events {
        grid-template-columns: 1fr !important;
    }
}

.entry-content > .wp-block-group.alignfull {
    border-radius: 0;
}
/* ── Cover block: parallax ─────────────────────────────────────── */
.cariboo-cover-parallax {
    overflow: hidden;
}

.cariboo-cover-parallax > .wp-block-cover__image-background {
    top: -15%;
    height: 130%;
    transform: translateY( var(--cover-parallax, 0px) );
    will-change: transform;
}
.tribe-events-c-events-bar__views,
.tribe-common-h--alt,
.tribe-events,
.tribe-events-header,
.tribe-common .tribe-common-b2,
.tribe-events-c-top-bar,
.tribe-common .tribe-common-form-control-text__input, 
.tribe-common--breakpoint-medium.tribe-common .tribe-common-form-control-text__input,
.tribe-events .tribe-events-c-view-selector__list-item-text {
    font-family: var(--wp--preset--font-family--bricolage-grotesque) !important;
    
}