:root {
  --tm-bg: #f5f7fa;
  --tm-surface: #ffffff;
  --tm-surface-soft: #f0f6f7;
  --tm-ink: #0e1b2f;
  --tm-muted: #6d7788;
  --tm-line: #dce4ec;
  --tm-primary: #009ca6;
  --tm-primary-dark: #007f87;
  --tm-accent: #ffb72b;
  --tm-danger: #ef4444;
  --tm-topbar: #071425;
  --tm-radius: 8px;
  --tm-shadow: 0 14px 36px rgba(14, 27, 47, 0.08);
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  min-height: 100%;
}

body.tm-body {
  min-height: 100%;
  margin: 0;
  color: var(--tm-ink);
  background: var(--tm-bg);
  font-family: Arial, Helvetica, sans-serif;
  font-size: 15px;
  line-height: 1.45;
  letter-spacing: 0;
}

a {
  color: inherit;
  text-decoration: none;
}

a:hover,
a:focus {
  color: var(--tm-primary);
}

img {
  display: block;
  max-width: 100%;
  height: auto;
}

button,
input,
select,
textarea {
  font: inherit;
  letter-spacing: 0;
}

button {
  cursor: pointer;
}

svg {
  width: 1em;
  height: 1em;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.9;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.tm-shell {
  width: min(100% - 72px, 1420px);
  margin: 0 auto;
}

.tm-main {
  min-height: 54vh;
}

.tm-page {
  padding: 18px 0 40px;
}

.tm-body--sticky .tm-header {
  position: sticky;
  top: 0;
}

.tm-header {
  position: relative;
  z-index: 20;
  background: var(--tm-surface);
  border-bottom: 1px solid var(--tm-line);
  box-shadow: 0 4px 20px rgba(14, 27, 47, 0.04);
}

.tm-topbar {
  min-height: 36px;
  color: #eef6fb;
  background: var(--tm-topbar);
  font-size: 13px;
}

.tm-topbar__inner {
  min-height: 36px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 18px;
}

.tm-topbar__tools,
.tm-topbar__links,
.tm-topbar__links a,
.tm-mobile-promo,
.tm-mobile-promo__item {
  display: flex;
  align-items: center;
}

.tm-topbar__tools {
  gap: 8px;
}

.tm-topbar__message {
  text-align: center;
  white-space: nowrap;
}

.tm-topbar__links {
  justify-content: flex-end;
  gap: 22px;
}

.tm-topbar__links a {
  gap: 6px;
  color: #eef6fb;
  white-space: nowrap;
}

.tm-topbar__links svg {
  font-size: 15px;
}

.tm-mobile-promo {
  display: none;
}

.tm-switcher {
  position: relative;
}

.tm-switcher__current {
  min-height: 28px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 3px 8px;
  color: inherit;
  background: transparent;
  border: 0;
}

.tm-switcher__current::after {
  content: "";
  width: 6px;
  height: 6px;
  border-right: 1px solid currentColor;
  border-bottom: 1px solid currentColor;
  transform: rotate(45deg) translateY(-2px);
}

.tm-switcher__menu {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  z-index: 40;
  display: none;
  min-width: 180px;
  padding: 8px;
  color: var(--tm-ink);
  background: var(--tm-surface);
  border: 1px solid var(--tm-line);
  border-radius: var(--tm-radius);
  box-shadow: var(--tm-shadow);
}

.tm-switcher:hover .tm-switcher__menu,
.tm-switcher:focus-within .tm-switcher__menu {
  display: block;
}

.tm-switcher__option {
  width: 100%;
  display: block;
  padding: 9px 10px;
  color: var(--tm-ink);
  background: transparent;
  border: 0;
  border-radius: 6px;
  text-align: left;
}

.tm-switcher__option:hover {
  background: var(--tm-surface-soft);
}

.tm-header__main {
  min-height: 94px;
  display: grid;
  grid-template-columns: 300px minmax(360px, 1fr) auto;
  align-items: center;
  gap: 28px;
  padding: 22px 0;
}

.tm-logo {
  display: inline-flex;
  align-items: center;
  min-width: 0;
  color: var(--tm-primary);
  font-size: 42px;
  font-weight: 800;
  line-height: 1;
}

.tm-logo img {
  max-height: 56px;
  width: auto;
}

.tm-header__search {
  min-width: 0;
}

.tm-header__actions {
  display: flex;
  align-items: center;
  gap: 18px;
}

.tm-action,
.tm-cart__button {
  position: relative;
  min-height: 50px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 5px 0;
  color: var(--tm-ink);
  background: transparent;
  border: 0;
  white-space: nowrap;
}

.tm-account summary {
  list-style: none;
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.tm-account summary::-webkit-details-marker {
  display: none;
}

.tm-action__icon {
  width: 36px;
  height: 36px;
  display: inline-grid;
  place-items: center;
  color: var(--tm-ink);
  font-size: 31px;
}

.tm-action__text {
  display: grid;
  gap: 2px;
  min-width: 0;
  color: var(--tm-muted);
  font-size: 12px;
  line-height: 1.2;
}

.tm-action__text strong {
  color: var(--tm-ink);
  font-size: 13px;
}

.tm-action__badge {
  position: absolute;
  top: 0;
  left: 27px;
  min-width: 18px;
  height: 18px;
  display: grid;
  place-items: center;
  padding: 0 5px;
  color: #fff;
  background: var(--tm-primary);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
}

.tm-account {
  position: relative;
}

.tm-account__menu,
.tm-cart__dropdown,
.tm-menu__mega,
.tm-menu__dropdown {
  position: absolute;
  z-index: 50;
  background: var(--tm-surface);
  border: 1px solid var(--tm-line);
  border-radius: var(--tm-radius);
  box-shadow: var(--tm-shadow);
}

.tm-account__menu {
  top: calc(100% + 10px);
  right: 0;
  min-width: 220px;
  padding: 8px;
}

.tm-account__menu a {
  display: block;
  padding: 9px 10px;
  border-radius: 6px;
}

.tm-account__menu a:hover {
  background: var(--tm-surface-soft);
}

.tm-search {
  width: 100%;
  min-height: 48px;
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 170px 52px;
  align-items: center;
  overflow: hidden;
  background: var(--tm-surface);
  border: 1px solid var(--tm-line);
  border-radius: var(--tm-radius);
  box-shadow: 0 8px 20px rgba(14, 27, 47, 0.04);
}

.tm-search__icon {
  display: none;
}

.tm-search__input {
  min-width: 0;
  height: 100%;
  padding: 0 16px;
  color: var(--tm-ink);
  background: transparent;
  border: 0;
  outline: 0;
}

.tm-search__category {
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: var(--tm-muted);
  background: transparent;
  border: 0;
  border-left: 1px solid var(--tm-line);
  font-size: 13px;
}

.tm-search__button {
  align-self: stretch;
  display: grid;
  place-items: center;
  color: #fff;
  background: var(--tm-primary);
  border: 0;
  font-size: 24px;
}

.tm-search__button:hover {
  background: var(--tm-primary-dark);
}

.tm-icon-button {
  width: 40px;
  height: 40px;
  display: inline-grid;
  place-items: center;
  color: var(--tm-muted);
  background: var(--tm-surface);
  border: 1px solid var(--tm-line);
  border-radius: var(--tm-radius);
  line-height: 1;
}

.tm-icon-button:hover,
.tm-icon-button:focus {
  color: var(--tm-primary);
  border-color: var(--tm-primary);
}

.tm-menu-toggle {
  display: none;
}

.tm-menu-toggle span {
  width: 24px;
  height: 2px;
  display: block;
  background: currentColor;
}

.tm-nav-wrap {
  background: #fbfcfe;
  border-top: 1px solid var(--tm-line);
}

.tm-menu__list {
  min-height: 52px;
  display: flex;
  align-items: center;
  gap: 22px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.tm-menu__item {
  position: relative;
}

.tm-menu__item > a,
.tm-menu__catalog {
  min-height: 38px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  border-radius: var(--tm-radius);
  font-weight: 700;
}

.tm-menu__item > a {
  padding: 0 6px;
}

.tm-menu__catalog {
  width: 220px;
  justify-content: flex-start;
  padding: 0 16px;
  color: #fff;
  background: var(--tm-primary);
  border: 0;
}

.tm-menu__catalog:hover {
  background: var(--tm-primary-dark);
}

.tm-menu__item--sale > a {
  padding: 0 10px;
  color: #fff;
  background: var(--tm-danger);
  font-size: 13px;
}

.tm-menu__item--sale svg {
  display: none;
}

.tm-menu__mega {
  top: calc(100% + 10px);
  left: 0;
  display: none;
  width: 260px;
  padding: 10px;
}

.tm-menu__item--catalog:hover .tm-menu__mega,
.tm-menu__mega.is-open {
  display: grid;
}

.tm-menu__mega a {
  min-height: 36px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 7px 9px;
  color: var(--tm-ink);
  border-radius: 6px;
}

.tm-menu__mega a:hover {
  background: var(--tm-surface-soft);
}

.tm-menu__dropdown {
  top: 100%;
  left: 0;
  display: none;
  min-width: 480px;
  grid-template-columns: repeat(3, minmax(130px, 1fr));
  gap: 8px 18px;
  padding: 18px;
}

.tm-menu__item:hover .tm-menu__dropdown {
  display: grid;
}

.tm-menu__dropdown a {
  display: block;
  padding: 7px 0;
  color: var(--tm-muted);
}

.tm-cart {
  position: relative;
}

.tm-cart__dropdown {
  top: calc(100% + 10px);
  right: 0;
  display: none;
  width: min(420px, calc(100vw - 32px));
  padding: 14px;
}

.tm-cart.is-open .tm-cart__dropdown,
.tm-cart:hover .tm-cart__dropdown {
  display: block;
}

.tm-cart__items {
  max-height: 360px;
  overflow: auto;
}

.tm-cart-item {
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr) 32px;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--tm-line);
}

.tm-cart-item img {
  width: 64px;
  aspect-ratio: 1;
  object-fit: contain;
  background: #f8fafc;
  border-radius: 6px;
}

.tm-cart-item small,
.tm-cart-item span {
  display: block;
  color: var(--tm-muted);
}

.tm-cart-item button {
  align-self: start;
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  color: var(--tm-danger);
  background: transparent;
  border: 0;
}

.tm-cart__totals {
  padding: 12px 0;
}

.tm-cart__totals div,
.tm-cart-summary div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 6px 0;
}

