/*
 * Responsive and interaction fixes loaded after all page-specific styles.
 * The rules below intentionally override duplicated legacy declarations.
 */

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

/* --------------------------------------------------------------------------
   Legal footer
   -------------------------------------------------------------------------- */
.footer-legal {
    width: 100% !important;
    max-width: 100% !important;
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: clamp(14px, 2vw, 30px) !important;
    margin-top: 18px !important;
    padding: 2px 0 4px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    overscroll-behavior-inline: contain;
    scrollbar-width: none;
    white-space: nowrap !important;
    -webkit-overflow-scrolling: touch;
}

.footer-legal::-webkit-scrollbar { display: none; }

.footer-legal > * {
    flex: 0 0 auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    line-height: 1.45 !important;
    white-space: nowrap !important;
}

.footer-legal button {
    display: inline !important;
    width: auto !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
    vertical-align: baseline !important;
}

@media (max-width: 760px) {
    .footer-legal {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        align-items: start !important;
        justify-content: stretch !important;
        gap: 10px 18px !important;
        overflow: visible !important;
        white-space: normal !important;
    }

    .footer-legal > * {
        white-space: normal !important;
        text-align: left !important;
    }
}

@media (max-width: 440px) {
    .footer-legal {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 9px !important;
    }
}

/* --------------------------------------------------------------------------
   Home catalogue heading and category navigation
   -------------------------------------------------------------------------- */
.home-page .catalog {
    position: relative;
    overflow: clip !important;
}

/* Original composition from the first archive: one centred line. */
.home-page .catalog-topline {
    width: min(520px, calc(100% - 48px)) !important;
    min-height: 0 !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 16px !important;
    margin: 0 auto 22px !important;
    padding: 0 !important;
    color: rgba(187, 197, 209, .56) !important;
    text-align: center !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
    letter-spacing: .28em !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
}

.home-page .catalog-topline > span {
    flex: 0 0 auto !important;
    display: inline-block !important;
    width: auto !important;
    min-width: 0 !important;
    color: inherit !important;
    font: inherit !important;
    letter-spacing: inherit !important;
    line-height: inherit !important;
    white-space: nowrap !important;
}

.home-page .catalog-topline > span:first-child {
    color: rgba(246, 242, 236, .94) !important;
}

.home-page .catalog-topline > span + span::before {
    content: none !important;
    display: none !important;
}

.home-page .catalog-topline i {
    flex: 0 1 150px !important;
    display: block !important;
    width: min(150px, 18vw) !important;
    min-width: 42px !important;
    height: 1px !important;
    background: linear-gradient(90deg, transparent, rgba(238, 233, 225, .24), transparent) !important;
}

/* Roughly half the width/height of the oversized version, with evenly centred labels. */
.home-page .category-tabs {
    position: relative !important;
    z-index: 8 !important;
    width: min(980px, calc(100% - 32px)) !important;
    max-width: 980px !important;
    min-width: 0 !important;
    min-height: 58px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-evenly !important;
    flex-wrap: nowrap !important;
    gap: clamp(18px, 2.2vw, 38px) !important;
    margin: 0 auto clamp(28px, 3vw, 40px) !important;
    padding: 8px clamp(18px, 2vw, 30px) !important;
    border: 1px solid rgba(255, 255, 255, .085) !important;
    border-radius: 999px !important;
    background: rgba(255, 255, 255, .022) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.028), 0 14px 44px rgba(0,0,0,.22) !important;
    overflow: hidden !important;
}

.home-page .category-tab {
    position: relative !important;
    flex: 0 0 auto !important;
    min-width: max-content !important;
    min-height: 34px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 0 !important;
    padding: 0 4px 7px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: rgba(203, 211, 221, .54) !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    line-height: 1 !important;
    letter-spacing: .235em !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
    transform: none !important;
    transition: color .2s ease !important;
}

.home-page .category-tab::after {
    content: "" !important;
    position: absolute !important;
    left: 50% !important;
    bottom: 0 !important;
    display: block !important;
    width: 24px !important;
    height: 1px !important;
    background: linear-gradient(90deg, transparent, rgba(238, 233, 225, .72), transparent) !important;
    opacity: 0 !important;
    transform: translateX(-50%) scaleX(.35) !important;
    transition: opacity .2s ease, transform .2s ease !important;
}

