/* Refinement layer: colour, rhythm and responsive homepage composition. */
:root {
  --aero-brand: #0a6875;
  --aero-brand-hover: #075561;
  --aero-brand-mid: #169eac;
  --aero-accent: #4cc9d1;
  --aero-page: #fbfdfd;
  --aero-surface: #eefafb;
  --aero-rim: #d7ebee;
  --aero-ink: #21515a;
  --aero-dim: #6e8b91;
  --aero-teal: #24b7c5;
  --aero-mint: #8ee0e5;
  --bs-primary: #24b7c5;
  --bs-primary-rgb: 36, 183, 197;
  --bs-link-color: #158c9a;
  --bs-link-hover-color: #075561;
}

body { font-size: 16px; }
.aero-utility-bar { min-height: 42px; font-size: 13px; }
.aero-header-main { padding-block: 17px; }

/* White catalogue navigation; a darker, translucent state appears only on hover. */
#menu { background: #fff !important; border-bottom: 1px solid var(--aero-rim); box-shadow: 0 7px 18px rgba(23, 81, 90, .035); }
#menu .navbar-nav { gap: 4px; }
#menu .navbar-nav > li > a,
#menu .navbar-nav > li > a:visited { color: var(--aero-ink) !important; padding: 15px 17px; border-radius: 10px; font-size: 16px; font-weight: 700; transition: background-color .18s ease, color .18s ease; }
#menu .navbar-nav > li > a:hover,
#menu .navbar-nav > li > a:focus,
#menu .navbar-nav > li.show > a { background: rgba(22, 158, 172, .14); color: var(--aero-brand-hover) !important; }

.aero-home-hero,
.aero-home-catalogue,
.aero-home-benefits,
.aero-home-recommendations { padding-block: 52px; }
.aero-home-hero h1 { font-size: clamp(42px, 4.25vw, 64px); }
.aero-home-hero__lead { font-size: 17px; line-height: 1.6; }
.aero-home-section-head { margin-bottom: 27px; }
.aero-home-section-head h2 { font-size: 30px; }
.aero-home-section-head a { font-size: 15px; }