.tm-cart__actions,
.tm-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
}

.tm-actions--split {
  justify-content: space-between;
}

.tm-button {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 8px 15px;
  border-radius: var(--tm-radius);
  border: 1px solid transparent;
  font-weight: 800;
  text-align: center;
  white-space: normal;
}

.tm-button svg {
  font-size: 19px;
}

.tm-button--primary {
  color: #fff;
  background: var(--tm-primary);
}

.tm-button--primary:hover,
.tm-button--primary:focus {
  color: #fff;
  background: var(--tm-primary-dark);
}

.tm-button--ghost {
  color: var(--tm-ink);
  background: var(--tm-surface);
  border-color: var(--tm-line);
}

.tm-button--ghost:hover,
.tm-button--ghost:focus {
  color: var(--tm-primary);
  border-color: var(--tm-primary);
}

.tm-button.is-loading {
  opacity: 0.7;
  pointer-events: none;
}

.tm-breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 16px;
  color: var(--tm-muted);
  font-size: 13px;
}

.tm-breadcrumbs a::after {
  content: "/";
  margin-left: 8px;
  color: #a8b3c2;
}

.tm-breadcrumbs a:last-child::after {
  display: none;
}

.tm-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 22px;
}

.tm-layout.has-left {
  grid-template-columns: 224px minmax(0, 1fr);
}

