/* СантехМир — единая адаптивная система для всех страниц, 2026-07-11 */
:root {
  --responsive-gutter: clamp(10px, 2.2vw, 28px);
  --responsive-content: 1440px;
  --responsive-touch: 44px;
}

html {
  min-width: 320px;
  overflow-x: hidden;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-padding-top: 18px;
}
body {
  min-width: 320px;
  max-width: 100%;
  overflow-x: hidden;
}
*, *::before, *::after { box-sizing: border-box; }
img, picture, video, canvas, svg { max-width: 100%; }
img, video { height: auto; }
iframe, object, embed { max-width: 100%; }
input, select, textarea, button { max-width: 100%; }
pre, code { overflow-wrap: anywhere; }
/* v378: текст интерфейса переносится по словам; arbitrary-break оставлен только для code/pre. */
:where(p, li, td, th) { overflow-wrap: break-word; word-break: normal; }
:where(a, span, strong, h1, h2, h3, h4) { overflow-wrap: normal; word-break: normal; }
[hidden] { display: none !important; }

/* Общая ширина пользовательских страниц */
body:not(.page-admin) > :where(main, section, .wrap, .contact-block):not(.appbar) {
  max-width: 100%;
}
body:not(.page-admin) .container {
  width: min(calc(100% - (var(--responsive-gutter) * 2)), var(--responsive-content));
  max-width: var(--responsive-content);
  margin-inline: auto;
}

/* ===== Единая адаптивная шапка ===== */
.appbar { position: relative; z-index: 1000; width: 100%; }
.appbar > .container {
  display: grid !important;
  grid-template-columns: auto minmax(280px, 1fr) auto auto;
  grid-template-areas:
    "brand tools email cart"
    "nav nav nav nav";
  align-items: center;
  gap: 10px 18px;
  padding-block: 10px 8px !important;
}
.appbar .navbar-brand { grid-area: brand; min-width: 0; margin: 0 !important; }
.appbar .navbar-brand img { display: block; width: clamp(124px, 11vw, 160px) !important; height: auto !important; max-height: 86px; object-fit: contain; }
.appbar .app-row { grid-area: tools; width: 100%; min-width: 0; margin: 0 !important; }
.appbar .controls {
  display: grid !important;
  grid-template-columns: minmax(220px, 1fr) auto;
  align-items: center !important;
  gap: 10px 18px !important;
  width: 100%;
  min-width: 0;
}
.appbar .search, .appbar .search-modern, .appbar .search-modern__field { width: 100% !important; min-width: 0; }
.appbar .search-modern__input {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  font-size: 16px;
}
.appbar .Phone {
  display: grid !important;
  grid-template-columns: auto max-content;
  align-items: center;
  gap: 2px 8px !important;
  min-width: 0;
  padding: 0 !important;
}
.appbar .Phone img { grid-row: 1 / span 2; width: 42px !important; height: 42px !important; object-fit: contain; }
.appbar .Phone .phone-text {
  grid-column: 2;
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  margin: 0 !important;
  padding: 2px 7px;
  border-radius: 8px;
  font-size: clamp(.9rem, 1.2vw, 1.08rem) !important;
  line-height: 1.15 !important;
  white-space: nowrap;
}
.appbar .email-btn { grid-area: email; position: static !important; inset: auto !important; margin: 0 !important; }
.appbar .product-cell__actions { grid-area: cart; position: relative; margin: 0 !important; }
.appbar .email-btn, .appbar .product-cart-btn, .appbar #burgerBtn {
  display: inline-grid;
  place-items: center;
  width: var(--responsive-touch);
  min-width: var(--responsive-touch);
  height: var(--responsive-touch);
  min-height: var(--responsive-touch);
  padding: 0 !important;
}
.appbar .email-btn img, .appbar .product-cart-btn img { width: 40px !important; height: 40px !important; object-fit: contain; }
.appbar #primaryNav {
  grid-area: nav;
  display: flex !important;
  flex-flow: row wrap !important;
  justify-content: space-between !important;
  align-items: center;
  gap: 4px 10px !important;
  width: 100% !important;
  min-width: 0;
  margin: 2px 0 0 !important;
  padding: 0 !important;
}
.appbar #primaryNav > .nav-item { min-width: 0; margin: 0 !important; }
.appbar #primaryNav .nav-link {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: 8px clamp(7px, 1.2vw, 14px) !important;
  font-size: clamp(.76rem, .9vw, .95rem) !important;
  line-height: 1.15;
  text-align: center;
  white-space: nowrap;
}
.appbar #burgerBtn, .appbar .mobile-stack { display: none !important; }
.appbar .catalog-megamenu { max-width: calc(100vw - (var(--responsive-gutter) * 2)); }

