:root {
    --gp-nav-bg-1: #34486a;
    --gp-nav-bg-2: #2b3d5b;
    --gp-nav-bg-3: #22314b;
    --gp-nav-bg-4: #1b263b;

    --gp-accent: #f1b24d;
    --gp-accent-soft: rgba(241, 178, 77, 0.12);
    --gp-accent-soft-2: rgba(241, 178, 77, 0.18);
    --gp-accent-border: rgba(241, 178, 77, 0.28);
    --gp-accent-border-strong: rgba(241, 178, 77, 0.48);

    --gp-text-main: #f4f7fb;
    --gp-text-soft: #d4dcea;
    --gp-text-muted: #9fb0c7;

    --gp-btn-primary-top: #f2b95d;
    --gp-btn-primary-bottom: #d89627;
    --gp-btn-primary-top-hover: #f6c46f;
    --gp-btn-primary-bottom-hover: #e0a02f;

    --gp-btn-secondary-bg: rgba(255, 255, 255, 0.035);
    --gp-btn-secondary-hover: rgba(255, 255, 255, 0.07);

    --gp-shadow-soft: 0 10px 28px rgba(0, 0, 0, 0.18);
    --gp-shadow-strong: 0 16px 40px rgba(0, 0, 0, 0.24);
}

/* navbar shell */
.gp-navbar {
    background:
            radial-gradient(circle at 12% 18%, rgba(255, 255, 255, 0.08) 0%, transparent 22%),
            radial-gradient(circle at 86% 20%, rgba(241, 178, 77, 0.10) 0%, transparent 20%),
            linear-gradient(115deg, var(--gp-nav-bg-1) 0%, var(--gp-nav-bg-2) 32%, var(--gp-nav-bg-3) 68%, var(--gp-nav-bg-4) 100%);
    border-bottom: 1px solid rgba(255, 255, 255, 0.07);
    box-shadow: 0 2px 14px rgba(0, 0, 0, 0.24);
    position: relative;
    z-index: 2000;
    overflow: visible;
}

.gp-navbar::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(255,255,255,0.03) 0%, rgba(255,255,255,0) 45%);
    pointer-events: none;
}

.gp-navbar-container {
    min-height: 74px;
    position: relative;
    z-index: 1;
}

.gp-navbar .dropdown {
    position: relative;
    z-index: 1200;
}

/* brand */
.gp-navbar-brand {
    padding: 0;
    background: transparent;
    border: none;
    box-shadow: none;
    transition: transform 0.25s ease, opacity 0.25s ease;
}

.gp-navbar-brand:hover {
    transform: translateY(-1px);
    opacity: 0.96;
}

.gp-navbar-brand img {
    display: block;
}

/* toggle */
.gp-navbar .navbar-toggler {
    border: 1px solid rgba(241, 178, 77, 0.35);
    background: rgba(241, 178, 77, 0.08);
    box-shadow: none !important;
}

.gp-navbar .navbar-toggler-icon {
    filter: brightness(0) saturate(100%) invert(83%) sepia(38%) saturate(564%) hue-rotate(346deg) brightness(102%) contrast(96%);
}

.gp-navbar .navbar-toggler:hover {
    border-color: rgba(241, 178, 77, 0.6);
    background: rgba(241, 178, 77, 0.15);
}

.gp-navbar .navbar-toggler:focus,
.gp-navbar .navbar-toggler:active {
    box-shadow: none !important;
    border-color: rgba(241, 178, 77, 0.55);
    background: rgba(241, 178, 77, 0.12);
}

/* layout */
.gp-nav-guest,
.gp-nav-auth {
    width: 100%;
}

.gp-nav-center {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    align-items: center;
}

/* desktop nav links */
.gp-navbar-link {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 0 12px;
    color: var(--gp-text-soft) !important;
    font-size: 0.98rem;
    font-weight: 500;
    letter-spacing: 0.15px;
    text-decoration: none;
    border-radius: 999px;
    transition:
            color 0.24s ease,
            background 0.24s ease,
            transform 0.24s ease,
            box-shadow 0.24s ease;
}

