/*
 * Premium desktop mega-menu panels.
 *
 * The host selectors are deliberately limited to menu items marked by the
 * guarded Main Site migration. The existing header, top-level links, menu bar,
 * and mobile navigation remain outside this stylesheet's ownership.
 */
@media (max-width: 1024px) {
    .gcv-mm-premium-host > .rtmegamenu-contents.sub-menu {
        display: none;
    }
}

@media (min-width: 1025px) {
    .gcv-mm-premium-host > .rtmegamenu-contents.sub-menu {
        position: absolute;
        z-index: 9;
        display: block;
        width: 1120px;
        max-width: calc(100vw - 40px);
        min-height: 456px;
        left: 0;
        right: auto;
        top: 100%;
        margin: 0;
        padding: 0;
        overflow: hidden;
        border: 1px solid rgba(18, 52, 61, .14);
        border-radius: 24px;
        background: #fff;
        box-shadow: 0 24px 64px -18px rgba(18, 52, 61, .34), 0 2px 8px rgba(18, 52, 61, .1);
        list-style: none;
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        translate: var(--gcv-mm-premium-x, 0px) 0;
        transform: translateY(-10px) scale(.985);
        transform-origin: top center;
        transition: none;
    }

    .gcv-mm-premium-host.gcv-mm-open > .rtmegamenu-contents.sub-menu,
    .gcv-mm-premium-host.gcv-mm-closing > .rtmegamenu-contents.sub-menu {
        opacity: 1;
        visibility: visible;
    }

    .gcv-mm-premium-host.gcv-mm-open > .rtmegamenu-contents.sub-menu {
        pointer-events: auto;
        transform: translateY(0) scale(1);
    }

    .gcv-mm-premium-host.gcv-mm-opening > .rtmegamenu-contents.sub-menu {
        animation: gcv-mm-premium-panel-in 300ms cubic-bezier(.22, 1, .36, 1) both;
    }

    .gcv-mm-premium-host.gcv-mm-closing > .rtmegamenu-contents.sub-menu {
        pointer-events: none;
        animation: gcv-mm-premium-panel-out 220ms cubic-bezier(.4, 0, .6, 1) both;
    }

    .gcv-mm-premium-host > .rtmegamenu-contents > .elementor,
    .gcv-mm-premium-host > .rtmegamenu-contents > .elementor > .elementor-element,
    .gcv-mm-premium-host .gcv-mm-premium-template,
    .gcv-mm-premium-host .elementor-widget-html,
    .gcv-mm-premium-host .elementor-widget-html > .elementor-widget-container {
        width: 100%;
        max-width: none;
        margin: 0;
        padding: 0;
    }

    .gcv-mm-premium,
    .gcv-mm-premium *,
    .gcv-mm-premium *::before,
    .gcv-mm-premium *::after {
        box-sizing: border-box;
    }

    .gcv-mm-premium {
        --gcv-mm-gulf-500: var(--Key, #218199);
        --gcv-mm-tide-900: #12343d;
        --gcv-mm-ink-700: #2d3a41;
        --gcv-mm-sun-400: #ffdf66;
        --gcv-mm-palm-600: #16835f;
        --gcv-mm-shell-50: #f8fbfc;
        --gcv-mm-tide-14: rgba(18, 52, 61, .14);
        --gcv-mm-shadow-lift: 0 0 18px rgba(18, 52, 61, .12);
        position: relative;
        width: 100%;
        min-height: 456px;
        display: grid;
        grid-template-columns: 382px minmax(0, 1fr);
        overflow: hidden;
        color: var(--gcv-mm-ink-700);
        background: #fff;
        font-family: Cabin, Arial, sans-serif;
        font-synthesis: none;
        text-align: left;
    }

    .gcv-mm-premium a {
        color: inherit;
    }

    .gcv-mm-premium__sunline {
        position: absolute;
        z-index: 4;
        inset: 0 0 auto;
        height: 4px;
        background: linear-gradient(90deg, var(--gcv-mm-sun-400), #ff765f, var(--gcv-mm-gulf-500));
    }

    .gcv-mm-premium__editorial {
        position: relative;
        min-height: 456px;
        overflow: hidden;
        background: var(--gcv-mm-tide-900);
    }

    .gcv-mm-premium__editorial > img {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        max-width: none;
        object-fit: cover;
        transform: scale(1);
    }

    .gcv-mm-premium-host.gcv-mm-opening .gcv-mm-premium__editorial > img {
        animation: gcv-mm-premium-image-in 520ms cubic-bezier(.22, 1, .36, 1) 40ms both;
    }

    .gcv-mm-premium__editorial-shade {
        position: absolute;
        inset: 0;
        background: linear-gradient(180deg, rgba(18, 52, 61, .03) 10%, rgba(18, 52, 61, .2) 42%, rgba(18, 52, 61, .96) 100%);
    }

    .gcv-mm-premium__editorial-copy {
        position: absolute;
        z-index: 2;
        inset: auto 32px 32px;
        color: #fff;
    }

    .gcv-mm-premium__eyebrow {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        margin: 0 0 12px;
        color: var(--gcv-mm-sun-400);
        font-size: 12px;
        font-weight: 600;
        line-height: 1.2;
        letter-spacing: .11em;
        text-transform: uppercase;
    }

    .gcv-mm-premium__eyebrow::before {
        content: "";
        width: 24px;
        height: 2px;
        flex: 0 0 24px;
        border-radius: 2px;
        background: currentColor;
    }

    .gcv-mm-premium__eyebrow--dark {
        color: var(--gcv-mm-gulf-500);
    }

    .gcv-mm-premium__editorial-copy h2,
    .gcv-mm-premium__content-heading h2 {
        font-family: Outfit, Arial, sans-serif;
        font-weight: 600;
        letter-spacing: -.02em;
        text-transform: none;
    }

    .gcv-mm-premium__editorial-copy h2 {
        max-width: 300px;
        margin: 0 0 12px;
        color: #fff;
        font-size: 36px;
        line-height: 1.08;
    }

    .gcv-mm-premium__editorial-copy p {
        margin: 0 0 22px;
        color: rgba(255, 255, 255, .86);
        font-size: 14px;
        font-weight: 400;
        line-height: 1.45;
    }

    .gcv-mm-premium__editorial-copy > a {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
        gap: 12px;
        padding: 0 18px;
        border: 1px solid rgba(255, 255, 255, .38);
        border-radius: 999px;
        color: var(--gcv-mm-tide-900);
        background-color: var(--gcv-mm-sun-400);
        box-shadow: 0 8px 24px rgba(18, 52, 61, .18);
        font-size: 14px;
        font-weight: 600;
        line-height: 1;
        text-decoration: none;
        transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
    }

    .gcv-mm-premium__editorial-copy > a:hover,
    .gcv-mm-premium__editorial-copy > a:focus-visible {
        border-color: rgba(255, 255, 255, .64);
        background-color: #ffe88f;
        box-shadow: 0 0 22px rgba(18, 52, 61, .24);
        transform: translateY(-1px);
    }

    .gcv-mm-premium__content {
        min-width: 0;
        padding: 28px;
        background: linear-gradient(150deg, #fff 0%, var(--gcv-mm-shell-50) 100%);
    }

    .gcv-mm-premium__content--journey,
    .gcv-mm-premium__content--owners {
        padding: 34px;
    }

    .gcv-mm-premium__content-heading {
        display: flex;
        align-items: flex-end;
        justify-content: space-between;
        gap: 24px;
        margin-bottom: 20px;
    }

    .gcv-mm-premium__content-heading h2 {
        max-width: 480px;
        margin: 0;
        color: var(--gcv-mm-gulf-500);
        font-size: 24px;
        line-height: 1.15;
    }

    .gcv-mm-premium__local-note {
        flex: none;
        margin: 0 0 3px;
        color: var(--gcv-mm-gulf-500);
        font-size: 12px;
        font-weight: 600;
        line-height: 1.2;
    }

    .gcv-mm-premium__grid {
        display: grid;
        gap: 10px;
    }

    .gcv-mm-premium__grid--destinations {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        grid-auto-rows: 96px;
    }

    .gcv-mm-premium__card,
    .gcv-mm-premium__journey-card,
    .gcv-mm-premium__service-card,
    .gcv-mm-premium__portal {
        position: relative;
        border: 1px solid var(--gcv-mm-tide-14);
        background-color: #fff;
        color: var(--gcv-mm-tide-900);
        text-decoration: none;
        transition: transform 160ms ease, border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease, color 160ms ease;
    }

    .gcv-mm-premium__card {
        height: 100%;
        min-height: 0;
        display: grid;
        grid-template-columns: 48px minmax(0, 1fr) 20px;
        align-items: center;
        gap: 12px;
        padding: 12px 14px;
        overflow: hidden;
        border-radius: 12px;
        box-shadow: 0 8px 24px -12px rgba(18, 52, 61, .18);
    }

    .gcv-mm-premium__card::before {
        content: "";
        position: absolute;
        inset: auto 0 0;
        height: 3px;
        background: linear-gradient(90deg, var(--gcv-mm-sun-400), #ff765f);
        transform: scaleX(0);
        transform-origin: left;
        transition: transform 160ms ease;
    }

    .gcv-mm-premium__card--all,
    .gcv-mm-premium__journey-card--primary,
    .gcv-mm-premium__service-card--primary {
        border-left: 4px solid var(--gcv-mm-gulf-500);
        box-shadow: var(--gcv-mm-shadow-lift);
    }

    .gcv-mm-premium__card--all {
        padding-left: 11px;
    }

    .gcv-mm-premium__card > img,
    .gcv-mm-premium__journey-card > img {
        width: 44px;
        height: 44px;
        object-fit: contain;
    }

    .gcv-mm-premium__service-card > img,
    .gcv-mm-premium__portal > img {
        width: 48px;
        height: 48px;
        object-fit: contain;
    }

    .gcv-mm-premium__card > span,
    .gcv-mm-premium__journey-card > span:not(.gcv-mm-premium__step):not(.gcv-mm-premium__journey-icon-spacer),
    .gcv-mm-premium__service-card > span,
    .gcv-mm-premium__portal > span {
        min-width: 0;
    }

    .gcv-mm-premium__card strong,
    .gcv-mm-premium__journey-card strong,
    .gcv-mm-premium__service-card strong,
    .gcv-mm-premium__portal strong {
        display: block;
        color: var(--gcv-mm-ink-700);
        font-family: Outfit, Arial, sans-serif;
        font-size: 16px;
        font-weight: 600;
        line-height: 1.12;
        letter-spacing: -.01em;
    }

    .gcv-mm-premium__card small,
    .gcv-mm-premium__journey-card small,
    .gcv-mm-premium__service-card small,
    .gcv-mm-premium__portal small {
        display: block;
        margin-top: 4px;
        color: #5f6f75;
        font-size: 12px;
        font-weight: 400;
        line-height: 1.25;
    }

    .gcv-mm-premium__grid--destinations .gcv-mm-premium__card strong {
        min-height: 36px;
        display: flex;
        align-items: flex-end;
    }

    .gcv-mm-premium__grid--destinations .gcv-mm-premium__card small {
        min-height: 30px;
    }

    .gcv-mm-premium__card > i,
    .gcv-mm-premium__journey-card > i,
    .gcv-mm-premium__service-card > i {
        color: var(--gcv-mm-gulf-500);
        font-style: normal;
        transition: transform 160ms ease;
    }

    .gcv-mm-premium__card:hover,
    .gcv-mm-premium__card:focus-visible,
    .gcv-mm-premium__journey-card:hover,
    .gcv-mm-premium__journey-card:focus-visible,
    .gcv-mm-premium__service-card:hover,
    .gcv-mm-premium__service-card:focus-visible {
        z-index: 1;
        border-color: var(--gcv-mm-gulf-500);
        background-color: #f4fafb;
        box-shadow: 0 0 20px rgba(18, 52, 61, .15);
        transform: translateY(-2px);
    }

    .gcv-mm-premium__card:hover::before,
    .gcv-mm-premium__card:focus-visible::before {
        transform: scaleX(1);
    }

    .gcv-mm-premium__card:hover > i,
    .gcv-mm-premium__card:focus-visible > i,
    .gcv-mm-premium__journey-card:hover > i,
    .gcv-mm-premium__journey-card:focus-visible > i,
    .gcv-mm-premium__service-card:hover > i,
    .gcv-mm-premium__service-card:focus-visible > i {
        transform: translateX(3px);
    }

    .gcv-mm-premium__grid--journey,
    .gcv-mm-premium__grid--owners {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gcv-mm-premium__journey-card {
        height: 126px;
        min-height: 126px;
        display: grid;
        grid-template-columns: 52px minmax(0, 1fr) 18px;
        grid-template-rows: 18px minmax(0, 1fr);
        column-gap: 14px;
        padding: 10px 16px;
        border-radius: 16px;
    }

    .gcv-mm-premium__journey-card--primary {
        padding-left: 13px;
    }

    .gcv-mm-premium__journey-card > img {
        grid-column: 1;
        grid-row: 2;
        place-self: center;
    }

    .gcv-mm-premium__journey-card > span:not(.gcv-mm-premium__step) {
        grid-column: 2;
        grid-row: 1 / -1;
        align-self: center;
    }

    .gcv-mm-premium__journey-card > i {
        grid-column: 3;
        grid-row: 1 / -1;
        place-self: center;
    }

    .gcv-mm-premium__journey-card--utility {
        grid-column: 2;
    }

    .gcv-mm-premium__step {
        grid-column: 1;
        grid-row: 1;
        align-self: start;
        justify-self: start;
        color: var(--gcv-mm-gulf-500);
        font-size: 11px;
        font-weight: 600;
        line-height: 1.2;
    }

    .gcv-mm-premium__step--home {
        grid-row: 1 / -1;
        place-self: center;
    }

    .gcv-mm-premium__step--home img {
        width: 44px;
        height: 44px;
        display: block;
    }

    .gcv-mm-premium__trust {
        display: flex;
        justify-content: space-between;
        gap: 10px;
        margin-top: 14px;
        padding: 10px 18px;
        border: 1px solid rgba(18, 52, 61, .08);
        border-radius: 14px;
        color: var(--gcv-mm-ink-700);
        background: #fff;
        box-shadow: var(--gcv-mm-shadow-lift);
        font-size: 13px;
        font-weight: 400;
        line-height: 1.2;
    }

    .gcv-mm-premium__trust > span {
        display: inline-flex;
        align-items: center;
        gap: 8px;
    }

    .gcv-mm-premium__trust b {
        color: var(--gcv-mm-palm-600);
        font-size: 23px;
        font-weight: 600;
        line-height: 1;
    }

    .gcv-mm-premium__service-card {
        min-height: 118px;
        display: grid;
        grid-template-columns: 48px minmax(0, 1fr) 20px;
        align-items: center;
        gap: 12px;
        padding: 18px;
        border-radius: 16px;
    }

    .gcv-mm-premium__service-card--primary {
        grid-row: span 2;
        min-height: 246px;
        align-content: center;
    }

    .gcv-mm-premium__service-card b {
        display: inline-flex;
        margin-top: 18px;
        color: var(--gcv-mm-gulf-500);
        font-size: 12px;
        font-weight: 600;
        line-height: 1.2;
    }

    .gcv-mm-premium__portal {
        grid-column: 1 / -1;
        min-height: 80px;
        display: grid;
        grid-template-columns: 48px minmax(0, 1fr) auto;
        align-items: center;
        gap: 12px;
        padding: 18px;
        border-color: rgba(18, 52, 61, .08);
        border-left: 4px solid var(--gcv-mm-sun-400);
        border-radius: 12px;
        box-shadow: var(--gcv-mm-shadow-lift);
    }

    .gcv-mm-premium__portal:hover,
    .gcv-mm-premium__portal:focus-visible {
        border-color: var(--gcv-mm-sun-400);
        background-color: #fffdf5;
        box-shadow: 0 0 20px rgba(18, 52, 61, .15);
        transform: translateY(-2px);
    }

    .gcv-mm-premium__portal > span:last-child {
        color: var(--gcv-mm-gulf-500);
        font-size: 12px;
        font-weight: 600;
        line-height: 1.2;
    }

    .gcv-mm-premium__sr-only {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border: 0;
    }

    .gcv-mm-premium :focus-visible {
        outline: 3px solid var(--gcv-mm-tide-900);
        outline-offset: 3px;
        box-shadow: 0 0 0 6px var(--gcv-mm-sun-400);
    }

    .gcv-mm-premium-host.gcv-mm-opening .gcv-mm-premium__editorial-copy > * {
        animation: gcv-mm-premium-copy-in 360ms cubic-bezier(.22, 1, .36, 1) both;
    }

    .gcv-mm-premium-host.gcv-mm-opening .gcv-mm-premium__editorial-copy > :nth-child(1) { animation-delay: 90ms; }
    .gcv-mm-premium-host.gcv-mm-opening .gcv-mm-premium__editorial-copy > :nth-child(2) { animation-delay: 125ms; }
    .gcv-mm-premium-host.gcv-mm-opening .gcv-mm-premium__editorial-copy > :nth-child(3) { animation-delay: 160ms; }
    .gcv-mm-premium-host.gcv-mm-opening .gcv-mm-premium__editorial-copy > :nth-child(4) { animation-delay: 195ms; }

    .gcv-mm-premium-host.gcv-mm-opening .gcv-mm-premium__content-heading > * {
        animation: gcv-mm-premium-heading-in 390ms cubic-bezier(.22, 1, .36, 1) 105ms both;
    }

    .gcv-mm-premium-host.gcv-mm-opening [style*="--gcv-mm-item"] {
        animation: gcv-mm-premium-item-in 240ms cubic-bezier(.22, 1, .36, 1) calc(90ms + var(--gcv-mm-item) * 35ms) both;
    }

    .gcv-mm-premium-host.gcv-mm-opening [style*="--gcv-mm-item"] > img,
    .gcv-mm-premium-host.gcv-mm-opening [style*="--gcv-mm-item"] > .gcv-mm-premium__step--home {
        animation: gcv-mm-premium-icon-in 380ms cubic-bezier(.22, 1, .36, 1) calc(155ms + var(--gcv-mm-item) * 35ms) both;
    }

    .gcv-mm-premium-host.gcv-mm-opening .gcv-mm-premium__trust > span {
        animation: gcv-mm-premium-item-in 300ms cubic-bezier(.22, 1, .36, 1) both;
    }

    .gcv-mm-premium-host.gcv-mm-opening .gcv-mm-premium__trust > span:nth-child(1) { animation-delay: 250ms; }
    .gcv-mm-premium-host.gcv-mm-opening .gcv-mm-premium__trust > span:nth-child(2) { animation-delay: 285ms; }
    .gcv-mm-premium-host.gcv-mm-opening .gcv-mm-premium__trust > span:nth-child(3) { animation-delay: 320ms; }

    .gcv-mm-premium-host.gcv-mm-closing .gcv-mm-premium__editorial-copy,
    .gcv-mm-premium-host.gcv-mm-closing .gcv-mm-premium__content-heading,
    .gcv-mm-premium-host.gcv-mm-closing [style*="--gcv-mm-item"],
    .gcv-mm-premium-host.gcv-mm-closing .gcv-mm-premium__trust {
        animation: gcv-mm-premium-content-out 150ms cubic-bezier(.4, 0, .6, 1) both;
    }
}

@keyframes gcv-mm-premium-panel-in {
    from { opacity: 0; transform: translateY(-10px) scale(.985); box-shadow: 0 0 0 rgba(18, 52, 61, 0); }
    to { opacity: 1; transform: translateY(0) scale(1); box-shadow: 0 24px 64px -18px rgba(18, 52, 61, .34), 0 2px 8px rgba(18, 52, 61, .1); }
}

@keyframes gcv-mm-premium-panel-out {
    from { opacity: 1; transform: translateY(0) scale(1); }
    to { opacity: 0; transform: translateY(-7px) scale(.99); }
}

@keyframes gcv-mm-premium-image-in {
    from { opacity: .62; transform: scale(1.065); filter: saturate(.75) blur(3px); }
    to { opacity: 1; transform: scale(1); filter: saturate(1) blur(0); }
}

@keyframes gcv-mm-premium-copy-in {
    from { opacity: 0; transform: translateY(10px); clip-path: inset(0 0 100% 0); }
    to { opacity: 1; transform: translateY(0); clip-path: inset(0 0 0 0); }
}

@keyframes gcv-mm-premium-heading-in {
    from { opacity: 0; transform: translateX(-12px); clip-path: inset(0 100% 0 0); }
    to { opacity: 1; transform: translateX(0); clip-path: inset(0 0 0 0); }
}

@keyframes gcv-mm-premium-item-in {
    from { opacity: 0; transform: translateY(10px) scale(.985); filter: blur(4px); }
    to { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}

@keyframes gcv-mm-premium-icon-in {
    0% { opacity: 0; transform: scale(.68) rotate(-8deg); }
    65% { opacity: 1; transform: scale(1.06) rotate(2deg); }
    100% { opacity: 1; transform: scale(1) rotate(0); }
}

@keyframes gcv-mm-premium-content-out {
    from { opacity: 1; transform: translateY(0); filter: blur(0); }
    to { opacity: 0; transform: translateY(-5px); filter: blur(2px); }
}

@media (prefers-reduced-motion: reduce) {
    .gcv-mm-premium-host.gcv-mm-opening > .rtmegamenu-contents.sub-menu,
    .gcv-mm-premium-host.gcv-mm-closing > .rtmegamenu-contents.sub-menu,
    .gcv-mm-premium-host.gcv-mm-opening .gcv-mm-premium *,
    .gcv-mm-premium-host.gcv-mm-closing .gcv-mm-premium * {
        animation: none;
    }

    .gcv-mm-premium a,
    .gcv-mm-premium a::before,
    .gcv-mm-premium a::after {
        transition-duration: .01ms;
    }
}
