/* =========================================================
   NAVBAR
========================================================= */

.topbar {
    background: var(--color-primary-soft);
    border-bottom: 1px solid var(--color-border-soft);
    font-size: 0.85rem;
    color: var(--color-text);
}

.topbar__inner {
    max-width: var(--container-width);
    margin-inline: auto;
    padding: 10px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
}

.topbar__left {
    display: flex;
    align-items: center;
    gap: 28px;
    flex-wrap: wrap;
}

.topbar__item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--color-text);
    font-weight: 500;
}

.topbar__icon {
    width: 15px;
    height: 15px;
    opacity: 0.85;
}


/* =========================================================
   MAIN NAVBAR
========================================================= */

.navbar {
    position: sticky;
    top: 0;
    z-index: 100;
    background: var(--color-white);
    border-bottom: 1px solid var(--color-border-soft);
    transition: box-shadow var(--transition);
}

.navbar.is-scrolled {
    box-shadow: var(--shadow-sm);
}

.navbar__inner {
    max-width: var(--container-width);
    height: 82px;
    margin-inline: auto;
    padding: 8px 24px;

    display: flex;
    align-items: center;
    gap: 24px;
}


/* =========================================================
   LOGO
========================================================= */

.navbar__brand {
    display: flex;
    align-items: center;
    margin-right: auto;

    width: 180px;
    height: 70px;

    overflow: hidden;
}

.navbar__logo {
    width: 145px;
    height: 68px;

    object-fit: contain;
    object-position: left center;

    display: block;
}


/* Hide old text because the logo already contains
   NSR + Orthopaedic & Wellness Clinic */

.navbar__brand-text {
    display: none;
}

.navbar__brand-name {
    display: none;
}

.navbar__brand-sub {
    display: none;
}


/* =========================================================
   MENU
========================================================= */

.navbar__menu {
    display: flex;
    align-items: center;
    gap: 30px;
}

.navbar__link {
    display: inline-flex;
    align-items: center;
    gap: 4px;

    font-weight: 500;
    font-size: 0.95rem;

    color: var(--color-text);

    padding-block: 6px;

    position: relative;

    transition: color var(--transition);
}

.navbar__link::after {
    content: "";

    position: absolute;
    left: 0;
    bottom: -2px;

    width: 0;
    height: 2px;

    background: var(--color-primary);

    transition: width var(--transition);
}

.navbar__link:hover,
.navbar__link.is-active {
    color: var(--color-primary);
}

.navbar__link:hover::after,
.navbar__link.is-active::after {
    width: 100%;
}


/* =========================================================
   DROPDOWN
========================================================= */

.navbar__chevron {
    width: 10px;
    height: 10px;
    margin-top: 2px;
}

.has-dropdown {
    position: relative;
}

.navbar__dropdown {
    position: absolute;

    top: calc(100% + 14px);
    left: 0;

    min-width: 220px;

    background: var(--color-white);

    border-radius: var(--radius-sm);

    box-shadow: var(--shadow-lg);

    padding: 10px;

    opacity: 0;
    visibility: hidden;

    transform: translateY(8px);

    transition:
        opacity var(--transition),
        transform var(--transition),
        visibility var(--transition);
}

.has-dropdown:hover .navbar__dropdown,
.has-dropdown.is-open .navbar__dropdown {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.navbar__dropdown li a {
    display: block;

    padding: 10px 12px;

    border-radius: var(--radius-sm);

    font-size: 0.9rem;

    color: var(--color-text);
}

.navbar__dropdown li a:hover {
    background: var(--color-primary-light);
    color: var(--color-primary);
}


/* =========================================================
   BOOK APPOINTMENT BUTTON
========================================================= */

.navbar__cta {
    flex-shrink: 0;
}


/* =========================================================
   MOBILE TOGGLE
========================================================= */

.navbar__toggle {
    display: none;

    flex-direction: column;
    gap: 5px;

    padding: 6px;
}

.navbar__toggle span {
    width: 24px;
    height: 2px;

    background: var(--color-primary-dark);

    border-radius: var(--radius-pill);

    transition:
        transform var(--transition),
        opacity var(--transition);
}

.navbar__toggle.is-open span:nth-child(1) {
    transform: translateY(7px) rotate(45deg);
}

.navbar__toggle.is-open span:nth-child(2) {
    opacity: 0;
}

.navbar__toggle.is-open span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg);
}


/* =========================================================
   RESPONSIVE
========================================================= */

@media (max-width: 1100px) {

    .navbar__menu {
        gap: 20px;
    }

    .navbar__logo {
        width: 130px;
        height: 62px;
    }

    .navbar__brand {
        width: 155px;
    }

    .navbar__cta {
        padding-inline: 18px;
    }
}


@media (max-width: 900px) {

    .navbar__inner {
        height: 70px;
    }

    .navbar__brand {
        width: 150px;
        height: 60px;
    }

    .navbar__logo {
        width: 125px;
        height: 58px;
    }

    .navbar__toggle {
        display: flex;
        margin-left: auto;
    }

    .navbar__nav {
        display: none;
    }

    .navbar__nav.is-open {
        display: block;
        position: absolute;

        top: 100%;
        left: 0;
        right: 0;

        background: var(--color-white);

        border-bottom: 1px solid var(--color-border-soft);

        padding: 20px 24px;
    }

    .navbar__menu {
        flex-direction: column;
        align-items: flex-start;
        gap: 15px;
    }

    .navbar__cta {
        display: none;
    }
}


@media (max-width: 600px) {

    .navbar__inner {
        height: 64px;
        padding: 6px 16px;
    }

    .navbar__brand {
        width: 125px;
        height: 54px;
    }

    .navbar__logo {
        width: 110px;
        height: 52px;
    }
}