/* Products page: loaded after site.css and premium.css */

/* Added to the page's 90px scroll-padding, so a section lands just under the header and category bar */
section.p-hero, section.pcat, section.compare, section.p-help { scroll-margin-top: 60px; }

/* Intro */
.p-hero { overflow: hidden; padding-block: clamp(36px, 5vw, 64px) 0; background: var(--bg-soft); text-align: center; }
.crumbs { display: flex; justify-content: center; gap: 8px; margin-bottom: 18px; font-size: .88rem; font-weight: 500; color: var(--muted); }
.crumbs a { color: var(--navy); }
.crumbs a:hover { color: var(--navy); text-decoration: underline; text-underline-offset: 3px; }
.p-hero h1 { font-size: clamp(2.8rem, 6.4vw, 5.5rem); font-weight: 700; line-height: 1; letter-spacing: -.05em; color: var(--ink); text-wrap: balance; }
.p-hero h1 em, .pcat-head h2 em, .compare h2 em, .p-help h2 em { font-style: normal; color: var(--orange); }
.p-lead { max-width: 54ch; margin: 20px auto 0; font-size: clamp(1.05rem, 1.7vw, 1.3rem); line-height: 1.5; color: var(--grey); }
/* Hero units. Plain row by default; the script turns it into a carousel on a wide screen. */
.p-hero-shots { position: relative; z-index: 0; display: flex; align-items: flex-end; justify-content: center; gap: clamp(8px, 3vw, 44px); height: clamp(200px, 30vw, 380px); margin-top: clamp(28px, 4vw, 48px); padding-inline: 20px; }
.p-unit { display: block; height: 62%; }
.p-unit img { width: auto; height: 100%; max-width: 100%; object-fit: contain; object-position: bottom; filter: drop-shadow(0 18px 18px rgba(21, 26, 46, .12)); }
.p-hero-shots:not(.is-ring) .p-unit { max-width: 18%; }
.p-hero-shots:not(.is-ring) .p-unit.is-hero { height: 100%; max-width: 26%; }
.p-hero-shots:not(.is-ring) .p-unit:nth-child(n+6) { display: none; }

