:root {
  --citydecor-accent: #9b59b6;
  --citydecor-accent-dark: #7f4298;
  --citydecor-accent-soft: #f6eef9;
  --citydecor-ink: #2f3338;
  --citydecor-muted: #707781;
  --citydecor-line: #e5e7eb;
  --citydecor-surface: #ffffff;
  --citydecor-surface-alt: #f7f7f8;
  --citydecor-radius: 6px;
  --citydecor-shadow: 0 12px 34px rgba(43, 31, 48, 0.12);
}

body.citydecor-theme {
  color: #575d65;
  font-family: Candara, "Segoe UI", Arial, sans-serif;
  font-size: 16px;
  line-height: 1;
}

.search {
  position: relative;
}

.search .search__input {
  padding-right: 32px;
}

.search .search__input::-webkit-search-cancel-button {
  -webkit-appearance: none;
  appearance: none;
  display: none;
}

.citydecor-search-clear {
  align-items: center;
  background: none;
  border: 0;
  color: #858a91;
  display: flex;
  font-family: Arial, sans-serif;
  font-size: 22px;
  font-weight: 400;
  height: 32px;
  justify-content: center;
  line-height: 1;
  padding: 0;
  position: absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 32px;
}

.citydecor-search-clear[hidden] {
  display: none;
}

.citydecor-search-clear:hover,
.citydecor-search-clear:focus-visible {
  color: #575d65;
}

.citydecor-search-suggestions {
  background: #fff;
  border: 1px solid var(--citydecor-line);
  box-shadow: var(--citydecor-shadow);
  color: var(--citydecor-ink);
  font-size: 14px;
  left: 0;
  line-height: 1.3;
  max-height: min(70vh, 520px);
  overflow-y: auto;
  position: absolute;
  top: calc(100% + 8px);
  width: min(420px, calc(100vw - 32px));
  z-index: 100;
}

.citydecor-search-suggestions[hidden] {
  display: none;
}

.citydecor-search-suggestions__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.citydecor-search-suggestions__product {
  align-items: center;
  color: inherit;
  display: flex;
  gap: 12px;
  min-height: 72px;
  padding: 8px 12px;
  text-decoration: none;
}

.citydecor-search-suggestions__product:hover,
.citydecor-search-suggestions__product:focus-visible {
  background: var(--citydecor-accent-soft);
  color: var(--citydecor-ink);
}

.citydecor-search-suggestions__product img {
  flex: 0 0 56px;
  height: 56px;
  object-fit: cover;
  width: 56px;
}

.citydecor-search-suggestions__details {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.citydecor-search-suggestions__name {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
}

.citydecor-search-suggestions__price {
  font-weight: 700;
}

.citydecor-search-suggestions__empty {
  margin: 0;
  padding: 16px 12px;
}

.citydecor-search-suggestions__all {
  border-top: 1px solid var(--citydecor-line);
  color: var(--citydecor-accent);
  display: block;
  font-weight: 700;
  padding: 12px;
  text-align: center;
  text-decoration: none;
}

.citydecor-search-suggestions__all:hover,
.citydecor-search-suggestions__all:focus-visible {
  background: var(--citydecor-accent-soft);
  color: var(--citydecor-accent-dark);
}

@media (max-width: 1023px) {
  .mobile-menu .citydecor-search-clear {
    right: 20px;
  }

  .mobile-menu .citydecor-search-suggestions {
    left: 20px;
    max-height: min(50vh, 400px);
    right: 20px;
    top: 100%;
    width: auto;
  }
}

@media (min-width: 1024px) {
  .citydecor-theme .header {
    z-index: 60;
  }
}

.citydecor-menu-toggle {
  align-items: center;
  background: transparent;
  border: 0;
  color: inherit;
  display: flex;
  font: inherit;
  gap: 15px;
  padding: 0;
  text-align: left;
}

.citydecor-menu-toggle:hover,
.citydecor-menu-toggle:focus-visible {
  color: var(--citydecor-accent);
}

.citydecor-menu-toggle:focus-visible {
  outline: 2px solid var(--citydecor-accent);
  outline-offset: 4px;
}

.citydecor-menu-toggle svg {
  flex-shrink: 0;
}

.header__menu .citydecor-menu-toggle svg {
  rotate: -90deg;
}

.citydecor-nav-disclosure > .droplist {
  white-space: nowrap;
}

.mobile-menu__menu .citydecor-menu-toggle {
  justify-content: space-between;
  width: 100%;
}

.mobile-menu__menu .citydecor-menu-toggle svg {
  rotate: 180deg;
}

/* Catalog-specific additions keep the source layout classes intact while
 * supplying the state hooks needed by OpenCart and OCFilter. */
@media (min-width: 999px) {
  .top-katalog__right {
    justify-content: flex-end;
  }

  .top-katalog__btn {
    margin-right: auto;
  }
}

.citydecor-theme .top-katalog__btn button,
.citydecor-theme .filter-katalog-top button,
.citydecor-theme .dropdown__current {
  background: transparent;
  border: 0;
  color: inherit;
  padding: 0;
}

.citydecor-theme .dropdown__current {
  border: 1px solid #e2e2e2;
  padding: 8px 13px;
  width: 100%;
}

.citydecor-theme .dropdown__item {
  color: inherit;
  display: block;
}

.citydecor-theme .dropdown__item.is-selected {
  color: var(--main-color, #9b59b6);
}

.citydecor-category-layout .filter-katalog__wp a {
  color: inherit;
  display: block;
}

.citydecor-category-layout .filter-katalog__wp label {
  pointer-events: none;
}

.filter-katalog__wp .citydecor-ocfilter-values label {
  display: flex;
}

.citydecor-ocfilter-values input {
  height: 1px;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  width: 1px;
}

.citydecor-ocfilter-check {
  border: 1px solid var(--black-text, #575d65);
  border-radius: 3px;
  flex: 0 0 13px;
  height: 13px;
  width: 13px;
}

.citydecor-ocfilter-values label.ocf-selected {
  color: var(--main-color, #9b59b6);
}

.citydecor-ocfilter-values label.ocf-selected .citydecor-ocfilter-check {
  background: url("../image/check.svg") center / 70% no-repeat;
  border-color: var(--main-color, #9b59b6);
}

.citydecor-ocfilter-values label.disabled {
  cursor: default;
  opacity: 0.45;
}

.citydecor-ocfilter-name {
  background: transparent !important;
  color: inherit !important;
  flex: 1 1 auto;
  line-height: 1.2;
  padding: 0 !important;
}

.citydecor-ocfilter-values small {
  background: rgba(155, 89, 182, 0.3);
  color: var(--black-text, #575d65);
  font-size: 11px;
  font-weight: 400;
  margin-left: auto;
  padding: 2px 3px;
}

.citydecor-ocfilter-range {
  font-weight: 400;
  margin-left: 4px;
}

.citydecor-ocfilter-slider {
  margin: 8px 20px 30px;
}

#ocfilter .noUi-target {
  border: 0;
  box-shadow: none;
  height: 4px;
}

#ocfilter .noUi-connect {
  background: var(--main-color, #9b59b6);
}

#ocfilter .noUi-handle {
  border-color: var(--main-color, #9b59b6);
  border-radius: 50%;
  height: 18px;
  right: -9px;
  top: -7px;
  width: 18px;
}

#ocfilter .noUi-handle::before,
#ocfilter .noUi-handle::after {
  display: none;
}

.citydecor-ocfilter-selected {
  padding: 8px 15px 14px;
}

.citydecor-ocfilter-selected h3 {
  padding-left: 0;
  padding-right: 0;
}

.citydecor-ocfilter-chip {
  background: #f2f2f5;
  display: inline-flex;
  gap: 6px;
  margin: 0 5px 5px 0;
  padding: 6px 8px;
}

.citydecor-ocfilter-reset {
  color: var(--main-color, #9b59b6);
  display: block;
  margin-top: 6px;
  text-decoration: underline;
}

#ocfilter-button,
#ocfilter-button .btn {
  display: flex;
  width: 100%;
}

#ocfilter-button .btn.disabled {
  cursor: default;
  opacity: 0.55;
}

.citydecor-ocfilter-action {
  background: #fff;
  border: 1px solid #e5e0e8;
  box-shadow: 0 8px 26px rgb(0 0 0 / 16%);
  padding: 6px;
  position: fixed;
  z-index: 300;
}

.citydecor-ocfilter-action[hidden] {
  display: none;
}

.citydecor-ocfilter-action .btn {
  min-width: 185px;
}

.filter-katalog__wp [data-citydecor-filter-more].is-expanded svg {
  transform: rotate(90deg);
}

.filter-katalog-close,
.open-filter {
  cursor: pointer;
}

.katalog__block._flex .product__gallery img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
  width: 100%;
}

.katalog__block._flex .product__pagination img {
  height: 100%;
}

.katalog__block._flex .citydecor-empty-state {
  width: 100%;
}

.product__help div {
  background-image: url("../img/bgh.svg");
}

.katalog__wp.citydecor-without-filter .katalog__block {
  grid-column: 1 / -1;
}

/* Search/manufacturer/special have no dedicated supplied mock-up. Their
 * product results reuse catalog-oboi.html verbatim; these are only the missing
 * flat controls and manufacturer index. */
.citydecor-listing-controls {
  grid-template-columns: 1fr;
}

.citydecor-listing-controls .top-katalog__left {
  display: none;
}

.citydecor-search-form {
  background: #fff;
  margin-top: 40px;
  padding: 20px;
}

.citydecor-search-form__fields {
  align-items: flex-end;
  display: grid;
  gap: 20px;
  grid-template-columns: minmax(0, 2fr) minmax(220px, 1fr) auto;
}

.citydecor-search-form__fields label {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}

.citydecor-search-form__fields label > span {
  font-size: 14px;
  font-weight: 700;
}

.citydecor-search-form__fields input,
.citydecor-search-form__fields select {
  background: #fff;
  border: 1px solid #e2e2e2;
  border-radius: 0;
  color: inherit;
  height: 44px;
  padding: 8px 13px;
  width: 100%;
}

.citydecor-search-form__fields .btn {
  border: 0;
  height: 44px;
}

.citydecor-search-form__checks {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin-top: 15px;
}

.citydecor-search-form__checks label {
  align-items: center;
  cursor: pointer;
  display: flex;
  gap: 8px;
}

.citydecor-search-form__checks input {
  accent-color: var(--main-color, #9b59b6);
  height: 16px;
  width: 16px;
}

.citydecor-manufacturer-index {
  align-items: center;
  background: #fff;
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 40px;
  padding: 20px;
}

.citydecor-manufacturer-index a {
  color: var(--main-color, #9b59b6);
  font-size: 18px;
  font-weight: 700;
}

.citydecor-manufacturer-groups {
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 20px;
}

.citydecor-manufacturer-group {
  background: #fff;
  padding: 20px;
  scroll-margin-top: 20px;
}

.citydecor-manufacturer-group .h2 {
  color: var(--main-color, #9b59b6);
  margin-bottom: 15px;
  text-align: left;
}

.citydecor-manufacturer-links {
  display: grid;
  gap: 10px 20px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.citydecor-manufacturer-links a {
  color: inherit;
  line-height: 1.25;
}

@media (max-width: 768px) {
  .citydecor-search-form {
    margin-top: 20px;
    padding: 15px;
  }

  .citydecor-search-form__fields,
  .citydecor-manufacturer-groups {
    grid-template-columns: 1fr;
  }

  .citydecor-search-form__fields {
    gap: 15px;
  }

  .citydecor-search-form__fields .btn {
    width: 100%;
  }

  .citydecor-manufacturer-index {
    margin-top: 20px;
    padding: 15px;
  }

  .citydecor-manufacturer-links {
    grid-template-columns: 1fr;
  }
}

/* Cart route: functional controls inserted into the untouched card.html DOM. */
#checkout-cart .basket__title small {
  font-size: 16px;
  font-weight: 400;
  margin-top: 8px;
}

#checkout-cart .basket__clean,
#checkout-cart .block-basket__remove {
  background: transparent;
  border: 0;
  padding: 0;
}

#checkout-cart .block-basket__remove {
  height: 14px;
  width: 14px;
}

#checkout-cart .block-basket__remove img {
  display: block;
  height: 14px;
  width: 14px;
}

#checkout-cart .block-basket__prew {
  display: block;
  min-height: 55px;
}

#checkout-cart .block-basket__name {
  color: inherit;
  line-height: 1.15;
}

