/* Общие элементы клиентских страниц; административный дашборд использует DevExtreme. */
.mm-storefront { color: var(--mm-text); font-size: 1rem; line-height: 1.6; background: #fff; }
.mm-storefront .mm-main { min-width: 0; padding-bottom: 2rem; }
.mm-storefront .mm-main h1 { font-size: clamp(1.5rem, 2.5vw, 2.125rem); line-height: 1.25; font-weight: 650; text-align: left; overflow-wrap: anywhere; }
.mm-storefront .mm-main h2 { line-height: 1.35; }
.mm-storefront li.nav-item { font-size: 1rem; }
.mm-storefront .mm-breadcrumb { font-size: .875rem; line-height: 1.5; margin: 1.25rem 0 1.75rem; row-gap: .35rem; }
.mm-storefront .breadcrumb-item { overflow-wrap: anywhere; }
.mm-storefront .breadcrumb-item.active { color: #666; }
.mm-storefront .btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 44px; padding: .65rem 1.1rem; font-size: 1rem; line-height: 1.3; font-weight: 600; border-radius: .5rem; }
.mm-storefront .btn .bi { font-size: 1.125em; line-height: 1; flex-shrink: 0; }
.mm-storefront .mm-btn-primary { background: var(--mm-accent); border-color: var(--mm-accent); color: var(--mm-text); }
.mm-storefront .mm-btn-primary:hover, .mm-storefront .mm-btn-primary:focus { background: #ed9c17 !important; border-color: #ed9c17 !important; color: var(--mm-text) !important; }
.mm-storefront .mm-btn-primary:active { background: #e39310 !important; color: var(--mm-text) !important; }
.mm-storefront .mm-btn-secondary, .mm-storefront .btn-outline-primary, .mm-storefront .btn-outline-secondary { background: #fff; border: 1px solid #d5d5d5; color: var(--mm-text); }
.mm-storefront .mm-btn-secondary:hover, .mm-storefront .btn-outline-primary:hover, .mm-storefront .btn-outline-secondary:hover { background: #fff8ea; border-color: var(--mm-accent); color: var(--mm-text); }
.mm-storefront .btn:focus-visible, .mm-storefront a:focus-visible { outline: 2px solid #a66b07; outline-offset: 3px; box-shadow: none; }
.mm-storefront .btn:disabled, .mm-storefront .btn.disabled { opacity: .55; }
.mm-storefront .form-control, .mm-storefront .form-select { min-height: 44px; padding: .65rem .85rem; font-size: 1rem; line-height: 1.4; border-color: var(--mm-border); border-radius: .5rem; }
.mm-storefront .form-select { padding-right: 2.5rem; }
.mm-storefront .form-control:focus, .mm-storefront .form-select:focus { border-color: var(--mm-accent); box-shadow: 0 0 0 3px rgb(249 168 37 / 15%); }
.mm-storefront .form-control.is-invalid { border-color: #b3261e; }
.mm-storefront .input-group > .form-control { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.mm-storefront .input-group > .btn { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.mm-storefront .form-label, .mm-storefront .mm-label { font-size: .9375rem; font-weight: 500; }
.mm-storefront .form-text { font-size: .875rem; line-height: 1.5; }
.mm-storefront .form-select-sm { min-height: 38px; padding-top: .4rem; padding-bottom: .4rem; }
.mm-storefront .mm-section { padding-bottom: 2rem; }
.mm-storefront .mm-section > h1 { margin-bottom: 1.5rem !important; }
.mm-storefront .mm-section > h2 { margin-bottom: 1.25rem; }
.mm-storefront .mm-products-grid { --bs-gutter-x: 1.5rem; --bs-gutter-y: 1.5rem; }
.mm-storefront .mm-card-product { border: 1px solid var(--mm-border) !important; border-radius: .75rem; overflow: hidden; box-shadow: none !important; }
.mm-storefront .mm-card-product:hover { box-shadow: 0 6px 20px rgb(0 0 0 / 7%) !important; }
.mm-storefront .mm-card-product > a { flex: 0 0 auto; height: auto; background: #f5f5f5; overflow: hidden; }
.mm-storefront .mm-card-product .card-img-top { width: 100%; height: auto; aspect-ratio: auto 3 / 4; object-fit: contain; border-radius: 0; }
.mm-storefront .mm-card-product .card-body { padding: 1.25rem; gap: .75rem; text-align: left !important; justify-content: flex-end; }
.mm-storefront .mm-card-product h3 { min-height: 4.5rem; font-size: 1rem; line-height: 1.5; text-align: left; margin: 0 !important; }
.mm-storefront .mm-card-product h3 a { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.mm-storefront .mm-card-footer { display: flex; flex-direction: column; gap: .75rem; }
.mm-storefront .mm-card-product .mm-price { display: flex !important; align-items: center; min-height: 2.125rem; margin: 0 !important; padding-top: .25rem; font-size: 1.25rem; line-height: 1.5; font-weight: 700; }
.mm-storefront .mm-card-product .mm-price-on-request { font-size: .875rem; font-weight: 400; color: #666; }
.mm-storefront .mm-card-product .btn { width: 100%; }
.mm-storefront .mm-image-unavailable { padding: 1rem; background: #f5f5f5; }
.mm-storefront .mm-product-page { --bs-gutter-y: 0; margin-top: 0; margin-bottom: 2rem; row-gap: 2rem; }
.mm-storefront .mm-product-gallery { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; gap: 1rem; min-width: 0; padding: 0; }
.mm-storefront .mm-product-carousel { min-width: 0; background: #fff; border: 0; border-radius: .75rem; overflow: hidden; }
.mm-storefront .mm-product-carousel .carousel-item { height: auto; }
.mm-storefront .mm-product-carousel .mm-product-main-img { width: 100%; height: auto; max-height: none; object-fit: contain; background: #fff; border-radius: 0; }
.mm-storefront .mm-product-carousel .carousel-item > a { height: auto; }
.mm-storefront .mm-product-carousel .carousel-control-prev, .mm-storefront .mm-product-carousel .carousel-control-next { width: 48px; top: calc(50% - 24px); bottom: auto; height: 48px; margin: 0 .5rem; border-radius: 50%; background: rgb(35 35 35 / 65%); }
.mm-storefront .mm-product-carousel .carousel-control-prev-icon, .mm-storefront .mm-product-carousel .carousel-control-next-icon { width: 20px; height: 20px; }
.mm-storefront .mm-product-thumbs { min-width: 0; flex-wrap: nowrap; align-items: center; justify-content: flex-start; gap: .75rem !important; margin: 0 !important; padding: .25rem; overflow-x: auto; overscroll-behavior: contain; scrollbar-width: thin; }
.mm-storefront .mm-product-thumbs .mm-thumb { flex: 0 0 auto; width: auto; height: auto; min-width: 44px; min-height: 44px; padding: 0; border: 0 !important; border-radius: 0; background: transparent; overflow: visible; }
.mm-storefront .mm-product-thumbs .mm-thumb.active { outline: none !important; }
.mm-storefront .mm-product-thumbs .mm-thumb.active .mm-thumb-img { border-color: var(--mm-accent); }
.mm-storefront .mm-product-thumbs .mm-thumb:focus-visible { outline: none !important; }
.mm-storefront .mm-product-thumbs .mm-thumb:focus-visible .mm-thumb-img { outline: 2px solid #a66b07; outline-offset: 2px; }
.mm-storefront .mm-product-thumbs .mm-thumb-img { display: block; width: auto; height: auto; max-width: 76px; max-height: 100px; object-fit: contain; border: 2px solid transparent; border-radius: .5rem; }
.mm-storefront .mm-product-heading { display: flex; align-items: flex-start; gap: 1rem; margin-bottom: 1.75rem; }
.mm-storefront .mm-product-heading h1 { margin: 0; flex: 1; min-width: 0; }
.mm-storefront .mm-product-edit { flex: 0 0 44px; width: 44px; padding: .5rem; }
.mm-storefront .mm-product-buy-box { padding: 1.5rem; border: 1px solid var(--mm-border); border-radius: .75rem; background: #f5f5f5; margin-bottom: 2rem; }
.mm-storefront .mm-product-price-label { display: block; font-size: .875rem; color: #666; margin-bottom: .25rem; }
.mm-storefront .mm-product-sale-price { font-size: clamp(1.5rem, 2.3vw, 1.875rem); font-weight: 700; line-height: 1.3; margin: 0 0 1.25rem; }
.mm-storefront .mm-product-actions { display: flex; flex-wrap: wrap; gap: .75rem; align-items: stretch; }
.mm-storefront .mm-product-actions .btn { min-height: 48px; padding: .75rem 1.25rem; }
.mm-storefront .mm-product-description { font-size: 1rem; line-height: 1.75; overflow-wrap: anywhere; }
.mm-storefront .mm-product-description h2 { text-align: left; font-size: 1.125rem; font-weight: 650; margin-bottom: 1rem; }
.mm-storefront .mm-product-description p { margin-bottom: .8rem; }
.mm-storefront .mm-offers-list { max-width: none; margin-top: 1.5rem; }
.mm-storefront .mm-offers-list li { gap: 1rem; }
.mm-storefront .mm-offers-list li > :last-child { white-space: nowrap; }
.mm-storefront .mm-shop { padding-top: .5rem; }
.mm-storefront .mm-shop .mm-input { min-height: 48px; }
.mm-storefront .mm-shop .alert { width: 100%; margin: 0 0 1.25rem; padding: 1rem 1.25rem; }
.mm-storefront .mm-shop-header { padding-bottom: 1.25rem; border-bottom: 1px solid var(--mm-border); margin-bottom: 2rem; }
.mm-storefront .mm-shop-nav { gap: 1rem; align-items: center; }
.mm-storefront .mm-shop-nav a { padding: .35rem 0; }
.mm-storefront .mm-shop-panel, .mm-storefront .mm-shop-summary, .mm-storefront .mm-shop .mm-form { box-shadow: none; }
.mm-storefront .mm-summary-row { align-items: flex-start; }
.mm-storefront .mm-shop .mm-password > button { border-radius: 0 .5rem .5rem 0; min-height: 44px; height: calc(100% - 4px); }
.mm-storefront .mm-shop .mm-order-link { overflow-wrap: anywhere; }
.mm-storefront .mm-order-link .d-flex { flex-wrap: wrap; gap: .75rem; }
.mm-storefront .mm-category-tile { display: flex; height: 100%; flex-direction: column; align-items: flex-start; gap: 1rem; padding: 1.5rem; border: 1px solid var(--mm-border); border-radius: .75rem; background: #f5f5f5; color: var(--mm-text); text-decoration: none; font-weight: 600; }
.mm-storefront .mm-category-tile:hover { border-color: var(--mm-accent); background: #fff8ea; }
.mm-storefront .mm-category-tile img { width: 72px; height: 72px; object-fit: contain; }
.mm-storefront .mm-category-card { height: 100%; border: 1px solid var(--mm-border); border-radius: .75rem; overflow: hidden; background: #f5f5f5; }
.mm-storefront .mm-category-card:hover { border-color: var(--mm-accent); background: #fff8ea; }
.mm-storefront .mm-category-link { display: flex; height: 100%; flex-direction: column; color: var(--mm-text); text-decoration: none; }
.mm-storefront .mm-category-img-wrapper { height: 128px; padding: 1rem; display: flex; align-items: center; justify-content: center; }
.mm-storefront .mm-category-img-wrapper img.mm-category-img { width: 100%; height: 100%; max-height: 96px; object-fit: contain; }
.mm-storefront .mm-category-body { padding: 1rem; margin-top: 0; }
.mm-storefront .mm-category-card .mm-category-title { margin: 0; text-align: left; font-size: 1rem; line-height: 1.4; overflow-wrap: anywhere; }
.mm-storefront footer { margin-top: auto; }
.mm-storefront .mm-scroll-top { display: none; width: 44px; height: 44px; padding: .5rem; }

/* Всплывающие сообщения не сдвигают содержимое и остаются доступны на телефоне. */
.mm-storefront .mm-notices { position: fixed; inset: auto 0 calc(1.25rem + env(safe-area-inset-bottom, 0px)); z-index: 2000; display: flex; flex-direction: column; align-items: center; gap: .75rem; padding: 0 1rem; pointer-events: none; }
.mm-storefront .mm-notice { position: relative; width: max-content; max-width: min(560px, 100%); margin: 0; padding: 1rem 3.5rem; border-radius: .75rem; box-shadow: 0 4px 20px rgb(35 35 35 / 12%); text-align: center; overflow-wrap: anywhere; pointer-events: auto; }
.mm-storefront .mm-notice-close { position: absolute; top: 50%; right: .25rem; transform: translateY(-50%); display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 0; border-radius: .5rem; background: transparent; color: inherit; cursor: pointer; }
.mm-storefront .mm-notice-close:hover { background: rgb(35 35 35 / 8%); }
.mm-storefront .mm-notice-close:focus-visible { outline: 2px solid currentColor; outline-offset: -3px; }
.mm-storefront .mm-notice[hidden] { display: none; }
@media (min-width: 768px) {
  .mm-storefront .mm-product-gallery--with-thumbs { grid-template-columns: 84px minmax(0, 1fr); }
  .mm-storefront .mm-product-gallery--with-thumbs .mm-product-carousel { grid-column: 2; grid-row: 1; }
  .mm-storefront .mm-product-gallery--with-thumbs .mm-product-thumbs { grid-column: 1; grid-row: 1; flex-direction: column; max-height: min(70vh, 640px); overflow-x: hidden; overflow-y: auto; }
}
@media (max-width: 991.98px) {
  .mm-storefront .mm-product-page { row-gap: 1.75rem; }
  .mm-storefront .mm-product-heading { margin-bottom: 1.25rem; }
}
@media (max-width: 575.98px) {
  .mm-storefront .mm-header > .container { flex-wrap: nowrap; gap: .25rem; }
  .mm-storefront .mm-header .navbar-brand { width: 80px; min-width: 0; margin-right: auto; }
  .mm-storefront .mm-header .navbar-brand img { width: 100%; height: auto; }
  .mm-storefront .mm-header-account-links, .mm-storefront .mm-header-mobile-actions { margin: 0 !important; gap: .25rem !important; flex-shrink: 0; }
  .mm-storefront .mm-header-account-links > a { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
  .mm-storefront .mm-header .mm-mobile-header-icon, .mm-storefront .mm-header .navbar-toggler { width: 44px; height: 44px; padding: 0; color: var(--mm-text) !important; border-color: var(--mm-border); }
  .mm-storefront .mm-header .mm-header-contact-action { display: none; }
  .mm-storefront .mm-breadcrumb { margin: 1rem 0 1.25rem; font-size: .8125rem; }
  .mm-storefront .mm-section { padding-left: 0; padding-right: 0; }
  .mm-storefront .mm-product-buy-box { padding: 1.25rem; margin-bottom: 1.5rem; }
  .mm-storefront .mm-product-actions { display: grid; grid-template-columns: 1fr; }
  .mm-storefront .mm-product-actions .btn { width: 100%; }
  .mm-storefront .mm-product-thumbs .mm-thumb-img { max-width: 64px; max-height: 84px; }
  .mm-storefront .mm-shop-header { align-items: flex-start !important; }
  .mm-storefront .mm-shop-nav { width: 100%; font-size: .875rem; }
  .mm-storefront .mm-shop-panel, .mm-storefront .mm-shop-summary { padding: 1rem; }
  .mm-storefront .mm-delivery-options { grid-template-columns: 1fr; }
  .mm-storefront .mm-delivery-option label { flex-direction: row; align-items: center; gap: .75rem; padding: .875rem; font-size: 1rem; }
  .mm-storefront .mm-delivery-option small { margin-left: auto; font-size: .875rem; text-align: right; }
  .mm-storefront .mm-category-tile { padding: 1.25rem; }
  .mm-storefront .mm-category-img-wrapper { height: 100px; }
  .mm-storefront footer .row { --bs-gutter-x: 1.5rem; --bs-gutter-y: 2rem; }
  .mm-storefront .mm-scroll-top { right: 1rem; bottom: 1rem; }
}
@media (prefers-reduced-motion: reduce) {
  .mm-storefront .btn, .mm-storefront .mm-card-product { transition: none; transform: none; }
}
