/* The native Navigation block supplies the dialog, focus trap and Escape handling. */
:root {
    --gf-ink: #322d28;
    --gf-accent: #ab490d;
    --gf-teal: #096c76;
    --gf-line: #e6e3dd;
}
body #gf-header.gf-site-header {
    display: grid;
    grid-template-columns: minmax(155px, 1fr) auto minmax(124px, 1fr);
    align-items: center;
    gap: clamp(12px, 1.8vw, 29px);
    max-width: 1440px;
    min-height: 80px;
    padding: 7px clamp(25px, 3.7vw, 54px);
    color: var(--gf-ink);
}
body #gf-header.gf-site-header > .wp-block-site-logo img { width: clamp(160px, 13vw, 185px); }
#gf-header .gf-header-booking { justify-self: end; }
#gf-header .gf-menu-brand, #gf-header .gf-menu-contact,
#gf-header li:has(> .gf-menu-brand),
#gf-header .wp-block-navigation-item__description { display: none; }
#gf-header .wp-block-navigation__container { gap: clamp(4px, .8vw, 15px); }
#gf-header .wp-block-navigation-item__content {
    display: inline-flex;
    align-items: center;
    min-height: 48px;
    gap: 7px;
    padding: 8px clamp(8px, .8vw, 14px);
    font-size: 16px;
    line-height: 1.45;
    font-weight: 650;
    letter-spacing: -.025em;
    color: var(--gf-ink);
    text-decoration: none;
    white-space: nowrap;
}
#gf-header .wp-block-navigation-item__label { position: relative; }
#gf-header .wp-block-navigation-item__content[aria-current] { color: var(--gf-accent); }
#gf-header .gf-menu-diet > a[aria-current] { color: var(--gf-teal); }
#gf-header .wp-block-navigation-item__content[aria-current] .wp-block-navigation-item__label::after {
    content: "";
    position: absolute;
    inset: auto 0 -5px;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
}
#gf-header :is(.gf-menu-growth, .gf-menu-diet) > a::before, :is(#gf-header, #gf-clinic-footer, #gf-mobile-cta, main) :is(.gf-book,.gf-call) > a::before {
    content: "";
    display: block;
    flex: none;
    width: 20px;
    height: 20px;
    background: currentColor;
    mask: var(--nav-icon) center / contain no-repeat;
}
#gf-header .gf-menu-growth {
    --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='3' width='8' height='18' rx='1.5'/%3E%3Cpath d='M4 7h3m-3 4h4m-4 4h3m11.5 4V5m-3.5 4 3.5-4 3.5 4'/%3E%3C/svg%3E");
}
#gf-header .gf-menu-diet {
    --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.5 12h19c-.5 4.8-4.1 7.5-9.5 7.5S3 16.8 2.5 12ZM8 21h8m-3-11c-.8-4.8 2.2-7 7.2-7 .2 5.2-2.7 7.7-7.2 7Zm0 0 4-4M5 9c-.2-2 1.2-3.7 3.3-4 1.8.7 2.8 2 2.9 3.5'/%3E%3C/svg%3E");
}
:is(#gf-header, #gf-clinic-footer, #gf-mobile-cta, main) .gf-book {
    --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='5' width='17' height='16' rx='3'/%3E%3Cpath d='M7.5 3v4M16.5 3v4M4 10h16m-12 5 2.2 2.2 4.5-4.5'/%3E%3C/svg%3E");
}
:is(#gf-header, #gf-clinic-footer, #gf-mobile-cta, main) .gf-call {
    --nav-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linejoin='round'%3E%3Cpath d='m8 3 2.1 4.9-2.5 2a14 14 0 0 0 6.5 6.5l2-2.5L21 16v3c0 1.3-.9 2.2-2.2 2C10 19.9 4.1 14 3 5.2 2.8 3.9 3.7 3 5 3Z'/%3E%3C/svg%3E");
}
#gf-header .gf-menu-growth > a::before { color: var(--gf-accent); }
#gf-header .gf-menu-diet > a::before { color: var(--gf-teal); }
:is(#gf-header.gf-site-header, #gf-clinic-footer, #gf-mobile-cta, main) :is(.gf-book,.gf-call) > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 48px;
    padding: 10px 20px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: var(--gf-accent);
    color: white !important;
    font-size: 15px;
    line-height: 1.4;
    font-weight: 700;
    white-space: nowrap;
    text-decoration: none;
}
:is(#gf-header, #gf-clinic-footer, #gf-mobile-cta) :is(a,button):focus-visible, main :is(.gf-call,.gf-book) > a:focus-visible { outline: 3px solid #176f88; outline-offset: 3px; }
:is(#gf-header.gf-site-header, #gf-clinic-footer, #gf-mobile-cta, main) .gf-call > a { background: white; border-color: #cecbc4; color: var(--gf-ink) !important; }
@media (min-width: 960px) {
    #gf-header .gf-menu-team { margin-inline-start: 10px; }
    #gf-header .gf-menu-team::before {
        content: ""; position: absolute; left: -6px; top: 50%;
        width: 1px; height: 17px; transform: translateY(-50%); background: var(--gf-line);
    }
}
@media (hover: hover) {
    #gf-header .wp-block-navigation-item__content:hover { background: #f6f4f0; border-radius: 9px; }
    :is(#gf-header.gf-site-header, #gf-clinic-footer, #gf-mobile-cta, main) .gf-book > a:hover { background: #873706 !important; }
    :is(#gf-header.gf-site-header, #gf-clinic-footer, #gf-mobile-cta, main) .gf-call > a:hover { background: #f6f4f0 !important; }
}
@media (width < 960px) {
    body #gf-header.gf-site-header {
        min-height: 66px;
        grid-template-columns: minmax(0,1fr) auto auto;
        gap: 8px;
        padding: 5px clamp(12px, 4vw, 28px);
    }
    body #gf-header.gf-site-header > .wp-block-site-logo img { width: clamp(116px, 35vw, 158px); }
    #gf-header .wp-block-navigation__responsive-container-open { display: flex !important; }
    #gf-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
    #gf-header .gf-header-booking { display: flex; grid-column: 2; grid-row: 1; }
    #gf-header.gf-site-header .gf-header-booking a { padding-inline: 12px; border-radius: 10px; font-size: 14px; gap: 6px; }
    #gf-header .gf-header-booking a::before { width: 16px; height: 16px; }
    #gf-header > nav { grid-column: 3; grid-row: 1; }
    #gf-header .wp-block-navigation__responsive-container-open,
    #gf-header .wp-block-navigation__responsive-container-close {
        width: 48px; height: 48px;
        color: var(--gf-ink); background: #faf9f6; border: 1px solid var(--gf-line); border-radius: 12px;
    }
    header.wp-block-template-part:has(#gf-header .is-menu-open) { z-index: 100; }
    html.has-modal-open #gf-mobile-cta { visibility: hidden; }
    #gf-header .wp-block-navigation__responsive-container.is-menu-open {
        padding: 0 !important;
        background: rgba(39,32,25,.38) !important;
        overflow-y: auto;
        overscroll-behavior: contain;
    }
    #gf-header .is-menu-open .wp-block-navigation__responsive-close {
        width: min(100%, 448px);
        max-width: none;
        min-height: 100%;
        margin: 0 0 0 auto;
        background: #fffefc;
        box-shadow: -12px 0 48px #382d2117;
    }
    #gf-header .is-menu-open .wp-block-navigation__responsive-dialog {
        margin: 0;
        padding: max(12px,env(safe-area-inset-top)) clamp(16px,5vw,26px) max(20px,env(safe-area-inset-bottom));
    }
    #gf-header .is-menu-open .wp-block-navigation__responsive-container-close {
        top: max(12px,env(safe-area-inset-top)); right: clamp(16px,5vw,26px);
    }
    #gf-header .is-menu-open .wp-block-navigation__responsive-container-content {
        align-items: stretch; gap: 0; padding: 0;
    }
    #gf-header .is-menu-open li:has(> .gf-menu-brand) { display: block; }
    #gf-header .is-menu-open .gf-menu-brand {
        display: flex; width: 100%; align-items: center; min-height: 54px; padding-right: 58px;
        padding-bottom: 12px; margin: 0 0 24px; border-bottom: 1px solid var(--gf-line);
    }
    #gf-header .is-menu-open .gf-menu-brand img { width: 148px; height: auto; }
    #gf-header .is-menu-open .wp-block-navigation__container {
        width: 100%; display: grid; grid-template-columns: repeat(2,minmax(0,1fr));
        align-items: stretch !important; gap: 0 10px !important; margin: 0;
    }
    #gf-header .is-menu-open .wp-block-navigation-item { grid-column: 1/-1; width: 100%; }
    #gf-header .is-menu-open .wp-block-navigation-item__content {
        position: relative; width: 100%; min-height: 57px; padding: 10px 25px 10px 2px;
        border-bottom: 1px solid var(--gf-line); border-radius: 0;
        font-size: 17px; font-weight: 650; color: var(--gf-ink); white-space: normal;
    }
    #gf-header .is-menu-open .wp-block-navigation-item__content::after {
        content: ""; position: absolute; right: 5px; top: 50%;
        width: 7px; height: 7px; border: solid #79736c; border-width: 1.6px 1.6px 0 0;
        transform: translateY(-50%) rotate(45deg);
    }
    #gf-header .is-menu-open :is(.gf-menu-growth,.gf-menu-diet) { grid-column: span 1; margin-bottom: 16px; }
    #gf-header .is-menu-open :is(.gf-menu-growth,.gf-menu-diet) > a {
        display: grid; align-content: start; gap: 3px; height: 100%; padding: 15px 12px 17px;
        border: 1px solid #efd9c7; border-radius: 15px; background: #fcf3ea; color: #78370e;
    }
    #gf-header .is-menu-open .gf-menu-diet > a { border-color: #cbe3e6; background: #eaf7f7; color: #125c66; }
    #gf-header .is-menu-open :is(.gf-menu-growth,.gf-menu-diet) > a::before { width: 25px; height: 25px; margin-bottom: 6px; }
    #gf-header .is-menu-open :is(.gf-menu-growth,.gf-menu-diet) > a::after { top: 20px; right: 16px; }
    #gf-header .is-menu-open .wp-block-navigation-item__description { display: block; font-size: 14px; font-weight: 450; line-height: 1.5; }
    #gf-header .is-menu-open .wp-block-navigation-item__content[aria-current] { box-shadow: inset 3px 0 currentColor; padding-left: 12px; color: var(--gf-accent); }
    #gf-header .is-menu-open .gf-menu-diet > a[aria-current] { color: var(--gf-teal); }
    #gf-header .is-menu-open .wp-block-navigation-item__label::after { display: none; }
    #gf-header .is-menu-open .gf-menu-contact {
        display: grid; grid-template-columns: 1fr 1.25fr; align-items: stretch; gap: 8px; margin: 26px 0 0;
    }
    #gf-header .gf-menu-contact .wp-block-button { margin: 0; min-width: 0; }
    #gf-header.gf-site-header .gf-menu-contact a { width: 100%; padding-inline: 8px; }
}
@media (max-width: 599px) {
    #gf-header .is-menu-open .wp-block-navigation__responsive-close {
        width: 100%; min-height: 0; border-radius: 0 0 22px 22px;
    }
    #gf-header .is-menu-open .wp-block-navigation__responsive-dialog { padding-bottom: max(24px,env(safe-area-inset-bottom)); }
}
@media (prefers-reduced-motion: no-preference) and (width < 960px) {
    #gf-header .is-menu-open .wp-block-navigation__responsive-close { animation: gf-menu-in .22s ease-out; }
    @keyframes gf-menu-in { from { opacity: .4; transform: translateX(18px); } }
}