#checkout-cart .block-basket__option {
  display: block;
  font-size: 13px;
  line-height: 1.2;
  margin-top: 5px;
}

#checkout-cart .block-basket__quanity button {
  align-items: center;
  border: 0;
  display: flex;
  justify-content: center;
  padding: 0;
}

#checkout-cart .block-basket__quanity button img {
  height: 12px;
  width: 12px;
}

#checkout-cart .block-basket__quanity input {
  -moz-appearance: textfield;
  min-width: 0;
  padding: 4px;
  text-align: center;
  width: 100%;
}

#checkout-cart .block-basket__quanity input::-webkit-inner-spin-button,
#checkout-cart .block-basket__quanity input::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

#checkout-cart .bottom-basket__get {
  align-items: center;
  display: flex;
  justify-content: center;
}

#checkout-cart .bottom-basket__left .panel {
  border: 0;
  margin: 0;
}

#checkout-cart .bottom-basket__left .panel-heading {
  background: #f2f2f5;
  padding: 12px 15px;
}

#checkout-cart .bottom-basket__left .panel-title,
#checkout-cart .bottom-basket__left .panel-title a {
  color: inherit;
  font-size: 16px;
  font-weight: 700;
}

#checkout-cart .bottom-basket__left .panel-body {
  padding-top: 15px;
}

#checkout-cart .bottom-basket__left .input-group {
  display: grid;
  gap: 20px;
  grid-template-columns: 1fr 240px;
}

#checkout-cart .bottom-basket__left .input-group input {
  border: 1px solid #e2e2e2;
  border-radius: 0;
  min-width: 0;
  padding: 14px 15px;
  width: 100%;
}

#checkout-cart .bottom-basket__left .input-group .btn {
  height: 100%;
}

.citydecor-empty-cart {
  margin-top: 40px;
  min-height: 220px;
}

@media (max-width: 768px) {
  #checkout-cart .bottom-basket__left .input-group {
    grid-template-columns: 1fr;
  }
}

/* Checkout route: the native OpenCart endpoint sequence inside card2.html. */
#checkout-checkout .citydecor-checkout-login-link {
  color: #918d8d;
  font-size: 14px;
}

#checkout-checkout .citydecor-checkout-login-link button {
  background: transparent;
  border: 0;
  color: var(--main-color);
  padding: 0;
  text-decoration: underline;
}

#checkout-checkout .citydecor-checkout-panel[hidden],
#checkout-checkout .citydecor-shipping-quote[hidden] {
  display: none !important;
}

#checkout-checkout .citydecor-checkout-panel .panel-body {
  padding: 0;
}

#checkout-checkout .citydecor-checkout-loading,
#checkout-checkout .citydecor-checkout-hint {
  color: #918d8d;
}

#checkout-checkout .registration-basket__wp select,
#checkout-checkout .registration-basket__wp textarea,
#checkout-checkout .registration-basket__wp input[type="text"],
#checkout-checkout .registration-basket__wp input[type="email"],
#checkout-checkout .registration-basket__wp input[type="tel"],
#checkout-checkout .registration-basket__wp input[type="password"] {
  background: #fff;
  border: 1px solid #e2e2e2;
  border-radius: 0;
  min-height: 48px;
  padding: 12px 15px;
  width: 100%;
}

#checkout-checkout .registration-basket__wp select {
  appearance: auto;
}

#checkout-checkout .registration-basket__wp .inp-wp > span {
  display: block;
  margin-bottom: 7px;
}

#checkout-checkout .registration-basket__wp .inp-wp > span > span,
#checkout-checkout .registration-basket__info span {
  color: var(--main-color);
}

#checkout-checkout .registration-basket__wp .btn,
#checkout-checkout .citydecor-checkout-confirm .btn {
  width: 100%;
}

#checkout-checkout .registration-basket__type-delivery button {
  align-items: center;
  background: #fff;
  border: 2px solid #f2f2f5;
  display: flex;
  flex-direction: column;
  font-size: 18px;
  font-weight: 700;
  gap: 10px;
  justify-content: center;
  padding: 15px;
}

#checkout-checkout .registration-basket__type-delivery button._active {
  background: #f2f2f5;
}

#checkout-checkout .registration-basket__type-delivery button img {
  height: 50px;
  width: 50px;
}

#checkout-checkout .registration-basket__cupon a {
  color: var(--main-color);
}

#checkout-checkout .registration-basket__item a,
#checkout-checkout .registration-basket__item span {
  color: inherit;
}

#checkout-checkout .registration-basket__item small {
  display: block;
  line-height: 1.25;
  margin-top: 5px;
}

#checkout-checkout .citydecor-checkout-agreement label {
  font-size: 14px;
  line-height: 1.3;
}

#checkout-checkout .citydecor-checkout-address-choice {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
  margin-bottom: 18px;
}

#checkout-checkout .citydecor-checkout-address-choice label {
  align-items: center;
  display: flex;
  gap: 8px;
  line-height: 1.3;
}

#checkout-checkout .citydecor-checkout-address-choice input {
  height: auto;
  width: auto;
}

#checkout-checkout #payment-new,
#checkout-checkout #shipping-new {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

#checkout-checkout #payment-new[hidden],
#checkout-checkout #shipping-new[hidden] {
  display: none;
}

#checkout-checkout .text-danger {
  color: #c0392b;
  font-size: 13px;
  margin-top: 5px;
}

#checkout-checkout .has-error input,
#checkout-checkout .has-error select,
#checkout-checkout .has-error textarea {
  border-color: #c0392b;
}

#checkout-checkout button._loading,
#checkout-checkout input._loading {
  cursor: wait;
  opacity: .65;
}

#checkout-checkout fieldset {
  border: 3px solid #f2f2f5;
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin: 0 0 25px;
  padding: 27px;
}

#checkout-checkout fieldset legend {
  font-size: 20px;
  font-weight: 700;
  padding: 0;
}

#checkout-checkout .row {
  display: grid;
  gap: 25px;
  grid-template-columns: 1fr;
}

#checkout-checkout .form-control {
  width: 100%;
}

#checkout-checkout .citydecor-checkout-confirm .buttons,
#checkout-checkout .citydecor-checkout-confirm .pull-right {
  width: 100%;
}

#common-success .citydecor-success-message {
  margin-top: 30px;
  max-width: 760px;
}

#common-success .citydecor-success-message .btn {
  display: inline-flex;
  margin-top: 20px;
}

/* Product route: preserve the DOM and sizing of tovar.html/tovar2.html while
 * supplying only the dynamic states that the static mock-up delegated to
 * Swiper and its form bundle. */
#product-product .card__slider-big .swiper-wrapper,
#product-product .card__slider-min .swiper-wrapper {
  display: flex;
  width: 100%;
}

#product-product .card__left,
#product-product .card__right,
#product-product .card__material-wp,
#product-product .card__material-wp .product {
  min-width: 0;
}

/* The OpenCart Swiper bundle globally gives every .swiper-slide height: 100%.
 * In the supplied product mock-up this class is also used as a plain material
 * image wrapper, so keep that wrapper content-sized. */
#product-product .card__material-wp .product > .swiper-slide {
  height: auto;
}

#product-product .card__title,
#product-product .card__material-wp .product__text {
  overflow-wrap: anywhere;
}

#product-product .card__slider-big .swiper-slide {
  flex: 0 0 100%;
}

#product-product .card__slider-big .citydecor-product-image {
  display: block;
}

#product-product .card__slider-big {
  cursor: grab;
  overscroll-behavior-x: contain;
  touch-action: pan-y pinch-zoom;
  user-select: none;
}

#product-product .card__slider-big.is-swiping {
  cursor: grabbing;
}

#product-product .card__slider-big img,
.mfp-wrap .mfp-img {
  -webkit-user-drag: none;
  user-select: none;
}

.mfp-wrap .mfp-img {
  touch-action: pan-y pinch-zoom;
  transform: translate3d(var(--citydecor-popup-swipe, 0), 0, 0);
}

.mfp-wrap .mfp-img.is-swiping {
  cursor: grabbing;
}

#product-product .card__slider-big .citydecor-product-image > img {
  object-fit: cover;
}

#product-product .citydecor-gallery-video {
  aspect-ratio: 1;
  background: #1b1b1b;
  overflow: hidden;
  width: 100%;
}

#product-product .citydecor-gallery-video video,
#product-product .citydecor-gallery-video .video-wrapper__youtube {
  height: 100%;
  object-fit: contain;
  width: 100%;
}

#product-product .citydecor-gallery-video-title {
  background: rgba(20, 20, 24, 0.78);
  bottom: 0;
  box-sizing: border-box;
  color: #fff;
  font-size: 16px;
  font-weight: 600;
  left: 0;
  line-height: 1.3;
  padding: 8px 12px;
  pointer-events: none;
  position: absolute;
  width: 100%;
  z-index: 5;
}

#product-product .citydecor-gallery-video._play + .citydecor-gallery-video-title {
  display: none;
}

#product-product .card__video .video-wrapper {
  aspect-ratio: 16 / 9;
  background: #1b1b1b;
  overflow: hidden;
  width: 100%;
}

#product-product .card__video .video-wrapper__youtube {
  height: 100%;
  inset: 0;
  position: absolute;
  width: 100%;
}

#product-product .card__slider-min {
  min-width: 0;
  overflow: hidden;
  width: 100%;
}

#product-product .card__slider-min .swiper-wrapper {
  gap: 8px;
  transform: translate3d(var(--citydecor-thumbs-offset, 0), 0, 0);
  transition: transform 0.3s ease;
}

#product-product .card__slider-min .swiper-slide {
  background: transparent;
  border: 1px solid #e2e2e2;
  cursor: pointer;
  flex: 0 0 calc((100% - 24px) / 4);
  padding: 0;
}

#product-product .card__slider-min .swiper-slide-thumb-active {
  border-color: var(--main-color, #9b59b6);
}

#product-product .card__slider-min .citydecor-card-thumb__play {
  height: 28px;
  left: 50%;
  object-fit: contain;
  pointer-events: none;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 28px;
  z-index: 1;
}

#product-product .card__arr,
#product-product .product__nav button,
#product-product .product__pagination button {
  background: transparent;
  border: 0;
  color: inherit;
  flex: 0 0 auto;
  padding: 0;
}

#product-product .card__arr._bottom-pug__arr_r {
  transform: scaleX(-1);
}

#product-product .card__download > img {
  aspect-ratio: 1;
}

#product-product .card__price strong {
  font-size: inherit;
}

#product-product .card__price > span {
  color: #6c757d;
  font-size: 18px;
  font-weight: 400;
  margin-left: 8px;
  text-decoration: line-through;
}

#product-product .card__btns button.btn,
#product-product .card__btns a,
#product-product .card__btn2 button.btn,
#product-product .card__btn2 a {
  align-items: center;
  display: flex;
  justify-content: center;
  min-width: 0;
}

#product-product .card__btns button.btn {
  height: 100%;
  padding: 13px 0;
}

#product-product .card__btn2 .btn {
  padding: 13px 15px;
}

#product-product .card__quanity input {
  -moz-appearance: textfield;
  border: 1px solid #f0ecec;
  min-width: 0;
}

#product-product .card__quanity input::-webkit-inner-spin-button,
#product-product .card__quanity input::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

#product-product .citydecor-product-options {
  background: linear-gradient(180deg, #f6f7f9 0%, rgba(246, 247, 249, 0) 100%);
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 20px;
  padding: 15px;
}

#product-product .citydecor-product-options .form-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0;
  min-width: 0;
}

#product-product .citydecor-product-options label,
#product-product .citydecor-product-options legend {
  border: 0;
  font-size: 16px;
  font-weight: 700;
  margin: 0;
  padding: 0;
}

#product-product .citydecor-product-options .required > label::before,
#product-product .citydecor-product-options .required > legend::before {
  color: var(--main-color, #9b59b6);
  content: "* ";
}

#product-product .citydecor-product-options input[type="text"],
#product-product .citydecor-product-options input[type="number"],
#product-product .citydecor-product-options textarea,
#product-product .citydecor-product-options select {
  background: #fff;
  border: 1px solid #e2e2e2;
  border-radius: 0;
  min-height: 42px;
  padding: 8px 13px;
  width: 100%;
}

