/* Background variants
   ========================================================================== */

.tab-selector--bg-transparent { background-color: transparent; }
.tab-selector--bg-tan         { background-color: transparent; }
.tab-selector--bg-light-blue {
    background-color: var(--color-blue);
    background-image: url('../../assets/images/Brisbane-Icon-Pattern.png');
    background-repeat: repeat;
    background-position: center;
}
.tab-selector--bg-navy        { background-color: var(--color-dark_green); }

@media (max-width: 767px) {
    .tab-selector.tab-selector--bg-light-blue {
        padding-top: 5rem;
    }
}

/* Component
   ========================================================================== */

.tab-selector {
    padding: 5rem 2rem;

    @media (max-width: 767px) {
        padding-top: 0;
        padding-left: 0;
        padding-right: 0;
    }

    & .tab-selector__inner {
        max-width: var(--container-max-width);
        margin: 0 auto;
    }

    /* Tab nav
       ====================================================================== */

    & .tab-selector__nav {
        display: flex;
        flex-wrap: nowrap;
        gap: 12px;
        margin-bottom: 3rem;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;

        &::-webkit-scrollbar {
            display: none;
        }

        @media (min-width: 768px) {
            justify-content: flex-start;

            &.tab-selector__nav--centered {
                justify-content: center;
            }
        }

        @media (max-width: 767px) {
            padding: 0 1rem 0.5rem;
            margin-bottom: 0.5rem;
        }
    }

    & .tab-selector__tab {
        box-sizing: border-box;
        display: inline-flex;
        align-items: center;
        justify-content: space-between;
        gap: 10px;
        padding: 15px 30px;
        border-radius: 25px;
        text-transform: uppercase;
        flex-shrink: 0;
        scroll-snap-align: center;

        @media (min-width: 768px) {
            flex: 0 0 calc(25% - 9px);
            text-align: left;
        }

        @media (max-width: 767px) {
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            white-space: normal;
            overflow: hidden;
            max-width: 80vw;
            text-align: left;
        }
        border-top: 0;
        border-left: 0;
        border-right: 5px solid var(--color-white);
        border-bottom: 5px solid var(--color-white);
        color: var(--color-dark_green);
        background-color: var(--color-white);
        font-family: 'Work Sans', sans-serif;
        font-size: 1rem;
        font-weight: 600;
        text-decoration: none;
        cursor: pointer;
        transition: all .2s ease-in-out;

        & .tab-selector__tab-arrow {
            display: inline-block;
            flex-shrink: 0;
            transition: transform 0.2s ease-in-out;

            @media (max-width: 767px) {
                display: none;
            }
        }

        &:hover:not(.is-active) {
            background-color: var(--color-dark_green);
            color: var(--color-white);
            border-right-color: var(--color-white);
            border-bottom-color: var(--color-white);
        }

        &:focus-visible {
            outline: 3px solid var(--color-maroon);
            outline-offset: 3px;
        }

        &.is-active {
            background-color: var(--color-dark_green);
            color: var(--color-white);
            border-right-color: var(--color-white);
            border-bottom-color: var(--color-white);
            cursor: default;

            & .tab-selector__tab-arrow {
                transform: rotate(90deg);
            }
        }
    }

    /* Panels
       ====================================================================== */

    & .tab-selector__panels {
        @media (max-width: 767px) {
            padding: 0 1rem;
        }
    }

    & .tab-selector__panel {
        display: none;

        &.is-active {
            display: block;
        }
    }

    & .tab-selector__panel-inner {
        position: relative;
        display: flex;
        flex-direction: column;

        @media (max-width: 767px) {
            padding: 0;
            padding-top: 1rem;
        }

        @media (min-width: 768px) {
            flex-direction: row;
            align-items: center;
            justify-content: center;
        }
    }

    /* No-image: overlay stretches full container width */

    & .tab-selector__panel-inner--no-image {
        & .tab-selector__description {
            width: 100%;
        }

        @media (min-width: 768px) {
            justify-content: stretch;

            & .tab-selector__overlay {
                flex: 1 1 auto;
                max-width: 100%;
                margin-left: 0;
                text-align: left;
                align-items: flex-start;
            }
        }
    }

    /* Centered title toggle (per tab) */
    & .tab-selector__title--centered {
        text-align: center;
        width: 100%;
    }

    /* Center link arrow toggle (per tab) */
    & .tab-selector__panel-inner--no-image .tab-selector__arrow-link.tab-selector__arrow-link--centered,
    & .tab-selector__arrow-link--centered {
        align-self: center;
    }

    /* Image — fixed 500×550 background-image with navy frame accent */

    & .tab-selector__image {
        background-size: cover;
        background-position: center;
        background-clip: padding-box;
        border-radius: 20px;

        @media (max-width: 767px) {
            width: 100%;
            aspect-ratio: 16 / 9;
            border-radius: 20px;
            border-right: 15px solid var(--color-maroon);
            border-bottom: 15px solid var(--color-maroon);
            margin-bottom: 10px;
            box-sizing: border-box;
        }

        @media (min-width: 768px) {
            flex-shrink: 0;
            width: 500px;
            height: 550px;
            border-radius: 20px;
            border-right: 15px solid var(--color-maroon);
            border-bottom: 15px solid var(--color-maroon);
            position: relative;
            z-index: 1;
        }
    }

    /* Overlay panel — white blur, overlaps image by 50px */

    & .tab-selector__overlay {
        background: rgba(255, 255, 255, 0.75);
        backdrop-filter: blur(12.5px);
        -webkit-backdrop-filter: blur(12.5px);
        border-radius: 20px;
        padding: 2.5rem;
        display: flex;
        flex-direction: column;
        gap: 1.25rem;
        text-align: center;
        align-items: center;

        @media (max-width: 767px) {
            border-radius: 20px;
            margin-top: 0;
            padding: 1.5rem;
        }

        @media (min-width: 768px) {
            flex: 0 0 400px;
            max-width: 400px;
            margin-left: -50px;
            position: relative;
            z-index: 2;
            align-self: center;
            padding: 3rem;
            transition: margin-left 0.3s ease;
        }
    }

    & .tab-selector__title {
        font-family: 'Work Sans', sans-serif;
        font-size: clamp(1.5rem, 3vw, 2rem);
        font-weight: 700;
        color: var(--color-dark_green);
        margin: 0;
        line-height: 1.2;
        text-align: center;
    }

    & .tab-selector__description {
        font-size: 1rem;
        line-height: 1.75;
        color: var(--color-copy);
        margin: 0;

        @media (max-width: 767px) {
            text-align: left;
        }
    }

    & .tab-selector__divider {
        border: none;
        border-top: 1px solid var(--color-blue);
        margin: 0;
        width: 100%;
    }

    & .tab-selector__excerpt {
        font-size: 1rem;
        line-height: 1.75;
        color: var(--color-copy);
        margin: 0;
        flex: 1;
    }

    & .tab-selector__arrow-link {
        display: inline-flex;
        align-self: center;
        color: var(--color-dark_green);
        text-decoration: none;
        margin-top: 0.5rem;
        padding: 5px;
        border-radius: 6px;
        background-color: transparent;
        transition: color 0.2s ease, transform 0.2s ease, background-color 0.2s ease;

        &:hover {
            color: var(--color-white);
            transform: translateX(4px);
            background-color: var(--color-maroon);
        }
    }

    /* Stretched link — makes the whole panel clickable WITHOUT wrapping the
       content in an <a> (which would nest anchors when the WYSIWYG description
       contains a link, splitting the markup and breaking the layout). The
       transparent anchor overlays the panel; the overlay passes clicks through
       to it, while real links inside the description stay clickable. */
    & .tab-selector__panel-link {
        position: absolute;
        inset: 0;
        z-index: 3;
        border-radius: 20px;
        text-decoration: none;
    }

    & .tab-selector__panel-inner--link {
        & .tab-selector__overlay {
            pointer-events: none;
        }

        & .tab-selector__overlay a {
            pointer-events: auto;
            position: relative;
            z-index: 4;
        }
    }

    /* Panel-inner as clickable anchor.
       a.tab-selector__panel-inner = legacy full-anchor markup;
       .tab-selector__panel-inner--link = stretched-link markup. */

    & a.tab-selector__panel-inner,
    & .tab-selector__panel-inner--link {
        text-decoration: none;
        color: inherit;

        @media (min-width: 768px) {
            &:hover .tab-selector__overlay {
                margin-left: 30px;
            }

            &:hover .tab-selector__arrow-link {
                background-color: var(--color-maroon);
                color: var(--color-white);
            }
        }
    }

    /* No image as link — don't shift the (full-width) overlay on hover */
    & .tab-selector__panel-inner--no-image.tab-selector__panel-inner--link {
        @media (min-width: 768px) {
            &:hover .tab-selector__overlay {
                margin-left: 0;
            }
        }
    }
}