.home-page .category-tab:hover,
.home-page .category-tab:focus-visible,
.home-page .category-tab.active,
.home-page .category-tab.active:hover,
.home-page .category-tab.active:focus-visible {
    color: rgba(245, 241, 235, .94) !important;
    border-color: transparent !important;
    background: transparent !important;
    box-shadow: none !important;
    outline: none !important;
}

.home-page .category-tab:hover::after,
.home-page .category-tab:focus-visible::after,
.home-page .category-tab.active::after {
    opacity: 1 !important;
    transform: translateX(-50%) scaleX(1) !important;
}

.home-page .product-price { justify-content: center; }
.home-page .product-price-label { display: none !important; }

@media (max-width: 767px) {
    .home-page .catalog { padding-top: 30px !important; }

    .home-page .catalog-topline {
        width: 100% !important;
        gap: clamp(7px, 2.5vw, 10px) !important;
        margin-bottom: 18px !important;
        padding-inline: 4px !important;
        font-size: clamp(9px, 3vw, 12px) !important;
        letter-spacing: clamp(.14em, .55vw, .22em) !important;
    }

    .home-page .catalog-topline i {
        flex-basis: clamp(34px, 14vw, 76px) !important;
        width: clamp(34px, 14vw, 76px) !important;
        min-width: 34px !important;
    }

    .home-page .category-tabs {
        width: calc(100% - 24px) !important;
        max-width: none !important;
        min-height: 54px !important;
        justify-content: flex-start !important;
        gap: 24px !important;
        margin-bottom: 24px !important;
        padding: 8px 18px !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        scroll-padding-inline: 18px;
        scroll-snap-type: x proximity;
        overscroll-behavior-inline: contain;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    .home-page .category-tabs::-webkit-scrollbar { display: none; }

    .home-page .category-tab {
        min-height: 34px !important;
        padding-inline: 2px !important;
        font-size: 11px !important;
        letter-spacing: .17em !important;
        scroll-snap-align: start;
    }
}

@media (max-width: 360px) {
    .home-page .catalog-topline {
        font-size: 9px !important;
        letter-spacing: .14em !important;
    }

    .home-page .category-tabs {
        gap: 21px !important;
        padding-inline: 15px !important;
    }

    .home-page .category-tab {
        font-size: 10.5px !important;
        letter-spacing: .145em !important;
    }
}

/* --------------------------------------------------------------------------
   CDEK picker: mobile-first city map + lightweight point list
   -------------------------------------------------------------------------- */
.cdek-picker::backdrop {
    background: rgba(2, 4, 7, .78) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

.cdek-picker__map .leaflet-control-attribution,
.cdek-picker__map .leaflet-control-attribution * {
    display: none !important;
    visibility: hidden !important;
}

.cdek-picker__map,
.cdek-picker__map .leaflet-map-pane,
.cdek-picker__map .leaflet-tile-pane,
.cdek-picker__map .leaflet-overlay-pane {
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
}

.cdek-picker__map .leaflet-tile { image-rendering: auto; }

.cdek-picker__mobile-search-head,
.cdek-picker__search-toggle,
.cdek-picker__search-backdrop,
.cdek-picker__point-label { display: none; }

.cdek-picker__search-submit {
    flex: 0 0 auto !important;
    min-width: 70px !important;
    height: 40px !important;
    margin: 0 -8px 0 2px !important;
    padding: 0 13px !important;
    border: 0 !important;
    border-radius: 11px !important;
    background: linear-gradient(180deg, #20c866, #16a950) !important;
    color: #fff !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.16), 0 8px 18px rgba(12,102,48,.18) !important;
    font: 750 12px/1 Arial, Helvetica, sans-serif !important;
    cursor: pointer;
}

.cdek-picker__search-submit:hover,
.cdek-picker__search-submit:focus-visible { filter: brightness(1.06); outline: none !important; }
.cdek-picker__search-submit:active { transform: scale(.98) !important; }

.cdek-picker__city-search input,
.cdek-picker__point-search input { min-width: 0 !important; }

.cdek-picker__point-list-more {
    width: calc(100% - 24px) !important;
    min-height: 44px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    margin: 10px 12px 18px !important;
    padding: 0 16px !important;
    border: 1px solid rgba(255,255,255,.11) !important;
    border-radius: 12px !important;
    background: rgba(255,255,255,.045) !important;
    color: rgba(245,242,236,.82) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    cursor: pointer;
}

.cdek-picker__point-list-more:hover,
.cdek-picker__point-list-more:focus-visible {
    border-color: rgba(255,255,255,.22) !important;
    background: rgba(255,255,255,.075) !important;
    color: #fff !important;
    outline: none !important;
}

@media (max-width: 1024px) {
    .cdek-picker[open] { animation: none !important; }

    .cdek-picker[data-mobile-view="map"] .cdek-picker__workspace {
        position: relative !important;
        display: block !important;
        min-height: 0 !important;
        overflow: hidden !important;
    }

    .cdek-picker[data-mobile-view="map"] .cdek-picker__map-area {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        min-height: 0 !important;
    }

    .cdek-picker[data-mobile-view="map"] .cdek-picker__map {
        width: 100% !important;
        height: 100% !important;
        min-height: 0 !important;
        touch-action: none;
        contain: layout paint;
    }

    /* The map drawer contains city selection only. */
    .cdek-picker[data-mobile-view="map"] .cdek-picker__sidebar {
        position: absolute !important;
        z-index: 1300 !important;
        top: 10px !important;
        bottom: auto !important;
        left: max(10px, env(safe-area-inset-left)) !important;
        width: min(390px, calc(100% - 20px - env(safe-area-inset-left) - env(safe-area-inset-right))) !important;
        height: auto !important;
        max-height: calc(100% - 20px) !important;
        display: block !important;
        border: 1px solid rgba(255,255,255,.13) !important;
        border-radius: 18px !important;
        background: #0d1117 !important;
        box-shadow: 0 20px 64px rgba(0,0,0,.50) !important;
        contain: layout paint;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
        transform: translate3d(calc(-100% - 24px), 0, 0) !important;
        transition: transform .18s ease, opacity .14s ease, visibility 0s linear .18s !important;
    }

    .cdek-picker[data-mobile-view="map"].is-search-open .cdek-picker__sidebar {
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        transform: translate3d(0, 0, 0) !important;
        transition-delay: 0s !important;
    }

    .cdek-picker[data-mobile-view="map"] .cdek-picker__points-head,
    .cdek-picker[data-mobile-view="map"] .cdek-picker__point-tools,
    .cdek-picker[data-mobile-view="map"] .cdek-picker__point-list {
        display: none !important;
    }

    .cdek-picker__mobile-search-head {
        min-height: 52px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 12px !important;
        padding: 7px 9px 7px 15px !important;
        border-bottom: 1px solid rgba(255,255,255,.08) !important;
    }

    .cdek-picker__mobile-search-head strong {
        color: rgba(248,245,240,.94) !important;
        font-size: 14px !important;
        font-weight: 700 !important;
    }

    .cdek-picker__mobile-search-head button {
        width: 38px !important;
        height: 38px !important;
        display: inline-grid !important;
        place-items: center !important;
        padding: 0 !important;
        border: 1px solid rgba(255,255,255,.08) !important;
        border-radius: 50% !important;
        background: rgba(255,255,255,.045) !important;
        color: rgba(244,241,236,.72) !important;
        cursor: pointer;
    }

    .cdek-picker__mobile-search-head svg {
        width: 18px !important;
        height: 18px !important;
        fill: none !important;
        stroke: currentColor !important;
        stroke-width: 1.8 !important;
        stroke-linecap: round !important;
    }

    .cdek-picker__search-toggle {
        position: absolute !important;
        z-index: 1100 !important;
        top: 12px !important;
        left: max(12px, env(safe-area-inset-left)) !important;
        min-height: 46px !important;
        max-width: calc(100% - 88px) !important;
        display: inline-flex !important;
        align-items: center !important;
        gap: 9px !important;
        padding: 0 16px !important;
        border: 1px solid rgba(19, 36, 27, .14) !important;
        border-radius: 999px !important;
        background: rgba(255,255,255,.97) !important;
        color: #111914 !important;
        box-shadow: 0 9px 24px rgba(15,25,20,.18) !important;
        font: 750 13px/1.2 Arial, Helvetica, sans-serif !important;
        cursor: pointer;
    }

    .cdek-picker__search-toggle svg {
        flex: 0 0 auto !important;
        width: 18px !important;
        height: 18px !important;
        fill: none !important;
        stroke: #15964c !important;
        stroke-width: 1.9 !important;
        stroke-linecap: round !important;
    }

    .cdek-picker.is-search-open .cdek-picker__search-toggle {
        opacity: 0 !important;
        pointer-events: none !important;
    }

    .cdek-picker__search-backdrop,
    .cdek-picker.is-search-open .cdek-picker__search-backdrop {
        display: none !important;
        opacity: 0 !important;
        visibility: hidden !important;
        pointer-events: none !important;
    }

    .cdek-picker__search-block { padding: 13px 12px 12px !important; }
    .cdek-picker__city-search { min-height: 50px !important; border-radius: 14px !important; }
    .cdek-picker__city-search input { height: 48px !important; font-size: 16px !important; }
    .cdek-picker__city-results {
        left: 12px !important;
        right: 12px !important;
        top: calc(100% - 3px) !important;
        max-height: min(280px, 38dvh) !important;
    }
    .cdek-picker__city-quick {
        max-width: 100% !important;
        overflow-x: auto !important;
        scrollbar-width: none !important;
    }
    .cdek-picker__city-quick::-webkit-scrollbar { display: none !important; }

    /* List mode has no city field: only the chosen city's points and one address field. */
    .cdek-picker[data-mobile-view="list"] .cdek-picker__map-area,
    .cdek-picker[data-mobile-view="list"] .cdek-picker__mobile-search-head,
    .cdek-picker[data-mobile-view="list"] .cdek-picker__search-toggle,
    .cdek-picker[data-mobile-view="list"] .cdek-picker__search-backdrop,
    .cdek-picker[data-mobile-view="list"] .cdek-picker__search-block {
        display: none !important;
    }

    .cdek-picker[data-mobile-view="list"] .cdek-picker__sidebar {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        max-height: none !important;
        display: grid !important;
        grid-template-rows: auto auto minmax(0, 1fr) !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: var(--cdek-panel) !important;
        box-shadow: none !important;
        overflow: hidden !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        transform: none !important;
    }

    .cdek-picker[data-mobile-view="list"] .cdek-picker__points-head {
        display: flex !important;
        padding: 10px max(13px, env(safe-area-inset-right)) 9px max(13px, env(safe-area-inset-left)) !important;
    }

    .cdek-picker[data-mobile-view="list"] .cdek-picker__locate {
        display: none !important;
    }

    .cdek-picker[data-mobile-view="list"] .cdek-picker__point-tools {
        display: block !important;
        padding: 10px max(12px, env(safe-area-inset-right)) 11px max(12px, env(safe-area-inset-left)) !important;
        border-bottom: 1px solid rgba(255,255,255,.07) !important;
    }

    .cdek-picker[data-mobile-view="list"] .cdek-picker__point-label {
        display: block !important;
        margin-bottom: 7px !important;
    }

    .cdek-picker[data-mobile-view="list"] .cdek-picker__point-search {
        min-height: 50px !important;
        display: flex !important;
        margin: 0 !important;
        border-radius: 14px !important;
    }

    .cdek-picker[data-mobile-view="list"] .cdek-picker__point-search input {
        height: 48px !important;
        font-size: 16px !important;
    }

    .cdek-picker[data-mobile-view="list"] .cdek-picker__point-sort { display: none !important; }

    .cdek-picker[data-mobile-view="list"] .cdek-picker__point-hint {
        margin: 8px 2px 0 !important;
        font-size: 11px !important;
        line-height: 1.45 !important;
    }

    .cdek-picker[data-mobile-view="list"] .cdek-picker__point-list {
        display: block !important;
        min-height: 0 !important;
        padding-bottom: max(14px, env(safe-area-inset-bottom)) !important;
        overflow-y: auto !important;
        overscroll-behavior: contain;
        -webkit-overflow-scrolling: touch;
    }
}

@media (max-width: 640px) {
    .cdek-picker[data-mobile-view="map"] .cdek-picker__sidebar {
        top: auto !important;
        right: max(8px, env(safe-area-inset-right)) !important;
        bottom: max(8px, env(safe-area-inset-bottom)) !important;
        left: max(8px, env(safe-area-inset-left)) !important;
        width: auto !important;
        max-height: min(360px, calc(100% - 16px)) !important;
        border-radius: 18px !important;
        transform: translate3d(0, calc(100% + 24px), 0) !important;
    }

    .cdek-picker[data-mobile-view="map"].is-search-open .cdek-picker__sidebar {
        transform: translate3d(0, 0, 0) !important;
    }

    .cdek-picker__search-toggle {
        top: 10px !important;
        left: max(10px, env(safe-area-inset-left)) !important;
        min-height: 44px !important;
        max-width: calc(100% - 76px) !important;
        padding-inline: 14px !important;
        font-size: 12px !important;
    }

    .cdek-picker__search-submit {
        min-width: 64px !important;
        padding-inline: 10px !important;
    }

    .cdek-picker[data-mobile-view="map"] .cdek-picker__city-quick { display: none !important; }
}


@media (min-width: 351px) and (max-width: 430px) {
    .cdek-picker__heading .eyebrow {
        max-width: none !important;
        overflow: visible !important;
        text-overflow: clip !important;
        font-size: 10px !important;
        letter-spacing: .11em !important;
        white-space: nowrap !important;
    }
}

@media (max-width: 380px) {
    .cdek-picker__search-toggle span {
        max-width: 180px !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }
}

@media (max-height: 560px) and (max-width: 1024px) {
    .cdek-picker[data-mobile-view="map"] .cdek-picker__sidebar {
        top: 6px !important;
        bottom: 6px !important;
        max-height: calc(100% - 12px) !important;
    }
    .cdek-picker__mobile-search-head { min-height: 46px !important; }
    .cdek-picker__search-block { padding-top: 8px !important; padding-bottom: 7px !important; }
    .cdek-picker__city-quick { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
    .cdek-picker__sidebar,
    .cdek-picker__search-toggle,
    .home-page .category-tab { transition: none !important; }
}

/* --------------------------------------------------------------------------
   Round 6: detached compact catalogue navigation
   -------------------------------------------------------------------------- */
.home-page .catalog-intro {
    position: relative;
    z-index: 2;
    width: 100%;
    max-width: 1360px;
    min-height: clamp(112px, 12vw, 166px);
    margin: 0 auto;
    padding: clamp(38px, 4.8vw, 66px) 24px 28px;
    overflow: hidden;
    isolation: isolate;
}

.home-page .catalog-intro::before {
    content: "SILENT VIOLENCE";
    position: absolute;
    left: 50%;
    top: 10px;
    z-index: -1;
    transform: translateX(-50%);
    color: rgba(238, 233, 225, .018);
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(56px, 10vw, 154px);
    line-height: 1;
    letter-spacing: -.055em;
    white-space: nowrap;
    pointer-events: none;
}

.home-page .catalog-intro::after {
    content: "";
    position: absolute;
    left: 24px;
    right: 24px;
    bottom: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(238, 233, 225, .12), transparent);
    pointer-events: none;
}

.home-page .catalog-intro .catalog-topline {
    margin: 0 auto !important;
}

.home-page .catalog-products {
    padding-top: clamp(24px, 3vw, 38px) !important;
}

.home-page .catalog-products::before,
.home-page .catalog-products::after {
    content: none !important;
    display: none !important;
}

.home-page .category-tabs {
    width: min(680px, calc(100% - 32px)) !important;
    max-width: 680px !important;
    min-height: 48px !important;
    gap: clamp(16px, 2vw, 26px) !important;
    margin: 0 auto clamp(24px, 2.6vw, 34px) !important;
    padding: 5px clamp(14px, 1.7vw, 22px) !important;
}

.home-page .category-tab {
    min-height: 30px !important;
    padding: 0 2px 6px !important;
    font-size: 11.5px !important;
    letter-spacing: .205em !important;
}

.cdek-pickup-selector__copy [data-cdek-selected-address]:empty {
    display: none !important;
}

@media (max-width: 767px) {
    .home-page .catalog-intro {
        min-height: 102px;
        padding: 34px 16px 24px;
    }

    .home-page .catalog-intro::after {
        left: 16px;
        right: 16px;
    }

    .home-page .catalog-products {
        padding-top: 22px !important;
    }

    .home-page .category-tabs {
        width: calc(100% - 24px) !important;
        min-height: 48px !important;
        gap: 22px !important;
        margin-bottom: 22px !important;
        padding: 6px 16px !important;
    }

    .home-page .category-tab {
        min-height: 30px !important;
        font-size: 10.75px !important;
        letter-spacing: .155em !important;
    }
}

@media (max-width: 360px) {
    .home-page .category-tabs {
        gap: 19px !important;
        padding-inline: 14px !important;
    }

    .home-page .category-tab {
        font-size: 10px !important;
        letter-spacing: .13em !important;
    }
}