.tm-layout.has-right {
  grid-template-columns: minmax(0, 1fr) 260px;
}

.tm-layout.has-left.has-right {
  grid-template-columns: 224px minmax(0, 1fr) 240px;
}

.tm-content,
.tm-column {
  min-width: 0;
}

.tm-page-title {
  margin-bottom: 16px;
}

.tm-page-title h1 {
  margin: 0;
  font-size: 30px;
  line-height: 1.2;
}

.tm-module {
  margin: 18px 0;
}

.tm-module:first-child {
  margin-top: 0;
}

.tm-module__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}

.tm-module__head h2,
.tm-panel h2 {
  margin: 0;
  font-size: 24px;
  line-height: 1.2;
}

.tm-module__link {
  color: #0a7de0;
  font-size: 18px;
}

.tm-panel,
.tm-side-module,
.tm-filter-panel,
.tm-tabs,
.tm-product__gallery,
.tm-product__summary {
  background: var(--tm-surface);
  border: 1px solid var(--tm-line);
  border-radius: var(--tm-radius);
}

.tm-panel {
  padding: 22px;
}

.tm-side-module {
  padding: 16px 14px;
  margin-bottom: 16px;
  box-shadow: 0 8px 22px rgba(14, 27, 47, 0.04);
}

.tm-side-module h3 {
  margin: 0 0 12px;
  font-size: 16px;
}

.tm-side-module ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.tm-side-module li + li {
  margin-top: 8px;
}

.tm-side-module li ul {
  margin-top: 8px;
  padding-left: 14px;
}

.tm-side-module a {
  min-height: 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  color: var(--tm-ink);
  font-size: 13px;
}

.tm-side-module a::after {
  content: ">";
  color: var(--tm-muted);
  font-size: 18px;
}

.tm-side-module a.is-active,
.tm-side-module a:hover {
  color: var(--tm-primary);
}

.tm-filter fieldset {
  margin: 0 0 14px;
  padding: 0;
  border: 0;
}

.tm-filter legend {
  margin-bottom: 8px;
  font-weight: 800;
}

.tm-check {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--tm-muted);
}

.tm-check input {
  width: auto;
  min-height: 0;
}

.tm-category-intro {
  display: grid;
  grid-template-columns: minmax(220px, 360px) minmax(0, 1fr);
  gap: 22px;
  align-items: center;
  margin-bottom: 20px;
  padding: 18px;
  background: var(--tm-surface);
  border: 1px solid var(--tm-line);
  border-radius: var(--tm-radius);
}

.tm-category-intro img {
  width: 100%;
  aspect-ratio: 16 / 10;
  object-fit: cover;
  border-radius: 6px;
  background: var(--tm-bg);
}

.tm-text {
  color: var(--tm-muted);
}

.tm-text p:first-child {
  margin-top: 0;
}

.tm-text p:last-child {
  margin-bottom: 0;
}

.tm-chip-grid,
.tm-letter-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 20px;
}

.tm-chip-grid a,
.tm-letter-grid a {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  padding: 7px 14px;
  background: var(--tm-surface);
  border: 1px solid var(--tm-line);
  border-radius: var(--tm-radius);
}

.tm-chip-grid a:hover,
.tm-letter-grid a:hover {
  border-color: var(--tm-primary);
}

.tm-toolbar {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 16px;
  padding: 12px;
  background: var(--tm-surface);
  border: 1px solid var(--tm-line);
  border-radius: var(--tm-radius);
}

.tm-toolbar__view {
  margin-right: auto;
  display: flex;
  gap: 6px;
}

.tm-toolbar__view button {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  color: var(--tm-muted);
  background: transparent;
  border: 1px solid var(--tm-line);
  border-radius: 6px;
}

.tm-toolbar__view button.is-active {
  color: #fff;
  background: var(--tm-primary);
  border-color: var(--tm-primary);
}

.tm-toolbar label,
.tm-filter-panel label,
.tm-form label,
.tm-review-form label,
.tm-option label {
  display: grid;
  gap: 6px;
  color: var(--tm-muted);
  font-size: 13px;
  font-weight: 700;
}