/* Reflow the same two buttons to the available column, including the article sidebar. */
:is(#gf-home, #gf-page, #gf-post-layout) .wp-block-buttons.gf-contact-pair {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 7.6rem), 1fr));
    align-items: stretch;
    gap: 8px;
    width: 100%;
    max-width: 21rem;
}
main .gf-contact-pair > .wp-block-button { width: auto; min-width: 0; margin: 0; }
main .gf-contact-pair > .wp-block-button > a { width: 100%; }
#gf-home .a-reserve .gf-contact-pair { margin-block: 0; }
.a-reserve .a-wrap > .gf-contact-number {
    font-size: clamp(22px, 2.6vw, 39px);
    line-height: 1.35;
    font-weight: 750;
    color: var(--gf-ink);
    white-space: nowrap;
}
@media (max-width: 960px) {
    .a-reserve .a-wrap { flex-wrap: wrap; }
}
@media (width < 960px) {
    :is(#gf-page, #gf-post-layout, #gf-home) .wp-block-buttons.gf-contact-pair {
        display: flex; flex-flow: row wrap;
    }
    :is(#gf-page, #gf-post-layout, #gf-home) .gf-contact-pair > .gf-call { flex: 1 1 6.8rem; }
    :is(#gf-page, #gf-post-layout, #gf-home) .gf-contact-pair > .gf-book { flex: 1.2 1 8.16rem; }
    main:is(#gf-page, #gf-post-layout, #gf-home) :is(.wp-block-button,.a-action):is(.gf-call,.gf-book) > a {
        font-size: 1rem;
        padding-inline: 8px;
        gap: 8px;
    }
}
