.mobile-menu {
    display: none;
}

@media (max-width: 980px) {
    .mobile-menu {
        position: fixed;
        inset: 0;
        z-index: 60;
        display: block;
        visibility: hidden;
        transition: visibility 0s linear 260ms;
    }

    .mobile-menu.is-open {
        visibility: visible;
        transition-delay: 0s;
    }

    .mobile-menu-open {
        overflow: hidden;
    }

    .mobile-menu-overlay {
        position: absolute;
        inset: 0;
        background: rgba(6, 61, 45, 0.42);
        opacity: 0;
        transition: opacity 240ms ease;
    }

    .mobile-menu.is-open .mobile-menu-overlay {
        opacity: 1;
    }

    .mobile-menu-panel {
        position: absolute;
        top: 10px;
        right: 10px;
        left: 10px;
        overflow: hidden auto;
        max-width: 480px;
        max-height: calc(100vh - 20px);
        max-height: calc(100dvh - 20px);
        margin-inline: auto;
        padding: 14px;
        border-radius: var(--cai-radius-lg);
        background:
            linear-gradient(90deg, var(--cai-green) 0 34%, var(--cai-yellow) 34% 67%, var(--cai-red) 67%) top / 100% 4px no-repeat,
            radial-gradient(circle at 100% 100%, var(--cai-soft-yellow), transparent 150px),
            var(--cai-bg);
        box-shadow: var(--cai-shadow);
        opacity: 0;
        transform: translateY(-14px) scale(0.985);
        transform-origin: top center;
        overscroll-behavior: contain;
        transition: opacity 220ms ease, transform 260ms cubic-bezier(0.2, 0.8, 0.2, 1);
    }

    .mobile-menu.is-open .mobile-menu-panel {
        opacity: 1;
        transform: none;
    }

    .mobile-menu-header {
        display: flex;
        align-items: center;
        gap: 8px;
        padding: 4px 2px 12px;
    }

    .mobile-menu-brand {
        display: flex;
        min-width: 0;
        min-height: 44px;
        flex: 1 1 auto;
        align-items: center;
    }

    .mobile-menu-brand img {
        width: clamp(108px, 38vw, 170px);
        height: auto;
    }

    .mobile-menu .language-switcher {
        flex-shrink: 0;
    }

    .mobile-menu .language-switcher a {
        display: flex;
        min-width: 38px;
        min-height: 38px;
        align-items: center;
        justify-content: center;
        padding: 0 8px;
    }

    .mobile-menu-close {
        display: flex;
        width: 44px;
        height: 44px;
        flex-shrink: 0;
        align-items: center;
        justify-content: center;
        border: 1px solid var(--cai-border);
        border-radius: var(--cai-radius-sm);
        background: var(--cai-white);
        color: var(--cai-text);
    }

    .mobile-menu-panel svg {
        fill: none;
        stroke: currentColor;
        stroke-linecap: round;
        stroke-linejoin: round;
        stroke-width: 1.8;
    }

    .mobile-menu-close svg {
        width: 22px;
        height: 22px;
    }

    .mobile-menu-nav ul {
        margin: 0;
        padding: 6px;
        border-radius: var(--cai-radius);
        background: var(--cai-white);
        box-shadow: 0 6px 22px rgba(6, 61, 45, 0.06);
        list-style: none;
    }

    .mobile-menu-nav li + li {
        border-top: 1px solid var(--cai-border);
    }

    .mobile-menu-nav a {
        position: relative;
        display: flex;
        min-height: 54px;
        align-items: center;
        gap: 12px;
        padding: 5px 10px 5px 8px;
        border-radius: var(--cai-radius-sm);
        color: var(--cai-text);
        font-size: 16px;
        font-weight: 700;
        transition: background-color 160ms ease, color 160ms ease;
    }

    .mobile-menu-nav a:hover,
    .mobile-menu-nav a.is-active {
        background: var(--cai-soft-green);
        color: var(--cai-green-dark);
    }

    .mobile-menu-nav a.is-active::before {
        position: absolute;
        top: 6px;
        bottom: 6px;
        left: 0;
        width: 4px;
        border-radius: 999px;
        background: var(--cai-green);
        content: "";
    }

    .mobile-menu-panel :focus-visible {
        outline-color: var(--cai-green-dark);
        outline-offset: -3px;
    }

    .mobile-menu-icon {
        display: flex;
        width: 42px;
        height: 42px;
        flex-shrink: 0;
        align-items: center;
        justify-content: center;
        border-radius: var(--cai-radius-sm);
        background: var(--cai-soft-green);
        color: var(--cai-green-dark);
    }

    .mobile-menu-nav a.is-active .mobile-menu-icon,
    .mobile-menu-nav a:hover .mobile-menu-icon {
        background: var(--cai-white);
    }

    .mobile-menu-icon svg {
        width: 24px;
        height: 24px;
    }

    .mobile-menu-label {
        min-width: 0;
        flex: 1 1 auto;
    }

    .mobile-menu-chevron {
        width: 20px;
        height: 20px;
        flex-shrink: 0;
        color: var(--cai-muted);
    }

    .mobile-menu-cta {
        position: relative;
        display: flex;
        overflow: hidden;
        min-height: 60px;
        align-items: center;
        gap: 14px;
        margin-top: 14px;
        padding: 10px 22px;
        border-radius: var(--cai-radius);
        background: linear-gradient(100deg, var(--cai-green-dark), var(--cai-green));
        box-shadow: 0 10px 24px rgba(5, 90, 64, 0.26);
        color: var(--cai-white);
        font-size: 18px;
        font-weight: 800;
    }

    .mobile-menu-cta::after {
        position: absolute;
        right: -62px;
        bottom: -86px;
        width: 150px;
        height: 150px;
        border-radius: 50%;
        background: radial-gradient(circle, transparent 0 52%, var(--cai-red) 52% 61%, var(--cai-yellow) 61% 70%, transparent 70%);
        content: "";
    }

    .mobile-menu-cta span,
    .mobile-menu-cta svg {
        position: relative;
        z-index: 1;
    }

    .mobile-menu-cta svg {
        width: 22px;
        height: 22px;
        flex-shrink: 0;
        transition: transform 160ms ease;
    }

    .mobile-menu-cta:hover svg {
        transform: translateX(4px);
    }

    .mobile-menu-tagline {
        display: flex;
        align-items: center;
        gap: 12px;
        margin: 14px 4px 4px;
        color: var(--cai-green-dark);
        font-size: 13px;
        font-weight: 600;
        text-align: center;
    }

    .mobile-menu-tagline::before,
    .mobile-menu-tagline::after {
        height: 1px;
        flex: 1 1 12px;
        background: var(--cai-border);
        content: "";
    }
}

@media (max-width: 980px) and (max-height: 600px) {
    .mobile-menu-panel {
        padding-block: 10px;
    }

    .mobile-menu-header {
        padding-bottom: 8px;
    }

    .mobile-menu-nav a {
        min-height: 48px;
        padding-block: 2px;
    }

    .mobile-menu-cta {
        min-height: 52px;
        margin-top: 10px;
    }

    .mobile-menu-tagline {
        margin-top: 10px;
    }
}

@media (max-width: 400px) {
    .mobile-menu-cta::after {
        right: -100px;
    }
}
