:root { --kirmse-orange:#ef7f1a; --kirmse-grey:#5b5b5b; }
html { scroll-behavior:smooth; }
body { color:#111; font-size:1.1rem; }
a { color:inherit; }
a:hover { color:var(--kirmse-orange); }
.container-header { background:#fff; color:#111; box-shadow:0 1px 8px #0001; display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; padding:0 max(1rem,calc((100vw - 1320px)/2)); }
.container-header > .grid-child { width:auto; max-width:none; margin:0; }
.container-header > .container-topbar { grid-column:1/-1; }
.container-header > .container-nav { grid-column:2; }
.container-header .navbar-brand img { width:224px; max-width:100%; height:auto; }
.container-topbar { max-width:1320px; width:100%; margin:auto; padding:.35rem 1rem; }
.kirmse-topbar { display:flex; justify-content:flex-end; gap:1.8rem; flex-wrap:wrap; color:var(--kirmse-orange); font-weight:500; }
.kirmse-topbar a { display:inline-flex; align-items:center; gap:.4rem; color:inherit; text-decoration:none; }
.kirmse-topbar-icon { display:block; width:1.15em; height:1.15em; flex:none; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.kirmse-nav { display:flex; justify-content:flex-end; align-items:center; width:100%; }
.kirmse-desktop-menu .mod-menu { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:1.3rem; list-style:none; margin:0; padding:0; }
.container-header .kirmse-desktop-menu .mod-menu a { display:block; padding:.8rem .1rem; color:#111; text-decoration:none; border-bottom:2px solid transparent; }
.container-header .kirmse-desktop-menu .mod-menu a:hover,
.container-header .kirmse-desktop-menu .mod-menu li.active > a,
.container-header .kirmse-desktop-menu .mod-menu a[aria-current="page"] { border-bottom-color:var(--kirmse-orange); }
.kirmse-menu-toggle { display:none; border:0; background:transparent; color:#111; font-size:2rem; line-height:1; cursor:pointer; }
.kirmse-mobile-menu[hidden] { display:none; }
.kirmse-mobile-menu { position:fixed; inset:0; z-index:10000; background:#0009; display:flex; justify-content:flex-end; }
.kirmse-mobile-panel { width:min(90vw,360px); min-height:100vh; background:#222; color:#fff; padding:2rem; overflow:auto; box-shadow:-12px 0 32px #0005; }
.kirmse-menu-close { display:block; margin:0 0 2rem auto; border:0; background:transparent; color:#fff; font-size:2.4rem; cursor:pointer; }
.kirmse-mobile-panel .mod-menu { display:block; list-style:none; padding:0; margin:0; }
.kirmse-mobile-panel li { border-bottom:1px solid #ffffff33; }
.kirmse-mobile-panel a { display:block; color:#fff; padding:1rem .2rem; text-decoration:none; }
.container-header .kirmse-mobile-panel .mod-menu li.active > a,
.container-header .kirmse-mobile-panel .mod-menu a[aria-current="page"],
.container-header .kirmse-mobile-panel .mod-menu a:hover { color:var(--kirmse-orange); }
body.kirmse-menu-open { overflow:hidden; }
.container-banner { padding:0; }
.kirmse-hero { position:relative; margin:0 0 3.5rem; width:100%; }
.kirmse-hero img { display:block; width:100%; height:auto; }
.kirmse-hero-caption { position:absolute; right:0; top:50%; transform:translateY(-50%); background:var(--kirmse-orange); color:#fff; padding:clamp(.9rem,2vw,2rem); }
.kirmse-hero-caption h2 { font-size:clamp(1.5rem,3vw,2.5rem); margin:0; }
.kirmse-hero-caption p { margin:.2rem 0 0; font-size:clamp(1rem,1.8vw,1.4rem); }
.site-grid { row-gap:0; }
.container-component { max-width:1320px; padding-inline:1rem; }
.com-content-article__body { hyphens:auto; }
.kirmse-heading { text-align:center; margin:3rem 0; font-size:clamp(2rem,5vw,3rem); font-weight:400; }
.kirmse-heading span { display:flex; align-items:center; gap:1rem; }
.kirmse-heading span:before, .kirmse-heading span:after { content:""; flex:1; border-top:1px solid var(--kirmse-orange); }
.kirmse-intro { text-align:center; margin:3rem auto; max-width:1100px; }
.kirmse-box-border { border:2px solid var(--kirmse-orange); text-align:center; margin:3rem 0; padding:clamp(1rem,3vw,5rem) clamp(1rem,8vw,10rem); font-size:1.5rem; font-weight:400; }
.kirmse-intro { font-weight:400; }
.kirmse-item-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:1.5rem; margin:3rem 0; }
.kirmse-item { display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden; min-height:150px; padding:1.4rem; background:var(--kirmse-grey); color:#fff; text-align:center; font-size:1.15rem; }
.kirmse-item::before { content:"✓"; position:absolute; color:var(--kirmse-orange); opacity:.3; font-size:10rem; font-weight:bold; line-height:1; }
.kirmse-item span { position:relative; z-index:1; }
.kirmse-scrollspy-ready .kirmse-item:not(.kirmse-inview) { opacity:0; transform:translateY(30px); }
.kirmse-item.kirmse-inview { animation:kirmse-slide-in 1.1s cubic-bezier(.2,.7,.2,1) both; }
@keyframes kirmse-slide-in { from { opacity:0; transform:translateY(25px); } to { opacity:1; transform:translateY(0); } }
.container-footer { background:var(--kirmse-grey); color:#fff; padding:2.5rem 1rem; }
.container-footer .grid-child { max-width:1360px; }
.kirmse-footer { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:2rem; }
.kirmse-footer h2 { font-size:clamp(.95rem,1.2vw,1.1rem); font-weight:400; white-space:nowrap; color:#fff; margin:0 0 1rem; }
.kirmse-footer section:not(:first-child) h2,.kirmse-footer nav h2 { display:none; }
.kirmse-footer p { margin:0; }
.kirmse-footer a { color:#fff; text-decoration:none; }
.kirmse-footer a:hover { color:#ffd8b1; }
.kirmse-footer small { color:#bbb; }
.back-to-top-link { background:var(--kirmse-orange); color:#fff; border:0; }
.com-contact__info a { color:var(--kirmse-orange); }
.itemid-121 .container-component main,.itemid-204 .container-component main { margin-top:0; }
.itemid-121 .com-contact::before,.itemid-204 .com-contact::before { content:"Kontakt"; display:block; width:100vw; margin-left:calc(50% - 50vw); background:var(--kirmse-orange); color:#fff; padding:.7rem max(1rem,calc((100vw - 1320px)/2)); font-size:clamp(1.8rem,3vw,2.4rem); line-height:1.3; }
.com-contact .page-header { margin:3rem 0 2rem; }
.com-contact .page-header h1,.com-contact__container h2 { font-weight:400; }
.itemid-121 .com-contact__container > h2,.itemid-204 .com-contact__container > h2 { display:none; }
.com-contact__address dt { display:none; }
.com-contact__address dd { margin:0 0 .8rem; }
.com-contact .fields-container { list-style:none; padding:0; margin:2.5rem 0 4rem; }
.com-contact .fields-container::before { content:"Hier finden Sie uns"; display:block; font-size:clamp(1.5rem,3vw,2rem); font-weight:400; margin:0 0 1rem; }
.com-contact .fields-container li { list-style:none; }
@media(max-width:900px) { .kirmse-desktop-menu { display:none; } .kirmse-menu-toggle { display:block; } .kirmse-item-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } .kirmse-footer { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .container-topbar { padding:.4rem 0; } .kirmse-topbar { display:grid; gap:0; justify-content:start; font-size:.86rem; line-height:1.3; } .container-header .navbar-brand img { width:180px; } .kirmse-item-grid { grid-template-columns:1fr; gap:1.5rem; } .kirmse-item { min-height:78px; padding:.8rem; font-size:1rem; } .kirmse-hero { margin-bottom:2rem; } .kirmse-hero-caption { left:17%; padding:.75rem 1.2rem; } .kirmse-heading { max-width:280px; margin-inline:auto; } .kirmse-heading span:before,.kirmse-heading span:after { display:none; } .kirmse-heading span { justify-content:center; } .kirmse-footer { grid-template-columns:1fr; gap:1.2rem; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; animation:none!important; transition:none!important; } }