/* Ноутбуки и небольшие мониторы */
@media (max-width: 1199px) {
  .appbar > .container {
    grid-template-columns: auto 1fr auto auto;
    grid-template-areas:
      "brand spacer email cart"
      "tools tools tools tools"
      "nav nav nav nav";
    gap: 8px 12px;
  }
  .appbar .app-row { margin-top: 2px !important; }
  .appbar #primaryNav { justify-content: center !important; }
  .appbar #primaryNav .nav-link { font-size: .8rem !important; padding-inline: 8px !important; }
}

/* Планшеты и телефоны */
@media (max-width: 900px) {
  :root { --responsive-gutter: clamp(8px, 2.6vw, 18px); }
  body.responsive-nav-open { overflow: hidden; }
  .appbar > .container {
    grid-template-columns: minmax(0, 1fr) auto auto auto;
    grid-template-areas:
      "brand email cart burger"
      "mobile mobile mobile mobile"
      "nav nav nav nav";
    gap: 8px;
    padding-block: 8px !important;
  }
  .appbar .navbar-brand img { width: clamp(112px, 24vw, 145px) !important; max-height: 68px; }
  .appbar #burgerBtn { grid-area: burger; display: inline-grid !important; position: static !important; inset: auto !important; margin: 0 !important; }
  .appbar .mobile-stack {
    grid-area: mobile;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px 12px;
    width: 100%;
    min-width: 0;
    margin: 0 !important;
  }
  .appbar .app-row { grid-area: mobile; min-width: 0; }
  .appbar .app-row:empty { display: none !important; }
  .appbar .mobile-stack > .search { min-width: 0; }
  .appbar .mobile-stack > .Phone { justify-self: end; }
  .appbar #primaryNav {
    display: none !important;
    position: relative;
    z-index: 1002;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px !important;
    max-height: min(62vh, 560px);
    overflow-y: auto;
    overscroll-behavior: contain;
    margin-top: 2px !important;
    padding: 10px !important;
    border: 1px solid rgba(232, 119, 27, .2);
    border-radius: 14px;
    background: rgba(255,255,255,.98) !important;
    box-shadow: 0 16px 35px rgba(0,0,0,.16) !important;
  }
  .appbar #primaryNav.is-open,
  .appbar.is-nav-open #primaryNav { display: grid !important; flex-direction: unset !important; }
  .appbar #primaryNav > .nav-item { width: 100%; }
  .appbar #primaryNav .nav-link {
    justify-content: flex-start;
    width: 100%;
    min-height: var(--responsive-touch);
    padding: 10px 12px !important;
    border-radius: 10px;
    font-size: .92rem !important;
    text-align: left;
    white-space: normal;
  }
  .appbar #primaryNav .catalog-megamenu { display: none !important; }
  .appbar .controls { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 12px !important; }
  .appbar .Phone .phone-text { font-size: .94rem !important; }
}

@media (max-width: 620px) {
  .appbar .mobile-stack { grid-template-columns: 1fr; }
  .appbar .mobile-stack > .Phone { justify-self: stretch; width: 100%; }
  .appbar .Phone { grid-template-columns: auto minmax(0, 1fr) !important; }
  .appbar .Phone .phone-text { white-space: normal; }
  .appbar #primaryNav { grid-template-columns: 1fr; }
  .appbar .search-modern__input::placeholder { font-size: .84rem; }
}

@media (max-width: 420px) {
  .appbar > .container { grid-template-columns: minmax(0,1fr) 40px 40px 40px; column-gap: 5px; }
  .appbar .navbar-brand img { width: 106px !important; }
  .appbar .email-btn, .appbar .product-cart-btn, .appbar #burgerBtn { width: 40px; min-width: 40px; height: 40px; min-height: 40px; }
  .appbar .email-btn img, .appbar .product-cart-btn img { width: 36px !important; height: 36px !important; }
}