#product-product .citydecor-option-values {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

#product-product .citydecor-option-value {
  align-items: center;
  background: #fff;
  border: 1px solid #e2e2e2;
  cursor: pointer;
  display: flex;
  font-weight: 400;
  gap: 8px;
  padding: 8px 10px;
}

#product-product .citydecor-option-value:has(input:checked) {
  border-color: var(--main-color, #9b59b6);
}

#product-product .citydecor-option-value img {
  height: 38px;
  object-fit: cover;
  width: 38px;
}

#product-product .card__calc-wp .inp-wp {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

#product-product .card__calc-wp .inp-wp > span {
  font-weight: 400;
}

#product-product .card__calc-wp .inp-wp > span > span {
  color: var(--main-color, #9b59b6);
}

#product-product .citydecor-material-option {
  cursor: pointer;
}

#product-product .citydecor-material-option label {
  cursor: pointer;
}

#product-product .citydecor-material-option > input {
  height: 1px;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  width: 1px;
}

#product-product .citydecor-material-option:has(input:checked) {
  border-color: var(--main-color, #9b59b6);
  box-shadow: 0 0 0 1px var(--main-color, #9b59b6);
}

#product-product .citydecor-material-option:has(input:checked) .btn {
  background: #575d65;
}

.citydecor-material-modal {
  z-index: 1200;
}

.citydecor-material-modal .popup__body {
  position: relative;
}

.citydecor-material-modal .popup__close {
  background-color: transparent;
  border: 0;
  padding: 0;
}

.citydecor-material-modal .citydecor-material-gallery {
  cursor: grab;
  overflow: hidden;
  overscroll-behavior-x: contain;
  touch-action: pan-y pinch-zoom;
}

.citydecor-material-modal .citydecor-material-gallery.is-swiping {
  cursor: grabbing;
}

.citydecor-material-modal .citydecor-material-gallery-slides {
  display: block;
  height: auto;
}

.citydecor-material-modal .citydecor-material-gallery [data-citydecor-material-slide] {
  display: none;
  height: auto;
  width: 100%;
  border: 1px solid #e2e2e2;
}

.citydecor-material-modal .citydecor-material-gallery [data-citydecor-material-slide].is-active {
  display: block;
}

.citydecor-material-modal .citydecor-material-gallery img {
  display: block;
  object-fit: cover;
}

.citydecor-material-modal .card__slider-arr {
  background: transparent;
  border: 0;
  color: #fff;
  cursor: pointer;
  filter: drop-shadow(0 1px 3px rgba(0, 0, 0, 0.6));
  padding: 12px;
}

.citydecor-material-modal .card__slider-arr._bottom-pug__arr_l {
  left: 0;
}

.citydecor-material-modal .citydecor-material-thumbnails .card__slider-min {
  overflow: visible;
  width: 100%;
}

.citydecor-material-modal .citydecor-material-thumb-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  height: auto;
  width: 100%;
}

.citydecor-material-modal .citydecor-material-thumb-grid [data-citydecor-material-thumb] {
  background: transparent;
  border: 1px solid #e2e2e2;
  cursor: pointer;
  height: auto;
  padding: 0;
  width: 100%;
}

.citydecor-material-modal .citydecor-material-thumb-grid [data-citydecor-material-thumb].is-active {
  border-color: var(--main-color, #9b59b6);
}

.citydecor-material-modal .citydecor-material-thumbnails img {
  display: block;
  object-fit: cover;
}

.citydecor-material-modal .citydecor-material-benefit-icon {
  align-items: center;
  background: var(--main-color, #9b59b6);
  border-radius: 50%;
  color: #fff;
  display: inline-flex;
  flex: 0 0 18px;
  font-size: 12px;
  height: 18px;
  justify-content: center;
  width: 18px;
}

.citydecor-material-modal .more-popup__right > .btn {
  border: 0;
  cursor: pointer;
  margin-top: 20px;
}

@media (max-width: 500px) {
  .citydecor-material-modal {
    padding-left: 5px;
    padding-right: 5px;
  }

  .citydecor-material-modal .citydecor-material-thumb-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

#product-product .card__text img,
#product-product .card__text iframe,
#product-product .card__text video {
  height: auto;
  max-width: 100%;
}

#product-product .card__text p,
#product-product .card__text div,
#product-product .card__text span {
  max-width: 100%;
}

#product-product .video-wrapper__poster {
  object-fit: cover;
}

.video-wrapper__poster[data-citydecor-youtube-poster],
#product-product .video-wrapper__poster[data-citydecor-youtube-poster] {
  background: #1b1b1b;
  object-fit: contain;
}

#product-product .text-danger {
  color: #b00020;
  font-size: 14px;
  line-height: 1.25;
  margin-top: 5px;
}

#product-product .has-error input,
#product-product .has-error select,
#product-product .has-error textarea,
#product-product .form-group.has-error {
  border-color: #b00020;
}

#product-product .alert {
  line-height: 1.35;
  margin-top: 20px;
  padding: 14px 18px;
}

#product-product .recomendations__block .product__gallery button {
  background: transparent;
  border: 0;
  padding: 0;
}

#product-product .recomendations__block .product__gallery img {
  object-fit: cover;
}

@media (max-width: 500px) {
  #product-product .card__download {
    bottom: 15px;
    right: 15px;
    width: 40px;
  }

  #product-product .citydecor-product-options {
    grid-template-columns: 1fr;
  }

  #product-product .card__btns button.btn {
    min-height: 50px;
  }
}

@media (max-width: 998px) {
  body.citydecor-filter-open {
    overflow: hidden;
  }

  .top-katalog__btn .open-filter {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    min-height: 44px;
    min-width: 44px;
  }

  body.citydecor-filter-open .katalog__wp {
    z-index: 300;
  }

  .filter-katalog-wp {
    max-width: min(390px, 92vw);
    width: 390px;
    z-index: 250;
  }

  .filter-katalog-wp::before {
    pointer-events: none;
  }

  .filter-katalog_v2 {
    width: 100%;
  }

  .citydecor-theme .dropdown__current {
    padding: 10px 8px;
  }
}

/* Preserve intrinsic proportions for images that gained width/height hints. */
.citydecor-theme img {
  height: auto;
}

/* Flat button baseline shared by the supplied layouts and OpenCart controls. */
.citydecor-theme .btn {
  border: 0;
  border-radius: 0;
  vertical-align: baseline;
  white-space: normal;
}

.citydecor-autocomplete {
  background: #fff;
  border: 1px solid #d8d8d2;
  box-shadow: 0 12px 30px rgb(0 0 0 / 10%);
  display: block;
  left: 0;
  max-height: 280px;
  overflow-y: auto;
  position: absolute;
  right: 0;
  top: 100%;
  z-index: 40;
}

.citydecor-autocomplete[hidden] {
  display: none;
}

.citydecor-autocomplete li,
.citydecor-autocomplete button {
  width: 100%;
}

.citydecor-autocomplete button {
  background: #fff;
  border: 0;
  color: #48483e;
  cursor: pointer;
  padding: 10px 14px;
  text-align: left;
}

.citydecor-autocomplete button:hover,
.citydecor-autocomplete .is-active button {
  background: #f1f1ed;
}

.citydecor-agreement-popup .popup__body {
  max-height: min(82vh, 760px);
  max-width: 900px;
  overflow-y: auto;
  padding: clamp(28px, 5vw, 56px);
  position: relative;
}

.citydecor-agreement-popup .popup__close {
  background: transparent;
  border: 0;
  cursor: pointer;
  font-size: 34px;
  line-height: 1;
  position: absolute;
  right: 18px;
  top: 14px;
}

.citydecor-agreement-popup__content {
  margin-top: 24px;
}

.citydecor-page a {
  color: inherit;
  transition: color 0.18s ease;
}

.citydecor-page a:hover,
.citydecor-page a:focus {
  color: var(--citydecor-accent-dark);
  text-decoration: none;
}

#cart {
  position: relative;
}

#cart > .citydecor-cart__dropdown {
  left: auto;
  min-width: 380px;
  right: 0;
  z-index: 20;
}

.citydecor-product-panel {
  display: none;
}

.citydecor-product-panel.is-visible {
  display: block;
}

.citydecor-product-panel > .swiper-wrapper,
.citydecor-carousel > .swiper-wrapper,
.citydecor-news-slider > .swiper-wrapper {
  box-sizing: border-box;
  cursor: grab;
  gap: var(--citydecor-product-gap, 20px);
  touch-action: pan-y;
  transform: translate3d(var(--citydecor-product-offset, 0), 0, 0);
  transition: transform 0.3s ease;
  user-select: none;
  -webkit-user-select: none;
}

.citydecor-product-panel.is-dragging > .swiper-wrapper,
.citydecor-carousel.is-dragging > .swiper-wrapper,
.citydecor-news-slider.is-dragging > .swiper-wrapper {
  cursor: grabbing;
  transition: none;
}

.citydecor-product-panel > .swiper-wrapper img,
.citydecor-carousel > .swiper-wrapper img,
.citydecor-news-slider > .swiper-wrapper img {
  -webkit-user-drag: none;
}

.citydecor-product-panel > .swiper-wrapper > .swiper-slide,
.citydecor-carousel > .swiper-wrapper > .swiper-slide,
.citydecor-news-slider > .swiper-wrapper > .swiper-slide {
  flex: 0 0 var(--citydecor-product-width, calc((100% - 60px) / 4));
  min-width: 0;
}

.citydecor-product-panel .product__nav button,
.citydecor-product-panel .product__pagination button,
.citydecor-product-panel .product-swiper__bottom button,
.citydecor-carousel button,
.citydecor-news-slider + .citydecor-carousel__bottom button,
.foto-rewiews .citydecor-carousel__bottom button {
  background: none;
  border: 0;
  color: inherit;
  padding: 0;
}

.citydecor-gallery-slide {
  flex: 0 0 100%;
  opacity: 0;
  transition: opacity 0.3s ease;
  visibility: hidden;
}

.citydecor-gallery-slide:not(:first-child) {
  margin-left: -100%;
}

.citydecor-gallery-slide.swiper-slide-active {
  opacity: 1;
  visibility: visible;
  z-index: 1;
}

/* Slider overlays must not block the product link between their controls. */
[data-citydecor-product-gallery] .product__tag,
[data-citydecor-product-gallery] .product__tag-2,
[data-citydecor-product-gallery] .product__nav,
[data-citydecor-product-gallery] .product__pagination {
  pointer-events: none;
}

[data-citydecor-product-gallery] .product__nav button,
[data-citydecor-product-gallery] .product__pagination button {
  pointer-events: auto;
}

.product__pagination .citydecor-gallery-thumb {
  flex: 0 0 calc((100% - 20px) / 3);
  height: 34px;
}

.product__pagination > .swiper-wrapper {
  gap: 10px;
  transform: translate3d(var(--citydecor-thumbs-offset, 0), 0, 0);
  transition: transform 0.3s ease;
}

.product__pagination .citydecor-gallery-thumb img {
  border-color: #fff !important;
}

.product__pagination .citydecor-gallery-thumb.swiper-slide-thumb-active img {
  border-color: var(--colorPrimary, #9b59b6) !important;
}

._swiper-bottom-pug button,
._bottom-pug__pug button,
.cases__pug button {
  background: #575d65 !important;
  border: 0;
  border-radius: 50%;
  cursor: pointer;
  flex: 0 0 6px;
  height: 6px;
  padding: 0;
  width: 6px;
}

._swiper-bottom-pug button.swiper-pagination-bullet-active,
._bottom-pug__pug button.swiper-pagination-bullet-active,
.cases__pug button.swiper-pagination-bullet-active {
  flex-basis: 10px;
  height: 10px;
  width: 10px;
}

@media (max-width: 500px) {
  .product__pagination .citydecor-gallery-thumb {
    height: 20px;
  }

  .citydecor-product-panel > .swiper-wrapper {
    --citydecor-product-gap: 10px;
  }
}

.citydecor-map {
  border: 0;
  display: block;
}

.citydecor-blog-reviews .product__nav button,
.citydecor-blog-reviews .product__pagination button {
  background: none;
  border: 0;
  color: inherit;
  padding: 0;
}

.citydecor-blog-reviews .product__next-btn img {
  transform: scaleX(-1);
}

.citydecor-blog-reviews .foto-rewiews__grid > article {
  display: flex;
}

.citydecor-blog-reviews .foto-rewiews__grid > article > .product {
  flex: 1;
  min-width: 0;
}

#citydecor-photo-reviews .citydecor-carousel > .swiper-wrapper > .swiper-slide {
  display: flex;
}