.gp-navbar-link:hover,
.gp-navbar-link:focus {
    color: #ffffff !important;
    background: linear-gradient(180deg, rgba(255,255,255,0.09) 0%, rgba(255,255,255,0.045) 100%);
    box-shadow:
            inset 0 0 0 1px rgba(255,255,255,0.05),
            0 8px 18px rgba(0, 0, 0, 0.10);
    text-decoration: none;
    transform: translateY(-1px);
}

.gp-navbar-link.active {
    color: #ffffff !important;
    font-weight: 600;
    background: linear-gradient(180deg, rgba(241,178,77,0.16) 0%, rgba(241,178,77,0.08) 100%);
    box-shadow:
            inset 0 0 0 1px rgba(241,178,77,0.18),
            0 8px 18px rgba(0, 0, 0, 0.10);
}

.gp-navbar-link::after {
    display: none;
    content: none;
}

/* buttons */
.gp-nav-btn {
    appearance: none;
    -webkit-appearance: none;
    border: 1px solid transparent;
    outline: none;
    box-shadow: none !important;

    height: 36px;
    padding: 0 12px 1px;
    border-radius: 999px;

    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;

    font-size: 0.95rem !important;
    font-weight: 600 !important;
    line-height: 1;
    letter-spacing: 0.15px;
    text-decoration: none !important;

    transition:
            background 0.28s ease,
            border-color 0.28s ease,
            transform 0.22s ease,
            box-shadow 0.28s ease,
            color 0.22s ease;
}

.gp-nav-btn:focus,
.gp-nav-btn:active,
.gp-nav-btn:hover {
    box-shadow: none !important;
    text-decoration: none !important;
}

.gp-nav-btn i {
    font-size: 1rem;
    line-height: 1;
    display: inline-flex;
    align-items: center;
}

.gp-nav-btn-primary {
    background: linear-gradient(180deg, var(--gp-btn-primary-top) 0%, var(--gp-btn-primary-bottom) 100%) !important;
    border-color: rgba(255, 232, 191, 0.22) !important;
    color: #182132 !important;
    box-shadow: 0 8px 20px rgba(216, 150, 39, 0.22);
}

.gp-nav-btn-primary:hover {
    background: linear-gradient(180deg, var(--gp-btn-primary-top-hover) 0%, var(--gp-btn-primary-bottom-hover) 100%) !important;
    border-color: rgba(255, 235, 199, 0.42) !important;
    color: #111827 !important;
    transform: translateY(-1px);
    box-shadow: 0 12px 28px rgba(216, 150, 39, 0.28);
}

.gp-nav-btn-secondary {
    background: var(--gp-btn-secondary-bg) !important;
    border-color: var(--gp-accent-border) !important;
    color: #f5d59b !important;
    backdrop-filter: blur(2px);
    -webkit-backdrop-filter: blur(2px);
}

.gp-nav-btn-secondary:hover {
    background: var(--gp-btn-secondary-hover) !important;
    border-color: var(--gp-accent-border-strong) !important;
    color: #fff1d3 !important;
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(0, 0, 0, 0.12);
}

.gp-nav-btn-icon {
    min-width: 40px;
    padding-left: 0;
    padding-right: 0;
}

/* user meta */
.gp-user-meta {
    max-width: 320px;
    line-height: 1.22;
}

.gp-user-meta-main {
    color: #f5d59b !important;
    font-size: 0.87rem;
}

.gp-user-meta-sub {
    color: var(--gp-text-muted) !important;
    font-size: 0.82rem;
}

/* language switch */
.gp-lang-wrapper {
    margin-left: auto;
    position: relative;
    z-index: 1250;
}

.gp-lang-toggle {
    appearance: none;
    -webkit-appearance: none;
    border: 1px solid rgba(241, 178, 77, 0.26) !important;
    background: rgba(255, 255, 255, 0.04) !important;
    color: #f6ddb0 !important;
    border-radius: 999px !important;
    min-height: 34px;
    box-shadow: none !important;
    transition: all 0.24s ease;
}

