/*
 * AB Clinic Header — current foundation only.
 * Legacy desktop header design iterations were removed.
 * The visible desktop/tablet/mobile layout is defined by
 * ab-clinic-header-restructured.css; this file keeps only the
 * shared navigation, submenu, mega-menu, off-canvas and interaction
 * foundations required by the current header.
 */

.gdp-header-system,
.gdp-header-system * {
    box-sizing: border-box;
}

.gdp-header-system {
    --gdp-white: #ffffff;
    --gdp-ink: #17253a;
    --gdp-muted: #737b87;
    --gdp-line: #e7e4ea;
    --gdp-purple: #7d3ca2;
    --gdp-purple-dark: #5e267c;
    --gdp-navy: #183b63;
    --gdp-navy-deep: #102b4a;
    --gdp-gold: #d7a94f;
    --gdp-soft: #f8f6fa;
    --gdp-panel: #fbfaf7;
    --gdp-shadow: 0 16px 44px rgba(19, 32, 51, 0.13);
    position: relative;
    width: 100%;
    z-index: 9990;
    font-family: "Inter", "Segoe UI", Arial, sans-serif;
}

.gdp-header-system a,
.gdp-header-system button {
    font-family: inherit;
}

.gdp-header-system a {
    text-decoration: none;
}

    transform: translateY(-2px);
}

.gdp-nav-shell {
    position: sticky;
    top: 0;
    z-index: 9995;
    width: 100%;
    background: linear-gradient(110deg, var(--gdp-navy-deep), var(--gdp-navy));
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
    transition: background 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.gdp-nav-inner {
    width: min(1320px, calc(100% - 48px));
    min-height: 64px;
    margin: 0 auto;
    display: flex;
    align-items: stretch;
    gap: 18px;
}

.gdp-sticky-brand {
    width: 0;
    max-width: 0;
    opacity: 0;
    visibility: hidden;
    overflow: hidden;
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    transition: width 0.32s ease, max-width 0.32s ease, opacity 0.25s ease, margin 0.32s ease;
}

.gdp-sticky-brand img {
    display: block;
    width: 172px;
    height: auto;
    object-fit: contain;
}

.gdp-desktop-nav {
    min-width: 0;
    flex: 1 1 auto;
    display: flex;
    align-items: stretch;
    justify-content: center;
}

.gdp-nav-list {
    list-style: none;
    padding: 0;
    margin: 0;
    min-width: 0;
    display: flex;
    align-items: stretch;
    justify-content: center;
    gap: clamp(16px, 1.65vw, 27px);
}

.gdp-nav-list li {
    display: flex;
    align-items: stretch;
    margin: 0;
    padding: 0;
}

.gdp-nav-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 64px;
    padding: 0;
    color: rgba(255, 255, 255, 0.92);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.2;
    white-space: nowrap;
    transition: color 0.25s ease;
}

.gdp-nav-link::after {
    content: "";
    position: absolute;
    left: 0;
    right: 100%;
    bottom: 14px;
    height: 2px;
    background: var(--gdp-gold);
    transition: right 0.25s ease;
}

.gdp-nav-link:hover,
.gdp-nav-link:focus-visible,
.gdp-nav-link.gdp-current {
    color: var(--gdp-white);
}

.gdp-nav-link:hover::after,
.gdp-nav-link:focus-visible::after,
.gdp-nav-link.gdp-current::after {
    right: 0;
}

/* =========================================================
   PROFESSIONAL DESKTOP SUBMENU
   Existing header / sticky / off-canvas structure untouched.
   ========================================================= */
.gdp-nav-list > .gdp-has-submenu {
    position: relative;
}

.gdp-nav-parent {
    gap: 7px;
}

.gdp-nav-chevron {
    width: 8px;
    height: 8px;
    margin-top: -3px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg);
    transform-origin: center;
    transition: transform 0.25s ease;
    opacity: 0.78;
}

.gdp-has-submenu:hover > .gdp-nav-parent .gdp-nav-chevron,
.gdp-has-submenu:focus-within > .gdp-nav-parent .gdp-nav-chevron {
    transform: translateY(3px) rotate(225deg);
}

.gdp-submenu {
    position: absolute;
    top: calc(100% - 7px);
    left: 50%;
    z-index: 10030;
    width: 265px;
    min-width: 265px;
    margin: 0;
    padding: 10px;
    display: grid;
    gap: 3px;
    list-style: none;
    background: rgba(255, 255, 255, 0.985);
    border: 1px solid #e9e3ec;
    border-radius: 14px;
    box-shadow: 0 18px 42px rgba(18, 30, 47, 0.15);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translate(-50%, 12px);
    transform-origin: top center;
    transition:
        opacity 0.22s ease,
        visibility 0.22s ease,
        transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}

.gdp-submenu::before {
    content: "";
    position: absolute;
    top: -7px;
    left: 50%;
    width: 13px;
    height: 13px;
    background: #ffffff;
    border-top: 1px solid #e9e3ec;
    border-left: 1px solid #e9e3ec;
    transform: translateX(-50%) rotate(45deg);
}

.gdp-submenu::after {
    content: "";
    position: absolute;
    top: 0;
    left: 18px;
    right: 18px;
    height: 2px;
    border-radius: 0 0 50px 50px;
    background: linear-gradient(90deg, var(--gdp-purple), var(--gdp-gold));
}

.gdp-has-submenu:hover > .gdp-submenu,
.gdp-has-submenu:focus-within > .gdp-submenu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translate(-50%, 0);
}

.gdp-submenu > li {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
}

.gdp-submenu-link {
    position: relative;
    width: 100%;
    min-height: 45px;
    padding: 11px 38px 11px 14px;
    display: flex;
    align-items: center;
    color: #344054;
    background: transparent;
    border-radius: 9px;
    font-size: 12px;
    font-weight: 550;
    line-height: 1.35;
    white-space: normal;
    transition:
        color 0.22s ease,
        background 0.22s ease,
        padding-left 0.22s ease;
}

.gdp-submenu-link::before {
    content: "";
    position: absolute;
    left: 14px;
    top: 50%;
    width: 0;
    height: 1px;
    border-radius: 20px;
    background: var(--gdp-gold);
    transform: translateY(-50%);
    transition: width 0.22s ease;
}

.gdp-submenu-link::after {
    content: "↗";
    position: absolute;
    right: 14px;
    top: 50%;
    color: var(--gdp-purple);
    font-family: Arial, sans-serif;
    font-size: 13px;
    line-height: 1;
    opacity: 0.58;
    transform: translateY(-50%);
    transition:
        opacity 0.22s ease,
        transform 0.22s ease;
}

.gdp-submenu-link:hover,
.gdp-submenu-link:focus-visible {
    color: var(--gdp-purple-dark);
    background: #f7f3f9;
    padding-left: 30px;
}

.gdp-submenu-link:hover::before,
.gdp-submenu-link:focus-visible::before {
    width: 10px;
}

.gdp-submenu-link:hover::after,
.gdp-submenu-link:focus-visible::after {
    opacity: 1;
    transform: translate(2px, calc(-50% - 2px));
}

/* Keep submenu readable after sticky header changes to white. */
.gdp-header-system.gdp-is-scrolled .gdp-submenu {
    background: rgba(255, 255, 255, 0.99);
}

/* Submenus are desktop navigation only; existing mobile/tablet off-canvas stays untouched. */
@media (max-width: 1024px) {
    .gdp-submenu {
        display: none;
    }
}

.gdp-nav-actions {
    display: flex;
    align-items: stretch;
    justify-content: flex-end;
    flex: 0 0 auto;
}

.gdp-request-link {
    min-width: 205px;
    padding: 0 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--gdp-white);
    background: var(--gdp-purple);
    border: 1px solid var(--gdp-purple);
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.015em;
    text-transform: uppercase;
    transition: background 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}