/* Benefits are intentionally large enough to act as a visual pause. */
.aero-home-benefits { background: #fff; border-block: 1px solid var(--aero-rim); }
.aero-home-benefits__grid { gap: 18px; }
.aero-home-benefits article { min-height: 154px; gap: 16px; padding: 25px 26px; border-radius: 22px; }
.aero-home-benefits article > i { width: 48px; height: 48px; flex-basis: 48px; border-radius: 14px; font-size: 20px; }
.aero-home-benefits h2 { margin-top: 2px; font-size: 18px; }
.aero-home-benefits p { margin-top: 7px; font-size: 15px; line-height: 1.45; }

/* Service programme: readable at normal desktop viewing distance, not helper text. */
.aero-home-warranty { padding-block: 64px; }
.aero-home-warranty h2 { font-size: clamp(42px, 3.8vw, 58px); }
.aero-home-warranty__intro > p:not(.aero-home__eyebrow) { max-width: 440px; margin-bottom: 28px; font-size: 18px; line-height: 1.55; }
.aero-home-warranty__steps { gap: 18px; }
.aero-home-warranty__steps article { min-height: 192px; padding: 24px; border-radius: 20px; }
.aero-home-warranty__steps b { margin-bottom: 20px; font-size: 38px; }
.aero-home-warranty__steps h3 { margin-bottom: 9px; font-size: 17px; line-height: 1.32; }
.aero-home-warranty__steps p { font-size: 15px; line-height: 1.48; }
.aero-home-warranty .aero-button { min-height: 54px; padding-inline: 24px; font-size: 16px; }

/* A light divider block separates the service warranty from the site footer. */
.aero-home-seasonal { padding: 44px 0; background: #fff; border-top: 1px solid var(--aero-rim); border-bottom: 8px solid var(--aero-page); }
.aero-home-seasonal__inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.aero-home-seasonal h2 { margin: 0 0 7px; color: var(--aero-ink); font-size: clamp(24px, 2.2vw, 32px); }
.aero-home-seasonal p { margin: 0; color: var(--aero-dim); font-size: 16px; }

footer.aero-site-footer { margin-top: 0; padding-top: 56px; border-top: 1px solid rgba(255, 255, 255, .18); background: #0a5f6b; }
.aero-site-footer__intro { padding-bottom: 30px; border-bottom: 1px solid rgba(255, 255, 255, .16); }
.aero-site-footer__columns { padding-top: 31px; }
.aero-site-footer__columns h5 { color: #c4eef1; font-size: 12px; }
.aero-site-footer__columns li { margin-bottom: 12px; }
.aero-site-footer__columns a { font-size: 15px; }
.aero-site-footer a:hover { color: #fff; }

@media (max-width: 991.98px) {
  #menu .navbar-nav > li > a,
  #menu .navbar-nav > li > a:visited { padding-inline: 11px; font-size: 14px; }
}

@media (max-width: 767.98px) {
  body { font-size: 15px; }
  .aero-header-main { padding-block: 13px; }
  #menu .navbar-nav > li > a,
  #menu .navbar-nav > li > a:visited { padding: 12px 14px; font-size: 16px; }
  .aero-home-hero,
  .aero-home-catalogue,
  .aero-home-benefits,
  .aero-home-recommendations { padding-block: 36px; }
  .aero-home-hero__lead { font-size: 16px; }
  .aero-home-section-head h2 { font-size: 25px; }
  .aero-home-category__top b,
  .aero-home-category--featured .aero-home-category__top b { font-size: 17px; }
  .aero-home-category__description { font-size: 13px; }
  .aero-home-category__chips span { padding: 4px 7px; font-size: 11px; }
  .aero-home-benefits__grid { gap: 12px; }
  .aero-home-benefits article { min-height: 0; padding: 21px; }
  .aero-home-benefits h2 { font-size: 17px; }
  .aero-home-benefits p { font-size: 14px; }
  .aero-home-warranty { padding-block: 42px; }
  .aero-home-warranty h2 { font-size: 38px; }
  .aero-home-warranty__intro > p:not(.aero-home__eyebrow) { font-size: 16px; }
  .aero-home-warranty__steps { gap: 12px; }
  .aero-home-warranty__steps article { min-height: 0; padding: 20px; }
  .aero-home-warranty__steps b { margin-bottom: 14px; font-size: 32px; }
  .aero-home-warranty__steps h3 { font-size: 16px; }
  .aero-home-warranty__steps p { font-size: 14px; }
  .aero-home-seasonal { padding: 30px 0; }
  .aero-home-seasonal__inner { align-items: flex-start; flex-direction: column; }
  .aero-home-seasonal p { font-size: 15px; }
}

/* Разделы каталога по макету Figma: одна плоская сетка, ведущая плитка шириной
   в две колонки. 4 колонки на десктопе + ведущая на 2 = ровно 8 ячеек под 7
   разделов, поэтому «висячих» рядов не возникает. Высоты выравнивает сама сетка. */
.aero-home-category-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: minmax(150px, auto); align-items: stretch; gap: 12px; min-height: 0; }
.aero-home-category { display: flex; min-height: 0; flex-direction: column; padding: 20px; border-radius: 16px; }
.aero-home-category--featured { grid-column: span 2; grid-row: auto; min-height: 0; padding: 20px; }
.aero-home-category__top b { font-size: 16px; line-height: 1.28; }
.aero-home-category--featured .aero-home-category__top b { font-size: 19px; }
.aero-home-category__description { margin-top: 10px; font-size: 13px; line-height: 1.45; }
.aero-home-category--featured .aero-home-category__description { max-width: none; margin-top: 10px; font-size: 13px; }
.aero-home-category__chips { margin-top: auto; padding-top: 12px; gap: 5px; }
.aero-home-category__chips span { padding: 4px 9px; border-radius: 8px; font-size: 11.5px; }
.aero-home-category__count { margin-top: 10px; font-size: 12.5px; }

/* Рекомендации: по 4 в ряд на десктопе и по 2 на телефоне, как в макете. */
.aero-home-recommendations__products .row { --bs-gutter-x: 12px; }
.aero-home-recommendations__products .row > .col { flex: 0 0 auto; width: 25%; }

/* Зоны нажатия не меньше 44x44 на сенсорных экранах. */
.aero-utility-bar__phones a,
.aero-utility-bar__account > a { display: inline-flex; align-items: center; min-height: 44px; }
.aero-home-section-head a { display: inline-flex; align-items: center; min-height: 44px; }
.aero-home-recommendations__products .product-thumb .description h4 a { display: block; padding-block: 6px; }

@media (max-width: 991.98px) {
  .aero-home-category-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
  .aero-home-category--featured { grid-column: span 2; }
  .aero-home-recommendations__products .row > .col { width: 33.3333%; }
}

@media (max-width: 767.98px) {
  .aero-home-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: minmax(146px, auto); gap: 10px; }
  .aero-home-category--featured { grid-column: span 2; }
  .aero-home-category { padding: 16px; }
  .aero-home-category__top b { font-size: 15px; }
  .aero-home-category--featured .aero-home-category__top b { font-size: 17px; }
  .aero-home-category__description { font-size: 12.5px; }
  .aero-home-recommendations__products .row > .col { width: 50%; }
}

/* AERO-TAP-TARGETS — на сенсорных экранах активные зоны не меньше 44x44 px.
   Ограничено мобильным брейкпоинтом, чтобы не разгонять подвал на десктопе. */
@media (max-width: 767.98px) {
  .aero-site-footer__columns ul.list-unstyled > li { margin-bottom: 0; }
  .aero-site-footer__columns ul.list-unstyled > li > a { display: flex; align-items: center; min-height: 44px; }
  .aero-site-footer__brand,
  .aero-site-footer__contacts > a,
  .aero-site-footer__bottom a { display: inline-flex; align-items: center; min-height: 44px; }
  .aero-site-header__row > #logo > a { display: inline-flex; align-items: center; min-height: 44px; }
  .aero-utility-bar__phones a,
  .aero-utility-bar__account > a { min-height: 44px; }
  .navbar-toggler.d-lg-none { min-width: 44px; min-height: 44px; }
}

/* AERO-HERO-PRODUCT — карточка реального товара в hero вместо абстракции. */
.aero-home-hero__visual { position: relative; display: flex; align-items: center; justify-content: center; min-height: 340px; }
.aero-home-hero__product {
  position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  align-items: center; gap: 20px; width: 100%; max-width: 520px; padding: 20px;
  border: 1px solid var(--aero-rim); border-radius: 20px; background: rgba(255, 255, 255, .92);
  box-shadow: 0 18px 44px rgba(7, 56, 67, .09); color: var(--aero-ink); text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.aero-home-hero__product:hover { transform: translateY(-3px); border-color: var(--aero-accent); box-shadow: 0 22px 52px rgba(7, 56, 67, .14); color: var(--aero-ink); }
.aero-home-hero__product-media { display: grid; place-items: center; aspect-ratio: 1 / 1; border-radius: 14px; background: var(--aero-surface); overflow: hidden; }
.aero-home-hero__product-media img { width: 100%; height: 100%; object-fit: contain; }
.aero-home-hero__product-body { display: flex; min-width: 0; flex-direction: column; gap: 9px; }
.aero-home-hero__product-status { display: inline-flex; align-items: center; align-self: flex-start; gap: 7px; padding: 4px 10px; border-radius: 20px; background: rgba(76, 197, 202, .16); color: var(--aero-brand-mid); font-size: 11.5px; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.aero-home-hero__product-status i { width: 6px; height: 6px; border-radius: 50%; background: var(--aero-accent); }
.aero-home-hero__product-status.is-soon { background: rgba(150, 102, 11, .12); color: #8a5e0c; }
.aero-home-hero__product-status.is-soon i { background: #c08a1e; }
.aero-home-hero__product-body b { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; color: var(--aero-brand); font-size: 15px; font-weight: 750; line-height: 1.32; }
.aero-home-hero__product-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px; }
.aero-home-hero__product-price { color: var(--aero-brand); font-size: 21px; font-weight: 800; letter-spacing: -.02em; }
.aero-home-hero__product-art { color: var(--aero-dim); font-size: 12px; font-weight: 650; }
.aero-home-hero__badge--warranty { position: absolute; z-index: 3; right: 4px; bottom: 0; padding: 8px 12px; border-radius: 11px; background: var(--aero-brand); color: #fff; font-size: 11.5px; font-weight: 750; }

/* AERO-MENU-BAR — подложка каталога во всю ширину окна, содержимое по сетке сайта. */
#menu.aero-menu-bar { width: 100%; padding-inline: 0; border-radius: 0; }
#menu.aero-menu-bar > .container { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
#menu.aero-menu-bar #category { color: var(--aero-brand); font-size: 16px; font-weight: 750; }
#menu.aero-menu-bar #navbar-menu { flex-basis: 100%; }
@media (min-width: 992px) { #menu.aero-menu-bar #navbar-menu { flex-basis: auto; flex-grow: 1; } }

/* AERO-TOPBAR — телефоны в сервисной панели не переносятся на вторую строку. */
.aero-utility-bar__inner { flex-wrap: nowrap; }
.aero-utility-bar__phones { flex-wrap: nowrap; }
.aero-utility-bar__phones a,
.aero-utility-bar__delivery,
.aero-utility-bar__account > a { white-space: nowrap; }
.aero-utility-bar__phones a span { white-space: nowrap; }

/* Между 768 и 1100 px места на всё не хватает: убираем подпись «Личный кабинет»,
   затем текст про доставку — телефоны остаются целыми в любой ориентации. */
@media (max-width: 1100px) {
  .aero-utility-bar__inner { gap: 12px; font-size: 12px; }
  .aero-utility-bar__account > a span { display: none; }
}
/* Ниже 780 px блок доставки убираем целиком: одна иконка без подписи
   выглядит как недогруженный элемент. Выше — показываем с текстом. */
@media (max-width: 780px) {
  .aero-utility-bar__delivery { display: none; }
}
@media (max-width: 620px) {
  .aero-utility-bar__inner { gap: 10px; }
  .aero-utility-bar__delivery { display: none; }
  .aero-utility-bar__secondary { display: none; }
}

@media (max-width: 767.98px) {
  /* На телефоне карточка товара и бейдж гарантии становятся столбцом:
     в строке бейдж вставал рядом с карточкой и наезжал на неё. */
  .aero-home-hero__visual { min-height: 0; flex-direction: column; align-items: stretch; }
  .aero-home-hero__product { width: 100%; max-width: none; padding: 16px; gap: 14px; }
  .aero-home-hero__product-price { font-size: 19px; }
  .aero-home-hero__badge--warranty { position: static; align-self: flex-start; margin-top: 12px; display: inline-block; }
}

/* AERO-CONTENT-WIDTH — единая ширина контента: шапка, каталог-меню и секции
   главной должны выравниваться по одной сетке 1280 px, как в макете. */
.aero-site-header > .container,
.aero-utility-bar > .container,
#menu.aero-menu-bar > .container,
.aero-home .container { max-width: 1280px; }

/* AERO-CATALOG-LAYOUT — страница категории по макету Figma:
   узкая боковая колонка 220 px и сетка товаров 2 / 3 / 4 колонки. */
.aero-catalog-layout { display: grid; grid-template-columns: 220px minmax(0, 1fr); align-items: start; gap: 28px; }
.aero-catalog-content { min-width: 0; }
#column-left { min-width: 0; }

/* Заголовок раздела */
.aero-catalog-head { margin-bottom: 22px; }
.aero-catalog-head h1 { margin: 0 0 6px; color: var(--aero-brand); font-size: clamp(26px, 2.6vw, 34px); font-weight: 800; letter-spacing: -.03em; line-height: 1.1; }
.aero-catalog-head__count { margin: 0 0 10px; color: var(--aero-dim); font-size: 14px; font-weight: 650; }
.aero-catalog-head__text { max-width: 78ch; color: var(--aero-dim); font-size: 14.5px; line-height: 1.6; }
.aero-catalog-head__text p:last-child { margin-bottom: 0; }

/* Панель управления: слева счётчик, справа сортировка */
.aero-catalog-toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin-bottom: 18px; padding-bottom: 16px; border-bottom: 1px solid var(--aero-rim); }
.aero-catalog-toolbar__results { color: var(--aero-dim); font-size: 13.5px; font-weight: 650; }
.aero-catalog-toolbar__controls { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-left: auto; }
.aero-catalog-select { display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 12px; border: 1px solid var(--aero-rim); border-radius: 12px; background: #fff; }
.aero-catalog-select > span { color: var(--aero-dim); font-size: 12.5px; font-weight: 650; white-space: nowrap; }
.aero-catalog-select select { border: 0; background: none; color: var(--aero-brand); font-size: 13.5px; font-weight: 700; cursor: pointer; }
.aero-catalog-select select:focus-visible { outline: 2px solid var(--aero-accent); outline-offset: 2px; }
.aero-catalog-compare { display: inline-flex; align-items: center; gap: 7px; height: 40px; padding: 0 14px; border: 1px solid var(--aero-rim); border-radius: 12px; background: #fff; color: var(--aero-brand); font-size: 13px; font-weight: 700; text-decoration: none; }
.aero-catalog-compare:hover { border-color: var(--aero-accent); color: var(--aero-brand); }

/* Сетка товаров */
.aero-product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.aero-product-grid__cell { min-width: 0; display: flex; }
.aero-product-grid__cell > .product-thumb { width: 100%; }
.aero-catalog-pagination { display: flex; justify-content: center; margin-top: 26px; }

/* Боковая колонка с разделами */
#column-left .list-group,
#column-left .aero-catalog-sidebar { border-radius: 16px; }

@media (max-width: 1199.98px) {
  .aero-product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 991.98px) {
  .aero-catalog-layout { grid-template-columns: 1fr; gap: 18px; }
  .aero-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .aero-catalog-toolbar__controls { margin-left: 0; width: 100%; }
  .aero-catalog-select { flex: 1; }
}
@media (max-width: 575.98px) {
  .aero-product-grid { gap: 10px; }
  .aero-catalog-page .product-thumb h4 { font-size: 12.5px; }
  .aero-catalog-page .product-thumb .price-new { font-size: 16px; }
  .aero-product-card__cart { font-size: 12.5px; }
  .aero-catalog-compare { width: 100%; justify-content: center; }
}

/* AERO-CATALOG-GRID-FIX
   1) common.js на загрузке перезаписывает класс у #product-list (наследие
      переключателя «список/сетка»), поэтому сетку задаём по id — он не меняется.
   2) column_left приходит с бутстраповским col-3, который внутри грида
      сжимает колонку до 25% от её дорожки. Возвращаем полную ширину. */
#product-list.row,
#product-list { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin: 0; }
#product-list > * { width: auto; max-width: none; padding: 0; margin: 0; }
.aero-catalog-layout > #column-left,
.aero-catalog-side > #column-left { width: 100%; max-width: none; padding-left: 0; padding-right: 0; flex: none; }

@media (max-width: 1199.98px) { #product-list.row, #product-list { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 991.98px)  { #product-list.row, #product-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; } }
@media (max-width: 575.98px)  { #product-list.row, #product-list { gap: 10px; } }
/* AERO-TAP-CATALOG — зоны нажатия каталога на сенсорных экранах. */
@media (max-width: 767.98px) {
  .aero-catalog-page .breadcrumb-item a { display: inline-flex; align-items: center; min-height: 44px; }
  .aero-catalog-page .product-thumb h4 a { padding-block: 5px; }
  .aero-catalog-compare { min-height: 44px; }
  .page-link { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; }
  .aero-product-card__icon { width: 44px; min-width: 44px; height: 44px; }
  .aero-product-card__cart { min-height: 44px; }
}

/* AERO-PDP-BUY — зона покупки на карточке товара.
   Стандартная бутстраповская группа отдавала 425 px полю количества
   и 92 px кнопке. Меняем пропорции: количество компактное, покупка — главная. */
.aero-product-page #product .input-group { flex-wrap: nowrap; gap: 10px; }
.aero-product-page #product .input-group > .input-group-text { flex: 0 0 auto; min-height: 52px; border-radius: 12px; }
.aero-product-page #product #input-quantity { flex: 0 0 92px; width: 92px; min-height: 52px; border-radius: 12px; text-align: center; font-size: 16px; font-weight: 700; }
.aero-product-page #product #button-cart { flex: 1 1 auto; min-width: 0; min-height: 52px; border: 0; border-radius: 12px; background: var(--aero-cta); color: #fff; font-size: 16px; font-weight: 750; }
.aero-product-page #product #button-cart:hover { background: var(--aero-cta-hover); }

/* Галерея: главное фото на всю ширину, миниатюры — ровной сеткой под ним. */
.aero-product-page .image.magnific-popup { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; }
.aero-product-page .image.magnific-popup > a:first-of-type { display: grid; min-height: 0; aspect-ratio: 1 / 1; place-items: center; overflow: hidden; border-radius: 16px; }
.aero-product-page .image.magnific-popup > a:first-of-type img { width: 100%; height: 100%; object-fit: contain; }
/* Flex с явной шириной вместо grid: в этом контейнере раскладка сеткой
   вела себя непредсказуемо, товар получал ряды по 3-2-3 вместо 5. */
.aero-product-page .image.magnific-popup > div { display: flex; flex-wrap: wrap; gap: 10px; }
.aero-product-page .image.magnific-popup > div > a { flex: 0 0 calc((100% - 40px) / 5); max-width: calc((100% - 40px) / 5); }
.aero-product-page .image.magnific-popup > div a { display: block; width: auto; height: auto; overflow: hidden; aspect-ratio: 1 / 1; border: 1px solid var(--aero-rim); border-radius: 12px; background: var(--aero-surface); transition: border-color .18s ease; }
.aero-product-page .image.magnific-popup > div a:hover { border-color: var(--aero-accent); }
.aero-product-page .image.magnific-popup > div img { width: 100%; height: 100%; object-fit: contain; }
@media (max-width: 767.98px) {
  .aero-product-page #product .input-group { flex-wrap: wrap; }
  .aero-product-page #product #button-cart { flex-basis: 100%; }
  .aero-product-page .image.magnific-popup > div { gap: 8px; }
  .aero-product-page .image.magnific-popup > div > a { flex-basis: calc((100% - 24px) / 4); max-width: calc((100% - 24px) / 4); }
}

/* ═══ AERO-CARD-COMPONENT ═══════════════════════════════════════════
   Одна карточка товара на весь сайт: каталог, поиск, акции, «Рекомендуем»
   на главной. Раньше каждое место переопределяло её под себя, из-за чего
   кнопки не помещались, а название обрезалось на середине строки.
   Блок идёт последним и намеренно перекрывает прежние правила.          */

.product-thumb { display: flex; height: 100%; flex-direction: column; overflow: hidden; border: 1px solid var(--aero-rim); border-radius: 16px; background: #fff; box-shadow: none; transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.product-thumb:hover { transform: translateY(-2px); border-color: var(--aero-accent); box-shadow: 0 12px 28px rgba(7, 56, 67, .08); }
.product-thumb > .aero-card { display: flex; flex: 1; min-height: 0; flex-direction: column; margin: 0; }

/* Фото */
.product-thumb .image { position: relative; aspect-ratio: 1 / 1; margin: 0; overflow: hidden; background: var(--aero-surface); }
.product-thumb .image > a { display: block; width: 100%; height: 100%; }
.product-thumb .image img { width: 100%; height: 100%; object-fit: contain; }

/* Скидка слева сверху, быстрые действия справа сверху */
.aero-card__discount { position: absolute; top: 9px; left: 9px; z-index: 2; padding: 4px 8px; border-radius: 8px; background: #c4453a; color: #fff; font-size: 11.5px; font-weight: 750; }
.aero-card__quick { position: absolute; top: 9px; right: 9px; z-index: 2; display: flex; flex-direction: column; gap: 6px; }
.aero-card__icon { display: grid; width: 34px; height: 34px; place-items: center; padding: 0; border: 1px solid var(--aero-rim); border-radius: 10px; background: rgba(255, 255, 255, .92); color: var(--aero-dim); font-size: 13px; line-height: 1; cursor: pointer; transition: border-color .18s ease, color .18s ease, background-color .18s ease; }
.aero-card__icon:hover { border-color: var(--aero-accent); background: #fff; color: var(--aero-brand-mid); }

/* Текстовая часть */
.product-thumb .description { display: flex; min-height: 0; flex: 1; flex-direction: column; padding: 12px 13px 13px; }
.aero-card__art { color: var(--aero-dim); font-size: 11.5px; font-weight: 650; }
.product-thumb .description h4 { display: block; min-height: 0; margin: 5px 0 0; overflow: visible; font-size: 13.5px; line-height: 1.38; }
/* Высота задана ровно в две строки: даже если браузер не применит
   -webkit-line-clamp, третья строка обрезается по границе строки,
   а не пополам — как это было видно в каталоге. */
.product-thumb .description h4 a { display: -webkit-box; height: calc(2 * 1.38em); overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; line-clamp: 2; color: var(--aero-ink); text-decoration: none; }
.product-thumb .description h4 a:hover { color: var(--aero-brand-mid); }
.product-thumb .description p { display: none; }
.product-thumb .description .price { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px; margin-top: auto; padding-top: 12px; }
.product-thumb .description .price-new { color: var(--aero-brand); font-size: 18px; font-weight: 800; letter-spacing: -.02em; }
.product-thumb .description .price-old { margin: 0; color: var(--aero-dim); font-size: 13px; text-decoration: line-through; }

/* Покупка — единственное действие внизу, во всю ширину */
.aero-card__cart { width: 100%; min-height: 44px; margin-top: 12px; padding: 0 12px; border: 0; border-radius: 11px; background: var(--aero-cta); color: #fff; font-size: 13.5px; font-weight: 750; cursor: pointer; transition: background-color .18s ease; }
.aero-card__cart:hover { background: var(--aero-cta-hover); }

/* Прежний вариант дописывал подпись через ::after — в новой разметке
   у кнопки есть настоящий текст, иначе он задвоится. */
.aero-home-recommendations__products .product-thumb .button button:first-child::after { content: none; }

@media (max-width: 575.98px) {
  .product-thumb .description { padding: 11px 11px 12px; }
  .product-thumb .description h4 { font-size: 12.5px; }
  .product-thumb .description .price-new { font-size: 16px; }
  .aero-card__cart { font-size: 12.5px; }
  .aero-card__icon { width: 32px; height: 32px; }
}

/* ═══ AERO-CART-COMPONENT ══════════════════════════════════════════
   Корзина: список товаров карточками и закреплённый итог справа.
   Серверная логика и зацепки AJAX не менялись — только раскладка.   */

.aero-cart-page .aero-cart-wrap { display: block; }
.aero-cart-content { min-width: 0; }

.aero-cart-heading { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 16px; margin-bottom: 22px; }
.aero-cart-kicker { margin: 0 0 6px; color: var(--aero-dim); font-size: 11.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.aero-cart-heading h1 { margin: 0; color: var(--aero-brand); font-size: clamp(26px, 2.6vw, 34px); font-weight: 800; letter-spacing: -.03em; line-height: 1.1; }
.aero-cart-back { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin-left: auto; color: var(--aero-brand-mid); font-size: 14px; font-weight: 700; text-decoration: none; }
.aero-cart-back:hover { color: var(--aero-brand); }

.aero-cart-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; align-items: start; gap: 22px; }

/* Товар */
.aero-cart-items { display: flex; flex-direction: column; gap: 12px; }
.aero-cart-item { display: grid; grid-template-columns: 84px minmax(0, 1fr) auto auto 36px; align-items: center; gap: 16px; padding: 14px; border: 1px solid var(--aero-rim); border-radius: 16px; background: #fff; }
.aero-cart-item__media { display: block; overflow: hidden; width: 84px; height: 84px; border: 1px solid var(--aero-rim); border-radius: 12px; background: var(--aero-surface); }
.aero-cart-item__media img { width: 100%; height: 100%; object-fit: contain; }
.aero-cart-item__info { min-width: 0; }
.aero-cart-item__name { display: block; color: var(--aero-ink); font-size: 14.5px; font-weight: 700; line-height: 1.38; text-decoration: none; }
.aero-cart-item__name:hover { color: var(--aero-brand-mid); }
.aero-cart-item__meta { display: flex; flex-wrap: wrap; gap: 4px 12px; margin: 6px 0 0; color: var(--aero-dim); font-size: 12.5px; }
.aero-cart-item__warn { color: #b93b31; font-weight: 700; }

.aero-cart-item__qty { display: flex; align-items: center; gap: 6px; margin: 0; }
.aero-cart-item__qty input[type="text"] { width: 58px; height: 42px; padding: 0 8px; border: 1px solid var(--aero-rim); border-radius: 11px; background: #fff; color: var(--aero-brand); font-size: 15px; font-weight: 700; text-align: center; }
.aero-cart-item__qty input[type="text"]:focus-visible { outline: 2px solid var(--aero-accent); outline-offset: 1px; }
.aero-cart-item__qty button { display: grid; width: 42px; height: 42px; place-items: center; padding: 0; border: 1px solid var(--aero-rim); border-radius: 11px; background: #fff; color: var(--aero-brand-mid); font-size: 13px; cursor: pointer; transition: border-color .18s ease, background-color .18s ease; }
.aero-cart-item__qty button:hover { border-color: var(--aero-accent); background: var(--aero-surface); }

.aero-cart-item__money { min-width: 96px; text-align: right; }
.aero-cart-item__money strong { display: block; color: var(--aero-brand); font-size: 17px; font-weight: 800; letter-spacing: -.02em; }
.aero-cart-item__money span { display: block; margin-top: 3px; color: var(--aero-dim); font-size: 12px; }

.aero-cart-item__remove { display: grid; width: 36px; height: 36px; place-items: center; border: 1px solid var(--aero-rim); border-radius: 11px; background: #fff; color: var(--aero-dim); font-size: 13px; text-decoration: none; transition: border-color .18s ease, color .18s ease; }
.aero-cart-item__remove:hover { border-color: #e6b4ae; color: #b93b31; }
.aero-cart-item__minimum { grid-column: 1 / -1; margin: 0; color: #b93b31; font-size: 12.5px; }

/* Итог — закреплён при прокрутке */
.aero-cart-summary { position: sticky; top: 18px; display: flex; flex-direction: column; padding: 20px; border: 1px solid var(--aero-rim); border-radius: 16px; background: #fff; }
.aero-cart-totals { display: flex; flex-direction: column; gap: 10px; padding-bottom: 14px; border-bottom: 1px solid var(--aero-rim); }
.aero-cart-totals > div { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; color: var(--aero-dim); font-size: 14px; }
.aero-cart-totals > div strong { color: var(--aero-ink); font-weight: 700; }
.aero-cart-totals__grand { padding-top: 12px; border-top: 1px solid var(--aero-rim); }
.aero-cart-totals__grand span { color: var(--aero-ink); font-size: 15px; font-weight: 700; }
.aero-cart-totals__grand strong { color: var(--aero-brand); font-size: 23px; font-weight: 800; letter-spacing: -.02em; }
.aero-cart-checkout { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; margin-top: 16px; padding: 0 18px; border-radius: 12px; background: var(--aero-cta); color: #fff; font-size: 15.5px; font-weight: 750; text-decoration: none; transition: background-color .18s ease; }
.aero-cart-checkout:hover { background: var(--aero-cta-hover); color: #fff; }
.aero-cart-summary__note { display: flex; align-items: center; justify-content: center; gap: 7px; margin: 12px 0 0; color: var(--aero-dim); font-size: 12.5px; }
.aero-cart-summary__hint { margin: 10px 0 0; color: var(--aero-dim); font-size: 12.5px; line-height: 1.45; }

/* Купон, баллы и расчёт доставки */
.aero-cart-extras { margin-top: 26px; padding: 22px; border: 1px solid var(--aero-rim); border-radius: 16px; background: #fff; }
.aero-cart-extras h2 { margin: 0 0 6px; color: var(--aero-brand); font-size: 18px; font-weight: 800; }
.aero-cart-extras > p { margin: 0 0 16px; max-width: 74ch; color: var(--aero-dim); font-size: 14px; line-height: 1.55; }
.aero-cart-extras .accordion-item { border: 1px solid var(--aero-rim); border-radius: 12px; margin-bottom: 8px; overflow: hidden; }
.aero-cart-extras .accordion-button { border-radius: 0; background: #fff; color: var(--aero-ink); font-size: 14px; font-weight: 700; box-shadow: none; }
.aero-cart-extras .accordion-button:not(.collapsed) { background: var(--aero-surface); color: var(--aero-brand); }

/* Пустая корзина */
.aero-cart-empty { padding: 44px 24px; border: 1px solid var(--aero-rim); border-radius: 16px; background: #fff; text-align: center; }
.aero-cart-empty h1 { margin: 0 0 10px; color: var(--aero-brand); font-size: 28px; font-weight: 800; letter-spacing: -.03em; }
.aero-cart-empty p { color: var(--aero-dim); }
.aero-cart-empty .aero-cart-kicker { text-align: center; }

@media (max-width: 991.98px) {
  .aero-cart-layout { grid-template-columns: minmax(0, 1fr); }
  .aero-cart-summary { position: static; }
}
@media (max-width: 767.98px) {
  .aero-cart-item { grid-template-columns: 64px minmax(0, 1fr) 36px; gap: 12px; padding: 12px; }
  .aero-cart-item__media { width: 64px; height: 64px; }
  .aero-cart-item__info { grid-column: 2; }
  .aero-cart-item__remove { grid-column: 3; align-self: start; }
  .aero-cart-item__qty { grid-column: 2; }
  .aero-cart-item__money { grid-column: 3; min-width: 0; text-align: right; }
  .aero-cart-item__money strong { font-size: 15px; }
  .aero-cart-back { margin-left: 0; }
}

/* AERO-CART-FIX
   1) Старое правило вешало белую карточку на КАЖДЫЙ прямой блок #shopping-cart,
      включая заголовок страницы. Свои блоки несут оформление сами — снимаем.
   2) Мобильная раскладка товара задаётся именованными областями: раньше
      количество и сумма разъезжались по отдельным строкам.                    */
.aero-cart-page #shopping-cart > * { padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
.aero-cart-page #shopping-cart > .aero-cart-extras,
.aero-cart-page #shopping-cart > .aero-cart-empty { padding: 22px; border: 1px solid var(--aero-rim); border-radius: 16px; background: #fff; }
.aero-cart-page #shopping-cart > .aero-cart-empty { padding: 44px 24px; }

.aero-cart-item { position: relative; }

@media (max-width: 767.98px) {
  .aero-cart-heading { align-items: flex-start; flex-direction: column; gap: 12px; }
  .aero-cart-back { margin-left: 0; }

  .aero-cart-item {
    /* Первая колонка тянется по самому широкому в ней — это блок количества
       (поле плюс кнопка), иначе кнопка пересчёта сжималась до 15 px. */
    grid-template-columns: auto minmax(0, 1fr);
    grid-template-areas:
      "media info"
      "qty   money";
    align-items: start;
    gap: 14px 12px;
    padding: 12px 54px 12px 12px;
  }
  .aero-cart-item__media { grid-area: media; justify-self: start; width: 64px; height: 64px; }
  .aero-cart-item__info { grid-area: info; }
  .aero-cart-item__qty { grid-area: qty; align-self: center; }
  .aero-cart-item__money { grid-area: money; align-self: center; min-width: 0; text-align: right; }
  .aero-cart-item__money strong { font-size: 16px; }
  .aero-cart-item__remove { position: absolute; top: 10px; right: 10px; width: 44px; height: 44px; }
  .aero-cart-item__minimum { grid-column: 1 / -1; }
}

/* ═══ AERO-CHECKOUT-REFINE ═════════════════════════════════════════
   Оформление заказа: только оформление. Шаги, ApiShip, выбор ПВЗ,
   Т-Банк и подтверждение работают как прежде — разметка не менялась. */

/* Бутстраповские переменные подкрашивали кнопки и радиокнопки в синий
   #229AC8 из стандартной темы OCStore. Переводим на фирменные. */
:root {
  --bs-primary: #08717a;
  --bs-primary-rgb: 8, 113, 122;
  --bs-form-check-bg: #fff;
  --bs-btn-disabled-bg: #9dc3c7;
  --bs-btn-disabled-border-color: #9dc3c7;
}
.form-check-input:checked { border-color: var(--aero-cta); background-color: var(--aero-cta); }
.form-check-input:focus { border-color: var(--aero-accent); box-shadow: 0 0 0 3px rgba(76, 197, 202, .25); }
.btn-primary:disabled, .btn-primary.disabled { border-color: #9dc3c7; background: #9dc3c7; color: #fff; }

/* Поля ввода: единая высота и скругление на всех шагах */
.aero-checkout-page input[type="text"],
.aero-checkout-page input[type="email"],
.aero-checkout-page input[type="tel"],
.aero-checkout-page input[type="password"],
.aero-checkout-page select,
.aero-checkout-page textarea {
  min-height: 44px;
  border-radius: 12px;
  border-color: var(--aero-rim);
  font-size: 14.5px;
}
.aero-checkout-page textarea { min-height: 92px; }
.aero-checkout-page input:focus-visible,
.aero-checkout-page select:focus-visible,
.aero-checkout-page textarea:focus-visible { outline: 2px solid var(--aero-accent); outline-offset: 1px; }
.aero-checkout-page label { color: var(--aero-ink); font-size: 13px; font-weight: 650; }

/* Кнопки шагов и подтверждения */
.aero-checkout-page .btn-primary { min-height: 46px; border-radius: 12px; font-size: 14.5px; font-weight: 750; }
.aero-checkout-page .btn-light,
.aero-checkout-page .btn-secondary { min-height: 46px; border: 1px solid var(--aero-rim); border-radius: 12px; background: #fff; color: var(--aero-brand); font-weight: 700; }
.aero-checkout-page .btn-light:hover,
.aero-checkout-page .btn-secondary:hover { border-color: var(--aero-accent); background: var(--aero-surface); color: var(--aero-brand); }

/* Единое скругление у оболочки и карточек шагов */
.aero-checkout-shell { border-radius: 16px; }
.aero-checkout-page #checkout-register,
.aero-checkout-page #checkout-payment-address,
.aero-checkout-page #checkout-shipping-address,
.aero-checkout-page #checkout-shipping-method,
.aero-checkout-page #checkout-payment-method,
.aero-checkout-page #checkout-confirm { border-radius: 16px; }

/* Состав заказа справа */
.aero-checkout-summary { border-radius: 16px; }
.aero-checkout-summary .btn-primary { min-height: 52px; font-size: 15.5px; }

@media (max-width: 767.98px) {
  .aero-checkout-page .btn-primary,
  .aero-checkout-page .btn-light,
  .aero-checkout-page .btn-secondary { min-height: 48px; }
}

/* ═══ AERO-POLISH-2 ════════════════════════════════════════════════
   Правки по разбору владельца: корзина, шапка, крошки, оформление.  */

/* ── Корзина: рамка одна — у списка, товары делит разделитель ── */
.aero-cart-items { gap: 0; padding: 6px 18px; border: 1px solid var(--aero-rim); border-radius: 16px; background: #fff; }
.aero-cart-item { padding: 16px 0; border: 0; border-radius: 0; background: none; }
.aero-cart-item + .aero-cart-item { border-top: 1px solid var(--aero-rim-soft, #e7f1f2); }

/* Шаг количества вместо кнопки пересчёта */
.aero-cart-item__qty { gap: 0; }
.aero-cart-step { display: grid; width: 38px; height: 42px; place-items: center; padding: 0; border: 1px solid var(--aero-rim); background: #fff; color: var(--aero-brand); font-size: 17px; font-weight: 700; line-height: 1; cursor: pointer; transition: border-color .18s ease, background-color .18s ease; }
.aero-cart-step:first-of-type { border-radius: 11px 0 0 11px; }
.aero-cart-step:last-of-type { border-radius: 0 11px 11px 0; }
.aero-cart-step:hover { border-color: var(--aero-accent); background: var(--aero-surface); }
.aero-cart-item__qty input[type="text"] { width: 46px; border-radius: 0; border-inline: 0; }
.aero-cart-item__qty input[type="text"]:focus-visible { outline-offset: -2px; }

/* Купон под итогом */
.aero-coupon { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--aero-rim); }
.aero-coupon label { display: block; margin-bottom: 7px; color: var(--aero-dim); font-size: 12.5px; font-weight: 650; }
.aero-coupon__row { display: flex; gap: 8px; }
.aero-coupon__row input { flex: 1; min-width: 0; height: 44px; padding: 0 12px; border: 1px solid var(--aero-rim); border-radius: 12px; background: #fff; font-size: 14px; }
.aero-coupon__row input:focus-visible { outline: 2px solid var(--aero-accent); outline-offset: 1px; }
.aero-coupon__row button { height: 44px; padding: 0 16px; border: 1px solid var(--aero-rim); border-radius: 12px; background: var(--aero-surface); color: var(--aero-brand); font-size: 13.5px; font-weight: 700; white-space: nowrap; cursor: pointer; transition: border-color .18s ease, background-color .18s ease; }
.aero-coupon__row button:hover { border-color: var(--aero-accent); background: #fff; }
.aero-coupon__remove { margin-top: 8px; padding: 0; border: 0; background: none; color: var(--aero-dim); font-size: 12.5px; text-decoration: underline; cursor: pointer; }
.aero-coupon__remove:hover { color: #b93b31; }

/* ── Шапка: поиск во всю доступную ширину, иконки на одной линии ── */
.aero-site-header__row { align-items: center; }
.aero-site-header__search { flex: 1 1 auto; min-width: 0; }
.aero-site-header__search #search,
.aero-site-header__search .input-group { width: 100%; }
.aero-site-header__actions { display: flex; align-items: center; gap: 10px; }
.aero-site-header__actions > * { display: flex; align-items: center; }
.aero-header-icon,
.aero-site-header__actions #cart > * { display: inline-flex; align-items: center; justify-content: center; height: 44px; }

/* ── Меню: «Стартовые наборы» был мельче остальных ── */
#menu .navbar-nav > li > a,
#menu .navbar-nav > li > a:visited,
#menu .navbar-nav > li > a.dropdown-item { font-size: 16px; font-weight: 700; }
@media (max-width: 1199.98px) {
  #menu .navbar-nav > li > a,
  #menu .navbar-nav > li > a.dropdown-item { padding-inline: 12px; font-size: 15px; }
}

/* ── Хлебные крошки: тот же шрифт и приглушённый фирменный цвет ── */
.breadcrumb { margin: 0 0 18px; padding: 0; background: none; font-size: 13px; }
.breadcrumb-item a { color: var(--aero-dim); font-weight: 600; text-decoration: none; }
.breadcrumb-item a:hover { color: var(--aero-brand-mid); }
.breadcrumb-item + .breadcrumb-item::before { color: var(--aero-rim); }
.breadcrumb-item:last-child a { color: var(--aero-ink); }

/* ── Оформление: воздух под заголовком и без тёплой тени ── */
.aero-checkout-heading { margin-bottom: 26px; }
.aero-checkout-summary .btn-primary,
.aero-cart-checkout,
.aero-card__cart,
.aero-product-page #product #button-cart { box-shadow: none; }
.aero-checkout-summary .btn-primary:focus,
.aero-checkout-summary .btn-primary:active { box-shadow: 0 0 0 3px rgba(76, 197, 202, .3); }

@media (max-width: 767.98px) {
  .aero-cart-items { padding: 4px 12px; }
  .aero-cart-item { padding: 14px 0; }
  .aero-coupon__row { flex-wrap: wrap; }
  .aero-coupon__row button { width: 100%; }
}

/* AERO-HEADER-CART — корзина в шапке ведёт прямо на страницу корзины. */
.aero-header-cart { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border: 1px solid transparent; border-radius: 12px; color: var(--aero-brand); font-size: 19px; text-decoration: none; transition: border-color .18s ease, background-color .18s ease; }
.aero-header-cart:hover { border-color: var(--aero-rim); background: var(--aero-surface); color: var(--aero-brand); }
.aero-header-cart__count { position: absolute; top: 2px; right: 2px; display: grid; min-width: 18px; height: 18px; place-items: center; padding: 0 5px; border-radius: 9px; background: var(--aero-cta); color: #fff; font-size: 11px; font-weight: 750; line-height: 1; }
.aero-header-icon { width: 44px; height: 44px; border: 1px solid transparent; border-radius: 12px; color: var(--aero-brand); font-size: 19px; transition: border-color .18s ease, background-color .18s ease; }
.aero-header-icon:hover { border-color: var(--aero-rim); background: var(--aero-surface); color: var(--aero-brand); }

/* Поиск занимает всё свободное место между логотипом и иконками. */
.aero-site-header__row { display: flex; align-items: center; gap: 20px; }
.aero-site-header__row > #logo { flex: 0 0 auto; }
.aero-site-header__search { flex: 1 1 auto; min-width: 0; max-width: none; }
.aero-site-header__search #search { max-width: none; }
.aero-site-header__actions { flex: 0 0 auto; }

@media (max-width: 767.98px) {
  .aero-site-header__row { flex-wrap: wrap; gap: 12px; }
  .aero-site-header__search { order: 3; flex-basis: 100%; }
  .aero-site-header__actions { margin-left: auto; }
}

/* AERO-OPTIONAL — необязательные поля контактов под раскрывающейся строкой. */
.aero-optional { margin: 0 0 16px; border: 1px solid var(--aero-rim); border-radius: 12px; background: var(--aero-surface); }
.aero-optional > summary { padding: 12px 16px; color: var(--aero-brand); font-size: 13.5px; font-weight: 700; cursor: pointer; list-style: none; }
.aero-optional > summary::-webkit-details-marker { display: none; }
.aero-optional > summary::before { content: '⌄'; display: inline-block; margin-right: 8px; transition: transform .18s ease; }
.aero-optional[open] > summary::before { transform: rotate(180deg); }
.aero-optional > summary:focus-visible { outline: 2px solid var(--aero-accent); outline-offset: -2px; border-radius: 12px; }
.aero-optional__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; padding: 0 16px 4px; }
.aero-optional__note { margin: 10px 16px 14px; color: var(--aero-dim); font-size: 12.5px; line-height: 1.45; }
@media (max-width: 575.98px) { .aero-optional__grid { grid-template-columns: minmax(0, 1fr); } }

/* ═══ AERO-STANDARD ════════════════════════════════════════════════
   Один размер и цвет заголовков, один радиус у элементов управления.
   До этого h1 на оформлении был 46 px другого оттенка, чем 34 px
   на каталоге и в корзине, а радиусы гуляли между 10, 11 и 12 px.  */

.aero-catalog-head h1,
.aero-cart-heading h1,
.aero-checkout-heading h1,
.aero-cart-empty h1,
.aero-product-page h1,
.aero-information-page h1 {
  color: var(--aero-brand);
  font-size: clamp(26px, 2.6vw, 34px);
  font-weight: 800;
  letter-spacing: -.03em;
  line-height: 1.1;
}

/* Радиус элементов управления — 12 px везде */
.aero-card__cart,
.aero-card__icon,
.aero-cart-item__qty input[type="text"],
.aero-cart-item__remove,
.aero-product-card__icon { border-radius: 12px; }
.aero-cart-step:first-of-type { border-radius: 12px 0 0 12px; }
.aero-cart-step:last-of-type { border-radius: 0 12px 12px 0; }
.aero-cart-item__qty input[type="text"] { border-radius: 0; }

/* Кнопка поиска: была серой из стандартной темы */
.aero-site-header__search button,
.aero-site-header__search .btn {
  min-height: 47px;
  border: 1px solid var(--aero-rim);
  border-left: 0;
  border-radius: 0 12px 12px 0;
  background: var(--aero-surface);
  color: var(--aero-brand);
}
.aero-site-header__search button:hover,
.aero-site-header__search .btn:hover { background: var(--aero-cta); color: #fff; border-color: var(--aero-cta); }
.aero-site-header__search input,
.aero-site-header__search .form-control { min-height: 47px; border-radius: 12px 0 0 12px; border-color: var(--aero-rim); }

/* ═══ AERO-POLISH-3 ════════════════════════════════════════════════ */

/* ── Шапка: поле поиска по центру строки ── */
.aero-site-header__search { display: flex; align-items: center; }
.aero-site-header__search > * { width: 100%; margin: 0; }
.aero-site-header__search #search { display: flex; }

/* ── Хлебные крошки не примыкают к меню ── */
.breadcrumb { margin: 22px 0 20px; }

/* ── Карточка товара ── */
/* Фото вписывается целиком: по меньшей стороне, без обрезки. */
.aero-product-page .image.magnific-popup { position: relative; }
.aero-product-page .image.magnific-popup > a:first-of-type { border: 1px solid var(--aero-rim); background: var(--aero-surface); }
.aero-product-page .image.magnific-popup > a:first-of-type img { width: 100%; height: 100%; padding: 14px; object-fit: contain; }

/* Избранное и сравнение — поверх фото, как в каталоге. */
.aero-product-actions { position: absolute; top: 12px; right: 12px; z-index: 3; display: flex; flex-direction: column; gap: 8px; margin: 0; }

/* Покупка: количество и кнопка одной ровной строкой. */
.aero-buy { display: flex; align-items: stretch; flex-wrap: wrap; gap: 10px; margin-bottom: 14px; }
.aero-buy__qty { display: flex; flex: 0 0 auto; align-items: stretch; }
.aero-buy__step { display: grid; width: 46px; place-items: center; padding: 0; border: 1px solid var(--aero-rim); background: #fff; color: var(--aero-brand); font-size: 19px; font-weight: 700; line-height: 1; cursor: pointer; transition: border-color .18s ease, background-color .18s ease; }
.aero-buy__step:first-child { border-radius: 12px 0 0 12px; }
.aero-buy__step:last-child { border-radius: 0 12px 12px 0; }
.aero-buy__step:hover { border-color: var(--aero-accent); background: var(--aero-surface); }
.aero-buy__qty input { width: 58px; min-height: 52px; padding: 0 6px; border: 1px solid var(--aero-rim); border-inline: 0; border-radius: 0; background: #fff; color: var(--aero-brand); font-size: 16px; font-weight: 700; text-align: center; }
.aero-buy__qty input:focus-visible { outline: 2px solid var(--aero-accent); outline-offset: -2px; }
.aero-buy__cart { flex: 1 1 200px; min-height: 52px; padding: 0 20px; border: 0; border-radius: 12px; background: var(--aero-cta); color: #fff; font-size: 16px; font-weight: 750; cursor: pointer; transition: background-color .18s ease; }
.aero-buy__cart:hover { background: var(--aero-cta-hover); }
.aero-buy__cart:disabled { background: #9dc3c7; cursor: not-allowed; }

/* ── Купон: широкое поле, справа — галочка ── */
.aero-coupon { margin-top: 18px; padding-top: 18px; }
.aero-coupon label { margin-bottom: 9px; }
.aero-coupon__row { gap: 8px; }
.aero-coupon__row input { flex: 1 1 auto; }
.aero-coupon__row button { flex: 0 0 48px; width: 48px; padding: 0; font-size: 0; }
.aero-coupon__row button::after { content: '\2713'; font-size: 18px; font-weight: 700; }

/* ── Корзина: без лишних линий в итоге ── */
.aero-cart-totals { padding-bottom: 0; border-bottom: 0; }
.aero-cart-totals__grand { padding-top: 12px; border-top: 1px solid var(--aero-rim); }

/* ── Уведомления: свои, а не бутстраповские ── */
#alert { position: fixed; z-index: 1080; top: 84px; right: 20px; display: flex; width: min(360px, calc(100vw - 40px)); flex-direction: column; gap: 10px; }
#alert .alert { display: flex; align-items: flex-start; gap: 10px; margin: 0; padding: 14px 16px; border: 1px solid var(--aero-rim); border-radius: 14px; background: #fff; box-shadow: 0 14px 34px rgba(7, 56, 67, .14); color: var(--aero-ink); font-size: 14px; line-height: 1.45; }
#alert .alert i { margin-top: 2px; color: var(--aero-cta); }
#alert .alert-success { border-color: #bfe3d1; }
#alert .alert-success i { color: #2c7a5c; }
#alert .alert-danger { border-color: #efc9c4; }
#alert .alert-danger i { color: #b93b31; }
#alert .btn-close { margin-left: auto; opacity: .45; }
#alert .btn-close:hover { opacity: .9; }

/* ── Выбор: везде галочка, а не смесь кружков и птичек ── */
.aero-checkout-page .form-check-input[type="radio"],
.aero-checkout-page input[type="radio"] { width: 22px; height: 22px; margin-top: 0; border: 1px solid var(--aero-rim); border-radius: 7px; background-color: #fff; background-image: none; appearance: none; cursor: pointer; transition: border-color .18s ease, background-color .18s ease; }
.aero-checkout-page input[type="radio"]:checked { border-color: var(--aero-cta); background-color: var(--aero-cta); background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3 6-6'/%3e%3c/svg%3e"); background-repeat: no-repeat; background-position: center; background-size: 16px; }
.aero-checkout-page input[type="radio"]:focus-visible { outline: 2px solid var(--aero-accent); outline-offset: 2px; }

@media (max-width: 767.98px) {
  #alert { top: auto; right: 12px; bottom: 12px; left: 12px; width: auto; }
  .aero-buy__cart { flex-basis: 100%; }
  .aero-product-actions { top: 8px; right: 8px; }
}

/* AERO-SOLDOUT — карточка закончившегося товара. */
.aero-card__soldout { position: absolute; top: 9px; left: 9px; z-index: 2; padding: 4px 9px; border-radius: 8px; background: rgba(255, 255, 255, .94); border: 1px solid var(--aero-rim); color: var(--aero-dim); font-size: 11.5px; font-weight: 750; }
.product-thumb:has(.aero-card__soldout) .image img { opacity: .62; }
.aero-card__cart--notify { display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--aero-rim); background: var(--aero-surface); color: var(--aero-brand); text-decoration: none; }
.aero-card__cart--notify:hover { border-color: var(--aero-accent); background: #fff; color: var(--aero-brand); }

/* ═══ AERO-GLOBAL ══════════════════════════════════════════════════
   Общие правила вместо правок «по одной странице». Задают базовые
   ссылки, поля и вторичные кнопки во всей витрине, чтобы новые и
   ещё не переработанные экраны сразу выглядели своими.             */

/* Ссылки: нигде не должно остаться синего из стандартной темы. */
a { color: var(--aero-brand-mid); }
a:hover { color: var(--aero-brand); }
.aero-site-footer a { color: rgba(255, 255, 255, .82); }
.aero-site-footer a:hover { color: #fff; }
.breadcrumb-item a { color: var(--aero-dim); }
.breadcrumb-item a:hover { color: var(--aero-brand-mid); }

/* Поля ввода одинаковые на всех маршрутах, а не только в оформлении. */
.form-control,
.form-select,
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="password"],
input[type="search"],
select,
textarea {
  min-height: 44px;
  border-radius: 12px;
  border-color: var(--aero-rim);
  font-size: 14.5px;
}
textarea, textarea.form-control { min-height: 96px; }
.form-control:focus,
.form-select:focus { border-color: var(--aero-accent); box-shadow: 0 0 0 3px rgba(76, 197, 202, .22); }

/* Вторичные кнопки: контурные варианты стандартной темы. */
.btn-outline-secondary,
.btn-outline-primary,
.btn-secondary,
.btn-light {
  min-height: 44px;
  border: 1px solid var(--aero-rim);
  border-radius: 12px;
  background: #fff;
  color: var(--aero-brand);
  font-weight: 700;
}
.btn-outline-secondary:hover,
.btn-outline-primary:hover,
.btn-secondary:hover,
.btn-light:hover { border-color: var(--aero-accent); background: var(--aero-surface); color: var(--aero-brand); }

.btn-primary { min-height: 44px; border-radius: 12px; font-weight: 750; }
.btn-danger { border-radius: 12px; }

/* Заголовки второго уровня в общем ритме. */
#content h2 { color: var(--aero-brand); font-weight: 800; letter-spacing: -.02em; }
#content h3 { color: var(--aero-brand); font-weight: 750; }

/* Выпадающее меню каталога — подсветка в фирменной гамме. */
#menu .dropdown-menu { border: 1px solid var(--aero-rim); border-radius: 14px; box-shadow: 0 16px 40px rgba(7, 56, 67, .1); }
#menu .dropdown-item { border-radius: 8px; color: var(--aero-ink); }
#menu .dropdown-item:hover,
#menu .dropdown-item:focus { background: var(--aero-surface); color: var(--aero-brand-mid); }
#menu .dropdown-divider { border-color: var(--aero-rim); }

/* Вкладки на карточке товара. */
.nav-tabs { border-bottom-color: var(--aero-rim); }
.nav-tabs .nav-link { border: 0; color: var(--aero-dim); font-weight: 700; }
.nav-tabs .nav-link.active { border-bottom: 2px solid var(--aero-cta); background: none; color: var(--aero-brand); }

/* Постраничная навигация. */
.pagination .page-link { border-color: var(--aero-rim); border-radius: 10px; color: var(--aero-brand); }
.pagination .page-item.active .page-link { border-color: var(--aero-cta); background: var(--aero-cta); color: #fff; }

/* AERO-SIDEBAR-ACTIVE — активный раздел в боковой колонке брал синий
   из стандартной темы Bootstrap. Переводим на фирменный. */
#column-left .list-group-item { border-color: var(--aero-rim); color: var(--aero-ink); }
#column-left .list-group-item:hover { background: var(--aero-surface); color: var(--aero-brand-mid); }
#column-left .list-group-item.active { border-color: var(--aero-cta); background: var(--aero-cta); color: #fff; }
#column-left .list-group-item.active:hover { background: var(--aero-cta-hover); color: #fff; }

/* ═══ AERO-POLISH-4 ════════════════════════════════════════════════ */

/* ── Шапка: поле поиска ровно по центру строки ── */
.aero-site-header__row { align-items: center; }
.aero-site-header__search { align-self: center; }
.aero-site-header__search > *,
.aero-site-header__search #search { display: flex; align-items: center; margin: 0; }
.aero-site-header__search input,
.aero-site-header__search .form-control,
.aero-site-header__search button,
.aero-site-header__search .btn { height: 48px; min-height: 48px; }
#logo, #logo a, #logo img { display: block; margin: 0; }

/* ── Избранное и сравнение крупнее ── */
.aero-card__icon { width: 40px; height: 40px; font-size: 15px; }
.aero-product-actions .aero-card__icon { width: 46px; height: 46px; font-size: 17px; }

/* ── Галерея товара ── */
.aero-gallery { position: relative; display: flex; flex-direction: column; gap: 12px; }
.aero-gallery__stage { position: relative; overflow: hidden; border: 1px solid var(--aero-rim); border-radius: 16px; background: var(--aero-surface); }
.aero-gallery__main { display: block; width: 100%; padding: 0; border: 0; background: none; aspect-ratio: 1 / 1; cursor: zoom-in; }
.aero-gallery__main img { width: 100%; height: 100%; padding: 16px; object-fit: contain; transition: transform .35s ease; }
.aero-gallery__stage:hover .aero-gallery__main img { transform: scale(1.6); }
.aero-gallery__nav { position: absolute; top: 50%; z-index: 2; display: grid; width: 42px; height: 42px; place-items: center; padding: 0; transform: translateY(-50%); border: 1px solid var(--aero-rim); border-radius: 50%; background: rgba(255, 255, 255, .94); color: var(--aero-brand); font-size: 14px; cursor: pointer; opacity: 0; transition: opacity .18s ease, border-color .18s ease; }
.aero-gallery__stage:hover .aero-gallery__nav,
.aero-gallery__nav:focus-visible { opacity: 1; }
.aero-gallery__nav:hover { border-color: var(--aero-accent); }
.aero-gallery__nav--prev { left: 12px; }
.aero-gallery__nav--next { right: 12px; }
.aero-gallery__thumbs { display: flex; flex-wrap: wrap; gap: 10px; }
.aero-gallery__thumb { width: calc((100% - 40px) / 5); padding: 0; overflow: hidden; aspect-ratio: 1 / 1; border: 1px solid var(--aero-rim); border-radius: 12px; background: var(--aero-surface); cursor: pointer; transition: border-color .18s ease; }
.aero-gallery__thumb img { width: 100%; height: 100%; padding: 6px; object-fit: contain; }
.aero-gallery__thumb:hover { border-color: var(--aero-accent); }
.aero-gallery__thumb.is-active { border-color: var(--aero-cta); border-width: 2px; }

/* Просмотр во весь экран */
.aero-viewer { position: fixed; z-index: 1090; inset: 0; display: none; align-items: center; justify-content: center; padding: 40px 72px; background: rgba(7, 32, 38, .92); }
.aero-viewer.is-open { display: flex; }
.aero-viewer img { max-width: 100%; max-height: 100%; border-radius: 12px; background: #fff; object-fit: contain; }
.aero-viewer__close { position: absolute; top: 18px; right: 22px; width: 44px; height: 44px; padding: 0; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .14); color: #fff; font-size: 26px; line-height: 1; cursor: pointer; }
.aero-viewer__close:hover { background: rgba(255, 255, 255, .26); }
.aero-viewer__nav { position: absolute; top: 50%; display: grid; width: 52px; height: 52px; place-items: center; padding: 0; transform: translateY(-50%); border: 0; border-radius: 50%; background: rgba(255, 255, 255, .14); color: #fff; font-size: 18px; cursor: pointer; }
.aero-viewer__nav:hover { background: rgba(255, 255, 255, .26); }
.aero-viewer__nav--prev { left: 18px; }
.aero-viewer__nav--next { right: 18px; }
.aero-viewer__counter { position: absolute; bottom: 20px; left: 50%; margin: 0; transform: translateX(-50%); color: rgba(255, 255, 255, .8); font-size: 13px; }

/* ── Колонки карточки одной высоты ── */
.aero-product-page #content > .row.mb-3 { align-items: stretch; }
.aero-product-page #content > .row.mb-3 > .col-sm { display: flex; flex-direction: column; }

/* ── Разделитель перед покупкой не липнет ── */
.aero-buy { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--aero-rim); }
.aero-buy--soldout .aero-buy__cart { background: #9dc3c7; cursor: not-allowed; }
.aero-soldout-note { margin: 10px 0 0; color: var(--aero-dim); font-size: 13px; line-height: 1.5; }
.aero-product-facts li.is-soldout { color: #b93b31; font-weight: 700; }

/* ── Оформление: воздух вокруг купона и подтверждения ── */
#checkout-confirm .aero-coupon { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--aero-rim); }
#checkout-confirm #checkout-payment { margin-top: 16px; }
.aero-order-summary__totals { margin-bottom: 0; padding-bottom: 0; border-bottom: 0; }

/* ── Единый каркас страниц корзины и оформления ── */
.aero-cart-page .aero-cart-heading,
.aero-checkout-page .aero-checkout-heading { margin-bottom: 24px; }
.aero-checkout-shell { padding: 0; border: 0; background: none; box-shadow: none; }

@media (max-width: 767.98px) {
  .aero-gallery__thumb { width: calc((100% - 24px) / 4); }
  .aero-viewer { padding: 20px 12px 56px; }
  .aero-viewer__nav { width: 44px; height: 44px; }
  .aero-gallery__nav { opacity: 1; }
}

/* ═══ AERO-POLISH-5 ════════════════════════════════════════════════ */

/* Логотип в подвале вместо текстового названия. */
.aero-site-footer__logo { display: block; width: auto; max-width: 190px; max-height: 34px; object-fit: contain; }

/* «Рекомендуем» на главной использует ту же карточку, что и каталог:
   снимаем остатки прежнего оформления, которое ещё меняло отступы. */
.aero-home-recommendations__products .product-thumb .description { padding: 12px 13px 13px; min-height: 0; }
.aero-home-recommendations__products .product-thumb .description h4 { min-height: 0; margin: 5px 0 0; font-size: 13.5px; }
.aero-home-recommendations__products .product-thumb .image { height: auto; aspect-ratio: 1 / 1; }
.aero-home-recommendations__products .product-thumb .button { display: none; }
.aero-home-recommendations__products .row { --bs-gutter-x: 16px; }
/* AERO-SEARCH-CENTER — у формы поиска бутстраповский класс mb-3 давал
   нижний отступ 16 px, из-за чего поле сидело выше логотипа и иконок. */
.aero-site-header__search form,
.aero-site-header__search .input-group { margin: 0 !important; }
/* AERO-BUY-DISABLED — правило .aero-product-page #product #button-cart
   содержит два id и перебивает классовые селекторы, поэтому недоступное
   состояние задаём с такой же силой. */
.aero-product-page #product #button-cart:disabled,
.aero-product-page #product .aero-buy--soldout #button-cart { background: #9dc3c7; cursor: not-allowed; }
/* AERO-LOGO-CENTER — обёртка логотипа растягивается флекс-строкой до её
   высоты, а само изображение ниже и прижималось к верху. Центрируем. */
#logo { display: flex; align-items: center; }
#logo a { display: flex; align-items: center; }
/* AERO-SUMMARY-UNIFY — итоговый блок корзины и оформления был разным:
   340 против 381 px, рамка другого оттенка, радиус 18 против 16 и
   отступ 23 против 20. За основу берём ширину из оформления, а рамку,
   радиус и отступ — из общих токенов витрины. */
.aero-cart-layout { grid-template-columns: minmax(0, 1fr) 381px; }

.aero-cart-page .aero-cart-summary,
.aero-checkout-page .aero-checkout-summary__inner {
  padding: 20px;
  border: 1px solid var(--aero-rim);
  border-radius: 16px;
  background: #fff;
}
.aero-checkout-summary { padding: 0; border: 0; background: none; }

@media (max-width: 991.98px) {
  .aero-cart-layout { grid-template-columns: minmax(0, 1fr); }
}
/* AERO-LEFT-UNIFY — левая колонка отличалась от корзины: радиус 18 вместо
   16, полупрозрачный белый фон, чуть другой оттенок рамки и зазор колонок
   25 вместо 22 px. Селекторы повторяют силу правил из stylesheet.css. */
.aero-checkout-page .aero-checkout-layout,
.aero-cart-page .aero-cart-layout { column-gap: 22px; }

.aero-checkout-page .aero-checkout-stage {
  padding: 20px;
  border: 1px solid var(--aero-rim);
  border-radius: 16px;
  background: #fff;
}
/* AERO-TAP-FINAL — зоны нажатия после перехода на новый компонент карточки.
   Прежнее правило ссылалось на старое имя класса (.aero-product-card__icon)
   и перестало действовать, когда иконки переехали на фото.
   Сами иконки оставляем компактными, а область нажатия расширяем
   невидимой подложкой — иначе две кнопки по 44 px съедают половину фото. */
@media (max-width: 767.98px) {
  .aero-card__icon { position: relative; width: 38px; height: 38px; }
  .aero-card__icon::after { position: absolute; top: 50%; left: 50%; width: 44px; height: 44px; transform: translate(-50%, -50%); content: ''; }

  .breadcrumb-item a { display: inline-flex; align-items: center; min-height: 44px; }
  .product-thumb .description h4 a { padding-block: 5px; }
  .aero-card__quick { gap: 8px; }
}
/* AERO-COOKIE — уведомление о файлах cookie. Появляется один раз,
   выбор запоминается в браузере посетителя. */
.aero-cookie { position: fixed; z-index: 1085; right: 20px; bottom: 20px; left: 20px; display: flex; align-items: center; flex-wrap: wrap; gap: 18px; max-width: 760px; margin: 0 auto; padding: 18px 20px; border: 1px solid var(--aero-rim); border-radius: 16px; background: #fff; box-shadow: 0 18px 44px rgba(7, 56, 67, .16); }
.aero-cookie[hidden] { display: none; }
.aero-cookie__text { flex: 1 1 320px; min-width: 0; }
.aero-cookie__text b { display: block; margin-bottom: 5px; color: var(--aero-brand); font-size: 14.5px; font-weight: 750; }
.aero-cookie__text p { margin: 0; color: var(--aero-dim); font-size: 13px; line-height: 1.5; }
.aero-cookie__actions { display: flex; flex: 0 0 auto; gap: 10px; }
.aero-cookie__accept,
.aero-cookie__decline { min-height: 44px; padding: 0 18px; border-radius: 12px; font-size: 13.5px; font-weight: 700; cursor: pointer; transition: background-color .18s ease, border-color .18s ease; }
.aero-cookie__accept { border: 0; background: var(--aero-cta); color: #fff; }
.aero-cookie__accept:hover { background: var(--aero-cta-hover); }
.aero-cookie__decline { border: 1px solid var(--aero-rim); background: #fff; color: var(--aero-brand); }
.aero-cookie__decline:hover { border-color: var(--aero-accent); background: var(--aero-surface); }

@media (max-width: 575.98px) {
  .aero-cookie { right: 12px; bottom: 12px; left: 12px; padding: 16px; }
  .aero-cookie__actions { width: 100%; }
  .aero-cookie__accept,
  .aero-cookie__decline { flex: 1; padding: 0 10px; }
}
/* AERO-FILTERS — подбор по наличию, скидке и цене. Панель живёт в той же
   колонке, что и список разделов, и на телефоне раскрывается по кнопке. */
.aero-catalog-side { display: flex; min-width: 0; flex-direction: column; gap: 16px; }
.aero-filters { display: flex; flex-direction: column; gap: 14px; padding: 18px; border: 1px solid var(--aero-rim); border-radius: 16px; background: #fff; }
.aero-filters__head { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.aero-filters__head h2 { margin: 0; color: var(--aero-brand); font-size: 15px; font-weight: 800; }
.aero-filters__reset { color: var(--aero-dim); font-size: 12.5px; font-weight: 650; text-decoration: none; }
.aero-filters__reset:hover { color: #b93b31; }
.aero-filters__check { display: flex; align-items: center; gap: 10px; min-height: 32px; cursor: pointer; }
.aero-filters__check input { width: 22px; height: 22px; flex: 0 0 22px; margin: 0; border: 1px solid var(--aero-rim); border-radius: 7px; background-color: #fff; appearance: none; cursor: pointer; }
.aero-filters__check input:checked { border-color: var(--aero-cta); background-color: var(--aero-cta); background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3 6-6'/%3e%3c/svg%3e"); background-repeat: no-repeat; background-position: center; background-size: 16px; }
.aero-filters__check input:focus-visible { outline: 2px solid var(--aero-accent); outline-offset: 2px; }
.aero-filters__check span { color: var(--aero-ink); font-size: 14px; font-weight: 650; }
.aero-filters__label { display: block; margin-bottom: 8px; color: var(--aero-dim); font-size: 12.5px; font-weight: 650; }
.aero-filters__range { display: flex; gap: 8px; }
.aero-filters__range input { width: 100%; min-width: 0; min-height: 44px; padding: 0 10px; border: 1px solid var(--aero-rim); border-radius: 12px; font-size: 14px; }
.aero-filters__apply { min-height: 44px; border: 0; border-radius: 12px; background: var(--aero-cta); color: #fff; font-size: 14px; font-weight: 750; cursor: pointer; transition: background-color .18s ease; }
.aero-filters__apply:hover { background: var(--aero-cta-hover); }

@media (max-width: 991.98px) {
  .aero-catalog-side { gap: 12px; }
  .aero-filters__range input { min-height: 46px; }
}
/* AERO-FILTERS-FOLD — на телефоне панель занимала весь первый экран и
   отодвигала товары под сгиб. Сворачиваем её в строку-переключатель;
   скрытый флажок держит состояние без скрипта, имени у него нет, поэтому
   в адрес он не попадает. Если фильтр уже выбран — панель открыта. */
.aero-filters__switch { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.aero-filters__legend { margin: 0; color: var(--aero-brand); font-size: 15px; font-weight: 800; }
.aero-filters__body { display: flex; flex-direction: column; gap: 14px; }

@media (max-width: 991.98px) {
  .aero-filters { gap: 0; padding: 4px 16px; }
  .aero-filters__head { align-items: center; }
  .aero-filters__legend { display: flex; flex: 1 1 auto; align-items: center; justify-content: space-between; min-height: 48px; cursor: pointer; }
  .aero-filters__legend::after { width: 10px; height: 10px; border-right: 2px solid var(--aero-dim); border-bottom: 2px solid var(--aero-dim); margin-right: 4px; content: ""; transform: rotate(45deg) translate(-2px, -2px); transition: transform .18s ease; }
  .aero-filters__switch:checked ~ .aero-filters__head .aero-filters__legend::after { transform: rotate(-135deg) translate(-2px, -2px); }
  .aero-filters__body { display: none; }
  .aero-filters__switch:checked ~ .aero-filters__body { display: flex; padding-bottom: 16px; }
}

/* AERO-SOCIAL — каналы связи. Ссылки задаются в настройках магазина,
   пустое поле просто не выводится, поэтому число значков не фиксировано. */
.aero-social { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.aero-social__link { display: inline-flex; width: 44px; height: 44px; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.22); border-radius: 12px; color: #fff; font-size: 17px; text-decoration: none; transition: background-color .18s ease, border-color .18s ease; }
.aero-social__link:hover { border-color: transparent; background: var(--aero-accent); color: var(--aero-brand); }

.aero-utility-bar__social { display: none; align-items: center; gap: 12px; }
.aero-utility-bar__social a { color: inherit; font-size: 15px; line-height: 1; opacity: .82; text-decoration: none; transition: opacity .18s ease; }
.aero-utility-bar__social a:hover { opacity: 1; }
@media (min-width: 1200px) { .aero-utility-bar__social { display: inline-flex; } }

.aero-site-footer__contacts { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; }
.aero-site-footer__contacts-title { color: #fff; font-size: 13px; font-weight: 750; letter-spacing: .04em; text-transform: uppercase; }
.aero-site-footer__contacts a { display: inline-flex; align-items: center; gap: 9px; }
.aero-site-footer__contacts i { width: 16px; text-align: center; opacity: .7; }
.aero-site-footer__hours { opacity: .72; font-size: 13.5px; }

/* Правая группа сервисной строки: грид остаётся трёхколоночным,
   поэтому мессенджеры и кабинет живут в одной ячейке. */
.aero-utility-bar__right { display: flex; align-items: center; justify-content: flex-end; gap: 18px; }
@media (max-width: 767px) { .aero-utility-bar__right { gap: 0; } }
