/* ==========================================================================
   Anmol Digital — Mobile Hamburger + Right Overflow Complete Fix V1

   Scope:
   - Public website only
   - Desktop layout remains unchanged
   - Fixes hamburger appearance and positioning
   - Adds comfortable mobile side gutters
   - Prevents page-level horizontal overflow
   - Keeps intentional horizontal carousels functional
   ========================================================================== */

/* --------------------------------------------------------------------------
   Global overflow containment
   -------------------------------------------------------------------------- */

html,
body {
    width: 100%;
    max-width: 100%;
    overflow-x: clip !important;
}

@supports not (overflow: clip) {
    html,
    body {
        overflow-x: hidden !important;
    }
}

.site-shell,
.site-main,
.site-header,
.site-footer {
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

.site-main,
.site-footer,
.home-section,
.page-section {
    overflow-x: clip;
}

@supports not (overflow: clip) {
    .site-main,
    .site-footer,
    .home-section,
    .page-section {
        overflow-x: hidden;
    }
}

img,
picture,
video,
iframe,
canvas,
svg {
    max-width: 100%;
}

/*
 * The liquid-flow layer is viewport-bound and must never affect document
 * width, even while its large decorative orbs are moving.
 */
.site-liquid-flow {
    right: 0 !important;
    left: 0 !important;
    width: auto !important;
    max-width: 100vw !important;
}

/* --------------------------------------------------------------------------
   Header and mobile menu button
   -------------------------------------------------------------------------- */

@media (max-width: 900px) {
    .site-header {
        overflow: visible !important;
    }

    .site-header .site-header__inner {
        width: min(
            calc(100% - 28px),
            var(--container-width, 1240px)
        ) !important;
        max-width: 100% !important;
        min-width: 0;
        margin-inline: auto !important;
        padding-inline: 0 !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 14px !important;
    }

    .site-header .site-brand {
        width: auto !important;
        min-width: 0 !important;
        max-width: calc(100% - 58px) !important;
        flex: 0 1 auto !important;
        overflow: hidden;
    }

    .site-header .site-brand__logo {
        width: auto !important;
        max-width: min(150px, 100%) !important;
        max-height: 40px !important;
        object-fit: contain;
    }

    /*
     * Dedicated professional hamburger.
     * Absolute line positioning prevents old margin/display rules from
     * making the icon appear empty or misaligned.
     */
    .site-header .mobile-menu-toggle,
    .site-header.is-scrolled .mobile-menu-toggle {
        position: relative !important;
        inset: auto !important;
        top: auto !important;
        right: auto !important;
        bottom: auto !important;
        left: auto !important;
        width: 42px !important;
        height: 42px !important;
        min-width: 42px !important;
        max-width: 42px !important;
        min-height: 42px !important;
        max-height: 42px !important;
        flex: 0 0 42px !important;
        margin: 0 !important;
        padding: 0 !important;
        display: inline-block !important;
        overflow: hidden !important;
        border: 1px solid rgba(255, 255, 255, .14) !important;
        border-radius: 12px !important;
        background: #111111 !important;
        color: #ffffff !important;
        box-shadow:
            0 1px 0 rgba(255, 255, 255, .10) inset,
            0 8px 20px rgba(0, 0, 0, .15) !important;
        transform: none !important;
        translate: none !important;
        cursor: pointer;
        -webkit-appearance: none;
        appearance: none;
    }

    .site-header .mobile-menu-toggle:focus-visible {
        outline: 3px solid rgba(17, 17, 17, .22) !important;
        outline-offset: 3px;
    }

    .site-header .mobile-menu-toggle span {
        position: absolute !important;
        left: 50% !important;
        width: 18px !important;
        height: 2px !important;
        min-width: 18px !important;
        max-width: 18px !important;
        margin: 0 !important;
        display: block !important;
        border: 0 !important;
        border-radius: 999px !important;
        background: currentColor !important;
        opacity: 1;
        transform: translateX(-50%) !important;
        transform-origin: center;
        transition:
            top 180ms ease,
            transform 180ms ease,
            opacity 180ms ease !important;
    }

    .site-header .mobile-menu-toggle span:nth-child(1) {
        top: 13px !important;
    }

    .site-header .mobile-menu-toggle span:nth-child(2) {
        top: 20px !important;
    }

    .site-header .mobile-menu-toggle span:nth-child(3) {
        top: 27px !important;
    }

    .site-header
        .mobile-menu-toggle[aria-expanded="true"]
        span:nth-child(1) {
        top: 20px !important;
        transform:
            translateX(-50%)
            rotate(45deg) !important;
    }

    .site-header
        .mobile-menu-toggle[aria-expanded="true"]
        span:nth-child(2) {
        top: 20px !important;
        opacity: 0 !important;
        transform:
            translateX(-50%)
            scaleX(.25) !important;
    }

    .site-header
        .mobile-menu-toggle[aria-expanded="true"]
        span:nth-child(3) {
        top: 20px !important;
        transform:
            translateX(-50%)
            rotate(-45deg) !important;
    }

    /* Drawer remains fully inside the visual viewport. */
    .mobile-navigation {
        right: 0 !important;
        left: auto !important;
        width: min(88vw, 360px) !important;
        max-width: calc(100vw - 12px) !important;
        height: 100dvh !important;
        overflow: hidden !important;
        border-radius: 22px 0 0 22px;
        transform:
            translate3d(
                calc(100% + 14px),
                0,
                0
            ) !important;
    }

    .mobile-navigation.is-open {
        transform: translate3d(0, 0, 0) !important;
    }

    .mobile-navigation__body {
        min-width: 0;
        overflow-x: hidden !important;
        overflow-y: auto !important;
    }

    .mobile-navigation__header,
    .mobile-navigation__footer,
    .mobile-navigation__row,
    .mobile-navigation__link {
        min-width: 0;
        max-width: 100%;
    }

    .mobile-navigation__brand {
        min-width: 0;
        max-width: calc(100% - 54px) !important;
        overflow: hidden;
    }

    .mobile-navigation__brand img {
        width: auto;
        max-width: 155px !important;
        max-height: 40px !important;
    }

    .mobile-navigation__footer a,
    .mobile-navigation__link span {
        min-width: 0;
        overflow-wrap: anywhere;
    }
}

/* --------------------------------------------------------------------------
   Comfortable mobile page gutters and width safety
   -------------------------------------------------------------------------- */

@media (max-width: 680px) {
    /*
     * Keep approximately 16px space on both sides.
     * This prevents the Android overlay scrollbar from sitting directly
     * over cards, text and footer contact panels.
     */
    .container-fluid,
    .home-page
        .home-section-final-v3
        > .container-fluid,
    .home-page
        .home-hero-final-v3
        .home-hero__container,
    .footer-compact-v5 .container-fluid,
    .contact-professional
        > .container-fluid,
    .home-page
        .home-team-horizontal-v4
        > .container-fluid {
        width: min(
            calc(100% - 32px),
            var(--container-width, 1240px)
        ) !important;
        max-width: 100% !important;
        margin-inline: auto !important;
    }

    .site-header .site-header__inner {
        width: calc(100% - 28px) !important;
    }

    /*
     * Old carousel styles used negative margins or width: 100vw.
     * Keep scrolling inside each carousel instead of widening the page.
     */
    .home-team-horizontal-v4__viewport,
    .home-testimonials-final-v3__viewport,
    .testimonial-flow,
    .testimonial-runner,
    .partner-flow,
    .home-partners-final-v3__viewport {
        width: 100% !important;
        max-width: 100% !important;
        margin-right: 0 !important;
        margin-left: 0 !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
    }

    .home-team-horizontal-v4__track,
    .home-testimonials-final-v3__track,
    .testimonial-flow__track,
    .partner-flow__track {
        max-width: none;
    }

    .home-testimonials-final-v3__card,
    .testimonial-flow__card.testimonial-card {
        width: min(
            calc(100vw - 48px),
            390px
        ) !important;
        min-width: min(
            calc(100vw - 48px),
            390px
        ) !important;
        max-width: min(
            calc(100vw - 48px),
            390px
        ) !important;
        flex-basis: min(
            calc(100vw - 48px),
            390px
        ) !important;
    }

    /*
     * Common card and panel elements must never exceed their parent.
     */
    .home-services-final-v3__grid,
    .home-services-final-v3__card,
    .services-page__grid,
    .service-detail-card,
    .home-team-horizontal-v4__card,
    .footer-compact-v5__contact,
    .footer-compact-v5__contact-grid,
    .footer-compact-v5__contact-item,
    .contact-professional__shell,
    .contact-professional__aside,
    .contact-professional__form-panel,
    .page-banner__inner,
    .page-banner__content {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .home-services-final-v3__card,
    .service-detail-card,
    .footer-compact-v5__contact-item {
        overflow: hidden;
    }

    .home-services-final-v3__content,
    .service-detail-card__content,
    .footer-compact-v5__contact-item > div,
    .contact-professional__detail > div {
        min-width: 0;
        max-width: 100%;
    }

    .home-services-final-v3__content h3,
    .service-detail-card__content h3,
    .home-services-final-v3__content p,
    .service-detail-card__description,
    .footer-compact-v5__contact-item a,
    .footer-compact-v5__contact-item p {
        max-width: 100%;
        overflow-wrap: anywhere;
        word-break: normal;
    }

    /*
     * Decorative pseudo-elements remain visual only and cannot widen cards.
     */
    .home-services-final-v3__card,
    .service-detail-card,
    .contact-professional__aside,
    .footer-compact-v5 {
        contain: paint;
    }
}

@media (max-width: 430px) {
    .site-header .site-header__inner {
        width: calc(100% - 24px) !important;
    }

    .site-header .site-brand__logo {
        max-width: 142px !important;
        max-height: 38px !important;
    }

    .site-header .mobile-menu-toggle,
    .site-header.is-scrolled .mobile-menu-toggle {
        width: 40px !important;
        height: 40px !important;
        min-width: 40px !important;
        max-width: 40px !important;
        min-height: 40px !important;
        max-height: 40px !important;
        flex-basis: 40px !important;
        border-radius: 11px !important;
    }

    .site-header .mobile-menu-toggle span:nth-child(1) {
        top: 12px !important;
    }

    .site-header .mobile-menu-toggle span:nth-child(2) {
        top: 19px !important;
    }

    .site-header .mobile-menu-toggle span:nth-child(3) {
        top: 26px !important;
    }

    .site-header
        .mobile-menu-toggle[aria-expanded="true"]
        span:nth-child(1),
    .site-header
        .mobile-menu-toggle[aria-expanded="true"]
        span:nth-child(2),
    .site-header
        .mobile-menu-toggle[aria-expanded="true"]
        span:nth-child(3) {
        top: 19px !important;
    }

    /*
     * Override the older width: 100vw rule.
     */
    .mobile-navigation {
        width: min(90vw, 350px) !important;
        max-width: calc(100vw - 10px) !important;
    }
}

@media (max-width: 390px) {
    .container-fluid,
    .home-page
        .home-section-final-v3
        > .container-fluid,
    .home-page
        .home-hero-final-v3
        .home-hero__container,
    .footer-compact-v5 .container-fluid,
    .contact-professional
        > .container-fluid,
    .home-page
        .home-team-horizontal-v4
        > .container-fluid {
        width: calc(100% - 28px) !important;
    }

    .site-header .site-header__inner {
        width: calc(100% - 22px) !important;
    }
}

@media (hover: none) {
    .site-header .mobile-menu-toggle:hover {
        transform: none !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    .site-header .mobile-menu-toggle span,
    .mobile-navigation {
        transition: none !important;
    }
}