.gdp-request-link:hover,
.gdp-request-link:focus-visible {
    color: var(--gdp-white);
    background: var(--gdp-purple-dark);
    border-color: var(--gdp-purple-dark);
}

.gdp-menu-toggle {
    width: 64px;
    min-width: 64px;
    min-height: 64px;
    padding: 0;
    border: 0;
    border-left: 1px solid rgba(255, 255, 255, 0.18);
    border-right: 1px solid rgba(255, 255, 255, 0.18);
    background: rgba(255, 255, 255, 0.04);
    color: var(--gdp-white);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.25s ease, color 0.25s ease;
}

.gdp-menu-toggle:hover,
.gdp-menu-toggle:focus-visible {
    background: rgba(255, 255, 255, 0.12);
    color: var(--gdp-white);
}

.gdp-menu-lines {
    width: 24px;
    height: 18px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.gdp-menu-lines span {
    display: block;
    height: 2px;
    border-radius: 50px;
    background: currentColor;
    transition: width 0.25s ease, transform 0.25s ease;
}

.gdp-menu-lines span:nth-child(1) {
    width: 18px;
    margin-left: auto;
}

.gdp-menu-lines span:nth-child(2) {
    width: 24px;
}

.gdp-menu-lines span:nth-child(3) {
    width: 14px;
    margin-left: auto;
}

.gdp-menu-toggle:hover .gdp-menu-lines span {
    width: 24px;
}

.gdp-canvas-backdrop {
    position: fixed;
    inset: 0;
    z-index: 10010;
    background: rgba(14, 23, 36, 0.64);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    transition: opacity 0.35s ease, visibility 0.35s ease;
}

.gdp-offcanvas {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 10020;
    width: min(470px, 100%);
    height: 100dvh;
    overflow: hidden;
    background: var(--gdp-panel);
    border-left: 1px solid rgba(125, 60, 162, 0.18);
    box-shadow: -28px 0 70px rgba(12, 25, 42, 0.2);
    transform: translateX(102%);
    transition: transform 0.42s cubic-bezier(0.22, 1, 0.36, 1);
}

.gdp-offcanvas::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 5px;
    background: linear-gradient(180deg, var(--gdp-purple), var(--gdp-gold));
    z-index: 3;
}

.gdp-offcanvas-inner {
    height: 100%;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
    scrollbar-color: rgba(125, 60, 162, 0.35) transparent;
}

.gdp-offcanvas-inner::-webkit-scrollbar {
    width: 6px;
}

.gdp-offcanvas-inner::-webkit-scrollbar-track {
    background: transparent;
}

.gdp-offcanvas-inner::-webkit-scrollbar-thumb {
    background: rgba(125, 60, 162, 0.35);
    border-radius: 999px;
}

.gdp-canvas-close {
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid #dfd9e4;
    border-radius: 50%;
    background: var(--gdp-white);
    color: var(--gdp-purple);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 44px;
    transition: transform 0.25s ease, background 0.25s ease, color 0.25s ease;
}

.gdp-canvas-close svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
}

.gdp-canvas-close:hover,
.gdp-canvas-close:focus-visible {
    color: var(--gdp-white);
    background: var(--gdp-purple);
    transform: rotate(90deg);
}

.gdp-header-system.gdp-canvas-open .gdp-canvas-backdrop {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.gdp-header-system.gdp-canvas-open .gdp-offcanvas {
    transform: translateX(0);
}

.gdp-page-lock {
    overflow: hidden;
    touch-action: none;
}

.gdp-header-system a:focus-visible,
.gdp-header-system button:focus-visible {
    outline: 3px solid rgba(215, 169, 79, 0.7);
    outline-offset: 3px;
}

@media (max-width: 1220px) {

    .gdp-desktop-nav {

        display: none;
    }

    .gdp-sticky-brand {
        width: 174px;
        max-width: 174px;
        opacity: 1;
        visibility: visible;
        margin-right: auto;
    }

    .gdp-nav-inner {
        min-height: 70px;
    }

    .gdp-request-link,
.gdp-menu-toggle {
        min-height: 70px;
    }

    .gdp-header-system.gdp-is-scrolled .gdp-sticky-brand {
        margin-right: auto;
    }
}

@media (max-width: 820px) {
    .gdp-nav-inner {
        width: min(100% - 30px, 1320px);
    }

}

@media (max-width: 620px) {

    .gdp-nav-inner {

        width: 100%;
        min-height: 64px;
        padding-left: 14px;
        gap: 10px;
    }

    .gdp-sticky-brand,
.gdp-header-system.gdp-is-scrolled .gdp-sticky-brand {
        width: 128px;
        max-width: 128px;
        margin-right: auto;
    }

    .gdp-sticky-brand img {
        width: 128px;
    }

    .gdp-request-link,
.gdp-header-system.gdp-is-scrolled .gdp-request-link {
        min-width: 142px;
        min-height: 64px;
        padding: 0 13px;
        font-size: 10px;
        letter-spacing: 0;
    }

    .gdp-menu-toggle,
.gdp-header-system.gdp-is-scrolled .gdp-menu-toggle {
        width: 54px;
        min-width: 54px;
        min-height: 64px;
    }

}

/* AB Clinic Elementor Mega Menu integration */
.gdp-nav-inner {position:relative}
.gdp-nav-list>.gdp-has-mega {position:static}
.gdp-nav-list>.gdp-has-mega>.gdp-submenu {display:none}
.abmm-mega-drop {position:absolute;top:100%;left:0;right:0;z-index:9998;padding-top:12px;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(12px);transition:opacity .26s ease,visibility .26s ease,transform .26s ease}
.gdp-has-mega:hover>.abmm-mega-drop,
.gdp-has-mega:focus-within>.abmm-mega-drop {opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
.abmm-mega-drop-inner {max-height:calc(100vh - 100px);overflow:auto;border-radius:18px}
.abmm-width-full {position:fixed;top:var(--gdp-sticky-height);left:0;right:0;width:100vw;padding:12px 24px 0}
.gdp-header-system:not(.gdp-is-scrolled) .abmm-width-full {position:absolute;top:100%}
.abmm-width-content {left:50%;right:auto;width:min(1040px,calc(100vw - 48px));transform:translate(-50%,12px)}
.gdp-has-mega:hover>.abmm-width-content,
.gdp-has-mega:focus-within>.abmm-width-content {transform:translate(-50%,0)}
.abmm-menu-rows-1 .abmm-grid {grid-template-rows:repeat(1,minmax(0,auto))}.abmm-menu-rows-2 .abmm-grid {grid-template-rows:repeat(2,minmax(0,auto))}.abmm-menu-rows-3 .abmm-grid {grid-template-rows:repeat(3,minmax(0,auto))}.abmm-menu-rows-4 .abmm-grid {grid-template-rows:repeat(4,minmax(0,auto))}.abmm-menu-rows-5 .abmm-grid {grid-template-rows:repeat(5,minmax(0,auto))}.abmm-menu-rows-6 .abmm-grid {grid-template-rows:repeat(6,minmax(0,auto))}
@media(max-width:1024px){.abmm-mega-drop {display:none}}

@media (max-width: 410px) {
    .gdp-sticky-brand,
.gdp-header-system.gdp-is-scrolled .gdp-sticky-brand {
        width: 105px;
        max-width: 105px;
    }

    .gdp-sticky-brand img {
        width: 105px;
    }

    .gdp-request-link,
.gdp-header-system.gdp-is-scrolled .gdp-request-link {
        min-width: 124px;
        padding: 0 9px;
        font-size: 9px;
    }

    .gdp-menu-toggle,
.gdp-header-system.gdp-is-scrolled .gdp-menu-toggle {
        width: 50px;
        min-width: 50px;
    }

}

@media (prefers-reduced-motion: reduce) {
    .gdp-header-system *,
.gdp-header-system *::before,
.gdp-header-system *::after {
        scroll-behavior: auto;
        transition-duration: 0.01ms;
        animation-duration: 0.01ms;
        animation-iteration-count: 1;
    }
}

/* The integrated rolling bar is desktop-only by design. */
@media (max-width: 1024px) {
    .elementor-widget-ab-clinic-header .abrtb-integrated {
        display: none;
    }
}

/* Canvas content update: screenshot content only */
.gdp-offcanvas {
    width: min(390px, 100%);
    background: #ffffff;
}

.gdp-offcanvas::before {
    display: none;
}

.gdp-canvas-close {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    color: var(--gdp-purple);
}

.gdp-canvas-close:hover,
.gdp-canvas-close:focus-visible {
    color: var(--gdp-purple-dark);
    background: transparent;
    transform: rotate(90deg);
}

@media (max-width: 620px) {

}

@media (max-width: 390px) {

}

/* =========================================================
   MODERN PROFESSIONAL OFF-CANVAS — STRUCTURE REDESIGN
   Only the right-side canvas has been changed.
   ========================================================= */

.gdp-offcanvas {
    width: min(440px, 100%);
    background: #f7f5f9;
    border-left: 0;
    box-shadow: -30px 0 80px rgba(15, 27, 45, 0.24);
}

.gdp-offcanvas::before {
    display: none;
}

.gdp-offcanvas-inner {
    position: relative;
    height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    background:
        radial-gradient(circle at 100% 0%, rgba(215, 169, 79, 0.12), transparent 29%),
        linear-gradient(180deg, #ffffff 0%, #f7f5f9 100%);
}

.gdp-modern-canvas-top {
    position: relative;
    min-height: 278px;
    padding: 24px 28px 72px;
    overflow: hidden;
    background:
        linear-gradient(135deg, rgba(16, 43, 74, 0.98), rgba(125, 60, 162, 0.96));
}

.gdp-modern-canvas-top::before {
    content: "";
    position: absolute;
    top: -92px;
    right: -90px;
    width: 230px;
    height: 230px;
    border: 1px solid rgba(255, 255, 255, 0.15);
    border-radius: 50%;
    box-shadow:
        0 0 0 34px rgba(255, 255, 255, 0.035),
        0 0 0 68px rgba(255, 255, 255, 0.025);
    pointer-events: none;
}

.gdp-modern-canvas-top::after {
    content: "";
    position: absolute;
    left: -65px;
    bottom: -86px;
    width: 190px;
    height: 190px;
    border-radius: 48px;
    background: rgba(215, 169, 79, 0.13);
    transform: rotate(28deg);
    pointer-events: none;
}

.gdp-modern-canvas-head {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: flex-start;
    justify-content: flex-end;
}

.gdp-canvas-close {
    width: 42px;
    height: 42px;
    min-width: 42px;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, 0.24);
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.10);
    color: #ffffff;
    box-shadow: none;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition:
        background 0.25s ease,
        border-color 0.25s ease,
        transform 0.25s ease;
}

.gdp-canvas-close svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
}

