/* ─────────────────────────────────────────────────────────────────
   PRODUCTS — category grid, filtered catalogue, product detail
   ───────────────────────────────────────────────────────────────── */
.p-tile-img{position:relative;display:block;background:#FBFAF8;overflow:hidden}
.p-tile-img img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:9%;box-sizing:border-box;display:block;transition:transform var(--dur-slow,.4s) ease}

/* 01 · Category cards */
.cat-grid{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.cat-card{display:block;background:var(--parchment-mid);border-radius:10px;overflow:hidden;text-decoration:none;transition:transform .25s ease,box-shadow .25s ease}
.cat-card:hover{transform:translateY(-3px);box-shadow:0 12px 32px rgba(26,58,27,.06)}
.cat-card .p-tile-img{aspect-ratio:4/3;border-bottom:.5px solid rgba(27,67,50,.12)}
.cat-card:hover .p-tile-img img{transform:scale(1.03)}
.cat-card-b{display:block;padding:20px 24px 26px}
.cat-count{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--fourier-green)}
.cat-card h3{font-family:var(--display);font-weight:600;font-size:21px;letter-spacing:-.01em;color:var(--forest-night);margin:10px 0 8px}
.cat-card p{font-family:var(--sans);font-size:13.5px;line-height:1.6;color:var(--fg-2);margin:0 0 16px;max-width:34ch}
.cat-card .link-arrow{display:inline-flex;gap:10px;align-items:center;font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--fourier-green);transition:gap .25s ease}
.cat-card:hover .link-arrow{gap:16px}

/* 02 · Catalogue */
.cat-wrap{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:248px minmax(0,1fr);gap:48px;align-items:start}
.cat-rail{position:sticky;top:96px;max-height:calc(100vh - 116px);overflow-y:auto;padding-right:10px;scrollbar-width:thin}
.rail-head{display:flex;justify-content:space-between;align-items:baseline}
.rail-title{font-family:var(--sans);font-weight:500;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--forest-night)}
.rail-reset{background:none;border:0;padding:0;cursor:pointer;font-family:var(--sans);font-size:10px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--fourier-green)}
.rail-reset:hover{color:var(--forest-night)}
.fgroup{border-top:.5px solid rgba(27,67,50,.15);margin-top:16px;padding:16px 0 4px}
.fgroup-t{font-family:var(--sans);font-weight:500;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--fourier-green)}
.fgroup ul{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-direction:column;gap:2px}
.fopt{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;background:none;border:0;padding:7px 0;cursor:pointer;text-align:left;font-family:var(--sans);font-size:13.5px;color:var(--fg-2);transition:color .25s ease}
.fopt:hover{color:var(--forest-night)}
.fopt .bx{width:13px;height:13px;border:.5px solid rgba(27,67,50,.32);border-radius:2px;flex:0 0 auto;margin-right:2px;position:relative;transition:background .25s ease,border-color .25s ease}
.fopt .lb{flex:1 1 auto}
.fopt .ct{font-family:var(--mono);font-size:10px;color:var(--fg-3)}
.fopt[aria-pressed="true"]{color:var(--forest-night);font-weight:500}
.fopt[aria-pressed="true"] .bx{background:var(--fourier-green);border-color:var(--fourier-green)}
.fopt[aria-pressed="true"] .bx::after{content:'';position:absolute;left:3.5px;top:1px;width:4px;height:7px;border-right:1.5px solid var(--parchment);border-bottom:1.5px solid var(--parchment);transform:rotate(40deg)}
.rail-note{font-family:var(--sans);font-size:12px;line-height:1.6;color:var(--fg-3);border-top:.5px solid rgba(27,67,50,.15);margin:22px 0 0;padding-top:18px;max-width:30ch}
.rail-cta{margin-top:16px}

.res-bar{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;border-bottom:.5px solid rgba(27,67,50,.15);padding-bottom:14px}
.res-count{font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--forest-night)}
.res-tools{display:flex;align-items:center;gap:22px}
.res-sort{display:flex;align-items:center;gap:9px;font-family:var(--sans);font-size:10px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--fg-3)}
.res-sort select{font-family:var(--sans);font-size:12px;letter-spacing:0;text-transform:none;color:var(--forest-night);background:var(--parchment);border:.5px solid rgba(27,67,50,.2);border-radius:4px;padding:7px 10px}
.view-toggle{display:flex;gap:0;border:.5px solid rgba(27,67,50,.2);border-radius:4px;overflow:hidden}
.vt{background:none;border:0;cursor:pointer;font-family:var(--sans);font-size:10px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--fg-2);padding:9px 15px;transition:background .25s ease,color .25s ease}
.vt+.vt{border-left:.5px solid rgba(27,67,50,.2)}
.vt.active{background:var(--forest-night);color:var(--parchment)}

