/* Product overview and shared category-page elements. */
.products-page { color: var(--ink); background: var(--light-grey); }
.products-page h1, .products-page h2, .products-page h3 { font-family: var(--serif); font-weight: 400; text-transform: none; }
.products-page p { font-size: 17px; line-height: 1.72; }
.products-page .catalog-page-intro { padding: 54px var(--gutter) 58px; background: var(--ink); color: var(--paper); }
.products-page .catalog-page-intro h1 { font-size: clamp(48px,5.5vw,80px); letter-spacing: -.045em; line-height: 1.08; color: var(--lime); margin: 0 0 22px; }
.products-page .catalog-hero-accent { display: block; width: 88px; height: 4px; margin: 0 0 26px; background: var(--red); }
.products-page .catalog-page-intro p { max-width: 1030px; font-size: clamp(17px,1.5vw,20px); line-height: 1.65; color: var(--off-white); }
.products-page .catalog-exterior { padding: 38px var(--gutter) 60px; }
.products-page .catalog-container { max-width: 1600px; margin-inline: auto; }
.products-page .catalog-category { position: relative; padding: clamp(26px,4vw,54px); margin-bottom: clamp(40px,5vw,72px); background: var(--paper); border: 1px solid var(--light-grey); border-top: 5px solid var(--red); border-left: 10px solid var(--lime); box-shadow: 0 12px 28px #24282b12; scroll-margin-top: 28px; }
.products-page .catalog-category:nth-of-type(even) { background: var(--off-white); }
.products-page .catalog-category:last-child { margin-bottom: 0; }
.products-page .catalog-category-intro { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(0,.85fr); gap: clamp(28px,4vw,58px); align-items: start; }
.products-page .catalog-category-copy { max-width: 760px; min-width: 0; }
.products-page .catalog-category h2 { font-size: clamp(30px,3.1vw,44px); letter-spacing: -.035em; line-height: 1.12; margin: 0 0 24px; }
.products-page .catalog-category h2::before { content: ''; display: block; width: 52px; height: 4px; background: var(--red); margin-bottom: 20px; }
.products-page .catalog-category h2 a { color: inherit; text-decoration: none; }
.products-page .catalog-category h2 a:hover { text-decoration: underline; text-decoration-color: var(--red); text-underline-offset: 7px; }
.products-page .catalog-anchor-alias { position: absolute; top: 0; scroll-margin-top: 28px; }
.products-page .catalog-email { display: inline-flex; align-items: center; min-height: 44px; margin-top: 13px; padding: 8px 0; color: var(--red); font-size: 15px; line-height: 1.5; text-decoration: underline; text-underline-offset: 5px; }
.products-page .catalog-email:hover { color: var(--ink); text-decoration-thickness: 2px; }
.products-page .catalog-category-copy > .catalog-email { display: table; }
.products-page .catalog-page-link { display: flex; width: fit-content; max-width: calc(100% - 7px); line-height: 1.5; margin-top: 24px; text-align: left; }
.products-page .catalog-figure { margin: 0; min-width: 0; }
.products-page .catalog-image-space { display: flex; align-items: center; justify-content: center; width: 100%; min-width: 0; }
.products-page .catalog-image-space img { display: block; max-width: 100%; width: auto; height: auto; object-fit: contain; margin-inline: auto; }
.products-page .catalog-figure figcaption { font-size: 13px; line-height: 1.55; color: #525954; margin-top: 16px; }
.products-page .catalog-preview-images { display: grid; grid-template-columns: repeat(auto-fit,minmax(0,1fr)); gap: 20px; min-width: 0; }
.products-page .catalog-preview .catalog-image-space { position: relative; background: transparent; border: 0; padding: 0; height: auto; box-shadow: -7px 7px 0 var(--lime); margin-left: 7px; width: fit-content; max-width: calc(100% - 7px); transition: transform .22s ease, box-shadow .22s ease; }
.products-page .catalog-preview .catalog-image-space::after { content: ''; position: absolute; right: -1px; top: -1px; width: 24px; height: 24px; border-top: 4px solid var(--red); border-right: 4px solid var(--red); pointer-events: none; }
.products-page .catalog-preview img { max-height: 300px; }
.products-page .catalog-preview figcaption { font-size: 12px; margin-top: 18px; }
/* Revision 31.1: centre the two single-product previews and their captions. */
.products-overview :is(#cirqual-iq, #flame-deflashing) .catalog-preview-images { justify-self: center; }
.products-overview :is(#cirqual-iq, #flame-deflashing) .catalog-image-space { margin: 0 auto 7px; max-width: calc(100% - 14px); }
.products-overview :is(#cirqual-iq, #flame-deflashing) figcaption { max-width: 50ch; margin-inline: auto; text-align: center; }
.products-overview .catalog-caption-line { display: block; }
@media (max-width: 760px) {
 .products-overview .catalog-caption-line { display: inline; }
 .products-overview :is(#cirqual-iq, #flame-deflashing) figcaption { text-wrap: balance; }
}
@media (hover: hover) {
 .products-page a.catalog-image-space:hover { transform: translateY(-4px); box-shadow: -7px 7px 0 var(--lime),0 14px 24px #24282b26; }
}
@media (prefers-reduced-motion: reduce) {
 .products-page a.catalog-image-space:hover { transform: none; }
}
.products-page a.catalog-image-space:focus-visible { outline: 3px solid var(--red); outline-offset: 5px; }
.products-page .catalog-nojs { margin-bottom: 28px; }
.products-page [data-product-anchor] { scroll-margin-top: 28px; }
.products-page [data-product-anchor]:focus-visible { outline: 3px solid var(--red); outline-offset: 7px; }
.products-page .catalog-closing { padding: clamp(64px,7vw,104px) var(--gutter); background: var(--off-white); text-align: center; }
.products-page .catalog-contact-accent { display: block; width: 96px; height: 4px; margin: 0 auto 26px; background: var(--lime); }
.products-page .catalog-contact-accent::after { content: ''; display: block; width: 24px; height: 4px; margin-left: auto; background: var(--red); }
.products-page .catalog-closing-copy { max-width: 800px; margin: 26px auto 0; }
.products-page .catalog-closing h2 { font-size: clamp(31px,3.1vw,44px); line-height: 1.12; letter-spacing: -.035em; margin: 0; }
.products-page .catalog-contact-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 20px 28px; margin-top: 34px; }
.products-page .catalog-contact-actions .button { min-width: 152px; min-height: 52px; margin: 0 0 7px 7px; background: var(--red); border: 1px solid var(--red); color: var(--paper); box-shadow: -7px 7px 0 var(--lime); }
.products-page .catalog-contact-actions .button:hover { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.products-page .catalog-contact-actions .button:focus-visible { outline: 3px solid var(--ink); outline-offset: 11px; }
@media (max-width: 980px) {
 .products-page .catalog-category-intro { grid-template-columns: minmax(0,1fr); }
 .products-page .catalog-preview-images { max-width: 620px; width: 100%; }
 .products-page .catalog-preview img { max-height: 280px; }
}
@media (max-width: 760px) {
 .products-page .catalog-page-intro { padding: 38px var(--gutter) 42px; }
 .products-page .catalog-page-intro h1 { font-size: clamp(35px,9vw,49px); margin-bottom: 20px; }
 .products-page .catalog-exterior { padding: 22px 16px 32px; }
 .products-page .catalog-category { padding: 28px 20px; border-left-width: 6px; margin-bottom: 36px; }
 .products-page .catalog-category h2 { font-size: clamp(28px,7.3vw,34px); }
 .products-page .catalog-preview-images { gap: 16px; }
 .products-page .catalog-preview img { max-height: 240px; }
 .products-page .catalog-closing { padding-block: 56px 64px; }
 .products-page .catalog-closing h2 { font-size: 32px; }
 .products-page .catalog-contact-actions { flex-direction: column; gap: 14px; }
}
@media (max-width: 370px) {
 .products-page .catalog-exterior { padding-inline: 12px; }
 .products-page .catalog-category { padding-inline: 16px; }
 .products-page .catalog-preview-images:has(> :nth-child(2)) img { max-height: 190px; }
}
@media (prefers-reduced-motion: reduce) {
 .products-page * { scroll-behavior: auto; animation: none; transition: none; }
}
