@font-face{font-family:Hanken;src:url('assets/shared/HankenGrotesk.813b3f8fa0.ttf') format('truetype');font-weight:100 900;font-display:swap}
@font-face{font-family:Sora;src:url('assets/brand/SoraVariable.84ff7096ae.ttf') format('truetype');font-weight:100 800;font-display:swap}

:root{--paper:#fff;--ink:#222725;--muted:#5e6561;--surface:#f5f5f5;--field:#e9ebec;--focus:#375d55;--ease-out:cubic-bezier(.23,1,.32,1);--ease-in-out:cubic-bezier(.77,0,.175,1);--page-gutter:clamp(24px,5vw,88px);--section-gap:128px;--font-display:clamp(44px,4.3vw,64px);--product-ground:#eeeef0}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:94px;scrollbar-color:#9ca49e #f4f5f3}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Hanken,Arial,sans-serif;font-size:18px;line-height:1.55;-webkit-font-smoothing:antialiased}
::selection{color:#fff;background:#3a5048}
a{color:inherit;text-decoration:none;text-underline-offset:5px}
button,input,textarea,select{font:inherit}
button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}
button{cursor:pointer;color:inherit}
button{border:0}
button,select{touch-action:manipulation}
input,textarea{caret-color:var(--focus)}
:focus-visible{outline:3px solid var(--focus);outline-offset:5px}
img{display:block;max-width:100%;height:auto}
button img{pointer-events:none}
svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.svg-library{position:absolute;width:0;height:0;overflow:hidden}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-weight:500;line-height:1.05;letter-spacing:-.035em;text-wrap:balance}
h2{font-size:var(--font-display)}
h3{font-size:22px;letter-spacing:-.025em}
p{max-width:70ch}
[hidden]{display:none!important}
.wrap{width:100%;max-width:1600px;margin-inline:auto;padding-inline:var(--page-gutter)}
.section{padding-block:var(--section-gap)}
.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:64px;margin-bottom:56px}
.section-head>p{font-size:18px;line-height:1.65;max-width:410px;padding-bottom:4px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:28px;min-height:52px;padding:15px 24px;background:var(--ink);color:#fff;border-radius:0;font-size:16px;font-weight:500;transition:background-color 160ms var(--ease-out),transform 160ms var(--ease-out)}
.button:active,.document:active{transform:scale(.98)}
.text-link{display:inline-flex;align-items:center;gap:20px;font-weight:500;font-size:16px;background:none;padding:0;min-height:44px;transition:color 160ms var(--ease-out)}
.text-link svg,.button svg{transition:transform 180ms var(--ease-out)}
.skip{position:fixed;top:8px;left:16px;padding:12px 20px;background:var(--ink);color:#fff;transform:translateY(-160%);z-index:100}
.skip:focus{transform:translateY(0)}

.header{height:88px;padding-inline:var(--page-gutter);display:flex;align-items:center;justify-content:space-between;gap:32px;background:#fff;position:relative;z-index:20}
.wordmark{display:inline-flex;align-items:center;gap:12px;flex-shrink:0;font-family:Sora,Hanken,sans-serif;font-size:31px;font-weight:800;letter-spacing:.025em;line-height:1;white-space:nowrap}
.brand-symbol{width:34px;height:46px;stroke:none}
.brand-name{display:block}
.desktop-nav{display:flex;align-items:center;gap:clamp(18px,1.8vw,30px);margin-left:auto;margin-right:10px;font-size:14px;white-space:nowrap}
.desktop-nav a{padding:12px 0;transition:color 160ms var(--ease-out)}
.header-cta{min-height:44px;padding:11px 18px;font-size:14px;gap:22px}
.header-cta svg{width:18px;height:18px}
.menu-toggle{display:none}
/* P021 Products category menu (desktop dropdown + mobile group), shared by all pages. */
/* P023 Products mega menu: anchored to the header (not the button), so it always stays inside the viewport. */
.nav-products{position:static}
.nav-products-toggle,.mobile-products-toggle{display:inline-flex;align-items:center;gap:6px;background:transparent;padding:12px 0;font-size:inherit;font-weight:inherit;line-height:inherit;transition:color 160ms var(--ease-out)}
.nav-chevron{width:14px;height:14px;transition:transform 180ms var(--ease-out)}
[aria-expanded=true]>.nav-chevron{transform:rotate(180deg)}
.products-menu{position:absolute;top:100%;left:var(--page-gutter);right:var(--page-gutter);z-index:25;white-space:normal}
.products-menu-panel{max-width:1180px;margin-left:auto;background:#fff;border-top:1px solid #e3e6e4;padding:24px 28px 16px;/* taste-skill-ignore: dropdown needs lift above page content. */box-shadow:0 18px 40px #1d232014,0 2px 6px #1d23200d;animation:menu-in 180ms var(--ease-out)}
@keyframes menu-in{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.products-menu-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 20px}
.products-menu-item{display:flex;align-items:center;gap:16px;padding:8px 10px 8px 8px;min-height:96px;transition:background-color 160ms var(--ease-out)}
.products-menu-item img{width:80px;height:80px;flex-shrink:0;object-fit:contain;background:var(--product-ground)}
.products-menu-text{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
.products-menu-name{font-size:15px;font-weight:500;line-height:1.25}
.products-menu-hint{font-size:13px;color:var(--muted);line-height:1.35}
.products-menu-item>svg{width:16px;height:16px;color:var(--muted);transition:transform 160ms var(--ease-out),color 160ms var(--ease-out)}
.products-menu-all{display:inline-flex;align-items:center;gap:10px;min-height:44px;margin-top:12px;padding-top:6px;font-size:14px;font-weight:500;transition:color 160ms var(--ease-out)}
.products-menu-all svg{width:16px;height:16px}
@media(hover:hover) and (pointer:fine){.nav-products-toggle:hover,.products-menu-all:hover,.mobile-products-list a:hover{color:var(--focus)}
.products-menu-item:hover{background:#f5f6f6}
.products-menu-item:hover>svg{color:var(--ink);transform:translateX(3px)}}
.products-menu-item:focus-visible{outline-offset:2px}
@media(max-width:1240px){.products-menu-item{gap:12px;min-height:88px}.products-menu-item img{width:72px;height:72px}.products-menu-name{font-size:14px}}
@media(prefers-reduced-motion:reduce){.products-menu-panel{animation:none}}
/* Owner-selected product pixels blend with an empty studio plate. Products are not regenerated. */
.hero{--hero-silver:#e7e9ec;position:relative;isolation:isolate;background:var(--hero-silver) url('assets/brand/quanhu-studio-background-v2.917db0974d.webp') center/cover no-repeat;overflow:hidden;padding-block:28px 24px}
.hero-content{display:grid;grid-template-columns:minmax(0,34fr) minmax(0,66fr);align-items:center;gap:12px;min-height:610px;padding-right:0}
.hero-copy{position:relative;z-index:1;padding-block:36px}
.hero h1{font-size:clamp(32px,3vw,49px);font-weight:500;line-height:1.12;letter-spacing:-.04em;text-wrap:initial}
.hero-intro{margin-top:28px}
.hero-intro>p{font-size:17px;line-height:1.7;max-width:43ch;margin-bottom:30px}
@media(min-width:1101px){
.hero-copy{align-self:start;padding-top:48px}
.hero-intro>p{width:calc(100% + 12px);max-width:60ch;font-size:16px}
}
.hero-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.hero-actions .text-link{gap:12px}
.hero-visual{width:calc(100% + 52px);max-width:none;aspect-ratio:1448/600;margin:24px 0 0 -26px;overflow:hidden;mix-blend-mode:multiply}
.hero-visual>img{width:100%;height:100%;object-fit:cover;object-position:center 57%}
.hero-bottom{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:0;font-size:13px;line-height:1.6}
.hero-bottom>a{display:flex;gap:18px;align-items:center;min-height:44px}
.hero-bottom>a svg{transform:rotate(90deg);width:18px;height:18px}
.about{display:grid;grid-template-columns:1fr 1fr;gap:100px}
.about-heading{display:flex;align-items:flex-start;flex-direction:column;justify-content:space-between;gap:44px}
.about-copy .lead{font-size:27px;line-height:1.35;letter-spacing:-.02em;max-width:36ch;margin-bottom:25px}
.about-copy>p:not(.lead){font-size:17px;color:var(--muted);line-height:1.8;max-width:54ch}
.about-facts{display:flex;gap:64px;margin-top:34px}
.about-facts div{display:flex;flex-direction:column;gap:7px}
.about-facts strong{font-size:18px;font-weight:500}
.about-facts span{font-size:14px;color:var(--muted)}

.products{background:var(--surface)}
.collection-bottom{margin-top:44px;display:flex;align-items:center;justify-content:space-between;gap:28px}
.collection-bottom>p{font-size:15px}
/* P023 catalog, category and product pages (generated by scripts/products.mjs). */
.shop-page{padding-bottom:var(--section-gap)}
.crumbs{padding-top:28px}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:4px 10px;font-size:14px;color:var(--muted)}
.crumbs li{display:flex;align-items:center;gap:10px}
.crumbs li+li::before{content:"/";color:#a3aaa6}
.crumbs a{display:inline-flex;align-items:center;min-height:44px;transition:color 160ms var(--ease-out)}
.crumbs [aria-current]{color:var(--ink)}
.shop-head{padding-block:24px 48px;max-width:860px}
.shop-head h1{font-size:clamp(38px,4vw,58px);letter-spacing:-.04em}
.shop-head p{font-size:18px;line-height:1.65;color:var(--muted);margin-top:20px;max-width:62ch}
.shop-grid-two{grid-template-columns:repeat(2,minmax(0,1fr));max-width:1000px}
.shop-count{font-size:15px;color:var(--muted);margin:-20px 0 28px;font-variant-numeric:tabular-nums}
.shop-grid .collection-photo img{object-fit:contain}
.shop-help{display:flex;justify-content:space-between;align-items:center;gap:28px;margin-top:64px;padding-top:36px;border-top:1px solid #dfe2e0}
.shop-help p{font-size:16px;line-height:1.65}
.model-feature,.range-feature{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px 72px;align-items:center;max-width:1180px}
.model-feature-photo,.range-feature-photo{display:block;background:var(--product-ground);aspect-ratio:1/1;overflow:hidden}
.model-feature-photo img,.range-feature-photo img{width:100%;height:100%;object-fit:contain;padding:5%}
.model-feature-body h2,.range-feature-body h2{font-size:clamp(26px,2.4vw,34px);line-height:1.15}
.model-feature-body h2 a{transition:color 160ms var(--ease-out)}
.model-feature-body>p{font-size:16px;line-height:1.7;color:var(--muted);margin-top:18px}
.model-feature-body .button,.range-feature-body .button{margin-top:28px}
.facts{margin:18px 0 0;display:grid;gap:8px}
.facts div{display:flex;gap:16px;font-size:16px}
.facts dt{color:var(--muted);min-width:80px}
.facts dd{margin:0;font-variant-numeric:tabular-nums;font-weight:500}
.need-list{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:0;border-top:1px solid #dfe2e0}
.need-list li{padding:13px 0;border-bottom:1px solid #dfe2e0;font-size:16px}
.pdp-top{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:40px 72px;align-items:start;padding-top:16px}
.pdp-media{background:var(--product-ground);aspect-ratio:1/1;overflow:hidden}
.pdp-media img{width:100%;height:100%;object-fit:contain;padding:3%}
.pdp-info{padding-top:12px}
.pdp-cat{font-size:14px;color:var(--muted)}
.pdp-cat a{display:inline-flex;align-items:center;min-height:44px;transition:color 160ms var(--ease-out)}
.pdp-info h1{font-size:clamp(32px,3.2vw,48px);letter-spacing:-.035em;margin-top:4px}
.pdp-summary{font-size:17px;line-height:1.7;margin-top:22px;color:var(--muted)}
.pdp-actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px 28px;margin-top:30px}
.pdp-note{font-size:14px;line-height:1.65;color:var(--muted);margin-top:20px;max-width:46ch}
.pdp-section{margin-top:88px;padding-top:40px;border-top:1px solid #dfe2e0}
.pdp-section>h2{font-size:clamp(26px,2.4vw,34px);margin-bottom:28px}
.spec-table{width:100%;max-width:860px;border-collapse:collapse;font-size:16px}
.spec-table th,.spec-table td{text-align:left;padding:14px 0;border-bottom:1px solid #e3e6e4;vertical-align:top}
.spec-table th{font-weight:500;width:34%;padding-right:24px;color:var(--muted)}
.custom-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.custom-list li{background:var(--surface);padding:24px}
.custom-list h3{font-size:19px}
.custom-list p{font-size:15px;line-height:1.65;color:var(--muted);margin-top:10px}
.pdp-faq{max-width:860px;border-top:1px solid #dfe2e0}
.pdp-faq details{border-bottom:1px solid #dfe2e0}
.pdp-faq summary{cursor:pointer;min-height:56px;display:flex;align-items:center;font-size:17px;font-weight:500;padding:12px 0}
.pdp-faq p{font-size:16px;line-height:1.7;color:var(--muted);padding-bottom:20px}
@media(hover:hover) and (pointer:fine){.crumbs a:hover,.pdp-cat a:hover,.model-feature-body h2 a:hover{color:var(--focus)}}
@media(max-width:850px){.model-feature,.range-feature,.pdp-top{grid-template-columns:1fr;gap:28px}
.model-feature-photo,.range-feature-photo{max-width:520px}
.custom-list{grid-template-columns:1fr;gap:12px}
.pdp-section{margin-top:64px}}
@media(max-width:600px){.shop-head{padding-block:12px 32px}
.shop-head p{font-size:16px}
.shop-grid-two{grid-template-columns:repeat(2,minmax(0,1fr))}
.shop-help{flex-direction:column;align-items:flex-start;gap:12px;margin-top:44px}
.pdp-info{padding-top:0}
.pdp-summary{font-size:16px}
.spec-table{font-size:15px}
.spec-table th{width:40%}
.custom-list li{padding:18px}
.pdp-section{margin-top:48px;padding-top:32px}}

/* P020 product collections: homepage #products range grid and products.html catalog. Scoped to these blocks only. */
.collection-head{align-items:flex-end}
.collection-head h2{font-size:clamp(34px,3.2vw,48px);line-height:1.1}
.collection-head p{margin-top:18px;font-size:17px;line-height:1.65;max-width:56ch;color:var(--muted)}
.collection-head>.text-link{flex-shrink:0}
.collection-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:48px 28px}
.collection-card{display:flex;flex-direction:column;height:100%}
.collection-photo{display:block;background:var(--product-ground);aspect-ratio:4/3;overflow:hidden}
.collection-photo img{width:100%;height:100%;object-fit:contain;padding:6%;transition:transform 450ms var(--ease-out)}
.collection-name{display:block;font-size:21px;font-weight:500;letter-spacing:-.02em;line-height:1.2;margin:20px 0 0}
.collection-text{font-size:15px;line-height:1.6;color:var(--muted);margin-top:8px;max-width:42ch}
.collection-action{display:inline-flex;align-items:center;gap:12px;margin-top:auto;padding-top:14px;min-height:44px;font-size:15px;font-weight:500}
.collection-action svg{width:18px;height:18px;transition:transform 180ms var(--ease-out)}
.collection-card:focus-visible{outline-offset:6px}
.catalog-page{padding-bottom:var(--section-gap)}
.catalog-intro{padding-block:72px 40px}
.catalog-intro h1{font-size:clamp(40px,4.4vw,64px);letter-spacing:-.04em}
.catalog-intro>p{font-size:18px;line-height:1.65;color:var(--muted);margin-top:22px;max-width:62ch}
.catalog-nav{display:flex;flex-wrap:wrap;gap:8px 28px;list-style:none;margin:32px 0 0;padding:20px 0 0;border-top:1px solid #dfe2e0}
.catalog-nav a{display:inline-flex;align-items:center;min-height:44px;font-size:15px;font-weight:500;transition:color 160ms var(--ease-out)}
.catalog-section{padding-block:56px;border-top:1px solid #dfe2e0;scroll-margin-top:24px}
.catalog-section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:24px 64px;margin-bottom:36px}
.catalog-section-head h2{font-size:clamp(28px,2.6vw,38px);line-height:1.1}
.catalog-section-head p{font-size:16px;line-height:1.7;color:var(--muted)}
.model-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 32px}
.model-list-single{grid-template-columns:minmax(0,1fr)}
.model-list-single .model{grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:28px 56px;align-items:center}
.model{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:28px;align-items:start}
.model-photo,.range-photo{display:block;background:var(--product-ground);aspect-ratio:1/1;overflow:hidden}
.model-photo img,.range-photo img{width:100%;height:100%;object-fit:contain;padding:6%}
.model h3{font-size:21px;line-height:1.2}
.model-facts{margin:16px 0 0;display:grid;gap:8px}
.model-facts div{display:flex;gap:12px;font-size:15px}
.model-facts dt{color:var(--muted);min-width:72px}
.model-facts dd{margin:0;font-variant-numeric:tabular-nums}
.model-note{font-size:15px;line-height:1.65;margin-top:14px;color:var(--muted)}
.model .button,.range .button{margin-top:22px;min-height:48px;padding:12px 20px;gap:18px;font-size:15px}
.range{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:24px 64px;align-items:center}
.range-photo{max-width:440px}
.range-body h2{font-size:clamp(28px,2.6vw,38px);line-height:1.1;margin-bottom:18px}
.range-body p{font-size:16px;line-height:1.7;color:var(--muted)}
.catalog-help{border-top:1px solid #dfe2e0;padding-top:48px;display:flex;justify-content:space-between;align-items:center;gap:28px}
.catalog-help p{font-size:16px;line-height:1.65}
@media(hover:hover) and (pointer:fine){.collection-card:hover .collection-photo img{transform:scale(1.03)}
.collection-card:hover .collection-action svg{transform:translateX(4px)}
.catalog-nav a:hover{color:var(--focus)}}
@media(max-width:1100px){.collection-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 24px}
.model-list{grid-template-columns:1fr}
.model,.model-list-single .model{grid-template-columns:minmax(0,320px) minmax(0,1fr)}}
@media(max-width:850px){.collection-head{flex-direction:column;align-items:flex-start;gap:20px}
.catalog-section-head,.range{grid-template-columns:1fr}
.catalog-intro{padding-block:48px 28px}}
@media(max-width:600px){.collection-grid{gap:28px 14px}
.collection-photo{aspect-ratio:1/1}
.collection-photo img{padding:4%}
.collection-name{font-size:17px;margin-top:14px}
.collection-text{font-size:14px;line-height:1.55}
.collection-action{font-size:14px;gap:8px}
.collection-head p{font-size:15px}
.catalog-intro>p{font-size:16px}
.catalog-section{padding-block:40px}
.model,.model-list-single .model{grid-template-columns:minmax(0,140px) minmax(0,1fr);gap:18px}
.model h3{font-size:18px}
.model-facts div,.model-note{font-size:14px}
.model-facts dt{min-width:64px}
.catalog-help{flex-direction:column;align-items:flex-start;gap:12px}}
/* P020: short desktop/tablet description lines keep the right-column text clear of the fixed contact rail. */
@media(min-width:601px){.collection-text{max-width:28ch}}
@media(max-width:359px){.collection-grid{grid-template-columns:1fr}
.model,.model-list-single .model{grid-template-columns:1fr}
.model-photo{max-width:240px}}
.factory-facts{margin:0;display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:40px}
.factory-facts>div{display:flex;flex-direction:column-reverse;gap:12px}
.factory-facts dt{font-size:16px;color:var(--muted)}
.factory-facts dd{font-size:72px;line-height:1;letter-spacing:-.04em;margin:0;font-weight:500;font-variant-numeric:tabular-nums}
.factory-facts dd span{font-size:27px;letter-spacing:-.025em;font-weight:400}
.source-note{font-size:13px;color:var(--muted);margin:24px 0 36px}
.factory-photo{width:100%;position:relative;padding:0;display:block;background:var(--surface);overflow:hidden}
.factory-photo>img{width:100%;height:540px;object-fit:cover;object-position:center 55%;transition:opacity 220ms var(--ease-out)}
.photo-expand{position:absolute;right:24px;bottom:24px;display:flex;align-items:center;gap:10px;color:var(--ink);background:#fff;padding:12px 17px;font-size:14px}
.photo-expand svg{height:18px;width:18px}
.process-switch{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:16px}
.process-switch button{background:var(--surface);text-align:left;padding:23px;min-height:93px;transition:color 180ms var(--ease-out),background-color 180ms var(--ease-out)}
.process-switch span,.process-switch small{display:block}
.process-switch span{font-size:18px;font-weight:500}
.process-switch small{font-size:14px;color:var(--muted);margin-top:5px}
.process-switch button[aria-pressed=true]{background:var(--ink);color:#fff}
.process-switch button[aria-pressed=true] small{color:#d7ded8}
.stage-caption{margin-top:20px;font-size:15px;color:var(--muted);min-height:24px}
.factory-equipment{display:flex;justify-content:space-between;gap:32px;margin-top:36px;font-size:15px}
.factory-equipment>p{max-width:26ch;font-weight:500}
.factory-equipment ul{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:12px 48px;padding:0;margin:0;color:var(--muted)}
.services{display:grid;grid-template-columns:1fr 1.25fr;gap:90px;margin-top:90px}
.services h3{font-size:34px;line-height:1.15}
.services p{font-size:16px;line-height:1.75;color:var(--muted);margin:24px 0;max-width:42ch}
.service-options{margin:0;display:grid;grid-template-columns:1fr 1fr;gap:36px}
.service-options dt{font-size:20px;font-weight:500;letter-spacing:-.02em}
.service-options dd{font-size:15px;line-height:1.75;color:var(--muted);margin:12px 0 0;max-width:30ch}
.blog-page{min-height:70vh}
.blog-page h1{font-size:clamp(44px,5vw,72px);max-width:850px}
.blog-intro{font-size:21px;line-height:1.6;margin-block:32px 56px;max-width:56ch;color:var(--muted)}
.resource-links{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
.resource-links a{padding-block:28px;display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.resource-links strong{font-size:23px;font-weight:500}
.resource-links span{font-size:16px;color:var(--muted)}
.quality{background:var(--surface)}
.quality-layout{display:grid;grid-template-columns:1.12fr 1fr;gap:72px}
.testing-figure{margin:0;align-self:start}
.testing-figure>button{position:relative;width:100%;display:block;padding:0;background:#e4e7e2}
.testing-figure img{width:100%;height:460px;object-fit:cover;object-position:center}
.testing-figure figcaption{display:flex;flex-direction:column;gap:9px;margin-top:26px}
.testing-figure strong{font-size:23px;letter-spacing:-.02em;font-weight:500}
.testing-figure figcaption span{font-size:15px;color:var(--muted)}
.documents{display:flex;flex-direction:column;gap:12px}
.document{display:flex;align-items:center;gap:24px;padding:18px 20px;text-align:left;background:#fff;min-height:135px;transition:transform 160ms var(--ease-out),background-color 160ms var(--ease-out)}
.document>img{width:70px;height:100px;object-fit:contain}
.document>span{display:flex;flex:1;flex-direction:column;gap:3px}
.document strong{font-size:23px;font-weight:500;letter-spacing:-.02em}
.document>span>span{font-size:15px}
.document small{font-size:13px;color:var(--muted);margin-top:6px}
.document>svg{width:18px;height:18px}
.document-note{font-size:12px;line-height:1.8;color:var(--muted);margin-top:6px}
.partnership{display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center;margin-top:100px}
.partnership>img{width:100%;height:360px;object-fit:cover;object-position:center 45%}
.partnership h3{font-size:clamp(29px,2.65vw,40px);line-height:1.1;max-width:500px}
.partnership p{font-size:16px;color:var(--muted);margin:25px 0;max-width:45ch;line-height:1.75}
.buyer-questions>h2{align-self:start}
.buyer-questions{display:grid;grid-template-columns:1fr 1.3fr;gap:96px}
.questions details{padding-block:22px}
.questions details+details{margin-top:7px}
.questions summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:24px;font-size:20px;letter-spacing:-.02em;cursor:pointer;min-height:44px}
.questions summary::-webkit-details-marker{display:none}
.questions summary svg{width:19px;height:19px;transition:transform 160ms var(--ease-out)}
.questions details[open] summary svg{transform:rotate(45deg)}
.questions details p{font-size:16px;color:var(--muted);line-height:1.8;max-width:61ch;padding-top:20px;padding-right:30px}

.project{background:#e9ebed}
.project-layout{display:grid;grid-template-columns:1fr 1.1fr;gap:100px}
.project-intro>p{font-size:17px;line-height:1.8;margin-top:32px}
.project-location{display:flex;flex-direction:column;font-size:14px;gap:7px;margin-top:65px;color:var(--muted)}
.project-location strong{font-size:18px;color:var(--ink);font-weight:500}
label{display:flex;flex-direction:column;font-size:14px;gap:10px}
input,select,textarea{width:100%;border:0;border-radius:0;padding:14px 16px;background:#fff;color:var(--ink);font-size:16px;min-height:52px}
input::placeholder,textarea::placeholder{color:#686f6a;opacity:1}
textarea{resize:vertical;min-height:125px}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:24px}
form>.button{margin-top:28px}
.form-note{font-size:13px;color:var(--muted);margin-top:15px}
.brief-result{background:white;padding:32px}
.brief-result h3{font-size:30px}
.brief-result>p{font-size:14px;color:var(--muted);margin-top:14px}
.brief-result dl>div{margin-top:18px}
.brief-result dt{font-size:13px;color:var(--muted)}
.brief-result dd{margin:4px 0 0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:16px}
.brief-actions{display:flex;gap:24px;margin-top:26px;align-items:center;flex-wrap:wrap}
/* Site-wide footer (P015-P017): src/partials/footer.html. Deep graphite-green field, Sora headings, Hanken body; right inset keeps contact and Back to top clear of the fixed rail. */
.site-footer{--footer-bg:#263c36;--footer-title:#f4f2e9;--footer-text:#c5d1c7;--footer-accent:#d1dec2;--footer-line:#536a5d;background:var(--footer-bg);color:var(--footer-text);isolation:isolate;padding-block:64px 28px;font-size:15px;font-weight:450;line-height:1.6;letter-spacing:.005em}
.site-footer .wordmark{color:var(--footer-title)}
/* Source emblem is an opaque RGB PNG (black mark on white): invert it and screen it onto the footer field so only the mark remains, light on dark. */
.site-footer .brand-symbol{filter:invert(1);mix-blend-mode:screen}
.site-footer ::selection{background:var(--footer-accent);color:var(--footer-bg)}
.site-footer :focus-visible{outline-color:var(--footer-accent)}
.footer-main{display:grid;grid-template-columns:1.45fr 1.1fr 1.05fr .95fr 1.45fr;gap:clamp(20px,1.9vw,40px);align-items:start;padding-right:max(var(--page-gutter),164px)}
.footer-main>*{min-width:0}
.footer-brand .wordmark{font-size:clamp(28px,2.3vw,32px);font-weight:750;letter-spacing:.03em}
.footer-brand .brand-symbol{width:39px;height:53px}
.footer-brand p{margin-top:20px;max-width:32ch;font-size:15px;line-height:1.75;text-wrap:pretty;color:var(--footer-text)}
.footer-brand-link{display:inline-flex;align-items:center;gap:8px;min-height:36px;margin-top:10px;font-size:14px;font-weight:500;color:var(--footer-accent);transition:color 160ms var(--ease-out)}
.footer-brand-link svg{width:16px;height:16px;transition:transform 180ms var(--ease-out)}
.footer-heading{font-family:Sora,Hanken,sans-serif;font-size:16px;font-weight:600;line-height:1.4;letter-spacing:-.01em;min-height:2.8em;margin:6px 0 14px;text-wrap:balance;color:var(--footer-title)}
.site-footer ul{list-style:none;margin:0;padding:0}
.site-footer address{font-style:normal}
.footer-col li>a,.footer-col li>span{display:inline-flex;align-items:center;gap:8px;min-height:36px;font-size:15px;line-height:1.6;text-wrap:balance;color:var(--footer-text);transition:color 160ms var(--ease-out)}
.footer-col li>a.footer-project{color:var(--footer-accent);font-weight:500}
.footer-project svg{width:16px;height:16px;transition:transform 180ms var(--ease-out)}
.footer-email{overflow-wrap:anywhere}
.footer-col li.footer-note{font-size:13px;line-height:1.6;color:var(--footer-text);margin-top:2px;max-width:30ch}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:32px;padding-top:20px;border-top:1px solid var(--footer-line);padding-right:max(var(--page-gutter),164px)}
.footer-bottom p{font-size:13px;color:var(--footer-text)}
.back-top{display:inline-flex;align-items:center;gap:12px;min-height:32px;font-size:14px;color:var(--footer-accent)}
.back-top svg{transform:rotate(-90deg);height:18px;width:18px}
@media(hover:hover) and (pointer:fine){.footer-col li>a:hover,.footer-col li>a.footer-project:hover,.footer-brand-link:hover,.site-footer .back-top:hover{color:var(--footer-title);text-decoration:underline}
.footer-project:hover svg,.footer-brand-link:hover svg{transform:translateX(4px)}}
/* Five columns need ~1241px beside the fixed rail; below that the footer uses three columns (two between 601 and 760px) so no label is squeezed. */
@media(max-width:1240px){.footer-main{grid-template-columns:repeat(3,minmax(0,1fr))}
.footer-brand{grid-column:1/-1}
.footer-contact{grid-column:span 2}}
@media(min-width:601px) and (max-width:760px){.footer-main{grid-template-columns:repeat(2,minmax(0,1fr))}}

dialog{border:0;padding:28px;max-width:1000px;width:calc(100% - 48px);max-height:calc(100dvh - 48px);overflow:auto;color:var(--ink);background:#fff;/* taste-skill-ignore: native dialog is a floating overlay, not an element at rest. */box-shadow:0 20px 80px #0003}
dialog::backdrop{background:#161c19b8}
.viewer-head{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:20px}
.viewer-head h2{font-size:26px}
.close-viewer{background:var(--surface);height:44px;width:44px;flex-shrink:0;display:grid;place-items:center}
.viewer-image{background:var(--surface);display:flex;justify-content:center;padding:16px}
.viewer-image img{max-height:62dvh;width:auto;object-fit:contain}
#viewer-note{font-size:14px;color:var(--muted);margin:20px 0 8px;max-width:90ch}
body:has(dialog[open]){overflow:hidden}

@media(hover:hover) and (pointer:fine){.button:hover{background:#414b44}
.button:hover svg,.text-link:hover svg{transform:translateX(4px)}
.text-link:hover,.desktop-nav a:hover{color:var(--focus)}
.document:hover{background:#e9eeea}
.process-switch button:not([aria-pressed=true]):hover{background:#e4e8e3}
}

@media(min-width:1101px) and (prefers-reduced-motion:no-preference){.hero-visual{animation:lineup-settle 900ms var(--ease-out) both}
@keyframes lineup-settle{from{transform:translateY(10px)}to{transform:translateY(0)}}}

@media(max-width:1100px){:root{--section-gap:100px}
.desktop-nav{gap:22px;margin-right:0}
.header{gap:24px}




.about,.project-layout{gap:56px}
.quality-layout,.partnership{gap:36px}
.factory-facts dd{font-size:60px}
.process-switch button{padding:18px}
.process-switch span{font-size:16px}
.testing-figure img{height:440px}
.document{gap:16px;padding:14px}
.document>img{width:58px}
.document>span>span{font-size:14px}
}

@media(max-width:1100px){
.desktop-nav,.header-cta{display:none}
.menu-toggle{display:flex;align-items:center;gap:14px;background:transparent;font-size:15px;padding:12px 0 12px 12px;min-height:44px}
.menu-lines{width:22px;height:12px;position:relative}
.menu-lines:before,.menu-lines:after{content:"";position:absolute;left:0;right:0;height:2px;background:var(--ink);transition:transform 160ms var(--ease-out)}
.menu-lines:before{top:1px}
.menu-lines:after{bottom:1px}
.menu-toggle[aria-expanded=true] .menu-lines:before{transform:translateY(4px) rotate(45deg)}
.menu-toggle[aria-expanded=true] .menu-lines:after{transform:translateY(-4px) rotate(-45deg)}
#mobile-nav{position:absolute;left:0;right:0;top:88px;background:#fff;padding:20px var(--page-gutter) 30px;/* taste-skill-ignore: mobile navigation is a floating overlay. */box-shadow:0 24px 36px #00000012}
#mobile-nav a{display:block;font-size:22px;padding:14px 0}
#mobile-nav{max-height:calc(100dvh - 88px);overflow-y:auto;overscroll-behavior:contain}
.mobile-products-toggle{display:flex;width:100%;justify-content:space-between;font-size:22px;padding:14px 0;min-height:44px;text-align:left}
.mobile-products-toggle .nav-chevron{width:20px;height:20px}
.mobile-products-list{list-style:none;margin:0 0 8px;padding:0 0 0 16px;border-left:1px solid #e3e6e4}
#mobile-nav .mobile-products-list a{display:flex;align-items:center;min-height:44px;font-size:17px;padding:10px 0}
.hero-content{min-height:540px;gap:16px}
.hero h1{font-size:clamp(28px,3vw,33px)}
.hero-intro>p{font-size:16px}
.hero-visual{width:calc(100% + 40px);margin-left:-20px}
.hero-actions{gap:16px}
.hero-actions .button{gap:16px;padding-inline:18px;font-size:15px}
.hero-actions .text-link{font-size:15px}
.hero{padding-top:20px}
.services{gap:48px}
}

@media(max-width:850px){:root{--section-gap:80px;--page-gutter:32px;--font-display:44px}
.header{height:76px}
#mobile-nav{top:76px;max-height:calc(100dvh - 76px);overflow-y:auto}
.hero{padding-top:32px;background-position:62% center}
.hero-content{grid-template-columns:1fr;gap:28px;min-height:0;padding-right:var(--page-gutter)}
.hero-copy{padding:30px 24px}
.hero h1{font-size:clamp(44px,6.4vw,54px)}
.hero-intro{margin-top:26px}
.hero-intro>p{font-size:16px;max-width:65ch;margin-bottom:24px}
.hero-actions{gap:24px}
.hero-visual{width:calc(100% + var(--page-gutter)*2);margin:0 0 0 calc(-1*var(--page-gutter));aspect-ratio:1448/550}
.services{grid-template-columns:1fr;gap:36px;margin-top:64px}
.services p{max-width:60ch}
.service-options dd{max-width:40ch}
.resource-links{gap:24px}
.wordmark{font-size:29px}
.brand-symbol{width:31px;height:42px}
.hero-bottom{font-size:12px}
.about{gap:40px}
.about-copy .lead{font-size:22px}
.about-copy>p:not(.lead){font-size:16px}
.about-facts{gap:22px}
.about-facts span{font-size:12px}
.section-head{gap:40px;margin-bottom:42px}
.section-head>p{font-size:16px;max-width:290px}
.factory-facts{gap:25px}
.factory-facts dd{font-size:51px}
.factory-facts dd span{font-size:21px}
.factory-facts dt{font-size:14px}
.factory-photo>img{height:420px}
.process-switch{gap:8px}
.process-switch button{padding:14px 12px}
.process-switch small{font-size:12px}
.quality-layout{grid-template-columns:1fr;gap:40px}
.testing-figure img{height:430px}
.documents{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.document{flex-direction:column;align-items:flex-start;padding:22px 16px;position:relative;gap:16px}
.document>img{width:100%;height:160px}
.document>svg{position:absolute;right:14px;bottom:18px}
.document>span>span{font-size:13px}
.document small{padding-right:15px;font-size:12px}
.document-note{grid-column:1/-1;font-size:12px}
.partnership{gap:36px;margin-top:64px}
.partnership>img{height:320px}
.partnership h3{font-size:29px}
.buyer-questions{grid-template-columns:1fr;gap:30px}
.buyer-questions h2 br{display:none}
.questions summary{font-size:19px}
.project-layout{gap:35px;grid-template-columns:.85fr 1.15fr}
.form-row{grid-template-columns:1fr;gap:20px;margin-bottom:20px}
}

@media(max-width:600px){:root{--page-gutter:24px;--section-gap:72px;--font-display:40px}
html{scroll-padding-top:24px}
body{font-size:16px}
.header{height:72px}
.hero{padding-block:24px 16px}
.hero-content{padding-inline:16px}
.hero-copy{padding:26px 16px}
.hero h1{font-size:clamp(24px,7.5vw,40px);line-height:1.12;max-width:100%}
.hero-content{gap:24px}
.hero-intro{display:block;margin-top:24px}
.hero-intro>p{font-size:15px;line-height:1.7;max-width:42ch;margin-bottom:22px}
.hero-visual{width:calc(100% + 32px);margin:4px 0 0 -16px}
.hero-actions{gap:16px}
.hero-actions .text-link{font-size:14px;gap:8px}
.hero-bottom{gap:16px;font-size:12px;margin-top:16px}
.hero-bottom>span{max-width:150px}
.factory-equipment{flex-direction:column;gap:20px;font-size:14px}
.factory-equipment>p{max-width:none}
.factory-equipment ul{gap:12px 24px;font-size:13px}
.services h3{font-size:30px}
.services p{font-size:15px}
.service-options{gap:28px 24px}
.service-options dt{font-size:18px}
.service-options dd{font-size:14px}
.blog-intro{font-size:18px;margin-block:26px 40px}
.resource-links{grid-template-columns:1fr;gap:12px}
.wordmark{font-size:26px;gap:10px}
.brand-symbol{width:28px;height:38px}
#mobile-nav{top:72px;max-height:calc(100dvh - 72px)}




.hero .button{min-height:48px;padding:12px 20px;font-size:14px;gap:24px}





.hero-bottom>a{gap:8px}
.hero-bottom>a svg{height:16px;width:16px}
.about{grid-template-columns:1fr;gap:34px}
.about-heading .text-link{display:none}
.about-copy .lead{font-size:23px;max-width:29ch}
.about-copy>p:not(.lead){font-size:15px;line-height:1.75}
.about-facts{justify-content:space-between;gap:24px;margin-top:30px}
.about-facts span{font-size:12px}
.about-facts strong{font-size:17px}
.section-head{display:block;margin-bottom:34px}
.section-head>p{font-size:15px;max-width:40ch;margin-top:24px;line-height:1.65}
.collection-bottom{align-items:flex-start;flex-direction:column;gap:16px;margin-top:32px}
.collection-bottom>p{font-size:13px}
.text-link{font-size:14px}
.factory-facts{gap:24px;grid-template-columns:1fr 1fr}
.factory-facts>div:last-child{grid-column:1/-1;flex-direction:row-reverse;align-items:center;justify-content:flex-end;gap:16px}
.factory-facts>div:last-child dd{font-size:31px}
.factory-facts>div:last-child dd span{font-size:19px}
.factory-facts dd{font-size:47px;white-space:nowrap}
.factory-facts dd span{font-size:18px}
.factory-facts dt{font-size:12px}
.source-note{font-size:12px;margin:24px 0 28px}
.factory-photo>img{height:300px;object-position:center}
.photo-expand{right:14px;bottom:14px;padding:10px}
.photo-expand>span{display:none}
.process-switch{grid-template-columns:1fr 1fr;gap:9px;margin-top:12px}
.process-switch button{padding:16px;min-height:80px}
.process-switch span{font-size:15px}
.process-switch small{font-size:12px}
.stage-caption{font-size:13px;line-height:1.7;min-height:44px}




.testing-figure img{height:290px}
.testing-figure strong{font-size:22px}
.testing-figure figcaption span{font-size:13px}
.quality-layout{gap:32px}
.documents{display:flex;gap:10px}
.document{flex-direction:row;align-items:center;gap:20px;padding:16px;min-height:130px}
.document>img{width:60px;height:95px}
.document>span>span{font-size:13px}
.document>svg{position:static;width:16px;height:16px}
.document strong{font-size:23px}
.document small{font-size:12px}
.document-note{font-size:12px;margin-top:7px}
.partnership{grid-template-columns:1fr;gap:32px;margin-top:64px}
.partnership>img{height:280px}
.partnership h3{font-size:29px}
.partnership p{font-size:15px;margin-block:22px}
.buyer-questions h2 br{display:block}
.buyer-questions{gap:22px}
.questions details{padding-block:16px}
.questions summary{font-size:17px;gap:22px;line-height:1.4}
.questions details p{font-size:14px;padding-right:0}
.project-layout{grid-template-columns:1fr;gap:40px}
.project-intro>p{font-size:15px;margin-top:26px}
.project-location{margin-top:30px;font-size:13px}
.project-location strong{font-size:17px}
.form-row{gap:20px}
label{font-size:13px}
.form-note{font-size:12px}
.brief-result{padding:24px}
.brief-result h3{font-size:27px}
.site-footer{padding-top:48px}
.footer-main{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px 20px;padding-right:var(--page-gutter)}
.footer-contact{grid-column:1/-1}
.footer-brand .wordmark{font-size:29px}
.footer-brand .brand-symbol{width:32px;height:44px}
.footer-col li>a,.footer-col li>span,.footer-brand-link,.back-top{min-height:44px}
.footer-bottom{flex-direction:column;align-items:flex-start;gap:4px;padding-right:var(--page-gutter)}
.footer-bottom p{font-size:12px}
dialog{width:calc(100% - 24px);max-height:calc(100dvh - 24px);padding:18px}
.viewer-head h2{font-size:21px}
.viewer-image{padding:8px}
.viewer-image img{max-height:55dvh}
#viewer-note{font-size:12px}
}

@media(max-width:380px){
.footer-contact{grid-column:1/-1}
.footer-heading{font-size:15px}
/* Very narrow phones: let the two fact columns shrink and scale figures with the viewport (390px and wider unchanged). */
.factory-facts{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.factory-facts>div{min-width:0}
.factory-facts dd{font-size:clamp(30px,10vw,38px)}
.factory-facts dd span{font-size:clamp(14px,4.7vw,17px)}
}

/* Site-wide inquiry rail (P009/P010): fixed bottom-right, labels always visible; fixed, so it never shifts page content. */
.inquiry-dock{position:fixed;right:max(20px,env(safe-area-inset-right));bottom:max(36px,env(safe-area-inset-bottom));top:auto;transform:none;z-index:30;display:flex;flex-direction:column;gap:10px}
.inquiry-dock-link{display:flex;align-items:center;gap:6px;width:124px;height:44px;padding:0 10px;border-radius:22px;background:var(--paper);color:var(--ink);font-size:13px;font-weight:600;line-height:1.2;/* taste-skill-ignore: floating control needs lift above content. */box-shadow:0 3px 10px #1d232014,0 1px 2px #1d232014;transition:background-color 160ms var(--ease-out)}
.inquiry-dock-link svg{width:20px;height:20px;flex-shrink:0}
.inquiry-dock-form{background:#264b68;color:#fff}
.inquiry-dock-whatsapp svg{color:#147d43}
.inquiry-dock-email svg{color:#006d77}
.inquiry-dock-label{white-space:nowrap}
.inquiry-dock-link:focus-visible{outline-offset:3px}
@media(hover:hover) and (pointer:fine){.inquiry-dock-link:hover{background:#eef1f0}
.inquiry-dock-form:hover{background:#1d3b52}}
@media(pointer:coarse) and (min-width:601px){.inquiry-dock-link{height:auto;min-height:44px}}
body:has(#mobile-nav:not([hidden])) .inquiry-dock,body:has(dialog[open]) .inquiry-dock{display:none}
@media(max-width:600px){/* Compact bottom-right column (no full-width bar): three 116x48 pills, gap 10 = 164px tall, 12px from the right and 24px from the bottom. */
.inquiry-dock{left:auto;top:auto;transform:none;right:max(12px,env(safe-area-inset-right));bottom:max(24px,env(safe-area-inset-bottom));width:auto;flex-direction:column;gap:10px}
.inquiry-dock-link{width:116px;height:48px;min-height:48px;padding:0 9px;gap:6px;border-radius:24px;font-size:12px}
.inquiry-dock-link svg{width:20px;height:20px;flex-shrink:0}
.inquiry-dock-link:focus-visible{outline-offset:2px}
/* Rail stays visible; reserve its height (24 + 164 + 8 = 196) so focused fields, the submit button and the footer scroll clear of it. */
html{scroll-padding-bottom:calc(196px + env(safe-area-inset-bottom))}
input,select,textarea,button,.brief-result{scroll-margin-bottom:calc(196px + env(safe-area-inset-bottom))}
.project{padding-bottom:calc(var(--section-gap) + 180px + env(safe-area-inset-bottom))}
.footer{padding-bottom:calc(48px + 180px + env(safe-area-inset-bottom))}}

.seo-reading{max-width:72ch;line-height:1.7;margin:0 0 1em}
.seo-context-links{display:flex;flex-wrap:wrap;gap:18px 32px;margin:28px 0 0}
.shop-page .pdp-section .custom-list p{line-height:1.65}

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

}

/* P031: category overview/comparison, focus-model gallery and local inquiry brief. Scoped .p031-* only. */
.p031-sr{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.p031-overview{display:grid;gap:0;max-width:860px;margin:0;font-size:16px}
.p031-overview>div{display:grid;grid-template-columns:34% 1fr;padding:14px 0;border-bottom:1px solid #e3e6e4}
.p031-overview dt{color:var(--muted);font-weight:500;padding-right:24px}
.p031-overview dd{margin:0}
.p031-gap{color:var(--muted);font-size:14px}
.p031-table-wrap{overflow-x:auto;max-width:100%}
.p031-table-wrap:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.p031-compare{min-width:560px;table-layout:fixed;width:100%}
.p031-compare .p031-c-model{width:18%}
.p031-compare .p031-c-product{width:42%}
.p031-compare .p031-c-cap,.p031-compare .p031-c-mat{width:20%}
.p031-compare th,.p031-compare td{overflow-wrap:anywhere;padding-right:16px}
.p031-compare th:last-child,.p031-compare td:last-child{padding-right:0}
.p031-table-note{font-size:14px;color:var(--muted);margin-top:12px;max-width:62ch}
.p031-compare thead th{font-size:14px;color:var(--muted);font-weight:500}
.p031-compare th[scope="row"]{width:auto;color:var(--ink)}
.p031-compare a{text-decoration:underline;text-underline-offset:3px}
.p031-sub{font-size:18px;margin-top:28px}
.p031-related{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:12px}
.p031-related li{display:flex;flex-wrap:wrap;gap:4px 16px;align-items:baseline}
.p031-related span{font-size:15px;color:var(--muted)}
.p031-steps{margin:18px 0 0;padding-left:22px;max-width:62ch;font-size:16px;line-height:1.7;color:var(--muted)}
.p031-gallery{margin-top:16px}
.p031-gallery-label{font-size:14px;color:var(--muted)}
.p031-thumbs{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.p031-thumb{display:block;width:72px;height:72px;padding:0;border:1px solid #d9dddb;background:var(--product-ground);cursor:pointer}
.p031-thumb img{width:100%;height:100%;object-fit:contain}
.p031-thumb:not([data-main]){background:#fff}
.pdp-media.p031-white{background:#fff}
.p031-thumb[aria-pressed="true"]{border:2px solid var(--ink)}
.p031-thumb:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.p031-caption{font-size:13px;line-height:1.6;color:var(--muted);margin-top:10px;max-width:52ch}
.p031-inquiry form{max-width:860px;margin-top:20px}
.p031-inquiry input,.p031-inquiry select,.p031-inquiry textarea{border:1px solid #cfd4d2}
.p031-inquiry input[readonly]{background:var(--surface);color:var(--muted)}
.p031-inquiry form>label{margin-bottom:24px}
.p031-intent{border:0;margin:0 0 24px;padding:0;display:flex;flex-wrap:wrap;gap:12px 28px;font-size:15px}
.p031-intent legend{font-size:14px;margin-bottom:10px;padding:0}
.p031-intent label{flex-direction:row;align-items:center;gap:8px;font-size:16px}
.p031-intent input{width:18px;min-height:18px;height:18px;padding:0}
.p031-fixed{display:grid;grid-template-columns:2fr 1fr 1fr;gap:20px;margin-bottom:24px}
.p031-brief{max-width:860px;margin-top:20px;background:var(--surface);padding:28px}
.p031-brief h3{font-size:22px}
.p031-brief textarea{margin-top:16px;font-size:15px;border:1px solid #cfd4d2;white-space:pre-wrap}
.p031-linkbtn{background:none;border:0;padding:0;font:inherit;cursor:pointer}
.p031-inquiry .form-status{min-height:1.5em;font-size:14px;color:#8a2a1f;margin-top:4px}
@media(max-width:850px){.p031-fixed{grid-template-columns:1fr}.p031-overview>div{grid-template-columns:1fr;gap:4px}}

/* P032 category pagination: static numbered links after the product grid; flat graphite, no animation. */
.product-list{scroll-margin-top:24px}
.pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin-top:56px;max-width:100%}
.pager-list{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;list-style:none;margin:0;padding:0}
.pager-num,.pager-step{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;padding-inline:12px;border:1px solid #cfd4d2;font-size:16px;font-weight:500;font-variant-numeric:tabular-nums;color:var(--ink)}
.pager-num[aria-current="page"]{background:var(--ink);border-color:var(--ink);color:#fff}
.pager-prev svg{transform:scaleX(-1)}
.pager-step svg{width:18px;height:18px}
.pager-void{visibility:hidden}
.pager a:focus-visible{outline-offset:2px}
@media(hover:hover) and (pointer:fine){.pager a:not([aria-current]):hover{border-color:var(--ink)}}
@media(max-width:600px){.pager{margin-top:40px;gap:6px;flex-wrap:nowrap}.pager-list{gap:6px;flex:0 1 auto;min-width:0}.pager-step{flex:none}
.pager-list:has(>li:nth-child(5)){display:grid;grid-template-columns:repeat(3,44px)}}
@media(max-width:360px){.pager-list:has(>li:nth-child(4)){display:grid;grid-template-columns:repeat(2,44px)}.pager-list:has(>li:nth-child(5)){grid-template-columns:repeat(3,44px)}}
/* P037c contact page (contact.html), scoped to .iq-* */
.iq-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:64px;align-items:start;padding-bottom:96px}
.iq-preview{font-size:14px;line-height:1.6;color:var(--ink);background:var(--surface);padding:14px 18px;margin-bottom:28px;max-width:62ch}
.iq-context{font-size:16px;font-weight:600;margin-bottom:24px}
.iq-form{background:var(--surface);padding:32px}
.iq-form label{margin-bottom:0}
.iq-form>label{margin-bottom:24px}
.iq-req,.iq-opt{color:var(--muted);font-weight:400}
.iq-intent{border:0;padding:0;margin:0 0 24px;display:flex;gap:28px;flex-wrap:wrap}
.iq-intent legend{font-size:14px;margin-bottom:12px}
.iq-radio{flex-direction:row;align-items:center;gap:10px;font-size:16px}
.iq-radio input{width:20px;min-height:20px;height:20px;accent-color:var(--focus)}
.iq-error{color:#9b2c1f;font-size:14px;margin-top:4px}
.iq-hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.iq-status{font-size:16px;line-height:1.6;background:var(--surface);padding:16px 20px;margin-bottom:24px;max-width:62ch}
.iq-status[data-kind="error"]{color:#9b2c1f}
.iq-brief{background:var(--surface);padding:32px}
.iq-brief h2{font-size:26px}
.iq-brief-note{font-size:14px;color:var(--muted);margin-top:12px}
.iq-brief textarea{margin-top:18px;border:1px solid #cfd4d2;font-size:16px;white-space:pre-wrap}
.iq-side h2{font-size:20px;margin-bottom:14px}
.iq-side h2+*{margin-bottom:32px}
.iq-side p{margin-bottom:10px;font-size:16px}
.iq-side p+h2{margin-top:32px}
@media (max-width:900px){.iq-layout{grid-template-columns:1fr;gap:48px}.iq-form,.iq-brief{padding:22px 18px}}