/* ===== Главная ===== */
.page-home .clean-carousel { width: 100%; overflow: hidden; }
.page-home #carouselExampleIndicators.clean-carousel .carousel-inner { width: 100%; background: #f3f3f3; }
.page-home #carouselExampleIndicators.clean-carousel .carousel-item { width: 100%; text-align: center; }
.page-home #carouselExampleIndicators.clean-carousel .carousel-item img {
  display: block;
  width: auto !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: min(62dvh, 700px);
  margin-inline: auto;
  object-fit: contain !important;
  object-position: center center !important;
}
.page-home .catalog-highlight .row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; gap: clamp(18px, 3vw, 44px); }
.page-home .catalog-highlight [class*="col-"] { width: auto; max-width: none; }
@media (min-width: 769px) and (max-width: 1366px) {
  .page-home #carouselExampleIndicators.clean-carousel .carousel-item img { max-height: min(58dvh, 520px); }
}
@media (max-width: 760px) {
  .page-home .catalog-highlight .row { grid-template-columns: 1fr; }
  .page-home #carouselExampleIndicators.clean-carousel .carousel-item img { width: 100% !important; max-height: none; }
  .page-home .carousel-control-prev, .page-home .carousel-control-next { width: 12%; }
}

/* ===== О компании ===== */
.page-about .wrap { width: min(calc(100% - (var(--responsive-gutter) * 2)), 1180px); margin-inline: auto; }
.page-about .grid { grid-template-columns: repeat(2, minmax(0,1fr)) !important; }
.page-about .card { min-width: 0; padding: clamp(18px, 3vw, 32px); }
@media (max-width: 720px) { .page-about .grid { grid-template-columns: 1fr !important; } }

/* ===== Каталог ===== */
.page-catalog .catalog, .page-solution-detail .catalog { width: min(100%, 1600px); margin-inline: auto; padding-inline: var(--responsive-gutter) !important; }
.page-catalog .catalog-layout, .page-solution-detail .catalog-layout { display: grid; align-items: flex-start; grid-template-columns: minmax(220px, 270px) minmax(0, 1fr); gap: clamp(14px, 2vw, 26px); }
.page-catalog .catalog-main, .page-catalog #grid { min-width: 0; max-width: 100%; }
.page-catalog .catalog-toolbar { align-items: center; }
.page-catalog .catalog-toolbar-left, .page-catalog .catalog-toolbar-right { min-width: 0; }
.page-catalog .catalog-toolbar-right { max-width: 100%; overflow-x: auto; padding-bottom: 3px; }
.page-catalog .catalog-filter-radio { max-width: 100%; }
.page-catalog .product-row { min-width: 0; }
.page-catalog .product-cell__img img { max-width: 100%; object-fit: contain; }
.page-catalog dialog { max-width: calc(100vw - 20px); max-height: calc(100dvh - 20px); }
.page-catalog .catalog-pagination { max-width: 100%; overflow-x: auto; padding-block: 4px; }
@media (max-width: 1100px) {
  .page-catalog .catalog-layout, .page-solution-detail .catalog-layout { display: grid; align-items: flex-start; grid-template-columns: 1fr !important; }
  .page-catalog .catalog-sidebar { position: static !important; width: 100%; max-width: 100%; }
  .page-catalog .catalog-sidebar__list.catalog-mts-list { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px; }
  .page-catalog .catalog-sidebar__item { min-width: 0; }
  .page-catalog .catalog-sidebar__item .catalog-sidebar__sublist { width: 100% !important; min-width: 0 !important; max-width: 100% !important; }
}
@media (max-width: 760px) {
  .page-catalog .catalog { margin-top: 14px; padding-bottom: 35px; }
  .page-catalog .catalog-sidebar { padding: 12px !important; }
  .page-catalog .catalog-sidebar__list.catalog-mts-list { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .page-catalog .catalog-main-title { font-size: clamp(1.45rem, 8vw, 2rem) !important; letter-spacing: .06em !important; }
  .page-catalog .catalog-toolbar, .page-catalog .catalog-toolbar-left, .page-catalog .catalog-toolbar-right { width: 100%; }
  .page-catalog .catalog-toolbar-right { margin-left: 0 !important; justify-content: flex-start !important; }
  .page-catalog .catalog-data-bar { align-items: stretch; flex-direction: column; }
  .page-catalog .catalog-data-bar__controls { width: 100%; }
  .page-catalog .catalog-data-select { min-height: var(--responsive-touch); }
  .page-catalog .modal-body { grid-template-columns: 1fr !important; }
}
@media (max-width: 460px) {
  .page-catalog .catalog-sidebar__list.catalog-mts-list { grid-template-columns: 1fr; }
  .page-catalog .catalog-filter-radio { width: max-content; min-width: 100%; overflow-x: auto; }
}

/* ===== Доставка ===== */
.page-delivery section.container.my-5 .row { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: clamp(14px, 2vw, 26px); }
.page-delivery section.container.my-5 [class*="col-"] { width: auto; max-width: none; min-width: 0; }
.page-delivery .table { width: min(calc(100% - (var(--responsive-gutter) * 2)), 1180px); margin-inline: auto; }
.page-delivery .map-container { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 6px !important; width: 100%; }
.page-delivery .table1 { width: 100% !important; max-width: none !important; margin: 0 !important; }
.page-delivery .map_continent { margin-top: 20px !important; }
.page-delivery .wrapper, .page-delivery .map_wrapper { max-width: min(680px, 100%) !important; width: 100% !important; }
.page-delivery .map_wrapper:hover { transform: none !important; }
@media (max-width: 820px) {
  .page-delivery section.container.my-5 .row { grid-template-columns: 1fr; }
  .page-delivery #regionTable { display: grid !important; grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 480px) { .page-delivery #regionTable { grid-template-columns: 1fr; } }

/* ===== Корзина ===== */
/* v278: 1200 px включают по 22 px внутренних отступов. Рабочая ширина 1156 px
   точно совпадает с границами шапки. */
.page-cart .cart-wrap { width: min(calc(100% - (var(--responsive-gutter) * 2)), 1200px) !important; max-width: 1200px !important; }
.page-cart .cart-grid { grid-template-columns: minmax(0,1fr) minmax(280px, 360px); gap: clamp(14px, 2vw, 24px); }
.page-cart .cart-card, .page-cart .cart-item, .page-cart .cart-item__left { min-width: 0; }
.page-cart .cart-item__title { overflow-wrap: anywhere; }
.page-cart dialog { max-width: calc(100vw - 20px); max-height: calc(100dvh - 20px); }
@media (max-width: 980px) {
  .page-cart .cart-grid { grid-template-columns: 1fr !important; }
  .page-cart .cart-card--summary { position: static !important; }
}
@media (max-width: 620px) {
  .page-cart .cart-head { align-items: stretch !important; flex-direction: column; }
  .page-cart .cart-head__actions { width: 100%; display: grid !important; grid-template-columns: 1fr; }
  .page-cart .cart-head__actions > * { width: 100%; }
  .page-cart .cart-item { grid-template-columns: 1fr !important; gap: 12px !important; }
  .page-cart .cart-item__left { align-items: flex-start; }
  .page-cart .cart-item__img { width: 72px !important; height: 72px !important; flex: 0 0 72px; }
}

/* ===== Контакты ===== */
.page-contacts .contact-block { width: min(calc(100% - (var(--responsive-gutter) * 2)), 1180px) !important; margin-inline: auto !important; }
.page-contacts .cb-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: clamp(14px, 2vw, 24px); }
.page-contacts .cb-row { grid-template-columns: auto minmax(0,1fr) auto; min-width: 0; }
.page-contacts .feedback-wrap, .page-contacts .feedback-card { max-width: 100%; }
.page-contacts .feedback-row { grid-template-columns: repeat(2, minmax(0,1fr)); }
@media (max-width: 760px) {
  .page-contacts .cb-grid, .page-contacts .feedback-row { grid-template-columns: 1fr !important; }
  .page-contacts .cb-row { grid-template-columns: auto minmax(0,1fr); }
  .page-contacts .cb-row .cb-badge, .page-contacts .cb-row .cb-copy { grid-column: 2; justify-self: start; }
}

/* ===== Документы ===== */
.page-documents .documents-root, .page-documents main, .page-documents .docs-grid { max-width: 100%; }
.page-documents :where(.docs-grid,.documents-grid) { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(260px,100%),1fr)); gap: 16px; }