.p-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-top:28px}
.p-card{display:block;background:var(--parchment-mid);border-radius:10px;overflow:hidden;text-decoration:none;transition:transform .25s ease,box-shadow .25s ease}
.p-card:hover{transform:translateY(-3px);box-shadow:0 12px 32px rgba(26,58,27,.06)}
.p-card .p-tile-img{aspect-ratio:1/1}
.p-card:hover .p-tile-img img{transform:scale(1.04)}
.p-card-b{display:block;padding:15px 16px 18px}
.p-code{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.08em;color:var(--fourier-green)}
.p-name{display:block;font-family:var(--sans);font-weight:500;font-size:14.5px;letter-spacing:-.005em;color:var(--forest-night);margin:7px 0 6px}
.p-dim{display:block;font-family:var(--mono);font-size:10.5px;letter-spacing:.02em;color:var(--fg-3)}
.p-colour{font-family:var(--sans);font-size:11.5px;color:var(--fg-3);margin-top:9px;display:flex;align-items:center;gap:8px}
.p-dot{width:11px;height:11px;border-radius:50%;border:.5px solid rgba(27,67,50,.22);flex:0 0 auto}

.p-table-wrap{margin-top:28px}
.p-table{width:100%;border-collapse:collapse}
.p-table th{font-family:var(--sans);font-size:9.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--fourier-green);text-align:left;padding:0 16px 12px 0;border-bottom:.5px solid rgba(27,67,50,.22)}
.p-table td{font-family:var(--mono);font-size:11.5px;letter-spacing:.02em;color:var(--fg-2);padding:12px 16px 12px 0;border-bottom:.5px solid rgba(27,67,50,.1);vertical-align:middle}
.p-table td.nm{font-family:var(--sans);font-size:13.5px;font-weight:500;color:var(--forest-night)}
.p-table td.th{width:56px;padding-right:18px}
.p-table td.th .p-tile-img{width:56px;height:56px;border-radius:4px;border:.5px solid rgba(27,67,50,.12)}
.p-table td.go a{font-family:var(--sans);font-size:10px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--fourier-green);text-decoration:none;white-space:nowrap}
.p-table tbody tr:hover td{background:rgba(232,237,224,.5)}
.table-note{font-family:var(--sans);font-size:12px;line-height:1.6;color:var(--fg-3);margin-top:16px;max-width:60ch}
.p-empty{font-family:var(--sans);font-size:14px;color:var(--fg-2);margin-top:36px}
.linkish{background:none;border:0;padding:0;cursor:pointer;font:inherit;color:var(--fourier-green);text-decoration:underline}

