/* Vesta static pages (products, resources, policies). Shares tokens with styles.css. */
/* Fonts are self-hosted (Latin subset, variable weight) so pages do not wait on a third-party font server. Space Grotesk and JetBrains Mono: SIL Open Font License. */
@font-face { font-family: "Space Grotesk"; font-style: normal; font-weight: 400 700; font-display: swap; src: url("/assets/fonts/space-grotesk-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "JetBrains Mono"; font-style: normal; font-weight: 400 500; font-display: swap; src: url("/assets/fonts/jetbrains-mono-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
:root { --pine:#00403d; --pine-deep:#002f2c; --pine-light:#0a5c58; --fluo:#d9ff00; --fluo-dim:#c7e600; --frosty:#e4e9e9; --frosty-deep:#d4dbdb; --misty:#b3cfcd; --ink:#0e1a1a; --ink-soft:#4a5757; --muted:#6b7878; --line:#d3dcdc; --line-soft:#e6ecec; --surface:#f2f6f6; --brand:var(--pine); --brand-dark:var(--pine-deep); --accent:var(--fluo-dim); --font:"Space Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif; --mono:"JetBrains Mono",ui-monospace,Menlo,monospace; --header-h:76px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 16px); -webkit-text-size-adjust:100%; }
body { margin:0; background:var(--frosty); color:var(--ink); font-family:var(--font); font-size:17px; line-height:1.5; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
a { color:inherit; text-decoration:none; }
button { font:inherit; }
h1,h2,h3,p { margin-top:0; }
h1,h2,h3 { color:var(--pine); font-weight:700; letter-spacing:-.025em; }
:focus-visible { outline:3px solid var(--fluo); outline-offset:2px; box-shadow:0 0 0 5px var(--pine); border-radius:6px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }

/* Header */
.seo-header { position:sticky; top:0; z-index:20; display:grid; min-height:var(--header-h); grid-template-columns:1fr auto 1fr; align-items:center; gap:24px; padding:0 max(24px,calc((100vw - 1280px) / 2)); border-bottom:1px solid rgba(0,64,61,.08); background:rgba(228,233,233,.9); backdrop-filter:blur(16px) saturate(1.2); }
.seo-brand { display:inline-flex; align-items:center; gap:10px; justify-self:start; }
.seo-lockup { display:block; width:auto; height:52px; }
.seo-compact { display:none; align-items:center; gap:10px; }
.seo-compact > span { display:grid; width:40px; height:40px; place-items:center; }
.seo-compact > span img { width:38px; height:38px; object-fit:contain; }
.seo-brand-text { display:grid; line-height:1; }
.seo-brand strong { color:var(--pine); font-size:1.45rem; letter-spacing:-.04em; }
.seo-brand small { margin-top:3px; color:var(--ink-soft); font-family:var(--mono); font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; }
.seo-header nav { display:flex; align-items:center; gap:30px; color:var(--ink-soft); font-size:.92rem; font-weight:500; }
.seo-header nav a { padding:8px 0; transition:color .18s; }
.seo-header nav a:hover { color:var(--pine); }
.seo-shop { display:inline-flex; min-height:42px; align-items:center; justify-self:end; padding:0 18px; border:2px solid var(--pine); border-radius:9px; background:var(--fluo); color:var(--ink); font-size:.86rem; font-weight:600; transition:background .18s, box-shadow .18s; }
.seo-shop:hover { background:var(--fluo-dim); box-shadow:0 8px 20px rgba(0,64,61,.18); }
.language-switcher select { appearance:none; height:38px; min-width:62px; padding:0 30px 0 12px; border:1px solid rgba(0,64,61,.14); border-radius:9px; background:rgba(255,255,255,.6) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1.5 5 5 5-5' fill='none' stroke='%2300403d' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right 11px center no-repeat; color:var(--pine); font:600 .8rem var(--font); }

.breadcrumbs { display:flex; gap:9px; overflow:hidden; margin:0 0 28px; color:var(--muted); font-family:var(--mono); font-size:.72rem; white-space:nowrap; }
.breadcrumbs a:hover { color:var(--pine); text-decoration:underline; text-underline-offset:3px; }
.breadcrumbs span:last-child { overflow:hidden; text-overflow:ellipsis; }
.product-page,.article-page { width:min(1280px,calc(100% - 48px)); margin:0 auto; padding:36px 0 96px; }

/* Product hero */
.product-hero { display:grid; grid-template-columns:minmax(380px,.95fr) minmax(0,1.05fr); gap:64px; align-items:start; }
.product-photo { position:sticky; top:calc(var(--header-h) + 24px); display:block; aspect-ratio:4 / 5; overflow:hidden; border-radius:22px; background:radial-gradient(70% 55% at 50% 42%,rgba(255,255,255,.95),rgba(255,255,255,0) 70%),linear-gradient(135deg,#f6f9f9 0%,#cfdddc 52%,#0d5753 135%); box-shadow:0 24px 60px rgba(0,48,45,.14); }
.product-photo-img { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; }
.product-photo .vial-wrap { position:absolute; bottom:11%; left:50%; display:block; height:76%; aspect-ratio:200 / 340; transform:translateX(-50%); }
.product-photo .vial-art { display:block; width:100%; height:100%; filter:drop-shadow(0 22px 28px rgba(0,30,28,.32)); }
.product-photo .art-chip { position:absolute; top:20px; left:20px; z-index:2; padding:6px 12px; border-radius:7px; background:var(--misty); color:var(--pine); font-size:.78rem; font-weight:600; }
.product-photo .stock-pill { position:absolute; top:20px; right:20px; z-index:2; display:inline-flex; align-items:center; gap:7px; padding:6px 11px; border-radius:999px; background:rgba(255,255,255,.92); color:var(--pine); font-family:var(--mono); font-size:.68rem; font-weight:500; }
.stock-pill i { width:7px; height:7px; border-radius:50%; background:#2fb36f; }
.photo-caption { position:absolute; bottom:14px; left:50%; z-index:2; max-width:calc(100% - 36px); padding:5px 12px; border-radius:999px; background:rgba(255,255,255,.78); color:rgba(0,47,44,.75); font-family:var(--mono); font-size:.62rem; text-align:center; transform:translateX(-50%); backdrop-filter:blur(6px); }
.image-watermark { display:none; }
.category-tags { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px; }
.category-tags span { padding:5px 11px; border-radius:7px; background:var(--misty); color:var(--pine); font-size:.76rem; font-weight:600; }
.product-summary h1 { max-width:760px; margin:0 0 18px; font-size:clamp(2.2rem,4vw,3.4rem); line-height:1.05; letter-spacing:-.035em; }
.product-kicker { display:flex; align-items:center; gap:10px; margin:0 0 14px; color:var(--ink-soft); font-family:var(--mono); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; }
.product-kicker span { padding:3px 7px; border:1px solid var(--pine); border-radius:4px; color:var(--pine); font-size:.6rem; letter-spacing:.1em; }
.product-price-row { display:flex; align-items:baseline; flex-wrap:wrap; gap:14px; margin-bottom:14px; }
.product-price { margin:0; color:var(--pine); font-size:2.6rem; font-weight:700; letter-spacing:-.04em; line-height:1; }
.price-inquiry { color:var(--ink-soft); font-size:.82rem; font-weight:500; }
.price-inquiry:hover { color:var(--pine); text-decoration:underline; text-underline-offset:3px; }
.availability { display:inline-flex; align-items:center; gap:8px; margin:0 0 18px; padding:6px 12px; border-radius:999px; background:var(--white,#fff); color:var(--pine); font-family:var(--mono); font-size:.72rem; font-weight:500; }
.availability i { width:7px; height:7px; border-radius:50%; background:#2fb36f; }
.use-notice { display:none; }
.lead { color:var(--ink-soft); font-size:1.05rem; line-height:1.65; }
.product-summary dl { margin:26px 0; overflow:hidden; border:1px solid var(--line); border-radius:14px; background:#fff; }
.product-summary dl div { display:grid; grid-template-columns:120px 1fr; gap:16px; padding:14px 20px; border-bottom:1px solid var(--line-soft); font-size:.94rem; }
.product-summary dl div:last-child { border-bottom:0; }
.product-summary dt { color:var(--ink-soft); font-family:var(--mono); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; line-height:1.9; }
.product-summary dd { margin:0; overflow-wrap:anywhere; font-weight:500; }
.product-actions { display:flex; flex-wrap:wrap; gap:10px; }
.product-actions button,.product-actions a { display:inline-flex; min-height:54px; align-items:center; justify-content:center; padding:0 28px; border:2px solid var(--pine); border-radius:10px; cursor:pointer; font-size:1rem; font-weight:600; transition:background .18s,color .18s,box-shadow .18s; }
.product-actions button { flex:1 1 220px; background:var(--fluo); color:var(--ink); }
.product-actions button:hover { background:var(--fluo-dim); box-shadow:0 10px 24px rgba(0,64,61,.2); }
.product-actions button:disabled { cursor:not-allowed; opacity:.45; box-shadow:none; }
.product-actions a { background:transparent; color:var(--pine); }
.product-actions a:hover { background:var(--pine); color:var(--fluo); }
.product-assurances { display:flex; flex-wrap:wrap; gap:8px 22px; margin:22px 0 0; padding:0; color:var(--ink-soft); font-size:.86rem; list-style:none; }
.product-assurances li { display:inline-flex; align-items:center; gap:8px; }
.product-assurances li::before { display:grid; width:17px; height:17px; place-items:center; border-radius:50%; background:var(--pine); color:var(--fluo); font-size:.6rem; font-weight:700; content:"✓"; }
.cart-feedback { display:flex; min-height:0; align-items:center; gap:12px; margin-top:16px; padding:13px 14px; border-radius:12px; background:var(--pine); color:#fff; opacity:0; transform:translateY(5px); transition:opacity .18s,transform .18s; }
.cart-feedback[hidden] { display:none; }
.cart-feedback.is-visible { opacity:1; transform:translateY(0); }
.cart-feedback-icon { display:grid; width:30px; height:30px; flex:0 0 auto; place-items:center; border-radius:50%; background:var(--fluo); color:var(--pine); font-weight:700; }
.cart-feedback-copy { display:grid; min-width:0; gap:2px; }
.cart-feedback-copy strong { font-size:.9rem; }
.cart-feedback-copy small { overflow:hidden; color:rgba(255,255,255,.7); font-size:.76rem; text-overflow:ellipsis; white-space:nowrap; }
.cart-feedback a { display:inline-flex; min-height:38px; align-items:center; margin-left:auto; padding:0 14px; border-radius:8px; background:var(--fluo); color:var(--ink); font-size:.8rem; font-weight:600; white-space:nowrap; }

/* Product details */
.product-copy { display:grid; grid-template-columns:.42fr 1fr; gap:72px; margin-top:88px; padding:56px 0 0; border-top:1px solid var(--line); }
.product-copy aside { position:sticky; top:calc(var(--header-h) + 24px); align-self:start; }
.product-copy aside p { margin:0 0 8px; color:var(--ink-soft); font-family:var(--mono); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; }
.product-copy aside strong { display:block; color:var(--pine); font-size:1.5rem; line-height:1.15; letter-spacing:-.025em; }
.product-copy article h2 { margin-top:0; font-size:2rem; }
.product-copy article p { color:var(--ink-soft); line-height:1.78; white-space:pre-wrap; }
.formatted-details { min-width:0; }
.detail-section { padding:0 0 36px; }
.detail-section + .detail-section { padding-top:36px; border-top:1px solid var(--line); }
.detail-section h2 { margin:0 0 18px; font-size:1.7rem; line-height:1.2; }
.detail-section p { margin:0 0 14px; }
.detail-section p:last-child { margin-bottom:0; }
.detail-specs { display:grid; grid-template-columns:1fr 1fr; margin:0; border-top:1px solid var(--line); }
.detail-specs div { display:grid; grid-template-columns:minmax(100px,.42fr) 1fr; gap:14px; padding:13px 0; border-bottom:1px solid var(--line); }
.detail-specs div:nth-child(odd) { padding-right:20px; }
.detail-specs div:nth-child(even) { padding-left:20px; border-left:1px solid var(--line); }
.detail-specs dt { color:var(--ink-soft); font-size:.78rem; font-weight:500; }
.detail-specs dd { margin:0; color:var(--ink); font-size:.88rem; line-height:1.5; overflow-wrap:anywhere; }
.detail-faq { display:grid; gap:10px; }
.detail-faq section { padding:18px 20px; border-radius:14px; background:#fff; }
.detail-faq h3 { margin:0 0 8px; font-size:.98rem; line-height:1.4; }
.detail-faq p { font-size:.9rem; }
.warning-section { margin-bottom:34px; padding:22px !important; border:1px solid #e1d68a !important; border-left:4px solid var(--fluo-dim) !important; border-radius:12px; background:#fbf9e8; }
.warning-section h2 { font-size:1.15rem; }
.source-details { min-width:0; }
.source-details > h2,.source-details > h3,.source-details > h4 { margin:0 0 18px; font-size:1.7rem; line-height:1.22; }
.source-details > h2:not(:first-child),.source-details > h3:not(:first-child),.source-details > h4:not(:first-child) { margin-top:40px; padding-top:38px; border-top:1px solid var(--line); }
.source-details p { margin:0 0 14px; color:var(--ink-soft); line-height:1.78; }
.source-details ul,.source-details ol { display:grid; gap:8px; margin:0 0 22px; padding-left:22px; color:var(--ink-soft); line-height:1.65; }
.source-details strong { color:var(--ink); }
.application-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:28px; }
.application-card { padding:18px 20px; border-radius:14px; background:#fff; }
.application-card p { margin:0; font-size:.88rem; line-height:1.58; }
.application-card .application-title { margin-bottom:6px; color:var(--pine); font-weight:700; }
.spec-table-wrap { overflow-x:auto; margin-bottom:28px; border:1px solid var(--line); border-radius:14px; background:#fff; }
.source-spec-table { width:100%; border-collapse:collapse; }
.source-spec-table th,.source-spec-table td { padding:13px 16px; border-bottom:1px solid var(--line-soft); color:var(--ink-soft); font-size:.86rem; line-height:1.45; text-align:left; vertical-align:top; }
.source-spec-table tr:last-child th,.source-spec-table tr:last-child td { border-bottom:0; }
.source-spec-table th,.source-spec-table td:first-child { width:38%; background:var(--surface); color:var(--pine); font-weight:600; }
.source-details > details,.source-faq-item { border-radius:14px; background:#fff; }
.source-details > details + details,.source-faq-item + .source-faq-item { margin-top:10px; }
.source-details summary,.source-faq-item summary { padding:17px 20px; cursor:pointer; color:var(--pine); font-size:.95rem; font-weight:600; }
.source-details details > p,.source-faq-item > p { padding:0 20px 17px; font-size:.88rem; }
.source-faq-card { margin-bottom:10px; padding:18px 20px; border-radius:14px; background:#fff; }
.source-faq-question { margin-bottom:7px; color:var(--pine); font-size:.94rem; font-weight:600; line-height:1.45; }
.source-faq-answer { color:var(--ink-soft); font-size:.88rem; line-height:1.65; }
.source-details img { display:block; max-width:100%; height:auto; margin:18px auto; border-radius:12px; }
.warning-heading { margin-bottom:0 !important; padding:22px 22px 0 !important; border:1px solid #e1d68a !important; border-bottom:0 !important; border-left:4px solid var(--fluo-dim) !important; border-radius:12px 12px 0 0; background:#fbf9e8; font-size:1.15rem !important; }
.warning-copy { padding:10px 22px 22px; border:1px solid #e1d68a; border-top:0; border-left:4px solid var(--fluo-dim); border-radius:0 0 12px 12px; background:#fbf9e8; }
.research-note { display:none; }

/* Articles and policies */
.article-page { width:min(920px,calc(100% - 48px)); }
.article-page > article { padding:40px 0; }
.article-type { color:var(--ink-soft); font-family:var(--mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; }
.article-page h1 { margin:0 0 22px; font-size:clamp(2.3rem,5vw,4rem); line-height:1.05; letter-spacing:-.035em; }
.article-intro { padding-bottom:28px; border-bottom:1px solid var(--line); color:var(--ink-soft); font-size:1.15rem; line-height:1.65; }
.article-reviewed { margin:-12px 0 26px; color:var(--muted); font-family:var(--mono); font-size:.74rem !important; }
.article-body { padding-top:18px; }
.article-body p { color:#3a4848; font-size:1.02rem; line-height:1.82; }
.article-body > section { margin-top:40px; padding-top:36px; border-top:1px solid var(--line); }
.article-body h2 { margin:0 0 16px; font-size:1.7rem; line-height:1.25; }
.article-answer { margin:8px 0 34px; padding:24px 28px; border-left:4px solid var(--fluo-dim); border-radius:0 14px 14px 0; background:#fff; }
.article-answer h2 { color:var(--pine); font-size:1.05rem; }
.article-answer p:last-child { margin-bottom:0; }
.article-facts ul { display:grid; gap:10px; margin:0; padding-left:22px; color:#3a4848; line-height:1.65; }
.article-body > section ul { display:grid; gap:9px; margin:0 0 18px; padding-left:22px; color:#3a4848; font-size:1.02rem; line-height:1.7; }
.article-body p a,.article-body li a { color:var(--pine); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
.article-body .pp-article,.article-body .pp-article * { text-decoration:none; }
.article-contents { margin:0 0 8px; padding:22px 26px; border:1px solid var(--line); border-radius:14px; background:#fff; }
.article-contents h2 { margin:0 0 12px; color:var(--pine); font-family:var(--mono); font-size:.74rem; letter-spacing:.14em; text-transform:uppercase; }
.article-contents ol { display:grid; gap:8px; margin:0; padding-left:22px; color:var(--ink-soft); }
.article-contents a { color:var(--pine); font-weight:600; text-decoration:none; }
.article-contents a:hover { text-decoration:underline; }
.article-table { margin:6px 0 20px; overflow-x:auto; }
.article-table .pp-table { min-width:420px; border:1px solid var(--line); }
.article-table .pp-table thead th { background:var(--surface); color:var(--pine); font-family:var(--mono); font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; }
.article-table .pp-table tbody th { width:auto; text-transform:none; letter-spacing:0; font-family:inherit; font-size:.94rem; color:var(--ink); font-weight:600; }
.editorial-faq { border-top:1px solid var(--line); }
.editorial-faq:last-child { border-bottom:1px solid var(--line); }
.editorial-faq summary { padding:18px 0; cursor:pointer; color:var(--pine); font-weight:600; line-height:1.45; }
.editorial-faq p { margin:0; padding:0 0 18px; font-size:.96rem; }
.article-sources ol { display:grid; gap:10px; padding-left:22px; }
.article-sources a { color:var(--pine); font-weight:600; text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:3px; }
.button-link { display:inline-flex; min-height:48px; align-items:center; padding:0 22px; border:2px solid var(--pine); border-radius:10px; background:var(--fluo); color:var(--ink); font-weight:600; }
.button-link:hover { background:var(--fluo-dim); }

/* Product page */
.pp-page { width:min(1280px,calc(100% - 48px)); margin:0 auto; padding:36px 0 130px; }
.pp-hero { position:relative; padding:34px; overflow:hidden; overflow:clip; border-radius:26px; background:radial-gradient(70% 90% at 100% 0%,rgba(23,128,122,.55),transparent 60%),linear-gradient(150deg,var(--pine) 0%,var(--pine-deep) 100%); color:#fff; }
.pp-hero::before { position:absolute; inset:0; background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px); background-size:32px 32px; content:""; pointer-events:none; }
.pp-hero > * { position:relative; }
.pp-eyebrow { margin:0 0 12px; color:var(--ink-soft); font-family:var(--mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; }
.pp-hero .pp-eyebrow { color:var(--fluo); }
.pp-hero-grid { display:grid; grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr); align-items:start; gap:44px; margin-top:16px; }
.pp-gallery { position:sticky; top:calc(var(--header-h) + 20px); }
.pp-photo { position:relative; aspect-ratio:4 / 5; overflow:hidden; border:1px solid rgba(255,255,255,.14); border-radius:18px; background:#cfdddc; box-shadow:0 30px 70px rgba(0,20,18,.4); }
.pp-photo-img { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; }
.pp-photo .photo-vial-wrap,.pp-card-photo .photo-vial-wrap { position:absolute; inset:0; display:block; overflow:hidden; container-type:inline-size; }
.pp-photo .photo-vial-wrap > img,.pp-card-photo .photo-vial-wrap > img { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; }
.pp-photo .photo-vial-copy,.pp-card-photo .photo-vial-copy { position:absolute; top:54.4%; right:24.5%; left:24.5%; height:20.5%; display:flex; flex-direction:column; align-items:center; justify-content:center; color:#071d31; text-align:center; line-height:1; pointer-events:none; }
.pp-photo .photo-vial-copy strong,.pp-card-photo .photo-vial-copy strong { display:-webkit-box; max-width:100%; overflow:hidden; font-size:clamp(.62rem,5.8cqw,1.55rem); font-weight:850; letter-spacing:-.035em; line-height:.96; text-transform:uppercase; -webkit-box-orient:vertical; -webkit-line-clamp:2; }
.pp-photo .photo-vial-copy > span,.pp-card-photo .photo-vial-copy > span { margin-top:5%; font-size:clamp(.55rem,4.5cqw,1.2rem); font-weight:750; }
.pp-photo .photo-vial-copy i,.pp-card-photo .photo-vial-copy i { width:42%; height:2px; margin:6% 0 4%; background:#00d8e8; }
.pp-photo .photo-vial-copy small,.pp-card-photo .photo-vial-copy small { font-family:var(--mono); font-size:clamp(.46rem,3.3cqw,.9rem); font-weight:650; letter-spacing:.03em; }
.pp-photo .vial-wrap { position:absolute; bottom:8%; left:50%; display:block; height:78%; aspect-ratio:200 / 340; transform:translateX(-50%); }
.pp-photo .vial-art { display:block; width:100%; height:100%; }
.pp-photo .stock-pill { position:absolute; top:16px; left:16px; z-index:2; display:inline-flex; align-items:center; gap:7px; padding:6px 11px; border-radius:999px; background:rgba(255,255,255,.92); color:var(--pine); font-family:var(--mono); font-size:.68rem; font-weight:500; }
.pp-info { min-width:0; }
.pp-kicker { display:flex; align-items:center; gap:10px; margin:0 0 14px; color:rgba(255,255,255,.62); font-family:var(--mono); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; }
.pp-kicker span { padding:3px 7px; border:1px solid var(--fluo); border-radius:4px; color:var(--fluo); font-size:.6rem; }
.pp-info h1 { margin:0; color:#fff; font-size:clamp(2.3rem,4.4vw,3.6rem); line-height:1.02; letter-spacing:-.035em; }
.pp-sub { margin:12px 0 0; color:rgba(255,255,255,.72); font-size:1.12rem; }
.pp-meta { margin:14px 0 0; color:rgba(255,255,255,.5); font-family:var(--mono); font-size:.72rem; letter-spacing:.04em; }
.pp-facts { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:24px; }
.pp-facts > div { padding:16px 18px; border:1px solid rgba(255,255,255,.14); border-radius:14px; background:rgba(255,255,255,.06); }
.pp-facts strong { display:block; color:#fff; font-size:.92rem; }
.pp-facts p { margin:6px 0 10px; color:rgba(255,255,255,.62); font-size:.82rem; line-height:1.5; }
.pp-facts b { color:var(--fluo); font-family:var(--mono); font-size:.8rem; font-weight:500; }
.pp-price-row { display:flex; align-items:baseline; flex-wrap:wrap; gap:6px 16px; margin:26px 0 16px; }
.pp-price { margin:0; color:#fff; font-size:3rem; font-weight:700; letter-spacing:-.04em; line-height:1; }
.pp-unit { margin:0; color:rgba(255,255,255,.62); font-family:var(--mono); font-size:.78rem; }
.pp-buy { display:grid; gap:18px; padding:22px; border-radius:18px; background:#fff; color:var(--ink); box-shadow:0 24px 60px rgba(0,20,18,.28); }
.pp-label { display:block; margin-bottom:9px; color:var(--ink-soft); font-family:var(--mono); font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; }
.pp-sizes { display:flex; flex-wrap:wrap; gap:8px; }
.pp-size { display:grid; min-width:86px; padding:9px 14px; border:1.5px solid var(--line); border-radius:11px; color:var(--pine); font-size:.92rem; font-weight:600; line-height:1.25; transition:border-color .18s, background .18s; }
.pp-size small { color:var(--ink-soft); font-family:var(--mono); font-size:.68rem; font-weight:500; }
.pp-size:hover { border-color:var(--pine); }
.pp-size.is-active { border-color:var(--pine); background:var(--pine); color:#fff; }
.pp-size.is-active small { color:var(--fluo); }
.pp-qty-row { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.pp-qty { display:inline-flex; align-items:center; overflow:hidden; border:1.5px solid var(--line); border-radius:11px; }
.pp-qty button { width:46px; height:46px; border:0; background:var(--surface); color:var(--pine); font-size:1.3rem; line-height:1; cursor:pointer; }
.pp-qty button:hover { background:var(--pine); color:var(--fluo); }
.pp-qty input { width:62px; height:46px; border:0; border-right:1.5px solid var(--line); border-left:1.5px solid var(--line); background:#fff; color:var(--ink); font:inherit; font-family:var(--mono); font-size:1rem; text-align:center; -moz-appearance:textfield; }
.pp-qty input::-webkit-outer-spin-button,.pp-qty input::-webkit-inner-spin-button { margin:0; -webkit-appearance:none; }
.pp-total { margin:0; color:var(--ink-soft); font-size:.92rem; text-align:right; }
.pp-total strong { display:block; color:var(--pine); font-size:1.5rem; letter-spacing:-.03em; }
.pp-actions { display:flex; flex-wrap:wrap; gap:10px; }
.pp-add { display:inline-flex; min-height:54px; flex:1 1 200px; align-items:center; justify-content:center; padding:0 26px; border:2px solid var(--pine); border-radius:11px; background:var(--fluo); color:var(--ink); font:inherit; font-size:1rem; font-weight:600; cursor:pointer; transition:background .18s, box-shadow .18s; }
.pp-add:hover { background:var(--fluo-dim); box-shadow:0 10px 24px rgba(0,64,61,.2); }
.pp-add:disabled { cursor:not-allowed; opacity:.45; box-shadow:none; }
.pp-ask { display:inline-flex; min-height:54px; align-items:center; justify-content:center; padding:0 24px; border:2px solid var(--pine); border-radius:11px; color:var(--pine); font-size:1rem; font-weight:600; transition:background .18s, color .18s; }
.pp-ask:hover { background:var(--pine); color:var(--fluo); }
.pp-note { margin:0; color:var(--ink-soft); font-size:.84rem; line-height:1.5; }
.pp-ship { display:grid; gap:4px; padding:14px 16px; border-left:4px solid var(--fluo); border-radius:11px; background:#f3f8d6; color:var(--pine-deep); }
.pp-ship span { font-size:.84rem; line-height:1.5; }
.pp-checks { display:grid; gap:9px; margin:0; padding:0; color:var(--ink-soft); font-size:.92rem; list-style:none; }
.pp-checks li { display:flex; align-items:center; gap:10px; }
.pp-checks li::before { display:grid; width:18px; height:18px; flex:none; place-items:center; border-radius:50%; background:var(--pine); color:var(--fluo); font-size:.62rem; font-weight:700; content:"✓"; }
.pp-chips { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); overflow:hidden; border:1px solid var(--line); border-radius:12px; }
.pp-chips > div { display:grid; gap:3px; padding:11px 12px; border-right:1px solid var(--line-soft); }
.pp-chips > div:last-child { border-right:0; }
.pp-chips span { color:var(--muted); font-family:var(--mono); font-size:.6rem; letter-spacing:.1em; text-transform:uppercase; }
.pp-chips b { color:var(--ink); font-size:.88rem; }
.pp-accessory { display:grid; gap:12px; padding:16px; border-radius:14px; background:var(--surface); }
.pp-accessory strong { display:block; color:var(--pine); }
.pp-accessory p { margin:3px 0 0; color:var(--ink-soft); font-size:.86rem; }
.pp-accessory-items { display:grid; gap:8px; }
.pp-accessory-items > div { display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:12px; padding:10px 12px; border-radius:10px; background:#fff; font-size:.88rem; }
.pp-accessory-items b { color:var(--pine); }
.pp-accessory-items button,.pp-card-buy button,.pp-toc-buy button { min-height:36px; padding:0 14px; border:1.5px solid var(--pine); border-radius:8px; background:#fff; color:var(--pine); font:inherit; font-size:.82rem; font-weight:600; cursor:pointer; transition:background .18s, color .18s; }
.pp-accessory-items button:hover,.pp-card-buy button:hover,.pp-toc-buy button:hover { background:var(--pine); color:var(--fluo); }

.pp-layout { display:grid; grid-template-columns:230px minmax(0,1fr); gap:56px; margin-top:64px; }
.pp-toc { position:sticky; top:calc(var(--header-h) + 24px); align-self:start; }
.pp-toc > p { margin:0 0 12px; color:var(--ink-soft); font-family:var(--mono); font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; }
.pp-toc nav { display:grid; gap:2px; }
.pp-toc nav a { padding:9px 12px; border-left:2px solid var(--line); color:var(--ink-soft); font-size:.92rem; font-weight:500; transition:color .18s, border-color .18s, background .18s; }
.pp-toc nav a:hover { color:var(--pine); }
.pp-toc nav a.is-active { border-left-color:var(--pine); background:rgba(255,255,255,.7); color:var(--pine); font-weight:600; }
.pp-toc-buy { display:grid; gap:4px; margin-top:22px; padding:16px; border-radius:14px; background:#fff; box-shadow:0 10px 30px rgba(0,48,45,.08); }
.pp-toc-buy strong { color:var(--pine); }
.pp-toc-buy span { color:var(--ink-soft); font-family:var(--mono); font-size:.7rem; }
.pp-toc-buy b { margin:6px 0 8px; color:var(--pine); font-size:1.3rem; letter-spacing:-.03em; }
.pp-toc-buy button { background:var(--fluo); }
.pp-content { min-width:0; }
.pp-section { margin-bottom:56px; scroll-margin-top:calc(var(--header-h) + 20px); }
.pp-section h2 { margin:0 0 18px; font-size:clamp(1.7rem,3vw,2.4rem); line-height:1.1; letter-spacing:-.03em; }
.pp-lead { max-width:720px; margin:0 0 20px; color:var(--ink-soft); font-size:1.08rem; line-height:1.65; }
.pp-bullets { display:grid; gap:10px; margin:0; padding:0; color:var(--ink-soft); list-style:none; }
.pp-bullets li { position:relative; padding:14px 18px 14px 44px; border-radius:12px; background:#fff; line-height:1.5; }
.pp-bullets li::before { position:absolute; top:15px; left:14px; display:grid; width:20px; height:20px; place-items:center; border-radius:50%; background:var(--fluo); box-shadow:0 0 0 1.5px var(--pine) inset; color:var(--pine); font-size:.7rem; font-weight:700; content:"✓"; }
.pp-source { margin-top:24px; }
.pp-table { width:100%; overflow:hidden; border-collapse:separate; border-spacing:0; border-radius:14px; background:#fff; }
.pp-table th,.pp-table td { padding:13px 20px; border-bottom:1px solid var(--line-soft); font-size:.94rem; text-align:left; }
.pp-table tr:last-child th,.pp-table tr:last-child td { border-bottom:0; }
.pp-table tbody th { width:38%; background:var(--surface); color:var(--ink-soft); font-family:var(--mono); font-size:.7rem; font-weight:500; letter-spacing:.08em; text-transform:uppercase; }
.pp-table td { color:var(--ink); font-weight:500; }
.pp-tiers { margin-top:16px; max-width:520px; }
.pp-tiers thead th { background:var(--pine); color:#fff; font-family:var(--mono); font-size:.66rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase; }
.pp-fine { margin:14px 0 0; color:var(--ink-soft); font-size:.88rem; line-height:1.6; }
.pp-fine a { color:var(--pine); font-weight:600; text-decoration:underline; text-underline-offset:3px; }
.pp-info-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.pp-info-cards > div { padding:20px; border-radius:14px; background:#fff; }
.pp-info-cards strong { display:block; margin-bottom:8px; color:var(--pine); }
.pp-info-cards p { margin:0; color:var(--ink-soft); font-size:.9rem; line-height:1.6; }
.pp-faq { border-top:1px solid var(--line); }
.pp-faq details { border-bottom:1px solid var(--line); }
.pp-faq summary { position:relative; padding:20px 50px 20px 0; color:var(--pine); font-size:1.05rem; font-weight:600; list-style:none; cursor:pointer; }
.pp-faq summary::-webkit-details-marker { display:none; }
.pp-faq summary::after { position:absolute; top:50%; right:2px; display:grid; width:28px; height:28px; place-items:center; border-radius:50%; background:#fff; color:var(--pine); font-size:1.25rem; line-height:1; content:"+"; transform:translateY(-50%); }
.pp-faq details[open] summary::after { background:var(--pine); color:var(--fluo); content:"−"; }
.pp-faq details p { max-width:720px; margin:0; padding:0 50px 22px 0; color:var(--ink-soft); line-height:1.65; }
.pp-cards { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.pp-card { display:flex; flex-direction:column; overflow:hidden; border-radius:16px; background:#fff; box-shadow:0 6px 20px rgba(0,48,45,.06); }
.pp-card-photo { display:block; aspect-ratio:4 / 5; overflow:hidden; background:#cfdddc; }
.pp-card-photo img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .5s cubic-bezier(.2,.7,.2,1); }
.pp-card:hover .pp-card-photo img { transform:scale(1.04); }
.pp-card-body { display:grid; gap:6px; padding:14px 14px 16px; }
.pp-card-body h3 { margin:0; font-size:1.05rem; }
.pp-card-body h3 a:hover { text-decoration:underline; text-underline-offset:3px; }
.pp-card-body p { margin:0; color:var(--ink-soft); font-family:var(--mono); font-size:.68rem; }
.pp-card-buy { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:6px; }
.pp-card-buy strong { color:var(--pine); font-size:1.2rem; letter-spacing:-.03em; }
.pp-articles { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.pp-article { display:flex; flex-direction:column; gap:8px; padding:22px; border-radius:16px; background:#fff; transition:transform .25s, box-shadow .25s; }
.pp-article:hover { transform:translateY(-4px); box-shadow:0 18px 44px rgba(0,48,45,.14); }
.pp-article span { align-self:flex-start; padding:4px 9px; border-radius:6px; background:var(--misty); color:var(--pine); font-family:var(--mono); font-size:.64rem; letter-spacing:.08em; text-transform:uppercase; }
.pp-article strong { color:var(--pine); font-size:1.08rem; line-height:1.25; }
.pp-article p { margin:0; color:var(--ink-soft); font-size:.88rem; line-height:1.55; }
.pp-disclaimer { padding:20px 24px; border:1.5px solid #d97a7a; border-radius:14px; background:#fff6f4; color:#6b1f1f; }
.pp-disclaimer strong { display:block; margin-bottom:6px; }
.pp-disclaimer p { margin:0; font-size:.9rem; line-height:1.6; }
.pp-bar { position:fixed; bottom:16px; left:50%; z-index:30; width:min(760px,calc(100% - 28px)); border:1px solid rgba(0,64,61,.12); border-radius:16px; background:rgba(255,255,255,.94); box-shadow:0 18px 50px rgba(0,30,28,.22); transform:translateX(-50%); backdrop-filter:blur(14px); }
.pp-bar-inner { display:flex; align-items:center; gap:14px; padding:10px 12px; }
.pp-bar-inner img { width:42px; height:52px; flex:none; border-radius:8px; object-fit:cover; }
.pp-bar-name { display:grid; min-width:0; flex:1; }
.pp-bar-name strong { overflow:hidden; color:var(--pine); text-overflow:ellipsis; white-space:nowrap; }
.pp-bar-name span { color:var(--ink-soft); font-family:var(--mono); font-size:.68rem; }
.pp-bar-inner > b { color:var(--pine); font-size:1.25rem; letter-spacing:-.03em; }
.pp-bar .pp-add { min-height:46px; flex:none; padding:0 22px; }
body.pp-bar-on .pl-toast { bottom:96px; }

@media (max-width:1100px) {
  .pp-layout { grid-template-columns:minmax(0,1fr); gap:28px; }
  .pp-toc { position:static; min-width:0; }
  .pp-toc nav { display:flex; overflow-x:auto; gap:8px; padding-bottom:4px; scrollbar-width:none; }
  .pp-toc nav a { flex:none; padding:8px 14px; border:1px solid var(--line); border-radius:999px; background:rgba(255,255,255,.6); }
  .pp-toc nav a.is-active { border-color:var(--pine); }
  .pp-toc-buy { display:none; }
  .pp-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:980px) {
  .pp-hero { padding:24px; }
  .pp-hero-grid { grid-template-columns:1fr; gap:26px; }
  .pp-gallery { position:relative; top:auto; width:100%; max-width:460px; margin:0 auto; }
  .pp-info-cards,.pp-articles { grid-template-columns:1fr; }
}
@media (max-width:640px) {
  .pp-page { width:auto; padding:22px 16px 120px; }
  .pp-hero { padding:18px; border-radius:20px; }
  .pp-info h1 { font-size:2.3rem; }
  .pp-price { font-size:2.4rem; }
  .pp-facts { gap:8px; margin-top:18px; }
  .pp-facts > div { padding:12px 14px; }
  .pp-facts p { display:none; }
  .pp-facts strong { font-size:.82rem; }
  .pp-facts b { display:block; margin-top:6px; }
  .pp-photo .photo-caption { right:10px; bottom:10px; left:10px; max-width:none; padding:5px 10px; border-radius:10px; font-size:.58rem; line-height:1.35; transform:none; }
  .pp-price-row { margin:20px 0 14px; }
  .pp-buy { padding:18px; }
  .pp-chips { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pp-chips > div:nth-child(2) { border-right:0; }
  .pp-chips > div:nth-child(-n+2) { border-bottom:1px solid var(--line-soft); }
  .pp-cards { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
  .pp-table th,.pp-table td { padding:11px 14px; font-size:.86rem; }
  .pp-table tbody th { width:44%; }
  .pp-bar-inner img { display:none; }
  .pp-bar-inner { gap:10px; }
  .pp-bar .pp-add { padding:0 16px; }
  .pp-bar-inner > b { font-size:1.1rem; }
}

/* 404 */
.not-found { min-height: 52vh; }
.not-found-actions { display:flex; flex-wrap:wrap; align-items:center; gap:14px 22px; margin-top:28px; }
.not-found-link { color:var(--pine); font-weight:600; text-decoration:underline; text-underline-offset:4px; }

/* Footer */
.seo-footer { padding:64px max(24px,calc((100vw - 1280px) / 2)) 36px; background:var(--pine-deep); color:rgba(255,255,255,.72); font-size:.92rem; }
.footer-inner { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.5fr); gap:24px 72px; }
.footer-brand { display:flex; align-items:center; }
.footer-lockup { display:block; width:auto; height:54px; }
.seo-footer p { margin:0; line-height:1.6; }
.footer-links { display:flex; flex-wrap:wrap; grid-row:span 2; align-content:start; gap:12px 26px; }
.footer-links a { color:rgba(255,255,255,.86); font-weight:500; transition:color .18s; }
.footer-links a:hover { color:var(--fluo); }
.footer-note { grid-column:1 / -1; margin-top:20px !important; padding-top:24px; border-top:1px solid rgba(255,255,255,.14); color:rgba(255,255,255,.55); font-size:.8rem; }

@media (max-width:980px) {
  .seo-header { display:flex; gap:12px; }
  .seo-header nav a:not(.language-switcher) { display:none; }
  .seo-header nav { gap:10px; margin-left:auto; }
  .seo-actions { gap:4px; }
  .product-hero { grid-template-columns:1fr; gap:32px; }
  .product-photo { position:relative; top:auto; max-width:520px; margin-inline:auto; }
  .product-copy { grid-template-columns:1fr; gap:24px; margin-top:56px; padding-top:40px; }
  .product-copy aside { position:static; }
  .footer-inner { grid-template-columns:1fr; }
  .footer-links { grid-row:auto; }
}
@media (max-width:520px) {
  .seo-lockup { display:none; }
  .seo-compact { display:inline-flex; }
}
@media (max-width:640px) {
  body { font-size:16px; }
  .seo-header { min-height:62px; padding:0 16px; }
  .seo-shop { display:none; }
  .product-page,.article-page { width:auto; padding:22px 16px 60px; }
  .breadcrumbs { margin-bottom:18px; }
  .product-summary h1 { font-size:2.1rem; }
  .product-price { font-size:2.2rem; }
  .product-summary dl div { grid-template-columns:1fr; gap:2px; padding:12px 16px; }
  .detail-section { padding-bottom:28px; }
  .detail-section + .detail-section { padding-top:28px; }
  .detail-section h2 { font-size:1.4rem; }
  .detail-specs { grid-template-columns:1fr; }
  .detail-specs div:nth-child(odd),.detail-specs div:nth-child(even) { padding-right:0; padding-left:0; border-left:0; }
  .source-details > h2,.source-details > h3,.source-details > h4 { font-size:1.4rem; }
  .application-grid { grid-template-columns:1fr; }
  .source-spec-table th,.source-spec-table td { padding:10px 12px; font-size:.78rem; }
  .article-page > article { padding:24px 0; }
  .article-page h1 { font-size:2.2rem; hyphens:auto; overflow-wrap:anywhere; }
  .seo-footer { padding:48px 16px 28px; }
  .product-actions button,.product-actions a { flex:1 1 100%; }
}
/* Header actions (cart link on the price list) */
[hidden] { display:none !important; }
.seo-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; justify-self:end; }
.seo-cart { position:relative; display:inline-flex; height:42px; align-items:center; gap:7px; padding:0 10px; border-radius:9px; color:var(--pine); font-weight:600; transition:background .18s; }
.seo-cart:hover { background:rgba(255,255,255,.7); }
.seo-cart svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.seo-cart span { display:inline-grid; min-width:20px; height:20px; place-items:center; padding:0 5px; border-radius:999px; background:var(--pine); color:var(--fluo); font-family:var(--mono); font-size:.68rem; font-weight:500; }

/* Price list */
.pl-page { width:min(1280px,calc(100% - 48px)); margin:0 auto; padding:36px 0 96px; }
body.pl-has-selection .pl-page { padding-bottom:170px; }
.pl-top { display:flex; align-items:flex-end; justify-content:space-between; gap:32px; margin-bottom:30px; }
.pl-eyebrow { margin:0 0 12px; color:var(--ink-soft); font-family:var(--mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; }
.pl-top h1 { margin:0; font-size:clamp(2.4rem,4.6vw,3.6rem); line-height:1.04; letter-spacing:-.035em; }
.pl-intro { max-width:660px; margin:16px 0 0; color:var(--ink-soft); font-size:1.05rem; line-height:1.6; }
.pl-switch { display:inline-flex; flex:none; padding:4px; border:1px solid var(--line); border-radius:11px; background:#fff; }
.pl-switch a { padding:10px 18px; border-radius:8px; color:var(--ink-soft); font-size:.88rem; font-weight:600; white-space:nowrap; transition:color .18s; }
.pl-switch a:hover { color:var(--pine); }
.pl-switch a[aria-current="page"] { background:var(--pine); color:var(--fluo); }
.pl-tools { display:flex; align-items:center; gap:20px; margin-bottom:16px; }
.pl-search { position:relative; display:block; flex:1; max-width:560px; }
.pl-search svg { position:absolute; top:50%; left:16px; width:20px; height:20px; color:var(--ink-soft); fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; transform:translateY(-50%); }
.pl-search input { width:100%; height:52px; padding:0 16px 0 46px; border:1.5px solid var(--line); border-radius:11px; outline:none; background:#fff; color:var(--ink); font:inherit; font-size:.98rem; transition:border-color .18s, box-shadow .18s; }
.pl-search input:focus { border-color:var(--pine); box-shadow:0 0 0 4px rgba(217,255,0,.45); }
.pl-count { margin:0; color:var(--ink-soft); font-family:var(--mono); font-size:.76rem; }
.pl-chips { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 30px; }
.pl-chips a { padding:7px 14px; border:1px solid rgba(0,64,61,.16); border-radius:999px; background:rgba(255,255,255,.6); color:var(--pine); font-size:.82rem; font-weight:500; transition:background .18s, border-color .18s; }
.pl-chips a:hover { border-color:var(--pine); background:#fff; }
.pl-chips a span { margin-left:4px; color:var(--muted); font-family:var(--mono); font-size:.7rem; }
.pl-group { margin-bottom:22px; overflow:hidden; border-radius:16px; background:#fff; scroll-margin-top:calc(var(--header-h) + 16px); box-shadow:0 6px 20px rgba(0,48,45,.06); }
.pl-group-head { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 22px; background:var(--pine); color:#fff; }
.pl-group-head h2 { margin:0; color:#fff; font-size:1.15rem; letter-spacing:-.015em; }
.pl-group-head span { color:var(--fluo); font-family:var(--mono); font-size:.72rem; }
.pl-table { width:100%; border-collapse:collapse; }
.pl-table th { padding:12px 16px; background:#f2f6f6; color:var(--ink-soft); font-family:var(--mono); font-size:.66rem; font-weight:500; letter-spacing:.1em; text-align:left; text-transform:uppercase; white-space:nowrap; }
.pl-table td { padding:11px 16px; border-top:1px solid var(--line-soft); vertical-align:middle; }
.pl-table .pl-price { width:190px; text-align:right; }
.pl-table .pl-qty { width:150px; padding-right:22px; text-align:right; }
.pl-table .pl-spec { width:210px; }
.pl-table .pl-sku { width:130px; }
.pl-table tbody tr { transition:background .12s; }
.pl-table tbody tr:hover { background:#f6f9f9; }
.pl-table tbody tr.is-selected { background:#f3f8d6; box-shadow:inset 3px 0 0 var(--pine); }
.pl-name a { color:var(--pine); font-weight:600; }
.pl-name a:hover { text-decoration:underline; text-underline-offset:3px; }
td.pl-spec { color:var(--ink); font-size:.92rem; }
td.pl-sku { color:var(--muted); font-family:var(--mono); font-size:.76rem; }
td.pl-price { color:var(--pine); font-size:1.05rem; font-weight:700; letter-spacing:-.02em; white-space:nowrap; }
td.pl-price small { display:block; color:var(--muted); font-size:.68rem; font-weight:500; letter-spacing:0; }
.pl-stepper { display:inline-flex; align-items:center; }
.pl-stepper button { width:34px; height:40px; border:1.5px solid var(--pine); background:#fff; color:var(--pine); font:inherit; font-size:1.15rem; font-weight:600; line-height:1; cursor:pointer; transition:background-color .12s,color .12s; }
.pl-stepper button:first-child { border-radius:9px 0 0 9px; border-right:0; }
.pl-stepper button:last-child { border-radius:0 9px 9px 0; border-left:0; }
.pl-stepper button:hover:not(:disabled) { background:var(--pine); color:var(--fluo); }
.pl-stepper button:disabled { border-color:var(--line); background:#f1f4f4; color:#9aa5a5; cursor:not-allowed; }
.pl-qty input { width:52px; height:40px; padding:0 4px; border:1.5px solid var(--pine); border-radius:0; background:#fff; color:var(--ink); font:inherit; font-family:var(--mono); font-size:.92rem; text-align:center; -moz-appearance:textfield; appearance:textfield; }
.pl-qty input::-webkit-outer-spin-button,.pl-qty input::-webkit-inner-spin-button { margin:0; -webkit-appearance:none; }
.pl-qty input:disabled { border-color:var(--line); background:#f1f4f4; color:#9aa5a5; }
.pl-qty input:focus { position:relative; z-index:1; outline:none; box-shadow:0 0 0 4px rgba(217,255,0,.55); }
.pl-empty { margin:30px 0; padding:40px 20px; border-radius:16px; background:#fff; color:var(--ink-soft); text-align:center; }
.pl-terms { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-top:44px; }
.pl-terms div { padding:24px; border-radius:14px; background:#fff; }
.pl-terms strong { display:block; margin-bottom:8px; color:var(--pine); font-size:1.02rem; }
.pl-terms p { margin:0; color:var(--ink-soft); font-size:.92rem; line-height:1.6; }
.pl-bar { position:fixed; right:0; bottom:0; left:0; z-index:30; background:var(--pine-deep); color:#fff; box-shadow:0 -14px 40px rgba(0,30,28,.28); }
.pl-bar-inner { display:flex; width:min(1280px,calc(100% - 48px)); align-items:center; gap:14px; margin:0 auto; padding:14px 0; }
.pl-bar-info { display:flex; flex:1; flex-wrap:wrap; align-items:baseline; gap:4px 18px; min-width:0; }
.pl-bar-info strong { font-size:1rem; }
.pl-bar-info span { color:var(--fluo); font-size:1.5rem; font-weight:700; letter-spacing:-.03em; }
.pl-bar-info small { color:rgba(255,255,255,.7); font-size:.82rem; }
.pl-clear,.pl-add { height:52px; border-radius:11px; font:inherit; font-weight:600; cursor:pointer; transition:background .18s, border-color .18s; }
.pl-clear { padding:0 20px; border:1.5px solid rgba(255,255,255,.3); background:transparent; color:#fff; }
.pl-clear:hover { border-color:#fff; }
.pl-add { padding:0 34px; border:2px solid var(--fluo); background:var(--fluo); color:var(--ink); font-size:1rem; }
.pl-add:hover { background:var(--fluo-dim); border-color:var(--fluo-dim); }
.pl-toast { position:fixed; right:22px; bottom:calc(24px + env(safe-area-inset-bottom)); z-index:40; display:flex; max-width:min(520px,calc(100vw - 44px)); align-items:center; gap:12px; padding:14px 16px; border-radius:14px; background:var(--pine); color:#fff; box-shadow:0 30px 90px rgba(0,30,28,.35); font-size:.94rem; }
.pl-toast-icon { display:grid; flex:none; width:30px; height:30px; place-items:center; border-radius:50%; background:var(--fluo); color:var(--pine); font-weight:700; }
body.pl-has-selection .pl-toast { bottom:100px; }
.pl-toast a { flex:none; padding:9px 14px; border-radius:8px; background:var(--fluo); color:var(--ink); font-size:.82rem; font-weight:600; white-space:nowrap; }

@media (max-width:980px) {
  .pl-top { flex-direction:column; align-items:flex-start; }
  .pl-table .pl-spec { width:150px; }
  .pl-table .pl-sku { width:96px; }
  .pl-table .pl-price { width:130px; }
  .pl-terms { grid-template-columns:1fr; }
}
@media (max-width:640px) {
  .pl-page { width:auto; padding:22px 16px 60px; }
  .pl-tools { flex-direction:column; align-items:stretch; gap:10px; }
  .pl-search { max-width:none; }
  .pl-chips { flex-wrap:nowrap; overflow-x:auto; margin:0 -16px 22px; padding:0 16px 4px; scrollbar-width:none; }
  .pl-chips::-webkit-scrollbar { display:none; }
  .pl-chips a { flex:none; }
  .pl-group-head { padding:14px 16px; }
  .pl-table,.pl-table tbody { display:block; }
  .pl-table thead { display:none; }
  .pl-table tr { display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-areas:"name price" "spec qty" "sku qty"; align-items:center; gap:2px 10px; padding:12px 14px; border-top:1px solid var(--line-soft); }
  .pl-table tbody tr:first-child { border-top:0; }
  .pl-table td { display:block; padding:0; border:0; }
  .pl-table .pl-name { grid-area:name; }
  .pl-table .pl-price { grid-area:price; width:auto; }
  .pl-table .pl-spec { grid-area:spec; width:auto; }
  .pl-table .pl-sku { grid-area:sku; width:auto; }
  .pl-table .pl-qty { grid-area:qty; width:auto; padding:0; align-self:end; }
  .pl-stepper button { width:38px; height:40px; }
  .pl-qty input { width:48px; height:40px; }
  .pl-bar-inner { width:auto; flex-wrap:wrap; gap:10px; padding:12px 16px calc(12px + env(safe-area-inset-bottom)); }
  .pl-bar-info { flex:1 1 100%; }
  .pl-bar-info span { font-size:1.3rem; }
  .pl-clear { flex:0 0 auto; height:48px; }
  .pl-add { flex:1; height:48px; padding:0 16px; }
  .pl-toast { right:12px; left:12px; max-width:none; }
  body.pl-has-selection .pl-toast { bottom:150px; }
  body.pl-has-selection .pl-page { padding-bottom:200px; }
  .seo-cart { padding:0 6px; }
}

/* Resources hub and About page */
.hub-group { margin-top:44px; }
.hub-group h2 { margin:0 0 6px; font-size:1.7rem; letter-spacing:-.03em; }
.hub-group > p { margin:0 0 20px; color:var(--ink-soft); line-height:1.6; }
.hub-group .pp-articles { margin-top:18px; }
.hub-next { padding:28px; border-radius:18px; background:var(--pine-deep); color:rgba(255,255,255,.78); }
.hub-next h2 { color:#fff; }
.hub-next > p { color:rgba(255,255,255,.72); }
.hub-next .button-link { margin:6px 10px 0 0; }
.about-facts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:30px 0 8px; }
.about-facts > div { padding:18px 20px; border-radius:14px; background:#fff; }
.about-facts dt { color:var(--muted); font-family:var(--mono); font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; }
.about-facts dd { margin:6px 0 0; color:var(--ink); font-weight:600; line-height:1.45; }
.about-facts a,.article-body a { color:var(--pine); text-decoration:underline; text-underline-offset:3px; }
.footer-note a { color:rgba(255,255,255,.86); text-decoration:underline; text-underline-offset:3px; }
@media (min-width:981px) { .hub-page { width:min(1120px,calc(100% - 48px)); } }
@media (max-width:640px) { .about-facts { grid-template-columns:1fr; } .hub-next { padding:22px; } }

/* Compound, research-area, category and glossary pages */
.cp-page { padding-bottom:90px; }
.cp-hero { padding:34px 34px 30px; border-radius:24px; background:radial-gradient(70% 90% at 100% 0%,rgba(23,128,122,.5),transparent 60%),linear-gradient(150deg,var(--pine) 0%,var(--pine-deep) 100%); color:#fff; }
.cp-hero .pp-eyebrow,.cp-hero .pp-eyebrow a { color:var(--fluo); }
.cp-hero h1 { margin:0; color:#fff; font-size:clamp(2.3rem,5vw,3.8rem); line-height:1.03; letter-spacing:-.035em; }
.cp-answer { max-width:860px; margin:18px 0 0; color:rgba(255,255,255,.84); font-size:1.12rem; line-height:1.6; }
.cp-chips { display:flex; flex-wrap:wrap; gap:10px; margin:22px 0 0; padding:0; list-style:none; }
.cp-chips li { display:grid; gap:2px; padding:10px 16px; border:1px solid rgba(255,255,255,.18); border-radius:12px; background:rgba(255,255,255,.07); }
.cp-chips span { color:rgba(255,255,255,.6); font-family:var(--mono); font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; }
.cp-chips b { color:#fff; font-family:var(--mono); font-size:.9rem; font-weight:500; }
.cp-reviewed { margin:18px 0 0; color:rgba(255,255,255,.55); font-family:var(--mono); font-size:.7rem; }
.cp-scroll { overflow-x:auto; border-radius:14px; }
.cp-table th a,.cp-table td a { color:var(--pine); font-weight:600; text-decoration:underline; text-underline-offset:3px; }
.cp-table thead th { background:var(--pine); color:#fff; font-family:var(--mono); font-size:.64rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase; }
.cp-table tbody th { width:auto; background:var(--surface); color:var(--ink); font-family:var(--font); font-size:.94rem; letter-spacing:0; text-transform:none; }
.cp-table:not(.cp-index) tbody tr:only-child th { width:auto; }
.cp-table sub { font-size:.72em; }
.cp-mono { font-family:var(--mono); font-size:.86rem; }
.cp-nowrap { white-space:nowrap; }
.cp-seq { display:block; max-width:100%; overflow-wrap:anywhere; font-family:var(--mono); font-size:.86rem; line-height:1.6; }
.cp-refs { display:grid; gap:12px; margin:18px 0 0; padding-left:22px; }
.cp-refs li { padding:14px 16px; border-radius:12px; background:#fff; line-height:1.45; }
.cp-refs a { color:var(--pine); font-weight:600; }
.cp-refs a:hover { text-decoration:underline; text-underline-offset:3px; }
.cp-refs span { display:block; margin-top:4px; color:var(--muted); font-family:var(--mono); font-size:.7rem; }
.cp-card small { margin-top:auto; color:var(--muted); font-size:.72rem; }
.cp-search input { width:100%; max-width:420px; height:46px; margin:0 0 16px; padding:0 16px; border:2px solid transparent; border-radius:10px; outline:none; background:#fff; color:var(--ink); font:inherit; }
.cp-search input:focus { border-color:var(--pine); }
.cp-index tbody tr[hidden] { display:none; }
.cp-product-cards { display:grid; gap:14px; }
.cp-product-card { padding:20px 22px; border-radius:16px; background:#fff; }
.pp-content .cp-product-card h3 { margin:0 0 8px; font-size:1.3rem; }
.cp-product-card h3 a:hover { text-decoration:underline; text-underline-offset:3px; }
.cp-product-card p { margin:0 0 10px; color:var(--ink-soft); line-height:1.6; }
.cp-product-card .cp-chips li { border-color:var(--line); background:var(--surface); }
.cp-product-card .cp-chips span { color:var(--muted); }
.cp-product-card .cp-chips b { color:var(--pine); }
.pp-content h3 { margin:26px 0 10px; font-size:1.15rem; }
.glossary-nav { display:flex; flex-wrap:wrap; gap:8px; margin:22px 0 8px; }
.glossary-nav a { display:grid; width:38px; height:38px; place-items:center; border:1px solid var(--line); border-radius:10px; background:#fff; color:var(--pine); font-family:var(--mono); font-weight:500; }
.glossary-nav a:hover { background:var(--pine); color:var(--fluo); }
.glossary-letter { margin-top:34px; padding-top:24px; border-top:1px solid var(--line); scroll-margin-top:calc(var(--header-h) + 16px); }
.glossary-letter > h2 { margin:0 0 14px; font-size:2rem; }
.glossary-term { padding:16px 0; border-bottom:1px solid var(--line-soft); scroll-margin-top:calc(var(--header-h) + 16px); }
.glossary-term h3 { margin:0 0 6px; font-size:1.15rem; }
.glossary-term p { margin:0 0 6px; color:#3a4848; line-height:1.7; }
.glossary-term a,.article-body a,.hub-group a { color:var(--pine); }
.glossary-term p a,.article-next a { text-decoration:underline; text-underline-offset:3px; }
.article-next { margin-top:44px; padding-top:22px; border-top:1px solid var(--line); }
.article-next h2 { margin:0 0 8px; font-size:1.1rem; }
@media (max-width:640px) {
  .cp-hero { padding:22px 18px; border-radius:20px; }
  .cp-chips li { flex:1 1 40%; }
  .cp-product-card { padding:16px; }
  .glossary-letter > h2 { font-size:1.6rem; }
}

/* Phone tab bar (shared with the home page) */
.mobile-action-bar { display:none; }
@media (max-width:640px) {
  :root { --tab-h:calc(66px + env(safe-area-inset-bottom)); }
  .seo-footer { padding-bottom:calc(var(--tab-h) + 24px); }
  .mobile-action-bar { position:fixed; right:0; bottom:0; left:0; z-index:50; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); padding:6px 4px calc(6px + env(safe-area-inset-bottom)); border-top:1px solid var(--line); background:rgba(255,255,255,.97); box-shadow:0 -8px 26px rgba(0,30,28,.08); backdrop-filter:blur(14px); }
  .mobile-action-bar .tab { position:relative; display:flex; min-height:54px; flex-direction:column; align-items:center; justify-content:center; gap:3px; border-radius:12px; color:var(--ink-soft); font-size:.66rem; font-weight:600; }
  .mobile-action-bar .tab-label { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .mobile-action-bar .tab-icon { display:grid; width:46px; height:28px; place-items:center; border-radius:14px; transition:background .2s,color .2s; }
  .mobile-action-bar .tab-icon svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
  .mobile-action-bar .tab.is-active { color:var(--pine); }
  .mobile-action-bar .tab.is-active .tab-icon { background:var(--fluo); color:var(--pine-deep); }
  .mobile-action-bar .tab-badge { position:absolute; top:3px; left:calc(50% + 6px); display:grid; min-width:18px; height:18px; place-items:center; padding:0 5px; border:2px solid #fff; border-radius:999px; background:var(--pine); color:var(--fluo); font-family:var(--mono); font-size:.6rem; font-weight:500; line-height:1; }
  .mobile-action-bar .tab-badge[hidden] { display:none; }

  /* Everything that floats at the bottom sits above the tab bar. */
  .pp-bar { bottom:calc(var(--tab-h) + 10px); }
  .pl-bar { bottom:var(--tab-h); }
  .pl-bar-inner { padding-bottom:12px; }
  .pl-toast { bottom:calc(var(--tab-h) + 12px); }
  body.pp-bar-on .pl-toast { bottom:calc(var(--tab-h) + 86px); }
  body.pl-has-selection .pl-toast { bottom:calc(var(--tab-h) + 150px); }
  body.pl-has-selection .pl-page { padding-bottom:calc(var(--tab-h) + 200px); }
}

@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition-duration:.01ms !important; } }