/* ===== Личный кабинет ===== */
.page-account .account-root { width: min(calc(100% - (var(--responsive-gutter) * 2)), 1156px) !important; box-sizing: border-box; }
.page-account .account-auth, .page-account .account-cabinet, .page-account .account-content { min-width: 0; }
@media (max-width: 980px) {
  .page-account .account-auth { grid-template-columns: 1fr !important; }
  .page-account .account-cabinet { grid-template-columns: 1fr !important; }
  .page-account .account-sidebar { position: static !important; }
}
@media (max-width: 620px) {
  .page-account .account-auth { border-radius: 18px; }
  .page-account .account-auth__intro { padding: 28px 20px !important; }
  .page-account .account-auth__forms { padding: 24px 16px 28px !important; }
  .page-account .account-grid-2, .page-account .account-stats { grid-template-columns: 1fr !important; }
  .page-account .account-menu { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)) !important; overflow: visible !important; }
  .page-account .account-menu button { min-width: 0; white-space: normal !important; }
  .page-account .account-profile-card { align-items: flex-start; }
  .page-account .account-order__head, .page-account .account-order-item { grid-template-columns: 1fr !important; }
}

/* ===== Админка ===== */
.page-admin .admin-app { min-width: 0; }
.page-admin .main, .page-admin .section, .page-admin .panel { min-width: 0; }
.page-admin .table-wrap { max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.page-admin table { min-width: 760px; }
@media (max-width: 900px) {
  .page-admin .admin-app { grid-template-columns: 1fr !important; }
  .page-admin .sidebar { position: static !important; width: 100%; height: auto !important; }
  .page-admin .side-nav { display: flex !important; overflow-x: auto; gap: 6px; padding-bottom: 4px; }
  .page-admin .side-nav__item { flex: 0 0 auto; width: auto; min-height: 44px; white-space: nowrap; }
  .page-admin .sidebar__bottom { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .page-admin .main { padding: 18px var(--responsive-gutter) 40px !important; }
  .page-admin .panel-grid, .page-admin .panel-grid--import, .page-admin .image-import-grid { grid-template-columns: 1fr !important; }
  .page-admin .toolbar { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
}
@media (max-width: 560px) {
  .page-admin .topbar { flex-direction: column; align-items: stretch; }
  .page-admin .topbar__actions { flex-wrap: wrap; }
  .page-admin .stats-grid, .page-admin .toolbar, .page-admin .sidebar__bottom { grid-template-columns: 1fr !important; }
  .page-admin .panel { padding: 16px; }
  .page-admin .panel__head, .page-admin .backup-card { align-items: stretch; grid-template-columns: 1fr; flex-direction: column; }
  .page-admin .form-grid { grid-template-columns: 1fr !important; }
  .page-admin .span-2 { grid-column: auto !important; }
  .page-admin .dialog-actions { display: grid; grid-template-columns: 1fr; }
}

/* Горизонтальная ориентация телефонов */
@media (max-height: 520px) and (orientation: landscape) and (max-width: 950px) {
  .appbar #primaryNav { max-height: 46vh; }
}

/* Сенсорные устройства */
@media (hover: none), (pointer: coarse) {
  :where(a, button, input, select, textarea, summary) { touch-action: manipulation; }
  button, .btn, .nav-link, .catalog-page, .account-menu button { min-height: var(--responsive-touch); }
  .catalog-megamenu { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* ===== Безопасное вписывание баннеров и нижних переключателей ===== */
.page-home #carouselExampleIndicators.clean-carousel {
  max-width: 100%;
  overflow: hidden;
  background: #f3f3f3;
}
.page-home #carouselExampleIndicators.clean-carousel .carousel-inner,
.page-home #carouselExampleIndicators.clean-carousel .carousel-item {
  max-width: 100%;
  overflow: hidden;
}
.page-home #carouselExampleIndicators.clean-carousel .carousel-item img {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: min(62dvh, 700px);
  margin: 0 auto;
  object-fit: contain !important;
  object-position: center center !important;
}
@media (max-width: 768px) {
  .page-home #carouselExampleIndicators.clean-carousel { padding-bottom: 30px; }
  .page-home #carouselExampleIndicators.clean-carousel .carousel-indicators {
    position: absolute;
    right: 0;
    bottom: 5px;
    left: 0;
    z-index: 5;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 20px;
    margin: 0;
    padding: 0 12px;
    pointer-events: auto;
  }
  .page-home #carouselExampleIndicators.clean-carousel .carousel-indicators [data-stm-target] {
    width: 24px;
    height: 5px;
    margin: 0;
    border: 0;
    border-radius: 999px;
    background-color: #9b9b9b;
  }
  .page-home #carouselExampleIndicators.clean-carousel .carousel-indicators .active { background-color: #f58220; }
  .page-home #carouselExampleIndicators.clean-carousel .carousel-item img {
    width: 100% !important;
    max-height: calc(100dvh - 220px);
    min-height: 0;
  }
}
@media (max-width: 420px) {
  .page-home #carouselExampleIndicators.clean-carousel { padding-bottom: 28px; }
  .page-home #carouselExampleIndicators.clean-carousel .carousel-item img { max-height: calc(100dvh - 190px); }
}

/* Shared catalogue outer width for catalogue and solution workspace. */
@media (min-width:1601px) {
 .page-catalog .catalog, .page-solution-detail .catalog { width: min(100%, 1800px); }
}
/* Detail page upper content keeps the existing solutions-main look; catalogue workspace is full-width. */
.page-solution-detail .solutions-main { width: 100%; max-width: none; }
.page-solution-detail .solutions-content-inner { width: min(calc(100% - 32px), 1156px); margin-inline: auto; }
/* Internal card track starts at the exact edge of the catalogue main column. */
@media (min-width: 1101px) {
 .page-solution-detail .solution-products-panel { padding: 0; }
}
