/**
 * Mirswa — layout fixes for Windows 125% display scaling on 1920×1080 (~1536 CSS px).
 * Prevents clipped buttons, overflowing input-groups, and rigid flex rows.
 */

/* Allow flex/grid children to shrink instead of forcing overflow */
.container,
.container-fluid,
.content-wrapper,
.main-content,
.row,
.row > [class*="col-"],
.mirswa-header-shell .container-fluid,
.mirswa-header-main-grid,
.mirswa-header-utility-grid,
.product-delivery-card,
.product-page-section .row,
.product-layout-wrap,
.product-page-details,
.product-gallery-wrap,
.pdp-page .pdp-right-col,
#checkout_form,
.card-body,
.col-md-6,
.col-lg-5,
.col-lg-7 {
    min-width: 0;
}

/* 1080p @ 125% OS zoom ≈ 1536px CSS width */
@media (max-width: 1600px) and (min-width: 992px) {
    .vw-100,
    .min-vw-100 {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    .container,
    .container-sm,
    .container-md,
    .container-lg,
    .container-xl,
    .container-xxl,
    .container-fluid,
    .content-wrapper,
    .main-content,
    header.wrapper .container,
    footer.text-inverse .container {
        max-width: 100% !important;
        box-sizing: border-box;
    }

    .bg-gradient-reverse-primary > .container.d-flex {
        flex-wrap: wrap !important;
        row-gap: 6px;
        column-gap: 8px;
        align-items: center;
    }

    .header-location-widget {
        flex: 0 1 auto !important;
        max-width: min(260px, 34vw) !important;
        min-width: 0 !important;
    }

    .header-top-search-slot {
        flex: 1 1 280px !important;
        max-width: min(520px, calc(100% - 280px)) !important;
        min-width: 0 !important;
        padding-left: 8px !important;
        padding-right: 8px !important;
    }

    .header-top-actions {
        flex: 0 0 auto !important;
        min-width: 0 !important;
        margin-left: auto !important;
    }

    .header-top-actions .fs-16 {
        font-size: 0.85rem !important;
    }

    .header-search-wake-wordmark {
        display: none !important;
    }

    .header-search-polish .input-group-text {
        padding-left: 0.55rem !important;
        padding-right: 0.55rem !important;
    }

    header.wrapper.bg-light > nav.navbar .container.flex-lg-row.flex-nowrap.align-items-center {
        flex-wrap: nowrap !important;
        align-items: center !important;
        column-gap: 10px;
        row-gap: 0;
        min-height: 56px;
    }

    header.wrapper.bg-light > nav.navbar .navbar-brand.logo-img,
    header.wrapper.bg-light > nav.navbar .navbar-brand.w-100 {
        width: auto !important;
        flex: 0 0 auto !important;
        min-width: 0 !important;
        max-width: 180px;
        display: flex !important;
        align-items: center !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    header.wrapper.bg-light > nav.navbar .navbar-brand.logo-img img.brand-logo-link {
        max-width: 100%;
        height: auto !important;
        max-height: 42px;
        display: block;
    }

    header.wrapper.bg-light > nav.navbar .navbar-collapse,
    header.wrapper.bg-light > nav.navbar #offcanvas-nav-main.navbar-collapse {
        flex: 1 1 auto !important;
        min-width: 0 !important;
    }

    header.wrapper.bg-light > nav.navbar #offcanvas-nav-main .offcanvas-body {
        margin-left: 0 !important;
    }

    header.wrapper.bg-light > nav.navbar .navbar-nav {
        flex-wrap: nowrap !important;
        row-gap: 0;
        justify-content: center;
        align-items: center !important;
    }

    header.wrapper.bg-light > nav.navbar .navbar-nav .nav-item {
        display: flex;
        align-items: center;
    }

    header.wrapper.bg-light > nav.navbar .navbar-nav .nav-link {
        display: inline-flex !important;
        align-items: center !important;
        padding-top: 0.45rem !important;
        padding-bottom: 0.45rem !important;
        line-height: 1.2 !important;
        white-space: nowrap !important;
    }

    header.wrapper.bg-light > nav.navbar .navbar-other,
    header.wrapper.bg-light > nav.navbar .navbar-other.w-50 {
        width: auto !important;
        flex: 0 0 auto !important;
        min-width: 0 !important;
        margin-left: auto !important;
        display: flex !important;
        align-items: center !important;
    }

    .navbar-other .navbar-nav.flex-row {
        flex-wrap: nowrap !important;
        row-gap: 0;
        align-items: center !important;
    }

    .header-search-inline-form .input-group {
        max-width: min(920px, 100%);
    }

    .listing-page .container,
    section.wrapper.listing-page.bg-light > .container {
        max-width: 100%;
    }
}