/* Carousel: every unit stands on the same floor line, sized and faded by how far round it has turned */
.p-hero-shots.is-ring { display: block; height: clamp(250px, 26vw, 340px); padding-inline: 0; }
.is-ring .p-unit { position: absolute; left: 50%; bottom: 0; width: auto; height: 100%; max-width: none; transform-origin: 50% 100%; will-change: transform, opacity; }
.is-ring .p-unit img { width: auto; height: 100%; max-width: none; }
.is-ring .p-unit.is-front img { filter: drop-shadow(0 26px 26px rgba(21, 26, 46, .16)); }
.p-ring-wrap { position: relative; }
.p-ring-wrap.is-on { cursor: grab; touch-action: pan-y; }
.p-ring-wrap.is-on.is-dragging { cursor: grabbing; }
.p-ring-wrap.is-on .p-unit img { user-select: none; -webkit-user-drag: none; }
.p-ring-arrow { display: none; }
.p-ring-wrap.is-on .p-ring-arrow { position: absolute; top: 50%; z-index: 300; display: grid; place-items: center; width: 52px; height: 52px; border: 0; border-radius: 50%; background: #fff; box-shadow: 0 2px 16px rgba(21, 26, 46, .16); color: var(--ink); cursor: pointer; transform: translateY(-50%); transition: background-color .25s, color .25s; }
.p-ring-wrap.is-on .p-ring-arrow.prev { left: clamp(6px, 3vw, 54px); }
.p-ring-wrap.is-on .p-ring-arrow.next { right: clamp(6px, 3vw, 54px); }
.p-ring-arrow:hover { color: var(--navy); }
.p-ring-arrow:focus-visible { outline: 2px solid var(--orange); outline-offset: 3px; }
.p-ring-arrow svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.p-ring-label { display: flex; flex-direction: column; align-items: center; gap: 4px; margin: clamp(14px, 2vw, 22px) 0 0; min-height: 3.4em; }
.p-ring-label[hidden] { display: none; }
.p-ring-label strong { font-size: clamp(1.15rem, 1.7vw, 1.5rem); font-weight: 700; letter-spacing: -.03em; color: var(--ink); transition: opacity .3s ease; }
.p-ring-label span { font-size: .92rem; font-weight: 500; color: var(--grey); transition: opacity .3s ease; }
.p-ring-label.is-turning strong, .p-ring-label.is-turning span { opacity: 0; }

/* Category bar: sticks under the header and follows the section in view */
.chipbar { position: sticky; top: 80px; z-index: 40; border-bottom: 1px solid var(--line); background: rgba(255, 255, 255, .88); -webkit-backdrop-filter: saturate(1.6) blur(16px); backdrop-filter: saturate(1.6) blur(16px); }
.chips { display: flex; gap: 8px; padding-block: 12px; overflow-x: auto; scrollbar-width: none; }
/* on wide screens every chip fits once the row may wrap */
@media (min-width: 1000px) { .chips { gap: 2px; } .chip { padding: 9px 13px; font-size: .88rem; } }
.chips::-webkit-scrollbar { display: none; }
.chip { flex: none; padding: 9px 16px; border-radius: 999px; background: transparent; color: var(--ink); font-size: .92rem; font-weight: 600; white-space: nowrap; transition: background-color .25s, color .25s; }
.chip:hover { background: rgba(21, 26, 46, .06); color: var(--ink); }
.chip.is-on { background: var(--navy); color: #fff; }
.chip.is-on:hover { background: var(--navy-dark); color: #fff; }
.chip-compare { margin-left: auto; color: var(--navy); }
.chip:focus-visible { outline: 2px solid var(--navy); outline-offset: 2px; }

/* Category sections */
.pcat { background: #fff; padding-block: clamp(56px, 7vw, 96px); }
.pcat:nth-of-type(odd) { background: var(--bg-soft); }
.pcat-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px 48px; align-items: end; margin-bottom: clamp(28px, 4vw, 48px); }
.pcat-head h2 { font-size: clamp(2.2rem, 4.2vw, 3.5rem); font-weight: 700; line-height: 1.03; letter-spacing: -.045em; color: var(--ink); text-wrap: balance; }
.pcat-head p { max-width: 46ch; font-size: clamp(1rem, 1.4vw, 1.15rem); line-height: 1.55; color: var(--grey); }

/* Product cards */
.pc-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.pc-grid.count-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.pc-grid.count-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pc-grid.count-1 { grid-template-columns: minmax(0, 1fr); }
.pc { display: flex; flex-direction: column; overflow: hidden; border-radius: 26px; background: #fff; }
.pcat:nth-of-type(even) .pc { background: var(--bg-soft); }
.pc-media { display: flex; align-items: flex-end; justify-content: center; height: clamp(220px, 20vw, 280px); padding: 28px 24px 0; }
.pc-media img { width: auto; height: auto; max-width: 78%; max-height: 100%; object-fit: contain; transition: transform 1.2s cubic-bezier(.2, .8, .2, 1); }
.pc.is-wide .pc-media { padding-inline: 12px; }
.pc.is-wide .pc-media img { max-width: 100%; }
/* some catalogue shots carry a white ground; let it melt into the grey card */
.pc:not(.is-photo) .pc-media img { mix-blend-mode: multiply; }
.pc:hover .pc-media img { transform: scale(1.03); }
.pc.is-photo .pc-media { padding: 0; }
.pc.is-photo .pc-media img { width: 100%; height: 100%; max-width: none; object-fit: cover; }
.pc-body { display: flex; flex: 1; flex-direction: column; padding: 22px 26px 28px; }
.pc-tag { min-height: 1.3em; font-size: .82rem; font-weight: 600; line-height: 1.3; color: var(--orange-text); }
.pc h3 { margin-top: 4px; font-size: clamp(1.3rem, 1.7vw, 1.55rem); font-weight: 700; line-height: 1.15; letter-spacing: -.035em; color: var(--ink); }
.pc-use { margin-top: 4px; font-size: .85rem; font-weight: 500; color: var(--muted); }
.pc-text { margin-top: 12px; font-size: .97rem; line-height: 1.55; color: var(--grey); }
.pc-specs { display: grid; grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)); gap: 14px 18px; margin: 20px 0 0; padding-top: 18px; border-top: 1px solid var(--line); }
.pc-specs div { display: flex; flex-direction: column-reverse; justify-content: flex-end; gap: 2px; min-width: 0; }
.pc-specs dt { font-size: .78rem; font-weight: 500; color: var(--muted); }
.pc-grid.count-3 .pc-specs, .pc-grid.count-4 .pc-specs { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 12px; }
.pc-grid.count-4 .pc-specs dd { font-size: 1rem; }
.pc-specs dd { margin: 0; font-size: 1.12rem; font-weight: 700; letter-spacing: -.025em; color: var(--ink); font-variant-numeric: tabular-nums; }
.pc-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; margin-top: auto; padding-top: 24px; }
.pc-pill { display: inline-flex; align-items: center; min-height: 42px; padding: 0 20px; border-radius: 999px; background: var(--navy); color: #fff; font-size: .95rem; font-weight: 600; transition: background-color .25s; }
.pc-pill:hover { background: var(--navy-dark); color: #fff; }
.pc-link { display: inline-flex; align-items: center; gap: 4px; font-size: .95rem; font-weight: 500; color: var(--navy); }
.pc-link > span { font-size: 1.3em; line-height: 1; transition: transform .3s ease; }
.pc-link:hover { color: var(--navy); text-decoration: underline; text-underline-offset: 3px; }
.pc-link:hover > span { transform: translateX(2px); }
.pc-pill:focus-visible, .pc-link:focus-visible { outline: 2px solid var(--navy); outline-offset: 3px; }

/* A single product gets a side-by-side layout */
.pc-grid.count-1 .pc { display: grid; grid-template-columns: 1.1fr 1fr; }
.pc-grid.count-1 .pc-media { height: auto; min-height: 360px; align-items: center; padding: 40px; }
.pc-grid.count-1 .pc-body { justify-content: center; padding: clamp(28px, 4vw, 56px); }
.pc-grid.count-1 .pc-actions { margin-top: 0; }

/* Compare */
.compare { background: #fff; }
.compare h2 { max-width: 20ch; margin: 0 auto clamp(36px, 5vw, 64px); font-size: clamp(2.2rem, 4.4vw, 3.75rem); font-weight: 700; line-height: 1.03; letter-spacing: -.045em; color: var(--ink); text-align: center; text-wrap: balance; }
.cmp-scroll { overflow-x: auto; }
.cmp { display: grid; grid-template-columns: repeat(3, minmax(220px, 1fr)); gap: clamp(16px, 3vw, 40px); min-width: 700px; }
.cmp-col { display: flex; flex-direction: column; align-items: center; text-align: center; }
.cmp-img { display: flex; align-items: flex-end; justify-content: center; height: clamp(170px, 16vw, 220px); margin-bottom: 20px; }
.cmp-img img { width: auto; height: auto; max-width: 70%; max-height: 100%; object-fit: contain; }
.cmp-tag { min-height: 1.3em; font-size: .82rem; font-weight: 600; color: var(--orange-text); }
.cmp-col h3 { font-size: 1.45rem; font-weight: 700; letter-spacing: -.035em; color: var(--ink); }
.cmp-sum { min-height: 3em; margin: 8px 0 18px; max-width: 26ch; font-size: .95rem; line-height: 1.5; color: var(--grey); }
.cmp-col dl { width: 100%; margin: 28px 0 0; border-top: 1px solid var(--line); }
.cmp-col dl div { padding: 16px 0; border-bottom: 1px solid var(--line); }
.cmp-col dt { font-size: .8rem; font-weight: 500; color: var(--muted); }
.cmp-col dd { margin: 4px 0 0; font-size: 1.05rem; font-weight: 600; color: var(--ink); }
.cmp-col > .pc-link { margin-top: 18px; }

/* Help band */
.p-help { background: var(--bg-soft); }
.p-help-inner { max-width: 820px; text-align: center; }
.p-help h2 { font-size: clamp(2.2rem, 4.4vw, 3.75rem); font-weight: 700; line-height: 1.03; letter-spacing: -.045em; color: var(--ink); text-wrap: balance; }
.p-help p { max-width: 52ch; margin: 18px auto 0; font-size: clamp(1.05rem, 1.5vw, 1.2rem); line-height: 1.55; color: var(--grey); }
.p-help-actions { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 12px 24px; margin-top: 28px; }

.nav a[aria-current="page"] { color: var(--navy); }
.mobile-nav a[aria-current="page"] { color: var(--navy); }

/* Blog */
.blog-hero { padding-bottom: clamp(56px, 7vw, 96px); }
.blog-empty { background: #fff; }
.blog-empty-inner { max-width: 760px; text-align: center; }
.blog-empty h2 { font-size: clamp(2rem, 4vw, 3.25rem); font-weight: 700; line-height: 1.05; letter-spacing: -.045em; color: var(--ink); text-wrap: balance; }
.blog-empty h2 em { font-style: normal; color: var(--orange); }
.blog-empty p { max-width: 50ch; margin: 16px auto 0; font-size: clamp(1.05rem, 1.5vw, 1.2rem); line-height: 1.55; color: var(--grey); }
.pc h3 a, .cmp-col h3 a { color: inherit; }
.pc h3 a:hover, .cmp-col h3 a:hover { color: var(--navy); }

/* ===================== Individual product pages ===================== */
.pd-hero { background: var(--bg-soft); padding-block: clamp(24px, 3vw, 40px) clamp(56px, 7vw, 96px); }
.pd-crumbs { justify-content: flex-start; flex-wrap: wrap; margin-bottom: clamp(20px, 3vw, 36px); }
.pd-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(32px, 5vw, 80px); align-items: start; }
.pd-media { position: sticky; top: 110px; }
.pd-stage { position: relative; display: flex; align-items: flex-end; justify-content: center; height: clamp(420px, 44vw, 600px); padding: 32px 24px 36px; border-radius: 32px; background: #fff; overflow: hidden; }
.pd-stage > img { width: auto; height: auto; max-width: 78%; max-height: 100%; object-fit: contain; }
.pd-stage.is-wide > img { max-width: 94%; }
.pd-stage.is-photo { padding: 0; }
.pd-stage.is-photo > img { width: 100%; height: 100%; max-width: none; object-fit: cover; }
.pd-stage.spin { --spin-h: clamp(340px, 36vw, 500px); }
.pd-stage .spin-badge { top: 18px; right: 18px; border-radius: 999px; padding: 6px 12px 6px 9px; }
.pd-stage .spin-dots { top: 24px; left: 22px; }
.pd-stage .spin-dots i.on { background: var(--navy); }
.pd-stage .spin-hint { border-radius: 999px; }

.pd-info h1 { margin-top: 4px; font-size: clamp(2.3rem, 4.2vw, 3.7rem); font-weight: 700; line-height: 1; letter-spacing: -.05em; color: var(--ink); }
.pd-tagline { margin-top: 12px; max-width: 32ch; font-size: clamp(1.12rem, 1.6vw, 1.4rem); font-weight: 600; line-height: 1.25; letter-spacing: -.025em; color: var(--ink); text-wrap: balance; }
.pd-use { margin-top: 14px; font-size: .9rem; font-weight: 500; color: var(--muted); }
.pd-text { margin-top: 10px; max-width: 46ch; font-size: 1.05rem; line-height: 1.6; color: var(--grey); }
.pd-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 20px; margin: 26px 0 0; padding: 20px 0; border-block: 1px solid var(--line); }
.pd-facts div { display: flex; flex-direction: column-reverse; gap: 2px; }
.pd-facts dt { font-size: .8rem; font-weight: 500; color: var(--muted); }
.pd-facts dd { margin: 0; font-size: clamp(1.15rem, 1.8vw, 1.5rem); font-weight: 700; letter-spacing: -.03em; color: var(--ink); white-space: nowrap; }
.pd-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin-top: 28px; }
.pd-actions .pc-pill { min-height: 50px; padding: 0 28px; font-size: 1.02rem; }
.pd-note { margin-top: 16px; font-size: .88rem; color: var(--muted); }

.pd-section { background: #fff; padding-block: clamp(64px, 8vw, 110px); }
.pd-section + .pd-section:not(.pd-service):not(.pd-related) { padding-top: 0; }
.pd-service, .pd-related { background: var(--bg-soft); }
.pd-service + .pd-related { padding-top: 0; }
.pd-h2 { max-width: 22ch; margin-bottom: clamp(32px, 4.5vw, 56px); font-size: clamp(2.2rem, 4.2vw, 3.5rem); font-weight: 700; line-height: 1.04; letter-spacing: -.045em; color: var(--ink); text-wrap: balance; }
.pd-h2 em { font-style: normal; color: var(--orange); }

.pd-overview-inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 24px 64px; align-items: start; }
.pd-overview-inner .pd-h2 { margin-bottom: 0; }
.pd-overview-inner p { font-size: clamp(1.05rem, 1.5vw, 1.2rem); line-height: 1.6; color: var(--grey); }
.pd-overview-inner p + p { margin-top: 16px; }

.pd-features { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.pd-features.count-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.pd-features.count-1 { grid-template-columns: minmax(0, 480px); }
.pd-feature { padding: clamp(26px, 3vw, 40px); border-radius: 26px; background: var(--bg-soft); }
.pd-service .pd-feature { background: #fff; }
.pd-feature .glyph { width: 44px; height: 44px; color: var(--navy); }
.pd-feature h3 { margin-top: 22px; font-size: clamp(1.2rem, 1.6vw, 1.4rem); font-weight: 700; line-height: 1.2; letter-spacing: -.03em; color: var(--ink); }
.pd-feature p { margin-top: 8px; font-size: 1rem; line-height: 1.55; color: var(--grey); }

/* Thumbnails under the hero photo: every photo of the product, each opening full size */
.pd-thumbs { display: flex; gap: 10px; margin-top: 14px; padding-bottom: 4px; overflow-x: auto; scrollbar-width: none; }
.pd-thumbs::-webkit-scrollbar { display: none; }
.pd-thumb { flex: none; display: grid; place-items: center; width: 84px; height: 84px; padding: 8px; border: 1px solid var(--line); border-radius: 18px; background: #fff; cursor: zoom-in; transition: border-color .3s, background-color .3s; }
.pd-thumb img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.pd-thumb:hover { border-color: var(--navy); }
.pd-thumb:focus-visible { outline: 2px solid var(--navy); outline-offset: 3px; }

.pd-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.pd-gallery figure { margin: 0; }
.pd-gallery button { display: block; width: 100%; aspect-ratio: 1; padding: 20px; border: 0; border-radius: 22px; background: var(--bg-soft); cursor: zoom-in; overflow: hidden; }
.pd-gallery img { width: 100%; height: 100%; object-fit: contain; transition: transform 1.2s cubic-bezier(.2, .8, .2, 1); }
.pd-gallery button:hover img { transform: scale(1.03); }
.pd-gallery button:focus-visible { outline: 2px solid var(--navy); outline-offset: 3px; }
.pd-gallery figcaption { margin-top: 10px; font-size: .9rem; font-weight: 500; color: var(--grey); }
dialog.lightbox { width: min(900px, 94vw); max-width: none; padding: 0; border: 0; border-radius: 24px; background: #fff; overflow: hidden; }
dialog.lightbox::backdrop { background: rgba(21, 26, 46, .8); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
dialog.lightbox img { width: 100%; max-height: 80vh; object-fit: contain; background: var(--bg-soft); }
dialog.lightbox p { padding: 14px 22px; font-size: .95rem; font-weight: 500; color: var(--ink); }
.lb-nav { position: absolute; top: calc(50% - 30px); z-index: 2; display: grid; place-items: center; width: 48px; height: 48px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .92); box-shadow: 0 2px 10px rgba(21, 26, 46, .15); color: var(--ink); cursor: pointer; transform: translateY(-50%); transition: background-color .25s, color .25s; }
.lb-nav.prev { left: 14px; }
.lb-nav.next { right: 14px; }
.lb-nav:hover { background: #fff; color: var(--navy); }
.lb-nav:focus-visible { outline: 2px solid var(--orange); outline-offset: 3px; }
.lb-nav[hidden] { display: none; }
.lb-nav svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.lb-close { position: absolute; top: 14px; right: 14px; width: 44px; height: 44px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .92); box-shadow: 0 2px 10px rgba(21, 26, 46, .15); font-size: 1.6rem; line-height: 1; color: var(--ink); cursor: pointer; }

.pd-spec-table { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); margin: 0; border-top: 1px solid var(--line); }
.pd-spec-table div { padding: 24px 24px 24px 0; border-bottom: 1px solid var(--line); }
.pd-spec-table dt { font-size: .9rem; font-weight: 500; color: var(--muted); }
.pd-spec-table dd { margin: 6px 0 0; font-size: clamp(1.3rem, 2vw, 1.75rem); text-wrap: balance; font-weight: 700; letter-spacing: -.04em; color: var(--ink); font-variant-numeric: tabular-nums; }
.pd-nospecs { max-width: 760px; }
.pd-nospecs .pd-h2 { margin-bottom: 16px; }
.pd-nospecs p { max-width: 54ch; margin-bottom: 18px; font-size: clamp(1.05rem, 1.5vw, 1.2rem); line-height: 1.6; color: var(--grey); }

.pd-related .pc { background: #fff; }
.pd-related .pc-actions { padding-top: 18px; }

@media (prefers-reduced-motion: reduce) {
  .pd-gallery img { transition: none; }
}
@media (max-width: 1024px) {
  .pd-grid, .pd-overview-inner { grid-template-columns: 1fr; }
  .pd-media { position: static; }
  .pd-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* About page. The stats, certificate cards and group panel are shared with the homepage. */
.ab-split { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(28px, 5vw, 72px); align-items: center; }
.ab-copy p { max-width: 54ch; margin: 18px 0 0; font-size: clamp(1.02rem, 1.3vw, 1.12rem); line-height: 1.65; color: var(--grey); }
.ab-copy p:first-of-type { margin-top: clamp(18px, 2.4vw, 28px); }
.ab-photo { margin: 0; border-radius: 28px; overflow: hidden; background: var(--bg-soft); }
.ab-photo img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.ab-wide { margin: clamp(32px, 4vw, 56px) 0 0; }
.ab-wide img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 7; object-fit: cover; border-radius: 28px; }
.ab-wide figcaption { margin-top: 12px; font-size: .92rem; font-weight: 500; color: var(--grey); }
.ab-numbers .trust-stats { margin-top: clamp(28px, 3.4vw, 44px); }
.ab-certs .trust-bento { margin-top: clamp(28px, 3.4vw, 44px); }
.ab-team-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(12px, 1.6vw, 22px); margin: clamp(28px, 3.4vw, 44px) 0 0; padding: 0; list-style: none; }
.ab-team-grid li { display: flex; flex-direction: column; gap: 10px; }
.ab-team-grid img { width: 100%; height: auto; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 22px; background: var(--bg-soft); }
.ab-team-grid span { font-size: .92rem; font-weight: 600; letter-spacing: -.01em; color: var(--grey); }
.ab-find-lead { max-width: 62ch; margin: clamp(16px, 2vw, 24px) 0 0; font-size: clamp(1.02rem, 1.3vw, 1.12rem); line-height: 1.6; color: var(--grey); }
.ab-facts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; margin: clamp(28px, 3.4vw, 44px) 0 0; }
.ab-facts > div { padding: clamp(20px, 2.2vw, 28px); border-radius: 22px; background: var(--bg-soft); }
.ab-facts dt { font-size: .82rem; font-weight: 600; letter-spacing: .02em; color: var(--grey); }
.ab-facts dd { margin: 8px 0 0; font-size: 1.05rem; font-weight: 600; line-height: 1.45; letter-spacing: -.02em; color: var(--ink); }
.ab-facts a { color: inherit; }
.ab-facts a:hover { color: var(--navy); text-decoration: underline; text-underline-offset: 3px; }

@media (max-width: 720px) {
  .pd-thumb { width: 68px; height: 68px; border-radius: 15px; }
  .pd-stage { height: 380px; border-radius: 24px; }
  .pd-stage.spin { --spin-h: 300px; }
  .pd-features, .pd-features.count-2 { grid-template-columns: 1fr; }
  .pd-facts dd { font-size: 1.05rem; white-space: normal; }
  .pd-related .pc-grid { grid-template-columns: 1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .pc-media img, .pc-link > span { transition: none; }
  .pc:hover .pc-media img { transform: none; }
}
@media (max-width: 1100px) {
  .pc-grid.count-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  .pcat-head { grid-template-columns: 1fr; }
  .pc-grid, .pc-grid.count-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pc-grid.count-1 .pc { grid-template-columns: 1fr; }
  .pc-grid.count-1 .pc-media { min-height: 260px; }
}
@media (max-width: 720px) {
  section.p-hero, section.pcat, section.compare, section.p-help { scroll-margin-top: 50px; }
  .chipbar { top: 68px; }
  .ab-split { grid-template-columns: 1fr; }
  .ab-photo img { aspect-ratio: 3 / 2; }
  .ab-wide img { aspect-ratio: 4 / 3; border-radius: 20px; }
  .ab-team-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ab-facts { grid-template-columns: 1fr; gap: 12px; }
  .p-hero { padding-bottom: 16px; }
  .p-hero-shots .p-unit:first-child, .p-hero-shots .p-unit:nth-child(n+5) { display: none; }
  .p-hero-shots .p-unit { max-width: 28%; }
  .p-hero-shots .p-unit.is-hero { max-width: 40%; }
  .pc-grid, .pc-grid.count-2, .pc-grid.count-4 { grid-template-columns: 1fr; }
  .pc-media { height: 240px; }
  .chip-compare { margin-left: 0; }
}

.pc-specs dd { min-width: 0; overflow-wrap: anywhere; }

/* Key features and specifications, side by side */
.pd-lists { background: var(--bg-soft); }
.pd-list-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(20px, 3vw, 40px); margin-top: clamp(26px, 3.2vw, 42px); }
.pd-list { padding: clamp(24px, 2.8vw, 36px); border-radius: 26px; background: #fff; }
.pd-list h3 { margin: 0 0 16px; font-size: 1.15rem; font-weight: 700; letter-spacing: -.03em; color: var(--ink); }
.pd-list ul { margin: 0; padding: 0; list-style: none; }
.pd-list li { position: relative; padding: 0 0 0 26px; margin-top: 10px; font-size: 1rem; line-height: 1.55; color: var(--grey); }
.pd-list li::before { content: ""; position: absolute; top: .62em; left: 4px; width: 7px; height: 7px; border-radius: 50%; background: var(--orange); }
@media (max-width: 720px) {
  .pd-list-grid { grid-template-columns: 1fr; }
}

/* Arrows on the main product photo */
.pd-stage-nav { position: absolute; top: 50%; z-index: 3; display: grid; place-items: center; width: 48px; height: 48px; border: 0; border-radius: 50%; background: rgba(255, 255, 255, .92); box-shadow: 0 2px 12px rgba(21, 26, 46, .16); color: var(--ink); cursor: pointer; transform: translateY(-50%); transition: background-color .25s, color .25s; }
.pd-stage-nav.prev { left: 16px; }
.pd-stage-nav.next { right: 16px; }
.pd-stage-nav:hover { background: #fff; color: var(--navy); }
.pd-stage-nav:focus-visible { outline: 2px solid var(--orange); outline-offset: 3px; }
.pd-stage-nav svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.pd-stage.has-nav > img { transition: opacity .25s ease; }
.pd-thumb.is-on { border-color: var(--navy); box-shadow: 0 0 0 1px var(--navy) inset; }
@media (max-width: 720px) {
  .pd-stage-nav { width: 40px; height: 40px; }
  .pd-stage-nav.prev { left: 10px; }
  .pd-stage-nav.next { right: 10px; }
}

/* wide screens: the category chips fill the row; the compare link sits with the portable toilets */
.pcat-compare { display: inline-flex; margin-top: 10px; }
@media (min-width: 1000px) { .chips { justify-content: center; } .chip-compare { display: none; } }

/* products hero on phones and small tablets: three matching units instead of the carousel */
.p-hero-trio { display: none; }
@media (max-width: 899px) {
  .p-ring-wrap, .p-ring-label { display: none; }
  .p-hero-trio { display: flex; align-items: flex-end; justify-content: center; gap: clamp(10px, 4vw, 28px); height: clamp(170px, 40vw, 300px); margin-top: 28px; padding-inline: 16px; }
  .p-trio-unit { flex: 0 1 auto; min-width: 0; }
  .p-trio-unit img { max-width: 100%; object-fit: contain; object-position: bottom; }
  .p-trio-unit { display: block; height: 100%; }
  .p-trio-unit img { display: block; width: auto; height: 100%; filter: drop-shadow(0 16px 16px rgba(21, 26, 46, .12)); }
}
