/* ==========================================================================
   AFB — desktop fullscreen menu (gather overlay)
   Markup: templates/header-gather-overlay.php
   ========================================================================== */

.gather-overlay.afb-menu-overlay {
    --afb-menu-bg: #111111;
    --afb-menu-text: #ffffff;     /* nav items, headings, address & phone, close icon */
    --afb-menu-muted: rgba(255, 255, 255, .72);
    --afb-menu-dim: #888888;      /* item numbers 01-06 */
    --afb-menu-link: #aaaaaa;     /* Instagram, LinkedIn, Policies */
    --afb-menu-line: rgba(255, 255, 255, .22);
    --afb-menu-serif: 'Playfair Display', 'Times New Roman', Times, serif;
    --afb-menu-sans: 'Montserrat', 'Acumin Variable Concept', Arial, sans-serif;

    background: var(--afb-menu-bg) !important;
    color: var(--afb-menu-text);
    font-family: var(--afb-menu-sans);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* The open animation fades to .93 — keep the panel fully solid like the design */
.gather-overlay.afb-menu-overlay.active {
    opacity: 1 !important;
}

/* ---------- Logo ---------- */
.gather-overlay.afb-menu-overlay .logo {
    top: 22px;
    left: 36px;
    width: 54px;
    max-width: none;
    line-height: 0;
    z-index: 2;
}

.gather-overlay.afb-menu-overlay .logo img {
    display: block;
    width: 100%;
    height: auto;
}

/* ---------- Close button (thin X) ---------- */
.gather-overlay.afb-menu-overlay .gather-btn {
    top: 30px;
    right: 38px;
    z-index: 2;
}

.gather-overlay.afb-menu-overlay .gather-btn > span.icon-close {
    position: relative;
    display: block;
    width: 28px;
    height: 28px;
    font-size: 0 !important;
    cursor: pointer;
    transition: opacity .3s;
}

.gather-overlay.afb-menu-overlay .gather-btn > span.icon-close::before,
.gather-overlay.afb-menu-overlay .gather-btn > span.icon-close::after {
    content: '' !important;
    position: absolute;
    top: 50%;
    left: -4px;
    width: 36px;
    height: 1.5px;
    background: var(--afb-menu-text);
    transform: rotate(45deg);
}

.gather-overlay.afb-menu-overlay .gather-btn > span.icon-close::after {
    transform: rotate(-45deg);
}

.gather-overlay.afb-menu-overlay .gather-btn > span.icon-close:hover {
    opacity: .6;
}

/* ---------- Left column: numbered menu ---------- */
.gather-overlay.afb-menu-overlay .menu {
    top: 17vh;
    left: 8.1%;
    width: 37.7% !important;
    transform: none;
    text-align: left;
    text-transform: uppercase;
    counter-reset: afb-menu;
}

.gather-overlay.afb-menu-overlay .menu nav,
.gather-overlay.afb-menu-overlay .menu nav > ul {
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
    float: none;
}

.gather-overlay.afb-menu-overlay .menu nav > ul > li {
    display: block;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-bottom: 1px solid var(--afb-menu-line) !important;
    text-align: left !important;
    counter-increment: afb-menu;
}

/* "Policies" lives under the Legal link in the right column, as in the design */
.gather-overlay.afb-menu-overlay .menu nav > ul > li#menu_item-982 {
    display: none !important;
}

.gather-overlay.afb-menu-overlay .menu nav > ul > li:last-child {
    border-bottom: 1px solid var(--afb-menu-line) !important;
}

.gather-overlay.afb-menu-overlay .menu nav > ul > li > a {
    display: flex;
    align-items: baseline;
    padding: 1.15vh 0 .6vh;
    font-family: var(--afb-menu-serif) !important;
    font-size: min(3.4vw, 6.2vh) !important;
    white-space: nowrap;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
    line-height: 1.12 !important;
    color: var(--afb-menu-text) !important;
    text-decoration: none;
}

/* 01, 02, 03 ... */
.gather-overlay.afb-menu-overlay .menu nav > ul > li > a::before {
    content: counter(afb-menu, decimal-leading-zero);
    flex: 0 0 4.5vw;
    font-family: var(--afb-menu-serif);
    font-size: max(12px, .95vw);
    font-style: italic;
    font-weight: 400;
    letter-spacing: .02em;
    line-height: 1;
    color: var(--afb-menu-dim);
    text-transform: none;
}

.gather-overlay.afb-menu-overlay .menu nav > ul > li > a .menu-title {
    width: auto !important;
    left: 0 !important;
    color: inherit;
}