.gdp-canvas-close:hover,
.gdp-canvas-close:focus-visible {
    color: #ffffff;
    background: rgba(255, 255, 255, 0.20);
    border-color: rgba(255, 255, 255, 0.42);
    transform: rotate(90deg);
}

.gdp-modern-brand-card {
    position: relative;
    z-index: 2;
    width: calc(100% - 28px);
    margin-top: 12px;
    padding: 22px 22px 21px;
    background: rgba(255, 255, 255, 0.97);
    border: 1px solid rgba(255, 255, 255, 0.62);
    border-radius: 20px;
    box-shadow: 0 22px 52px rgba(8, 20, 38, 0.23);
}

.gdp-modern-brand-card::after {
    content: "";
    position: absolute;
    top: 0;
    right: 24px;
    width: 76px;
    height: 3px;
    border-radius: 0 0 999px 999px;
    background: linear-gradient(90deg, var(--gdp-purple) 0%, var(--gdp-gold) 100%);
    box-shadow: 0 4px 14px rgba(125, 60, 162, 0.12);
    opacity: 0.9;
    pointer-events: none;
}

.gdp-modern-brand-logo {
    display: block;
    width: 100% !important;
    max-width: 100%;
    height: auto;
    margin: 0 0 15px;
    object-fit: contain;
}

.gdp-modern-brand-description {
    max-width: 318px;
    margin: 0;
    color: #777984;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.9;
}

.gdp-modern-search-wrap {
    position: relative;
    z-index: 4;
    width: calc(100% - 56px);
    margin: -35px auto 0;
}

.gdp-modern-search-form {
    width: 100%;
    min-height: 70px;
    padding: 9px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 52px;
    gap: 8px;
    background: #ffffff;
    border: 1px solid #ebe6ef;
    border-radius: 17px;
    box-shadow: 0 18px 46px rgba(24, 34, 52, 0.14);
}

.gdp-modern-search-input {
    width: 100%;
    min-width: 0;
    height: 52px;
    margin: 0;
    padding: 0 14px;
    border: 0;
    border-radius: 11px;
    outline: 0;
    background: #f7f5f8;
    color: #293246;
    font-family: inherit;
    font-size: 13px;
    font-weight: 400;
    line-height: 1;
    box-shadow: none;
}

.gdp-modern-search-input::placeholder {
    color: #97959e;
    opacity: 1;
}

.gdp-modern-search-input:focus {
    background: #f3eff6;
    box-shadow: inset 0 0 0 1px rgba(125, 60, 162, 0.25);
}

.gdp-modern-search-button {
    width: 52px;
    height: 52px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 12px;
    background: linear-gradient(145deg, var(--gdp-purple), var(--gdp-purple-dark));
    color: #ffffff;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 9px 20px rgba(125, 60, 162, 0.25);
    transition: transform 0.25s ease, box-shadow 0.25s ease;
}

