/* Shared public layouts, including tablets in portrait and landscape. */
img,
video,
canvas,
iframe {
    max-width: 100%;
}

:where(.container, .footer-container, .ref-container, .cards-grid, .expertise-grid, .footer-top, .footer-lower, .form-row) > * {
    min-width: 0;
}

:where(input, select, textarea) {
    min-width: 0;
    max-width: 100%;
}

.navbar-section.active .navbar-dropdown {
    opacity: 1;
    visibility: visible;
    transform: none;
    pointer-events: auto;
}

.navbar a:focus-visible,
.navbar button:focus-visible {
    outline: 2px solid #060679;
    outline-offset: 3px;
}

.contact-layout,
.recruitment-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr);
    gap: var(--spacing-2xl);
    align-items: start;
}

.recruitment-layout {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.recruitment-layout--centered {
    align-items: center;
}

.contact-layout > *,
.recruitment-layout > * {
    min-width: 0;
}

.team-carousel-wrapper,
.about-testimonials-wrap {
    width: 100%;
    margin-inline: 0;
}

@media (max-width: 1199px) {
    .navbar {
        padding: 0;
    }

    .navbar-container {
        width: 100%;
        min-height: 68px;
        padding-inline: 1rem;
        gap: 0.75rem;
    }

    .navbar-logo {
        height: 68px;
        min-width: 0;
        flex: 1 1 auto;
    }

    .navbar-logo-image {
        width: auto;
        height: 60px;
        max-width: min(58vw, 210px);
    }

    .hamburger {
        display: flex;
        flex: 0 0 auto;
        min-width: 44px;
        min-height: 44px;
        padding: 10px;
    }

    .hamburger.active .hamburger-line:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
    }

    .hamburger.active .hamburger-line:nth-child(2) {
        opacity: 0;
    }

    .hamburger.active .hamburger-line:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
    }

    .navbar-menu {
        position: absolute;
        top: 100%;
        inset-inline: 0;
        width: 100%;
        max-height: calc(100vh - 68px);
        max-height: calc(100dvh - 68px);
        padding: 0.75rem 1rem 1.25rem;
        flex-direction: column;
        flex-wrap: nowrap;
        align-items: stretch;
        justify-content: flex-start;
        gap: 0.35rem;
        overflow-y: auto;
        overscroll-behavior: contain;
        background: var(--site-background);
        border-top: none;
        box-shadow: none;
        visibility: hidden;
        opacity: 0;
        pointer-events: none;
        transform: translateY(-8px);
        transition: opacity 180ms ease, transform 180ms ease, visibility 180ms;
    }

    .navbar-menu.active {
        visibility: visible;
        opacity: 1;
        pointer-events: auto;
        transform: none;
    }

    .navbar-section,
    .navbar-link,
    .navbar-dropdown-toggle,
    .navbar-search {
        width: 100%;
        min-width: 0;
        margin: 0;
    }

    .navbar-section {
        padding: 0;
    }

    body.search-expanded .navbar-search {
        position: relative;
        inset: auto;
        width: 100%;
        transform: none;
    }

    .navbar-link,
    .navbar-dropdown-toggle {
        min-height: 48px;
        padding: 0.75rem 0.9rem;
        font-size: 1rem;
    }

    .navbar-section .navbar-dropdown,
    .navbar-section:hover .navbar-dropdown {
        position: static;
        width: 100%;
        min-width: 0;
        max-width: 100%;
        max-height: 0;
        padding: 0;
        margin: 0;
        border: 0;
        box-shadow: none;
        background: transparent;
        visibility: hidden;
        opacity: 0;
        transform: none;
        pointer-events: none;
    }

    .navbar-section.active .navbar-dropdown {
        max-height: 500px;
        visibility: visible;
        opacity: 1;
        pointer-events: auto;
    }

    .navbar-dropdown a,
    .navbar-dropdown a:hover {
        min-height: 44px;
        padding: 0.75rem 1.25rem;
        white-space: normal;
    }

    .navbar-contact-btn {
        margin-block: 0.5rem;
        justify-content: center;
    }

    .navbar-search {
        position: relative;
        flex: none;
        max-width: none;
        padding: 0;
    }

    .search-form {
        width: 100%;
        min-height: 48px;
    }

    .search-form input[type="search"] {
        font-size: 16px;
    }

    .search-suggestions {
        position: static;
        width: 100%;
        margin-top: 0.5rem;
    }

    body.search-expanded .search-backdrop {
        display: none;
    }
}

@media (max-width: 1024px) {
    .contact-layout,
    .recruitment-layout,
    .blog-single-layout {
        grid-template-columns: minmax(0, 1fr);
        gap: 2rem;
    }

    .blog-single-sidebar {
        position: static;
        min-width: 0;
    }

    .footer-newsletter input {
        min-width: 0;
    }
}

@media (max-width: 600px) {
    .form-input,
    .form-select,
    .form-textarea,
    .footer-newsletter input {
        font-size: 16px;
    }

    .search-form-inline {
        flex-wrap: wrap;
    }

    .search-form-inline input[type="search"],
    .search-form-inline .btn {
        width: 100%;
    }
}