.gather-overlay.afb-menu-overlay .menu nav > ul > li > a .menu-title .title {
    padding: 0;
    font-family: inherit !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    letter-spacing: inherit !important;
    line-height: inherit !important;
    color: inherit !important;
}

.gather-overlay.afb-menu-overlay .menu nav > ul > li > a .menu-separator,
.gather-overlay.afb-menu-overlay .menu nav > ul > li > a .menu-separator-block,
.gather-overlay.afb-menu-overlay .menu nav > ul > li > a .icon {
    display: none !important;
}

.gather-overlay.afb-menu-overlay .menu nav > ul > li:hover > a,
.gather-overlay.afb-menu-overlay .menu nav > ul > li > a:focus-visible {
    color: var(--afb-menu-muted) !important;
}

/* ---------- Right column: CTA + details ---------- */
.gather-overlay.afb-menu-overlay .afb-menu-aside {
    position: absolute;
    top: 17vh;
    bottom: 6vh;
    left: 54.2%;
    right: 8%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    text-align: left;
}

.gather-overlay.afb-menu-overlay .afb-menu-heading {
    margin: 0 0 12px;
    font-family: var(--afb-menu-serif);
    font-size: max(13px, 1.12vw);
    font-weight: 400;
    letter-spacing: .01em;
    line-height: 1.2;
    text-transform: uppercase;
    color: var(--afb-menu-text);
}

.gather-overlay.afb-menu-overlay .afb-menu-heading--large {
    margin-bottom: 14px;
    font-size: min(2.35vw, 4.2vh);
    line-height: 1.15;
}

.gather-overlay.afb-menu-overlay .afb-menu-aside p {
    margin: 0;
    font-family: var(--afb-menu-sans);
    font-size: max(12px, 1.04vw);
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.55;
    color: var(--afb-menu-muted);
    text-transform: none;
}

.gather-overlay.afb-menu-overlay .afb-menu-aside a {
    font-family: var(--afb-menu-sans) !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    letter-spacing: inherit !important;
    line-height: inherit !important;
    color: var(--afb-menu-muted) !important;
    text-decoration: none;
    transition: color .3s;
}

.gather-overlay.afb-menu-overlay .afb-menu-aside a:hover {
    color: var(--afb-menu-text) !important;
}

.gather-overlay.afb-menu-overlay .afb-menu-info p,
.gather-overlay.afb-menu-overlay .afb-menu-info a {
    color: var(--afb-menu-text) !important;
}

.gather-overlay.afb-menu-overlay .afb-menu-info .afb-menu-social a,
.gather-overlay.afb-menu-overlay .afb-menu-info a.afb-menu-legal {
    color: var(--afb-menu-link) !important;
}

.gather-overlay.afb-menu-overlay .afb-menu-info a:hover,
.gather-overlay.afb-menu-overlay .afb-menu-info .afb-menu-social a:hover,
.gather-overlay.afb-menu-overlay .afb-menu-info a.afb-menu-legal:hover {
    color: var(--afb-menu-text) !important;
    opacity: .75;
}

.gather-overlay.afb-menu-overlay .afb-menu-cta p {
    margin-bottom: 18px;
}

.gather-overlay.afb-menu-overlay a.afb-menu-button {
    display: inline-block;
    padding: 13px 26px;
    border: 1px solid var(--afb-menu-text);
    font-size: max(11px, .8vw) !important;
    font-weight: 600 !important;
    letter-spacing: .12em !important;
    line-height: 1.2 !important;
    text-transform: uppercase;
    color: var(--afb-menu-text) !important;
    transition: background-color .3s, color .3s;
}

.gather-overlay.afb-menu-overlay a.afb-menu-button:hover {
    background: var(--afb-menu-text);
    color: var(--afb-menu-bg) !important;
}

.gather-overlay.afb-menu-overlay .afb-menu-info {
    display: grid;
    /*grid-template-columns: 20.3vw 1fr;*/
    grid-template-columns: 22vw 1fr;
    row-gap: 4.2vh;
}

.gather-overlay.afb-menu-overlay .afb-menu-col--legal {
    align-self: end;
}

.gather-overlay.afb-menu-overlay .afb-menu-social a + a {
    margin-left: 1.6vw;
}

.gather-overlay.afb-menu-overlay a.afb-menu-legal {
    text-decoration: underline;
    text-underline-offset: 3px;
}