/* 03 · Specification strip (dark) */
.spec-strip-grid{max-width:1240px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);border-top:.5px solid rgba(245,242,236,.18)}
.ssg{padding:24px 26px 0;border-right:.5px solid rgba(245,242,236,.18)}
.ssg:last-child{border-right:0}
.ssg-n{display:block;font-family:var(--display);font-weight:500;font-size:34px;letter-spacing:-.02em;color:var(--parchment)}
.ssg-k{display:block;font-family:var(--sans);font-size:10px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--lichen);margin-top:10px}
.spec-line{max-width:1240px;margin:44px auto 0;font-family:var(--sans);font-size:14px;line-height:1.75;color:rgba(245,242,236,.72);max-width:74ch}
.spec-cta{max-width:1240px;margin:36px auto 0;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.spec-cta-note{font-family:var(--sans);font-size:12px;color:rgba(245,242,236,.58);margin:0;flex:1 1 260px;min-width:240px}

/* ── Product detail page ───────────────────────────────────────── */
.pd-crumb{max-width:1240px;margin:0 auto;padding:36px 48px 0;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--fg-3)}
.pd-crumb a{color:var(--fg-3);text-decoration:none}
.pd-crumb a:hover{color:var(--forest-night)}
.pd-top{max-width:1240px;margin:0 auto;padding:28px 48px 0;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:56px;align-items:start}
.pd-fig{background:#FBFAF8;border-radius:10px;border:.5px solid rgba(27,67,50,.12);aspect-ratio:1/1;position:relative;overflow:hidden}
.pd-fig img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:8%;box-sizing:border-box}
.pd-figcap{font-family:var(--sans);font-size:11.5px;color:var(--fg-3);margin-top:12px}
.pd-eyebrow{font-family:var(--sans);font-weight:500;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--fourier-green);margin:0}
.pd-title{font-family:var(--display);font-weight:500;font-size:clamp(20px,2.1vw,28px);line-height:1.15;letter-spacing:-.025em;color:var(--forest-night);margin:14px 0 0;white-space:nowrap}
.pd-title em{font-style:normal;color:var(--mid-forest)}
.pd-code{font-family:var(--mono);font-size:12px;letter-spacing:.06em;color:var(--fourier-green);margin-top:14px}
.pd-lead{font-family:var(--sans);font-size:15px;line-height:1.7;color:var(--fg-2);margin-top:20px;max-width:52ch}
.pd-kv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:20px;border-top:.5px solid rgba(27,67,50,.15);margin-top:22px}
.pd-kv div{padding:9px 0;border-bottom:.5px solid rgba(27,67,50,.1)}
.pd-kv div div{padding:0;border:0}
.pd-kv .k{font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-3)}
.pd-kv .v{font-family:var(--mono);font-size:12px;letter-spacing:.02em;color:var(--forest-night);margin-top:4px}
.pd-claims{display:flex;flex-wrap:wrap;gap:8px;margin-top:24px}
.pd-claims span{font-family:var(--mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--fourier-green);border:.5px solid rgba(45,90,46,.3);border-radius:4px;padding:8px 12px}
.pd-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.pd-note{font-family:var(--sans);font-size:12px;line-height:1.65;color:var(--fg-3);margin-top:16px;max-width:46ch}
.pd-rel{max-width:1240px;margin:0 auto}
.pd-kv .wide{grid-column:1/-1}
.pd-kv .wide .v{font-size:11.5px;line-height:1.5}
.pd-kv .span2{grid-column:span 2}
.pd-spec{width:100%;border-collapse:collapse;margin-top:22px}
.pd-spec th{text-align:left;font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-3);padding:10px 16px 10px 0;width:34%;vertical-align:top;border-bottom:.5px solid rgba(27,67,50,.1)}
.pd-spec td{font-family:var(--mono);font-size:12px;letter-spacing:.02em;color:var(--forest-night);padding:9px 0;border-bottom:.5px solid rgba(27,67,50,.1);line-height:1.5}
.pd-spec tr:first-child th,.pd-spec tr:first-child td{border-top:.5px solid rgba(27,67,50,.22)}
.pd-id{margin-top:22px;background:var(--parchment-mid);border-radius:10px;padding:14px 18px;display:flex;flex-direction:column;gap:10px}
.pd-id-row .k{font-family:var(--sans);font-size:9px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-3)}
.pd-id-row .v{font-family:var(--mono);font-size:12px;letter-spacing:.02em;line-height:1.5;color:var(--forest-night);margin-top:4px}
.pd-id-row+.pd-id-row{border-top:.5px solid rgba(27,67,50,.12);padding-top:10px}
.pd-id+.pd-kv{margin-top:14px}
.pd-kv .span2 .v{font-size:11.5px;line-height:1.5}
.pd-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:12px}
.pd-thumb{position:relative;aspect-ratio:1/1;background:#FBFAF8;border:.5px solid rgba(27,67,50,.15);border-radius:4px;padding:0;cursor:pointer;overflow:hidden;transition:border-color .25s ease}
.pd-thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:10%;box-sizing:border-box}
.pd-thumb:hover{border-color:rgba(27,67,50,.4)}
.pd-thumb.is-on{border:1px solid var(--fourier-green)}
.pd-colour{margin-top:24px;display:grid;grid-template-columns:120px minmax(0,1fr);gap:20px;border-top:.5px solid rgba(27,67,50,.22);border-bottom:.5px solid rgba(27,67,50,.22);padding:18px 0}
.pd-colour-k{font-family:var(--display);font-weight:600;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--forest-night);padding-top:2px}
.pd-chip{width:44px;height:44px;border-radius:6px;border:.5px solid rgba(27,67,50,.2);flex:0 0 auto}
.pd-chip-more{margin-left:12px;background:linear-gradient(90deg,#FBFAF8 0 50%,#5A7A4A 50%) top/100% 50% no-repeat,linear-gradient(90deg,#6B4A34 0 50%,#262624 50%) bottom/100% 50% no-repeat}
.pd-colour-name{font-family:var(--mono);font-size:13px;color:var(--forest-night)}
.pd-colour-sub{font-family:var(--sans);font-size:11.5px;color:var(--fg-3);margin-top:2px}
.pd-colour-head{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.pd-colour-head .k{font-family:var(--sans);font-size:9.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--fg-3)}
.pd-colour-more{font-family:var(--mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--fourier-green)}
.pd-colour-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.pd-swatch{display:inline-flex;align-items:center;gap:9px;font-family:var(--sans);font-size:12.5px;color:var(--forest-night);border:.5px solid rgba(27,67,50,.2);border-radius:4px;padding:9px 14px;background:var(--parchment)}
.pd-swatch.is-on{border-color:var(--forest-night)}
.pd-shown{color:var(--fg-3)}
.pd-swatch.is-more{color:var(--fg-2);border-style:dashed}
.pd-dot-more{background:conic-gradient(#FBFAF8 0 25%,#5A7A4A 0 50%,#6B4A34 0 75%,#262624 0)}
.pd-colour-note{font-family:var(--sans);font-size:12.5px;line-height:1.65;color:var(--fg-2);margin:14px 0 0;max-width:52ch}
.pd-colour-link{display:inline-flex;gap:10px;margin-top:12px;font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--fourier-green);text-decoration:none;transition:gap .25s ease}
.pd-colour-link:hover{gap:16px}

@media (max-width:1080px){
  .pd-title{white-space:normal;text-wrap:balance;font-size:clamp(22px,4vw,30px)}
  .cat-wrap{grid-template-columns:1fr;gap:32px}
  .cat-rail{position:static;max-height:none;overflow:visible;padding-right:0}
  .cat-rail .fgroup ul{flex-direction:row;flex-wrap:wrap;gap:8px 20px}
  .p-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .cat-grid{grid-template-columns:repeat(2,1fr)}
  .pd-top{grid-template-columns:1fr;gap:32px}
  .spec-strip-grid{grid-template-columns:repeat(2,1fr)}
  .ssg{border-bottom:.5px solid rgba(245,242,236,.18);padding-bottom:22px}
}
@media (max-width:680px){
  .p-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .cat-grid{grid-template-columns:1fr}
  .pd-crumb,.pd-top{padding-left:24px;padding-right:24px}
  .pd-kv{grid-template-columns:1fr}
  .pd-colour{grid-template-columns:1fr;gap:12px}
  .pd-chip-more{margin-left:0}
  .p-table td.th{display:none}
  .p-table th:first-child{display:none}
  .res-tools{gap:14px}
}

/* ── Catalogue search (batch 2, Oct 2026) ─────────────────────────── */
.p-search{display:flex;align-items:center;gap:14px;margin-bottom:18px}
.p-search-l{font-family:var(--sans);font-size:10px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--fourier-green);flex:0 0 auto}
.p-search-in{flex:1 1 auto;min-width:0;font-family:var(--sans);font-size:14px;color:var(--forest-night);background:var(--parchment);border:.5px solid rgba(27,67,50,.25);border-radius:4px;padding:12px 14px;outline:none;transition:border-color .25s ease}
.p-search-in::placeholder{color:var(--fg-3)}
.p-search-in:focus{border-color:var(--fourier-green)}

/* ── Colour options per mould ─────────────────────────────────────── */
.p-colour .p-dot+.p-dot{margin-left:-2px}
.p-dot.is-on{box-shadow:0 0 0 1.5px var(--parchment-mid),0 0 0 2.5px var(--fourier-green)}
.p-colour-t{margin-left:4px}
.pd-colour-opt{display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;border-radius:6px}
a.pd-colour-opt:hover .pd-chip{border-color:var(--fourier-green)}
a.pd-colour-opt:hover .pd-colour-name{color:var(--fourier-green)}
.pd-colour-opt.is-on .pd-chip{box-shadow:0 0 0 2px var(--parchment),0 0 0 3px var(--fourier-green)}
.pd-colour-row .pd-colour-opt+.pd-colour-opt{margin-left:12px}
@media (max-width:680px){.pd-colour-row .pd-colour-opt+.pd-colour-opt{margin-left:0}.p-search{flex-direction:column;align-items:stretch;gap:8px}}
.pd-colour-opt .pd-chip-more{margin-left:0}