#citydecor-photo-reviews .citydecor-carousel > .swiper-wrapper > .swiper-slide > .product {
  flex: 1;
  min-width: 0;
}

.citydecor-news-slider .cases__slide {
  display: flex;
  flex-direction: column;
  background: #2e3346;
}

.citydecor-news-slider .cases__slide::before {
  display: none;
}

.citydecor-news-slider .cases__slide img {
  aspect-ratio: 600 / 338;
  display: block;
}

.citydecor-news-slider .cases__slide span {
  position: static;
  display: flex;
  flex: 1;
  align-items: center;
  justify-content: center;
  padding: 12px 10px;
  background: #2e3346;
}

._pugination-wp .pagination {
  display: flex;
  gap: 10px;
  margin: 0;
  padding: 0;
}

._pugination-wp .pagination > li {
  display: block;
}

._pugination-wp .pagination > li > a,
._pugination-wp .pagination > li > span {
  align-items: center;
  background: #fff;
  border: 1px solid #e2e2e2;
  color: var(--main-color, #9b59b6);
  display: flex;
  height: 38px;
  justify-content: center;
  min-width: 32px;
  padding: 0 8px;
}

._pugination-wp .pagination > .active > span,
._pugination-wp .pagination > .active > a {
  background: var(--main-color, #9b59b6);
  color: #fff;
}

.citydecor-blog-category__description {
  margin-top: 40px;
}

.citydecor-blog-article__crumbs {
  display: flex;
  flex-wrap: wrap;
  margin-bottom: 40px;
}

.citydecor-blog-article__header {
  margin: 0 auto 40px;
  max-width: 940px;
  text-align: center;
}

.citydecor-blog-article__meta {
  display: flex;
  gap: 24px;
  justify-content: center;
  line-height: 1.4;
  margin-top: 16px;
}

.citydecor-blog-article__hero,
.citydecor-blog-article__content,
.citydecor-blog-article__gallery,
.citydecor-blog-article__categories {
  margin-left: auto;
  margin-right: auto;
  max-width: 980px;
}

.citydecor-blog-article__hero img {
  aspect-ratio: 1180 / 800;
  object-fit: cover;
  width: 100%;
}

.citydecor-blog-article__content {
  font-size: 18px;
  line-height: 1.55;
  margin-top: 40px;
  overflow-wrap: anywhere;
}

.citydecor-blog-article__content img,
.citydecor-blog-article__content iframe,
.citydecor-blog-article__content video {
  height: auto;
  max-width: 100%;
}

.citydecor-blog-article__gallery {
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(3, 1fr);
  margin-top: 40px;
}

.citydecor-blog-article__gallery img {
  aspect-ratio: 260 / 180;
  object-fit: cover;
  width: 100%;
}

.citydecor-blog-article__categories {
  line-height: 1.5;
  margin-top: 32px;
}

.citydecor-blog-article__back {
  margin: 32px auto 0;
}

@media (max-width: 768px) {
  .citydecor-blog-article__crumbs {
    margin-bottom: 24px;
  }

  .citydecor-blog-article__header {
    margin-bottom: 24px;
  }

  .citydecor-blog-article__meta {
    align-items: center;
    flex-direction: column;
    gap: 5px;
  }

  .citydecor-blog-article__content {
    font-size: 15px;
    margin-top: 24px;
  }

  .citydecor-blog-article__gallery {
    gap: 8px;
    grid-template-columns: repeat(2, 1fr);
    margin-top: 24px;
  }

  .citydecor-blog-article__back {
    width: 100%;
  }
}

.citydecor-container {
  box-sizing: border-box;
  margin: 0 auto;
  max-width: 1248px;
  padding-left: 24px;
  padding-right: 24px;
  width: 100%;
}

.citydecor-skip-link {
  background: var(--citydecor-accent);
  color: #fff !important;
  left: 12px;
  padding: 10px 16px;
  position: fixed;
  top: -60px;
  z-index: 10000;
}

.citydecor-skip-link:focus {
  top: 12px;
}

.citydecor-icon {
  display: block;
  height: 23px;
  object-fit: contain;
  width: 23px;
}

.citydecor-topbar {
  background: var(--citydecor-surface-alt);
  border-bottom: 1px solid var(--citydecor-line);
  color: var(--citydecor-muted);
  font-size: 13px;
}

.citydecor-topbar__inner,
.citydecor-topbar__selectors,
.citydecor-topbar__contact {
  align-items: center;
  display: flex;
}

.citydecor-topbar__inner {
  justify-content: space-between;
  min-height: 38px;
}

.citydecor-topbar__selectors,
.citydecor-topbar__contact {
  gap: 22px;
}

.citydecor-topbar .btn-link {
  color: inherit;
  font-size: 13px;
  padding: 4px 0;
  text-shadow: none;
}

.citydecor-topbar .dropdown-menu {
  border-color: var(--citydecor-line);
  box-shadow: var(--citydecor-shadow);
  font-size: 13px;
}

.citydecor-phone {
  align-items: center;
  display: inline-flex;
  gap: 7px;
}

.citydecor-phone .citydecor-icon {
  height: 16px;
  width: 16px;
}

.citydecor-header {
  background: var(--citydecor-surface);
  position: relative;
  z-index: 150;
}

.citydecor-header__top,
.citydecor-header__bottom,
.citydecor-header__tools,
.citydecor-header__selectors {
  align-items: center;
  display: flex;
}

.citydecor-header__top {
  display: grid;
  gap: 34px;
  grid-template-columns: minmax(220px, 1fr) minmax(260px, 390px) minmax(220px, 1fr);
  min-height: 72px;
}

.citydecor-header__bottom {
  gap: 38px;
  min-height: 96px;
}

.citydecor-utility {
  color: var(--citydecor-muted);
  font-size: 14px;
}

.citydecor-header__tools {
  gap: 16px;
  justify-content: flex-end;
}

.citydecor-header__selectors {
  gap: 8px;
}

.citydecor-header__selectors .btn-link {
  color: var(--citydecor-ink);
  font-size: 13px;
  font-weight: 600;
  padding: 4px;
  text-shadow: none;
}

.citydecor-selector__toggle {
  background: transparent;
  border: 0;
  color: var(--citydecor-ink);
  font-size: 13px;
  font-weight: 700;
  padding: 5px;
}

.citydecor-selector .dropdown-menu {
  border-color: var(--citydecor-line);
  box-shadow: var(--citydecor-shadow);
  min-width: 210px;
  padding: 6px 0;
}

.citydecor-selector .dropdown-menu .btn-link {
  color: var(--citydecor-ink);
  font-weight: 400;
  padding: 7px 14px;
  text-align: left;
}

.citydecor-header__navigation {
  flex: 1 1 auto;
  min-width: 0;
}

.citydecor-logo {
  color: var(--citydecor-accent);
  display: inline-flex;
  flex: 0 0 auto;
}

.citydecor-logo__image {
  height: 70px;
  width: 153px;
}

.citydecor-search {
  border: 0;
  border-bottom: 1px solid #cfd3d8;
  border-radius: 0;
  display: flex;
  height: 40px;
  max-width: 390px;
  overflow: hidden;
  width: 100%;
}

.citydecor-search:focus-within {
  border-bottom-color: var(--citydecor-accent);
  box-shadow: none;
}

.citydecor-search input {
  background: transparent;
  border: 0;
  box-shadow: none;
  flex: 1 1 auto;
  min-width: 0;
  outline: 0;
  padding: 0 10px;
}

.citydecor-search button {
  align-items: center;
  background: transparent;
  border: 0;
  color: var(--citydecor-ink);
  display: flex;
  justify-content: center;
  min-width: 38px;
  order: -1;
}

.citydecor-search button:hover,
.citydecor-search button:focus {
  background: transparent;
  color: var(--citydecor-accent-dark);
}

.citydecor-actions {
  align-items: center;
  display: flex;
  gap: 7px;
}

.citydecor-action {
  align-items: center;
  background: transparent;
  border: 0;
  color: var(--citydecor-ink);
  display: flex;
  justify-content: center;
  min-height: 36px;
  min-width: 34px;
  padding: 5px;
}

.citydecor-action:hover,
.citydecor-action:focus,
.citydecor-action[aria-expanded="true"] {
  color: var(--citydecor-accent-dark);
}

.citydecor-cart {
  position: relative;
}

.citydecor-cart__toggle {
  white-space: nowrap;
}

.citydecor-cart__dropdown {
  border: 1px solid var(--citydecor-line);
  border-radius: var(--citydecor-radius);
  box-shadow: var(--citydecor-shadow);
  color: var(--citydecor-ink);
  margin-top: 12px;
  min-width: 420px;
  padding: 18px;
}

.citydecor-cart__item {
  align-items: center;
  border-bottom: 1px solid var(--citydecor-line);
  display: grid;
  gap: 12px;
  grid-template-columns: 56px minmax(100px, 1fr) auto 24px;
  padding: 10px 0;
}

.citydecor-cart__thumb img {
  height: 52px;
  object-fit: cover;
  width: 52px;
}

.citydecor-cart__description small {
  color: var(--citydecor-muted);
  display: block;
}

.citydecor-cart__quantity {
  white-space: nowrap;
}

.citydecor-cart__remove {
  background: transparent;
  border: 0;
  color: #a12d2d;
  font-size: 22px;
  line-height: 1;
  padding: 0;
}

.citydecor-cart__totals {
  margin: 12px 0;
}

.citydecor-cart__totals div,
.citydecor-cart__buttons {
  display: flex;
  gap: 18px;
  justify-content: space-between;
}

.citydecor-cart__buttons {
  align-items: center;
}

.citydecor-cart__empty {
  margin: 8px;
  text-align: center;
}

.citydecor-button,
.citydecor-theme .btn-primary {
  background: var(--citydecor-accent);
  border: 1px solid var(--citydecor-accent);
  border-radius: var(--citydecor-radius);
  color: #fff !important;
  display: inline-flex;
  justify-content: center;
  padding: 10px 18px;
  text-shadow: none;
}

.citydecor-button:hover,
.citydecor-button:focus,
.citydecor-theme .btn-primary:hover,
.citydecor-theme .btn-primary:focus {
  background: var(--citydecor-accent-dark);
  border-color: var(--citydecor-accent-dark);
}

.citydecor-menu-wrap {
  background: transparent;
  color: var(--citydecor-ink);
  position: relative;
  z-index: 100;
}

.citydecor-menu__toggle {
  align-items: center;
  background: transparent;
  border: 0;
  color: var(--citydecor-ink);
  display: none;
  font-weight: 600;
  gap: 10px;
  min-height: 50px;
  padding: 0;
}

.citydecor-menu__burger {
  display: grid;
  gap: 4px;
}

.citydecor-menu__burger i {
  background: currentColor;
  display: block;
  height: 2px;
  width: 21px;
}

.citydecor-menu__list,
.citydecor-menu__dropdown ul,
.citydecor-footer ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.citydecor-menu__list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.citydecor-menu__item {
  position: relative;
}

.citydecor-menu__item > a {
  align-items: center;
  color: var(--citydecor-muted);
  display: flex;
  font-size: 14px;
  font-weight: 600;
  min-height: 48px;
  padding: 0 15px;
}

.citydecor-menu__item > a:hover,
.citydecor-menu__item > a:focus,
.citydecor-menu__item:focus-within > a {
  background: transparent;
  color: var(--citydecor-accent-dark);
}

.citydecor-menu__dropdown {
  background: #fff;
  border: 1px solid var(--citydecor-line);
  box-shadow: var(--citydecor-shadow);
  color: var(--citydecor-ink);
  display: none;
  gap: 30px;
  left: 0;
  min-width: 480px;
  padding: 22px;
  position: absolute;
  top: 100%;
}

.citydecor-menu__item:hover .citydecor-menu__dropdown,
.citydecor-menu__item:focus-within .citydecor-menu__dropdown {
  display: flex;
  flex-wrap: wrap;
}

.citydecor-menu__dropdown ul {
  min-width: 180px;
}

.citydecor-menu__dropdown li + li {
  margin-top: 9px;
}

.citydecor-menu__all {
  color: var(--citydecor-accent) !important;
  flex-basis: 100%;
  font-weight: 600;
}

.citydecor-theme #content {
  min-height: 360px;
}

.citydecor-theme .breadcrumb {
  background: transparent;
  margin-bottom: 20px;
  padding-left: 0;
  padding-right: 0;
}

.citydecor-theme .product-thumb {
  border-color: var(--citydecor-line);
  border-radius: var(--citydecor-radius);
  overflow: hidden;
}

.citydecor-page {
  padding-top: 18px;
}

.citydecor-page__header h1,
.citydecor-product__summary h1 {
  color: var(--citydecor-ink);
  font-size: clamp(28px, 3vw, 42px);
  font-weight: 600;
  letter-spacing: -0.02em;
  margin: 0 0 24px;
}

.citydecor-breadcrumb .fa-home::before {
  content: "⌂";
  font-family: inherit;
}

.citydecor-category-description {
  background: var(--citydecor-surface-alt);
  border-radius: var(--citydecor-radius);
  color: #50555c;
  margin-top: 58px;
  padding: 34px;
}

.citydecor-category-description > :first-child {
  margin-top: 0 !important;
}

.citydecor-category-description > :last-child {
  margin-bottom: 0 !important;
}

.citydecor-category-intro {
  align-items: flex-start;
  display: flex;
  gap: 24px;
  margin-bottom: 30px;
}

.citydecor-category-intro > img {
  border-radius: var(--citydecor-radius);
  height: 160px;
  object-fit: cover;
  width: 160px;
}

.citydecor-category-intro__text {
  color: var(--citydecor-muted);
  max-width: 900px;
}

.citydecor-subcategories {
  margin-bottom: 34px;
}

.citydecor-subcategories h2,
.citydecor-related h2 {
  font-size: 24px;
  margin: 0 0 18px;
}

.citydecor-subcategories ul {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  list-style: none;
  margin: 0;
  padding: 0;
}

.citydecor-subcategories a {
  background: var(--citydecor-surface-alt);
  border-radius: var(--citydecor-radius);
  display: block;
  padding: 13px 16px;
}

.citydecor-listing-toolbar {
  align-items: center;
  border-bottom: 1px solid var(--citydecor-line);
  border-top: 1px solid var(--citydecor-line);
  display: flex;
  gap: 18px;
  justify-content: flex-end;
  margin-bottom: 26px;
  padding: 14px 0;
}

.citydecor-listing-toolbar__compare {
  margin-right: auto;
}

.citydecor-listing-toolbar__field {
  align-items: center;
  display: flex;
  gap: 8px;
}

.citydecor-listing-toolbar__field label {
  color: var(--citydecor-muted);
  font-size: 13px;
  font-weight: 400;
  margin: 0;
  white-space: nowrap;
}

.citydecor-product-grid {
  display: grid;
  gap: 24px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.citydecor-product-card {
  background: #fff;
  border: 1px solid var(--citydecor-line);
  border-radius: var(--citydecor-radius);
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  transition: box-shadow 0.18s ease, transform 0.18s ease;
}

.citydecor-product-card:hover {
  box-shadow: var(--citydecor-shadow);
  transform: translateY(-2px);
}

.citydecor-product-card__image {
  aspect-ratio: 1 / 1;
  background: var(--citydecor-surface-alt);
  display: block;
  overflow: hidden;
}

.citydecor-product-card__image img {
  height: 100%;
  object-fit: cover;
  transition: transform 0.25s ease;
  width: 100%;
}

.citydecor-product-card:hover .citydecor-product-card__image img {
  transform: scale(1.025);
}

.citydecor-product-card__body {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  padding: 16px;
}

.citydecor-product-card__body h3 {
  font-size: 17px;
  font-weight: 600;
  line-height: 1.35;
  margin: 0 0 10px;
}

.citydecor-product-card__description {
  color: var(--citydecor-muted);
  display: -webkit-box;
  font-size: 13px;
  margin-bottom: 14px;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.citydecor-rating {
  color: #efaa22;
  display: flex;
  gap: 3px;
}

.citydecor-product-card__price {
  font-size: 18px;
  font-weight: 600;
  margin: auto 0 0;
  padding-top: 14px;
}

.citydecor-product-card__price small,
.citydecor-product__price small {
  color: var(--citydecor-muted);
  display: block;
  font-size: 12px;
  font-weight: 400;
}

.citydecor-price-old {
  color: #92979f;
  font-size: 0.82em;
  margin-right: 8px;
  text-decoration: line-through;
}

.citydecor-price-new {
  color: #b22f3b;
}

.citydecor-product-card__actions {
  border-top: 1px solid var(--citydecor-line);
  display: grid;
  grid-template-columns: 1fr 46px 46px;
}

.citydecor-product-card__actions button {
  align-items: center;
  background: #fff;
  border: 0;
  color: var(--citydecor-ink);
  display: flex;
  gap: 8px;
  justify-content: center;
  min-height: 48px;
}

.citydecor-product-card__actions button + button {
  border-left: 1px solid var(--citydecor-line);
}

.citydecor-product-card__actions button:hover,
.citydecor-product-card__actions button:focus {
  background: var(--citydecor-accent-soft);
  color: var(--citydecor-accent-dark);
}

.citydecor-product-card__actions .citydecor-icon {
  height: 20px;
  width: 20px;
}

.citydecor-pagination {
  align-items: center;
  display: flex;
  justify-content: space-between;
  margin-top: 32px;
}

.citydecor-pagination .pagination {
  margin: 0;
}

.citydecor-pagination .pagination > .active > span {
  background: var(--citydecor-accent);
  border-color: var(--citydecor-accent);
}

.citydecor-empty-state {
  background: var(--citydecor-surface-alt);
  border-radius: var(--citydecor-radius);
  padding: 36px;
  text-align: center;
}

.citydecor-product {
  display: grid;
  gap: 54px;
  grid-template-columns: minmax(0, 1.45fr) minmax(320px, 0.75fr);
}

.citydecor-product__gallery {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  list-style: none;
  margin: 0;
  padding: 0;
}

.citydecor-product__gallery img {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.citydecor-product__main-image {
  aspect-ratio: 1 / 1;
  background: var(--citydecor-surface-alt);
  grid-column: 1 / -1;
  overflow: hidden;
}

.citydecor-product__additional-image {
  aspect-ratio: 1 / 1;
  border: 1px solid var(--citydecor-line);
  overflow: hidden;
}

.citydecor-product__summary {
  position: relative;
}

.citydecor-product__quick-actions {
  display: flex;
  gap: 5px;
  position: absolute;
  right: 0;
  top: 0;
}

.citydecor-product__quick-actions button {
  align-items: center;
  background: transparent;
  border: 1px solid var(--citydecor-line);
  border-radius: 50%;
  color: var(--citydecor-muted);
  display: flex;
  height: 42px;
  justify-content: center;
  width: 42px;
}

.citydecor-product__quick-actions .citydecor-icon {
  height: 20px;
  width: 20px;
}

.citydecor-product__summary h1 {
  padding-right: 104px;
}

.citydecor-product__rating {
  align-items: center;
  margin-bottom: 18px;
}

.citydecor-product__rating a {
  color: var(--citydecor-muted);
  margin-left: 10px;
}

.citydecor-product__meta {
  border-bottom: 1px solid var(--citydecor-line);
  border-top: 1px solid var(--citydecor-line);
  display: grid;
  gap: 7px;
  margin: 0 0 22px;
  padding: 16px 0;
}

.citydecor-product__meta div {
  display: grid;
  grid-template-columns: 140px 1fr;
}

.citydecor-product__meta dt {
  color: var(--citydecor-muted);
  font-weight: 400;
}

.citydecor-product__meta dd {
  margin: 0;
}

.citydecor-product__price {
  margin-bottom: 22px;
}

.citydecor-product__price strong {
  display: block;
  font-size: 30px;
  line-height: 1.25;
}

.citydecor-product-form {
  background: var(--citydecor-surface-alt);
  border-radius: var(--citydecor-radius);
  padding: 22px;
}

.citydecor-product-form h2 {
  font-size: 20px;
  margin: 0 0 18px;
}

.citydecor-product-form .control-label,
.citydecor-product-form legend.control-label {
  border: 0;
  font-size: 14px;
  font-weight: 600;
  margin-bottom: 7px;
  padding: 0;
}

.citydecor-product-form .form-control {
  border-color: #cfd3d8;
  border-radius: var(--citydecor-radius);
  box-shadow: none;
  height: 44px;
}

.citydecor-product-form textarea.form-control {
  height: auto;
}

.citydecor-option-values {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.citydecor-option-value {
  align-items: center;
  background: #fff;
  border: 1px solid var(--citydecor-line);
  border-radius: var(--citydecor-radius);
  cursor: pointer;
  display: inline-flex;
  gap: 8px;
  margin: 0;
  padding: 8px 11px;
}

.citydecor-option-value:has(input:checked) {
  border-color: var(--citydecor-accent);
  box-shadow: 0 0 0 1px var(--citydecor-accent);
}

.citydecor-option-value img {
  height: 36px;
  object-fit: cover;
  width: 36px;
}

.citydecor-product-form__purchase {
  align-items: flex-end;
  display: grid;
  gap: 12px;
  grid-template-columns: 88px 1fr;
  margin-top: 22px;
}

.citydecor-quantity label {
  display: block;
  font-size: 13px;
}

.citydecor-product-form__cart {
  align-items: center;
  height: 44px;
  width: 100%;
}

.citydecor-product-details,
.citydecor-related {
  margin-top: 54px;
}

.citydecor-product-details .nav-tabs > li > a {
  font-size: 16px;
  padding: 13px 20px;
}

.citydecor-product-details .nav-tabs > li.active > a {
  border-top-color: var(--citydecor-accent);
  border-top-width: 2px;
}

.citydecor-product-details .tab-content {
  font-size: 15px;
  padding: 26px 0;
}

.citydecor-review-rating {
  align-items: center;
  display: flex;
  gap: 8px;
}

.citydecor-tags {
  margin-top: 28px;
}

.citydecor-home-hero {
  padding: 32px 0 96px;
}

.citydecor-home-hero__grid {
  align-items: stretch;
  display: grid;
  gap: 20px;
  grid-template-columns: minmax(0, 1.45fr) minmax(320px, 1fr);
}

.citydecor-home-hero__primary {
  display: flex;
  flex-direction: column;
}

.citydecor-home-hero__image,
.citydecor-home-hero__showroom {
  background: #4b4c4e;
  overflow: hidden;
  position: relative;
}

.citydecor-home-hero__image {
  aspect-ratio: 3 / 2;
}

.citydecor-home-hero__image::after,
.citydecor-home-hero__showroom::after {
  background: linear-gradient(180deg, rgba(20, 21, 22, 0.02), rgba(20, 21, 22, 0.32));
  content: "";
  inset: 0;
  position: absolute;
}

.citydecor-home-hero__image > img,
.citydecor-home-hero__showroom > img {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.citydecor-home-hero__play {
  align-items: center;
  border: 2px solid #fff;
  border-radius: 50%;
  color: #fff;
  display: flex;
  font-size: 25px;
  height: 62px;
  justify-content: center;
  left: 50%;
  padding-left: 4px;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 62px;
  z-index: 2;
}

.citydecor-home-hero__primary h1 {
  color: #5f646b;
  font-size: clamp(24px, 2.2vw, 31px);
  font-weight: 700;
  line-height: 1.25;
  margin: 26px 0 28px;
  max-width: 760px;
}

.citydecor-home-hero__primary .citydecor-button {
  align-self: flex-start;
  border-radius: 0;
  font-size: 13px;
  font-weight: 700;
  padding: 12px 30px;
  text-transform: uppercase;
}

.citydecor-home-hero__showroom {
  color: #fff !important;
  min-height: 630px;
}

.citydecor-home-hero__showroom-copy {
  bottom: 48px;
  display: grid;
  gap: 14px;
  left: 38px;
  position: absolute;
  right: 32px;
  z-index: 2;
}

.citydecor-home-hero__showroom-copy strong {
  font-size: clamp(23px, 2.1vw, 30px);
  line-height: 1.2;
}

.citydecor-home-hero__showroom-copy span {
  font-size: 16px;
}

.citydecor-home-section {
  padding: 86px 0;
}

.citydecor-home-section--muted {
  background: #f5f6f7;
}

.citydecor-home-section__header {
  margin: 0 auto 42px;
  max-width: 820px;
  text-align: center;
}

.citydecor-home-section__header--left {
  margin-left: 0;
  text-align: left;
}

.citydecor-home-section__header h2,
.citydecor-designers__copy h2 {
  color: #5f646b;
  font-size: clamp(27px, 3vw, 40px);
  font-weight: 700;
  line-height: 1.2;
  margin: 0 0 18px;
}

.citydecor-home-section__header p,
.citydecor-designers__copy p {
  color: var(--citydecor-muted);
  font-size: 17px;
  line-height: 1.65;
  margin: 0;
}

.citydecor-home-categories {
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.citydecor-home-category {
  background: #fff;
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding-bottom: 22px;
}

.citydecor-home-category__image {
  aspect-ratio: 1 / 1;
  display: block;
  margin-bottom: 20px;
  overflow: hidden;
  position: relative;
}

.citydecor-home-category__image::after {
  background: linear-gradient(180deg, transparent 55%, rgba(20, 21, 22, 0.28));
  content: "";
  inset: 0;
  position: absolute;
}

.citydecor-home-category__image img {
  height: 100%;
  object-fit: cover;
  transition: transform 0.25s ease;
  width: 100%;
}

.citydecor-home-category:hover .citydecor-home-category__image img {
  transform: scale(1.03);
}

.citydecor-home-category > strong,
.citydecor-home-category > span,
.citydecor-home-category > em {
  margin-left: 20px;
  margin-right: 20px;
}

.citydecor-home-category > strong {
  color: #555a62;
  font-size: 21px;
  line-height: 1.25;
  margin-bottom: 10px;
}

.citydecor-home-category > span {
  color: var(--citydecor-muted);
  display: -webkit-box;
  font-size: 13px;
  line-height: 1.5;
  margin-bottom: 18px;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
}

.citydecor-home-category > em {
  color: var(--citydecor-accent-dark);
  font-size: 13px;
  font-style: normal;
  font-weight: 700;
  margin-top: auto;
  text-transform: uppercase;
}

.citydecor-home-advantages {
  display: grid;
  gap: 18px;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  list-style: none;
  margin: 0;
  padding: 0;
  text-align: center;
}

.citydecor-home-advantages li {
  color: #555a62;
  font-size: 14px;
  font-weight: 600;
}

.citydecor-home-advantages span {
  align-items: center;
  background: var(--citydecor-accent-soft);
  border-radius: 50%;
  color: var(--citydecor-accent-dark);
  display: flex;
  font-size: 22px;
  height: 104px;
  justify-content: center;
  margin: 0 auto 18px;
  width: 104px;
}

.citydecor-designers {
  padding-top: 30px;
}

.citydecor-designers__grid {
  align-items: center;
  display: grid;
  gap: 64px;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
}

.citydecor-designers__copy p {
  margin-bottom: 28px;
}

.citydecor-designers__grid > img {
  max-height: 520px;
  object-fit: cover;
  width: 100%;
}

.citydecor-footer {
  background: #303237;
  color: #d4d7dc;
  margin-top: 64px;
  padding: 48px 0;
}

.citydecor-footer__grid {
  display: grid;
  gap: 40px;
  grid-template-columns: 1.4fr repeat(3, 1fr);
}

.citydecor-logo--footer {
  color: #fff;
  filter: grayscale(1) brightness(2.5);
  margin-bottom: 18px;
}

.citydecor-footer__brand p {
  color: #aeb3ba;
  font-size: 13px;
}

.citydecor-footer__section h2 {
  color: #fff;
  font-size: 16px;
  font-weight: 600;
  margin: 0 0 16px;
}

.citydecor-footer__section li + li {
  margin-top: 9px;
}

.citydecor-footer a:hover,
.citydecor-footer a:focus {
  color: #fff;
}

@media (max-width: 1199px) {
  .citydecor-header__top {
    grid-template-columns: minmax(130px, 1fr) minmax(240px, 360px) auto;
  }

  .citydecor-header__bottom {
    gap: 22px;
  }

  .citydecor-phone strong {
    font-size: 13px;
  }

  .citydecor-menu__item > a {
    padding-left: 12px;
    padding-right: 12px;
  }

  .citydecor-product-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .citydecor-product {
    gap: 34px;
  }

  .citydecor-home-hero__showroom {
    min-height: 570px;
  }

  .citydecor-home-advantages {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    row-gap: 34px;
  }
}

@media (max-width: 991px) {
  .citydecor-container {
    padding-left: 18px;
    padding-right: 18px;
  }

  .citydecor-header__top {
    gap: 18px;
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: 62px;
  }

  .citydecor-utility {
    display: none;
  }

  .citydecor-header__search {
    grid-column: 1;
  }

  .citydecor-header__bottom {
    min-height: 78px;
  }

  .citydecor-logo__image {
    height: 58px;
    width: 127px;
  }

  .citydecor-action {
    min-width: 38px;
  }

  .citydecor-menu__toggle {
    display: flex;
  }

  .citydecor-menu__panel {
    background: #fff;
    color: var(--citydecor-ink);
    display: none;
    left: 0;
    max-height: calc(100vh - 170px);
    overflow: auto;
    position: absolute;
    right: 0;
    top: 100%;
    z-index: 200;
  }

  .citydecor-menu__panel.is-open {
    display: block;
  }

  .citydecor-menu__list {
    display: block;
    margin: 0 auto;
    max-width: 1440px;
    padding: 8px 18px 18px;
  }

  .citydecor-menu__item > a {
    border-bottom: 1px solid var(--citydecor-line);
    color: var(--citydecor-ink);
    min-height: 46px;
    padding: 0;
  }

  .citydecor-menu__item > a:hover,
  .citydecor-menu__item > a:focus,
  .citydecor-menu__item:focus-within > a {
    background: transparent;
    color: var(--citydecor-accent-dark);
  }

  .citydecor-menu__dropdown,
  .citydecor-menu__item:hover .citydecor-menu__dropdown,
  .citydecor-menu__item:focus-within .citydecor-menu__dropdown {
    border: 0;
    box-shadow: none;
    display: block;
    min-width: 0;
    padding: 8px 0 16px 18px;
    position: static;
  }

  .citydecor-menu__dropdown ul {
    min-width: 0;
  }

  .citydecor-menu__dropdown ul + ul {
    margin-top: 9px;
  }

  .citydecor-footer__grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .citydecor-subcategories ul {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .citydecor-product-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .citydecor-product {
    grid-template-columns: 1fr;
  }

  .citydecor-home-hero {
    padding-bottom: 72px;
  }

  .citydecor-home-hero__grid {
    grid-template-columns: minmax(0, 1.3fr) minmax(260px, 0.7fr);
  }

  .citydecor-home-hero__showroom {
    min-height: 480px;
  }

  .citydecor-home-categories {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .citydecor-designers__grid {
    gap: 36px;
  }
}

@media (max-width: 767px) {
  .citydecor-header__top {
    gap: 10px;
    grid-template-columns: minmax(0, 1fr) auto;
    min-height: 56px;
  }

  .citydecor-header__selectors {
    display: none;
  }

  .citydecor-header__tools {
    gap: 4px;
  }

  .citydecor-header__bottom {
    justify-content: space-between;
    min-height: 72px;
  }

  .citydecor-header__navigation {
    flex: 0 0 auto;
    order: 3;
  }

  .citydecor-header__bottom > .citydecor-phone strong {
    display: none;
  }

  .citydecor-actions {
    gap: 2px;
  }

  .citydecor-cart__dropdown {
    max-width: calc(100vw - 24px);
    min-width: 300px;
    position: fixed;
    right: 12px;
    top: 76px;
  }

  .citydecor-cart__item {
    grid-template-columns: 48px minmax(90px, 1fr) 22px;
  }

  .citydecor-cart__quantity {
    grid-column: 2;
  }

  .citydecor-footer {
    margin-top: 42px;
    padding: 36px 0;
  }

  .citydecor-footer__grid {
    grid-template-columns: 1fr;
  }

  .citydecor-category-intro {
    display: block;
  }

  .citydecor-category-intro > img {
    margin-bottom: 16px;
  }

  .citydecor-listing-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .citydecor-listing-toolbar__compare {
    margin-right: 0;
  }

  .citydecor-listing-toolbar__field {
    display: grid;
    grid-template-columns: 90px 1fr;
  }

  .citydecor-product-grid {
    gap: 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .citydecor-product-card__body {
    padding: 12px;
  }

  .citydecor-product-card__description,
  .citydecor-product-card__actions .citydecor-product-card__cart span {
    display: none;
  }

  .citydecor-product-card__actions {
    grid-template-columns: repeat(3, 1fr);
  }

  .citydecor-product__summary h1 {
    font-size: 28px;
  }

  .citydecor-product__meta div {
    grid-template-columns: 110px 1fr;
  }

  .citydecor-product-form {
    padding: 16px;
  }

  .citydecor-product-details .nav-tabs {
    display: flex;
    overflow-x: auto;
    white-space: nowrap;
  }

  .citydecor-home-hero {
    padding: 18px 0 54px;
  }

  .citydecor-home-hero__grid,
  .citydecor-designers__grid {
    grid-template-columns: 1fr;
  }

  .citydecor-home-hero__showroom {
    min-height: 480px;
  }

  .citydecor-home-section {
    padding: 58px 0;
  }

  .citydecor-home-section__header {
    margin-bottom: 30px;
  }

  .citydecor-home-advantages {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .citydecor-designers__grid > img {
    grid-row: 1;
  }
}

@media (max-width: 419px) {
  .citydecor-product-grid {
    grid-template-columns: 1fr;
  }

  .citydecor-home-categories {
    grid-template-columns: 1fr;
  }
}

/* Account, wishlist and compare have no supplied HTML mock-up. These scoped
 * rules use the same flat geometry, type scale and colour system as the
 * supplied Citydecor pages while keeping the native OpenCart form protocol. */
.citydecor-account__section {
  min-height: 52vh;
  padding-bottom: 80px;
}

.citydecor-account__crumbs {
  margin-bottom: 58px;
}

.citydecor-account__title {
  margin-bottom: 32px;
}

.citydecor-auth-grid,
.citydecor-account__dashboard {
  display: grid;
  gap: 28px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.citydecor-account__dashboard {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.citydecor-account__panel,
.citydecor-account__empty {
  background: #f5f5f6;
  padding: 34px;
}

.citydecor-account__panel h1,
.citydecor-account__panel h2,
.citydecor-account__panel h3 {
  margin-top: 0;
}

.citydecor-account__panel h2 {
  margin-bottom: 24px;
}

.citydecor-account__panel h3 {
  font-size: 17px;
  margin-bottom: 12px;
}

.citydecor-account__panel p,
.citydecor-account__message {
  line-height: 1.45;
  margin-bottom: 24px;
}

.citydecor-account__narrow {
  margin-left: auto;
  margin-right: auto;
  max-width: 860px;
}

.citydecor-account__form {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.citydecor-account__form-grid {
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.citydecor-account__form label:not(.citydecor-account__agreement),
.citydecor-account__choice-field {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
  position: relative;
}

.citydecor-account__form label > span,
.citydecor-account__form legend {
  color: #575d65;
  font-size: 15px;
  font-weight: 700;
}

.citydecor-account__form fieldset {
  border: 0;
  margin: 0;
  min-width: 0;
  padding: 0;
}

.citydecor-account__form > fieldset > legend {
  border-bottom: 1px solid #dedee1;
  font-size: 20px;
  margin-bottom: 20px;
  padding: 0 0 12px;
  width: 100%;
}

.citydecor-account__form input[type="text"],
.citydecor-account__form input[type="email"],
.citydecor-account__form input[type="tel"],
.citydecor-account__form input[type="url"],
.citydecor-account__form input[type="number"],
.citydecor-account__form input[type="password"],
.citydecor-account__form input[type="date"],
.citydecor-account__form input[type="time"],
.citydecor-account__form input[type="datetime-local"],
.citydecor-account__form select,
.citydecor-account__form textarea {
  background: #fff;
  border: 1px solid #d9d9dc;
  border-radius: 0;
  color: #575d65;
  font: inherit;
  line-height: 1.25;
  min-height: 50px;
  padding: 13px 15px;
  width: 100%;
}

.citydecor-account__form textarea {
  resize: vertical;
}

.citydecor-account__form input:focus,
.citydecor-account__form select:focus,
.citydecor-account__form textarea:focus {
  border-color: var(--main-color, #9b59b6);
  outline: 1px solid var(--main-color, #9b59b6);
}

.citydecor-account__text-link,
.citydecor-account__remove {
  color: var(--main-color, #9b59b6);
  text-decoration: underline;
}

.citydecor-account__choices {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 24px;
}

.citydecor-account__choices label,
.citydecor-account__agreement {
  align-items: flex-start;
  display: flex;
  flex-direction: row !important;
  gap: 8px !important;
  line-height: 1.35;
}

.citydecor-account__choices input,
.citydecor-account__agreement input {
  flex: 0 0 auto;
  margin-top: 2px;
}

.citydecor-account__choices--stacked {
  align-items: flex-start;
  flex-direction: column;
}

.citydecor-account__balance {
  align-items: center;
  background: #f5f5f6;
  display: flex;
  gap: 24px;
  justify-content: space-between;
  margin-bottom: 24px;
  padding: 22px 28px;
}

.citydecor-account__balance span {
  font-size: 18px;
  font-weight: 700;
}

.citydecor-account__balance strong {
  color: var(--main-color, #9b59b6);
  font-size: 24px;
}

.citydecor-account__payment-panel {
  background: #fff;
  border: 1px solid #dedee1;
  padding: 20px;
}

.citydecor-account__payment-panel[hidden] {
  display: none;
}

.citydecor-account__payment-panel > label {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.citydecor-account__actions {
  align-items: center;
  display: flex;
  gap: 16px;
  justify-content: space-between;
  margin-top: 8px;
}

.citydecor-account__actions--end {
  justify-content: flex-end;
  margin-top: 28px;
}

.citydecor-account__submit {
  align-self: flex-end;
}

.citydecor-account__button-secondary {
  background: transparent;
  border: 1px solid var(--main-color, #9b59b6);
  color: var(--main-color, #9b59b6);
}

.citydecor-account__links {
  list-style: none;
  margin: 0;
  padding: 0;
}

.citydecor-account__links li + li {
  border-top: 1px solid #dedee1;
}

.citydecor-account__links a {
  color: #575d65;
  display: block;
  line-height: 1.3;
  padding: 13px 24px 13px 0;
  position: relative;
}

.citydecor-account__links a::after {
  border-right: 1px solid currentColor;
  border-top: 1px solid currentColor;
  content: "";
  height: 7px;
  position: absolute;
  right: 4px;
  top: 50%;
  transform: translateY(-50%) rotate(45deg);
  width: 7px;
}

.citydecor-account__links a:hover,
.citydecor-account__links a:focus {
  color: var(--main-color, #9b59b6);
}

.citydecor-account .alert {
  border: 1px solid #d9d9dc;
  border-radius: 0;
  line-height: 1.35;
  margin-bottom: 24px;
  padding: 14px 18px;
}

.citydecor-account .alert-danger,
.citydecor-account .text-danger {
  color: #a52b2b;
}

.citydecor-account .alert-danger {
  background: #fff1f1;
  border-color: #efcaca;
}

.citydecor-account .alert-success {
  background: #eef8f0;
  border-color: #c7e2cd;
  color: #32673c;
}

.citydecor-wishlist {
  border-top: 8px solid #f5f5f6;
}

.citydecor-wishlist__item {
  align-items: center;
  border-bottom: 8px solid #f5f5f6;
  display: grid;
  gap: 24px;
  grid-template-columns: 110px minmax(0, 1fr) minmax(120px, auto) minmax(190px, auto);
  padding: 22px 18px;
}

.citydecor-wishlist__image {
  display: block;
}

.citydecor-wishlist__image img {
  aspect-ratio: 1 / 1;
  object-fit: cover;
  width: 100%;
}

.citydecor-wishlist__name {
  color: #575d65;
  display: inline-block;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.25;
  margin-bottom: 14px;
}

.citydecor-wishlist__body dl,
.citydecor-wishlist__body dl div {
  margin: 0;
}

.citydecor-wishlist__body dl div {
  display: flex;
  gap: 8px;
  line-height: 1.35;
}

.citydecor-wishlist__body dt {
  font-weight: 700;
}

.citydecor-wishlist__body dd {
  margin: 0;
}

.citydecor-wishlist__price {
  display: flex;
  flex-direction: column;
  gap: 6px;
  text-align: right;
}

.citydecor-wishlist__price strong {
  font-size: 19px;
}

.citydecor-wishlist__actions {
  align-items: center;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.citydecor-compare {
  border: 8px solid #f5f5f6;
  overflow-x: auto;
}

.citydecor-compare table {
  border-collapse: collapse;
  min-width: 100%;
  table-layout: fixed;
}

.citydecor-compare th,
.citydecor-compare td {
  border-bottom: 1px solid #dedee1;
  border-right: 1px solid #dedee1;
  line-height: 1.35;
  padding: 16px;
  text-align: left;
  vertical-align: top;
}

.citydecor-compare th {
  background: #f5f5f6;
  min-width: 170px;
  width: 170px;
}

.citydecor-compare td {
  width: 260px;
}

.citydecor-compare td:last-child,
.citydecor-compare th:last-child {
  border-right: 0;
}

.citydecor-compare__heading a,
.citydecor-compare td strong {
  color: #575d65;
  font-weight: 700;
}

.citydecor-compare td img {
  aspect-ratio: 1 / 1;
  max-width: 180px;
  object-fit: cover;
  width: 100%;
}

.citydecor-compare td s {
  display: block;
  margin-bottom: 6px;
}

.citydecor-compare__group th {
  color: var(--main-color, #9b59b6);
  font-size: 18px;
}

.citydecor-compare tfoot td .btn,
.citydecor-compare tfoot td .citydecor-account__remove {
  display: block;
  margin-bottom: 12px;
  text-align: center;
  width: 100%;
}

.citydecor-addresses {
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.citydecor-addresses__item {
  background: #f5f5f6;
  display: flex;
  flex-direction: column;
  gap: 24px;
  justify-content: space-between;
  min-height: 210px;
  padding: 28px;
}

.citydecor-addresses__item address,
.citydecor-order-meta address {
  font-style: normal;
  line-height: 1.5;
}

.citydecor-addresses__actions {
  align-items: center;
  display: flex;
  gap: 20px;
}

.citydecor-account__table-wrap {
  border: 8px solid #f5f5f6;
  overflow-x: auto;
}

.citydecor-account__table {
  border-collapse: collapse;
  min-width: 860px;
  width: 100%;
}

.citydecor-account__table th,
.citydecor-account__table td {
  border-bottom: 1px solid #dedee1;
  line-height: 1.35;
  padding: 15px;
  text-align: left;
  vertical-align: top;
}

.citydecor-account__table thead th,
.citydecor-account__table tfoot th {
  background: #f5f5f6;
  font-weight: 700;
}

.citydecor-account__table-button {
  min-width: 118px;
}

.citydecor-account__pagination {
  align-items: center;
  display: flex;
  gap: 20px;
  justify-content: space-between;
  margin-top: 22px;
}

.citydecor-account__pagination .pagination {
  display: flex;
  list-style: none;
  margin: 0;
  padding: 0;
}

.citydecor-account__pagination .pagination a,
.citydecor-account__pagination .pagination span {
  border: 1px solid #dedee1;
  display: block;
  min-width: 38px;
  padding: 10px;
  text-align: center;
}

.citydecor-order-meta {
  display: grid;
  gap: 20px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: 28px;
}

.citydecor-order-meta--two {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.citydecor-order-meta h2,
.citydecor-order-comment h2 {
  font-size: 19px;
}

.citydecor-order-meta dl,
.citydecor-order-meta dl div {
  margin: 0;
}

.citydecor-order-meta dl div {
  display: grid;
  gap: 8px;
  grid-template-columns: minmax(105px, auto) 1fr;
  line-height: 1.35;
  padding: 6px 0;
}

.citydecor-order-meta dt {
  font-weight: 700;
}

.citydecor-order-meta dd {
  margin: 0;
}

.citydecor-order-products small {
  display: block;
  margin-top: 6px;
}

.citydecor-order-products__actions a {
  color: var(--main-color, #9b59b6);
  display: block;
  text-decoration: underline;
  white-space: nowrap;
}

.citydecor-order-products__actions a + a {
  margin-top: 8px;
}

.citydecor-order-comment,
.citydecor-order-history__title {
  margin-top: 28px;
}

@media (max-width: 991px) {
  .citydecor-account__dashboard {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .citydecor-wishlist__item {
    grid-template-columns: 90px minmax(0, 1fr) minmax(180px, auto);
  }

  .citydecor-wishlist__price {
    grid-column: 2;
    text-align: left;
  }

  .citydecor-wishlist__actions {
    grid-column: 3;
    grid-row: 1 / span 2;
  }

  .citydecor-order-meta {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .citydecor-order-meta--two {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  .citydecor-account__section {
    padding-bottom: 52px;
  }

  .citydecor-account__crumbs {
    margin-bottom: 34px;
  }

  .citydecor-auth-grid,
  .citydecor-account__dashboard,
  .citydecor-account__form-grid,
  .citydecor-addresses,
  .citydecor-order-meta,
  .citydecor-order-meta--two {
    grid-template-columns: 1fr;
  }

  .citydecor-account__panel,
  .citydecor-account__empty {
    padding: 22px 18px;
  }

  .citydecor-account__actions {
    align-items: stretch;
    flex-direction: column;
  }

  .citydecor-account__actions .btn,
  .citydecor-account__submit {
    text-align: center;
    width: 100%;
  }

  .citydecor-wishlist__item {
    align-items: start;
    gap: 16px;
    grid-template-columns: 78px minmax(0, 1fr);
    padding: 18px 0;
  }

  .citydecor-wishlist__price,
  .citydecor-wishlist__actions {
    grid-column: 1 / -1;
    grid-row: auto;
    text-align: left;
  }

  .citydecor-wishlist__actions {
    align-items: stretch;
  }

  .citydecor-compare {
    margin-left: -18px;
    margin-right: -18px;
  }

  .citydecor-account__table-wrap {
    border-width: 6px;
    margin-left: -18px;
    margin-right: -18px;
  }

  .citydecor-account__pagination {
    align-items: flex-start;
    flex-direction: column;
  }
}

/* Information pages keep the supplied contacts/about/payment DOM. These rules
 * only replace mock asset URLs and provide stable states for live OpenCart data. */
.about__list li::before {
  background-image: url("../image/information/checkmark.svg");
}

.contact__cec input:checked + label::before {
  background-image: url("../image/information/checkbox.svg");
}

.citydecor-contact-map {
  align-items: center;
  background-color: #f2f2f5;
  display: flex;
  justify-content: center;
  position: relative;
}

.citydecor-contact-map__fallback {
  color: var(--main-color, #9b59b6);
  font-weight: 700;
  padding: 20px;
  text-decoration: underline;
}

.citydecor-contact-map--loaded > .citydecor-contact-map__fallback {
  display: none;
}

.citydecor-contact-map--fallback {
  background-image: linear-gradient(135deg, #f6f7f9 25%, #ececf0 25%, #ececf0 50%, #f6f7f9 50%, #f6f7f9 75%, #ececf0 75%);
  background-size: 32px 32px;
}

.citydecor-form-error {
  color: #b82323;
  font-size: 13px;
  line-height: 1.25;
}

.contact__captcha {
  grid-column: auto / span 2;
}

.citydecor-contact-form__sr-only {
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute;
  width: 1px;
}

.citydecor-information__article {
  margin: 60px auto 0;
  max-width: 1000px;
}

.citydecor-information__article > .h1 {
  margin-bottom: 40px;
  text-align: center;
}

.citydecor-information__content {
  font-size: 17px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.citydecor-information__content .container,
.citydecor-information__content .container-fluid,
.citydecor-information__content [class*="col-"] {
  margin-left: 0;
  margin-right: 0;
  max-width: none;
  padding-left: 0;
  padding-right: 0;
  width: 100%;
}

.citydecor-information__content img,
.citydecor-information__content iframe,
.citydecor-information__content video {
  height: auto;
  max-width: 100%;
}

.citydecor-information__content table {
  border-collapse: collapse;
  display: block;
  max-width: 100%;
  overflow-x: auto;
  width: 100%;
}

.citydecor-information__content td,
.citydecor-information__content th {
  border: 1px solid #e2e2e2;
  padding: 10px;
}

@media (max-width: 998px) {
  .contact__captcha {
    grid-column: auto;
  }

  .citydecor-information__article {
    margin-top: 30px;
  }

  .citydecor-information__article > .h1 {
    margin-bottom: 20px;
  }

  .citydecor-information__content {
    font-size: 15px;
  }
}
/* Supplied designer, project and installation-guide layouts. */
.citydecor-information--designer .designer-block__item > img {
  width: 100px;
  height: 100px;
  object-fit: contain;
}

.citydecor-information--designer .contact__el p,
.citydecor-information--designer .contact__last p {
  line-height: 1.3;
}

.citydecor-designer-projects-link {
  display: flex;
  justify-content: center;
  margin-top: 30px;
}

.citydecor-content-instructions .instructions-all__img {
  aspect-ratio: 568 / 632;
  overflow: hidden;
}

.citydecor-content-instructions .instructions-all__img img {
  height: 100%;
  object-fit: cover;
}

.citydecor-blog-article--instruction .instructions__block ul {
  list-style: none;
  padding: 0;
}

.citydecor-blog-article--instruction .video-wrapper,
.citydecor-blog-article--project .video-wrapper {
  width: 100%;
  aspect-ratio: 1386 / 924;
}

.citydecor-blog-article--project .about-project__text.default > :first-child {
  margin-top: 0;
}

.citydecor-blog-article--project .about-project__text.default > :last-child {
  margin-bottom: 0;
}

.citydecor-blog-article--project .image-block__arrow,
.citydecor-blog-article--project .image-block__bottom button {
  border: 0;
  background: transparent;
}

.citydecor-blog-article--project .image-block__bottom {
  justify-content: center;
}

.citydecor-blog-article--project .image-block__pug {
  display: flex;
  gap: 20px;
}

.citydecor-blog-article--project .image-block__pug button {
  width: 6px;
  height: 6px;
  padding: 0;
  border-radius: 50%;
  background: #575d65;
}

.citydecor-blog-article--project .image-block__pug button.swiper-pagination-bullet-active {
  width: 10px;
  height: 10px;
}

@media (min-width: 998px) {
  .citydecor-blog-article--project .image-block__grid.citydecor-carousel > .swiper-wrapper {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    width: auto;
    transform: none !important;
  }

  .citydecor-blog-article--project .image-block__grid.citydecor-carousel > .swiper-wrapper > .swiper-slide {
    width: auto !important;
    flex: none;
  }
}

@media (max-width: 700px) {
  .citydecor-information--designer .designer-block__item > img {
    width: 72px;
    height: 72px;
  }

  .citydecor-information--designer .contact__block {
    width: 100%;
  }
}

/* Supplied ceiling and 404 layouts. Theme media is served directly and never
   passes through OpenCart's product image resizer. */
.citydecor-content-ceilings .potolok__block::before {
  background-image: url(../image/ceiling/bg3n.webp);
}

.citydecor-content-ceilings .future-result__info ul li::before {
  background-image: url(../image/ceiling/checkmark.svg);
}

.citydecor-ceiling-range {
  appearance: none;
  background: linear-gradient(to right, var(--main-color) 0 var(--citydecor-range-progress, 16.6667%), #eaeaea var(--citydecor-range-progress, 16.6667%) 100%);
  border: 0;
  border-radius: 5px;
  cursor: pointer;
  display: block;
  height: 5px;
  margin: 0 11px 30px;
  padding: 0;
  width: calc(100% - 22px);
}

.citydecor-ceiling-range::-webkit-slider-thumb {
  appearance: none;
  background: #fff;
  border: 5px solid var(--main-color);
  border-radius: 50%;
  height: 23px;
  width: 23px;
}

.citydecor-ceiling-range::-moz-range-thumb {
  background: #fff;
  border: 5px solid var(--main-color);
  border-radius: 50%;
  height: 13px;
  width: 13px;
}

.citydecor-content-ceilings .calculation__el input {
  border: 0;
}

.citydecor-content-ceilings .calculation__bottom .btn {
  align-items: center;
  display: flex;
  height: auto;
  justify-content: center;
  padding: 14px;
  text-align: center;
}

.citydecor-content-ceilings .future-result__mini-slider {
  display: flex;
  flex-direction: column;
  gap: 8px;
  overflow: hidden;
}

.citydecor-content-ceilings .future-result__mini-slide {
  background: transparent;
  border: 0;
  cursor: pointer;
  flex: 1 1 0;
  min-height: 0;
  opacity: 0.62;
  padding: 0;
}

.citydecor-content-ceilings .future-result__mini-slide.is-active {
  opacity: 1;
}

.citydecor-content-ceilings .future-result__mini-slide img {
  height: 100%;
}

.citydecor-content-ceilings .future-result__big-slider,
.citydecor-content-ceilings .future-result__big-slider img {
  height: 100%;
}

@media (max-width: 700px) {
  .citydecor-content-ceilings .potolok__block::before {
    background-image: url(../image/ceiling/bg4m.webp);
  }
}

/* Reusable lead forms. The modal shell intentionally follows the supplied
   popup-sample markup instead of introducing a second visual system. */
.calculation__itog .citydecor-ceiling-price-note {
  font-size: 24px;
  line-height: 1.2;
}

.citydecor-form-popup {
  z-index: 1200;
}

.citydecor-form-popup .popup__body {
  max-height: calc(100vh - 40px);
  overflow: auto;
  position: relative;
}

.citydecor-form-popup__description {
  color: #575d65;
  line-height: 1.45;
  margin-top: 10px;
}

.citydecor-form-popup .inp-wp textarea {
  min-height: 110px;
  padding: 11px 15px;
}

.citydecor-form-popup .inp-wp input[type="file"] {
  cursor: pointer;
  padding: 9px 12px;
}

.citydecor-form-file-hint {
  color: #73777e;
  font-size: 12px;
  line-height: 1.35;
}

.citydecor-form-error {
  color: #b82323;
  display: none;
  font-size: 13px;
  line-height: 1.3;
}

[data-citydecor-form-field]._error .citydecor-form-error {
  display: block;
}

[data-citydecor-form-field]._error input,
[data-citydecor-form-field]._error textarea {
  border-color: #b82323 !important;
}

.citydecor-form-policy {
  gap: 0;
}

.citydecor-form-policy label,
.citydecor-inline-form__policy label {
  line-height: 1.35;
}

.citydecor-form-policy label a,
.citydecor-inline-form__policy label a {
  color: var(--main-color);
}

.citydecor-form-result {
  display: none;
  line-height: 1.45;
}

.citydecor-form-result.is-error,
.citydecor-form-result.is-success {
  display: block;
}

.citydecor-form-result.is-error {
  color: #b82323;
}

.citydecor-form-result.is-success {
  color: #28733b;
  font-size: 17px;
}

[data-citydecor-form].is-success [data-citydecor-form-field],
[data-citydecor-form].is-success [data-citydecor-form-submit] {
  display: none;
}

.citydecor-inline-form .citydecor-form-result {
  grid-column: 1 / -1;
}

.citydecor-form-honeypot {
  height: 1px;
  left: -10000px;
  overflow: hidden;
  position: absolute;
  top: auto;
  width: 1px;
}

.citydecor-inline-form-trigger {
  background: transparent;
  border: 0;
  color: inherit;
  cursor: pointer;
  font: inherit;
  padding: 0;
  text-align: inherit;
}

.citydecor-inline-form-trigger:focus-visible {
  outline: 2px solid var(--main-color);
  outline-offset: 4px;
}

/* open-popup.html: real cart success state plus a lightweight error toast. */
.citydecor-cart-popup .popup__close {
  appearance: none;
  background-color: transparent;
  border: 0;
  cursor: pointer;
  padding: 0;
}

.citydecor-cart-popup .popup-sample__text {
  max-width: 480px;
}

.citydecor-toast {
  align-items: center;
  background: #2e3346;
  bottom: 24px;
  box-shadow: 0 12px 36px rgba(46, 51, 70, 0.28);
  color: #fff;
  display: flex;
  font-size: 15px;
  gap: 18px;
  left: 50%;
  line-height: 1.35;
  max-width: min(560px, calc(100vw - 32px));
  opacity: 0;
  padding: 14px 16px 14px 20px;
  position: fixed;
  transform: translate(-50%, 18px);
  transition: opacity 0.2s ease, transform 0.2s ease;
  visibility: hidden;
  width: max-content;
  z-index: 140;
}

.citydecor-toast[hidden] {
  display: none;
}

.citydecor-toast.is-error {
  background: #9d2638;
}

.citydecor-toast.is-visible {
  opacity: 1;
  transform: translate(-50%, 0);
  visibility: visible;
}

.citydecor-toast button {
  appearance: none;
  background: transparent;
  border: 0;
  color: inherit;
  cursor: pointer;
  flex: 0 0 auto;
  font-size: 24px;
  line-height: 1;
  padding: 2px;
}

/* reviews.html: the supplied review form and its fullscreen photo gallery. */
.form-reviews__block {
  background-image: url("../image/reviews/form-background.webp");
}

.form-reviews__block .citydecor-inline-form__file {
  cursor: pointer;
}

.form-reviews__block .citydecor-inline-form__file > span {
  text-align: center;
}

.form-reviews__block .citydecor-inline-form__file .citydecor-form-error {
  grid-column: 1 / -1;
}

.form-reviews__block .citydecor-inline-form__progress[hidden] {
  display: none;
}

.popup.popup_img.citydecor-review-lightbox .popup__close {
  appearance: none;
  background-color: transparent;
  background-image: url("../image/close-white.svg");
  border: 0;
}

.citydecor-review-lightbox .popup__slider > .swiper-wrapper {
  display: block;
  transform: none;
}

.citydecor-review-lightbox [data-citydecor-review-lightbox-slide][hidden] {
  display: none;
}

.citydecor-review-lightbox [data-citydecor-review-lightbox-slide] img {
  background: #2e3346;
  object-fit: contain;
}

.citydecor-review-lightbox .popup__prev,
.citydecor-review-lightbox .popup__next {
  appearance: none;
  background: transparent;
  border: 0;
  padding: 8px;
}

.citydecor-review-lightbox .popup__thumbs > .swiper-wrapper {
  display: grid;
  gap: 8px;
  grid-auto-columns: minmax(52px, 76px);
  grid-auto-flow: column;
  justify-content: center;
  transform: none;
}

.citydecor-review-lightbox .popup__thumbs button {
  appearance: none;
  background: transparent;
  border: 1px solid #fff;
  height: auto;
  padding: 0;
}

.citydecor-review-lightbox .popup__thumbs[hidden] {
  display: none;
}

@media (max-width: 600px) {
  .citydecor-form-popup {
    padding: 10px;
  }

  .citydecor-form-popup .popup__body {
    max-height: calc(100vh - 20px);
  }
}

.hero__right,
.hero__right:hover,
.hero__right:focus {
  color: #fff;
  text-decoration: none;
}

.hero__right:focus-visible {
  outline: 3px solid #9b59b6;
  outline-offset: 3px;
}

.hero__img img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero__img::before {
  z-index: 1;
  background: linear-gradient(0deg, rgba(25, 27, 38, 0.82) 0%, rgba(25, 27, 38, 0.42) 38%, transparent 70%);
}

.card__price {
  width: fit-content;
  border-bottom: 3px solid #9b59b6;
  padding-bottom: 3px;
}

.hero__showcase-list {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  font-size: 18px;
  line-height: 1.3;
}

.hero__catalog-cta {
  width: fit-content;
  border-bottom: 2px solid currentColor;
  font-weight: 700;
  opacity: 0;
  transition: opacity 0.2s ease;
}

.hero__right:hover .hero__catalog-cta,
.hero__right:focus-visible .hero__catalog-cta {
  opacity: 1;
}

@media (hover: none) {
  .hero__catalog-cta {
    opacity: 1;
  }
}

@media (max-width: 767.98px) {
  .hero__showcase-list {
    font-size: 16px;
  }

  .hero__catalog-cta {
    opacity: 1;
  }
}