@media (max-width: 1400px) and (min-width: 992px) {
    .header-top-search-slot {
        flex: 1 1 240px !important;
        max-width: min(460px, calc(100% - 240px)) !important;
    }

    header.wrapper.bg-light > nav.navbar .navbar-nav .nav-link {
        padding-left: 0.5rem !important;
        padding-right: 0.5rem !important;
        font-size: 0.88rem;
    }
}

/* Stack multi-control input groups unless explicitly marked inline */
.input-group:not(.mirswa-input-group-inline):has(.btn + .btn),
.input-group:not(.mirswa-input-group-inline):has(.form-control + .btn + .btn) {
    flex-wrap: wrap;
    align-items: stretch;
    gap: 0.5rem;
}

.input-group:not(.mirswa-input-group-inline):has(.btn + .btn) > .form-control,
.input-group:not(.mirswa-input-group-inline):has(.form-control + .btn + .btn) > .form-control {
    flex: 1 1 100%;
    min-width: 0;
    width: 100%;
}

.input-group:not(.mirswa-input-group-inline):has(.btn + .btn) > .btn,
.input-group:not(.mirswa-input-group-inline):has(.form-control + .btn + .btn) > .btn,
.input-group:not(.mirswa-input-group-inline):has(.form-control + .btn + .btn) > .input-group-append,
.input-group:not(.mirswa-input-group-inline):has(.form-control + .btn + .btn) > .input-group-prepend {
    flex: 1 1 auto;
    min-width: 0;
    white-space: normal;
    line-height: 1.25;
}

/* Header search — allow wake label to collapse on medium desktop widths */
@media (max-width: 1600px) {
    .header-search-polish .header-search-wake-wordmark {
        display: none;
    }

    .header-search-polish .input-group-text {
        padding-left: 0.55rem;
        padding-right: 0.55rem;
    }

    .mirswa-header-main-grid {
        gap: 0.35rem;
    }

    .mirswa-header-app-wrap .mirswa-header-google-play img {
        max-width: 130px;
        height: auto;
    }
}

@media (max-width: 1400px) {
    .mirswa-header-auth-pill {
        font-size: 0.85rem;
    }

    .mirswa-www-location-trigger__label,
    .mirswa-location-trigger__label {
        display: none;
    }

    .btn-sm {
        padding-left: 0.55rem;
        padding-right: 0.55rem;
    }
}

/* Product detail sidebar — quantity + cart buttons */
@media (max-width: 1600px) {
    .product-page-section .d-flex.gap-2 .btn,
    .product-page-section .input-group .btn {
        white-space: normal;
        text-align: center;
    }
}

/* Checkout address / promo rows */
@media (max-width: 1600px) {
    #checkout_form .input-group:not(.mirswa-delivery-date-group) {
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    #checkout_form .input-group:not(.mirswa-delivery-date-group) > .form-control {
        flex: 1 1 100%;
        min-width: 0;
    }

    #checkout_form .input-group:not(.mirswa-delivery-date-group) > .btn,
    #checkout_form .input-group:not(.mirswa-delivery-date-group) > .input-group-append {
        flex: 1 1 auto;
    }
}