.gdp-modern-search-button svg {
    width: 23px;
    height: 23px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.gdp-modern-search-button:hover,
.gdp-modern-search-button:focus-visible {
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 13px 25px rgba(125, 60, 162, 0.32);
}

.gdp-modern-canvas-body {
    padding: 31px 28px 44px;
}

.gdp-modern-contact-list {
    position: relative;
    display: grid;
    gap: 12px;
    margin: 0 0 34px;
}

.gdp-modern-contact-list::before {
    content: "";
    position: absolute;
    top: 21px;
    bottom: 21px;
    left: 22px;
    width: 1px;
    background: linear-gradient(180deg, var(--gdp-purple), rgba(125, 60, 162, 0.12));
    pointer-events: none;
}

.gdp-modern-contact-item {
    position: relative;
    min-height: 68px;
    padding: 12px 15px 12px 61px;
    display: flex;
    align-items: center;
    background: rgba(255, 255, 255, 0.82);
    border: 1px solid #ebe7ef;
    border-radius: 15px;
    box-shadow: 0 8px 22px rgba(29, 39, 56, 0.055);
    transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.gdp-modern-contact-item:hover {
    transform: translateX(-3px);
    border-color: rgba(125, 60, 162, 0.28);
    box-shadow: 0 12px 28px rgba(29, 39, 56, 0.085);
}

.gdp-modern-contact-icon {
    position: absolute;
    left: 9px;
    top: 50%;
    z-index: 2;
    width: 44px;
    height: 44px;
    border: 4px solid #f7f5f9;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--gdp-purple);
    background: #ffffff;
    box-shadow: 0 5px 14px rgba(29, 39, 56, 0.10);
    transform: translateY(-50%);
}

.gdp-modern-contact-icon svg {
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.75;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.gdp-modern-contact-link,
.gdp-modern-contact-text {
    display: block;
    width: fit-content;
    max-width: 100%;
    margin: 0;
    color: #555d6c;
    font-size: 13.5px;
    font-weight: 500;
    line-height: 1.55;
    overflow-wrap: anywhere;
    transition: color 0.25s ease;
}

.gdp-modern-contact-link:hover,
.gdp-modern-contact-link:focus-visible {
    color: var(--gdp-purple);
}

.gdp-modern-posts {
    position: relative;
}

.gdp-modern-posts-title {
    position: relative;
    margin: 0 0 18px;
    padding: 0 0 12px;
    color: #19243a;
    font-family: "Georgia", "Times New Roman", serif;
    font-size: 22px;
    font-weight: 500;
    line-height: 1.3;
}

.gdp-modern-posts-title::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 58px;
    height: 3px;
    border-radius: 50px;
    background: linear-gradient(90deg, var(--gdp-purple), var(--gdp-gold));
}

.gdp-modern-post-list {
    display: grid;
    gap: 14px;
}

.gdp-modern-post-card {
    position: relative;
    min-height: 116px;
    padding: 19px 50px 18px 19px;
    overflow: hidden;
    background: #ffffff;
    border: 1px solid #e9e4ed;
    border-radius: 17px;
    box-shadow: 0 10px 28px rgba(23, 35, 54, 0.065);
    transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}

.gdp-modern-post-card::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 7px;
    height: 100%;
    background: linear-gradient(180deg, var(--gdp-gold), var(--gdp-purple));
}

.gdp-modern-post-card::after {
    content: "↗";
    position: absolute;
    right: 18px;
    top: 20px;
    color: var(--gdp-purple);
    font-family: Arial, sans-serif;
    font-size: 18px;
    line-height: 1;
    transition: transform 0.25s ease;
}

.gdp-modern-post-card:hover {
    transform: translateY(-3px);
    border-color: rgba(125, 60, 162, 0.24);
    box-shadow: 0 15px 34px rgba(23, 35, 54, 0.095);
}

.gdp-modern-post-card:hover::after {
    transform: translate(3px, -3px);
}

.gdp-modern-post-link {
    display: block;
    margin: 0 0 10px;
    color: #202b40;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.65;
    transition: color 0.25s ease;
}

.gdp-modern-post-link:hover,
.gdp-modern-post-link:focus-visible {
    color: var(--gdp-purple);
}

.gdp-modern-post-date {
    display: inline-flex;
    align-items: center;
    min-height: 27px;
    padding: 4px 10px;
    border-radius: 50px;
    color: #8b8591;
    background: #f4f0f6;
    font-size: 11.5px;
    font-weight: 500;
    line-height: 1;
}

@media (max-width: 620px) {
    .gdp-modern-canvas-top {
        min-height: 252px;
        padding: 18px 22px 66px;
    }

    .gdp-modern-brand-card {
        width: calc(100% - 18px);
        padding: 20px 19px;
        border-radius: 17px;
    }

    .gdp-modern-brand-logo {
        width: 100% !important;
    }

    .gdp-modern-brand-description {
        font-size: 13.5px;
        line-height: 1.8;
    }

    .gdp-modern-search-wrap {
        width: calc(100% - 40px);
    }

    .gdp-modern-canvas-body {
        padding: 28px 20px 38px;
    }
}

@media (max-width: 390px) {
    .gdp-modern-canvas-top {
        padding-left: 18px;
        padding-right: 18px;
    }

    .gdp-modern-brand-card {
        width: calc(100% - 12px);
    }

    .gdp-modern-search-wrap {
        width: calc(100% - 30px);
    }

    .gdp-modern-canvas-body {
        padding-left: 16px;
        padding-right: 16px;
    }

    .gdp-modern-post-card {
        padding-right: 44px;
    }
}

/* =========================================================
   OFF-CANVAS CLOSED-STATE SHADOW FIX
   Shadow is visible only while the canvas is open.
   ========================================================= */
.gdp-offcanvas {
    box-shadow: none;
    visibility: hidden;
    pointer-events: none;
    transition:
        transform 0.42s cubic-bezier(0.22, 1, 0.36, 1),
        visibility 0s linear 0.42s;
}

.gdp-header-system.gdp-canvas-open .gdp-offcanvas {
    box-shadow: -30px 0 80px rgba(15, 27, 45, 0.24);
    visibility: visible;
    pointer-events: auto;
    transition:
        transform 0.42s cubic-bezier(0.22, 1, 0.36, 1),
        visibility 0s linear 0s;
}

/* =========================================================
   SIDE PANEL SEARCH + TABLET/MOBILE NAVIGATION HARDENING
   Scoped to the AB Clinic header so theme/global frameworks
   cannot override the search control or mobile menu states.
   ========================================================= */
.gdp-header-system .gdp-modern-search-form {
    border-radius: 17px;
    background-color: #ffffff;
    background-image: none;
}

.gdp-header-system .gdp-modern-search-input,
.gdp-header-system .gdp-modern-search-input:hover,
.gdp-header-system .gdp-modern-search-input:focus,
.gdp-header-system .gdp-modern-search-input:focus-visible {
    min-height: 52px;
    border: 1px solid #d9d3dd;
    border-radius: 17px;
    background-color: #f8f6f9;
    background-image: none;
    color: #293246;
    box-shadow: none;
    outline: 0;
    appearance: none;
    -webkit-appearance: none;
}

.gdp-header-system .gdp-modern-search-input:focus,
.gdp-header-system .gdp-modern-search-input:focus-visible {
    border-color: rgba(125, 60, 162, 0.48);
    background-color: #f5f1f7;
    box-shadow: inset 0 0 0 1px rgba(125, 60, 162, 0.08);
}

.gdp-header-system .gdp-modern-search-button,
.gdp-header-system .gdp-modern-search-button:hover,
.gdp-header-system .gdp-modern-search-button:focus,
.gdp-header-system .gdp-modern-search-button:focus-visible,
.gdp-header-system .gdp-modern-search-button:active {
    width: 52px;
    min-width: 52px;
    height: 52px;
    min-height: 52px;
    padding: 0;
    border: 0;
    border-radius: 13px;
    color: #ffffff;
    background-color: var(--gdp-purple);
    background-image: none;
    box-shadow: none;
    text-shadow: none;
    opacity: 1;
}

.gdp-header-system .gdp-modern-search-button:hover,
.gdp-header-system .gdp-modern-search-button:focus-visible {
    color: #ffffff;
    background-color: var(--gdp-purple-dark);
    transform: translateY(-1px);
}

.gdp-header-system .gdp-modern-search-button svg,
.gdp-header-system .gdp-modern-search-button:hover svg,
.gdp-header-system .gdp-modern-search-button:focus svg,
.gdp-header-system .gdp-modern-search-button:focus-visible svg {
    display: block;
    width: 23px;
    height: 23px;
    fill: none;
    stroke: #ffffff;
    stroke-width: 1.8;
    opacity: 1;
    visibility: visible;
}

.gdp-mobile-menu-section {
    display: none;
}

@media (max-width: 1220px) {
    .gdp-mobile-menu-section {
        display: block;
        margin: 0 0 30px;
        padding: 0;
        border-top: 1px solid var(--gdp-line);
    }

    .gdp-mobile-nav-list,
.gdp-mobile-submenu {
        width: 100%;
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .gdp-mobile-menu-item {
        width: 100%;
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .gdp-mobile-menu-row {
        position: relative;
        width: 100%;
        min-height: 56px;
        display: flex;
        align-items: stretch;
        border-bottom: 1px solid var(--gdp-line);
    }

    .gdp-mobile-menu-link {
        min-width: 0;
        min-height: 56px;
        flex: 1 1 auto;
        padding: 16px 14px 16px 0;
        display: flex;
        align-items: center;
        color: #273449;
        background: transparent;
        border: 0;
        border-radius: 0;
        box-shadow: none;
        text-decoration: none;
        font-family: inherit;
        font-size: 14px;
        font-weight: 600;
        line-height: 1.4;
        transition: color 0.22s ease, padding-left 0.22s ease;
    }

    .gdp-mobile-current-item > .gdp-mobile-menu-row > .gdp-mobile-menu-link,
.gdp-mobile-menu-link:hover,
.gdp-mobile-menu-link:focus-visible {
        color: var(--gdp-purple);
        padding-left: 8px;
    }

    .gdp-mobile-submenu-toggle,
.gdp-header-system .gdp-mobile-submenu-toggle,
.gdp-header-system .gdp-mobile-submenu-toggle:hover,
.gdp-header-system .gdp-mobile-submenu-toggle:focus,
.gdp-header-system .gdp-mobile-submenu-toggle:focus-visible,
.gdp-header-system .gdp-mobile-submenu-toggle:active {
        width: 50px;
        min-width: 50px;
        min-height: 56px;
        margin: 0;
        padding: 0;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        border: 0;
        border-left: 1px solid #eee9f1;
        border-radius: 0;
        color: var(--gdp-purple);
        background-color: transparent;
        background-image: none;
        box-shadow: none;
        text-shadow: none;
        cursor: pointer;
    }

    .gdp-header-system .gdp-mobile-submenu-toggle:hover,
.gdp-header-system .gdp-mobile-submenu-toggle:focus-visible,
.gdp-mobile-menu-item.gdp-mobile-open > .gdp-mobile-menu-row > .gdp-mobile-submenu-toggle {
        color: var(--gdp-purple-dark);
        background-color: #f6f2f8;
    }

    .gdp-mobile-submenu-chevron {
        width: 8px;
        height: 8px;
        display: block;
        border-right: 1.5px solid currentColor;
        border-bottom: 1.5px solid currentColor;
        transform: translateY(-2px) rotate(45deg);
        transform-origin: center;
        transition: transform 0.22s ease;
    }

    .gdp-mobile-menu-item.gdp-mobile-open > .gdp-mobile-menu-row .gdp-mobile-submenu-chevron {
        transform: translateY(2px) rotate(225deg);
    }

    .gdp-mobile-submenu,
.gdp-mobile-mega {
        display: none;
    }

    .gdp-mobile-menu-item.gdp-mobile-open > .gdp-mobile-submenu,
.gdp-mobile-menu-item.gdp-mobile-open > .gdp-mobile-mega {
        display: block;
    }

    .gdp-mobile-submenu {
        background: #faf8fb;
        border-bottom: 1px solid var(--gdp-line);
    }

    .gdp-mobile-submenu .gdp-mobile-menu-row {
        min-height: 50px;
        margin-left: 13px;
        width: calc(100% - 13px);
        border-bottom-color: #ece6ef;
    }

    .gdp-mobile-submenu .gdp-mobile-menu-link {
        min-height: 50px;
        padding-top: 13px;
        padding-bottom: 13px;
        padding-left: 14px;
        font-size: 13px;
        font-weight: 500;
        color: #566174;
    }

    .gdp-mobile-submenu .gdp-mobile-menu-link::before {
        content: "";
        width: 5px;
        height: 5px;
        margin-right: 10px;
        flex: 0 0 5px;
        border-radius: 50%;
        background: var(--gdp-gold);
    }

    .gdp-mobile-submenu .gdp-mobile-submenu {
        margin-left: 12px;
        width: calc(100% - 12px);
        background: #ffffff;
    }

    .gdp-mobile-mega {
        padding: 12px 0 16px;
        background: #faf8fb;
        border-bottom: 1px solid var(--gdp-line);
    }

    .gdp-mobile-mega-inner {
        width: 100%;
        overflow: hidden;
    }

    .gdp-mobile-mega .abmm-widget {
        width: 100%;
        margin: 0;
        padding: 16px;
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 18px;
        border-radius: 14px;
        box-shadow: none;
    }

    .gdp-mobile-mega .abmm-intro {
        grid-template-columns: minmax(0, 1fr);
        gap: 8px;
    }

    .gdp-mobile-mega .abmm-description {
        grid-column: 1;
        grid-row: auto;
        margin-top: 4px;
    }

    .gdp-mobile-mega .abmm-grid {
        width: 100%;
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: none;
        grid-auto-flow: row;
        grid-auto-columns: minmax(0, 1fr);
        gap: 10px;
        overflow: visible;
        padding: 0;
    }

    .gdp-mobile-mega .abmm-item {
        width: 100%;
        min-width: 0;
    }

    .gdp-mobile-mega .abmm-feature {
        min-height: 190px;
    }
}

@media (max-width: 620px) {
    .gdp-header-system .gdp-modern-search-form {
        border-radius: 16px;
    }

    .gdp-header-system .gdp-modern-search-input,
.gdp-header-system .gdp-modern-search-input:hover,
.gdp-header-system .gdp-modern-search-input:focus,
.gdp-header-system .gdp-modern-search-input:focus-visible {
        border-radius: 16px;
    }

    .gdp-mobile-menu-section {
        margin-bottom: 26px;
    }

    .gdp-mobile-menu-link {
        font-size: 13.5px;
    }
}

/* Current desktop Contact Us / request CTA. */
@media (min-width: 1025px) {
    .gdp-header-system .gdp-request-link,
.gdp-header-system.gdp-is-scrolled .gdp-request-link {
        position: relative;
        isolation: isolate;
        box-sizing: border-box;
        display: grid;
        grid-template-columns: minmax(0, auto) 36px;
        align-items: center;
        justify-items: stretch;
        column-gap: 12px;
        width: fit-content;
        min-width: 0;
        max-width: none;
        min-height: 48px;
        height: 48px;
        padding: 5px 5px 5px 18px;
        overflow: hidden;
        white-space: nowrap;
        color: #172130;
        background: linear-gradient(135deg, #fff8e9 0%, #efdfbd 100%);
        border: 1px solid rgba(234, 216, 177, .96);
        border-radius: 12px;
        box-shadow: 0 7px 16px rgba(6, 10, 17, .16), inset 0 1px 0 rgba(255,255,255,.70);
        font-size: 10.5px;
        font-weight: 800;
        line-height: 1;
        letter-spacing: .018em;
        text-transform: uppercase;
        transform: none;
        transition: color .34s ease, border-color .34s ease, box-shadow .38s ease, transform .38s cubic-bezier(.22,1,.36,1);
    }

    .gdp-header-system .gdp-request-text,
.gdp-header-system.gdp-is-scrolled .gdp-request-text {
        position: relative;
        z-index: 2;
        grid-column: 1;
        display: block;
        width: auto;
        min-width: 0;
        color: inherit;
        text-align: center;
        white-space: nowrap;
        line-height: 1.1;
    }

    .gdp-header-system .gdp-request-link::before,
.gdp-header-system.gdp-is-scrolled .gdp-request-link::before {
        content: "";
        position: absolute;
        inset: -1px;
        display: block;
        border-radius: inherit;
        background-image: linear-gradient(
            112deg,
            var(--ab-cta-sweep-1, #172130) 0%,
            var(--ab-cta-sweep-2, #263b5f) 24%,
            var(--ab-cta-sweep-3, #6c3a91) 47%,
            var(--ab-cta-sweep-4, #963d9c) 68%,
            var(--ab-cta-sweep-5, #c18a45) 86%,
            var(--ab-cta-sweep-6, #172130) 100%
        );
        background-size: 220% 100%;
        background-position: 0% 50%;
        clip-path: polygon(0 0, 86% 0, 100% 50%, 86% 100%, 0 100%);
        transform: translateX(-108%);
        transform-origin: left center;
        opacity: 1;
        z-index: 0;
        transition: transform .72s cubic-bezier(.16,1,.3,1);
        pointer-events: none;
    }

    .gdp-header-system .gdp-request-link::after,
.gdp-header-system.gdp-is-scrolled .gdp-request-link::after {
        content: "↗";
        position: relative;
        inset: auto;
        z-index: 2;
        grid-column: 2;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 36px;
        min-width: 36px;
        height: 36px;
        margin: 0;
        color: #ffffff;
        background: #172130;
        border: 1px solid rgba(255,255,255,.08);
        border-radius: 11px;
        box-shadow: 0 5px 12px rgba(7, 11, 18, .18);
        transform: none;
        font-family: inherit;
        font-size: 15px;
        font-weight: 700;
        line-height: 1;
        transition: color .32s ease, background .32s ease, border-color .32s ease, box-shadow .32s ease, transform .38s cubic-bezier(.22,1,.36,1);
    }

    .gdp-header-system .gdp-request-link:hover,
.gdp-header-system .gdp-request-link:focus-visible,
.gdp-header-system.gdp-is-scrolled .gdp-request-link:hover,
.gdp-header-system.gdp-is-scrolled .gdp-request-link:focus-visible {
        color: #ffffff;
        border-color: rgba(215, 169, 79, .72);
        background: linear-gradient(135deg, #fff8e9 0%, #efdfbd 100%);
        box-shadow: 0 16px 30px rgba(7, 11, 18, .24), 0 0 0 3px rgba(215,169,79,.08);
        transform: translateY(-2px);
    }

    .gdp-header-system .gdp-request-link:hover::before,
.gdp-header-system .gdp-request-link:focus-visible::before,
.gdp-header-system.gdp-is-scrolled .gdp-request-link:hover::before,
.gdp-header-system.gdp-is-scrolled .gdp-request-link:focus-visible::before {
        transform: translateX(0);
        animation: gdp-current-cta-spectrum 2.2s linear infinite;
    }

    .gdp-header-system .gdp-request-link:hover::after,
.gdp-header-system .gdp-request-link:focus-visible::after,
.gdp-header-system.gdp-is-scrolled .gdp-request-link:hover::after,
.gdp-header-system.gdp-is-scrolled .gdp-request-link:focus-visible::after {
        color: #172130;
        background: #ffffff;
        border-color: rgba(255,255,255,.72);
        box-shadow: 0 7px 15px rgba(7,11,18,.22);
        transform: translateX(2px);
    }
}

@keyframes gdp-current-cta-spectrum {
    0% { background-position: 0% 50%; }
    100% { background-position: 220% 50%; }
}

@media (prefers-reduced-motion: reduce) {
    .gdp-header-system .gdp-request-link::before,
.gdp-header-system.gdp-is-scrolled .gdp-request-link::before {
        animation: none;
        transition-duration: .01ms;
    }
}

/* Current desktop mega-menu portal and reliable normal-submenu hover bridge. */
@media (min-width: 1025px) {
    body > .abmm-mega-drop.gdp-mega-portal-open,
body > .abmm-mega-drop[data-ab-mega-portal="true"] {
        display: block;
        margin: 0;
        padding-top: 0;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: none;
        overflow: visible;
        z-index: 100000;
    }

    body > .abmm-mega-drop.gdp-mega-portal-open > .abmm-mega-drop-inner,
body > .abmm-mega-drop[data-ab-mega-portal="true"] > .abmm-mega-drop-inner {
        width: 100%;
        max-width: none;
        max-height: inherit;
        overflow: auto;
        border: 1px solid rgba(255, 255, 255, .12);
        border-radius: 18px;
        background: #ffffff;
        box-shadow: 0 28px 70px rgba(8, 15, 25, .24);
    }

    .gdp-header-system .gdp-nav-list > .gdp-has-submenu:not(.gdp-has-mega) {
        position: relative;
        overflow: visible;
    }

    .gdp-header-system .gdp-nav-list > .gdp-has-submenu:not(.gdp-has-mega) > .gdp-submenu {
        top: calc(100% + 8px);
        z-index: 10000;
    }

    .gdp-header-system .gdp-nav-list > .gdp-has-submenu:not(.gdp-has-mega) > .gdp-submenu::before {
        content: "";
        position: absolute;
        left: 0;
        right: 0;
        top: -12px;
        height: 14px;
        background: transparent;
        pointer-events: auto;
    }

    .gdp-header-system .gdp-has-submenu.gdp-desktop-open > .gdp-submenu {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateY(0);
    }
}

/* =========================================================
   CURRENT — NORMAL SUBMENU ALIGNMENT
   Keep the submenu directly below its parent menu item.
   ========================================================= */
@media (min-width: 1025px) {
    .gdp-header-system .gdp-nav-list > .gdp-has-submenu:not(.gdp-has-mega) > .gdp-submenu {
        left: 0;
        right: auto;
        transform: translateY(10px);
        transform-origin: top left;
    }

    .gdp-header-system .gdp-nav-list > .gdp-has-submenu:not(.gdp-has-mega):hover > .gdp-submenu,
.gdp-header-system .gdp-nav-list > .gdp-has-submenu:not(.gdp-has-mega):focus-within > .gdp-submenu,
.gdp-header-system .gdp-nav-list > .gdp-has-submenu:not(.gdp-has-mega).gdp-desktop-open > .gdp-submenu {
        transform: translateY(0);
    }
}

/* =========================================================
   CURRENT — SMOOTH DROPDOWN REVEAL
   Adds a refined, slower opening motion to normal submenus
   and mega menus without changing layout or functionality.
   ========================================================= */
@media (min-width: 1025px) {
    /* Normal submenu: soft fade + lift + slight blur. */
    .gdp-header-system .gdp-nav-list > .gdp-has-submenu:not(.gdp-has-mega) > .gdp-submenu {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transform: translateY(14px) scale(.985);
        transform-origin: top left;
        filter: blur(3px);
        transition:
            opacity .50s cubic-bezier(.16, 1, .3, 1),
            transform .58s cubic-bezier(.16, 1, .3, 1),
            filter .46s ease,
            visibility 0s linear .50s;
        will-change: opacity, transform, filter;
    }

    .gdp-header-system .gdp-nav-list > .gdp-has-submenu:not(.gdp-has-mega):hover > .gdp-submenu,
.gdp-header-system .gdp-nav-list > .gdp-has-submenu:not(.gdp-has-mega):focus-within > .gdp-submenu,
.gdp-header-system .gdp-nav-list > .gdp-has-submenu:not(.gdp-has-mega).gdp-desktop-open > .gdp-submenu {
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateY(0) scale(1);
        filter: blur(0);
        transition:
            opacity .50s cubic-bezier(.16, 1, .3, 1),
            transform .58s cubic-bezier(.16, 1, .3, 1),
            filter .46s ease,
            visibility 0s linear 0s;
    }

    /* Mega menu: animate the inner surface because the panel is portalled
       to <body> for reliable positioning. */
    @keyframes abClinicCurrentMegaMenuReveal {
        0% {
            opacity: 0;
            transform: translate3d(0, 18px, 0) scale(.985);
            filter: blur(4px);
        }
        55% {
            opacity: 1;
            transform: translate3d(0, -2px, 0) scale(1);
            filter: blur(0);
        }
        100% {
            opacity: 1;
            transform: translate3d(0, 0, 0) scale(1);
            filter: blur(0);
        }
    }

    body > .abmm-mega-drop.gdp-mega-portal-open > .abmm-mega-drop-inner,
body > .abmm-mega-drop[data-ab-mega-portal="true"] > .abmm-mega-drop-inner {
        transform-origin: top center;
        animation: abClinicCurrentMegaMenuReveal .62s cubic-bezier(.16, 1, .3, 1) both;
        will-change: opacity, transform, filter;
    }

    /* Fallback for a mega panel that is not portalled for any reason. */
    .gdp-header-system .gdp-has-mega:hover > .abmm-mega-drop > .abmm-mega-drop-inner,
.gdp-header-system .gdp-has-mega:focus-within > .abmm-mega-drop > .abmm-mega-drop-inner,
.gdp-header-system .gdp-has-mega.gdp-desktop-open > .abmm-mega-drop > .abmm-mega-drop-inner {
        transform-origin: top center;
        animation: abClinicCurrentMegaMenuReveal .62s cubic-bezier(.16, 1, .3, 1) both;
    }
}

@media (prefers-reduced-motion: reduce) {
    .gdp-header-system .gdp-nav-list > .gdp-has-submenu:not(.gdp-has-mega) > .gdp-submenu {
        transition: none;
        filter: none;
    }

    body > .abmm-mega-drop.gdp-mega-portal-open > .abmm-mega-drop-inner,
body > .abmm-mega-drop[data-ab-mega-portal="true"] > .abmm-mega-drop-inner,
.gdp-header-system .gdp-has-mega > .abmm-mega-drop > .abmm-mega-drop-inner {
        animation: none;
        filter: none;
    }
}

/* =========================================================
   CURRENT — MEGA MENU REVEAL + TRUE REVERSE CLOSE
   Mega menu only. Uses a perspective-fold + masked reveal and
   reverses the same motion before the portal is restored.
   ========================================================= */
@media (min-width: 1025px) {
    /* Neutralize the V39 keyframe on mega-menu surfaces only. */
    body > .abmm-mega-drop[data-ab-mega-portal="true"] > .abmm-mega-drop-inner,
body > .abmm-mega-drop.gdp-mega-portal-open > .abmm-mega-drop-inner,
body > .abmm-mega-drop.gdp-mega-portal-closing > .abmm-mega-drop-inner,
.gdp-header-system .gdp-has-mega > .abmm-mega-drop > .abmm-mega-drop-inner {
        animation: none;
    }

    /* Prepared / closed visual state. */
    body > .abmm-mega-drop[data-ab-mega-portal="true"] {
        display: block;
        opacity: 1;
        visibility: visible;
        transform: none;
        overflow: visible;
    }

    body > .abmm-mega-drop.gdp-mega-portal-preparing,
body > .abmm-mega-drop.gdp-mega-portal-closing {
        pointer-events: none;
    }

    body > .abmm-mega-drop.gdp-mega-portal-open {
        pointer-events: auto;
    }

    body > .abmm-mega-drop[data-ab-mega-portal="true"] > .abmm-mega-drop-inner {
        position: relative;
        opacity: 0;
        transform-origin: top center;
        transform: perspective(1200px) translate3d(0, -12px, 0) rotateX(-8deg) scale(.975);
        clip-path: inset(0 7% 100% 7% round 22px);
        filter: blur(7px) saturate(.86);
        transition:
            opacity .38s ease,
            transform .62s cubic-bezier(.22, 1, .36, 1),
            clip-path .68s cubic-bezier(.22, 1, .36, 1),
            filter .42s ease;
        will-change: opacity, transform, clip-path, filter;
    }

    /* A subtle light blade travels across the panel while it unfolds. */
    body > .abmm-mega-drop[data-ab-mega-portal="true"] > .abmm-mega-drop-inner::after {
        content: "";
        position: absolute;
        top: -12%;
        bottom: -12%;
        left: -120px;
        width: 92px;
        z-index: 50;
        pointer-events: none;
        opacity: 0;
        background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,.08) 22%, rgba(255,255,255,.58) 50%, rgba(255,255,255,.08) 78%, transparent 100%);
        transform: translateX(0) skewX(-16deg);
        transition:
            transform .82s cubic-bezier(.16, 1, .3, 1),
            opacity .20s ease;
    }

    /* Fully opened state. */
    body > .abmm-mega-drop.gdp-mega-portal-open > .abmm-mega-drop-inner {
        opacity: 1;
        transform: perspective(1200px) translate3d(0, 0, 0) rotateX(0deg) scale(1);
        clip-path: inset(0 0 0 0 round 22px);
        filter: blur(0) saturate(1);
    }

    body > .abmm-mega-drop.gdp-mega-portal-open > .abmm-mega-drop-inner::after {
        opacity: .72;
        transform: translateX(calc(100vw + 260px)) skewX(-16deg);
    }

    /* Closing state intentionally matches the prepared state so the exact
       opening motion plays backwards before JS returns the panel to its item. */
    body > .abmm-mega-drop.gdp-mega-portal-closing > .abmm-mega-drop-inner {
        opacity: 0;
        transform: perspective(1200px) translate3d(0, -12px, 0) rotateX(-8deg) scale(.975);
        clip-path: inset(0 7% 100% 7% round 22px);
        filter: blur(7px) saturate(.86);
    }

    body > .abmm-mega-drop.gdp-mega-portal-closing > .abmm-mega-drop-inner::after {
        opacity: 0;
        transform: translateX(0) skewX(-16deg);
    }

    /* Non-portalled fallback keeps the same visual language. */
    .gdp-header-system .gdp-has-mega > .abmm-mega-drop {
        transition:
            opacity .38s ease,
            visibility 0s linear .68s;
    }

    .gdp-header-system .gdp-has-mega > .abmm-mega-drop > .abmm-mega-drop-inner {
        opacity: 0;
        transform-origin: top center;
        transform: perspective(1200px) translate3d(0, -12px, 0) rotateX(-8deg) scale(.975);
        clip-path: inset(0 7% 100% 7% round 22px);
        filter: blur(7px) saturate(.86);
        transition:
            opacity .38s ease,
            transform .62s cubic-bezier(.22, 1, .36, 1),
            clip-path .68s cubic-bezier(.22, 1, .36, 1),
            filter .42s ease;
    }

    .gdp-header-system .gdp-has-mega:hover > .abmm-mega-drop,
.gdp-header-system .gdp-has-mega:focus-within > .abmm-mega-drop,
.gdp-header-system .gdp-has-mega.gdp-desktop-open > .abmm-mega-drop {
        transition:
            opacity .38s ease,
            visibility 0s linear 0s;
    }

    .gdp-header-system .gdp-has-mega:hover > .abmm-mega-drop > .abmm-mega-drop-inner,
.gdp-header-system .gdp-has-mega:focus-within > .abmm-mega-drop > .abmm-mega-drop-inner,
.gdp-header-system .gdp-has-mega.gdp-desktop-open > .abmm-mega-drop > .abmm-mega-drop-inner {
        opacity: 1;
        transform: perspective(1200px) translate3d(0, 0, 0) rotateX(0deg) scale(1);
        clip-path: inset(0 0 0 0 round 22px);
        filter: blur(0) saturate(1);
    }
}

@media (prefers-reduced-motion: reduce) {
    body > .abmm-mega-drop[data-ab-mega-portal="true"] > .abmm-mega-drop-inner,
body > .abmm-mega-drop[data-ab-mega-portal="true"] > .abmm-mega-drop-inner::after,
.gdp-header-system .gdp-has-mega > .abmm-mega-drop,
.gdp-header-system .gdp-has-mega > .abmm-mega-drop > .abmm-mega-drop-inner {
        transition: none;
        animation: none;
        filter: none;
    }
}

/* =========================================================
   CURRENT — MEGA MENU SCROLLBAR CLEANUP
   Prevent animation paint overflow from creating unnecessary
   horizontal/vertical scrollbars. JS enables vertical scroll
   only when the menu is genuinely taller than available space.
   ========================================================= */
@media (min-width: 1025px) {
    body > .abmm-mega-drop[data-ab-mega-portal="true"] > .abmm-mega-drop-inner,
body > .abmm-mega-drop.gdp-mega-portal-open > .abmm-mega-drop-inner,
body > .abmm-mega-drop.gdp-mega-portal-closing > .abmm-mega-drop-inner {
        box-sizing: border-box;
        width: 100%;
        max-width: 100%;
        scrollbar-gutter: auto;
        overscroll-behavior: contain;
    }
}

.elementor-widget-ab-clinic-header {
    --ab-sticky-duration: .72s;
}

/* =========================================================
   CURRENT — ANIMATED DESKTOP MENU UNDERLINE
   Keeps the existing header untouched while replacing the
   desktop menu pill hover with the requested underline.
   ========================================================= */
@media (min-width: 1221px) {
    .gdp-header-system .gdp-nav-link::before,
.gdp-header-system.gdp-is-scrolled .gdp-nav-link::before {
        content: none;
        display: none;
        animation: none;
    }

    .gdp-header-system .gdp-nav-link::after,
.gdp-header-system.gdp-is-scrolled .gdp-nav-link::after {
        content: "";
        position: absolute;
        left: 12px;
        right: auto;
        bottom: 6px;
        width: calc(100% - 24px);
        height: 4px;
        display: block;
        border-radius: 999px;
        background: #7b3f93;
        opacity: 0;
        transform: scaleX(0);
        transform-origin: left center;
        transition: transform .32s cubic-bezier(.22, 1, .36, 1), opacity .18s ease;
        pointer-events: none;
    }

    .gdp-header-system .gdp-nav-link:hover,
.gdp-header-system .gdp-nav-link:focus-visible,
.gdp-header-system .gdp-nav-link.gdp-current,
.gdp-header-system .current-menu-item > .gdp-nav-link,
.gdp-header-system .current-menu-ancestor > .gdp-nav-link,
.gdp-header-system.gdp-is-scrolled .gdp-nav-link:hover,
.gdp-header-system.gdp-is-scrolled .gdp-nav-link:focus-visible,
.gdp-header-system.gdp-is-scrolled .gdp-nav-link.gdp-current,
.gdp-header-system.gdp-is-scrolled .current-menu-item > .gdp-nav-link,
.gdp-header-system.gdp-is-scrolled .current-menu-ancestor > .gdp-nav-link {
        color: #ffffff;
        border-color: transparent;
        background: transparent;
        box-shadow: none;
        transform: none;
    }

    .gdp-header-system .gdp-nav-link:hover::after,
.gdp-header-system .gdp-nav-link:focus-visible::after,
.gdp-header-system .gdp-nav-link.gdp-current::after,
.gdp-header-system .current-menu-item > .gdp-nav-link::after,
.gdp-header-system .current-menu-ancestor > .gdp-nav-link::after,
.gdp-header-system.gdp-is-scrolled .gdp-nav-link:hover::after,
.gdp-header-system.gdp-is-scrolled .gdp-nav-link:focus-visible::after,
.gdp-header-system.gdp-is-scrolled .gdp-nav-link.gdp-current::after,
.gdp-header-system.gdp-is-scrolled .current-menu-item > .gdp-nav-link::after,
.gdp-header-system.gdp-is-scrolled .current-menu-ancestor > .gdp-nav-link::after {
        opacity: 1;
        transform: scaleX(1);
    }
}

@media (min-width: 1221px) and (prefers-reduced-motion: reduce) {
    .gdp-header-system .gdp-nav-link::after,
.gdp-header-system.gdp-is-scrolled .gdp-nav-link::after {
        transition: none;
    }
}

/* =========================================================
   CURRENT — RESPONSIVE UNDERLINE + BALANCED DESKTOP GAPS
   ========================================================= */
@media (min-width: 1221px) {
    .gdp-header-system .gdp-nav-link,
.gdp-header-system.gdp-is-scrolled .gdp-nav-link {
        --gdp-menu-link-inset: 12px;
    }

    .gdp-header-system .gdp-nav-link::after,
.gdp-header-system.gdp-is-scrolled .gdp-nav-link::after {
        left: var(--gdp-menu-link-inset);
        right: var(--gdp-menu-link-inset);
        width: auto;
    }

    .gdp-header-system .gdp-nav-inner,
.gdp-header-system:not(.gdp-is-scrolled) .gdp-nav-inner,
.gdp-header-system.gdp-is-scrolled .gdp-nav-inner {
        column-gap: clamp(20px, 1.65vw, 32px);
    }

    .gdp-header-system .gdp-nav-list,
.gdp-header-system.gdp-is-scrolled .gdp-nav-list {
        justify-content: center;
        gap: clamp(12px, 1.05vw, 20px);
    }
}

@media (min-width: 1221px) and (max-width: 1500px) {
    .gdp-header-system .gdp-nav-link,
.gdp-header-system.gdp-is-scrolled .gdp-nav-link {
        --gdp-menu-link-inset: clamp(3px, .28vw, 5px);
    }
}

/* =========================================================
   CURRENT — SUBMENU CONNECTOR ARTIFACT FIX
   Remove only the visible pseudo-element triangle/diagonal line while
   preserving the transparent hover bridges used by desktop submenus.
   ========================================================= */
@media (min-width: 1025px) {
    /* First-level dropdown: keep its invisible hover bridge, but never draw
       the old rotated corner/arrow shape below the parent menu item. */
    .gdp-header-system .gdp-nav-list > .gdp-has-submenu:not(.gdp-has-mega) > .gdp-submenu::before {
        content: "";
        top: -12px;
        right: 0;
        bottom: auto;
        left: 0;
        width: auto;
        height: 14px;
        display: block;
        background: transparent;
        border: 0;
        border-radius: 0;
        box-shadow: none;
        transform: none;
        clip-path: none;
        pointer-events: auto;
    }

    /* Nested dropdown: the pseudo-element is only a hover bridge between the
       two panels. Reset inherited border/rotation so no diagonal line is
       painted through the child submenu. */
    .abdh-header .gdp-submenu .gdp-has-submenu > .gdp-submenu::before,
    .abdh-header .gdp-submenu .gdp-has-submenu.gdp-submenu-flip-left > .gdp-submenu::before,
    .abdh-header .gdp-more-submenu .gdp-has-submenu > .gdp-submenu::before {
        content: "";
        top: 0;
        bottom: 0;
        width: 12px;
        height: auto;
        display: block;
        background: transparent;
        border: 0;
        border-radius: 0;
        box-shadow: none;
        transform: none;
        clip-path: none;
        pointer-events: auto;
    }
}

/* =========================================================
   OFF-CANVAS CLOSE BUTTON — GLOBAL STYLE ISOLATION
   Keep the native header close control immune to theme/Elementor/global
   button colours and pseudo-element button effects.
   ========================================================= */
.gdp-header-system .gdp-offcanvas button.gdp-canvas-close,
.gdp-header-system .gdp-offcanvas button.gdp-canvas-close:visited {
    -webkit-appearance: none !important;
    appearance: none !important;
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
    min-height: 42px !important;
    max-width: 42px !important;
    max-height: 42px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid rgba(255, 255, 255, 0.24) !important;
    border-radius: 50% !important;
    background: rgba(255, 255, 255, 0.10) !important;
    background-color: rgba(255, 255, 255, 0.10) !important;
    background-image: none !important;
    color: #ffffff !important;
    box-shadow: none !important;
    text-shadow: none !important;
    text-decoration: none !important;
    opacity: 1 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: hidden !important;
}

.gdp-header-system .gdp-offcanvas button.gdp-canvas-close:hover,
.gdp-header-system .gdp-offcanvas button.gdp-canvas-close:focus,
.gdp-header-system .gdp-offcanvas button.gdp-canvas-close:focus-visible,
.gdp-header-system .gdp-offcanvas button.gdp-canvas-close:active {
    border-color: rgba(255, 255, 255, 0.42) !important;
    background: rgba(255, 255, 255, 0.20) !important;
    background-color: rgba(255, 255, 255, 0.20) !important;
    background-image: none !important;
    color: #ffffff !important;
    box-shadow: none !important;
    text-shadow: none !important;
    outline-color: rgba(255, 255, 255, 0.42) !important;
}

.gdp-header-system .gdp-offcanvas button.gdp-canvas-close::before,
.gdp-header-system .gdp-offcanvas button.gdp-canvas-close::after {
    content: none !important;
    display: none !important;
    background: none !important;
    border: 0 !important;
    box-shadow: none !important;
}

.gdp-header-system .gdp-offcanvas button.gdp-canvas-close svg,
.gdp-header-system .gdp-offcanvas button.gdp-canvas-close svg path {
    color: #ffffff !important;
    fill: none !important;
    stroke: currentColor !important;
}