.gp-lang-toggle:hover,
.gp-lang-toggle:focus,
.gp-lang-toggle:active,
.show > .gp-lang-toggle.dropdown-toggle {
    border-color: rgba(241, 178, 77, 0.44) !important;
    background: rgba(241, 178, 77, 0.10) !important;
    color: #fff3d7 !important;
    box-shadow: none !important;
}

.gp-lang-menu {
    background: #24334d !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    border-radius: 14px !important;
    overflow: hidden;
    box-shadow: 0 18px 36px rgba(0, 0, 0, 0.24) !important;
    z-index: 1300 !important;
    margin-top: 8px !important;
}

.gp-lang-menu .dropdown-item {
    color: #dbe4ef !important;
    padding-top: 9px;
    padding-bottom: 9px;
}

.gp-lang-menu .dropdown-item:hover,
.gp-lang-menu .dropdown-item:focus {
    background: rgba(241, 178, 77, 0.10) !important;
    color: #fff4dc !important;
}

.gp-lang-menu .dropdown-item.active,
.gp-lang-menu .dropdown-item:active {
    background: rgba(241, 178, 77, 0.16) !important;
    color: #fff4dc !important;
}

/* mobile links */
.gp-mobile-nav {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-top: 8px;
}

.gp-mobile-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 48px;
    padding: 12px 16px;
    text-align: center;
    color: var(--gp-text-soft) !important;
    text-decoration: none !important;
    border-bottom: 1px solid rgba(241, 178, 77, 0.10);
    transition: background 0.24s ease, color 0.24s ease;
}

.gp-mobile-link:hover,
.gp-mobile-link:focus {
    background: rgba(255, 255, 255, 0.045);
    color: #ffffff !important;
}

.gp-mobile-link.active {
    color: #ffffff !important;
    font-weight: 600;
    background: rgba(241, 178, 77, 0.08);
}

/* responsive */
@media (max-width: 991.98px) {
    .gp-navbar .navbar-collapse {
        padding-top: 14px;
    }

    .gp-nav-center {
        position: static;
        left: auto;
        transform: none;
        width: 100%;
        display: flex !important;
        flex-direction: column;
        align-items: stretch !important;
        gap: 10px !important;
        margin-top: 8px;
    }

    .gp-nav-auth,
    .gp-nav-guest {
        padding-left: 0 !important;
    }

    .gp-navbar .gp-nav-btn {
        width: 100%;
        height: 46px;
        padding: 0 16px;
        border-radius: 12px;
        justify-content: center;
    }

    .gp-user-meta {
        display: none !important;
    }

    .gp-lang-wrapper {
        width: 100%;
        margin-left: 0 !important;
        justify-content: center !important;
    }

    .gp-lang-wrapper .dropdown {
        width: 100%;
        max-width: 290px;
        position: relative;
        display: block;
        margin: 0 auto;
    }

    .gp-lang-toggle {
        width: 100%;
        min-width: 0;
        min-height: 56px;
        padding: 0 16px !important;
        border-radius: 18px !important;
        justify-content: space-between;
    }

    .gp-lang-menu {
        width: 100% !important;
        min-width: 100% !important;
        top: calc(100% + 8px) !important;
        left: 0 !important;
        right: auto !important;
        transform: none !important;
        inset: auto !important;
        border-radius: 18px !important;
        overflow: hidden;
        margin-top: 0 !important;
    }

    .gp-lang-menu .dropdown-item {
        min-height: 52px;
        display: flex;
        align-items: center;
        gap: 12px;
        padding: 0 16px !important;
    }
}

@media (max-width: 575.98px) {
    .gp-navbar-brand img {
        height: 44px;
    }

    .gp-navbar-container {
        min-height: 68px;
    }
}

@media (max-width: 991.98px) {

    /* контейнер кнопок */
    .gp-navbar .d-flex.flex-column.flex-lg-row.gap-2 {
        width: 100%;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 12px !important;
    }

    /* сами кнопки */
    .gp-navbar .gp-nav-btn {
        width: 100%;
        max-width: 320px;
        height: 52px;
        justify-content: center;
    }

}