.tm-toolbar select,
.tm-filter-panel input,
.tm-filter-panel select,
.tm-form input,
.tm-form textarea,
.tm-review-form input,
.tm-review-form textarea,
.tm-option input[type="text"],
.tm-option input[type="date"],
.tm-option input[type="datetime-local"],
.tm-option input[type="time"],
.tm-option select,
.tm-option textarea,
.tm-buy-row input,
.tm-cart-row input,
.tm-checkout input,
.tm-checkout select,
.tm-checkout textarea,
.tm-account-page input,
.tm-account-page select,
.tm-account-page textarea {
  width: 100%;
  min-height: 42px;
  padding: 9px 11px;
  color: var(--tm-ink);
  background: var(--tm-surface);
  border: 1px solid var(--tm-line);
  border-radius: 6px;
  outline: none;
}

.tm-toolbar select:focus,
.tm-filter-panel input:focus,
.tm-filter-panel select:focus,
.tm-form input:focus,
.tm-form textarea:focus,
.tm-review-form input:focus,
.tm-review-form textarea:focus,
.tm-option input:focus,
.tm-option select:focus,
.tm-option textarea:focus,
.tm-buy-row input:focus,
.tm-cart-row input:focus,
.tm-checkout input:focus,
.tm-checkout select:focus,
.tm-checkout textarea:focus,
.tm-account-page input:focus,
.tm-account-page select:focus,
.tm-account-page textarea:focus {
  border-color: var(--tm-primary);
  box-shadow: 0 0 0 3px rgba(0, 156, 166, 0.12);
}

.tm-slideshow {
  position: relative;
  min-height: 310px;
  margin: 0 0 18px;
  overflow: hidden;
  border-radius: var(--tm-radius);
  background: #0c1728;
  box-shadow: 0 16px 34px rgba(14, 27, 47, 0.08);
}

.tm-slide {
  display: none;
  position: relative;
  min-height: 310px;
}

.tm-slide.is-active {
  display: block;
}

.tm-slide__media,
.tm-slide__media img {
  width: 100%;
  height: 100%;
  display: block;
}

.tm-slide__media img {
  min-height: 310px;
  aspect-ratio: 16 / 4.4;
  object-fit: cover;
}

.tm-slide__caption {
  position: absolute;
  top: 50%;
  left: 9%;
  width: min(420px, 42%);
  transform: translateY(-50%);
  color: #fff;
}

.tm-slide__caption span {
  display: block;
  margin-bottom: 10px;
  color: #77e5e8;
  font-size: 18px;
  font-weight: 800;
}

.tm-slide__caption h2 {
  margin: 0 0 12px;
  font-size: 46px;
  line-height: 1.12;
}

.tm-slide__caption p {
  margin: 0 0 18px;
  font-size: 18px;
}

.tm-slideshow__dots {
  position: absolute;
  left: 50%;
  bottom: 14px;
  display: flex;
  gap: 7px;
  transform: translateX(-50%);
}

.tm-slideshow__dots button {
  width: 11px;
  height: 11px;
  padding: 0;
  background: rgba(255, 255, 255, 0.7);
  border: 0;
  border-radius: 999px;
}

.tm-slideshow__dots button.is-active {
  background: var(--tm-primary);
}

.tm-slideshow__arrow {
  position: absolute;
  top: 50%;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  color: #fff;
  background: rgba(7, 20, 37, 0.82);
  border: 0;
  border-radius: 999px;
  transform: translateY(-50%);
}

.tm-slideshow__arrow--prev {
  left: 18px;
}

.tm-slideshow__arrow--next {
  right: 18px;
}

.tm-product-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(198px, 1fr));
  gap: 16px;
}

.tm-product-grid.is-list {
  grid-template-columns: 1fr;
}

.tm-product-card {
  position: relative;
  min-width: 0;
  display: grid;
  grid-template-rows: auto 1fr auto;
  background: var(--tm-surface);
  border: 1px solid var(--tm-line);
  border-radius: var(--tm-radius);
  overflow: hidden;
  box-shadow: 0 8px 22px rgba(14, 27, 47, 0.04);
  transition: border-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}

.tm-product-card:hover {
  border-color: rgba(0, 156, 166, 0.45);
  transform: translateY(-2px);
  box-shadow: var(--tm-shadow);
}

.tm-product-card__image {
  position: relative;
  display: grid;
  place-items: center;
  aspect-ratio: 1.08;
  padding: 20px;
  background: #fbfcfe;
}

.tm-product-card__image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.tm-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 2;
  min-height: 24px;
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  color: #2f2000;
  background: var(--tm-accent);
  border-radius: 7px;
  font-size: 12px;
  font-weight: 800;
}

.tm-product-card__wish {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 3;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  color: #7d8796;
  background: transparent;
  border: 0;
  font-size: 31px;
}

.tm-product-card__wish:hover {
  color: var(--tm-primary);
}

.tm-product-card__body {
  display: grid;
  gap: 8px;
  padding: 14px 14px 10px;
}

.tm-product-card__title {
  min-height: 42px;
  color: var(--tm-ink);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.32;
}

.tm-product-card__description {
  margin: 0;
  color: var(--tm-muted);
  font-size: 13px;
}

