/* Shared header, motion and supporting typography. */
:root{--header-offset:120px}
html{scroll-padding-top:var(--header-offset)}
.site-top{position:sticky;top:0;z-index:30;max-height:calc(100svh - 64px);overflow:auto}
.site-top .header{position:relative;top:auto;z-index:auto}
.notice{background:#f7bc59;color:var(--ink);border-bottom:3px solid #b96a16;font-size:1rem;line-height:1.5;padding-block:16px}
.notice .wrap{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:12px 18px}
.notice-icon{width:28px;height:28px;align-self:start;margin-top:2px}
.notice-copy{min-width:0}.notice-copy strong{display:block;font-size:1.125rem;font-weight:800;margin-bottom:3px}
.notice-copy span{display:block;overflow-wrap:anywhere}
.notice-period{font-size:1rem;font-weight:750;white-space:nowrap;border:1px solid #12120f55;padding:8px 12px}
@media(max-width:800px){.notice{padding-block:12px}.notice .wrap{grid-template-columns:24px minmax(0,1fr);gap:8px 12px}.notice-icon{width:24px;height:24px;grid-row:1/3}.notice-copy strong{font-size:1.0625rem}.notice-copy span{font-size:.9375rem}.notice-period{grid-column:2;justify-self:start;font-size:.9375rem;white-space:normal;padding:4px 9px}}
.header-inner{min-height:104px;gap:30px}
.brand{font-size:1.75rem;gap:14px}
.brand img{width:64px;height:64px}
.brand small{font-size:.75rem;letter-spacing:.07em;margin-top:8px}
#navigation{font-size:1rem;gap:28px}
#navigation .button.small{font-size:1rem;min-height:52px;padding:15px 20px;gap:24px}
#anfrage{scroll-margin-top:0}
.footer-grid{font-size:1rem;line-height:1.7}
.footer-grid h2{font-size:.875rem;letter-spacing:.07em}
.footer-bottom{font-size:.875rem;line-height:1.6}
.footer-bottom{gap:20px;flex-wrap:wrap}
.footer-bottom>div{flex-wrap:wrap;row-gap:12px}
.button,.mobile-contact a:last-child{background:#cf2c1f}
.mobile-contact{grid-template-columns:1fr 1.6fr}
.mobile-contact a{font-size:.875rem;padding-inline:8px}
.mobile-selection-count{font-size:.75rem;min-width:24px;height:24px}
.services-section .eyebrow{color:#b42b1f}
.prose{font-size:1rem}
@media(min-width:1101px){.hero{min-height:clamp(700px,calc(100svh - 104px),850px)}}
@media(max-width:1100px){
 :root{--header-offset:102px}
 .header-inner{min-height:86px;flex-wrap:wrap;padding-block:12px;gap:0;justify-content:space-between}
 .brand{font-size:1.5rem;gap:12px}.brand img{width:54px;height:54px}.brand small{font-size:.6875rem;letter-spacing:.05em}
 .menu{background:transparent;border:1px solid var(--line);padding:12px 15px;min-width:82px;min-height:48px;font-size:1rem;gap:10px}
 .js .menu{display:flex;align-items:center;justify-content:space-between}
 #navigation{width:100%;padding-block:12px;flex-wrap:wrap;gap:20px}
 .js #navigation{display:none}.js #navigation.open{display:flex;flex-direction:column;align-items:stretch;gap:0}
 #navigation>a:not(.button){padding:16px 4px;border-top:1px solid var(--line)}
 #navigation>.button{margin-top:8px}
}
@media(max-width:800px){.hero{min-height:calc(100svh - 86px)}}
@media(max-width:520px){
 :root{--header-offset:96px}
 .header-inner{min-height:80px;padding-block:11px}
 .brand{font-size:1.3rem;gap:9px;min-width:0}.brand img{width:44px;height:44px}.brand small{font-size:.625rem;letter-spacing:.015em;margin-top:6px}
 .menu{font-size:.875rem;min-width:68px;padding:11px 9px;min-height:46px}
 .hero{min-height:calc(100svh - 80px)}
}
@media(max-width:360px){.brand small{display:none}.brand{font-size:1.22rem}.brand img{width:42px;height:42px}}
html:not(.js) .header{position:relative}
html:not(.js) .site-top{position:relative;max-height:none;overflow:visible}
@media print{.site-top{position:static;max-height:none;overflow:visible}.notice{background:#fff;color:#000;border:2px solid #000}}
@media(prefers-reduced-motion:no-preference){
 .js [data-reveal]{transition:opacity .55s ease,transform .55s cubic-bezier(.2,.7,.2,1)}
 .js [data-reveal-order="1"]{transition-delay:.07s}.js [data-reveal-order="2"]{transition-delay:.14s}
 .js .hero [data-hero-enter]{animation:content-in .65s cubic-bezier(.2,.7,.2,1) both}
 .js .hero-meta[data-hero-enter]{animation-delay:.12s}.js .hero-bottom[data-hero-enter]{animation-delay:.3s}.js .hero-scroll[data-hero-enter]{animation-delay:.4s}
 .drawing-component{transition:opacity .18s ease}
 @keyframes content-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
}
@media(prefers-reduced-motion:reduce){.js [data-reveal]{opacity:1;transform:none;transition:none}.js .hero [data-hero-enter]{animation:none}}

/* Informational cookie notice: no optional processing or third-party requests. */
.cookie-notice{position:fixed;left:24px;bottom:24px;z-index:60;width:min(510px,calc(100% - 48px));padding:25px 28px;background:var(--paper);color:var(--ink);border:1px solid #aaa79a;border-top:4px solid var(--red);box-shadow:0 12px 50px #0003;max-height:calc(100svh - 160px);overflow:auto}
.cookie-notice[hidden]{display:none}
.cookie-notice .eyebrow,.cookie-dialog .eyebrow{font-size:.875rem;letter-spacing:.06em;color:#b42b1f;margin:0 0 12px}
.cookie-notice h2{font-size:2.6rem;margin:0 0 12px}
.cookie-notice>.eyebrow{padding-right:40px}
.cookie-notice>p:not(.eyebrow),.cookie-dialog>p:not(.eyebrow){font-size:1rem;line-height:1.65;margin-bottom:18px}
.cookie-notice>.cookie-memory{font-size:.875rem;color:var(--muted);line-height:1.6}
.cookie-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px 22px}
.cookie-actions .button{font-size:1rem;gap:28px;min-height:48px;padding:12px 18px}
.cookie-secondary{font:650 1rem/1.4 var(--body);background:transparent;border:0;border-bottom:1px solid currentColor;color:var(--ink);min-height:44px;padding:8px 0;cursor:pointer}
.cookie-dialog{position:fixed;width:min(680px,calc(100% - 32px));max-height:calc(100svh - 40px);padding:32px;border:1px solid #aaa79a;border-top:4px solid var(--red);background:var(--paper);color:var(--ink);overflow:auto}
.cookie-dialog::backdrop{background:#12120fb8}
.cookie-dialog h2{font-size:3.5rem;margin:0 0 20px}
.cookie-dialog>.eyebrow{padding-right:35px}
.cookie-close{position:absolute;right:12px;top:12px;width:44px;height:44px;border:1px solid var(--line);background:transparent;color:var(--ink);font-size:1.8rem;cursor:pointer}
.cookie-facts{margin:24px 0}
.cookie-facts>div{padding:18px 0;border-block-start:1px solid var(--line)}
.cookie-facts dt{font-size:1rem;font-weight:750;margin-bottom:8px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.cookie-facts dt>span{font-size:.875rem;font-weight:550;color:var(--muted)}
.cookie-facts dd{font-size:.9375rem;line-height:1.65;margin:0}
.cookie-facts code{font-size:.875rem;overflow-wrap:anywhere}
@media(max-width:800px){.cookie-notice{left:16px;bottom:calc(72px + env(safe-area-inset-bottom));width:calc(100% - 32px);padding:21px;max-height:calc(100svh - 180px)}}
@media(max-width:420px){.cookie-actions{align-items:stretch;gap:10px;flex-direction:column}.cookie-actions .button{justify-content:space-between}.cookie-secondary{align-self:center}.cookie-dialog{padding:25px 20px}.cookie-dialog h2{font-size:3rem}}
@media print{.cookie-notice,.cookie-dialog{display:none!important}}