/* Utility: prevent long postcode/address strings from blowing layout */
.mirswa-www-location-trigger__value,
.mirswa-location-trigger__value,
.header-location-value,
.header-location-trigger .header-location-value,
.product-delivery-card .form-control {
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Product detail — keep gallery + sidebar from collapsing on scaled desktops */
.product-page-section .row,
.product-page-section .swiper,
.product-page-section .product-image-container,
.product-page-section .product-image-container img {
    min-width: 0;
}

.product-page-section .product-image-container img {
    max-width: 100%;
    height: auto;
    object-fit: contain;
}

/* ── Product listing toolbar (tablet + narrow desktop) ── */
@media (max-width: 991.98px) {
    .listing-page .listing-toolbar-row {
        row-gap: 10px;
    }

    .listing-page .listing-toolbar-row > .align-items-md-center {
        flex: 1 1 100%;
        flex-wrap: wrap;
        justify-content: flex-end;
        row-gap: 8px;
    }

    .listing-page .listing-toolbar-row .form-select-wrapper,
    .listing-page .listing-toolbar-row .form-select {
        min-width: 0;
        max-width: 100%;
    }

    .listing-page .listing-toolbar-row .dropdown-label {
        white-space: nowrap;
    }
}

/* ── Home icon grid: cap columns on small screens ── */
@media (max-width: 767.98px) {
    .landing-icon-grid {
        --icon-grid-cols: min(var(--icon-grid-cols, 4), 5) !important;
    }
}

@media (max-width: 575.98px) {
    .landing-icon-grid {
        --icon-grid-cols: min(var(--icon-grid-cols, 4), 4) !important;
    }
}

/* ── Product card images in grid ── */
@media (max-width: 767.98px) {
    .product-image-container {
        width: 100%;
        max-width: 280px;
        height: auto;
        min-height: 180px;
        line-height: normal;
    }
}

/* ── PDP CTA on scaled desktop: allow wrap instead of clip (not sticky bottom bar) ── */
@media (max-width: 1600px) and (min-width: 992px) {
    .product-layout-wrap,
    .product-page-details,
    .product-gallery-wrap,
    .pdp-page .pdp-right-col {
        min-width: 0;
        max-width: 100%;
    }

    .product-cta-row {
        flex-wrap: wrap !important;
        overflow: visible !important;
        max-width: 100%;
    }

    .pdp-page #pdp-cta-anchor .product-cta-row {
        flex-wrap: nowrap !important;
        overflow: hidden !important;
    }

    .product-cta-row #add_cart,
    .product-cta-row #buy_now,
    .product-cta-row a.btn.btn-yellow {
        flex: 1 1 180px !important;
        min-width: 0 !important;
    }

    .pdp-page #pdp-cta-anchor .product-cta-row #add_cart,
    .pdp-page #pdp-cta-anchor .product-cta-row #buy_now {
        flex: 1 1 140px !important;
    }
}

/* ── Small phones: header icon row may wrap ── */
@media (max-width: 575.98px) {
    header.wrapper.bg-light > nav.navbar .navbar-other .navbar-nav.flex-row {
        flex-wrap: wrap !important;
        justify-content: flex-end;
        row-gap: 2px;
    }
}

/* ── Deeplink / minimal landing pages ── */
.deeplink_wrapper {
    max-width: 100%;
    overflow-x: hidden;
    padding: 0 16px;
    box-sizing: border-box;
}

.deeplink_wrapper img {
    max-width: min(320px, 100%);
    height: auto;
}

@media (max-width: 575.98px) {
    .deeplink_wrapper .align-items-center.d-flex.flex-column {
        margin-top: 12vh !important;
    }

    .deeplink_wrapper h1 {
        font-size: clamp(1.25rem, 6vw, 1.75rem);
        text-align: center;
    }
}
