.products-page {
  --muted: #5b6778;
  --gutter: clamp(22px, 4.8vw, 76px);
  -webkit-font-smoothing: antialiased;
}

.products-page .site-header {
  position: sticky;
  top: 0;
  z-index: 10;
  border-bottom: 1px solid #ffffff14;
}

.products-page .skip-link:focus { z-index: 20; }
.products-page .header-inner { min-height: 88px; }
.products-page .brand img { width: 198px; }
.products-page .main-nav a { font-size: .875rem; }
.products-page .button { border-radius: 6px; }
.products-page .footer-grid { grid-template-columns: 1.3fr 1fr 1fr; padding-block: 58px 50px; }
.products-page .footer-brand img { width: 210px; }
.products-page .site-footer { font-size: .875rem; }

.catalog-main { padding-block: clamp(48px, 6vw, 88px) clamp(64px, 7vw, 104px); background: #f5f6f7; }
.catalog-heading { max-width: 800px; margin: 0 auto 44px; text-align: center; }

.catalog-heading h1,
.product-summary h1 {
  margin: 0;
  font-size: clamp(2.25rem, 4.1vw, 3.5rem);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -.045em;
  text-wrap: balance;
}

.catalog-heading p { margin: 18px 0 0; color: var(--muted); line-height: 1.7; }
.catalog-heading .catalog-note { font-size: .875rem; }
.catalog-categories {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 40px;
}

.catalog-categories a {
  display: grid;
  min-height: 60px;
  align-items: center;
  padding: 14px 12px;
  border: 1px solid #dce1e7;
  border-radius: 8px;
  color: var(--navy);
  background: #fff;
  font-size: .9375rem;
  font-weight: 600;
  line-height: 1.4;
  text-align: center;
  scroll-margin-top: 115px;
}

.catalog-categories a:hover { border-color: #b48a4b; }
.catalog-categories a[aria-current="true"] { border-color: var(--navy); color: var(--gold); background: var(--navy); }
.catalog-results-heading { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 10px; margin-bottom: 24px; }
.catalog-results-heading h2 { margin: 0; font-size: clamp(1.5rem, 2.5vw, 2rem); font-weight: 650; letter-spacing: -.03em; }
.catalog-results-heading p { margin: 0; color: var(--muted); font-size: .875rem; }
.catalog-results .category-grid { justify-content: flex-start; }
.catalog-card { display: block; scroll-margin-top: 115px; }
.catalog-card > img { padding: 26px; object-fit: contain; background: #fff; border-bottom: 1px solid #edf0f2; }
.catalog-card .category-copy h2 { margin: 9px 0 12px; font-size: 1.25rem; line-height: 1.35; letter-spacing: -.02em; }
.catalog-category { color: #9b6a25; font-size: .8125rem; }
.catalog-model { color: var(--muted); font-size: .875rem; }
.catalog-action { display: block; margin-top: 19px; font-size: .875rem; font-weight: 650; }
.catalog-card:hover { border-color: #c9a46b; }
.catalog-card:hover .catalog-action { text-decoration: underline; text-underline-offset: 4px; }

.product-breadcrumbs { display: flex; flex-wrap: wrap; gap: 7px 11px; margin: 0; padding: 25px 0; list-style: none; color: var(--muted); font-size: .8125rem; }
.product-breadcrumbs li + li::before { margin-right: 11px; color: #9aa4b0; content: "/"; }
.product-breadcrumbs a:hover { color: var(--navy); text-decoration: underline; text-underline-offset: 3px; }

.product-overview {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(30px, 5vw, 72px);
  align-items: start;
  padding-block: 14px clamp(44px, 5vw, 72px);
}

.product-gallery { min-width: 0; }
.gallery-stage { aspect-ratio: 1; overflow: hidden; border: 1px solid #e4e6e8; border-radius: 12px; background: #fafafa; }
.gallery-image { width: 100%; height: 100%; padding: 24px; object-fit: contain; }
.gallery-full-image { display: inline-block; margin-top: 12px; color: var(--muted); font-size: .8125rem; text-decoration: underline; text-underline-offset: 3px; }
.gallery-thumbnails { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }

.gallery-thumbnail {
  width: 112px;
  padding: 7px;
  border: 1px solid #dce1e7;
  border-radius: 7px;
  color: var(--muted);
  background: #fff;
  text-align: center;
}

.gallery-thumbnail img { width: 100%; height: 62px; object-fit: contain; }
.gallery-thumbnail span { display: block; margin-top: 5px; font-size: .75rem; }
.gallery-thumbnail[aria-pressed="true"] { border-color: #9b6a25; color: var(--navy); background: #faf7f1; }
.product-category-label { margin: 3px 0 15px; color: #9b6a25; font-size: .75rem; font-weight: 650; letter-spacing: .13em; text-transform: uppercase; }
.product-model { margin: 17px 0 0; color: var(--muted); font-size: .9rem; }
.product-model strong { color: var(--navy); }
.product-data-note { margin: 14px 0 0; color: var(--muted); font-size: .8125rem; line-height: 1.65; }
.product-summary h2 { margin: 29px 0 15px; font-size: 1rem; }
.selling-points { display: grid; gap: 13px; margin: 0; padding: 0; list-style: none; }
.selling-points li { position: relative; padding-left: 23px; color: var(--muted); font-size: .9375rem; line-height: 1.6; }
.selling-points li::before { position: absolute; left: 0; color: #9b6a25; font-weight: 700; content: "✓"; }
.product-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 29px; }

.order-terms {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
  margin: 0;
  padding: 28px 0;
  border-block: 1px solid #e1e4e8;
}

.order-terms dt { margin-bottom: 10px; font-size: .8125rem; font-weight: 650; }
.order-terms dd { margin: 0; font-size: 1rem; font-weight: 600; line-height: 1.5; }
.order-terms dd span { display: block; margin-top: 4px; color: var(--muted); font-size: .8125rem; font-weight: 400; }

.product-information { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 72px); padding-block: clamp(50px, 6vw, 86px); }
.product-information h2 { margin: 0 0 23px; font-size: clamp(1.5rem, 2.7vw, 2rem); font-weight: 650; letter-spacing: -.03em; }
.specifications { width: 100%; border-collapse: collapse; font-size: .9375rem; line-height: 1.5; }
.specifications th, .specifications td { padding: 15px 17px; border-bottom: 1px solid #e4e6e8; text-align: left; overflow-wrap: anywhere; }
.specifications th { width: 39%; font-weight: 600; }
.specifications td { color: var(--muted); }
.specifications tr:nth-child(odd) { background: #f7f8f9; }
.oem-options { display: grid; gap: 13px; margin: 0; padding: 0; list-style: none; }
.oem-options li { padding: 19px 21px; border: 1px solid #e8e1d6; border-radius: 8px; background: #faf7f1; font-size: .9375rem; font-weight: 600; }
.oem-options li::before { margin-right: 13px; color: #9b6a25; content: "✓"; }
.product-inquiry { padding-block: clamp(50px, 6vw, 86px); background: #f6f4ef; scroll-margin-top: 90px; }
.product-inquiry .inquiry-panel { max-width: 920px; margin-inline: auto; }
.product-form-context { margin: -10px 0 25px; color: var(--muted); font-size: .9rem; line-height: 1.6; }

@media (max-width: 1020px) {
  .products-page .header-inner { min-height: 72px; }
  .products-page .brand img { width: 174px; }
}

@media (max-width: 900px) {
  .product-overview { grid-template-columns: minmax(0, 1fr); gap: 34px; }
  .product-gallery { width: min(100%, 580px); margin-inline: auto; }
  .product-information { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 760px) {
  .catalog-categories { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .products-page .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 540px) {
  .catalog-categories { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 30px; }
  .catalog-categories a:last-child { grid-column: 1 / -1; }
  .product-breadcrumbs { padding-block: 20px; font-size: .75rem; }
  .gallery-image { padding: 16px; }
  .order-terms { grid-template-columns: minmax(0, 1fr); gap: 0; padding-block: 4px; }
  .order-terms > div { padding-block: 20px; }
  .order-terms > div + div { border-top: 1px solid #e1e4e8; }
  .order-terms dd span { display: inline; margin-left: 7px; }
  .specifications th, .specifications td { padding: 14px 12px; }
}

@media (max-width: 500px) {
  .products-page .footer-grid { grid-template-columns: minmax(0, 1fr); gap: 30px; padding-block: 42px; }
}
