/* 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/navy-accent.svg');
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
}
.tab-selector--bg-navy        { background-color: var(--color-navy); }

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

.tab-selector {
    padding: var(--section-pad-y) var(--section-pad-x);

    @media (max-width: 767px) {
        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;
        }

        @media (min-width: 768px) {
            &.tab-selector__nav--centered {
                justify-content: center;
            }
        }

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

    & .tab-selector__tab {
        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) {
            white-space: nowrap;
            text-align: left;
        }
        border-top: 0px;
        border-left: 0px;
        border-right: 5px solid transparent;
        border-bottom: 5px solid transparent;
        color: var(--color-navy);
        background-color: var(--color-white);
        font-family: 'Work Sans', sans-serif;
        font-size: 1rem;
        font-weight: 600;
        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-gold-light);
            color: var(--color-navy);
            border-color: transparent;
            border-right: 5px solid var(--color-navy);
            border-bottom: 5px solid var(--color-navy);
            border-top: 0px;
            border-left: 0px;
        }

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

        &.is-active {
            background-color: var(--color-gold-light);
            color: var(--color-navy);
            border-color: transparent;
            border-right: 5px solid var(--color-navy);
            border-bottom: 5px solid var(--color-navy);
            cursor: default;
            border-top: 0px;
            border-left: 0px;

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

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

    & .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: 1.5rem;
        }

        @media (min-width: 768px) {
            flex-direction: row;
            align-items: center;
            justify-content: 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-navy);
            border-bottom: 15px solid var(--color-navy);
            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-navy);
            border-bottom: 15px solid var(--color-navy);
            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: 1.25rem;
            padding: 1.5rem;
            background: rgba(255, 255, 255, 0.85);
        }

        @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: 'Domine', serif;
        font-size: clamp(1.5rem, 3vw, 2rem);
        font-weight: 700;
        color: var(--color-gold);
        margin: 0;
        line-height: 1.2;
        text-align: center;
    }

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

    & .tab-selector__excerpt {
        font-size: 1rem;
        line-height: 1.75;
        color: #444;
        margin: 0;
        flex: 1;
    }

    & .tab-selector__arrow-link {
        display: inline-flex;
        align-self: center;
        color: var(--color-navy);
        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-navy);
        }
    }

    /* 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;
        }
    }

    /* Description text — left-aligned on mobile */

    & .tab-selector__description {
        font-size: 1rem;
        line-height: 1.75;
        color: #444;
        margin: 0;

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

    /* Panel-inner as link (home services — whole panel is clickable).
       a.tab-selector__panel-inner = services template (whole node is an <a>);
       .tab-selector__panel-inner--link = description template (stretched link). */
    & 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-navy);
                color: var(--color-white);
            }
        }
    }

    /* No image — overlay fills the panel and text left-aligns */
    & .tab-selector__panel-inner--no-image {
        & .tab-selector__overlay {
            text-align: left;
            align-items: flex-start;

            @media (min-width: 768px) {
                flex: 1 1 auto;
                max-width: none;
                width: 100%;
                margin-left: 0;
            }
        }

        & .tab-selector__title {
            text-align: left;
        }

        & .tab-selector__description {
            text-align: left;
            width: 100%;
        }

        & .tab-selector__arrow-link {
            align-self: flex-start;
        }
    }

    /* Centered title toggle (per tab) — the compound selector wins over the
       no-image override (.tab-selector__panel-inner--no-image .tab-selector__title). */
    & .tab-selector__panel-inner--no-image .tab-selector__title.tab-selector__title--centered,
    & .tab-selector__title--centered {
        text-align: center;
        width: 100%;
    }

    /* Center link arrow toggle (per tab) — the compound selector wins over the
       no-image override (.tab-selector__panel-inner--no-image .tab-selector__arrow-link). */
    & .tab-selector__panel-inner--no-image .tab-selector__arrow-link.tab-selector__arrow-link--centered,
    & .tab-selector__arrow-link--centered {
        align-self: center;
    }

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