.tm-price,
.tm-product-price {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 8px;
}

.tm-price strong,
.tm-product-price strong {
  color: var(--tm-primary);
  font-size: 19px;
  line-height: 1.2;
}

.tm-price span,
.tm-product-price span {
  color: #8b93a1;
  text-decoration: line-through;
}

.tm-price small,
.tm-product-price small {
  width: 100%;
  color: var(--tm-muted);
}

.tm-product-card__actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 40px;
  gap: 8px;
  padding: 0 14px 14px;
}

.tm-rating {
  display: inline-flex;
  gap: 2px;
  color: #c9d2de;
  line-height: 1;
}

.tm-rating .is-filled {
  color: var(--tm-accent);
}

.tm-product-grid.is-list .tm-product-card {
  grid-template-columns: 180px minmax(0, 1fr) 220px;
  grid-template-rows: auto;
  align-items: stretch;
}

.tm-product-grid.is-list .tm-product-card__image {
  aspect-ratio: auto;
  min-height: 180px;
}

.tm-product-grid.is-list .tm-product-card__actions {
  align-content: center;
  padding: 14px;
}

.tm-pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 18px;
  color: var(--tm-muted);
}

.tm-pagination ul {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.tm-pagination a,
.tm-pagination span {
  min-width: 34px;
  min-height: 34px;
  display: inline-grid;
  place-items: center;
  padding: 5px 8px;
  background: var(--tm-surface);
  border: 1px solid var(--tm-line);
  border-radius: 6px;
}

.tm-pagination .active span,
.tm-pagination a:hover {
  color: #fff;
  background: var(--tm-primary);
  border-color: var(--tm-primary);
}

.tm-filter-panel {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 18px;
  padding: 16px;
}

.tm-product {
  display: grid;
  grid-template-columns: minmax(280px, 560px) minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}

.tm-product__gallery,
.tm-product__summary {
  padding: 18px;
}

.tm-product__main-image {
  display: grid;
  place-items: center;
  aspect-ratio: 1;
  background: #fbfcfe;
  border-radius: 6px;
}

.tm-product__main-image img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.tm-product__thumbs {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(72px, 1fr));
  gap: 8px;
  margin-top: 12px;
}

.tm-product__thumbs a {
  display: grid;
  place-items: center;
  aspect-ratio: 1;
  padding: 6px;
  background: var(--tm-bg);
  border: 1px solid var(--tm-line);
  border-radius: 6px;
}

.tm-product__summary {
  display: grid;
  gap: 14px;
}

.tm-product__summary h1 {
  margin: 0;
  font-size: 34px;
  line-height: 1.18;
}

.tm-product-meta {
  display: grid;
  gap: 5px;
  margin: 0;
  padding: 0;
  color: var(--tm-muted);
  list-style: none;
}

.tm-product__review-line {
  display: flex;
  align-items: center;
  gap: 10px;
}

.tm-product-price {
  margin: 4px 0;
  padding: 16px;
  background: #eef8f7;
  border-radius: var(--tm-radius);
}

.tm-product-price strong {
  font-size: 32px;
}

.tm-discounts {
  width: 100%;
  display: grid;
  gap: 4px;
  margin-top: 8px;
}

.tm-product-form {
  display: grid;
  gap: 14px;
}

.tm-product-form h3 {
  margin: 4px 0 0;
}

.tm-option {
  display: grid;
  gap: 8px;
}

.tm-option.has-error input,
.tm-option.has-error select,
.tm-option.has-error textarea {
  border-color: var(--tm-danger);
}

.tm-choice-list {
  display: grid;
  gap: 8px;
}

.tm-choice-list label {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px;
  background: var(--tm-bg);
  border-radius: 6px;
}

.tm-choice-list img {
  width: 38px;
  height: 38px;
  object-fit: cover;
  border-radius: 5px;
}

.tm-buy-row {
  display: grid;
  grid-template-columns: 116px minmax(180px, 1fr) 44px 44px;
  align-items: end;
  gap: 10px;
}

.tm-note {
  margin: 0;
  color: var(--tm-muted);
  font-size: 13px;
}

.tm-tabs {
  margin-top: 22px;
}

.tm-tabs__nav {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 10px;
  border-bottom: 1px solid var(--tm-line);
}

.tm-tabs__nav button {
  min-height: 40px;
  padding: 8px 14px;
  color: var(--tm-muted);
  background: transparent;
  border: 1px solid transparent;
  border-radius: 6px;
  font-weight: 800;
}

.tm-tabs__nav button.is-active {
  color: var(--tm-primary);
  background: #edf7f7;
  border-color: rgba(0, 156, 166, 0.18);
}

.tm-tabs__panel {
  display: none;
  padding: 22px;
}

.tm-tabs__panel.is-active {
  display: block;
}

.tm-table {
  width: 100%;
  border-collapse: collapse;
}

.tm-table th,
.tm-table td {
  padding: 11px 12px;
  border: 1px solid var(--tm-line);
  text-align: left;
}

.tm-table th {
  background: var(--tm-bg);
}

.tm-review {
  padding: 14px 0;
  border-bottom: 1px solid var(--tm-line);
}

.tm-review__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 6px;
}

.tm-review__head span {
  color: var(--tm-muted);
  font-size: 13px;
}

.tm-review-form {
  display: grid;
  gap: 12px;
  margin-top: 18px;
}

