/* Absolute Baits v14: product pages. Typography, width, gaps and motion use the shared tokens. */
.product-page { background:var(--surface); color:var(--text-on-light); color-scheme:light; }
.product-page .site-header { background:var(--ink); color:var(--white); }
.product-page .site-footer,.product-page .site-dialog { color-scheme:dark; color:var(--white); }
.product-page .site-dialog .button { color:var(--white); }
.pdp-main { padding-top:var(--header-height); }
.ab-picon { display:block; width:24px; height:24px; flex:0 0 24px; }
.pdp-top { padding-block:var(--space-6) var(--section-space); }
.pdp-breadcrumb { margin-bottom:var(--space-6); font-size:var(--text-small); color:var(--text-muted-on-light); }
.pdp-breadcrumb ol { display:flex; flex-wrap:wrap; gap:var(--space-2) var(--space-3); margin:0; padding:0; list-style:none; }
.pdp-breadcrumb li { display:flex; align-items:center; gap:var(--space-3); }
.pdp-breadcrumb li+li::before { content:'/'; color:#8d9a9b; }
.pdp-breadcrumb a { text-decoration:none; }
.pdp-breadcrumb a:hover { color:var(--accent-on-light); text-decoration:underline; }
.pdp-breadcrumb [aria-current] { color:var(--text-on-light); }
.pdp-hero-grid { display:grid; grid-template-columns:minmax(0,1.08fr) minmax(0,1fr); gap:var(--space-8); align-items:start; }
.pdp-gallery { position:sticky; top:calc(var(--header-height) + var(--space-6)); min-width:0; }
.pdp-image-stage { position:relative; display:grid; place-items:center; aspect-ratio:1; padding:var(--space-7); border:1px solid var(--border-light); border-radius:var(--radius-card); overflow:hidden; background:#fff; }
.pdp-image-stage > img { position: absolute; inset: var(--space-8) var(--space-3) var(--space-3); width: calc(100% - 2 * var(--space-3)); height: calc(100% - var(--space-8) - var(--space-3)); object-fit: contain; }
.pdp-image-tag { position:absolute; top:var(--card-padding); left:var(--card-padding); color:var(--accent-on-light); font:800 var(--text-eyebrow)/1.5 var(--font-body); text-transform:uppercase; letter-spacing:.15em; }
.pdp-zoom { position:absolute; right:var(--card-padding); bottom:var(--card-padding); display:grid; place-items:center; width:48px; height:48px; border:1px solid var(--border-light); border-radius:50%; background:var(--white); color:var(--text-on-light); box-shadow:var(--shadow-card); }
.pdp-zoom:hover { color:var(--accent-on-light); border-color:var(--accent-on-light); }
.pdp-thumbnails { display:flex; gap:var(--space-3); margin-top:var(--space-4); }
.pdp-thumbnails button { display:grid; align-content:start; gap:var(--space-2); width:144px; padding:var(--space-3); border:1px solid var(--border-light); border-radius:var(--radius-control); background:#fff; color:var(--text-muted-on-light); font-size:var(--text-eyebrow); text-align:left; }
.pdp-thumbnails button[aria-pressed="true"] { border-color:var(--accent-on-light); box-shadow:inset 0 0 0 1px var(--accent-on-light); color:var(--accent-on-light); }
.pdp-thumbnails img { width:100%; height:70px; object-fit:contain; }
.pdp-image-caption { color:var(--text-muted-on-light); font-size:var(--text-small); margin-top:var(--space-4); }
.pdp-placeholder { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--space-4); width:100%; min-height:180px; text-align:center; color:var(--text-muted-on-light); }
.pdp-placeholder .ab-picon { width:64px; height:64px; flex-basis:64px; stroke-width:1; color:var(--accent-on-light); opacity:.8; }
.pdp-placeholder > span { font-weight:800; }
.pdp-placeholder small { max-width:28ch; font-size:var(--text-small); }
.pdp-summary { min-width:0; }
.pdp-type { color:var(--accent-on-light); margin-bottom:var(--space-3); }
.pdp-summary h1 { overflow-wrap:anywhere; }
.pdp-flavour { color:var(--accent-on-light); font-weight:700; margin-top:var(--space-2); }
.pdp-excerpt { color:var(--text-muted-on-light); margin-top:var(--space-4); max-width:62ch; }
.pdp-quick-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-3); margin:var(--space-5) 0 0; padding:var(--space-5) 0; border-block:1px solid var(--border-light); }
.pdp-quick-facts > div { min-width:0; display:grid; grid-template-columns:24px minmax(0,1fr); column-gap:var(--space-3); align-content:start; }
.pdp-quick-facts svg { color:var(--accent-on-light); grid-row:1 / 3; margin-top:3px; }
.pdp-quick-facts dt { font-size:var(--text-eyebrow); color:var(--text-muted-on-light); }
.pdp-quick-facts dd { margin:var(--space-1) 0 0; font-size:var(--text-small); font-weight:800; line-height:1.4; }
.pdp-price-panel { margin-top:var(--space-5); }
.pdp-price-row { display:flex; align-items:center; flex-wrap:wrap; gap:var(--space-6); }
.pdp-price-label,.pdp-original > span { display:block; font-size:var(--text-small); color:var(--text-muted-on-light); margin-bottom:var(--space-1); }
.pdp-price { color:var(--accent-on-light); font:800 var(--text-h2)/1.16 var(--font-body); letter-spacing:-.035em; white-space:nowrap; }
.pdp-original s { color:var(--text-muted-on-light); font-size:var(--text-lead); white-space:nowrap; }
.pdp-unit-price { font-size:var(--text-small); color:var(--text-muted-on-light); margin-top:var(--space-2); }
.pdp-variant-selector { margin-top:var(--space-5); }
.pdp-field-label { display:block; color:var(--text-on-light); font-size:var(--text-small); font-weight:800; }
#pdp-hook-size { display:block; width:100%; min-height:var(--button-height); margin-block:var(--space-2) var(--space-4); padding:var(--space-3) var(--space-4); border:1px solid var(--border-light); border-radius:var(--radius-control); background:#fff; color:var(--text-on-light); font:inherit; }
.pdp-field-label > span { color:var(--text-muted-on-light); font-weight:500; margin-left:var(--space-2); }
.pdp-flavour-options { display:flex; flex-wrap:wrap; gap:var(--space-2); margin-top:var(--space-3); }
.pdp-flavour-option { display:inline-flex; align-items:center; justify-content:center; min-height:44px; padding:var(--space-2) var(--space-4); border:1px solid var(--border-light); border-radius:var(--radius-control); background:#fff; color:var(--text-on-light); text-decoration:none; font-size:var(--text-small); font-weight:600; }
.pdp-flavour-option[aria-current] { background:rgb(var(--accent-rgb) / 15%); border-color:var(--accent-on-light); box-shadow:inset 0 0 0 1px var(--accent-on-light); color:var(--accent-on-light); }
.pdp-flavour-option:hover { border-color:var(--accent-on-light); }
.pdp-buy-area { margin-top:var(--space-5); }
.pdp-quantity-top { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:var(--space-2); margin-bottom:var(--space-3); font-size:var(--text-small); }
.pdp-quantity-top p { color:var(--text-muted-on-light); }
.pdp-quantity-top strong { color:var(--text-on-light); }
.pdp-buy-controls { display:flex; gap:var(--space-4); }
.pdp-quantity { flex:0 0 152px; display:grid; grid-template-columns:44px 1fr 44px; border:1px solid var(--border-light); border-radius:999px; background:#fff; min-height:var(--button-height); overflow:hidden; }
.pdp-quantity button { display:grid; place-items:center; padding:0; border:0; background:transparent; color:var(--text-on-light); }
.pdp-quantity button:disabled { opacity:.3; cursor:default; }
.pdp-quantity input { width:100%; padding:0; background:transparent; border:0; text-align:center; font-size:var(--text-body); font-weight:800; color:var(--text-on-light); appearance:textfield; -moz-appearance:textfield; }
.pdp-quantity input::-webkit-inner-spin-button,.pdp-quantity input::-webkit-outer-spin-button { -webkit-appearance:none; margin:0; }
.pdp-quantity:focus-within { outline:2px solid var(--accent-on-light); outline-offset:3px; }
.pdp-quantity input:focus { outline:none; }
.pdp-cart { flex:1; gap:var(--space-3); background:var(--ink); border-color:var(--accent); box-shadow:none; }
.pdp-secondary-actions { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:var(--space-3); margin-top:var(--space-3); }
.pdp-favourite { display:grid; place-items:center; min-width:44px; min-height:44px; padding:var(--space-2); border:1px solid var(--border-light); border-radius:50%; background:var(--white); color:var(--text-on-light); }
.pdp-favourite--label { display:inline-flex; gap:var(--space-2); border:0; border-radius:var(--radius-control); padding-inline:0; background:transparent; font-size:var(--text-small); font-weight:600; }
.pdp-favourite [data-favourite-icon].is-saved { fill:var(--accent-on-light); color:var(--accent-on-light); }
.pdp-favourite:hover { color:var(--accent-on-light); }
.pdp-detail-link { display:flex; align-items:center; gap:var(--space-2); min-height:44px; color:var(--accent-on-light); font-size:var(--text-small); font-weight:700; text-underline-offset:4px; }
.pdp-order-note { display:flex; align-items:flex-start; gap:var(--space-2); margin-top:var(--space-3); padding-top:var(--space-4); border-top:1px solid var(--border-light); color:var(--text-muted-on-light); font-size:var(--text-small); line-height:1.5; }
.pdp-order-note .ab-picon { width:18px; height:18px; flex-basis:18px; margin-top:2px; }
.pdp-jump-nav { border-block:1px solid var(--border-light); background:#fff; }
.pdp-jump-nav .container { display:flex; gap:var(--space-6); overflow:auto; scrollbar-width:thin; padding-block:var(--space-3); }
.pdp-jump-nav a { display:flex; align-items:center; flex:0 0 auto; gap:var(--space-2); min-height:44px; color:var(--text-muted-on-light); font-size:var(--text-small); font-weight:800; text-decoration:none; }
.pdp-jump-nav a:hover { color:var(--accent-on-light); }
.pdp-jump-nav .ab-picon { width:20px; height:20px; flex-basis:20px; }
.pdp-details-section { background:#fff; }
.pdp-details-grid { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(0,1fr); gap:var(--space-8); align-items:start; }
.pdp-description { min-width:0; }
.pdp-description > .eyebrow { color:var(--accent-on-light); margin-bottom:var(--space-5); }
.pdp-source-body { margin-top:var(--space-6); max-width:76ch; color:var(--text-muted-on-light); }
.pdp-source-body p { margin-block:var(--space-4); }
.pdp-source-heading { display:flex; align-items:flex-start; gap:var(--space-4); color:var(--text-on-light); margin:var(--space-6) 0 var(--space-4); line-height:1.35; }
.pdp-heading-icon { display:grid; place-items:center; flex:0 0 40px; width:40px; height:40px; margin-top:-6px; border-radius:var(--radius-control); background:rgb(var(--accent-rgb) / 14%); color:var(--accent-on-light); }
.pdp-source-list { display:grid; gap:var(--space-3); margin:var(--space-5) 0; padding:0; list-style:none; }
.pdp-source-list li { display:flex; align-items:flex-start; gap:var(--space-3); }
.pdp-source-list .ab-picon { width:20px; height:20px; flex-basis:20px; color:var(--accent-on-light); margin-top:3px; }
.pdp-aside { min-width:0; position:sticky; top:calc(var(--header-height) + var(--space-5)); }
.pdp-spec-card { padding:var(--card-padding); border:1px solid var(--border-light); border-radius:var(--radius-card); background:var(--surface); scroll-margin-top:calc(var(--header-height) + var(--space-5)); }
.pdp-aside-title { display:flex; align-items:center; gap:var(--space-3); margin-bottom:var(--space-5); }
.pdp-aside-title > svg { color:var(--accent-on-light); }
.pdp-spec-card dl { margin:0; }
.pdp-spec-card dl > div { display:grid; grid-template-columns:minmax(0,.82fr) minmax(0,1fr); gap:var(--space-4); padding-block:var(--space-3); border-top:1px solid var(--border-light); font-size:var(--text-small); }
.pdp-spec-card dt { color:var(--text-muted-on-light); }
.pdp-spec-card dd { margin:0; font-weight:700; overflow-wrap:anywhere; }
.pdp-family { margin-top:var(--space-5); padding:var(--card-padding); border:1px solid var(--border-light); border-radius:var(--radius-card); }
.pdp-family > p { margin-block:var(--space-3) var(--space-4); color:var(--text-muted-on-light); font-size:var(--text-small); }
.pdp-family nav { display:grid; gap:var(--space-2); }
.pdp-family a { display:flex; align-items:center; gap:var(--space-3); padding:var(--space-3); min-height:48px; background:var(--surface); border:1px solid transparent; border-radius:var(--radius-control); text-decoration:none; font-size:var(--text-small); }
.pdp-family a > span { flex:1; }
.pdp-family a[aria-current] { color:var(--accent-on-light); border-color:var(--accent-on-light); background:rgb(var(--accent-rgb) / 10%); }
.pdp-family a:hover { color:var(--accent-on-light); }
.pdp-family .ab-picon:last-child { width:16px; height:16px; flex-basis:16px; }
.pdp-source-note { display:flex; align-items:flex-start; gap:var(--space-3); padding:var(--card-padding); margin-top:var(--space-5); background:#fff5df; border:1px solid #e2c47c; border-radius:var(--radius-control); font-size:var(--text-small); color:#594615; }
.pdp-recommendations { background:var(--ink); color:var(--white); }
.pdp-section-head { display:flex; align-items:center; justify-content:space-between; gap:var(--space-6); margin-bottom:var(--space-7); }
.pdp-section-head .eyebrow { color:var(--accent); margin-bottom:var(--space-5); }
.pdp-section-head > .button { flex:0 0 auto; }
.pdp-related-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--grid-gap); }
.pdp-rec-card { min-width:0; display:flex; flex-direction:column; border:1px solid rgb(var(--accent-rgb) / 20%); border-radius:var(--radius-card); background:#0b1a20; overflow:hidden; }
.pdp-rec-media { position:relative; padding:var(--card-padding); }
.pdp-rec-media > a { display:grid; place-items:center; aspect-ratio:1.4; text-decoration:none; }
.pdp-rec-media img { width:100%; height:100%; object-fit:contain; transition:transform .22s ease; }
@media (hover:hover) { .pdp-rec-media > a:hover img { transform:translateY(-4px); } }
.pdp-rec-media .pdp-favourite { position:absolute; top:var(--space-3); right:var(--space-3); color:var(--white); background:var(--ink); border-color:rgb(var(--accent-rgb) / 20%); }
.pdp-rec-media [data-favourite-icon].is-saved { fill:var(--accent); color:var(--accent); }
.pdp-rec-copy { display:flex; flex:1; flex-direction:column; align-items:start; padding:var(--card-padding); padding-top:var(--space-2); }
.pdp-rec-copy .eyebrow { color:var(--muted); font-size:var(--text-eyebrow); letter-spacing:.07em; margin-bottom:var(--space-3); }
.pdp-rec-copy h3 a { text-decoration:none; }
.pdp-rec-copy h3 a:hover { color:var(--accent); }
.pdp-rec-flavour { color:var(--accent); font-size:var(--text-small); margin-top:var(--space-2); }
.pdp-rec-meta { color:var(--muted); font-size:var(--text-small); margin-top:var(--space-3); }
.pdp-rec-bottom { display:flex; align-items:center; justify-content:space-between; gap:var(--space-3); width:100%; margin-top:auto; padding-top:var(--space-5); }
.pdp-rec-bottom > strong { color:var(--accent); font:800 var(--text-price)/1.2 var(--font-body); white-space:nowrap; }
.pdp-rec-link { display:grid; place-items:center; width:44px; height:44px; border-radius:50%; border:1px solid rgb(var(--accent-rgb) / 35%); color:var(--accent); }
.pdp-rec-link:hover { background:rgb(var(--accent-rgb) / 12%); }
.pdp-rec-card .pdp-placeholder { min-height:0; height:100%; color:var(--muted); font-size:var(--text-small); gap:var(--space-2); padding-top:var(--space-3); }
.pdp-rec-card .pdp-placeholder svg { width:40px; height:40px; flex-basis:40px; color:var(--accent); }
.pdp-rec-card .pdp-placeholder small { display:none; }
.pdp-recent-section { background:var(--surface); }
.pdp-recent-section .eyebrow { color:var(--accent-on-light); }
.pdp-recent-section .section-title em { color:var(--heading-accent-on-light); }
.pdp-recent-note { max-width:64ch; font-size:var(--text-small); color:var(--text-muted-on-light); margin-top:var(--space-4); }
.pdp-clear-history { display:flex; flex:0 0 auto; align-items:center; gap:var(--space-2); border:0; background:none; color:var(--text-muted-on-light); min-height:44px; font-size:var(--text-small); text-decoration:underline; text-underline-offset:4px; }
.pdp-recent-section .pdp-rec-card { background:#fff; border-color:var(--border-light); color:var(--text-on-light); }
.pdp-recent-section .pdp-rec-flavour,.pdp-recent-section .pdp-rec-bottom strong,.pdp-recent-section .pdp-rec-link { color:var(--accent-on-light); }
.pdp-recent-section .pdp-rec-meta,.pdp-recent-section .pdp-rec-copy .eyebrow,.pdp-recent-section .pdp-placeholder { color:var(--text-muted-on-light); }
.pdp-image-dialog { padding:var(--space-7); width:min(92vw,1100px); max-height:90svh; border:1px solid var(--border-light); border-radius:var(--radius-card); background:var(--surface); color:var(--text-on-light); }
.pdp-image-dialog::backdrop { background:rgb(2 10 13 / 80%); }
.pdp-image-dialog > img { width:100%; max-height:74svh; object-fit:contain; }
.pdp-image-dialog .dialog-close { position:absolute; top:var(--space-3); right:var(--space-3); background:var(--white); color:var(--text-on-light); }
.pdp-nojs { padding-block:var(--space-5); }
.product-page [hidden] { display:none!important; }
.product-page :focus-visible { outline-color:var(--accent-on-light); }
.product-page .pdp-recommendations :focus-visible,.product-page .site-footer :focus-visible,.product-page .site-header :focus-visible { outline-color:var(--accent); }
@media (max-width:1199px) {
 .pdp-hero-grid,.pdp-details-grid { gap:var(--space-6); }
 .pdp-quick-facts > div { display:block; }
 .pdp-quick-facts svg { margin-bottom:var(--space-2); }
 .pdp-image-stage { padding:var(--space-6); }
 .pdp-related-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .pdp-section-head { align-items:flex-start; }
 .pdp-aside { position:static; }
}
@media (max-width:899px) {
 .pdp-hero-grid { grid-template-columns:minmax(0,1fr); gap:var(--space-6); }
 .pdp-gallery { position:static; }
 .pdp-image-stage { aspect-ratio:1; padding:var(--space-8); }
 .pdp-thumbnails button { width:128px; }
 .pdp-details-grid { grid-template-columns:minmax(0,1fr); gap:var(--space-7); }
 .pdp-aside { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--grid-gap); }
 .pdp-family { margin:0; }
 .pdp-quick-facts > div { display:grid; }
 .pdp-section-head { flex-direction:column; align-items:flex-start; }
 .pdp-section-head > .button { flex-shrink:1; }
}
@media (max-width:767px) {
 .pdp-top { padding-top:var(--space-5); }
 .pdp-breadcrumb { margin-bottom:var(--space-5); }
 .pdp-image-stage { aspect-ratio:1; padding:var(--space-6); }
 .pdp-image-tag { top:var(--space-4); left:var(--space-4); }
 .pdp-zoom { right:var(--space-4); bottom:var(--space-4); width:44px; height:44px; }
 .pdp-image-caption { font-size:var(--text-eyebrow); }
 .pdp-thumbnails button { width:126px; }
 .pdp-quick-facts { padding-block:var(--space-4); gap:var(--space-3); }
 .pdp-quick-facts > div { display:block; }
 .pdp-quick-facts dd { font-size:var(--text-small); }
 .pdp-price-row { gap:var(--space-5); }
 .pdp-buy-controls { gap:var(--space-3); }
 .pdp-quantity { flex-basis:132px; }
 .pdp-cart { padding-inline:var(--space-4); }
 .pdp-jump-nav .container { gap:var(--space-5); }
 .pdp-aside { grid-template-columns:minmax(0,1fr); }
 .pdp-related-grid { display:grid; grid-auto-flow:column; grid-auto-columns:min(82vw,320px); grid-template-columns:none; overflow-x:auto; scroll-snap-type:x mandatory; gap:var(--grid-gap); padding:var(--space-1) var(--space-1) var(--space-5); scrollbar-width:thin; scrollbar-color:var(--accent) #304143; }
 .pdp-rec-card { scroll-snap-align:start; }
 .pdp-rec-media { padding:var(--card-padding); }
 .pdp-section-head { gap:var(--space-5); margin-bottom:var(--space-6); }
 .pdp-source-heading { gap:var(--space-3); }
 .pdp-placeholder { min-height:160px; gap:var(--space-3); }
 .pdp-placeholder small { font-size:var(--text-eyebrow); }
 .pdp-image-dialog { padding:var(--space-6) var(--space-4); }
}
@media (max-width:374px) {
 .pdp-buy-controls { flex-wrap:wrap; }
 .pdp-quantity { flex-basis:100%; }
 .pdp-cart { flex-basis:100%; }
 .pdp-flavour-option { padding-inline:var(--space-3); }
 .pdp-quick-facts { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .pdp-quick-facts > div:last-child { grid-column:1/-1; display:grid; }
 .pdp-quick-facts > div:last-child svg { grid-row:1/3; }
 .pdp-placeholder svg { width:48px; height:48px; flex-basis:48px; }
}
@media print {
 .site-header,.site-footer,.pdp-jump-nav,.pdp-buy-area,.pdp-thumbnails,.pdp-zoom,.pdp-family,.pdp-recommendations,.pdp-recent-section,.back-to-top { display:none!important; }
 .pdp-main { padding-top:0; }
 .pdp-gallery,.pdp-aside { position:static; }
 .pdp-hero-grid,.pdp-details-grid { display:block; }
 .pdp-image-stage { width:50%; aspect-ratio:1.5; margin-bottom:24px; }
 [data-reveal] { opacity:1!important; visibility:visible!important; transform:none!important; }
}

/* v15: a real inquiry link carries only the public product ID, never personal data. */
.pdp-contact-inquiry { margin-top: var(--space-4); }
