/* Public visual owner. Shared by all eight locales; admin has its own stylesheet. */
:root {
  --paper:#fff; --soft:#f5f5f3; --ink:#202020; --muted:#61615e;
  --accent:#242424; --accent-hover:#404040; --line:#deded9;
  --graphite:#171717; --on-dark:#fafaf8; --muted-dark:#c2c2bc;
  --danger:#a52a2a; --success:#176843; --radius:4px;
  --shadow:0 12px 32px #2020200c; --max:1200px; --section:48px; --gap:24px;
  --motion:180ms; --weave:repeating-linear-gradient(45deg,#ffffff06 0 2px,transparent 2px 6px);
  font-family:'Helvetica Neue',Arial,system-ui,sans-serif;
  color:var(--ink); line-height:1.65; font-size:16px;
}
* { box-sizing:border-box; }
body { margin:0; background:var(--paper); }
a { color:inherit; text-decoration:none; }
a:hover { color:var(--accent); }
button,input,select,textarea { font:inherit; }
button,a,input,select,textarea,summary { outline-offset:4px; }
:focus-visible { outline:3px solid var(--accent); }
button,summary { cursor:pointer; }
a,button,summary { -webkit-tap-highlight-color:#20202020; touch-action:manipulation; }
img { max-width:100%; height:auto; display:block; }
h1,h2,h3,p,figure { margin:0; }
h1,h2,h3 { line-height:1.12; letter-spacing:-.035em; text-wrap:balance; overflow-wrap:break-word; }
h1 { font-size:clamp(2.5rem,4.5vw,4.5rem); font-weight:500; white-space:pre-line; }
h2 { font-size:clamp(2rem,3.2vw,3rem); font-weight:500; }
h3 { font-size:1.2rem; font-weight:600; }
p { margin-block:18px; color:var(--muted); }
small { font-size:.8125rem; color:var(--muted); }
.shell { max-width:calc(var(--max) + 64px); margin-inline:auto; padding-inline:32px; }
.narrow { max-width:850px; }
.section { padding-block:var(--section); }
/* Adjacent white sections share one interval instead of stacking two paddings. */
main > .section.shell + .section.shell:not(.factory-section):not(.factory-showcase) { padding-block-start:0; }
.soft { background:var(--soft); }
.lead { font-size:1.125rem; line-height:1.75; max-width:610px; }
.eyebrow { display:block; margin-bottom:14px; color:var(--accent); font-size:.75rem; font-weight:600; letter-spacing:.08em; }
.eyebrow i { display:inline-block; width:7px; height:7px; background:var(--accent); margin-inline-end:10px; }
.muted { color:var(--muted); }
/* Navigation remains in document flow so it never covers focused content. */
.header { border-bottom:1px solid var(--line); background:var(--paper); position:relative; z-index:20; }
.header-inner { display:flex; align-items:center; gap:24px; min-height:80px; }
.wordmark { display:flex; align-items:center; gap:12px; flex-shrink:0; font-size:.75rem; font-weight:700; letter-spacing:.09em; }
.wordmark small { display:block; font-size:.6875rem; font-weight:400; letter-spacing:.02em; margin-top:2px; }
.mark { font-size:2rem; letter-spacing:-.16em; margin-inline-end:8px; }
.mark span { color:var(--accent); }
nav { display:flex; align-items:center; gap:22px; margin-inline-start:auto; font-size:.8125rem; font-weight:500; }
nav a { display:flex; align-items:center; min-height:44px; white-space:nowrap; }
nav a[aria-current] { color:var(--accent); text-decoration:underline; text-underline-offset:8px; text-decoration-thickness:2px; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:28px; min-height:48px; padding:15px 22px; background:var(--accent); color:#fff; border:1px solid var(--accent); border-radius:var(--radius); font-weight:500; font-size:.9375rem; line-height:1.5; transition:background var(--motion); }
.button:hover { background:var(--accent-hover); color:#fff; }
.button:disabled { opacity:.6; cursor:wait; }
.header-quote { font-size:.8125rem; padding:12px 15px; gap:14px; max-width:190px; }
.languages { position:relative; font-size:.8125rem; flex-shrink:0; }
.languages summary { list-style:none; display:flex; gap:8px; align-items:center; min-height:44px; }
.languages summary::-webkit-details-marker { display:none; }
.languages svg { fill:none; stroke:currentColor; stroke-width:1.3; }
.languages>div { position:absolute; inset-inline-end:0; top:50px; min-width:180px; display:grid; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow); padding:8px; }
.languages a { padding:10px 12px; min-height:44px; text-align:start; }
.languages a[aria-current],.languages a:hover { background:var(--soft); color:var(--accent); }
.menu-toggle,.nav-quote { display:none; }
/* Homepage: authorized reference photograph with localized HTML copy. */
.hero { display:grid; grid-template-columns:1fr 1fr; gap:64px; padding-block:64px; align-items:center; }
.hero-copy { min-width:0; }
.hero h1 { max-width:590px; }
.hero .lead { font-size:1.0625rem; max-width:470px; margin-top:26px; }
.actions { display:flex; gap:24px; align-items:center; margin-top:24px; }
.text-link { display:inline-flex; align-items:center; gap:16px; min-height:44px; font-size:.9375rem; color:var(--ink); font-weight:500; border-bottom:1px solid var(--line); padding-block:8px; }
.text-link:hover { border-color:var(--accent); }
.hero-caption { display:flex; gap:18px; border-top:1px solid var(--line); padding-top:16px; margin-top:24px; color:var(--muted); font-size:.8125rem; line-height:1.65; max-width:470px; }
.hero-caption>span { color:var(--accent); font-size:1.5rem; line-height:1; }
.hero-art { background:var(--graphite); color:var(--on-dark); min-width:0; border-radius:var(--radius); overflow:hidden; }
.art-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:24px 28px 0; font-size:.8125rem; color:var(--muted-dark); }
.art-heading>span:last-child { letter-spacing:.16em; color:var(--on-dark); }
.hero-illustration { position:relative; }
.hero-illustration img { width:100%; max-height:420px; object-fit:contain; }
.hero-illustration figcaption { padding:0 28px 22px; font-size:.75rem; color:var(--muted-dark); }
.art-label { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:18px 28px; border-top:1px solid #ffffff25; font-size:.875rem; color:var(--on-dark); }
.art-label:hover { background:#ffffff08; color:#fff; }
.art-arrow { display:grid; place-items:center; width:32px; height:32px; background:var(--accent); border-radius:50%; font-size:1.125rem; }
.category-strip { border-block:1px solid var(--line); background:var(--soft); }
.category-strip .shell { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); }
.category-strip a { display:flex; align-items:center; gap:12px; min-height:44px; padding-block:14px; padding-inline-end:20px; font-size:.8125rem; font-weight:500; }
.category-strip a>span { margin-inline-start:auto; color:var(--accent); }
.category-strip i { width:5px; height:5px; background:var(--accent); flex:0 0 5px; }
/* Shared product diagrams retain the conceptual-image disclosure. */
.diagram { background:#edf0f2; height:235px; overflow:hidden; position:relative; }
.diagram figcaption { position:absolute; bottom:14px; inset-inline:18px; font-size:.6875rem; color:var(--muted); line-height:1.4; }
.blueprint { height:100%; position:relative; background-image:linear-gradient(#20202005 1px,transparent 1px),linear-gradient(90deg,#20202005 1px,transparent 1px); background-size:32px 32px; }
.cross { position:absolute; font-weight:300; color:#748692; }
.c1 { top:12px; left:16px; }.c2 { bottom:44px; right:16px; }
.part { position:absolute; width:70%; height:40%; top:20%; left:15%; transform:rotate(-28deg); }
.part i { display:block; position:absolute; height:28%; width:100%; background:var(--weave),linear-gradient(180deg,#203039,#526773 22%,#121d25 65%,#394b55); border:1px solid #8a9ca7; border-radius:50px; box-shadow:8px 12px 14px #0002; }
.part i::after { content:''; position:absolute; right:-1px; top:-1px; width:12%; height:100%; background:#101b23; border:3px solid #71828a; border-radius:50%; transform:rotate(8deg); }
.part i:nth-child(1) { top:0; }.part i:nth-child(2) { top:35%; width:92%; }.part i:nth-child(3) { top:70%; width:83%; }
.measure { position:absolute; background:#8da2b580; }
.m1 { height:1px; width:70%; top:16%; left:15%; transform:rotate(-28deg); }.m2 { width:1px; height:50%; top:10%; right:14%; }
.diagram-1 .part { transform:rotate(-24deg) skewX(15deg); height:48%; top:17%; }
.diagram-1 .part i { height:70%; border-radius:0; top:0; background:var(--weave),linear-gradient(120deg,#111b22,#42525e); }
.diagram-1 .part i::after { display:none; }.diagram-1 .part i:nth-child(2) { top:10px; left:12px; width:100%; }.diagram-1 .part i:nth-child(3) { top:20px; left:24px; width:100%; }
.diagram-2 .part i:nth-child(1) { width:55%; left:0; top:25%; }.diagram-2 .part i:nth-child(2) { width:43%; left:45%; top:29%; height:20%; }.diagram-2 .part i:nth-child(3) { width:26%; left:81%; top:32%; height:14%; }
.diagram-3 .part { transform:rotate(-25deg); top:17%; left:24%; height:50%; width:50%; }
.diagram-3 .part i { width:100%; height:100%; border-radius:25px 5px 40px 5px; border:12px solid #263944; background:transparent; box-shadow:5px 8px 0 #8b9da9; }
.diagram-3 .part i:nth-child(n+2),.diagram-3 .part i::after { display:none; }
/* Catalogue and shared section primitives. */
.section-heading { display:flex; align-items:end; justify-content:space-between; gap:32px; margin-bottom:24px; }
.section-heading>div { max-width:640px; }.section-heading>p { max-width:340px; font-size:1rem; margin:0; }
.product-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.product-card { display:flex; flex-direction:column; border:1px solid var(--line); background:var(--paper); border-radius:var(--radius); transition:border-color var(--motion),box-shadow var(--motion); min-width:0; }
.product-card:hover { border-color:var(--accent); box-shadow:var(--shadow); color:var(--ink); }
.card-copy { padding:18px; display:flex; flex:1; flex-direction:column; }
.card-number { font-size:.75rem; color:var(--muted); }
.card-copy h3 { margin-top:12px; font-size:1.25rem; line-height:1.25; }
.card-copy p { font-size:.9375rem; margin-block:12px 16px; line-height:1.6; }
.card-link { display:flex; justify-content:space-between; align-items:center; gap:12px; border-top:1px solid var(--line); padding-top:12px; margin-top:auto; font-size:.875rem; }
.card-link b { display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; width:28px; height:28px; color:var(--accent); }
.product-card:hover .card-link b { background:var(--accent); border-color:var(--accent); color:#fff; }
.product-image { width:100%; object-fit:contain; }
.product-card>.product-image { height:235px; background:var(--soft); }
.split { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.requirement-list>div { display:flex; align-items:center; gap:20px; border-bottom:1px solid var(--line); padding:12px 0; }
.requirement-list>div:first-child { border-top:1px solid var(--line); }
.requirement-list span { font-size:.8125rem; color:var(--accent); }
.requirement-list p { font-size:1rem; flex:1; margin-block:12px; }
.requirement-list b { font-weight:400; }
.oem-section { background:var(--graphite); color:var(--on-dark); }
.oem-section p { color:var(--muted-dark); }
.oem-section .eyebrow,.oem-section .requirement-list span { color:#deded8; }
.oem-section .text-link { color:#fff; border-color:#ffffff40; }
.oem-section .requirement-list>div { border-color:#ffffff25; }
.oem-section :focus-visible,.callout :focus-visible,footer :focus-visible,.hero-art :focus-visible { outline-color:#deded8; }
.application-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); border-top:1px solid var(--line); border-inline-start:1px solid var(--line); }
.application-grid a { padding:12px 16px; border-bottom:1px solid var(--line); border-inline-end:1px solid var(--line); min-height:80px; display:flex; flex-direction:column; justify-content:center; gap:6px; }
.application-grid a:hover { background:var(--soft); }
.application-grid span,.application-grid b { color:var(--accent); font-size:.8125rem; }
.application-grid h3 { font-size:1.125rem; margin:0; overflow-wrap:anywhere; line-height:1.3; }
/* Split one section interval across the application-to-factory divider. */
main > .section:has(> .application-grid) { padding-block-end:calc(var(--section) / 2); }
main > .section:has(> .application-grid) + .factory-section { padding-block-start:calc(var(--section) / 2); }
.factory-section { display:grid; grid-template-columns:1.2fr 1fr; gap:48px; align-items:center; border-top:1px solid var(--line); }
.quality-section { padding-block:clamp(20px,2.2vw,28px); }
.quality-copy { max-width:1040px; }
.quality-copy .lead { max-width:none; margin-block:12px 0; line-height:1.65; }
.factory-image { background:var(--soft); overflow:hidden; border-radius:var(--radius); }
.factory-image img { width:100%; aspect-ratio:1.5; object-fit:cover; }
.steps { display:grid; grid-template-columns:repeat(4,1fr); gap:24px; margin-top:24px; }
.steps>div { border-top:1px solid var(--line); padding-top:16px; }
.steps span { display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; width:40px; height:40px; color:var(--accent); font-size:.8125rem; }
.steps h3 { margin-top:14px; font-size:1.125rem; line-height:1.4; }
.process-note { font-size:.9375rem; max-width:700px; margin-top:20px; }
.callout { background:var(--accent); padding-block:40px; color:#fff; }
.callout .shell { display:flex; align-items:center; justify-content:space-between; gap:40px; }
.callout .eyebrow,.callout p { color:#e5e5df; }.callout h2 { max-width:700px; }.callout p { max-width:650px; }
.white { background:#fff; color:var(--accent); border-color:#fff; flex-shrink:0; }.white:hover { background:#efefec; color:var(--accent); }
footer { background:var(--graphite); color:#fff; padding-top:40px; }
.footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:70px; }
.footer-title { font-size:1.25rem; letter-spacing:.08em; }
.footer-title p { font-size:.9375rem; letter-spacing:0; max-width:350px; color:var(--muted-dark); }
.footer-grid strong { font-size:.875rem; display:block; margin-bottom:18px; }
.footer-grid a { display:block; font-size:.875rem; color:var(--muted-dark); padding-block:7px; }
.footer-grid a:hover { color:#fff; }
.footer-bottom { margin-top:24px; padding-block:16px; border-top:1px solid #ffffff25; font-size:.8125rem; color:var(--muted-dark); overflow-wrap:anywhere; }
/* Inner pages use the same type, layout, card and action tokens. */
/* Shared inner-page photograph. Content determines height for long translations. */
.page-banner { position:relative; isolation:isolate; overflow:hidden; background:var(--graphite); color:var(--on-dark); }
.page-banner-image { position:absolute; inset-block:0; inset-inline-end:0; width:60%; height:100%; max-width:none; object-fit:cover; object-position:center 58%; z-index:-2; }
.page-banner-tubes .page-banner-image { width:100%; object-position:center; }
.page-banner::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,#171717 20%,rgba(23,23,23,.9) 40%,rgba(23,23,23,.56) 65%,rgba(23,23,23,.12)); }
[dir="rtl"] .page-banner::before { background:linear-gradient(270deg,#171717 20%,rgba(23,23,23,.9) 40%,rgba(23,23,23,.56) 65%,rgba(23,23,23,.12)); }
.page-banner-content { min-height:260px; padding-block:24px 32px; display:flex; flex-direction:column; justify-content:center; }
.page-banner h1 { max-width:760px; font-size:clamp(2.2rem,4vw,3.5rem); }
.page-banner .lead { max-width:660px; margin-block:16px 0; font-size:1.0625rem; color:var(--on-dark); }
.page-banner .breadcrumb { color:var(--on-dark); padding-block:0 16px; max-width:760px; }
.page-banner a:hover { color:#fff; text-decoration:underline; }
.page-banner :focus-visible { outline-color:#fff; }
.page-banner-compact .page-banner-content { min-height:150px; justify-content:flex-end; padding-block:24px; }
.page-banner-compact .breadcrumb { padding:0; }
@media(max-width:760px) {
  .page-banner-image { width:100%; }
  .page-banner::before,[dir="rtl"] .page-banner::before { background:rgba(12,12,12,.72); }
  .page-banner-content { min-height:220px; padding-block:20px 24px; }
  .page-banner h1 { font-size:2.25rem; }
  .page-banner .lead { font-size:1rem; line-height:1.6; margin-top:12px; }
  .page-banner .breadcrumb { padding-bottom:12px; }
  .page-banner-compact .page-banner-content { min-height:112px; padding-block:20px; }
  .page-banner-compact .breadcrumb { padding:0; }
}
.page-heading { background:var(--soft); padding-block:20px 28px; border-bottom:1px solid var(--line); }
.page-heading h1 { font-size:clamp(2.2rem,4vw,3.8rem); }.page-heading .lead { max-width:760px; }
.breadcrumb { padding-top:20px; padding-bottom:20px; font-size:.8125rem; color:var(--muted); overflow-wrap:anywhere; }
.breadcrumb a { display:inline-block; padding-block:6px; }.page-heading .breadcrumb { padding-top:0; }
.application-row { display:grid; grid-template-columns:80px 1.5fr 1fr; gap:32px; padding-block:28px; border-bottom:1px solid var(--line); }
.large-number { font-size:2.5rem; font-weight:300; color:#8194a4; }
.application-products { display:grid; gap:12px; font-size:.9375rem; align-content:center; }.application-products a { padding-block:8px; }
.resource-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:30px; }
.resource-card { border:1px solid var(--line); padding:28px; border-radius:var(--radius); }.resource-card:hover { background:var(--soft); }.resource-card h2 { font-size:1.8rem; }
.detail-grid { display:grid; grid-template-columns:1fr 1fr; gap:40px; padding-top:16px; }
.detail-grid>div { min-width:0; }.detail-grid h1 { font-size:2.75rem; }.detail-grid .diagram { height:450px; position:sticky; top:30px; border-radius:var(--radius); }
.prose { margin-top:20px; white-space:pre-line; }.detail-grid.narrow { display:block; }
.quote-grid { display:grid; grid-template-columns:1fr 1.7fr; gap:48px; }
.quote-grid aside h2 { font-size:1.75rem; }.quote-grid aside p,.quote-grid aside li { font-size:1rem; }.quote-grid aside ol { padding-inline-start:20px; color:var(--muted); }.quote-grid aside li { margin-block:18px; }
.quote-note { padding:24px; background:var(--soft); margin-top:30px; border:1px solid var(--line); border-radius:var(--radius); }.quote-note strong { font-size:1rem; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
label { display:block; font-size:.9375rem; font-weight:500; margin-bottom:20px; }
input,select,textarea { display:block; width:100%; min-width:0; padding:13px; border:1px solid #a8b6c1; background:#fff; color:var(--ink); border-radius:var(--radius); margin-top:8px; font-size:1rem; }
input:hover,select:hover,textarea:hover { border-color:var(--muted); }input[type=email] { direction:ltr; text-align:start; }
textarea { resize:vertical; line-height:1.65; }.required { color:var(--accent); }
.checkbox { display:flex; align-items:start; gap:12px; font-weight:400; font-size:.9375rem; margin-top:24px; }.checkbox input { width:20px; height:20px; flex:0 0 20px; margin-top:3px; accent-color:var(--accent); }.checkbox a { color:var(--accent); text-decoration:underline; }
.upload-label { padding:24px; border:1px dashed #8195a5; background:var(--soft); border-radius:var(--radius); }.upload-label input { border:0; padding:8px 0; background:none; }.upload-label small { display:block; font-weight:400; }
.file-picker { position:relative; cursor:pointer; margin-bottom:8px; }.file-picker:focus-within { outline:3px solid var(--accent); outline-offset:4px; }
.upload-label .visually-hidden { position:absolute; inset-inline-start:0; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); }
#selected-files { display:block; font-size:.875rem; margin-block:10px; overflow-wrap:anywhere; }
.honeypot { position:absolute; inset-inline-start:0; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
#form-status:not(:empty),.notice { padding:18px; background:#f0f0ec; border-inline-start:3px solid var(--accent); margin-bottom:20px; font-size:1rem; }
.notice.error,#form-status.error { background:#fff0ed; border-color:var(--danger); color:var(--danger); }#form-status.success { background:#eef7f1; color:var(--success); border-color:var(--success); }
.table-scroll { overflow-x:auto; }table { border-collapse:collapse; width:100%; font-size:.9375rem; }td,th { border-bottom:1px solid var(--line); padding:15px; text-align:start; vertical-align:top; }th { background:var(--soft); font-weight:600; }
.skip { position:absolute; inset-inline-start:12px; top:-100px; z-index:100; background:#fff; padding:12px; }.skip:focus { top:8px; }
/* Collapse navigation before translated labels compete with the brand and CTA. */
@media(max-width:1250px) {
  .header-inner { gap:16px; }nav { gap:14px; font-size:.75rem; }.header-quote { display:none; }
  .hero { gap:40px; }.hero h1 { font-size:3.7rem; }
}
@media(max-width:1100px) {
  :root { --section:40px; }
  .shell { padding-inline:24px; }.header-inner { min-height:72px; flex-wrap:wrap; }
  .menu-toggle { display:flex; align-items:center; gap:10px; min-height:44px; margin-inline-start:auto; border:0; background:none; font-size:.875rem; padding:8px; }
  nav { display:none; order:5; flex-basis:100%; flex-direction:column; align-items:stretch; margin:0; padding-bottom:20px; font-size:1rem; gap:0; }
  nav.open { display:flex; }nav a { padding:12px; border-top:1px solid var(--line); white-space:normal; }.nav-quote { display:block; color:var(--accent); }
  .hero { gap:28px; padding-block:48px; }.hero h1 { font-size:3.1rem; }.hero .lead { font-size:1rem; }.hero-caption { margin-top:28px; }
  .actions { flex-wrap:wrap; gap:16px; }.product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
  .split,.factory-section { gap:40px; }.application-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.section-heading { align-items:start; }
  .application-row { grid-template-columns:50px 1fr; }.application-products { grid-column:2; }
  .quote-grid { gap:35px; grid-template-columns:1fr 1.5fr; }.detail-grid { gap:30px; }.detail-grid h1 { font-size:2.2rem; }.footer-grid { gap:30px; }
}
@media(max-width:760px) {
  .hero { grid-template-columns:1fr; gap:24px; }.hero-copy { max-width:600px; }.hero h1 { font-size:clamp(2.5rem,7vw,3.5rem); }
  .hero .lead { max-width:560px; }.hero-caption { display:none; }.hero-art { max-width:560px; width:100%; justify-self:center; }
  .hero-illustration img { max-height:360px; object-fit:contain; }.art-heading { padding-top:20px; }
  .category-strip .shell { grid-template-columns:1fr 1fr; }.category-strip a { padding-block:12px; }
  .section-heading { display:block; }.section-heading p { margin-top:16px; max-width:600px; }
  .split,.factory-section,.quote-grid,.detail-grid { grid-template-columns:1fr; gap:24px; }
  .quote-grid aside { border-bottom:1px solid var(--line); padding-bottom:25px; }.quote-grid aside ol,.quote-note { display:none; }
  .detail-grid .diagram { height:340px; position:static; }.callout .shell { display:block; }.callout .button { margin-top:16px; }
  .resource-grid { grid-template-columns:1fr; }.footer-grid { grid-template-columns:1fr 1fr; }.footer-grid>div:first-child { grid-column:1/-1; }
}
@media(max-width:600px) {
  :root { --section:32px; }.shell { padding-inline:20px; }.header-inner { gap:10px; min-height:68px; }.wordmark { font-size:.6875rem; gap:8px; }.wordmark small { font-size:.625rem; }.mark { font-size:1.75rem; margin-inline-end:4px; }
  .languages summary { gap:6px; }.languages summary>svg { display:none; }.menu-toggle { font-size:.8125rem; gap:6px; padding-inline:4px; }
  .hero { padding-block:36px 40px; }.hero h1 { font-size:2.625rem; line-height:1.12; }.hero .eyebrow { font-size:.6875rem; letter-spacing:.04em; margin-bottom:20px; }
  .hero .lead { font-size:1rem; }.actions { gap:12px 20px; margin-top:26px; }.actions .button { padding-inline:18px; gap:20px; }
  .art-heading { padding-inline:20px; }.hero-illustration figcaption { padding:0 20px 18px; font-size:.6875rem; }.art-label { padding:14px 20px; }
  .category-strip a { font-size:.8125rem; gap:8px; padding-inline-end:16px; }.category-strip a>span { display:none; }
  .section-heading h2 { font-size:2.125rem; }.product-grid { grid-template-columns:1fr; gap:24px; }
  .product-card .diagram,.product-card>.product-image { height:255px; }.card-copy { padding:20px; }.card-copy h3 { font-size:1.375rem; }.card-copy p { font-size:1rem; }.diagram figcaption { font-size:.75rem; }
  .application-grid { grid-template-columns:1fr; }.application-grid a { min-height:56px; display:grid; grid-template-columns:22px minmax(0,1fr); gap:16px; align-items:center; padding:12px 16px; }.application-grid h3 { margin:0; }
  .steps { grid-template-columns:1fr 1fr; gap:28px; }.steps h3 { font-size:1rem; }.page-heading { padding-bottom:24px; }.page-heading h1 { font-size:2.5rem; }
  .form-grid { grid-template-columns:1fr; gap:0; }.resource-card { padding:26px; }.application-row { gap:20px; grid-template-columns:36px 1fr; }.application-row h2 { font-size:1.75rem; }.large-number { font-size:2rem; }
  .detail-grid .diagram { height:300px; }.detail-grid h1 { font-size:2.3rem; }.eyebrow { font-size:.75rem; }.footer-bottom { font-size:.75rem; }.callout { padding-block:32px; }
}
@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; }
}

/* Catalog photographs retain their full shape and remain usable without JS. */
.detail-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; align-content:start; }
.gallery-image { display:block; border:1px solid var(--line,#d9dfe5); background:#fff; border-radius:12px; overflow:hidden; }
.gallery-image:first-child { grid-column:1 / -1; }
button.gallery-image { padding:0; width:100%; cursor:zoom-in; }
.lightbox-open { overflow:hidden; }
.product-lightbox { position:fixed; inset:0; width:100%; max-width:none; height:100%; height:100dvh; max-height:none; margin:0; padding:64px 76px; border:0; background:transparent; color:var(--on-dark); }
.product-lightbox[open] { display:flex; align-items:center; justify-content:center; }
.product-lightbox::backdrop { background:#171717ed; }
.product-lightbox button { color:inherit; border:0; padding:0; background:transparent; }
.product-lightbox :focus-visible { outline-color:var(--on-dark); }
.product-lightbox .lightbox-image { display:block; min-width:0; cursor:zoom-out; }
.lightbox-image img { width:auto; height:auto; max-width:min(100%,1000px); max-height:calc(100dvh - 128px); margin-inline:auto; object-fit:contain; background:var(--paper); }
.lightbox-arrow { position:absolute; top:50%; transform:translateY(-50%); width:52px; height:64px; display:grid; place-items:center; opacity:.75; }
.lightbox-arrow:hover { opacity:1; }
.lightbox-arrow[hidden] { display:none; }
.lightbox-arrow svg { width:32px; height:32px; fill:none; stroke:currentColor; stroke-width:1.5; }
.lightbox-previous { left:12px; }
.lightbox-next { right:12px; }
.lightbox-close { position:absolute; top:8px; right:16px; width:48px; height:48px; font-size:36px; line-height:1; }
.lightbox-count { position:absolute; bottom:16px; inset-inline:0; text-align:center; color:var(--muted-dark); pointer-events:none; }
@media(max-width:600px) {
 .product-lightbox { padding:64px 12px; }
 .product-lightbox .lightbox-arrow { width:44px; height:56px; background:#17171799; border-radius:var(--radius); }
 .lightbox-previous { left:0; }
 .lightbox-next { right:0; }
 .lightbox-arrow svg { width:26px; height:26px; }
}
.gallery-image .product-image { width:100%; height:auto; max-height:520px; aspect-ratio:1; object-fit:contain; }
.product-card .product-image { object-fit:contain; background:#fff; }
.category-strip .shell { flex-wrap:wrap; }
@media(max-width:600px) { .detail-gallery { gap:10px; } .category-strip .shell { display:grid; grid-template-columns:1fr; } }

/* Directory: a category rail beside the results, with native mobile disclosure. */
.catalog-heading { padding-block:24px 32px; }
.catalog-heading .breadcrumb { padding-bottom:20px; }
.catalog-heading .eyebrow { margin-bottom:14px; }
.catalog-heading h1 { font-size:clamp(2.5rem,3.5vw,3.25rem); }
.catalog-heading .lead { margin-bottom:0; max-width:780px; }
.catalog-layout { display:grid; grid-template-columns:248px minmax(0,1fr); gap:40px; padding-block:28px 48px; align-items:start; }
.catalog-sidebar { border-inline-end:1px solid var(--line); padding-inline-end:24px; }
.catalog-sidebar h2 { margin:0 12px 20px; font-size:.8125rem; line-height:1.5; letter-spacing:.02em; color:var(--muted); font-weight:600; }
.catalog-links { display:grid; gap:8px; }
.catalog-links a { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:48px; padding:12px; border-radius:var(--radius); font-size:.875rem; line-height:1.45; transition:background var(--motion),color var(--motion); }
.catalog-links a>span { min-width:0; overflow-wrap:anywhere; }
.catalog-links a>b { flex-shrink:0; color:var(--muted); font-size:.75rem; font-weight:500; font-variant-numeric:tabular-nums; }
.catalog-links a:hover,.catalog-links a:active { background:var(--soft); }
.catalog-links a.catalog-current { color:var(--on-dark); background:var(--accent); font-weight:600; }
.catalog-links a.catalog-current>b { color:inherit; }
.catalog-results { min-width:0; }
.catalog-toolbar { display:flex; align-items:center; min-height:40px; margin-bottom:20px; padding-bottom:16px; border-bottom:1px solid var(--line); }
.catalog-toolbar h2 { display:flex; align-items:center; gap:12px; font-size:1.125rem; line-height:1.5; letter-spacing:0; }
.catalog-toolbar h2>span { padding:2px 9px; border-radius:var(--radius); background:var(--soft); color:var(--muted); font-size:.75rem; font-weight:500; }
.catalog-results .product-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.catalog-results .card-copy { padding:20px; }
.catalog-mobile { display:none; }
@media(max-width:1100px) {
  .catalog-layout { grid-template-columns:224px minmax(0,1fr); gap:24px; }
  .catalog-sidebar { padding-inline-end:16px; }
  .catalog-results .product-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:760px) {
  .catalog-layout { display:block; padding-block:20px 32px; }
  .catalog-sidebar { display:none; }
  .catalog-heading { padding-block:20px 28px; }
  .catalog-heading .breadcrumb { padding-bottom:16px; }
  .catalog-heading .eyebrow { margin-bottom:12px; }
  .catalog-heading .lead { font-size:1rem; line-height:1.6; margin-top:14px; }
  .catalog-mobile { display:block; margin-bottom:24px; border:1px solid var(--line); border-radius:var(--radius); }
  .catalog-mobile summary { display:flex; align-items:center; gap:12px; min-height:56px; padding:14px 16px; font-size:.9375rem; font-weight:600; list-style:none; }
  .catalog-mobile summary::-webkit-details-marker { display:none; }
  .catalog-mobile summary .catalog-count { margin-inline-start:auto; font-size:.75rem; font-weight:500; color:var(--muted); }
  .catalog-mobile summary svg { flex-shrink:0; transition:transform var(--motion); }
  .catalog-mobile[open] summary svg { transform:rotate(180deg); }
  .catalog-mobile[open] summary { border-bottom:1px solid var(--line); }
  .catalog-mobile .catalog-links { padding:8px; }
  .catalog-toolbar { margin-bottom:20px; }
}
@media(max-width:600px) {
  .catalog-results .product-grid { grid-template-columns:1fr; }
}

/* Reference hero: the original photograph is unchanged; shading is CSS only. */
.hero-photo { display:block; position:relative; isolation:isolate; min-height:520px; padding-block:48px; background:var(--graphite); color:var(--on-dark); overflow:hidden; }
.hero-photo .hero-background { position:absolute; inset:0; width:100%; height:100%; max-width:none; object-fit:cover; object-position:center; z-index:-2; }
.hero-photo::before { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(12,12,12,.82),rgba(12,12,12,.62) 52%,rgba(12,12,12,.18)); }
[dir="rtl"] .hero-photo::before { background:linear-gradient(270deg,rgba(12,12,12,.82),rgba(12,12,12,.62) 52%,rgba(12,12,12,.18)); }
.hero-photo .hero-inner { width:100%; }
.hero-photo .hero-copy { max-width:760px; }
.hero-photo h1 { max-width:760px; }
.hero-photo .lead { color:var(--on-dark); max-width:640px; }
.hero-photo .eyebrow,.hero-photo .hero-caption { color:var(--on-dark); }
.hero-photo .hero-caption { max-width:640px; border-color:#ffffff45; }
.hero-photo .hero-caption>span { color:#deded8; }
.hero-photo .eyebrow i { background:#deded8; }
.hero-photo .text-link { color:var(--on-dark); border-color:#ffffff70; }
.hero-photo .text-link:hover { color:#fff; border-color:#fff; }
.hero-photo .button { background:var(--paper); border-color:var(--paper); color:var(--ink); }
.hero-photo .button:hover { background:var(--line); border-color:var(--line); }
.hero-photo :focus-visible { outline-color:#fff; }
@media(max-width:760px) {
  .hero-photo { min-height:0; padding-block:32px; }
  .hero-photo::before,[dir="rtl"] .hero-photo::before { background:rgba(12,12,12,.7); }
  .hero-photo .hero-background { object-position:58% center; }
}

/* Authorized reference imagery; neutral surfaces keep the material in focus. */
.category-showcase { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; }
.category-photo { position:relative; min-width:0; aspect-ratio:3/4; display:flex; align-items:flex-end; padding:24px; overflow:hidden; border-radius:var(--radius); background:var(--graphite); color:var(--on-dark); isolation:isolate; }
.category-photo>img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.category-photo::before { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 30%,#000c); z-index:-1; }
.category-photo h3 { font-size:1.4rem; line-height:1.25; font-weight:500; letter-spacing:-.02em; }
.category-photo>span { margin-inline-start:auto; padding-inline-start:12px; font-size:1.25rem; }
.category-photo:hover { color:#fff; box-shadow:var(--shadow); }
.category-photo:focus-visible { outline-color:var(--accent); }
.showcase-link { margin-top:16px; }
.factory-showcase { border-top:1px solid var(--line); }
.factory-showcase .section-heading { align-items:start; }
.factory-showcase .section-heading p { max-width:540px; }
.factory-gallery { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.factory-gallery a { display:block; border-radius:var(--radius); overflow:hidden; background:var(--soft); }
.factory-gallery img { width:100%; height:auto; aspect-ratio:8/5; object-fit:cover; }
@media(max-width:1100px) {
  .category-showcase { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .category-photo { aspect-ratio:4/3; }
}
@media(max-width:760px) {
  .factory-gallery { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
}
@media(max-width:600px) {
  .category-showcase { gap:12px; }
  .category-photo { aspect-ratio:3/4; padding:16px; }
  .category-photo h3 { font-size:1rem; overflow-wrap:anywhere; }
  .category-photo>span { display:none; }
  .factory-gallery { grid-template-columns:1fr; gap:16px; }
}