.tm-rating-input {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}

.tm-banner-grid,
.tm-card-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
  margin: 20px 0;
}

.tm-banner {
  overflow: hidden;
  border-radius: var(--tm-radius);
  background: var(--tm-surface);
  border: 1px solid var(--tm-line);
}

.tm-banner img {
  width: 100%;
  aspect-ratio: 16 / 6;
  object-fit: cover;
}

.tm-logo-carousel {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(120px, 180px);
  gap: 12px;
  overflow-x: auto;
  padding: 8px 0;
}

.tm-logo-carousel a,
.tm-logo-carousel span {
  display: grid;
  place-items: center;
  min-height: 84px;
  padding: 16px;
  background: var(--tm-surface);
  border: 1px solid var(--tm-line);
  border-radius: var(--tm-radius);
}

.tm-contact-grid,
.tm-account-grid {
  display: grid;
  grid-template-columns: minmax(260px, 0.9fr) minmax(300px, 1.1fr);
  gap: 18px;
}

.tm-form,
.tm-account-form {
  display: grid;
  gap: 12px;
}

.tm-panel__image {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  margin-bottom: 12px;
  border-radius: 6px;
}

.tm-sitemap {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}

.tm-sitemap ul {
  margin: 0;
}

.tm-not-found {
  text-align: center;
}

.tm-not-found strong {
  display: block;
  color: var(--tm-primary);
  font-size: 110px;
  line-height: 1;
}

.tm-cart-table {
  overflow-x: auto;
  background: var(--tm-surface);
  border: 1px solid var(--tm-line);
  border-radius: var(--tm-radius);
}

.tm-cart-table__head,
.tm-cart-row {
  display: grid;
  grid-template-columns: 100px minmax(220px, 1fr) 130px 180px 130px 130px;
  gap: 12px;
  align-items: center;
  min-width: 880px;
  padding: 12px;
}

.tm-cart-table__head {
  color: var(--tm-muted);
  background: var(--tm-bg);
  font-weight: 800;
}

.tm-cart-row + .tm-cart-row {
  border-top: 1px solid var(--tm-line);
}

.tm-cart-row img {
  width: 80px;
  aspect-ratio: 1;
  object-fit: contain;
  background: var(--tm-bg);
  border-radius: 6px;
}

.tm-cart-row small {
  display: block;
  color: var(--tm-muted);
}

.tm-qty {
  display: grid;
  grid-template-columns: minmax(62px, 1fr) auto auto;
  gap: 6px;
}

.tm-cart-modules {
  display: grid;
  gap: 12px;
  margin: 16px 0;
}

.tm-cart-summary {
  width: min(100%, 420px);
  margin: 18px 0 18px auto;
  padding: 16px;
  background: var(--tm-surface);
  border: 1px solid var(--tm-line);
  border-radius: var(--tm-radius);
}

.tm-checkout {
  display: grid;
  gap: 12px;
}

