/* Prevent mobile horizontal overflow / forced zoom-out */
html,
body {
    overflow-x: clip;
    max-width: 100%;
}

/* Desktop header: keep nav from colliding with logo */
@media (min-width: 992px) {
    .n-header--top {
        position: relative;
        z-index: 1040;
        overflow: visible;
    }

    .n-header--top .header-style {
        overflow: visible;
    }

    .n-header--top .header-style > .header-logo-col {
        flex: 0 0 auto !important;
        position: relative;
        z-index: 2;
    }

    .n-header--top .header-style > .main-menu {
        flex: 1 1 auto !important;
        min-width: 0 !important;
        overflow: hidden;
    }

    .n-header--top .d-flex.align-items-center {
        position: relative;
        z-index: 1055;
    }

    .n-header--top .dropdown-menu {
        z-index: 1060 !important;
    }

    .n-header--top .header-style .main-menu .container {
        width: auto !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    .n-header--top .header-style .main-menu .menu-active-classes {
        flex-wrap: nowrap !important;
        overflow: hidden;
    }

    .n-header--top .header-style .main-menu .menu-active-classes > .menu-item > a {
        white-space: nowrap !important;
    }
}

@media (max-width: 991px) {
    /* Closed off-canvas menus must not expand layout width (iOS) */
    .n-header--top .main-menu:not(.active-mobile-menu) {
        display: none !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }

    .n-header--top .main-menu.active-mobile-menu {
        display: block !important;
        visibility: visible !important;
        pointer-events: auto !important;
        position: fixed !important;
        left: 0 !important;
        top: 0 !important;
        width: min(320px, 86vw) !important;
        height: 100vh !important;
        max-height: 100dvh !important;
        z-index: 10050 !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch;
        background: #fff !important;
        padding: 1.25rem 1rem 2.5rem !important;
    }

    .rt-mobile-menu-overlay.active {
        z-index: 10040 !important;
    }

    /* Prevent logo/header chrome from painting over open drawer */
    .n-header--top .header-style > .header-logo-col {
        z-index: 2;
        max-width: 160px !important;
    }

    body:has(.main-menu.active-mobile-menu) .header-style > .header-logo-col,
    body:has(.main-menu.active-mobile-menu) .header-style > .d-flex.align-items-center {
        opacity: 0.15;
        pointer-events: none;
    }

    .n-header--top,
    .n-header--top .header-style,
    .n-header--top .container,
    .cw-jobs-portal,
    .cw-jobs-portal .container,
    .joblist-page,
    .joblist-page .container {
        max-width: 100% !important;
        min-width: 0;
    }

    .n-header--top .header-style {
        flex-wrap: nowrap !important;
        width: 100%;
        box-sizing: border-box;
    }

    .n-header--top .brand-logo {
        max-width: 140px !important;
    }

    .n-header--top .brand-logo img,
    .n-header--top .brand-logo .img-fluid {
        max-width: 140px !important;
        max-height: 48px !important;
        width: auto !important;
        height: auto !important;
    }

    /* 100vw includes scrollbar and can overflow on mobile */
    .job-filter-overlay {
        width: 100% !important;
        max-width: 100% !important;
        left: 0 !important;
        right: 0 !important;
    }

    /* Featured jobs slick carousel */
    .feature-job,
    .ll-feature-job,
    .testimonail_active.feature-job {
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        overflow: hidden !important;
    }

    .feature-job .slick-list {
        margin-left: 0 !important;
        margin-right: 0 !important;
        overflow: hidden !important;
    }

    .feature-job .slick-slide {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .feature-job.testimonail_active .prev-arrow,
    .feature-job.testimonail_active .next-arrow {
        display: none !important;
    }

    /* Search action row must shrink inside viewport */
    .cw-jobs-portal__actions {
        min-width: 0;
        max-width: 100%;
    }

    .cw-jobs-portal__filter-btn,
    .cw-jobs-portal__submit-btn {
        min-width: 0;
    }

    .cw-jobs-portal__submit-btn span {
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .cw-jobs-portal__search-console,
    .cw-jobs-portal__search-grid,
    .cw-jobs-portal__tags,
    .cw-jobs-portal__tag-list {
        max-width: 100%;
        min-width: 0;
    }

    /* Job listing rows — prevent Bootstrap negative gutters from overflowing */
    .cw-jobs-portal .row,
    .joblist-page .row,
    #togglclass1 .row {
        max-width: 100%;
    }

    .cw-jobs-portal .row > [class*="col-"],
    .joblist-page .row > [class*="col-"],
    #togglclass1 .row > [class*="col-"] {
        min-width: 0;
    }

    /* ---- Job listing cards (2-col + featured) ---- */
    .col-6 .jobcardStyle1 .job-card-body,
    .col-6 .jobcardStyle1 > .tw-p-6,
    .col-md-6 .jobcardStyle1 .job-card-body,
    .feature-job .jobcardStyle1 .job-card-body,
    .feature-job .jobcardStyle1 > .tw-p-6,
    .slick-slide .jobcardStyle1 .job-card-body {
        padding: 0.75rem !important;
    }

    .col-6 .jobcardStyle1 .job-card-title,
    .col-6 .jobcardStyle1 .tw-text-lg,
    .feature-job .jobcardStyle1 .job-card-title,
    .feature-job .jobcardStyle1 .tw-text-lg,
    .slick-slide .jobcardStyle1 .tw-text-lg {
        font-size: 0.88rem !important;
        line-height: 1.25 !important;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        -webkit-box-orient: vertical;
        overflow: hidden;
        word-break: break-word;
    }

    .col-6 .jobcardStyle1 .tw-w-\[56px\],
    .col-6 .jobcardStyle1 .tw-h-\[56px\],
    .feature-job .jobcardStyle1 .tw-w-\[56px\],
    .feature-job .jobcardStyle1 .tw-h-\[56px\],
    .slick-slide .jobcardStyle1 .tw-w-\[56px\],
    .slick-slide .jobcardStyle1 .tw-h-\[56px\] {
        width: 36px !important;
        height: 36px !important;
    }

    .col-6 .jobcardStyle1 .tw-w-\[56px\] img,
    .col-6 .jobcardStyle1 .tw-h-\[56px\] img,
    .feature-job .jobcardStyle1 img.tw-rounded-lg,
    .slick-slide .jobcardStyle1 img.tw-rounded-lg {
        width: 36px !important;
        height: 36px !important;
    }

    .col-6 .jobcardStyle1 .tw-card-title,
    .col-6 .jobcardStyle1 .iconbox-content .tw-text-base,
    .feature-job .jobcardStyle1 .tw-card-title,
    .slick-slide .jobcardStyle1 .tw-card-title {
        font-size: 0.78rem !important;
        line-height: 1.2 !important;
        display: -webkit-box;
        -webkit-line-clamp: 1;
        -webkit-box-orient: vertical;
        overflow: hidden;
    }

    .col-6 .jobcardStyle1 .rt-single-icon-box,
    .feature-job .jobcardStyle1 .rt-single-icon-box,
    .slick-slide .jobcardStyle1 .rt-single-icon-box {
        gap: 0.4rem !important;
        align-items: flex-start !important;
        margin-bottom: 0.25rem;
        padding-right: 3.25rem !important;
    }

    .col-6 .jobcardStyle1 .iconbox-content,
    .feature-job .jobcardStyle1 .iconbox-content,
    .slick-slide .jobcardStyle1 .iconbox-content {
        min-width: 0;
        flex: 1 1 auto;
        max-width: 100%;
    }

    .col-6 .jobcardStyle1 .tw-location,
    .feature-job .jobcardStyle1 .tw-location,
    .slick-slide .jobcardStyle1 .tw-location {
        font-size: 0.7rem !important;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        display: block;
        max-width: 100%;
    }

    .col-6 .job-card-wrap,
    .feature-job .job-card-wrap,
    .slick-slide .job-card-wrap {
        overflow: hidden;
        min-width: 0;
    }

    .col-6 .job-card-wrap > .job-card-actions,
    .col-6 .job-card-wrap > .tw-absolute,
    .feature-job .job-card-wrap > .job-card-actions,
    .feature-job .job-card-wrap > .tw-absolute,
    .slick-slide .job-card-wrap > .tw-absolute {
        bottom: 0.45rem !important;
        right: 0.4rem !important;
        gap: 0.1rem;
        z-index: 2;
    }

    .col-6 .job-card-actions button,
    .col-6 .job-card-actions .icon-button,
    .feature-job .job-card-actions button,
    .slick-slide .job-card-actions button {
        padding: 0.25rem !important;
        transform: scale(0.85);
        transform-origin: bottom right;
    }

    .col-6 .jobcardStyle1 .tw-text-\[12px\],
    .feature-job .jobcardStyle1 .tw-text-\[12px\],
    .slick-slide .jobcardStyle1 .tw-text-\[12px\] {
        font-size: 10px !important;
        padding: 2px 6px !important;
    }

    .col-6 .jobcardStyle1 .tw-text-sm,
    .feature-job .jobcardStyle1 .tw-text-sm,
    .slick-slide .jobcardStyle1 .tw-text-sm {
        font-size: 0.7rem !important;
    }

    /* Hide broken phosphor map glyphs if any remain */
    .jobcardStyle1 i.ph-map-pin:before,
    .jobcardStyle1 i.ph.ph-map-pin:before {
        content: none !important;
    }

    /* Popular tags as pills */
    .job-popular-tags {
        align-items: flex-start !important;
    }

    .job-popular-tags .tw-popular-search {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 0.4rem !important;
        list-style: none !important;
        margin: 0 !important;
        padding: 0 !important;
        max-width: 100%;
    }

    .job-popular-tag {
        margin: 0 !important;
        background: #f3f4f6;
        border-radius: 9999px;
        padding: 0.25rem 0.65rem;
        font-size: 0.72rem;
        font-weight: 600;
        line-height: 1.2;
        cursor: pointer;
    }

    .job-popular-tag a {
        color: #4b5563 !important;
        text-decoration: none !important;
        white-space: nowrap;
    }

    .job-popular-tag.is-active,
    .job-popular-tag.is-active a {
        background: #0a65cc;
        color: #fff !important;
    }

    /* Find Job filter row — location full width, Filter + Search side by side */
    .tw-filter-box .tw-flex.tw-flex-wrap {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 0.5rem !important;
        align-items: stretch !important;
    }

    .tw-filter-box .tw-flex.tw-flex-wrap > .tw-w-full,
    .tw-filter-box .tw-flex.tw-flex-wrap > .tw-relative.fromGroup {
        flex: 1 1 100% !important;
        width: 100% !important;
        min-width: 0;
    }

    .tw-filter-box .tw-flex.tw-flex-wrap > div:not(.tw-w-full):not(.tw-relative) {
        flex: 1 1 calc(50% - 0.35rem);
        min-width: 0;
    }

    .tw-filter-box .btn {
        width: 100%;
        justify-content: center;
        white-space: nowrap;
        font-size: 0.82rem;
        padding-left: 0.4rem;
        padding-right: 0.4rem;
    }

    /* Company / candidate portal cards in 2-col */
    .cw-jobs-portal__grid .cw-company-card,
    .cw-jobs-portal__grid .cw-candidate-card {
        min-width: 0;
        overflow: hidden;
    }

    .cw-jobs-portal__grid .cw-company-card__name,
    .cw-jobs-portal__grid .cw-candidate-card__name {
        font-size: 0.85rem !important;
        word-break: break-word;
    }

    .cw-jobs-portal__grid .cw-company-card__loc,
    .cw-jobs-portal__grid .cw-portal-list-card__meta {
        font-size: 0.72rem !important;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        max-width: 100%;
    }

    .cw-jobs-portal__grid .cw-candidate-card__share {
        width: 28px;
        height: 28px;
    }
}
