.product-catalog { color: #333; }
.product-banner { position: relative; background: #d6e4ef; }
.product-banner > img { display: block; width: 100%; height: auto; }
.product-banner__copy { position: absolute; inset: 0 auto 0 30%; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; width: 60%; color: white; transform: translateY(.5rem); }
.product-banner__copy > span { font-size: 3.25rem; font-weight: 700; line-height: 1.2; text-shadow: 0 2px 4px rgb(0 0 0 / 35%); }
.product-banner__copy > i { position: relative; width: 10rem; margin-top: 1.25rem; border-top: 1px solid rgb(255 255 255 / 50%); }
.product-banner__copy > i::after { position: absolute; top: -.25rem; right: 0; width: .5rem; height: .5rem; border: 1px solid rgb(255 255 255 / 70%); border-radius: 50%; content: ""; }
.product-breadcrumbs { padding-block: .75rem; background: #f7f7f7; font-size: .875rem; }
.product-breadcrumbs > div { display: flex; flex-wrap: wrap; gap: .4rem; width: min(1360px, calc(100% - 1rem)); margin-inline: auto; }
.product-breadcrumbs > div > span:first-child { margin-right: .5rem; }
.product-breadcrumbs a { text-decoration: none; }
.product-breadcrumbs [aria-current] { color: #d02c2e; }
.product-layout { display: grid; grid-template-columns: 23% minmax(0, 1fr); gap: 2.5%; width: min(1360px, calc(100% - 1rem)); margin-inline: auto; padding-block: 2.5rem 3.75rem; }
.product-main { min-width: 0; }
.product-sidebar { margin-top: -1rem; }
.product-sidebar h2 { display: flex; align-items: center; min-height: 6rem; padding: 1rem 1.25rem; margin: 0; color: white; background: #d02c2e; font-size: 1.625rem; font-weight: 700; }
.product-sidebar__categories { padding: .6875rem; }
.product-sidebar__categories a { display: flex; align-items: center; justify-content: space-between; min-height: 3.125rem; padding: .75rem 1.25rem; color: #333; text-decoration: none; line-height: 1.5; }
.product-sidebar__categories a:last-child { border-bottom: 0; }
.product-sidebar__categories a:hover, .product-sidebar__categories a[aria-current] { color: white; background: #d02c2e; }
.product-sidebar__categories a > span { font-size: 1.25rem; }
.product-sidebar__categories a > span::after { display: block; border-block: .5rem solid transparent; border-left: .5rem solid currentColor; content: ""; }
.product-sidebar__contact { margin-top: 1.25rem; padding: 1.875rem 1.25rem; background: #f6f6f6; text-align: center; }
.product-sidebar__contact h3 { margin: 0 0 .9375rem; padding-bottom: .9375rem; border-bottom: 1px solid #d4ddee; color: #292e32; font-size: 1.25rem; font-weight: 400; line-height: 1.25; }
.product-sidebar__email { color: #d02c2e; font-size: 1.375rem; font-weight: 700; text-decoration: none; overflow-wrap: anywhere; }
.product-sidebar__contact p { margin: 0; color: #636768; font-size: .8125rem; line-height: 1.5; }
.product-sidebar__symbol { display: grid; place-items: center; margin: 1.25rem 0; }
.product-sidebar__symbol img { display: block; width: 3.125rem; height: auto; }
.product-contact-button { display: inline-block; min-width: 7rem; padding: .5rem 1.5rem; color: white; background: #d02c2e; border: 1px solid #d02c2e; border-radius: 3px; text-align: center; text-decoration: none; font-size: .875rem; line-height: 1.5; }
.product-contact-button:hover { color: #d02c2e; background: white; }
.product-sidebar__contact .product-contact-button { display: block; min-width: 0; padding: 0; border: 0; border-radius: 0; font-size: 1rem; line-height: 36px; }
.product-list__heading { margin: 0 0 2rem; padding-inline: .625rem; font-size: 1.25rem; font-weight: 700; line-height: 1.5; }
.product-catalog .product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; padding-inline: .625rem; }
.product-catalog .product-card { border: 0; border-radius: 0; box-shadow: none; background: #f7f7f7; }
.product-catalog .product-card:hover { transform: none; box-shadow: none; }
.product-catalog .product-card__link { padding: 5%; }
.product-catalog .product-card__image { overflow: hidden; background: #f5f5f5; }
.product-catalog .product-card img { width: 100%; aspect-ratio: 1; object-fit: contain; background: white; transition: transform .36s ease; }
.product-catalog .product-card:is(:hover, :focus-within) img { transform: scale(1.08); }
.product-catalog .product-card__caption { display: block; margin-top: 5%; }
.product-catalog .product-card__title { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; min-height: 3rem; color: #333; text-align: center; font-size: 1rem; font-weight: 400; line-height: 1.5; }
.product-catalog .product-card__link:hover .product-card__title { color: #d02c2e; }
.product-pagination { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: .5rem; margin-top: 2.5rem; font-size: .875rem; }
.product-pagination > a, .product-pagination > span:not(.product-pagination__count) { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border: 1px solid #ddd; text-decoration: none; }
.product-pagination a[aria-current], .product-pagination a:hover { color: white; background: #d02c2e; border-color: #d02c2e; }
.product-pagination .is-disabled { color: #bbb; }
.product-pagination__count { margin-inline: .5rem; }
.product-pagination form { display: flex; gap: .5rem; }
.product-pagination input { width: 3rem; height: 2.5rem; border: 1px solid #ddd; text-align: center; font: inherit; }
.product-pagination button { border: 1px solid #ddd; padding-inline: .75rem; background: white; cursor: pointer; }
.product-detail { padding-inline: 1.25rem; }
.product-catalog--detail .product-layout { padding-top: 1.75rem; }
.product-catalog--detail .product-sidebar { margin-top: 0; }
.product-detail__overview { display: grid; grid-template-columns: 42% minmax(0, 1fr); gap: 1.25rem; }
.product-detail__gallery { min-width: 0; }
.product-detail__image { position: relative; border: 1px solid #eee; }
.product-detail__image img { display: block; width: 100%; aspect-ratio: 1; object-fit: contain; }
.product-detail__image-count { display: none; }
.product-detail__thumbnail { display: block; width: 4.5rem; margin-top: .75rem; border: 1px solid #d02c2e; }
.product-detail__thumbnail img { display: block; width: 100%; }
.product-detail__mobile-attributes { display: none; }
.product-detail__intro h1 { margin: 0 0 .75rem; font-size: 1.25rem; font-weight: 400; line-height: 2; }
.product-detail__intro { padding-top: .625rem; }
.product-detail__title-row { display: flex; gap: 1.25rem; }
.product-detail__title-row h1 { flex: 1; min-width: 0; }
.product-detail__share { position: relative; flex: 0 0 5.5rem; align-self: start; color: #666; font-size: .875rem; }
.product-detail__share summary { display: flex; flex-direction: column; align-items: center; gap: .5rem; padding: .5rem; border-left: 1px solid #eee; cursor: pointer; list-style: none; }
.product-detail__share summary::-webkit-details-marker { display: none; }
.product-detail__share .site-icon { width: 1.5rem; height: 1.5rem; }
.product-detail__intro p { margin: 0 0 1rem; font-size: 1rem; line-height: 1.6; }
.product-detail__actions { display: flex; flex-wrap: wrap; gap: .625rem; margin-top: 1.25rem; }
.product-detail__actions .product-contact-button { display: inline-flex; align-items: center; justify-content: center; gap: .375rem; min-height: 42px; max-width: 100%; padding: .5rem 1rem; border-radius: 1.5rem; font-size: .9375rem; line-height: 1.5; cursor: pointer; }
.product-detail__actions .product-contact-button span { min-width: 0; overflow-wrap: anywhere; }
.product-detail__actions .site-icon { flex: 0 0 1.125rem; width: 1.125rem; height: 1.125rem; }
.product-detail__actions .product-contact-button:focus-visible { outline: 2px solid #d02c2e; outline-offset: 3px; }
.product-detail__intro dl { margin: .5rem 0 1rem; font-size: .875rem; }
.product-detail__intro dl > div { display: flex; gap: .3rem; min-height: 2.5rem; align-items: center; }
.product-detail__intro dt, .product-detail__intro dd { margin: 0; }
.product-detail__neighbours { margin-block: 1.5rem; font-size: .875rem; }
.product-detail__neighbours a { text-decoration: none; }
.product-detail__neighbours a:hover { color: #d02c2e; }
.product-detail__neighbours > div { margin-block: .75rem; }
.product-detail__tabs { padding: .875rem 1.25rem; border-bottom: 1px solid #ccc; font-size: 1rem; line-height: 1.75; }
.product-detail__technical-heading { margin: 1.75rem 0 1rem; font-size: 1rem; font-weight: 400; }
.product-detail .spec-table-scroll { border: 0; margin-block: 0 1.5rem; }
.product-detail .spec-table-scroll table { min-width: 720px; table-layout: fixed; color: #333; font-size: .75rem; }
.product-detail .spec-table-scroll th, .product-detail .spec-table-scroll td { min-width: 0; padding: .9375rem .3rem; border: 1px solid #ddd; background: white; color: #333; text-align: center; vertical-align: middle; font-weight: 400; line-height: 1.6; overflow-wrap: anywhere; }
.product-detail .spec-table-scroll tr:nth-child(even) td { background: white; }
.product-detail__description { margin-block: 1.5rem 3rem; font-size: .875rem; line-height: 1.8; }
.product-detail__description .rich-text { max-width: none; }
.product-detail__description h2 { margin: 1rem 0; font-size: 1rem; }
.product-detail__description p { margin-block: 1rem; }
.related-section { width: min(1360px, calc(100% - 1rem)); margin: 0 auto; padding-bottom: 3.75rem; }
.related-section > h2 { margin: 0 0 1.5rem; color: #333; font-size: 1.5rem; font-weight: 400; }
.product-catalog .related-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; padding-inline: .625rem; }
.product-related .product-card__link { height: auto; }
.product-related .product-card img { aspect-ratio: 10 / 7; }
.product-related .product-card__caption { margin: 1.25rem 0 0; }
.product-related .product-card__title { text-align: left; }
.product-catalog--detail .product-breadcrumbs a[aria-current] { max-width: 12rem; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
@media (max-width: 700px) {
  .product-banner > img { height: 6rem; object-fit: cover; }
  .product-banner__copy { left: 0; width: 100%; padding-inline: 1rem; transform: none; }
  .product-banner__copy > span { font-size: 1.625rem; }
  .product-banner__copy > i { width: 7rem; margin-top: .5rem; }
  .product-breadcrumbs, .product-sidebar, .product-list__heading { display: none; }
  .product-layout { display: block; width: calc(100% - 1.25rem); padding-block: 1rem 2rem; }
  .product-catalog .product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .875rem; padding: 0; }
  .product-catalog .product-card { background: white; }
  .product-catalog .product-card__link { padding: 0; }
  .product-catalog .product-card__caption { margin: 0; padding: .5rem; background: #f8f8f8; }
  .product-catalog .product-card__title { min-height: 2.625rem; font-size: .875rem; }
  .product-pagination { gap: .4rem; margin-top: 1.5rem; font-size: .75rem; }
  .product-pagination > a, .product-pagination > span:not(.product-pagination__count) { width: 2rem; height: 2rem; }
  .product-pagination input { height: 2rem; }
  .product-pagination__count { margin-inline: 0; }
  .product-pagination form { gap: .25rem; }
  .product-catalog--detail .product-banner { display: none; }
  .product-catalog--detail .product-layout { width: 100%; padding-top: 0; }
  .product-detail { padding: 0; }
  .product-detail__overview { grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
  .product-detail__image { border: 0; }
  .product-detail__thumbnail { display: none; }
  .product-detail__image-count { display: block; position: absolute; bottom: 0; right: .875rem; padding: .1rem .875rem; border-radius: 2rem; color: white; background: #aaa; font-size: .875rem; }
  .product-detail__intro { padding: 0 .875rem; }
  .product-detail__intro h1 { font-size: 1.125rem; line-height: 1.4; }
  .product-detail__title-row { gap: .5rem; }
  .product-detail__share { flex-basis: 2rem; }
  .product-detail__share summary { border: 0; padding: .5rem 0; }
  .product-detail__share summary > span { display: none; }
  .product-detail__share .site-icon { width: 1.125rem; height: 1.125rem; }
  .product-detail__intro p { font-size: .875rem; color: #666; line-height: 1.6; }
  .product-detail__attributes, .product-detail__intro > .product-contact-button, .product-detail__neighbours { display: none; }
  .product-detail__mobile-attributes { display: block; margin-inline: -.875rem; border-block: 1rem solid #f8f8f8; font-size: .875rem; }
  .product-detail__mobile-attributes summary { display: flex; gap: 1rem; align-items: center; padding: 1rem; list-style: none; cursor: pointer; }
  .product-detail__mobile-attributes summary::-webkit-details-marker { display: none; }
  .product-detail__mobile-attributes summary > span { width: 3rem; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; color: #888; }
  .product-detail__mobile-attributes summary > b { font-weight: 400; color: #333; }
  .product-detail__mobile-attributes summary > i { margin-left: auto; color: #888; font-style: normal; }
  .product-detail__mobile-attributes dl { padding-inline: 1rem; }
  .product-detail__tabs { padding: 1.25rem .75rem; color: #d02c2e; text-align: center; }
  .product-detail__technical-heading, .product-detail .spec-table-scroll, .product-detail__description { margin-inline: .875rem; }
  .related-section { width: calc(100% - 1.875rem); padding-bottom: 2rem; }
  .product-catalog .related-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem .875rem; padding: 0; }
  .product-related .product-card { background: #f7f7f7; }
  .product-related .product-card__link { padding: .625rem; }
  .product-related .product-card__caption { margin: 1.25rem 0 0; padding: 0; background: none; }
  .product-related .product-card__title { display: block; min-height: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .product-catalog .product-card img { transition: none; }
  .product-catalog .product-card:is(:hover, :focus-within) img { transform: none; }
}
