/* Responsive fixes for mobile navigation and hero layout */

:root {
    --nav-height: 72px;
}

@media (max-width: 991.98px) {
    :root {
        --nav-height: 72px;
    }

    html.nav-open,
    body.nav-open {
        overflow: hidden;
        height: 100%;
        touch-action: none;
    }

    .navbar {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        z-index: 2200;
        min-height: var(--nav-height);
        background: rgba(13, 13, 13, 0.95);
        backdrop-filter: blur(8px);
    }

    .navbar .navbar-collapse {
        position: fixed;
        top: var(--nav-height);
        left: 0;
        right: 0;
        width: 100%;
        min-height: calc(100vh - var(--nav-height));
        max-height: calc(100vh - var(--nav-height));
        overflow-y: auto;
        overflow-x: hidden;
        overscroll-behavior: contain;
        background: rgba(13, 13, 13, 1);
        border-top: 1px solid rgba(255, 255, 255, 0.08);
        padding: 1rem 1.25rem 1.5rem;
    }

    .navbar .navbar-collapse.show {
        display: flex;
        flex-direction: column;
    }

    .navbar .navbar-nav {
        gap: 0.35rem;
        width: 100%;
    }

    .navbar .navbar-toggler {
        min-width: 44px;
        min-height: 44px;
        padding: 0.5rem;
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .navbar .navbar-toggler:focus-visible {
        outline: 2px solid var(--bs-primary);
        outline-offset: 2px;
    }

    .navbar .navbar-nav .nav-link {
        padding: 0.6rem 0;
        line-height: 1.35;
        overflow-wrap: anywhere;
        word-break: break-word;
        hyphens: auto;
    }

    .navbar .dropdown-menu {
        background: rgba(13, 13, 13, 0.98);
        border: 1px solid rgba(255, 255, 255, 0.08);
    }

    .navbar .dropdown-item {
        color: var(--bs-white);
        padding: 0.5rem 1rem;
        overflow-wrap: anywhere;
        word-break: break-word;
        hyphens: auto;
    }

    .navbar .dropdown-item:hover,
    .navbar .dropdown-item:focus {
        color: var(--bs-primary);
        background: transparent;
    }

    .navbar .dropdown-divider {
        border-color: rgba(255, 255, 255, 0.1);
    }

    .navbar .language-switcher-mobile {
        display: flex;
        align-items: center;
        gap: 0.35rem;
        margin-top: 1rem;
        padding-top: 0.75rem;
        border-top: 1px solid rgba(255, 255, 255, 0.1);
        font-size: 0.95rem;
    }

    .navbar .language-switcher-mobile a {
        color: var(--bs-white);
        text-transform: uppercase;
        text-decoration: none;
        font-weight: 600;
        letter-spacing: 0.03em;
    }

    .navbar .language-switcher-mobile a:focus-visible {
        outline: 2px solid var(--bs-primary);
        outline-offset: 2px;
    }

    .navbar .navbar-mobile-register {
        width: 100%;
        margin-top: 0.9rem;
    }

    #header-carousel .carousel-caption {
        padding-top: calc(var(--nav-height) + 1.5rem);
    }

    .page-header {
        padding-top: calc(var(--nav-height) + 2.5rem);
    }
}

@media (min-width: 992px) {
    .navbar .language-switcher-mobile,
    .navbar .navbar-mobile-register {
        display: none !important;
    }
}

@media (max-width: 575.98px) {
    #header-carousel .carousel-caption {
        padding-left: 14px;
        padding-right: 14px;
        text-align: center;
        align-items: center;
    }

    #header-carousel .carousel-caption .title,
    #header-carousel .carousel-caption .title-center,
    #header-carousel .carousel-caption .title-left,
    #header-carousel .carousel-caption .title-right {
        width: 100%;
    }

    #header-carousel .carousel-caption .display-1,
    #header-carousel .carousel-caption .display-2 {
        font-size: clamp(28px, 7vw, 56px);
        line-height: 1.1;
        letter-spacing: 0.2px;
        overflow-wrap: anywhere;
        word-break: normal;
        hyphens: auto;
        text-wrap: balance;
    }

    #header-carousel .carousel-caption .rounded-pill {
        white-space: normal;
    }

    .page-header .display-4 {
        font-size: clamp(26px, 6vw, 40px);
        line-height: 1.2;
        overflow-wrap: anywhere;
        word-break: normal;
        hyphens: auto;
        text-transform: none !important;
        letter-spacing: 0.02em;
    }

    .page-header .breadcrumb {
        font-size: 0.85rem;
        flex-wrap: wrap;
    }
}
