/* RoketKRD — itiweb.ru. Original stylesheet written for this engine. */

:root {
  --blue: #0661ca;
  --blue-pill: #3881d5;
  --blue-hover: #3e8ee9;
  --btn: #5090da;
  --btn-hover: #4d89ce;
  --orange: #e96631;
  --red: #d2000e;
  --green: #38a47e;
  --text: #333;
  --muted: #696973;
  --muted-2: #8b9198;
  --dark: #3a4754;
  --page-bg: #f8f8f8;
  --card: #fff;
  --border: #e2e2e2;
  --footer-bg: #222;
  --container: 1280px;
  --radius: 20px;
  --shadow-hover: 0 10px 30px rgba(0, 0, 0, .1);
  --ease: .1s ease-out;
  --font: 'Roboto', Arial, sans-serif;
  --font-head: 'Montserrat', Arial, sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font: 400 16px/1.5 var(--font);
  color: var(--text);
  background: var(--page-bg);
  overflow-x: hidden;
}
img, video { max-width: 100%; display: block; }
a { color: var(--blue); text-decoration: none; transition: color var(--ease); }
a:hover { color: var(--blue-hover); }
h1, h2, h3, h4 { font-family: var(--font-head); font-weight: 700; margin: 0; line-height: 1.1; }
button { font: inherit; cursor: pointer; }
[hidden] { display: none !important; }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  padding: 20px; border: 0; border-radius: var(--radius);
  background: var(--btn); color: #f5f5f5;
  font: 400 14px/1 var(--font); text-transform: uppercase;
  transition: background var(--ease), box-shadow var(--ease), color var(--ease);
}
.btn:hover, .btn:focus-visible { background: var(--btn-hover); color: #f5f5f5; box-shadow: var(--shadow-hover); }
.btn:active { box-shadow: inset 0 0 5px rgba(0, 0, 0, .1); }

/* ---------- Header ---------- */
.hdr { position: relative; background: var(--blue); }
.hdr--compact { padding-top: 100px; }
.hdr-bar {
  position: fixed; z-index: 1000; top: 0; left: 50%;
  width: 100%; max-width: var(--container); height: 100px;
  transform: translateX(-50%);
  padding: 15px 0;
}
/* Full-width dark strip behind the fixed bar once the page is scrolled */
.hdr-bar::before {
  content: ''; position: absolute; z-index: -1; top: 0; bottom: 0; left: 50%; width: 100vw; margin-left: -50vw;
  background: #101828; box-shadow: 0 5px 50px -10px rgba(0, 0, 0, .05);
  opacity: 0; transition: opacity .25s ease-out;
}
.is-scrolled .hdr-bar::before, .hdr--compact .hdr-bar::before { opacity: 1; }
.hdr-bar__inner { display: flex; align-items: center; height: 100%; gap: 25px; padding: 0 20px 0 20px; }
.hdr-logo { flex: 0 0 160px; display: flex; align-items: center; }
.hdr-logo img { width: 124px; height: auto; }
.hdr-burger { display: none; }

.hdr-search { position: relative; flex: 1 1 auto; max-width: 736px; display: flex; height: 57px; border-radius: 20px; }
.hdr-search__input {
  flex: 1; min-width: 0; height: 100%; padding: 0 20px;
  border: 1px solid transparent; border-right: 0; border-radius: 20px 0 0 20px;
  background: #949494; color: #fff; font: 400 16px var(--font); outline: none;
  transition: border-color var(--ease);
}
.hdr-search__input::placeholder { color: rgba(255, 255, 255, .85); }
.hdr-search:focus-within .hdr-search__input { border-color: var(--blue); }
.hdr-search__btn {
  flex: 0 0 57px; height: 57px; border: 0; border-radius: 0 20px 20px 0;
  background: var(--blue); color: #fff; display: grid; place-items: center;
  transition: background var(--ease);
}
.hdr-search__btn:hover { background: var(--blue-hover); }
.hdr-search__results {
  position: absolute; top: calc(100% + 6px); left: 0; right: 57px; z-index: 5;
  background: #fff; border-radius: 15px; box-shadow: 0 10px 30px rgba(0, 0, 0, .15); overflow: hidden;
}
.hdr-search__results a { display: flex; align-items: center; gap: 12px; padding: 8px 14px; color: var(--text); font-size: 14px; }
.hdr-search__results a:hover { background: #f0f2f5; color: var(--blue); }
.hdr-search__results img { width: 48px; height: 36px; object-fit: cover; border-radius: 6px; }
.hdr-search__results .price { margin-left: auto; color: var(--red); white-space: nowrap; }
.hdr-search__results small { display: block; margin-top: 2px; color: var(--muted); font-size: 12px; }
.hdr-search__results .none { padding: 12px 14px; color: var(--muted); font-size: 14px; }

.hdr-wishlist { display: flex; flex-direction: column; align-items: center; gap: 2px; color: #fff; font-size: 14px; line-height: 1.5; }
.hdr-wishlist:hover { color: #fff; opacity: .85; }
.hdr-wishlist__icon { position: relative; display: block; line-height: 0; }
.count-badge {
  position: absolute; top: -6px; right: -10px; min-width: 18px; height: 18px; padding: 0 3px;
  border: 2px solid #f8f8f8; border-radius: 50px; background: var(--red); color: #f5f5f5;
  font: 400 11px/14px var(--font); text-align: center;
}
.hdr-phone { color: #fff; font: 400 22px/33px var(--font); white-space: nowrap; margin: -10px 0 0 auto; padding: 5px; }
.hdr-phone:hover { color: #fff; opacity: .85; }

.hdr-hero { display: block; }
.hdr-hero img { width: 100%; height: auto; }

.main-menu {
  position: relative; width: 100%; max-width: var(--container); height: 74px; margin: 0 auto;
  display: flex; align-items: center;
}
.main-menu::before {
  content: ''; position: absolute; z-index: 0; top: 0; bottom: 0; left: 50%; width: 100vw; margin-left: -50vw;
  background: url('/image/catalog/desing/bacgroud-line-right-white.png') right calc(100% - 76px) repeat-x;
  pointer-events: none;
}
.main-menu__list { position: relative; z-index: 1; }
.main-menu__list { display: flex; gap: 15px; width: 100%; margin: 0; padding: 0; list-style: none; }
.main-menu__item { flex: 1 1 auto; }
.main-menu__item > a {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  height: 44px; padding: 12px 10px; border-radius: 15px;
  background: var(--blue-pill); color: #f5f5f5;
  font: 700 13px/1.5 var(--font-head); text-transform: uppercase; white-space: nowrap;
  transition: color var(--ease), background-color var(--ease);
}
.main-menu__item > a:hover, .main-menu__item.is-active > a { background: var(--blue-hover); color: #fff; }
.main-menu__item--first > a { background: #fff; color: var(--blue); }
.main-menu__item--first > a:hover { background: #eee; color: var(--blue); }
.main-menu__icon { flex: 0 0 auto; }

/* ---------- Layout rows ---------- */
.grid-row { padding: var(--row-pad, 40px 0 0); }
.grid-row__inner {
  max-width: var(--container); margin: 0 auto; padding: 0 10px;
  display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 20px; align-items: start;
}
.grid-row__inner--fr { grid-auto-flow: row; gap: 40px; align-items: stretch; }
.grid-col--center { justify-content: center; }
.grid-col--center .title-module { margin-bottom: 21px; }
.grid-col--center .title-module__title, .grid-col--center .module-html { padding: 0; }
.grid-col { min-width: 0; display: flex; flex-direction: column; gap: 20px; }
.grid-row--title-bar .grid-row__inner { align-items: start; }
.grid-row--title-bar .grid-col:last-child:not(:first-child) { align-items: flex-end; }
.module { position: relative; }

.page-container { max-width: var(--container); margin: 0 auto; padding: 0 10px 60px; min-height: 40vh; }
.page-title { font: 700 30px/1.1 var(--font-head); color: var(--text); margin: 0 0 30px; }

/* ---------- Title module ---------- */
.title-module__title { font: 700 30px/1.1 var(--font-head); color: var(--text); padding: 0 10px; }
.title-module__subtitle { color: var(--muted-2); padding: 8px 10px 0; }
.title-module__divider { display: none; }

/* ---------- Swiper shared ---------- */
.swiper { position: relative; overflow: hidden; }
.swiper-pagination { position: relative; margin-top: 15px; display: flex; justify-content: center; gap: 8px; line-height: 0; }
.swiper-pagination-bullet {
  display: block; width: 10px; height: 10px; margin: 0 !important; border-radius: 50px; opacity: 1;
  background: #dbe8f0; cursor: pointer; transition: width var(--ease), background-color var(--ease);
}
.swiper-pagination-bullet:hover { background: #c2d6e6; }
.swiper-pagination-bullet-active { width: 40px; background: var(--blue); }
.swiper-pagination-bullet-active:hover { background: var(--blue); }
.swiper-buttons .swiper-button-prev, .swiper-buttons .swiper-button-next {
  width: 40px; height: 40px; margin: 0; border-radius: 50%;
  background: var(--blue); color: #fff; transition: background var(--ease), opacity var(--ease);
}
.swiper-buttons .swiper-button-prev::after, .swiper-buttons .swiper-button-next::after { font-size: 15px; font-weight: 700; }
.swiper-buttons .swiper-button-prev:not(.swiper-button-disabled):hover,
.swiper-buttons .swiper-button-next:not(.swiper-button-disabled):hover { background: var(--blue-hover); }
.swiper-button-disabled { opacity: .35; }
.swiper-buttons--top { position: absolute; top: -52px; right: 10px; display: flex; gap: 10px; }
.swiper-buttons--top .swiper-button-prev, .swiper-buttons--top .swiper-button-next { position: static; }

/* ---------- Gallery (3 photo carousels) ---------- */
.module-gallery { border-radius: 15px; overflow: hidden; aspect-ratio: 397 / 299; background: #ddd; }
.module-gallery .swiper, .module-gallery .swiper-wrapper, .module-gallery .swiper-slide { height: 100%; }
.module-gallery__item a { position: relative; display: block; height: 100%; overflow: hidden; }
.module-gallery__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease-out; }
.module-gallery__item a::before {
  content: ''; position: absolute; inset: 0; z-index: 1; background: rgba(0, 0, 0, .25);
  opacity: 0; transition: opacity var(--ease); pointer-events: none;
}
.module-gallery__item a:hover img { transform: scale(1.16); }
.module-gallery__item a:hover::before { opacity: 1; }
.module-gallery__title {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; pointer-events: none;
  padding: 20px 20px 10px; border-radius: 0 0 15px 15px;
  background: linear-gradient(0deg, rgba(0, 0, 0, .54) 0%, rgba(0, 0, 0, 0) 100%);
  color: #fff; font: 700 17px/1.2 var(--font-head);
}
.module-gallery .swiper-pagination { position: absolute; left: 0; right: 0; bottom: 40px; z-index: 4; margin: 0; }
/* Dots lying on top of photos are see-through so they don't cover the picture */
.module-gallery .swiper-pagination-bullet { width: 8px; height: 8px; background: rgba(255, 255, 255, .35); }
.module-gallery .swiper-pagination-bullet:hover { background: rgba(255, 255, 255, .85); }
.module-gallery .swiper-pagination-bullet-active { width: 8px; background: rgba(255, 255, 255, .75); }
.module-gallery .swiper-buttons { display: none; }
.module-gallery:hover .swiper-buttons { display: block; }
.module-gallery .swiper-buttons .swiper-button-prev, .module-gallery .swiper-buttons .swiper-button-next {
  z-index: 4; background: rgba(226, 226, 226, .4); border: 1px solid #f0f2f5; color: #fff;
}
.module-gallery .swiper-buttons .swiper-button-prev:not(.swiper-button-disabled):hover,
.module-gallery .swiper-buttons .swiper-button-next:not(.swiper-button-disabled):hover { background: rgba(226, 226, 226, .6); }

/* ---------- Videos carousel ---------- */
.module-videos .swiper { padding: 0 0 5px; }
.module-videos__item { display: flex; justify-content: center; }
.module-videos__item video {
  width: 100%; max-width: 289px; aspect-ratio: 289 / 527; object-fit: cover;
  border: 1px solid #eee; border-radius: 15px; background: #000;
}

.video-tile { position: relative; width: 100%; max-width: 289px; cursor: pointer; }
.video-tile video { max-width: none; }
/* Play button: dark see-through circle (about a third of the video's width) with a white rounded triangle */
.video-tile__play {
  position: absolute; top: 50%; left: 50%; display: grid; place-items: center; width: 34%; height: auto; aspect-ratio: 1 / 1;
  padding: 0; border: 0; border-radius: 50%; background: rgba(0, 0, 0, .45); color: #fff;
  -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
  transform: translate(-50%, -50%);
  transition: transform var(--ease), opacity .2s ease-out, background var(--ease);
}
.video-tile__play svg { width: 58%; height: 58%; }
.module-video .video-tile { margin: 0 auto; }
.module-video .video-tile video { width: 100%; aspect-ratio: 289 / 526; object-fit: cover; border: 1px solid #eee; border-radius: 15px; background: #000; }
.video-tile:hover .video-tile__play { transform: translate(-50%, -50%) scale(1.06); background: rgba(0, 0, 0, .55); }
.video-tile.is-playing .video-tile__play { opacity: 0; pointer-events: none; }

/* ---------- Catalog tiles ---------- */
/* 3 in a row, but (as on ogiz.ru) a tile is never narrower than 413px: on smaller laptops it becomes 2 in a row */
.module-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(413px, 1fr)); margin: 0 -10px; }
.module-tiles__item { padding: 10px; }
.module-tiles__body {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  height: 151px; padding: 10px 50px 10px 35px; border-radius: 100px; background: #fff;
  color: var(--text); transition: box-shadow .1s ease-in-out, transform .1s ease-in-out;
}
.module-tiles__body:hover { color: var(--text); box-shadow: 0 5px 30px -5px rgba(0, 0, 0, .25); }
/* As on ogiz.ru: the button text stays on one line («Комплекты рестайлинга»), the picture gives way when space is short. */
.module-tiles__label {
  flex: 0 0 auto; min-width: 160px; padding: 20px; border-radius: 20px; font: 400 14px/14px var(--font); text-transform: uppercase;
  text-align: center; white-space: nowrap; transition: background .1s ease-in-out, box-shadow .1s ease-in-out;
}
.module-tiles__body:hover .module-tiles__label { background: var(--btn-hover); box-shadow: var(--shadow-hover); }
.module-tiles__img { flex: 0 1 108px; min-width: 0; width: 108px; height: 107px; object-fit: contain; transition: transform .1s ease-in-out; }
.module-tiles__body:hover .module-tiles__img { transform: scale(1.06); }
/* Trial look (/catalog-preview/): picture on top, full-width button below */
.module-tiles--stacked { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.module-tiles--stacked .module-tiles__body { flex-direction: column-reverse; justify-content: flex-end; height: 100%; gap: 22px; padding: 28px 28px 26px; border-radius: 30px; }
.module-tiles--stacked .module-tiles__img { flex: none; width: 100%; height: 190px; }
.module-tiles--stacked .module-tiles__label { width: 100%; min-width: 0; white-space: normal; }

/* ---------- Product cards ---------- */
.product-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.module-products .product-grid { margin: -6px -15px 0; }
.product-layout { padding: 10px; }
.product-thumb {
  position: relative; height: 317px; overflow: hidden;
  border: 1px solid var(--border); border-radius: var(--radius); background: #fff;
  transition: box-shadow .075s ease-out;
}
.product-thumb:hover { box-shadow: var(--shadow-hover); z-index: 1; }
.product-thumb__image { position: absolute; inset: 0; display: block; overflow: hidden; background: #eee; }
.product-thumb__zoom { display: block; width: 100%; height: 100%; transition: transform .2s ease-out; }
.product-thumb:hover .product-thumb__zoom { transform: scale(1.12); }
.product-thumb__image img { width: 100%; height: 100%; object-fit: cover; }
.product-thumb__image .img-second { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .2s ease-out; }
.product-thumb:hover .has-second-image .img-first { visibility: hidden; }
.product-thumb:hover .has-second-image .img-second { visibility: visible; opacity: 1; }
.product-thumb__image::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(0, 0, 0, 0) 30%, rgba(0, 0, 0, .55) 100%);
}
.product-labels { position: absolute; top: 32px; left: 0; right: 5px; z-index: 2; display: flex; flex-direction: column; align-items: flex-end; gap: 5px; pointer-events: none; }
.product-label {
  padding: 5px 5px 6px; border-radius: 3px; background: var(--label-bg, var(--red)); color: #f5f5f5;
  font: 700 11px/11px var(--font); text-transform: uppercase;
}
.product-thumb__wish {
  position: absolute; top: 14px; left: 14px; z-index: 3; width: 38px; height: 38px;
  display: grid; place-items: center; border: 0; border-radius: 50%;
  background: rgba(255, 255, 255, .85); color: var(--muted-2);
  opacity: 0; transform: translateY(-4px); transition: opacity var(--ease), transform var(--ease), color var(--ease), background var(--ease);
}
.product-thumb:hover .product-thumb__wish, .product-thumb__wish.is-active { opacity: 1; transform: none; }
.product-thumb__wish:hover { color: var(--orange); background: #fff; }
.product-thumb__wish.is-active { color: var(--red); }
.product-thumb__caption { position: absolute; left: 0; right: 0; bottom: 20px; z-index: 2; padding: 0 25px; pointer-events: none; }
.product-thumb__caption a { pointer-events: auto; }
.product-thumb__name a { color: #fff; font: 700 22px/1.3 var(--font-head); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.product-thumb__name a:hover { color: #fff; }
.product-thumb__desc { margin-top: 2px; color: #fff; font-size: 13px; line-height: 1.5; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.product-thumb__price {
  display: inline-flex; align-items: baseline; gap: 12px; margin-top: 15px;
  padding: 5px 10px; border-radius: 15px; background: #fff; font-size: 26px; line-height: 1.5;
}
.price-new, .price-normal { color: var(--red); font-size: 26px; line-height: 1; }
.price-normal { color: var(--text); }
.price-old { color: #101828; font-size: 18px; line-height: 1; text-decoration: line-through; }

/* ---------- Info blocks (advantages) ---------- */
.module-info-blocks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 0 -10px; padding: 10px; }
.info-block {
  display: flex; flex-direction: column; align-items: center; text-align: center;
  min-height: 213px; padding: 20px 10px; border-radius: var(--radius); background: #fff;
  transition: box-shadow .075s ease-out;
}
.info-block:hover { box-shadow: var(--shadow-hover); }
.info-block__img { width: 125px; height: 95px; object-fit: contain; margin-bottom: 20px; }
.info-block__title { color: var(--muted); font: 700 18px/1.5 var(--font-head); }
.info-block__text { margin-top: 10px; color: var(--muted-2); font-size: 16px; line-height: 1.3; }

/* ---------- Testimonials ---------- */
.module-testimonials {
  position: relative; margin: 0 10px; padding: 70px 40px 30px;
  border-radius: var(--radius); background: #fff; transition: box-shadow var(--ease);
}
.module-testimonials:hover { box-shadow: var(--shadow-hover); }
.module-testimonials .swiper-slide { height: auto; }
.testimonial { height: 100%; display: flex; flex-direction: column; padding: 0 10px; text-align: center; }
.testimonial__rating { display: flex; justify-content: center; gap: 4px; margin-bottom: 25px; line-height: 0; }
.testimonial__rating img { width: auto; height: 26px; }
.testimonial__rating span { color: #d9d9d9; font-size: 26px; line-height: 1; }
.testimonial__rating span.on { color: #f9a54a; }
.testimonial__text { flex: 1; color: var(--text); font-size: 15px; line-height: 1.42; }
.testimonial__footer { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-top: 20px; text-align: left; }
.testimonial__author { font: 700 16px/1.2 var(--font-head); color: var(--muted); }
.testimonial__date { font: 400 14px/1.2 var(--font-head); color: var(--muted-2); white-space: nowrap; }
.module-testimonials .swiper-pagination { margin-top: 35px; }
.module-testimonials .swiper-pagination-bullet { background: #e2e2e2; }
/* Reviews page: all reviews as a 3-column grid of cards */
.module-testimonials-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; padding: 10px 0 70px; }
.testimonial-card {
  display: flex; flex-direction: column; padding: 20px; border-radius: var(--radius); background: #fff;
  text-align: center; font-size: 14px; line-height: 21px; transition: box-shadow .1s ease-in-out;
}
.testimonial-card:hover { box-shadow: var(--shadow-hover); }
.testimonial-card__rating { display: flex; justify-content: center; gap: 4px; margin: 20px 0; line-height: 0; }
.testimonial-card__rating img { width: 184px; height: 24px; }
.testimonial-card__rating span { color: #d9d9d9; font-size: 22px; line-height: 1; }
.testimonial-card__rating span.on { color: #f9a54a; }
.testimonial-card__text { flex: 1; color: var(--text); }
.testimonial-card__footer { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; margin-top: 25px; text-align: left; }
.testimonial-card__author { font: 700 15px/22.5px var(--font-head); color: var(--muted); }
.testimonial-card__date { margin-left: auto; font: 400 13px/13px var(--font-head); color: var(--muted); white-space: nowrap; }

.swiper-buttons--inside { position: absolute; z-index: 2; top: 25px; right: 30px; display: flex; gap: 10px; }
.swiper-buttons--inside .swiper-button-prev, .swiper-buttons--inside .swiper-button-next { position: static; }
.swiper-buttons--inside .swiper-button-disabled { display: none; }

/* ---------- About / rich text ---------- */
.module-html { padding: 0 20px; }
.rich-text { color: var(--text); font-size: 16px; line-height: 1.5; }
.rich-text p { margin: 0 0 1em; }
.rich-text img { height: auto; border-radius: 15px; }
.rich-text h2, .rich-text h3 { margin: 1.2em 0 .6em; }
.rich-text ul, .rich-text ol { padding-left: 1.3em; }
.rich-text table { border-collapse: collapse; width: 100%; }
.rich-text td, .rich-text th { border: 1px solid var(--border); padding: 8px 10px; }
.rich-text video { border-radius: 15px; }

/* ---------- Contacts ---------- */
/* Contacts column: title + phone/address + socials on one white card */
.grid-col:has(.module-contacts) { align-self: flex-start; gap: 0; padding: 40px; border-radius: 20px; background: #fff; }
.grid-col:has(.module-contacts) .title-module__title { padding: 0; }
.grid-col:has(.module-contacts) .title-module { margin-bottom: 41px; }
.module-contacts { display: flex; flex-direction: column; gap: 0; }
.contact-line { display: flex; align-items: center; gap: 10px; height: 40px; padding: 5px; color: var(--dark); transition: color .075s ease-out; }
.contact-line__icon { flex: 0 0 30px; color: var(--blue); line-height: 0; }
.contact-line__text { color: var(--dark); font: 400 20px/26px var(--font); transition: color .075s ease-out; }
a.contact-line:hover .contact-line__text { color: var(--blue); }
.icons-menu { display: flex; flex-wrap: wrap; gap: 0; margin: 15px 0 0; padding: 0; list-style: none; }
.icons-menu li { padding: 5px; }
.grid-col:has(.module-map) .module-map { padding: 0; }
.module-map iframe { height: 300px; border-radius: 0; }
.icons-menu a {
  width: 40px; height: 40px; display: grid; place-items: center;
  border: 1px solid #d4d1d1; border-radius: 50px; background: #eee; color: var(--blue);
  transition: background var(--ease), color var(--ease);
}
.icons-menu a:hover { background: var(--border); color: #257be0; }
.soc-icon { width: 30px; height: 30px; object-fit: contain; border-radius: 50%; }
.soc-icon--svg { width: 26px; height: 26px; }
span.soc-icon { display: grid; place-items: center; font-size: 12px; font-weight: 700; }
.module-map { padding: 0 10px; }
.module-map iframe { display: block; border: 0; border-radius: 15px; }

/* ---------- Slider (about / certificates) ---------- */
.module-slider { border-radius: var(--radius); overflow: hidden; background: #fff; }
.module-slider__item a { display: block; overflow: hidden; }
.module-slider__item img { width: 100%; height: auto; max-height: 560px; object-fit: contain; margin: 0 auto; transition: transform .3s ease-out; }
.module-slider__item a:hover img { transform: scale(1.04); }
.module-slider__caption {
  position: absolute; left: 0; right: 0; bottom: 0; padding: 30px 20px 14px; pointer-events: none;
  background: linear-gradient(0deg, rgba(0, 0, 0, .54), rgba(0, 0, 0, 0)); color: #fff; font: 700 17px/1.2 var(--font-head);
}
.module-slider .swiper-pagination { position: absolute; bottom: 14px; left: 0; right: 0; margin: 0; z-index: 2; }
.module-slider .swiper-buttons { display: none; }
.module-slider:hover .swiper-buttons { display: block; }
.module-slider .swiper-buttons .swiper-button-prev, .module-slider .swiper-buttons .swiper-button-next { background: rgba(226, 226, 226, .4); }
.module-slider .swiper-buttons div:not(.swiper-button-disabled):hover { background: rgba(226, 226, 226, .6); }

/* Landscape slider (about page): 492x378, big centred caption */
.module-slider:not(.module-slider--portrait) { border-radius: 15px; background: #222; }
.module-slider:not(.module-slider--portrait) .module-slider__item img { width: 100%; height: auto; max-height: none; aspect-ratio: 492 / 378; object-fit: cover; }
.module-slider:not(.module-slider--portrait) .module-slider__caption {
  bottom: 38px; padding: 0 20px; background: none; text-align: center;
  font: 400 30px/45px var(--font); text-shadow: 0 1px 6px rgba(0, 0, 0, .45);
}
.module-slider:not(.module-slider--portrait) .swiper-pagination { bottom: 14px; }
.module-slider:not(.module-slider--portrait) .swiper-pagination-bullet { width: 10px; height: 10px; background: rgba(255, 255, 255, .35); }
.module-slider:not(.module-slider--portrait) .swiper-pagination-bullet-active { width: 30px; background: rgba(255, 255, 255, .75); }

/* Title stacked above its cards in one column (about page) */
.grid-col > .title-module + .module-info-blocks { margin-top: 20px; }

/* "О нас в цифрах" */
.module-info-blocks--stats { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px; padding: 10px 20px; }
.grid-col > .title-module + .module-info-blocks--stats { margin-top: 26px; }
.module-info-blocks--stats .info-block { min-height: 156px; justify-content: center; padding: 25px 10px; border-radius: 15px; }
.module-info-blocks--stats .info-block__title { color: var(--blue); font: 700 50px/75px var(--font-head); }
.module-info-blocks--stats .info-block__text { margin-top: 0; font-size: 16px; line-height: 20.8px; }

/* ---------- Model banners ---------- */
.module-slider--portrait { background: transparent; border-radius: 15px; }
.module-slider--portrait .module-slider__item img { width: 100%; height: auto; max-height: none; aspect-ratio: 500 / 706; object-fit: cover; border-radius: 15px; }
.module-slider--portrait .module-slider__item a:hover img { transform: none; }
.module-slider--portrait .swiper-pagination { bottom: 10px; }
.module-slider--portrait .swiper-pagination-bullet { width: 8px; height: 8px; background: rgba(0, 0, 0, .15); }
.module-slider--portrait .swiper-pagination-bullet-active { width: 8px; background: rgba(6, 97, 202, .55); }
.module-slider--portrait .swiper-buttons .swiper-button-prev { left: 10px; }
.module-slider--portrait .swiper-buttons .swiper-button-next { right: 10px; }
.grid-row__inner--fr { padding: 0; }

.module-banners { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; margin: 0 -10px; padding: 10px 10px 0; }
.banner-card { position: relative; display: block; overflow: hidden; aspect-ratio: 407 / 300; border-radius: 15px; background: #ddd; color: #fff; }
.banner-card:hover { color: #fff; }
.banner-card__img { display: block; width: 100%; height: 100%; }
.banner-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease-out; }
.banner-card:hover .banner-card__img img { transform: scale(1.06); }
.banner-card__caption { position: absolute; left: 0; right: 0; bottom: 0; padding: 20px; color: #fff; font: 400 16px/20.8px var(--font); }

/* ---------- Steps ---------- */
.module-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; padding: 10px 0; }
.step-card {
  display: flex; flex-direction: column; min-height: 277px; padding: 20px 15px 15px;
  border-radius: 15px; background: var(--blue); color: #fff; transition: box-shadow .1s ease-in-out;
}
.step-card:hover { box-shadow: var(--shadow-hover); }
.step-card__title { margin: 0 0 10px; color: #fff; font: 700 17px/20.4px var(--font-head); }
.step-card__text { color: #fff; font-size: 16px; line-height: 24px; }
.step-card__text p { margin: 0; }
.step-card__num { margin-top: auto; padding-top: 10px; color: #fff; font: 400 60px/90px var(--font); }

/* Banner title with a photo background ("Почему это важно") */
.title-banner {
  min-height: 317px; padding: 100px 20px; border-radius: 15px; text-align: center;
  background: #222 center / cover no-repeat;
}
.title-banner__title { margin: 0 0 30px; color: #fff; font: 700 30px/33px var(--font-head); }
.title-banner__subtitle { max-width: 900px; margin: 0 auto; color: #fff; font: 700 16px/24px var(--font-head); }

/* Single portrait video next to text */
.module-video { display: flex; justify-content: center; padding: 10px 0 32px; }
.module-video video { width: 100%; max-width: 289px; aspect-ratio: 289 / 526; object-fit: cover; border: 1px solid #eee; border-radius: 15px; background: #000; }

/* Photo strip carousel ("Документы") */
.module-strip { position: relative; margin: 0 -10px; }
.module-strip .swiper-buttons--top { top: -50px; right: 10px; }
.swiper-buttons--hide-disabled .swiper-button-disabled { display: none; }
.module-strip__item { display: block; overflow: hidden; aspect-ratio: 305 / 430; background: #eee; }
.module-strip__item img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease-out; }
.module-strip__item:hover img { transform: scale(1.06); }
.module-strip .swiper-pagination { margin-top: 10px; }

.info-page--layout { padding-bottom: 0; }
.page-container--crumbs { min-height: 0; padding-bottom: 0; }

/* ---------- Footer ---------- */
.ftr { margin-top: 0; background: var(--footer-bg); color: #fff; }
.ftr__main { padding: 40px; }
.ftr__inner { max-width: var(--container); margin: 0 auto; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ftr__col { padding: 0 20px 20px; }
.ftr__col--contacts { padding: 0; }
.ftr__col--logo { display: flex; justify-content: center; align-items: flex-start; }
.ftr__col--logo img { width: 195px; height: auto; }
.ftr__title { color: #fff; font: 700 30px/36px var(--font-head); margin: 0 0 15px; padding-bottom: 16px; }
.ftr__links { list-style: none; margin: 0; padding: 0; }
.ftr__links a { display: flex; align-items: center; padding: 1px 20px 0 0; color: #fff; font-size: 18px; line-height: 27px; transition: color .08s ease-out; }
.ftr__links a::before {
  content: ''; flex: 0 0 auto; width: 6px; height: 6px; margin-right: 5px;
  border: 1px solid currentColor; border-radius: 50%;
}
.ftr__links a:hover { color: #eee; }
.ftr__col--contacts { text-align: center; }
.ftr__col--contacts p { margin: 0 0 15px; color: #fff; }
.ftr__phone { display: inline-block; color: #fff; font: 400 24px/36px monospace; white-space: pre-wrap; }
.ftr__phone:hover { color: #fff; opacity: .85; }
.ftr__address { color: #fff; font: 400 18px/27px monospace; white-space: pre-wrap; }
.ftr__col--contacts .icons-menu { justify-content: center; margin-top: 0; padding-top: 15px; }
.ftr__col--contacts .icons-menu a { border-color: #fff; color: var(--blue); }
.ftr__col--contacts .icons-menu a:hover { color: #257be0; }
.ftr__col--contacts .soc-icon { width: 38px; height: 38px; }
.icons-menu .soc-icon--svg { width: 30px; height: 30px; }
.icons-menu .soc-icon--youtube { width: 20px; height: 24px; }
.ftr__bottom { padding: 20px 20px 15px; border-top: 1px solid rgba(255, 255, 255, .06); }
.ftr__bottom .ftr__inner { display: block; color: #8b9198; font-size: 13px; line-height: 1.5; text-align: center; }

/* ---------- Floating side socials ---------- */
.side-menu {
  position: fixed; z-index: 990; top: 300px; right: 15px;
  transition: opacity .3s ease-out, transform .3s ease-out;
}
.side-menu--on-scroll { opacity: 0; transform: translateX(80px); pointer-events: none; }
.side-menu.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.side-menu ul { list-style: none; margin: 0; padding: 0; }
.side-menu a { width: 53px; height: 57px; display: grid; place-items: center; border-radius: 50px; color: var(--blue); transition: transform var(--ease); }
.side-menu a:hover { transform: scale(1.08); }
.side-menu .soc-icon--lg { width: 43px; height: 43px; object-fit: cover; border-radius: 50%; }
.side-menu .soc-icon--svg.soc-icon--lg { width: 42px; height: 42px; }

/* ---------- Scroll to top ---------- */
.scroll-top {
  position: fixed; z-index: 1001; right: 20px; bottom: 20px; padding: 7px; border: 0; border-radius: 3px;
  background: var(--blue-hover); color: #f5f5f5; line-height: 0;
  opacity: 0; visibility: hidden; transform: translateY(10px);
  transition: opacity .2s ease-out, transform .2s ease-out, visibility .2s, background var(--ease);
}
.scroll-top.is-visible { opacity: 1; visibility: visible; transform: none; }
.scroll-top:hover { background: var(--orange); }
/* Phones and tablets have their own "scroll up" in the browser, so ours is not shown on touch screens at any width
   (turned sideways or in "desktop version" the page is wider than 767px). */
@media (hover: none) and (pointer: coarse) {
  .scroll-top { display: none !important; }
  .swiper-buttons { display: none !important; } /* same for slider arrows on any touch screen (phone sideways, tablet) */
}

/* ---------- Cookie notice ---------- */
.cookie-note {
  position: fixed; z-index: 1002; left: 50%; bottom: 20px; transform: translateX(-50%);
  width: calc(100% - 40px); max-width: var(--container);
  padding: 15px 50px 20px 20px; border-radius: 7px;
  background: rgba(0, 0, 0, .9); color: #f5f5f5; font-size: 16px; line-height: 24px;
  animation: fade .2s ease-out;
}
.cookie-note__text p { margin: 0; }
.cookie-note__text a { display: inline-block; color: var(--muted); transition: color var(--ease); }
.cookie-note__text a:hover { color: #f5f5f5; }
.cookie-note__btn {
  position: absolute; top: 0; right: 0; width: 35px; height: 35px; margin: 10px; padding: 0; border: 0; border-radius: 20px;
  background: var(--green); color: #f5f5f5; font: 400 14px/14px var(--font); transition: filter var(--ease), box-shadow var(--ease);
}
.cookie-note__btn:hover { filter: brightness(1.1); box-shadow: var(--shadow-hover); }

/* ---------- Popup / forms ---------- */
.popup { position: fixed; inset: 0; z-index: 2000; display: grid; place-items: center; padding: 16px; }
.popup__backdrop { position: absolute; inset: 0; background: rgba(0, 0, 0, .55); animation: fade .15s ease-out; }
.popup__box {
  position: relative; width: 100%; max-width: 520px; max-height: calc(100vh - 32px); overflow: auto;
  padding: 30px; border-radius: var(--radius); background: #fff; box-shadow: 0 20px 60px rgba(0, 0, 0, .3);
  animation: pop .18s ease-out;
}
.popup__close { position: absolute; top: 10px; right: 14px; border: 0; background: none; font-size: 30px; line-height: 1; color: var(--muted-2); transition: color var(--ease); }
.popup__close:hover { color: var(--orange); }
.popup__title { font: 700 24px/1.2 var(--font-head); margin: 0 0 20px; }
@keyframes fade { from { opacity: 0; } }
@keyframes pop { from { opacity: 0; transform: translateY(12px) scale(.98); } }
.form__row { display: flex; flex-direction: column; gap: 6px; margin-bottom: 15px; font-size: 14px; }
.form__row b { color: var(--red); font-weight: 400; }
.form input:not([type=radio]):not([type=checkbox]), .form textarea, .search-page-form input, .products-filter select {
  width: 100%; padding: 12px 15px; border: 1px solid var(--border); border-radius: 12px;
  font: 400 15px var(--font); color: var(--text); background: #fff; outline: none; transition: border-color var(--ease);
}
.form input:focus, .form textarea:focus, .search-page-form input:focus { border-color: var(--blue); }
.form textarea { resize: vertical; }
.form__hp { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; }
.form__agree { display: flex; gap: 8px; align-items: flex-start; margin-bottom: 15px; font-size: 13px; color: var(--muted); }
.form__msg { min-height: 1em; margin-bottom: 10px; font-size: 14px; }
.form__msg.is-error { color: var(--red); }
.form__msg.is-ok { color: var(--green); }
.rating-input { display: inline-flex; flex-direction: row-reverse; justify-content: flex-end; gap: 2px; }
.rating-input input { position: absolute; opacity: 0; pointer-events: none; }
.rating-input label { font-size: 28px; line-height: 1; color: #d9d9d9; cursor: pointer; transition: color var(--ease); }
.rating-input label:hover, .rating-input label:hover ~ label, .rating-input input:checked ~ label { color: #f5b301; }

.toast {
  position: fixed; z-index: 2100; left: 50%; bottom: 30px; transform: translateX(-50%);
  padding: 14px 22px; border-radius: 15px; background: #222; color: #fff; font-size: 14px;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .25); animation: pop .18s ease-out;
}
.toast a { color: #9cc3ff; }

/* ---------- Breadcrumbs / inner pages ---------- */
.breadcrumbs { position: relative; }
.breadcrumbs::before { content: ''; position: absolute; z-index: -1; top: 0; bottom: 0; left: 50%; width: 100vw; margin-left: -50vw; background: #fff; }
.breadcrumbs ul { display: flex; flex-wrap: wrap; align-items: center; min-height: 44px; list-style: none; margin: 0; padding: 10px 10px 10px 0; font-size: 13px; line-height: 19.5px; }
.page-container:not(.page-container--crumbs) > .breadcrumbs { margin-bottom: 20px; }
.breadcrumbs li { display: flex; align-items: center; }
.breadcrumbs li + li::before { content: '→'; padding: 0 5px; color: var(--muted); font-size: 16px; line-height: 24px; }
.breadcrumbs a, .breadcrumbs span { color: var(--muted); transition: color var(--ease); }
.breadcrumbs a:hover { color: var(--orange); }
.empty-text { color: var(--muted); margin: 0 0 20px; }
.buttons { margin-top: 20px; }
.products-filter { display: flex; justify-content: flex-end; margin-bottom: 10px; padding: 0 10px; }
.products-filter__sort { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--muted); }
.products-filter select { width: auto; padding: 8px 12px; }
.search-page-form { display: flex; gap: 10px; max-width: 640px; margin-bottom: 30px; }
.search-page-form .btn { padding: 0 24px; }
.info-page .rich-text { max-width: 1200px; }

/* ---------- Product page ---------- */
.product-info { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 40px; align-items: start; }
.product-gallery { position: relative; min-width: 0; }
.product-gallery__main { border-radius: var(--radius); background: #fff; }
.product-gallery__main .swiper-slide a { display: block; aspect-ratio: 4 / 3; }
.product-gallery__main img { width: 100%; height: 100%; object-fit: cover; }
.product-gallery__main .swiper-pagination { position: absolute; bottom: 12px; left: 0; right: 0; margin: 0; z-index: 2; }
.product-gallery__main .swiper-pagination-bullet { background: rgba(255, 255, 255, .35); }
.product-gallery__main .swiper-pagination-bullet:hover { background: rgba(255, 255, 255, .85); }
.product-gallery__main .swiper-pagination-bullet-active { background: rgba(255, 255, 255, .75); }
.product-gallery__main .swiper-buttons { display: none; }
.product-gallery__main:hover .swiper-buttons { display: block; }
.product-gallery__main .swiper-buttons .swiper-button-prev, .product-gallery__main .swiper-buttons .swiper-button-next { background: rgba(226, 226, 226, .4); }
.product-gallery__main .swiper-buttons div:not(.swiper-button-disabled):hover { background: rgba(226, 226, 226, .6); }
.product-gallery__thumbs { margin-top: 10px; }
.product-gallery__thumbs .swiper-slide { width: 104px; height: 80px; border-radius: 10px; overflow: hidden; opacity: .6; cursor: pointer; border: 2px solid transparent; transition: opacity var(--ease), border-color var(--ease); }
.product-gallery__thumbs .swiper-slide:hover { opacity: 1; }
.product-gallery__thumbs .swiper-slide-thumb-active { opacity: 1; border-color: var(--blue); }
.product-gallery__thumbs img { width: 100%; height: 100%; object-fit: cover; }
.product-gallery .product-labels { top: 20px; }
.product-details__title { font: 700 30px/1.2 var(--font-head); margin: 0 0 20px; }
.product-stats { list-style: none; margin: 0 0 20px; padding: 0; font-size: 15px; color: var(--muted); }
.product-stats li { padding: 3px 0; }
.product-stats b { color: var(--text); font-weight: 700; }
.in-stock { color: var(--green); }
.out-of-stock { color: var(--red); }
.product-price { display: flex; align-items: baseline; gap: 14px; margin: 0 0 25px; }
.product-price .price-new, .product-price .price-normal { font-size: 34px; }
.product-price .price-old { font-size: 20px; }
.product-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.btn-wishlist-lg {
  display: inline-flex; align-items: center; gap: 8px; padding: 18px 22px; border: 1px solid var(--border); border-radius: var(--radius);
  background: #fff; color: var(--muted); font: 400 14px var(--font); text-transform: uppercase; transition: color var(--ease), border-color var(--ease);
}
.btn-wishlist-lg:hover { color: var(--orange); border-color: var(--orange); }
.btn-wishlist-lg.is-active { color: var(--red); border-color: var(--red); }
.product-tabs { margin-top: 50px; }
.product-tabs__nav { display: flex; flex-wrap: wrap; gap: 30px; border-bottom: 1px solid var(--border); margin-bottom: 25px; }
.product-tabs__nav button {
  padding: 0 0 12px; border: 0; background: none; color: var(--muted-2); font: 400 22px var(--font);
  border-bottom: 3px solid transparent; margin-bottom: -1px; transition: color var(--ease), border-color var(--ease);
}
.product-tabs__nav button:hover, .product-tabs__nav button.is-active { color: var(--text); }
.product-tabs__nav button.is-active { border-bottom-color: var(--blue); }
.product-tabs__panel { display: none; }
.product-tabs__panel.is-active { display: block; }
.attr-table { width: 100%; max-width: 800px; border-collapse: collapse; font-size: 15px; }
.attr-table td { padding: 10px 12px; border-bottom: 1px solid var(--border); }
.attr-table td:first-child { color: var(--muted); width: 45%; }
.attr-table__group th { padding: 18px 12px 8px; text-align: left; font: 700 16px var(--font-head); }
.related { margin-top: 60px; }
.related .title-module { margin-bottom: 20px; }

/* ---------- "Наши работы" (models → restylings) ---------- */
.works-layout {
  max-width: var(--container); margin: 0 auto; padding: 20px 20px 20px;
  display: grid; grid-template-columns: minmax(0, 940px) 300px; align-items: start;
}
.works-content { min-width: 0; padding: 20px; border-radius: 15px; background: #fff; }
.works-title {
  margin: 10px 0 30px; border-bottom: 1px solid var(--border);
  color: var(--text); font: 700 30px/36px var(--font-head);
}
.works-cover img, .works-photo img { width: 100%; border-radius: 15px; object-fit: cover; }
.works-cover img { aspect-ratio: 900 / 506; }
.works-photo { display: block; }
.works-photo img { aspect-ratio: 900 / 692; }
.works-description { margin-top: 20px; }
.works-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 15px -10px -10px; }
.works-grid__cell { padding: 10px; }
.work-card {
  display: flex; flex-direction: column; height: 100%; overflow: hidden;
  border-radius: 15px; background: #ededed; color: var(--dark); transition: box-shadow var(--ease);
}
.work-card:hover { color: var(--dark); box-shadow: var(--shadow-hover); }
.work-card__img { display: block; overflow: hidden; aspect-ratio: 287 / 221; background: #ddd; }
.work-card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease-out; }
.work-card:hover .work-card__img img { transform: scale(1.06); }
.work-card__name { margin: 12px 0; padding: 0 12px; text-align: center; font: 700 18px/23.4px var(--font-head); }
.work-card:hover .work-card__name { color: var(--blue); }
.work-card__desc { margin-top: auto; padding: 0 15px; color: var(--muted); font-size: 16px; line-height: 20.8px; }
.works-stats { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 15px 0 35px; color: var(--muted); font-size: 16px; line-height: 24px; }
.works-stats__item { display: inline-flex; align-items: center; gap: 5px; color: var(--muted); }
a.works-stats__item:hover { color: var(--orange); }
.works-video { position: relative; overflow: hidden; aspect-ratio: 900 / 506; border-radius: 15px; background: #000; }
.works-video iframe, .works-video video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.works-album { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 21px; }
.works-album__item { display: block; padding: 10px; }
.works-album__item img { width: 100%; aspect-ratio: 280 / 187; object-fit: cover; transition: opacity var(--ease); }
.works-album__item:hover img { opacity: .85; }
.works-side { padding: 0 0 30px 30px; }
.works-menu__item {
  display: flex; align-items: center; min-height: 38px; padding: 7px 7px 7px 0; border-bottom: 1px solid #eee;
  color: var(--muted); font-size: 16px; line-height: 24px; transition: color var(--ease);
}
.works-menu__item::before { content: '›'; margin-right: 6px; font-size: 18px; line-height: 1; }
.works-menu__item:hover, .works-menu__item.is-active { color: var(--orange); }

/* ---------- Category page (filter + product grid) ---------- */
.category-wrap { max-width: var(--container); margin: 0 auto; padding: 20px; }
.category-content { min-width: 0; padding: 20px; border-radius: 15px; background: #fff; }
.category-description { margin-bottom: 20px; }
.filter { margin: 20px 20px 20px; padding-bottom: 26px; }
.filter__title { display: flex; align-items: center; justify-content: space-between; min-height: 36px; margin: 0 0 15px; color: var(--text); font: 700 17px/20.4px var(--font-head); }
.filter__reset { padding: 8px 14px; font-size: 12px; }
.filter__panel { margin-top: 10px; }
.filter__head {
  display: flex; align-items: center; justify-content: space-between; padding: 15px; list-style: none; cursor: pointer;
  border: 1px solid var(--border); border-radius: 15px; background: #e1e1e1;
  color: var(--muted); font: 700 16px/24px var(--font-head); text-transform: uppercase; transition: color var(--ease);
}
.filter__head::-webkit-details-marker { display: none; }
.filter__head::after { content: '+'; font: 700 22px/1 var(--font); color: currentColor; }
.filter__head:hover { color: var(--blue); }
.filter__panel[open] > .filter__head { color: var(--blue-hover); }
.filter__panel[open] > .filter__head::after { content: '−'; }
.filter__body { max-height: 250px; overflow-y: auto; padding: 5px 0 20px; }
.filter__option { display: flex; align-items: center; gap: 6px; padding: 5px; cursor: pointer; }
.filter__option span { transition: color var(--ease); }
.filter__option:hover span, .filter__option input:checked + span { color: var(--blue); }
.filter__price { display: flex; align-items: center; gap: 10px; padding-top: 12px; }
.filter__price input { width: 140px; padding: 8px 12px; border: 1px solid var(--border); border-radius: 15px; font: 400 14px var(--font); }
.products-toolbar {
  display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; margin: 0 0 20px; padding: 15px 0;
  border-top: 1px solid var(--border); border-bottom: 1px solid var(--border);
}
.products-toolbar__group { display: inline-flex; align-items: center; gap: 4px; }
.products-toolbar__label { padding: 5px 10px; border-radius: 15px; background: #eee; color: #555; font-size: 12px; line-height: 18px; }
.products-toolbar select {
  height: 26px; padding: 0 26px 0 8px; border: 1px solid var(--border); border-radius: 20px; background: #f5f5f5;
  color: #555; font: 400 12px var(--font); cursor: pointer;
}
.grid-cards { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0 -10px; }
.grid-card-cell { padding: 10px; height: 100%; }
.grid-card {
  position: relative; display: flex; flex-direction: column; height: 100%; padding-bottom: 20px; overflow: hidden;
  border: 1px solid var(--border); border-radius: 15px; background: #e1e1e1; transition: box-shadow var(--ease);
}
.grid-card:hover { box-shadow: var(--shadow-hover); }
.grid-card__image { position: relative; display: block; overflow: hidden; aspect-ratio: 283 / 218; background: #eee; }
.grid-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .2s ease-out, opacity .2s ease-out; }
.grid-card:hover .grid-card__image img { transform: scale(1.06); }
.grid-card__image .img-second { position: absolute; inset: 0; opacity: 0; }
.grid-card:hover .has-second-image .img-second { opacity: 1; }
.product-labels--grid { top: 12px; right: 12px; }
.grid-card__media { position: relative; }
.grid-card__wish {
  position: absolute; z-index: 2; right: 10px; bottom: 10px; display: grid; place-items: center;
  width: 30px; height: 26px; padding: 0; border: 0; background: none;
  color: #fff; filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .5)); transition: color var(--ease), transform var(--ease);
}
.grid-card__wish:hover { color: var(--orange); transform: scale(1.1); }
.grid-card__wish.is-active { color: var(--red); }
.grid-card__name { margin-top: 15px; padding: 0 20px 0 10px; text-align: center; font: 700 18px/23.4px var(--font-head); }
.grid-card__name a { color: var(--text); }
.grid-card__name a:hover { color: var(--blue); }
.grid-card__price {
  display: block; margin: auto 20px 0 15px; padding: 10px 15px; border-radius: 15px; background: var(--blue);
  color: #fff; font-size: 18px; line-height: 27px; text-align: center; transition: background var(--ease);
}
.grid-card__name + .grid-card__price { margin-top: 20px; }
.grid-card__price:hover { background: var(--blue-hover); color: #fff; }
.grid-card__old { text-decoration: line-through; opacity: .85; }
.list-end { margin: 20px 10px 10px; padding: 15px; border-top: 1px solid var(--border); text-align: center; color: var(--text); }

/* ---------- Product page ---------- */
.pp { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.pp__left { min-width: 0; }
.pp__right { min-width: 0; padding-left: 10px; }
.pp-gallery { position: relative; }
.pp-gallery__main { width: 590px; max-width: 100%; border-radius: 15px; }
.pp-gallery__main .swiper-slide a { display: block; aspect-ratio: 590 / 454; background: #f5f5f5; }
.pp-gallery__main img { width: 100%; height: 100%; object-fit: cover; }
.pp-gallery__main .swiper-buttons { display: none; }
.pp-gallery__main:hover .swiper-buttons { display: block; }
.pp-gallery__main .swiper-buttons .swiper-button-prev, .pp-gallery__main .swiper-buttons .swiper-button-next { background: rgba(226, 226, 226, .4); }
.pp-gallery__main .swiper-buttons div:not(.swiper-button-disabled):hover { background: rgba(226, 226, 226, .6); }
.product-labels--pp { top: 12px; right: 22px; }
.pp-gallery__thumbs { margin-top: 10px; }
.pp-gallery__thumbs .swiper-slide { width: 100px; height: 80px; padding: 5px; border: 0; border-radius: 0; }
.pp-gallery__thumbs .swiper-slide img { border-radius: 8px; border: 2px solid transparent; transition: border-color var(--ease); }
.pp-gallery__thumbs .swiper-slide-thumb-active img { border-color: var(--blue); }
.pp-video { position: relative; overflow: hidden; margin-top: 59px; aspect-ratio: 600 / 338; border-radius: 15px; background: #000; }
.pp-video iframe, .pp-video video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.pp-attrs { width: 589px; max-width: 100%; margin-top: 40px; border-collapse: collapse; border: 1px solid #eee; }
.pp-attrs td { padding: 12px; color: var(--muted); font-size: 16px; line-height: 22.86px; }
.pp-attrs td:first-child { width: 30%; }
.pp-attrs tr:nth-child(even) td { background: #fafafa; }
.pp-stats { list-style: none; margin: 0; padding: 0; }
.pp-stats li { min-height: 24px; }
.pp-stats__stock { display: flex; align-items: center; gap: 6px; color: var(--green); }
.pp-stats__stock span { font: 700 14px/21px var(--font); text-transform: uppercase; }
.pp-stats__stock.is-out { color: var(--red); }
.pp-stats__model { color: var(--text); font-size: 13px; }
.pp-stats__model::before { content: '•'; margin-right: 4px; color: var(--blue); }
.pp-stats__model b { font-weight: 400; }
.pp-price { display: flex; align-items: baseline; gap: 12px; margin-top: 35px; }
.pp-price__new { color: var(--text); font: 700 30px/30px var(--font); }
.pp-price__new.is-special { color: var(--red); }
.pp-price__old { color: var(--muted); font-size: 20px; text-decoration: line-through; }
.pp-wish { display: grid; place-items: center; width: 34px; height: 29px; margin-top: 25px; padding: 3px; border: 0; border-radius: 20px; background: none; color: var(--red); transition: transform var(--ease); }
.pp-wish:hover { transform: scale(1.12); }
.pp-wish.is-active svg path { fill: currentColor; }
.pp-desc-title { margin: 15px 0 16px; padding-left: 10px; color: var(--text); font: 700 30px/36px var(--font-head); }
.pp-desc { margin-bottom: 30px; padding: 15px; border: 1px solid var(--border); border-radius: 6px; background: #f0f2f5; font-size: 17px; line-height: 25.5px; }
.pp-desc p { margin: 0 0 15px; }
.pp-tags { display: flex; flex-wrap: wrap; align-items: center; margin: 60px 30px 30px; font-size: 13px; line-height: 19.5px; }
.pp-tags b { margin: 0 8px 8px 0; }
.pp-tags a { margin: 0 8px 8px 0; padding: 0 8px; border-radius: 10px; background: #101828; color: #e6e6e6; transition: background var(--ease); }
.pp-tags a:hover { background: var(--blue); color: #fff; }
.related-strip { padding: 40px 20px 36px; background: #f0f2f5; }
.related-strip__inner { max-width: var(--container); margin: 0 auto; }
.related-strip__title { padding: 0; margin-bottom: 40px; }
.related-strip__carousel { position: relative; }
.related-strip__carousel .swiper-buttons--top { top: -60px; right: 0; }
.related-strip .grid-card-cell { padding: 0; }
.related-strip .swiper-slide { height: auto; }
.related-strip .swiper-pagination { margin-top: 20px; }

/* ---------- Wishlist page ---------- */
.wishlist-table { display: grid; gap: 12px; }
.wishlist-row { display: grid; grid-template-columns: 110px 1fr auto auto; align-items: center; gap: 20px; padding: 12px; border-radius: 15px; background: #fff; transition: box-shadow var(--ease); }
.wishlist-row:hover { box-shadow: var(--shadow-hover); }
.wishlist-row img { width: 110px; height: 80px; object-fit: cover; border-radius: 10px; }
.wishlist-row__name { font: 700 16px/1.3 var(--font-head); color: var(--text); }
.wishlist-row__name:hover { color: var(--blue); }
.wishlist-row__model { font-size: 13px; color: var(--muted-2); margin-top: 4px; }
.wishlist-row__price { white-space: nowrap; color: var(--red); font-size: 18px; }
.wishlist-row__price .price-old { display: block; font-size: 13px; }
.wishlist-row__remove { width: 38px; height: 38px; border: 0; border-radius: 50%; background: #f0f2f5; color: var(--muted); font-size: 20px; transition: background var(--ease), color var(--ease); }
.wishlist-row__remove:hover { background: var(--red); color: #fff; }

/* ---------- Lightbox ---------- */
.lightbox { position: fixed; inset: 0; z-index: 3000; background: rgba(0, 0, 0, .9); display: grid; place-items: center; animation: fade .15s ease-out; }
.lightbox { touch-action: pan-y; overflow: hidden; }
.lightbox img { max-width: 92vw; max-height: 86vh; object-fit: contain; border-radius: 6px; user-select: none; -webkit-user-drag: none; }
.lightbox button { position: absolute; border: 0; background: rgba(255, 255, 255, .12); color: #fff; width: 48px; height: 48px; border-radius: 50%; font-size: 26px; transition: background var(--ease); }
.lightbox button:hover { background: rgba(255, 255, 255, .25); }
.lightbox__close { top: 16px; right: 16px; }
.lightbox__prev { left: 16px; top: 50%; transform: translateY(-50%); }
.lightbox__next { right: 16px; top: 50%; transform: translateY(-50%); }
.lightbox__count { position: absolute; bottom: 18px; left: 0; right: 0; text-align: center; color: #ccc; font-size: 14px; }

/* Mobile drawer menu (blue, as on the original phone layout) */
.mobile-menu { position: fixed; inset: 0; z-index: 2500; background: rgba(0, 0, 0, .5); }
.mobile-menu__panel {
  position: absolute; top: 0; left: 0; bottom: 0; width: min(331px, 85vw); overflow-y: auto;
  background: var(--blue); color: #fff; animation: slide-in .2s ease-out;
}
@keyframes slide-in { from { transform: translateX(-100%); } }
.mobile-menu__head {
  position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between;
  height: 46px; padding: 0 12px 0 13px; background: #1a73d9;
  font: 700 16px/1 var(--font-head); text-transform: uppercase; letter-spacing: .02em;
}
.mobile-menu__close { display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 0; background: none; color: #fff; }
.mobile-menu ul { list-style: none; margin: 0; padding: 0; }
.mobile-menu .mobile-menu__list { padding: 16px 13px 30px; }
.mobile-menu__link, .mobile-menu__catalog summary a {
  display: block; padding: 12px 0; color: #fff; font: 700 16px/1.3 var(--font-head);
}
.mobile-menu__link:hover, .mobile-menu__link:active { color: #dbe8f0; }
.mobile-menu__catalog summary { display: flex; align-items: center; gap: 12px; list-style: none; cursor: pointer; padding-right: 4px; }
.mobile-menu__catalog summary::-webkit-details-marker { display: none; }
.mobile-menu__catalog summary a { flex: 1; }
.mobile-menu__toggle { position: relative; width: 24px; height: 24px; border: 2px solid #fff; border-radius: 50%; flex: 0 0 auto; }
.mobile-menu__toggle::before, .mobile-menu__toggle::after { content: ''; position: absolute; top: 50%; left: 50%; width: 10px; height: 2px; background: #fff; transform: translate(-50%, -50%); }
.mobile-menu__toggle::after { transform: translate(-50%, -50%) rotate(90deg); }
.mobile-menu__catalog details[open] .mobile-menu__toggle::after { display: none; }
.mobile-menu .mobile-menu__catalog ul { padding: 4px 0 8px 36px; }
.mobile-menu__catalog ul a { display: block; padding: 9px 0; color: #fff; font: 400 15px/1.4 var(--font); letter-spacing: .01em; }
.mobile-menu__catalog ul a:hover { color: #dbe8f0; }

/* Elements that only exist on phones */
.hdr-search-toggle, .mobile-socials { display: none; }

/* Desktop/tablet: big banner only on the home page */
@media (min-width: 768px) {
  .hdr-hero:not(.hdr-hero--home) { display: none; }
}

/* Footer accordions behave as plain columns on desktop */
.ftr__acc > summary { list-style: none; pointer-events: none; }
.ftr__acc > summary::-webkit-details-marker { display: none; }

/* Wishlist page */
.wishlist-empty { margin: 0; color: var(--text); font-size: 16px; }
.wishlist-actions { display: flex; justify-content: center; margin: 40px 0 20px; }
.wishlist-actions .btn { gap: 12px; }
.category-empty__actions .btn { width: 100%; }

/* ---------- Responsive ---------- */
@media (max-width: 1320px) {
  .hdr-bar, .main-menu { padding-left: 20px; padding-right: 20px; }
  .main-menu__list { gap: 10px; }
  .main-menu__item > a { font-size: 12px; padding: 12px 8px; }
}

@media (max-width: 1024px) {
  .hdr { padding-top: 70px; }
  .hdr-bar { background: rgba(6, 97, 202, .96); height: 70px; padding: 8px 0; }
  .hdr-bar__inner { gap: 14px; }
  /* Menu icon = one SVG (three lines), same technique as the heart/search icons, so it looks the same on iPhone and Android */
  .hdr-burger { display: grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 0; background: none; color: #fff; -webkit-appearance: none; appearance: none; }
  .hdr-burger svg { display: block; width: 24px; height: 19px; }
  .hdr-logo { flex-basis: auto; }
  .hdr-phone { font-size: 15px; }
  .main-menu { display: none; }
  .module-tiles, .product-grid, .module-info-blocks, .module-testimonials-grid, .module-steps, .module-banners { grid-template-columns: repeat(2, 1fr); }
  .module-tiles__label { white-space: normal; }
  .module-tiles__img { flex: none; }
  .ftr__inner { grid-template-columns: 1fr 1fr; }
  .product-info { grid-template-columns: 1fr; }
  .works-layout { grid-template-columns: 1fr; }
  .works-side { padding: 20px 0 0; }
  .grid-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pp { grid-template-columns: 1fr; }
  .pp__right { padding: 20px 0 0; }
  .pp-gallery__main { width: 100%; }
}

@media (max-width: 767px) {
  body { font-size: 15px; padding-bottom: 62px; }

  /* Breadcrumbs: one line that is swiped sideways (instead of ragged wrapping); the edge fades where more is hidden */
  .breadcrumbs ul { flex-wrap: nowrap; overflow-x: auto; padding-right: 0; white-space: nowrap; scrollbar-width: none; -webkit-overflow-scrolling: touch; overscroll-behavior-x: contain; }
  .breadcrumbs ul::-webkit-scrollbar { display: none; }
  .breadcrumbs li { flex: none; }
  .breadcrumbs--more-left ul { -webkit-mask-image: linear-gradient(to right, transparent 0, #000 36px); mask-image: linear-gradient(to right, transparent 0, #000 36px); }
  .breadcrumbs--more-right ul { -webkit-mask-image: linear-gradient(to left, transparent 0, #000 36px); mask-image: linear-gradient(to left, transparent 0, #000 36px); }
  .breadcrumbs--more-left.breadcrumbs--more-right ul {
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 36px, #000 calc(100% - 36px), transparent 100%);
    mask-image: linear-gradient(to right, transparent 0, #000 36px, #000 calc(100% - 36px), transparent 100%);
  }

  /* Header: icon bar over the banner; sticks as a dark bar after the banner scrolls away */
  .hdr { padding-top: 0; background: #101828; }
  .hdr-bar {
    position: absolute; top: 0; left: 0; right: 0; width: 100%; max-width: none; height: 60px; padding: 0;
    transform: none; background: transparent; transition: none;
  }
  .hdr-bar::before { display: none; }
  .is-past-hero .hdr-bar { position: fixed; background: #101828; box-shadow: 0 2px 12px rgba(0, 0, 0, .25); }
  .hdr-bar__inner { flex-wrap: nowrap; gap: 0; height: 60px; padding: 0 10px 0 0; }
  /* Over the banner the menu, logo, heart and search sit a little higher — above the cars; centred again once the bar sticks */
  .hdr-bar__inner { transform: translateY(-10px); }
  .is-past-hero .hdr-bar__inner { transform: none; }
  .hdr-burger { width: 50px; height: 60px; }
  .hdr-burger svg { width: 26px; height: 21px; }
  .hdr-logo { flex: 0 0 auto; padding: 18px; }
  .hdr-logo img { width: 86px; }
  .hdr-wishlist { margin-left: auto; width: 34px; height: 60px; justify-content: center; }
  .hdr-wishlist__icon svg { width: 26px; height: 26px; }
  .hdr-wishlist__text, .hdr-phone { display: none; }
  .hdr-search-toggle { display: grid; place-items: center; width: 44px; height: 60px; padding: 0; border: 0; background: none; color: #fff; }
  .hdr-search {
    display: none; position: absolute; top: 60px; left: 20px; right: 20px; height: 50px; max-width: none; z-index: 5;
    box-shadow: 0 8px 24px rgba(0, 0, 0, .25);
  }
  .search-open .hdr-search { display: flex; }
  .hdr-search__input { font-size: 16px; padding: 0 20px; }
  .hdr-search__btn { flex-basis: 56px; height: 50px; }
  .hdr-search__results { right: 0; }
  .hdr-hero img { width: 100%; height: auto; }

  /* Messengers pinned to the bottom; no side column, no scroll-to-top on phones */
  .side-menu, .scroll-top { display: none !important; }
  .mobile-socials {
    display: flex; justify-content: space-around; align-items: center; position: fixed; z-index: 1000; left: 0; right: 0; bottom: 0;
    height: 62px; padding: 6px; background: var(--blue); box-shadow: 0 -10px 30px -5px rgba(0, 0, 0, .15);
  }
  .mobile-socials a { display: grid; place-items: center; width: 95px; height: 50px; color: #fff; }
  .mobile-socials .soc-icon--lg { width: 40px; height: 40px; object-fit: contain; border-radius: 50%; }
  .mobile-socials .soc-icon--svg { color: #fff; }
  .mobile-socials .soc-icon--svg path { fill: var(--blue); }
  .cookie-note { bottom: 72px; }
  .toast { bottom: 80px; }

  .grid-row { padding: 20px 0 0 !important; }
  .grid-row__inner, .grid-row__inner--fr { grid-auto-flow: row; grid-template-columns: minmax(0, 1fr) !important; padding: 0 20px; }
  .module-gallery__title { font-size: 17px; }
  .title-module__title { font-size: 22px !important; line-height: 24.2px; padding-left: 20px !important; }

  /* "Популярные модели": one video per screen, turned by swiping (no arrows on phones) */
  .module-videos__item .video-tile { max-width: none; }
  .module-videos__item video { max-width: none; width: 100%; }

  /* Catalog tiles: picture on top, full-width button below */
  .module-tiles__item { padding: 10px 0; }
  .module-tiles__body { flex-direction: column-reverse; height: auto; gap: 20px; padding: 20px; border-radius: 15px; }
  .module-tiles__img { flex: none; width: 90px; height: 90px; }
  .module-tiles__label { width: 100%; min-width: 0; padding: 18px 20px; font-size: 15px; white-space: normal; }

  /* Footer: "Меню" / "Каталог" fold into +/- sections */
  .ftr__col.ftr__acc { text-align: left; padding: 0 20px 10px; }
  .ftr__acc > summary { display: flex; align-items: center; justify-content: space-between; pointer-events: auto; cursor: pointer; margin: 0; padding: 10px 0; }
  .ftr__acc > summary::after { content: '+'; font: 400 30px/1 var(--font); }
  .ftr__acc[open] > summary::after { content: '−'; }
  .ftr__acc .ftr__links { padding: 6px 0 10px; }
  .ftr__acc .ftr__links a { justify-content: flex-start; }
  .ftr__col--logo { padding-bottom: 20px; }
  .ftr__col--contacts { padding-top: 20px; }
  .ftr__bottom .ftr__inner { font-size: 15px; }

  /* Category: the filter stays in the page, as on desktop; price fields share the width */
  .filter__price input { flex: 1; width: auto; min-width: 0; }
  .products-toolbar__label { display: none; }
  .products-toolbar { justify-content: flex-end; margin-top: 30px; }
  .products-toolbar select { height: 34px; font-size: 15px; padding-left: 12px; }
  .products-toolbar__group:first-child select { max-width: 160px; }
  .works-title { font-size: 26px !important; line-height: 32px !important; }
  .module-slider--portrait { max-width: 300px; margin: 0 auto; }
  .module-steps, .module-banners { grid-template-columns: 1fr; }
  .module-info-blocks--stats { grid-template-columns: repeat(2, 1fr); gap: 15px; padding: 0; }
  .works-layout { padding: 16px; }
  .category-wrap { padding: 16px; }
  .category-content { padding: 16px; }
  .filter { margin: 0 0 16px; }
  .grid-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 0 -6px; }
  .grid-card-cell { padding: 6px; }
  .grid-card__name { font-size: 14px; line-height: 18px; padding: 0 8px; }
  .grid-card__price { margin: auto 8px 0; font-size: 14px; padding: 8px 6px; }
  .products-toolbar { justify-content: flex-start; }
  .pp-video { margin-top: 24px; }
  .pp-desc-title { font-size: 24px; padding-left: 0; }
  .pp-tags { margin: 20px 0; }
  .related-strip { padding: 30px 16px 16px; }
  .works-content { padding: 16px; }
  .works-title { font-size: 22px; line-height: 28px; margin-bottom: 20px; }
  .works-grid { grid-template-columns: 1fr 1fr; }
  .works-album { grid-template-columns: 1fr 1fr; }
  .work-card__name { font-size: 15px; line-height: 20px; }
  .module-info-blocks--stats .info-block__title { font-size: 34px; line-height: 50px; }
  .module-slider:not(.module-slider--portrait) .module-slider__caption { font-size: 22px; line-height: 30px; bottom: 32px; }
  .module-banners { margin: 0; padding: 0; }
  .step-card { min-height: 0; }
  .step-card__num { font-size: 44px; line-height: 60px; }
  .title-banner { padding: 50px 16px; }
  .title-banner__title { font-size: 24px; margin-bottom: 16px; }
  .module-strip { margin: 0; }
  .grid-row--title-bar .grid-row__inner { grid-auto-flow: column; }
  .title-module__title, .page-title { font-size: 24px; padding: 0; }
  .module-tiles, .product-grid, .module-info-blocks, .module-testimonials-grid { grid-template-columns: 1fr; }
  .module-info-blocks { gap: 15px; margin: 0; padding: 0; }
  .module-tiles__item, .product-layout { padding: 6px 0; }
  .module-tiles { margin: 0; }
  .module-html, .module-contacts { padding: 0; }
  .module-testimonials { margin: 0; padding: 30px 20px 20px; }
  .grid-col:has(.module-contacts) { align-self: stretch; padding: 24px; }
  .grid-col:has(.module-contacts) .title-module { margin-bottom: 20px; }
  .contact-line__text { font-size: 17px; }
  .icons-menu { padding: 5px 0; }
  /* «Контакты» block: social icons 3 in a row (2 rows), a bit bigger */
  .icons-menu--contacts { display: grid; grid-template-columns: repeat(3, max-content); gap: 14px 18px; padding: 10px 0 0; }
  .icons-menu--contacts li { padding: 0; }
  .icons-menu--contacts a { width: 54px; height: 54px; }
  .icons-menu--contacts .soc-icon { width: 42px; height: 42px; }
  /* No arrows on any slider on phones (they cover titles, stars and photos; a tap counts as "hover" and pops them up):
     every carousel is swiped with a finger. The full-screen photo viewer keeps its own arrows. */
  .swiper-buttons { display: none !important; }
  .ftr__main { padding: 30px 16px; }
  .ftr__inner { grid-template-columns: 1fr; text-align: center; }
  .ftr__links a { padding-right: 0; justify-content: center; }
  .ftr__col { padding: 0 0 20px; }
  .ftr__title { font-size: 24px; }
  .page-container { padding: 0 20px 40px; }
  .grid-cards { grid-template-columns: minmax(0, 1fr) !important; margin: 0; }
  .grid-card-cell { padding: 10px 0; }
  .grid-card__name { font-size: 18px; line-height: 23.4px; padding: 0 20px; }
  .grid-card__price { margin: auto 20px 0; font-size: 18px; padding: 12px 15px; }
  .wishlist-row { grid-template-columns: 80px 1fr auto; }
  .wishlist-row img { width: 80px; height: 60px; }
  .wishlist-row__price { grid-column: 2; }
  .cookie-note { flex-direction: column; align-items: stretch; text-align: center; }
}