/* Tablets (768px-1024px) use this desktop overlay too; phones get the mobile menu below */
@media (max-width: 1024px) {
    /* The theme's .hidden-phone hides the nav below 1024px */
    .gather-overlay.afb-menu-overlay .menu nav.hidden-phone {
        display: block !important;
    }

    .gather-overlay.afb-menu-overlay .afb-menu-info {
        grid-template-columns: 1fr 1fr;
        column-gap: 24px;
    }
}

/* Portrait tablets: stack the details so the address keeps its two lines */
@media (min-width: 768px) and (max-width: 900px) {
    .gather-overlay.afb-menu-overlay .afb-menu-info {
        grid-template-columns: 1fr;
        row-gap: 3vh;
    }

    .gather-overlay.afb-menu-overlay .afb-menu-cta p br {
        display: none;
    }
}

@media (max-width: 767px) {
    .gather-overlay.afb-menu-overlay {
        display: none !important;
    }
}


/* ==========================================================================
   AFB — mobile fullscreen menu (phones only, below 768px)
   Markup: templates/navigation-mobile.php · behaviour: assets/js/afb-menu.js
   ========================================================================== */

.navigation-mobile.afb-mobile-menu {
    --afb-menu-bg: #111111;
    --afb-menu-text: #ffffff;     /* nav items, phone, close icon */
    --afb-menu-dim: #888888;      /* item numbers 01-06 */
    --afb-menu-link: #aaaaaa;     /* Instagram, LinkedIn */
    --afb-menu-line: rgba(255, 255, 255, .18);
    --afb-menu-serif: 'Playfair Display', 'Times New Roman', Times, serif;
    --afb-menu-sans: 'Montserrat', 'Acumin Variable Concept', Arial, sans-serif;
    --afb-mnav-gutter: clamp(18px, 5.5vw, 40px);

    position: fixed !important;
    top: 0 !important;
    left: 0;
    right: 0;
    width: 100% !important;
    height: 100vh;
    height: 100dvh;
    margin: 0 !important;
    padding: 0 !important;
    overflow-x: hidden;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    z-index: 100001 !important;
    background: var(--afb-menu-bg) !important;
    color: var(--afb-menu-text);
    font-family: var(--afb-menu-sans);
    text-align: left;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.navigation-mobile.afb-mobile-menu .afb-mnav-inner {
    display: flex;
    flex-direction: column;
    min-height: 100%;
    padding: 0 var(--afb-mnav-gutter) max(30px, env(safe-area-inset-bottom));
    box-sizing: border-box;
}

/* ---------- Top bar ---------- */
.navigation-mobile.afb-mobile-menu .afb-mnav-top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    padding-top: 14px;
}

.navigation-mobile.afb-mobile-menu .afb-mnav-logo {
    display: block;
    width: clamp(40px, 11.8vw, 56px);
    padding: 0;
    line-height: 0;
}

.navigation-mobile.afb-mobile-menu .afb-mnav-logo img {
    display: block;
    width: 100%;
    height: auto;
}

.navigation-mobile.afb-mobile-menu .afb-mnav-close {
    position: relative;
    width: 24px;
    height: 24px;
    margin: 8px 8px 0 0;
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
}

.navigation-mobile.afb-mobile-menu .afb-mnav-close::before,
.navigation-mobile.afb-mobile-menu .afb-mnav-close::after {
    content: '';
    position: absolute;
    top: 50%;
    left: -3px;
    width: 30px;
    height: 1.5px;
    background: var(--afb-menu-text);
    transform: rotate(45deg);
}

.navigation-mobile.afb-mobile-menu .afb-mnav-close::after {
    transform: rotate(-45deg);
}

/* ---------- Numbered menu ---------- */
.navigation-mobile.afb-mobile-menu .afb-mnav-menu {
    margin-top: clamp(20px, 7vw, 48px);
    counter-reset: afb-mnav;
}

.navigation-mobile.afb-mobile-menu .afb-mnav-menu ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

.navigation-mobile.afb-mobile-menu .afb-mnav-menu > ul > li {
    position: relative;
    margin: 0;
    padding: 0;
    border: 0 !important;
    border-bottom: 1px solid var(--afb-menu-line) !important;
    counter-increment: afb-mnav;
}

/* "Policies" is reached from the Legal link in the footer, as in the design */
.navigation-mobile.afb-mobile-menu .afb-mnav-menu > ul > li#menu-item-mobile982,
.navigation-mobile.afb-mobile-menu .afb-mnav-menu li.separator,
.navigation-mobile.afb-mobile-menu .afb-mnav-menu .arrow,
.navigation-mobile.afb-mobile-menu .afb-mnav-menu ul ul {
    display: none !important;
}

