/* Shared art direction. Loaded after page styles on every generated route. */
:root { --on-ink-soft: #c5cbc3; --on-ink-label: #c5cbc3; --line-light: #d3d8cf; --header-h: 80px; --side: clamp(20px,4.5vw,64px); }
.site-header,.site-header[data-scrolled="true"] { background: #191b19; backdrop-filter: none; border-bottom: 1px solid #ffffff18; }
.brand img { width: 108px; height: 45px; }
.scroll-progress { display:none; }
.section-title,.page-hero h1,.stage h3,.range-card h3,.card h3,.form-card h3,.luma-page h1,.luma-page h2,.luma-page h3 { text-transform:none; font-weight:600; letter-spacing:-.035em; line-height:1.1; overflow-wrap:break-word; }
.section-title { font-size:clamp(36px,4.4vw,60px); }
.page-hero h1 { font-size:clamp(38px,5vw,72px); }
.section-line,.kicker,.luma-pl-eyebrow { font-family:var(--body); font-size:11px; font-weight:600; letter-spacing:.15em; }
.section-line::before { width:24px; }
.button,.text-link,.hero-phone .number,.nav-phone,.luma-pl-button,.more { font-family:var(--body); font-weight:600; text-transform:none; letter-spacing:0; }
.button,.luma-pl-button { min-height:50px; border-radius:2px; font-size:15px; box-shadow:none; }
.button:hover,.luma-pl-button:hover { transform:none; }
.button:hover .arrow,.text-link:hover .arrow { transform:translateX(3px); }
.text-link { padding-block:10px; }
.grid-bg,.page-hero { background-image:none; }
.framed::after { display:none; }
.section { padding-block:clamp(64px,8vw,112px); }
.section-head { margin-bottom:56px; }
.hero { isolation:isolate; }
.hero-grid { display:flex; align-items:center; min-height:min(820px,calc(100svh - var(--header-h))); padding-block:72px 98px; }
.hero-stage { position:relative; z-index:2; width:100%; }
.hero-brand { display:flex; align-items:center; gap:18px; margin:30px 0 20px; color:#fff; font-size:clamp(62px,7vw,104px); font-weight:700; letter-spacing:-.06em; line-height:1; }
.hero-brand span { padding-left:18px; border-left:1px solid #ffffff50; font-size:12px; letter-spacing:.12em; text-transform:uppercase; font-weight:400; }
.hero h1 { max-width:15ch; font-size:clamp(46px,5.4vw,78px); font-weight:600; line-height:1.04; letter-spacing:-.045em; text-transform:none; }
.hero-copy { max-width:42ch; margin:26px 0 32px; color:#e0e5dd; font-size:19px; line-height:1.65; }
.hero .section-line { color:#e0e5dd; }
.hero .section-line::before { background:var(--orange); }
.hero-media { position:absolute; inset:0; z-index:-2; overflow:hidden; }
.hero-media .framed { width:100%; height:100%; aspect-ratio:auto; background:#191b19; }
.hero-media picture { display:block; width:100%; height:100%; }
.hero-media img { width:100%; height:100%; object-fit:cover; object-position:center 45%; filter:saturate(.55); }
.hero::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,rgba(14,20,17,.97) 0%,rgba(14,20,17,.86) 32%,rgba(14,20,17,.25) 76%),linear-gradient(0deg,rgba(14,20,17,.55),transparent 40%); pointer-events:none; }
.hero-phone { gap:0; }
.hero-phone .ring,.hero-phone .label { display:none; }
.hero-phone .number { font-size:16px; line-height:1.5; }
.hero-phone { padding:14px 0; border-bottom:1px solid #ffffff50; }
.hero > .shell:not(.hero-grid) { position:absolute; bottom:28px; left:50%; transform:translateX(-50%); }
.hero .scroll-cue { padding:0; font-size:11px; letter-spacing:.08em; color:#dde3db; }
.scroll-cue .rail { height:22px; }
.scroll-cue .rail::after { animation:none!important; }
html.motion .hero-stage > * { opacity:1; animation:studio-enter .55s var(--ease) both; animation-delay:var(--stage,0ms); }
@keyframes studio-enter { from { transform:translateY(12px); } to { transform:none; } }
.brandband { padding:26px 0; background:var(--paper); color:var(--text); border-bottom:1px solid var(--line-light); }
.brandband .shell { justify-content:space-between; }
.brandband .caption { color:var(--muted); font-size:10px; }
.brandband li { color:var(--text); text-transform:none; font-size:20px; font-weight:600; letter-spacing:-.02em; }
.range-grid { display:block; }
.range-card { display:grid; grid-template-columns:1fr 1.35fr 1.4fr auto; align-items:center; gap:24px; padding:30px 0; border:0; border-top:1px solid var(--line-light); background:transparent; text-decoration:none; }
.range-card:last-child { border-bottom:1px solid var(--line-light); }
.range-card:hover { background:#eaece680; border-top-color:var(--line-light); }
.range-card .kicker { margin:0; font-size:10px; color:var(--muted); letter-spacing:.06em; }
.range-card h3 { margin:0; font-size:28px; }
.range-card li { padding:0; font-size:14px; line-height:1.6; }
.range-card li::before { display:none; }
.range-action { font-size:12px; font-weight:600; white-space:nowrap; }
.range-action span { display:inline-block; margin-left:12px; font-size:22px; transition:transform .2s; }
.range-card:hover .range-action span { transform:translate(2px,-2px); }
.range-foot { border:0; }
.split { grid-template-columns:minmax(0, .95fr) minmax(0,1.35fr); gap:80px; }
.stage-list { gap:0; }
.stage { padding:32px 0; grid-template-columns:42px minmax(0,1fr); border:0; border-top:1px solid #c9d0c3; background:transparent; }
.stage:first-child { padding-top:0; border-top:0; }
.stage:hover { background:transparent; }
.stage-number { font-size:18px; line-height:1.6; font-weight:400; color:var(--muted); }
.stage h3 { font-size:27px; }
.voices { background:var(--paper); }
.voice { background:transparent; border:0; border-top:1px solid var(--line-light); padding:30px 0 0; }
.voice blockquote { font-size:clamp(21px,2.2vw,29px); line-height:1.5; font-weight:400; }
.voice .avatar { display:none; }
.voice .who { font-size:15px; text-transform:none; font-weight:600; letter-spacing:0; }
.private-grid { gap:80px; align-items:center; }
.point-grid { gap:24px; }
.point dt { font-family:var(--body); font-weight:600; letter-spacing:.03em; font-size:12px; }
.private-grid .framed { background:#eaece6; }
.private-grid .framed img { object-fit:contain; }
.wiki .card { background:transparent; padding:28px 0; border:0; border-top:1px solid var(--line-light); }
.wiki .card:hover { background:transparent; transform:none; border-top-color:var(--orange-ink); }
.card-grid { gap:40px; }
.card h3 { font-size:27px; }
.contact { background:#222622; }
.contact .section-title { font-size:clamp(40px,5vw,68px); }
.form-card { background:transparent; border:1px solid #ffffff25; }
.site-footer { background:#191b19; }
/* Observer opt-in: JavaScript failure never hides the document. */
html.motion .reveal { opacity:1; transform:none; transition:opacity .5s var(--ease),transform .5s var(--ease); }
html.motion .reveal.reveal-ready:not(.is-visible) { opacity:0; transform:translateY(16px); }
.luma-private-label { --luma-bg:var(--ink); --luma-bg-soft:#222622; --luma-bg-card:#262c26; --luma-bg-card-2:#222622; --luma-text-muted:#c5cbc3; --luma-sand:#e2e8dc; --luma-radius:2px; --luma-shadow:none; --luma-max:1152px; }
.luma-pl-container { width:min(var(--luma-max),calc(100% - 2 * var(--side))); }
.luma-pl-hero { background:none; padding-block:90px; }
.luma-pl-hero h1 { font-size:clamp(48px,5.7vw,82px); }
.luma-pl-hero h1 span { color:#fff; }
.luma-pl-lead { max-width:43ch; font-size:19px; }
.luma-pl-button-primary { background:var(--orange-cta); }
.luma-pl-hero-image { border-radius:2px; box-shadow:none; height:480px; min-height:0; }
.luma-pl-hero-media { min-height:0; }
.luma-pl-section { padding-block:88px; }
.luma-page h2 { font-size:clamp(32px,3.5vw,48px); }
.luma-page h3 { font-size:25px; }
.luma-page [class*="card"],.luma-page details,.luma-page [class*="callout"],.luma-page [class*="cta"] { border-radius:2px; box-shadow:none; }
.page-hero,.luma-pl-hero { border-bottom:1px solid #ffffff18; }
@media (max-width:1060px) {
 .range-card { grid-template-columns:.8fr 1.3fr 1.5fr; } .range-action { grid-column:2 / -1; }
 .split,.private-grid { gap:40px; }
 .hero-grid { min-height:720px; }
 .nav-links { gap:18px; }
}
@media (max-width:760px) {
 :root { --header-h:68px; }
 .brand img { width:96px; height:40px; }
 .hero-grid { min-height:calc(100svh - var(--header-h)); padding-block:44px 86px; align-items:center; }
 .hero-brand { font-size:64px; margin:25px 0 20px; }
 .hero-brand span { font-size:10px; }
 .hero h1 { font-size:clamp(39px,9.9vw,58px); letter-spacing:-.045em; }
 .hero-copy { font-size:17px; margin:24px 0; }
 .hero-media img { object-position:62% center; }
 .hero::after { background:linear-gradient(90deg,#101812ed,#10181290),linear-gradient(0deg,#10181290,transparent); }
 .hero .section-line { font-size:9px; letter-spacing:.08em; }
 .hero-actions { gap:8px 20px; }
 .hero-actions .button { width:auto; }
 .hero-phone .number { font-size:14px; }
 .hero > .shell:not(.hero-grid) { bottom:24px; }
 .section-head { display:block; margin-bottom:34px; }
 .section-head .head-aside { margin-top:24px; }
 .brandband .shell { gap:12px; } .brandband ul { gap:16px; } .brandband li { font-size:16px; }
 .range-card { grid-template-columns:1fr; gap:12px; padding:26px 0; }
 .range-card h3 { font-size:28px; } .range-action { grid-column:auto; margin-top:3px; }
 .range-card ul { display:none; }
 .split,.private-grid { grid-template-columns:1fr; gap:32px; }
 .sticky-copy { position:static; }
 .stage { grid-template-columns:30px minmax(0,1fr); gap:12px; }
 .stage h3 { font-size:24px; }
 .voice-grid,.card-grid { grid-template-columns:1fr; gap:32px; }
 .voice blockquote { font-size:23px; }
 .luma-pl-hero { padding-block:48px; }
 .luma-pl-hero-grid { grid-template-columns:1fr; }
 .luma-pl-hero h1 { font-size:48px; }
 .luma-pl-hero-image { height:280px; }
 .luma-pl-section { padding-block:60px; }
 .luma-pl-button { font-size:14px; padding-inline:16px; }
 .page-hero-grid { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce) {
 html.motion .hero-stage > *,html.motion .reveal.reveal-ready:not(.is-visible) { animation:none; opacity:1; transform:none; }
}

.voice-grid { gap:56px; }
.cta h2 { text-transform:none; font-weight:600; letter-spacing:-.03em; line-height:1.15; }
@media(max-width:760px){.voice-grid{gap:32px}}

.contact,.contact .section-title { color:#f5f3ee; }
.contact .lead,.contact .section-line { color:#c5cbc3; }
.contact .fact { background:transparent; border-bottom:1px solid #ffffff25; padding-inline:0; }
.contact .fact .fact-label { color:#c5cbc3; }
.contact .fact .fact-value,.contact .fact address { color:#f5f3ee; }
.contact a.fact:hover { background:#ffffff08; }
.contact a.fact:hover .fact-value { color:#fff; }

.hero-image.is-materials-banner { aspect-ratio:735 / 181; align-self:center; background:transparent; }
.hero-image.is-materials-banner img { object-fit:contain; padding:0; }
.hero-image.is-materials-banner::after { display:none; }
.content img[src*='werkzeugsortiment.png'] { width:100%; height:auto; aspect-ratio:735 / 181; }
