.catalog-page {
  background: radial-gradient(ellipse 70% 650px at 85% 0, #173b4b47, transparent 75%), var(--paper);
}
.catalog-page .pricing-section {
  min-height: calc(100svh - 240px);
  border-top: 0;
  background: transparent;
}
.catalog-page .pricing-section > .section-wrap {
  padding-top: 180px;
  padding-bottom: 96px;
}
.catalog-page .section-heading { gap: 48px; margin-bottom: 42px; }
.catalog-page #pricing-title {
  margin: 0;
  font-size: clamp(36px, 3.8vw, 50px);
  font-weight: 650;
  line-height: 1.5;
  letter-spacing: .035em;
  overflow-wrap: anywhere;
}
.catalog-page .section-intro { max-width: 420px; line-height: 2; }
.catalog-page .desktop-nav [aria-current="page"],
.catalog-page .mobile-nav [aria-current="page"] { color: var(--accent); }
.catalog-page .desktop-nav [aria-current="page"]::after { width: 100%; }
.catalog-page .catalog-toolbar { gap: 24px; }
.catalog-page .search-box { min-height: 46px; border-radius: 14px; }
.catalog-page .supplier-catalog-filters { margin-top: 26px; }
.catalog-page .catalog-meta { gap: 16px; padding-block: 24px; line-height: 1.8; }
.catalog-page .catalog-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 152px;
  margin-top: 12px;
  border: 1px dashed var(--line);
  border-radius: 18px;
  color: var(--muted);
  font-size: 14px;
}
.catalog-page .catalog-loading::before {
  width: 18px;
  height: 18px;
  border: 2px solid var(--line);
  border-top-color: var(--ink);
  border-radius: 50%;
  content: "";
  animation: catalog-loading-spin .8s linear infinite;
}
.catalog-page .catalog-loading[hidden] { display: none; }
@keyframes catalog-loading-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .catalog-page .catalog-loading::before { animation: none; }
}
.catalog-page .product-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.catalog-page .product-card {
  min-width: 0;
  min-height: 300px;
  padding: 20px;
  border-radius: 18px;
}
.catalog-page .product-topline { gap: 10px; margin-bottom: 14px; }
.catalog-page .product-platform { gap: 8px; font-size: 12px; letter-spacing: .01em; }
.catalog-page .product-code { font-size: 10px; letter-spacing: .02em; }
.catalog-page .product-card h3 {
  margin-bottom: 8px;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.55;
  letter-spacing: .01em;
}
.catalog-page .product-kind {
  min-height: 0;
  margin-bottom: 14px;
  font-size: 12px;
  line-height: 1.65;
  letter-spacing: .01em;
}
.catalog-page .product-price {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 4px 8px;
  padding-top: 10px;
  margin-bottom: 10px;
  font-size: 28px;
  line-height: 1.2;
  letter-spacing: 0;
  overflow-wrap: anywhere;
}
.catalog-page .product-price small { margin-left: 0; font-size: 11px; line-height: 1.5; }
.catalog-page .product-price-enquiry { font-size: 22px; line-height: 1.4; }
.catalog-page .product-limits {
  gap: 4px 12px;
  margin-bottom: 16px;
  font-size: 11px;
  line-height: 1.65;
  letter-spacing: .01em;
}
.catalog-page .product-limits .product-completion {
  flex-basis: 100%;
  color: var(--muted);
}
.catalog-page .product-card .choose-service {
  min-height: 44px;
  padding: 10px 12px;
  border-radius: 12px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .02em;
}
.catalog-page .pricing-footnote { margin-top: 30px; }
@media (min-width: 1440px) {
  .catalog-page .product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 980px) {
  .catalog-page .pricing-section > .section-wrap { padding-top: 154px; padding-bottom: 80px; }
  .catalog-page .section-heading { gap: 32px; }
  .catalog-page #pricing-title { font-size: clamp(34px, 4.8vw, 44px); }
  .catalog-page .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .catalog-page .section-heading { display: block; margin-bottom: 30px; }
  .catalog-page .section-intro { margin-top: 22px; }
  .catalog-page .catalog-meta { flex-wrap: wrap; gap: 8px 20px; }
  .catalog-page .product-grid { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .catalog-page .product-card { min-height: 0; }
}
@media (max-width: 480px) {
  .catalog-page .pricing-section > .section-wrap { padding-top: 134px; padding-bottom: 64px; }
  .catalog-page #pricing-title { font-size: 34px; line-height: 1.55; letter-spacing: .025em; }
  .catalog-page .catalog-toolbar { gap: 17px; }
  .catalog-page .supplier-catalog-filters { margin-top: 22px; }
  .catalog-page .product-card { border-radius: 18px; }
}