.navigation-mobile.afb-mobile-menu .afb-mnav-menu > ul > li > a {
    display: flex !important;
    align-items: baseline;
    width: 100% !important;
    padding: clamp(10px, 3.4vw, 18px) 0 clamp(11px, 3.7vw, 19px) !important;
    font-family: var(--afb-menu-serif) !important;
    font-size: clamp(24px, 8.2vw, 44px) !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
    line-height: 1.1 !important;
    text-transform: uppercase;
    white-space: nowrap;
    color: var(--afb-menu-text) !important;
    text-decoration: none;
}

/* 01, 02, 03 ... */
.navigation-mobile.afb-mobile-menu .afb-mnav-menu > ul > li > a::before {
    content: counter(afb-mnav, decimal-leading-zero);
    flex: 0 0 clamp(38px, 11.8vw, 72px);
    font-family: var(--afb-menu-serif);
    font-size: clamp(10px, 3vw, 14px);
    font-style: italic;
    letter-spacing: .02em;
    line-height: 1;
    color: var(--afb-menu-dim);
    text-transform: none;
}

.navigation-mobile.afb-mobile-menu .afb-mnav-menu > ul > li > a span {
    font: inherit !important;
    letter-spacing: inherit !important;
    color: inherit !important;
    padding: 0 !important;
    margin: 0 !important;
}

.navigation-mobile.afb-mobile-menu .afb-mnav-menu > ul > li > a .icon,
.navigation-mobile.afb-mobile-menu .afb-mnav-menu > ul > li > a .hover-effect,
.navigation-mobile.afb-mobile-menu .afb-mnav-menu > ul > li > a .menu-separator,
.navigation-mobile.afb-mobile-menu .afb-mnav-menu > ul > li > a .menu-separator-block {
    display: none !important;
}

.navigation-mobile.afb-mobile-menu .afb-mnav-menu > ul > li > a:active,
.navigation-mobile.afb-mobile-menu .afb-mnav-menu > ul > li > a:hover {
    color: rgba(255, 255, 255, .6) !important;
}

/* ---------- Bottom: CTA + social / phone ---------- */
.navigation-mobile.afb-mobile-menu .afb-mnav-bottom {
    margin-top: auto;
    padding-top: 40px;
}

.navigation-mobile.afb-mobile-menu a.afb-mnav-cta {
    display: block;
    width: 100% !important;
    padding: clamp(14px, 4.2vw, 20px) 10px !important;
    border: 1px solid var(--afb-menu-text);
    box-sizing: border-box;
    font-family: var(--afb-menu-sans) !important;
    font-size: clamp(11px, 3.3vw, 15px) !important;
    font-weight: 600 !important;
    letter-spacing: .1em !important;
    line-height: 1.2 !important;
    text-align: center;
    text-transform: uppercase;
    text-decoration: none;
    color: var(--afb-menu-text) !important;
    transition: background-color .3s, color .3s;
}

.navigation-mobile.afb-mobile-menu a.afb-mnav-cta:active,
.navigation-mobile.afb-mobile-menu a.afb-mnav-cta:hover {
    background: var(--afb-menu-text);
    color: var(--afb-menu-bg) !important;
}

.navigation-mobile.afb-mobile-menu .afb-mnav-meta {
    display: flex;
    align-items: center;  
    justify-content: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: clamp(20px, 7.5vw, 32px);
}

.navigation-mobile.afb-mobile-menu .afb-mnav-meta a {
    display: inline-block;
    width: auto !important;
    padding: 0 !important;
    font-family: var(--afb-menu-sans) !important;
    font-size: clamp(12px, 3.7vw, 16px) !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
    line-height: 1.3 !important;
    white-space: nowrap;
    text-decoration: none;
    color: var(--afb-menu-link) !important;
}

.navigation-mobile.afb-mobile-menu .afb-mnav-meta a.afb-mnav-phone {
    color: var(--afb-menu-text) !important;
}

.navigation-mobile.afb-mobile-menu .afb-mnav-social a + a {
    margin-left: clamp(14px, 5.5vw, 28px);
}

/* Lock the page behind the open menu */
html.afb-mnav-open,
body.afb-mnav-open {
    overflow: hidden !important;
}

@media (min-width: 768px) {
    .navigation-mobile.afb-mobile-menu {
        display: none !important;
    }
}