.tm-checkout .row {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.tm-checkout [class*="col-sm-"],
.tm-checkout [class*="col-md-"],
.tm-checkout [class*="col-xs-"] {
  flex: 1 1 240px;
  min-width: 0;
}

.tm-checkout .form-group {
  margin-bottom: 12px;
}

.tm-checkout .control-label,
.tm-checkout legend {
  display: block;
  margin-bottom: 6px;
  color: var(--tm-muted);
  font-size: 13px;
  font-weight: 800;
}

.tm-checkout .radio,
.tm-checkout .checkbox {
  margin: 8px 0;
}

.tm-checkout .radio label,
.tm-checkout .checkbox label {
  display: flex;
  align-items: center;
  gap: 8px;
}

.tm-checkout .radio input,
.tm-checkout .checkbox input {
  width: auto;
  min-height: 0;
}

.tm-checkout-step {
  overflow: hidden;
  background: var(--tm-surface);
  border: 1px solid var(--tm-line);
  border-radius: var(--tm-radius);
}

.tm-checkout-step__title {
  min-height: 52px;
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  padding: 0 16px;
  color: var(--tm-ink);
  background: #fbfcfe;
  border-bottom: 1px solid var(--tm-line);
  font-size: 16px;
}

.tm-checkout-step__title span {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  color: #fff;
  background: var(--tm-primary);
  border-radius: 999px;
  font-size: 13px;
}

.tm-checkout-step__body {
  display: none;
  padding: 16px;
}

.tm-checkout-step.is-open .tm-checkout-step__body {
  display: block;
}

.tm-account-menu {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
}

.tm-account-menu a {
  min-height: 64px;
  display: flex;
  align-items: center;
  padding: 14px;
  background: var(--tm-surface);
  border: 1px solid var(--tm-line);
  border-radius: var(--tm-radius);
  font-weight: 800;
}

.tm-account-page .buttons,
.tm-checkout .buttons {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-top: 14px;
}

.tm-account-page .buttons .btn,
.tm-checkout .buttons .btn,
.tm-checkout .btn,
.tm-account-page .btn {
  min-height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 15px;
  color: #fff;
  background: var(--tm-primary);
  border: 1px solid var(--tm-primary);
  border-radius: var(--tm-radius);
  font-weight: 800;
}

.tm-alert,
.alert {
  position: relative;
  margin-bottom: 16px;
  padding: 12px 44px 12px 14px;
  border-radius: var(--tm-radius);
}

.tm-alert--success,
.alert-success {
  color: #064e3b;
  background: #d1fae5;
}

.tm-alert--danger,
.alert-danger {
  color: #881337;
  background: #ffe4e6;
}

.tm-alert--info,
.alert-info {
  color: #1e3a8a;
  background: #dbeafe;
}

.tm-alert__close,
.alert .close {
  position: absolute;
  top: 6px;
  right: 8px;
  width: 32px;
  height: 32px;
  color: inherit;
  background: transparent;
  border: 0;
  font-size: 22px;
}

.tm-empty {
  margin: 0 0 16px;
  padding: 18px;
  color: var(--tm-muted);
  background: var(--tm-surface);
  border: 1px dashed var(--tm-line);
  border-radius: var(--tm-radius);
}

.text-danger {
  color: var(--tm-danger);
  font-size: 13px;
}

.required > label::after,
.tm-option.required > label::after {
  content: " *";
  color: var(--tm-danger);
}

.tm-tags {
  margin-top: 18px;
  color: var(--tm-muted);
}

.tm-tags a {
  color: var(--tm-primary);
}

.tm-benefits {
  margin-top: 18px;
}

.tm-benefits__grid {
  min-height: 62px;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  align-items: center;
  gap: 0;
  background: var(--tm-surface);
  border: 1px solid var(--tm-line);
  border-radius: var(--tm-radius);
}

.tm-benefit {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-width: 0;
  padding: 10px 14px;
  color: #486381;
}

.tm-benefit + .tm-benefit {
  border-left: 1px solid var(--tm-line);
}

.tm-benefit svg {
  flex: 0 0 auto;
  font-size: 30px;
  color: #4b75a8;
}

.tm-benefit span {
  display: grid;
  min-width: 0;
}

.tm-benefit strong {
  color: var(--tm-ink);
  font-size: 13px;
}

.tm-benefit small {
  overflow: hidden;
  color: var(--tm-muted);
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tm-footer {
  margin-top: 24px;
  color: #dbe7f3;
  background: var(--tm-topbar);
}

.tm-footer__grid {
  display: grid;
  grid-template-columns: 1.2fr repeat(4, minmax(140px, 1fr));
  gap: 24px;
  padding: 34px 0;
}

.tm-footer h3 {
  margin: 0 0 12px;
  color: #fff;
  font-size: 16px;
}

.tm-footer p {
  margin: 0 0 12px;
  color: #aebdcc;
}

.tm-footer a {
  display: block;
  margin: 7px 0;
  color: #dbe7f3;
}

.tm-footer a:hover {
  color: #99f6e4;
}

.tm-footer__bottom {
  padding: 16px 0;
  color: #aebdcc;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
}

.tm-footer__bottom p {
  margin: 0;
}

@media (max-width: 1180px) {
  .tm-header__main {
    grid-template-columns: 240px minmax(300px, 1fr) auto;
    gap: 18px;
  }

  .tm-action__text {
    display: none;
  }

  .tm-layout,
  .tm-layout.has-left,
  .tm-layout.has-right,
  .tm-layout.has-left.has-right {
    grid-template-columns: 1fr;
  }

  .tm-column {
    order: 2;
  }

  .tm-content {
    order: 1;
  }

  .tm-footer__grid,
  .tm-benefits__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tm-benefit + .tm-benefit {
    border-left: 0;
    border-top: 1px solid var(--tm-line);
  }
}

@media (max-width: 860px) {
  body.tm-body {
    background: #fff;
    font-size: 16px;
  }

  .tm-shell {
    width: min(100% - 32px, 760px);
  }

  .tm-mobile-promo {
    min-height: 62px;
    justify-content: center;
    gap: 18px;
    padding: 0 16px;
    color: #fff;
    background: var(--tm-topbar);
    font-size: 15px;
  }

  .tm-mobile-promo__item {
    gap: 8px;
    white-space: nowrap;
  }

  .tm-mobile-promo__item svg {
    font-size: 24px;
  }

  .tm-mobile-promo__divider {
    width: 1px;
    height: 24px;
    background: rgba(255, 255, 255, 0.28);
  }

  .tm-topbar {
    display: none;
  }

  .tm-header {
    border-bottom: 0;
    box-shadow: 0 3px 14px rgba(14, 27, 47, 0.08);
  }

  .tm-header__main {
    min-height: 154px;
    grid-template-columns: 48px minmax(0, 1fr) 48px;
    gap: 8px 12px;
    padding: 26px 0 18px;
  }

  .tm-menu-toggle {
    display: inline-grid;
    gap: 5px;
    width: 44px;
    height: 44px;
    color: #111827;
    border: 0;
  }

  .tm-logo {
    justify-content: center;
    font-size: 34px;
  }

  .tm-logo img {
    max-height: 44px;
  }

  .tm-header__search {
    grid-column: 1 / -1;
    order: 4;
    margin-top: 18px;
  }

  .tm-header__actions {
    justify-content: flex-end;
    gap: 0;
  }

  .tm-account,
  .tm-action--wishlist {
    display: none;
  }

  .tm-cart__button {
    min-height: 44px;
  }

  .tm-cart__button .tm-action__icon {
    font-size: 34px;
  }

  .tm-action__badge {
    top: -1px;
    left: 28px;
    min-width: 22px;
    height: 22px;
    font-size: 12px;
  }

  .tm-search {
    min-height: 64px;
    grid-template-columns: 58px minmax(0, 1fr);
    border-radius: 13px;
  }

  .tm-search__icon {
    display: grid;
    place-items: center;
    color: #111827;
    font-size: 32px;
  }

  .tm-search__input {
    padding: 0 14px;
    font-size: 23px;
  }

  .tm-search__category,
  .tm-search__button {
    display: none;
  }

  .tm-nav-wrap {
    display: block;
    overflow-x: auto;
    padding: 18px 0 0;
    background: #fff;
    border-top: 0;
  }

  .tm-menu__list {
    min-height: 64px;
    gap: 14px;
    overflow-x: auto;
    padding-bottom: 14px;
  }

  .tm-menu__item {
    flex: 0 0 auto;
  }

  .tm-menu__catalog,
  .tm-menu__item > a {
    min-height: 62px;
    padding: 0 22px;
    gap: 12px;
    background: #fff;
    border: 1px solid var(--tm-line);
    border-radius: 13px;
    box-shadow: 0 5px 16px rgba(14, 27, 47, 0.04);
    font-size: 20px;
  }

  .tm-menu__catalog {
    width: auto;
    color: #fff;
    background: var(--tm-primary);
    border-color: var(--tm-primary);
  }

  .tm-menu__item--sale > a {
    color: var(--tm-ink);
    background: #fff;
    font-size: 20px;
  }

  .tm-menu__item--sale svg {
    display: block;
    color: var(--tm-accent);
    font-size: 25px;
  }

  .tm-menu__mega,
  .tm-menu__dropdown {
    display: none;
  }

  .tm-page {
    padding: 22px 0 32px;
  }

  .tm-slideshow {
    min-height: 360px;
    margin-top: 12px;
    border-radius: 13px;
  }

  .tm-slide,
  .tm-slide__media img {
    min-height: 360px;
  }

  .tm-slide__media img {
    aspect-ratio: 1.86;
  }

  .tm-slide__caption {
    top: 50px;
    left: 6%;
    width: 48%;
    transform: none;
    color: var(--tm-ink);
  }

  .tm-slide__caption span {
    color: var(--tm-primary);
    font-size: 21px;
  }

  .tm-slide__caption h2 {
    font-size: 42px;
  }

  .tm-slide__caption p {
    font-size: 20px;
  }

  .tm-slideshow__arrow {
    display: none;
  }

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

  .tm-module__head {
    margin-top: 28px;
  }

  .tm-module__head h2,
  .tm-page-title h1 {
    font-size: 30px;
  }

  .tm-module__link {
    font-size: 20px;
  }

  .tm-product-card {
    border-radius: 12px;
  }

  .tm-product-card__image {
    aspect-ratio: 0.96;
    padding: 24px 14px 12px;
  }

  .tm-product-card__title {
    min-height: 58px;
    font-size: 20px;
  }

  .tm-product-card__body {
    padding: 16px 16px 10px;
  }

  .tm-price strong {
    font-size: 22px;
  }

  .tm-rating {
    font-size: 20px;
  }

  .tm-product-card__actions {
    grid-template-columns: 1fr;
    padding: 0 16px 16px;
  }

  .tm-product-card__actions .tm-icon-button {
    display: none;
  }

  .tm-product-card__actions .tm-button {
    min-height: 58px;
    border-radius: 9px;
    font-size: 24px;
  }

  .tm-product-grid.is-list .tm-product-card {
    grid-template-columns: 1fr;
  }

  .tm-product-grid.is-list .tm-product-card__image {
    min-height: 0;
    aspect-ratio: 1;
  }

  .tm-toolbar {
    justify-content: stretch;
  }

  .tm-toolbar__view,
  .tm-toolbar label {
    width: 100%;
  }

  .tm-category-intro,
  .tm-product,
  .tm-contact-grid,
  .tm-account-grid,
  .tm-sitemap,
  .tm-filter-panel {
    grid-template-columns: 1fr;
  }

  .tm-buy-row {
    grid-template-columns: 110px minmax(0, 1fr);
  }

  .tm-buy-row .tm-icon-button {
    width: 100%;
  }

  .tm-footer,
  .tm-benefits {
    display: none;
  }
}

@media (max-width: 520px) {
  .tm-shell {
    width: min(100% - 28px, 520px);
  }

  .tm-mobile-promo {
    min-height: 58px;
    gap: 10px;
    font-size: 13px;
  }

  .tm-logo {
    font-size: 30px;
  }

  .tm-search__input {
    font-size: 20px;
  }

  .tm-menu__catalog,
  .tm-menu__item > a {
    min-height: 56px;
    padding: 0 18px;
    font-size: 18px;
  }

  .tm-slideshow,
  .tm-slide,
  .tm-slide__media img {
    min-height: 300px;
  }

  .tm-slide__caption h2 {
    font-size: 34px;
  }

  .tm-slide__caption p {
    font-size: 16px;
  }

  .tm-product-grid {
    gap: 14px;
  }

  .tm-product-card__title {
    min-height: 50px;
    font-size: 16px;
  }

  .tm-product-card__actions .tm-button {
    min-height: 50px;
    font-size: 18px;
  }

  .tm-rating {
    font-size: 17px;
  }
}
