:root {
  --rand: clamp(16px, 4vw, 40px);
  --ease: cubic-bezier(0.16, 1, 0.3, 1);
  --cvw: min(1vw, 25.6px);
  --edge: max(0px, calc((100vw - 2560px) / 2));
  --gnoise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.06'/%3E%3C/svg%3E");
  --admin-bar-h: 0px;
  --nav-h: 58px;
  --line: #e4e4e4;
  --paper: url("/assets/img/cache/papier-struktur-wh800.jpg");
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
html.reduce-motion { scroll-behavior: auto; }
body { margin: 0; background: var(--weiss) var(--paper) repeat center top; color: var(--text); font: 400 15px/26px var(--f-body); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img, video, svg { display: block; max-width: 100%; }
img { height: auto; }
a { color: var(--akzent); }
p { margin: 0 0 1em; }
h1, h2, h3, h4 { margin: 0; color: var(--heading); overflow-wrap: break-word; }
button { -webkit-appearance: none; appearance: none; border: 0; background-color: transparent; color: inherit; font: inherit; cursor: pointer; -webkit-tap-highlight-color: transparent; padding: 0; }
input, select, textarea { -webkit-appearance: none; appearance: none; font: inherit; }
::selection { background: var(--akzent); color: var(--weiss); }
:focus-visible { outline: 2px solid var(--akzent); outline-offset: 3px; }
.diw-dark :focus-visible, .diw-footer :focus-visible, .diw-slider :focus-visible { outline-color: var(--weiss); }
#main:focus { outline: none; }
section[id] { scroll-margin-top: calc(var(--admin-bar-h) + var(--nav-h) + 12px); }

.diw-skip { position: fixed; left: 16px; top: -100px; z-index: 120; background: var(--dunkel); color: var(--weiss); padding: 14px 20px; font: 700 15px/1 var(--f-head); text-decoration: none; }
.diw-skip:focus { top: calc(var(--admin-bar-h) + 12px); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.diw-wrap { max-width: calc(1200px + 2 * var(--rand)); margin: 0 auto; padding: 0 var(--rand); }
.diw-buttons { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 26px; }
.diw-icon { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.diw-brand { width: 18px; height: 18px; flex: none; fill: currentColor; }
.diw-nav-arrow { width: 8px; height: 8px; fill: currentColor; flex: none; }

.diw-header { --top-h: 142px; position: sticky; z-index: 50; top: calc(var(--admin-bar-h) - var(--top-h)); background: var(--weiss) var(--paper) repeat center center; border-bottom: 1px solid rgb(58 58 58 / .13); }
.diw-top { height: var(--top-h); background: transparent; }
.diw-top-in { height: 100%; max-width: calc(1200px + 2 * var(--rand)); margin: 0 auto; padding: 0 var(--rand); display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.diw-logo-link { display: block; flex: none; }
.diw-logo { width: 240px; height: auto; }
.diw-top-info { display: flex; align-items: center; gap: 12px 20px; flex-wrap: wrap; justify-content: flex-end; font: 600 14px/18px var(--f-body); color: var(--heading); }
.diw-top-item { display: inline-flex; align-items: center; gap: 6px; }
.diw-top-item--phone { gap: 2px; }
.diw-top-item > .diw-icon { width: 16px; height: 16px; color: var(--heading); }
.diw-top-item a { color: inherit; text-decoration: none; }
.diw-top-item a:hover { color: var(--akzent); text-decoration: underline; text-underline-offset: 3px; }
.diw-top-round { display: flex; gap: 4px; }
.diw-round { width: 26px; height: 26px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--akzent); color: var(--weiss); transition: background-color .2s var(--ease), color .2s var(--ease), box-shadow .2s var(--ease); }
.diw-round:hover { background: transparent; color: var(--akzent); box-shadow: inset 0 0 0 1px var(--akzent); }
.diw-round .diw-icon, .diw-round .diw-brand { width: 16px; height: 16px; }

.diw-navbar { background: transparent; }
.diw-nav { position: relative; max-width: calc(1200px + 2 * var(--rand)); margin: 0 auto; padding: 0 var(--rand); }
.diw-nav::before { content: ""; position: absolute; top: 0; left: var(--rand); right: var(--rand); height: 1px; background: rgb(58 58 58 / .13); }
.diw-nav-list { display: flex; list-style: none; margin: 0; padding: 0; border-inline: 1px solid rgb(58 58 58 / .12); }
.diw-nav-list > li { position: relative; flex: 1 1 auto; }
.diw-nav-list > li + li { border-left: 1px solid rgb(58 58 58 / .12); }
.diw-nav-list > li > a { display: flex; align-items: center; justify-content: center; gap: 6px; height: var(--nav-h); padding: 0 5px; font: 700 15px/19px var(--f-head); text-transform: uppercase; color: var(--heading); text-decoration: none; transition: color .2s var(--ease), box-shadow .2s var(--ease); }
.diw-nav-list > li > a:hover, .diw-nav-list > li > a[aria-current] { color: var(--akzent); box-shadow: inset 0 3px 0 var(--akzent); }
.diw-sub { position: absolute; top: 100%; left: 0; z-index: 2; width: 250px; list-style: none; margin: 0; padding: 10px; background: var(--teal-dunkel); box-shadow: 0 0 4px rgb(0 0 0 / .2); opacity: 0; visibility: hidden; transition: opacity .2s var(--ease), visibility 0s linear .2s; }
.diw-has-sub:hover > .diw-sub, .diw-has-sub:focus-within > .diw-sub { opacity: 1; visibility: visible; transition: opacity .2s var(--ease), visibility 0s; }
.diw-has-sub.is-closed > .diw-sub { opacity: 0; visibility: hidden; }
.diw-sub a { display: block; padding: 10px; color: var(--weiss); font: 600 13px/17px var(--f-sub); text-decoration: none; transition: background-color .3s ease .1s; }
.diw-sub a:hover { background: rgb(255 255 255 / .07); }
.diw-sub a[aria-current] { background: #f2f2f2; color: var(--teal-dunkel); }
.diw-sub :focus-visible { outline-color: var(--weiss); outline-offset: -3px; }
.diw-sub a[aria-current]:focus-visible { outline-color: var(--teal-dunkel); }
.diw-menu-btn { display: none; }
.diw-menu-float { display: none; }
@media (min-width: 1024px) {
  .diw-header.is-stuck { --top-h: 140px; --nav-h: 60px; background: var(--weiss); }
  .diw-header.is-stuck .diw-nav::before { display: none; }
  .diw-header.is-stuck .diw-nav-list, .diw-header.is-stuck .diw-nav-list > li + li { border: 0; }
  html:not(.reduce-motion) .diw-header.is-stuck { animation: diw-phantom-in .52s ease both; }
}
@keyframes diw-phantom-in { from { transform: translateY(-100%); opacity: 0; } to { transform: none; opacity: 1; } }

.diw-menu { position: fixed; inset: 0; z-index: 80; visibility: hidden; pointer-events: none; transition: visibility 0s linear .4s; }
.diw-menu.is-open { visibility: visible; pointer-events: auto; transition: visibility 0s linear 0s; }
.diw-menu-backdrop { position: absolute; inset: 0; background: rgb(17 17 17 / 0); transition: background-color .4s var(--ease); }
.diw-menu.is-open .diw-menu-backdrop { background: rgb(17 17 17 / .5); }
.diw-menu-panel { position: absolute; top: 0; bottom: 0; right: var(--edge); width: min(280px, calc(100vw - 48px)); background: var(--weiss); color: var(--heading); padding: calc(var(--admin-bar-h) + 64px) 28px 28px; overflow-y: auto; overscroll-behavior: contain; transform: translateX(100%); transition: transform .4s var(--ease); }
.diw-menu.is-open .diw-menu-panel { transform: none; }
.diw-menu-list, .diw-menu-list ul { list-style: none; margin: 0; padding: 0; }
.diw-menu-list > li + li { border-top: 1px solid rgb(58 58 58 / .08); }
.diw-menu-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.diw-menu-list a { display: block; padding: 15.5px 0; font: 700 15px/19px var(--f-label); text-transform: uppercase; color: inherit; text-decoration: none; }
.diw-menu-toggle { flex: none; width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; color: var(--text); }
.diw-menu-toggle svg { width: 14px; height: 14px; stroke: currentColor; stroke-width: 2; fill: none; transition: transform .2s var(--ease); }
.diw-menu-toggle[aria-expanded="true"] svg { transform: rotate(45deg); }
.diw-menu-list ul { padding: 0 0 15.5px 20px; }
.diw-menu-list ul[hidden] { display: none; }
.diw-menu-list ul a { padding: 7px 30px 7px 0; font: 600 14px/18px var(--f-sub); text-transform: none; }
.diw-menu-list a:hover, .diw-menu-list a[aria-current] { color: var(--akzent); }
.diw-menu-contact { display: grid; gap: 8px; margin-top: 28px; font: 600 14px/18px var(--f-sub); color: var(--heading); }
.diw-menu-contact > span { display: flex; align-items: center; gap: 6px; }
.diw-menu-contact .diw-icon { width: 16px; height: 16px; }
.diw-menu-contact a { color: inherit; text-decoration: none; }
.diw-menu-contact a:hover { color: var(--akzent); text-decoration: underline; text-underline-offset: 3px; }
.diw-menu-round { display: flex; gap: 4px; margin-top: 14px; }
.diw-menu-close { position: fixed; top: var(--admin-bar-h); right: var(--edge); width: 30px; height: 30px; background: var(--akzent); opacity: 0; transition: opacity .2s; }
.diw-menu.is-open .diw-menu-close { opacity: 1; transition: opacity .2s .5s; }
.diw-menu-close span { position: absolute; top: 14px; left: 4px; width: 22px; height: 2px; background: var(--weiss); transform: rotate(45deg); transition: transform .3s var(--ease); }
.diw-menu-close span + span { transform: rotate(-45deg); }
.diw-menu-close:focus-visible { outline: 2px solid var(--weiss); outline-offset: -4px; }
@media (hover: hover) and (pointer: fine) { .diw-menu-close:hover span { transform: none; } }

.diw-texthead { position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 200px; padding: 20px var(--rand); background: var(--grau) var(--paper) repeat center center; color: var(--weiss); text-align: center; }
.diw-texthead::before { content: ""; position: absolute; inset: 0; background: rgb(48 49 53 / .52); }
.diw-texthead::after { content: ""; position: absolute; left: 50%; bottom: 0; width: min(1200px, calc(100% - 2 * var(--rand))); border-bottom: 1px solid rgb(204 204 204 / .5); transform: translateX(-50%); }
.diw-texthead h1 { position: relative; font: 700 34px/44px var(--f-head); color: var(--weiss); margin: 0 auto; max-width: 1000px; }
.diw-texthead--portfolio { min-height: 459px; background: var(--dunkel); }
.diw-texthead--portfolio::before, .diw-texthead--portfolio::after { content: none; }
.diw-texthead--portfolio h1 { font-family: var(--f-label); font-size: 58px; line-height: 68px; margin: 10px auto 20px; }
.diw-texthead-kicker { position: relative; margin: 0; font: 700 34px/46px var(--f-label); color: #4098d0; }
.diw-pagelead { padding-top: clamp(40px, 5vw, 60px); }
.diw-pagelead p { max-width: 820px; margin: 0; font-size: 17px; line-height: 1.6; color: var(--heading); }
.diw-crumbs { position: relative; display: inline-block; font: 400 12px/24px var(--f-body); margin: 10px 0 0; padding: 0 8px; color: #eeeeee; border: 1px solid rgb(255 255 255 / .5); background: rgb(48 49 53 / .55); }
.diw-crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 0 6px; }
.diw-crumbs li { display: inline-flex; align-items: center; gap: 6px; }
.diw-crumbs li + li::before { content: "/"; color: rgb(238 238 238 / .5); }
.diw-crumbs a { color: inherit; text-decoration: none; }
.diw-crumbs a:hover { text-decoration: underline; text-underline-offset: 3px; }

.diw-slider { --slide-delay: 8.57s; --grid: 600px; --u: min(1px, calc(var(--cvw) / 6)); position: relative; overflow: hidden; background: var(--blau); color: var(--weiss); }
.diw-slides { display: grid; }
.diw-slide { grid-area: 1 / 1; position: relative; display: flex; align-items: center; height: calc(600 * var(--u)); background: var(--blau); opacity: 0; visibility: hidden; transition: opacity 1s var(--ease), visibility 0s linear 1s; }
.diw-slide.is-active { opacity: 1; visibility: visible; transition: opacity 1s var(--ease), visibility 0s; }
.diw-slide-text { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: flex-start; width: calc(500 * var(--u)); margin-left: calc(max(0px, (100% - var(--grid)) / 2) + 50 * var(--u)); }
.diw-slide-title { width: 100%; font: 700 calc(60 * var(--u))/calc(80 * var(--u)) var(--f-cond); text-transform: uppercase; color: var(--weiss); margin: 0; overflow-wrap: anywhere; hyphens: auto; }
.diw-slide-bar { display: block; width: calc(500 * var(--u)); max-width: 100%; height: calc(6 * var(--u)); background: var(--gruen-hell); margin-top: calc(20 * var(--u)); }
.diw-slide-sub { width: calc(500 * var(--u)); max-width: 100%; margin: calc(20 * var(--u)) 0 0; padding-top: calc(17 * var(--u)); font: 400 calc(17 * var(--u))/calc(30 * var(--u)) var(--f-sub); color: var(--weiss); }
.diw-slide-btn { display: inline-flex; align-items: center; justify-content: center; min-width: calc(140 * var(--u)); margin-top: calc(20 * var(--u)); padding: calc(10 * var(--u)) calc(20 * var(--u)); border: max(1px, calc(2 * var(--u))) solid var(--weiss); color: var(--weiss); font: 700 calc(16 * var(--u))/calc(18 * var(--u)) var(--f-cond); text-transform: uppercase; text-decoration: none; transition: background-color .2s linear; }
.diw-slide-btn:hover { background: var(--gruen); }
.diw-slide-media { display: none; position: absolute; top: 0; bottom: 0; left: calc(50% - 100 * var(--u)); width: calc(900 * var(--u)); overflow: hidden; background: var(--akzent-dunkel); clip-path: polygon(calc(236 * var(--u)) 0, calc(875 * var(--u)) 0, calc(715 * var(--u)) 100%, calc(75 * var(--u)) 100%); }
.diw-slide-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.diw-slider-ctl { position: absolute; z-index: 2; right: calc(var(--edge) + 25px); bottom: 25px; display: none; }
.diw-slider-thumbs { display: flex; gap: 10px; list-style: none; margin: 0; padding: 0; }
.diw-slider-thumb { position: relative; display: block; width: 130px; height: 80px; overflow: hidden; padding: 0; outline-offset: 2px; text-align: left; }
.diw-slider-thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.diw-slider-thumb::after { content: ""; position: absolute; inset: 0; z-index: 1; background: rgb(0 0 0 / .25); transition: background-color .3s; }
.diw-slider-thumb-title { position: absolute; inset: 0; z-index: 2; box-sizing: border-box; padding: 20px 35px 20px 20px; font: 500 12px/15px var(--f-label); letter-spacing: 1px; color: var(--weiss); text-shadow: 0 1px 2px rgb(0 0 0 / .6); transition: color .3s; }
.diw-slider-thumb .diw-icon { position: absolute; z-index: 2; top: 21px; right: 20px; width: 12px; height: 12px; color: #aaaaaa; }
.diw-slider-thumb:is(:hover, [aria-current="true"])::after { background: var(--weiss); }
.diw-slider-thumb:is(:hover, [aria-current="true"]) .diw-slider-thumb-title { color: rgb(0 0 0); text-shadow: none; }
.diw-slides { touch-action: pan-y; }
.diw-slider-arrow { position: absolute; z-index: 2; bottom: 30px; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: rgb(0 0 0 / .5); color: var(--weiss); transition: background-color .2s var(--ease); }
.diw-slider-arrow--prev { right: calc(var(--edge) + 80px); }
.diw-slider-arrow--next { right: calc(var(--edge) + 30px); }
.diw-slider-arrow--prev svg { transform: scaleX(-1); }
.diw-slider-arrow:hover { background: rgb(0 0 0); }
.diw-slider-arrow svg { width: 18px; height: 18px; }
.diw-slider-btn { position: absolute; z-index: 2; left: calc(var(--edge) + 25px); bottom: 25px; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: rgb(0 0 0 / .5); color: var(--weiss); transition: background-color .2s var(--ease); }
.diw-slider-btn:hover { background: rgb(0 0 0); }
.diw-slider-btn svg { width: 16px; height: 16px; }
.diw-slider-btn .diw-play { display: none; }
.diw-slider.is-paused .diw-slider-btn .diw-play { display: block; }
.diw-slider.is-paused .diw-slider-btn .diw-pause { display: none; }
@media (min-width: 768px) {
  .diw-slider { --grid: 1300px; --u: min(1px, calc(var(--cvw) / 13)); }
  .diw-slide-text { width: calc(550 * var(--u)); }
  .diw-slide-media { display: block; }
}
@media (min-width: 1024px) {
  .diw-slider-ctl { display: block; }
  .diw-slider-arrow { display: none; }
}
.diw-slider-progress { position: absolute; z-index: 2; left: 0; right: 0; top: 0; height: 5px; }
.diw-slider-progress span { display: block; height: 100%; background: rgb(255 255 255 / .3); transform: scaleX(0); transform-origin: left; }
.diw-slider.is-running .diw-slider-progress span { animation: diw-progress var(--slide-delay) linear both; }
@keyframes diw-progress { to { transform: scaleX(1); } }
.diw-slider { --ease-layer: cubic-bezier(.86, 0, .07, 1); }
.diw-slide-title { overflow: hidden; padding-block: .12em; margin-block: -.12em; }
.diw-slide-title > span { display: block; }
.diw-slide-bar { transform-origin: left; }
.diw-slide-sub { position: relative; overflow: hidden; }
.diw-slide-sub::after { content: ""; position: absolute; inset: 0; background: var(--weiss); transform: translateX(-101%); pointer-events: none; }
.diw-slide.is-active .diw-slide-title > span { animation: diw-layer-up 1.5s var(--ease-layer) .99s both; }
.diw-slide.is-active .diw-slide-bar { animation: diw-layer-bar 1.5s var(--ease-layer) .99s both; }
.diw-slide.is-active .diw-slide-sub { animation: diw-layer-show 1.5s linear .99s both; }
.diw-slide.is-active .diw-slide-sub::after { animation: diw-layer-block 1.5s .99s both; }
.diw-slide.is-active .diw-slide-btn { animation: diw-layer-fade 1.5s var(--ease-layer) 1.49s both; }
.diw-slide.is-active .diw-slide-media { animation: diw-layer-fade 1.5s var(--ease-layer) 1s both; }
.diw-slide.is-leaving .diw-slide-title > span { animation: diw-layer-out .45s cubic-bezier(.77, 0, .175, 1) both; }
.diw-slide.is-leaving :is(.diw-slide-bar, .diw-slide-sub, .diw-slide-btn, .diw-slide-media) { animation: diw-layer-out .55s cubic-bezier(.77, 0, .175, 1) both; }
html.reduce-motion .diw-slide.is-active:not(.is-leaving) :is(.diw-slide-title > span, .diw-slide-bar, .diw-slide-sub) { animation-name: diw-layer-fade; }
html.reduce-motion .diw-slide.is-active .diw-slide-sub::after { animation: none; }
@keyframes diw-layer-up { from { opacity: 0; transform: translateY(100%); } }
@keyframes diw-layer-bar { from { transform: scaleX(0); } }
@keyframes diw-layer-show { 0%, 49.9% { opacity: 0; } 50%, 100% { opacity: 1; } }
@keyframes diw-layer-block {
  0% { transform: translateX(-101%); animation-timing-function: cubic-bezier(.86, 0, .07, 1); }
  50% { transform: none; animation-timing-function: cubic-bezier(.86, 0, .07, 1); }
  100% { transform: translateX(101%); }
}
@keyframes diw-layer-fade { from { opacity: 0; } }
@keyframes diw-layer-out { to { opacity: 0; } }

.diw-band { padding: clamp(50px, 6vw, 80px) 0; }
.diw-band--hell { background: var(--hell); }
.diw-band--weiss { background: var(--weiss); }
.diw-band--hell2 { background: var(--hell-2); }
.diw-band--blau { background: var(--blau); color: var(--weiss); }
.diw-band--blau h2, .diw-band--blau h3 { color: var(--weiss); }
.diw-bg-host { position: relative; isolation: isolate; view-timeline-name: --diw-bg; }
.diw-bg-host > :not(.diw-bg) { position: relative; }
.diw-bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.diw-bg-img { position: absolute; inset: 0; background: center / cover no-repeat; }
.diw-bg::after { content: ""; position: absolute; inset: 0; background: var(--bg-overlay, transparent); }
.diw-bg--dunkel { --bg-overlay: rgb(0 0 0 / .5); }
.diw-bg--hell { --bg-overlay: rgb(245 245 245 / .85); }
.diw-bg--blau { --bg-overlay: rgb(11 78 158 / .6); }
.diw-bg.is-parallax .diw-bg-img { inset: -15% 0; will-change: transform; }
@keyframes diw-parallax { from { transform: translateY(-11%); } to { transform: translateY(11%); } }
@supports (animation-timeline: view()) {
  @media (min-width: 768px) {
    html:not(.reduce-motion) .diw-bg--parallax .diw-bg-img { inset: -15% 0; animation: diw-parallax linear both; animation-timeline: --diw-bg; animation-range: cover 0% cover 100%; }
  }
}
@keyframes diw-rv-fade { from { opacity: 0; } }
@keyframes diw-rv-up { from { opacity: 0; transform: translateY(200px); } }
@keyframes diw-rv-fall {
  from { opacity: 0; transform: perspective(1300px) translateZ(400px) translateY(300px) rotateX(-65deg); }
  to { opacity: 1; transform: perspective(1300px) translateZ(0) translateY(0) rotateX(0); }
}
@keyframes diw-rv-appear { from { opacity: .1; transform: scale(.5); } }
@keyframes diw-rv-left { from { opacity: 0; transform: translateX(-100%); } }
@keyframes diw-rv-bounce {
  0%, 20%, 40%, 60%, 80%, 100% { animation-timing-function: cubic-bezier(.215, .61, .355, 1); }
  0% { opacity: 0; transform: scale3d(.3, .3, .3); }
  20% { transform: scale3d(1.1, 1.1, 1.1); }
  40% { transform: scale3d(.9, .9, .9); }
  60% { opacity: 1; transform: scale3d(1.03, 1.03, 1.03); }
  80% { transform: scale3d(.97, .97, .97); }
  100% { opacity: 1; transform: none; }
}
@keyframes diw-rv-launch { from { opacity: 0; translate: var(--ic-from, 0 0); } }
@keyframes diw-ic-pop { 50% { scale: 1.2; } }
[data-reveal="appear"] { --rv: diw-rv-appear; --rv-ease: cubic-bezier(.175, .885, .32, 1.275); }
[data-reveal="launch"] { container-type: inline-size; }
[data-reveal="launch"] .diw-infocircle-btn { --rv: diw-rv-launch; }
html.reduce-motion :is([data-reveal="appear"], [data-reveal="launch"] .diw-infocircle-btn) { --rv: diw-rv-fade; }
@media (hover: hover) and (pointer: fine) {
  [data-reveal="fade"] { --rv: diw-rv-fade; --rv-ease: ease; }
  [data-reveal="up"] { --rv: diw-rv-up; --rv-ease: ease-in-out; }
  [data-reveal="fall"] { --rv: diw-rv-fall; --rv-ease: ease-in-out; }
  [data-reveal="bounce"] { --rv: diw-rv-bounce; }
  [data-reveal="left"] { --rv: diw-rv-left; --rv-ease: ease; }
  html.reduce-motion :is([data-reveal="up"], [data-reveal="fall"], [data-reveal="bounce"], [data-reveal="left"]) { --rv: diw-rv-fade; }
}
html:not(.reduce-motion) .diw-infocircle-btn[aria-pressed="true"] { animation: diw-ic-pop 1.5s linear infinite; }
@supports (animation-timeline: view()) {
  [data-reveal="launch"] { view-timeline: --diw-ic; }
  :is([data-reveal]:not([data-reveal="launch"]), [data-reveal="launch"] .diw-infocircle-btn) { animation: var(--rv) var(--rv-ease, linear) both; animation-timeline: view(); animation-range: entry 0% cover 30vh; }
  [data-reveal="launch"] .diw-infocircle-btn { animation-timeline: --diw-ic; }
  html:not(.reduce-motion) [data-reveal="launch"] .diw-infocircle-btn[aria-pressed="true"] { animation: var(--rv) linear both, diw-ic-pop 1.5s linear infinite; animation-timeline: --diw-ic, auto; animation-range: entry 0% cover 30vh, normal; }
}
html.diw-reveal-js :is([data-reveal]:not([data-reveal="launch"]), [data-reveal="launch"] .diw-infocircle-btn) { animation: var(--rv) 1s var(--rv-ease, linear) both paused; }
html.diw-reveal-js:not(.reduce-motion) [data-reveal="launch"] .diw-infocircle-btn[aria-pressed="true"] { animation: var(--rv) 1s linear both paused, diw-ic-pop 1.5s linear infinite; }
.diw-h2 { font: 700 30px/40px var(--f-head); margin: 0 0 25px; text-align: center; }
.diw-h2--semi { font-weight: 600; }
.diw-h2::after { content: ""; display: block; width: 100px; height: 3px; margin: 12px auto 0; background: var(--blau); }
.diw-h2--plain { font-size: 32px; text-align: left; }
.diw-h2--plain::after { content: none; }
.diw-center { text-align: center; }
.diw-band--blau .diw-h2::after { height: 4px; margin-top: 10px; background: rgb(255 255 255 / .5); }
.diw-sub-h { font: 700 18px/1.4 var(--f-head); margin: 0 0 14px; color: var(--akzent); }
.diw-intro-text { max-width: 900px; }
.diw-center .diw-intro-text { margin-inline: auto; }

.diw-features { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 30px; list-style: none; margin: 40px 0 0; padding: 0; }
.diw-feature { text-align: center; }
.diw-plate { width: 84px; height: 84px; margin: 0 auto 18px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--lila); color: var(--weiss); }
.diw-plate svg { width: 38px; height: 38px; }
.diw-features--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.diw-feature :is(h2, h3) { font: 700 17px/1.4 var(--f-head); margin: 0 0 10px; }
.diw-feature p { margin: 0; }
.diw-feature p + p { margin-top: 10px; }
.diw-buttons--center { justify-content: center; }

.diw-owner { max-width: 390px; margin: 0 auto; padding: 35px 10px 30px; background: var(--weiss); text-align: center; }
.diw-owner-media { width: 250px; max-width: 100%; aspect-ratio: 5 / 6; margin: 0 auto 20px; overflow: hidden; background: var(--hell-2); }
.diw-owner-media img { width: 100%; height: 100%; object-fit: cover; }
.diw-owner--wide { max-width: 585px; margin-top: 80px; padding-top: 0; }
.diw-owner--wide .diw-owner-media { width: 565px; aspect-ratio: 565 / 404; }
.diw-owner-name { font: 700 20px/30px var(--f-head); color: var(--heading); margin: 0; }
.diw-owner-role { font: 700 16px/22px var(--f-cond); color: var(--heading); margin: 0 0 15px; }
.diw-owner-line { font: 700 16px/16px var(--f-head); color: var(--heading); margin: 0 0 15px; }
.diw-owner-role + .diw-owner-line { margin-bottom: 10px; }
.diw-owner-line a { color: var(--akzent); text-decoration: none; }
.diw-owner-line a:hover { color: var(--akzent); text-decoration: underline; text-underline-offset: 3px; }
.diw-owner-line a[href^="tel:"], .diw-owner-line a[href^="tel:"]:hover { color: inherit; }

.diw-band--notch { position: relative; }
.diw-band--notch::before { content: ""; position: absolute; top: -1px; left: 50%; width: 0; height: 0; border-style: solid; border-width: 30px 23.5px 0; border-color: var(--notch, var(--hell)) transparent transparent; transform: translateX(-50%); }
.diw-welcome { padding: 65px 0 80px; background: var(--hell); }
.diw-welcome .diw-h2 { line-height: 46px; margin: 0; }
.diw-band--p78-80 { padding: 78px 0 80px; }
.diw-band--p78-80 .diw-h2::after { margin-top: 15px; }
.diw-band--p85-70 { padding: 85px 0 70px; }
.diw-band--p85-110 { padding: 85px 0 110px; }
.diw-band--p100-85 { padding: 100px 0 85px; }
.diw-band--p100-110 { padding: 100px 0 110px; }
.diw-band--p105-80 { padding: 105px 0 80px; }
.diw-band--p105-0 { padding: 105px 0 0; }
.diw-trio .diw-owner { max-width: none; margin: 0 -15px; }
.diw-welcome .diw-h2::after { margin-top: 15px; background: var(--akzent); }
.diw-trio { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; align-items: start; }
.diw-trio-text h2 { font: 700 26px/32px var(--f-head); margin: 0 0 20px; }
.diw-btn--white { background: var(--weiss); color: var(--blau); border-color: var(--weiss); box-shadow: 0 0 0 1px rgb(58 58 58 / .1); }
.diw-btn--white:hover { background: var(--gruen); color: var(--weiss); border-color: var(--gruen); }
.diw-iconlist { list-style: none; margin: 0; padding: 0; display: grid; gap: 22px; }
.diw-iconlist a { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 0 15px; color: inherit; text-decoration: none; }
.diw-iconlist .diw-iconlist-icon { grid-row: span 2; display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: var(--lila); color: var(--weiss); }
.diw-iconlist .diw-icon { width: 18px; height: 18px; }
.diw-iconlist h3 { font: 400 20px/26px var(--f-head); color: var(--heading); margin: 0 0 10px; transition: color .2s var(--ease); }
.diw-iconlist p { margin: 0; }
.diw-iconlist a:hover h3 { color: var(--akzent); }

.diw-wohl-head { max-width: 1000px; margin: 0 auto 96px; text-align: center; font-size: 18px; line-height: normal; color: #666666; }
.diw-wohl { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 30px; align-items: start; }
.diw-infocircle { position: relative; width: 468px; max-width: 100%; aspect-ratio: 1; margin: 40px auto; border: 5px solid var(--weiss); border-radius: 50%; }
.diw-infocircle-center { position: absolute; inset: 50px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; padding: 30px; border-radius: 50%; background: var(--weiss); text-align: center; box-shadow: 0 0 0 1px rgb(58 58 58 / .08); }
.diw-infocircle-center .diw-infocircle-mark { display: flex; color: var(--blau); }
.diw-infocircle-center .diw-icon { width: 45px; height: 45px; }
.diw-infocircle-panel { font: 700 20px/30px var(--f-head); color: var(--blau); margin: 0; }
.diw-infocircle-panel[hidden] { display: none; }
.diw-infocircle-btn { position: absolute; z-index: 1; width: 60px; height: 60px; margin: -30px 0 0 -30px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background: var(--gruen); color: var(--weiss); box-shadow: 0 0 0 4px var(--weiss); transition: background-color .2s var(--ease); }
.diw-infocircle-btn .diw-icon { width: 24px; height: 24px; }
html.reduce-motion .diw-infocircle-btn[aria-pressed="true"] { transform: scale(1.15); }
.diw-infocircle-btn:nth-of-type(1) { top: 0; left: 50%; --ic-from: 0 50cqi; }
.diw-infocircle-btn:nth-of-type(2) { top: 50%; left: 100%; --ic-from: -50cqi 0; }
.diw-infocircle-btn:nth-of-type(3) { top: 100%; left: 50%; --ic-from: 0 -50cqi; }
.diw-infocircle-btn:nth-of-type(4) { top: 50%; left: 0; --ic-from: 50cqi 0; }
.diw-iclist { display: none; list-style: none; margin: 40px 0; padding: 0; }
.diw-iclist li { position: relative; display: flex; align-items: flex-start; gap: 28px; }
.diw-iclist li + li { margin-top: 30px; }
.diw-iclist li:not(:last-child)::before { content: ""; position: absolute; left: 14px; top: 28px; height: 100%; border-left: 1px solid var(--weiss); }
.diw-iclist-icon { flex: none; display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: var(--gruen-hell); color: var(--weiss); }
.diw-iclist-icon .diw-icon { width: 18px; height: 18px; }
.diw-iclist-title { flex: 1; margin: 0; padding: 10px 10px 10px 15px; border-radius: 5px; background: var(--weiss); font: 700 20px/30px var(--f-head); color: var(--blau); }
.diw-wohl-statements h3 { font: 400 20px/32px var(--f-head); color: var(--heading); margin: 0 0 30px; }
.diw-wohl-statements h3:first-child { color: var(--lila); }

.diw-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 60px); align-items: start; }
.diw-checks { list-style: none; margin: 0 0 1em; padding: 0; display: grid; gap: 12px; }
.diw-checks li { display: flex; gap: 12px; align-items: flex-start; font-weight: 700; color: var(--heading); }
.diw-checks .diw-icon { width: 22px; height: 22px; color: var(--gruen); margin-top: 2px; }
.diw-note { border-left: 4px solid var(--gruen-hell); padding: 4px 0 4px 18px; margin: 18px 0 0; }
.diw-strong { font-weight: 700; color: var(--heading); margin: 18px 0 10px; }

.diw-tiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; max-width: 1148px; list-style: none; margin: 93px auto 0; padding: 0; }
.diw-tile a { position: relative; display: block; aspect-ratio: 4 / 3; overflow: hidden; background: rgb(0 0 0 / .3); color: var(--weiss); text-decoration: none; }
.diw-tile img { width: 100%; height: 100%; object-fit: cover; transition: opacity .35s ease; }
.diw-tile a::before, .diw-tile a::after { content: ""; position: absolute; z-index: 1; inset: 25px; opacity: 0; pointer-events: none; transition: opacity .35s, transform .35s; }
.diw-tile a::before { border-top: 1px solid var(--weiss); border-bottom: 1px solid var(--weiss); transform: scale(0, 1); }
.diw-tile a::after { border-left: 1px solid var(--weiss); border-right: 1px solid var(--weiss); transform: scale(1, 0); }
.diw-tile a:focus-visible::before, .diw-tile a:focus-visible::after { opacity: 1; transform: scale(1); }
@media (hover: hover) and (pointer: fine) { .diw-tile a:hover::before, .diw-tile a:hover::after { opacity: 1; transform: scale(1); } }
.diw-tile-title { position: absolute; z-index: 1; top: 35px; left: 45px; right: 45px; padding: 1px 8px; border: 1px solid #cccccc; background: rgb(var(--dunkel-rgb) / .8); color: var(--weiss); font: 700 24px/30px var(--f-head); text-align: center; }
.diw-tile a:hover img, .diw-tile a:focus-visible img { opacity: .3; }
.diw-tiles > .diw-tile:last-child:nth-child(3n+1) { grid-column: 1 / -1; }
.diw-tiles > .diw-tile:last-child:nth-child(3n+1) a { width: 467px; max-width: 100%; }
.diw-tiles--two .diw-tiles { display: flex; flex-wrap: wrap; gap: 10px; max-width: none; margin-top: 0; }
.diw-tiles--two .diw-tiles > .diw-tile:nth-child(n) { flex: 0 0 var(--tw, calc(50% - 5px)); grid-column: auto; }
.diw-tiles--two .diw-tiles > .diw-tile:nth-child(n) > a { width: auto; aspect-ratio: var(--tr, 4 / 3); }

.diw-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; list-style: none; margin: 0; padding: 0; }
.diw-card { position: relative; display: flex; flex-direction: column; background: #f6f6f6; box-shadow: inset 0 0 0 1px rgb(58 58 58 / .13); }
.diw-card-media { position: relative; display: block; aspect-ratio: 3 / 2; overflow: hidden; background: var(--hell-2); }
.diw-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease-out, opacity .35s; }
.diw-card-media::after { content: ""; position: absolute; inset: 0; background: rgb(10 10 10 / .2); opacity: 0; transition: opacity .3s linear; pointer-events: none; }
.diw-card:hover .diw-card-media::after, .diw-card:focus-within .diw-card-media::after { opacity: 1; }
.diw-card-cat { position: absolute; z-index: 1; top: 10px; left: 10px; padding: 2px 9px 1px; background: rgb(0 0 0 / .75); color: var(--weiss); font: 700 12px/22px var(--f-body); }
.diw-card-body { flex: 1; display: flex; align-items: center; justify-content: center; padding: 20px 20px 22px; text-align: center; }
.diw-card :is(h2, h3) { font: 700 20px/30px var(--f-head); margin: 0; }
.diw-card :is(h2, h3) a { color: var(--heading); text-decoration: none; }
.diw-card :is(h2, h3) a::after { content: ""; position: absolute; inset: 0; }
.diw-card :is(h2, h3) a:hover { color: var(--akzent); }
@media (hover: hover) and (pointer: fine) { .diw-card:hover .diw-card-media img { transform: scale(1.2); transition: transform 4s ease-out; } }
.diw-card:focus-within { outline: 2px solid var(--akzent); outline-offset: 3px; }
.diw-card :is(h2, h3) a:focus-visible { outline: none; }
.diw-card[hidden] { display: none; }
.diw-filter-bar { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; margin: 0 0 40px; }
.diw-filter { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 5px; margin: 0; }
.diw-sort { display: flex; align-items: center; height: 28px; padding: 0 15px 0 16px; }
.diw-sort-opt { position: relative; display: flex; align-items: center; justify-content: center; width: 24px; height: 24px; margin: 0 -4px; color: var(--heading); }
.diw-sort-opt .diw-icon { width: 16px; height: 16px; }
.diw-sort-opt:hover { color: var(--akzent); }
.diw-sort-tip { position: absolute; bottom: calc(100% + 8px); left: 50%; padding: 2px 6px; border-radius: 2px; background: #000; color: var(--weiss); font: 400 10px/14px Arial, sans-serif; white-space: nowrap; opacity: 0; pointer-events: none; transform: translate(-50%, 10px); transition: opacity .2s var(--ease), transform .2s var(--ease); }
.diw-sort-opt:hover .diw-sort-tip, .diw-sort-opt:focus-visible .diw-sort-tip { opacity: 1; transform: translate(-50%, 0); }
.diw-sort-switch { position: relative; width: 19px; height: 7px; margin: 0 10px; border-radius: 8px; background: rgb(12 108 173 / .2); }
.diw-sort-switch span { position: absolute; top: -1px; left: 0; width: 9px; height: 9px; border-radius: 8px; background: var(--akzent); transition: left .3s ease-out; }
.diw-sort-switch.is-asc span { left: 10px; }
.diw-filter a { display: inline-flex; align-items: center; padding: 6px 15px 6px 16px; border-radius: 1px; color: var(--heading); font: 700 18px/17px var(--f-label); text-decoration: none; transition: background-color .2s var(--ease), color .2s var(--ease); }
.diw-filter a:hover { color: var(--akzent); }
.diw-filter a[aria-current] { background: var(--akzent); color: var(--weiss); }
.diw-cards--masonry { --masonry-row-gap: 25px; gap: var(--masonry-row-gap) 40px; align-items: start; }
.diw-cards--masonry.is-masonry { grid-auto-rows: 4px; row-gap: 0; }
.diw-cards--masonry .diw-card { background: transparent; box-shadow: none; }
.diw-cards--masonry .diw-card-cat { display: none; }
.diw-cards--masonry .diw-card-media::after { content: ""; position: absolute; inset: 0; background: rgb(10 10 10 / .2); opacity: 0; transition: opacity .45s var(--ease); pointer-events: none; }
.diw-cards--masonry .diw-card:hover .diw-card-media::after, .diw-cards--masonry .diw-card:focus-within .diw-card-media::after { opacity: 1; }
.diw-cards--masonry .diw-card:hover .diw-card-media img { transform: none; }
.diw-cards--masonry .diw-card-body { justify-content: flex-start; padding: 20px 0 10px; text-align: left; }
.diw-cards--masonry + .diw-buttons { margin-top: 40px; }

.diw-carousel { position: relative; margin-top: 40px; padding: 0 54px; }
.diw-carousel-track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 2 * var(--car-gap, 30px)) / 3); gap: var(--car-gap, 30px); list-style: none; margin: 0; padding: 2px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; }
.diw-carousel-track::-webkit-scrollbar { display: none; }
.diw-carousel-track > li { scroll-snap-align: start; }
.diw-carousel-btn { position: absolute; top: calc(50% - 38px); width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; color: var(--blau); }
.diw-carousel-btn svg { width: 28px; height: 28px; stroke-width: 3; }
.diw-svc-more .diw-carousel-btn { top: calc(50% - 46px); border-radius: 50%; background: rgb(12 108 173 / .9); color: var(--weiss); transition: background-color .25s; }
.diw-svc-more .diw-carousel-btn:hover { background: var(--akzent); }
.diw-svc-more .diw-carousel-btn svg { width: 18px; height: 18px; }
.diw-carousel-prev { left: 0; }
.diw-carousel-next { right: 0; }
.diw-carousel-btn[disabled] { opacity: .3; cursor: default; }
.diw-carousel-dots { display: flex; flex-wrap: wrap; justify-content: center; gap: 2px; margin-top: 20px; min-height: 24px; }
.diw-carousel-dots button { width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; }
.diw-carousel-dots button::before { content: ""; box-sizing: border-box; width: 10px; height: 10px; border: 2px solid transparent; background: var(--akzent); transition: background-color .3s, border-color .3s; }
.diw-carousel-dots button[aria-current="true"]::before { border-color: var(--akzent); background: transparent; }
.diw-carousel-foot { display: flex; justify-content: center; align-items: center; gap: 10px; margin-top: 20px; }
.diw-carousel-foot .diw-carousel-dots { margin-top: 0; }
.diw-carousel-toggle { width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; color: var(--akzent); transition: color .2s var(--ease); }
.diw-carousel-toggle[hidden] { display: none; }
.diw-carousel-toggle:hover { color: var(--blau); }
.diw-carousel-toggle svg { width: 14px; height: 14px; }
.diw-carousel-toggle .diw-play { display: none; }
.diw-carousel.is-paused .diw-carousel-toggle .diw-play { display: block; }
.diw-carousel.is-paused .diw-carousel-toggle .diw-pause { display: none; }

.diw-svc-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 30px; align-items: center; }
.diw-svc-intro { padding: 70px 0 50px; }
.diw-svc-refs { padding: 105px 0 130px; }
.diw-svc-refs .diw-h2 { font-size: 34px; line-height: 43px; margin-bottom: 60px; }
.diw-infobox { padding: 35px 0 30px; }
.diw-infobox--first { padding-top: 45px; }
.diw-infobox--last { padding-bottom: 50px; }
.diw-infobox:not(.diw-band--hell) { background: var(--weiss); }
.diw-svc-media { margin: 0; }
.diw-svc-media :is(.lightbox-trigger, img) { display: block; width: 100%; aspect-ratio: var(--svc-ratio, 1); }
.diw-svc-media img { object-fit: cover; }
.diw-svc-text { text-align: left; }
.diw-svc-lead { font: 700 26px/32px var(--f-head); color: var(--heading); margin: 0 0 30px; }
.diw-svc-text h3 { font: 700 18px/26px var(--f-head); color: var(--heading); margin: 24px 0 10px; }
.diw-infobox-head { display: flex; align-items: center; gap: 15px; margin: 0 0 13px; }
.diw-infobox-icon { display: flex; color: var(--lila); }
.diw-infobox-icon .diw-icon { width: 80px; height: 80px; stroke-width: .85; }
.diw-infobox-head h3 { font: 700 21px/26px var(--f-head); color: var(--heading); margin: 0; }
.diw-infobox-body::after { content: ""; display: table; clear: both; }
.diw-infobox-media { float: right; width: min(507px, 45%); margin: 0 0 20px 30px; }
.diw-infobox-media :is(.lightbox-trigger, img) { display: block; width: 100%; height: auto; }
.diw-infobox-media--square :is(.lightbox-trigger, img) { aspect-ratio: 1; }
.diw-infobox-media--square img { object-fit: cover; }
.diw-pager { border-block: 1px solid var(--line); }
.diw-pager .diw-wrap { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 20px; padding-block: 25px; }
.diw-pager a { display: inline-flex; align-items: center; gap: 14px; color: var(--heading); text-decoration: none; }
.diw-pager a:hover .diw-pager-title { color: var(--akzent); }
.diw-pager .diw-icon { width: 42px; height: 42px; flex: none; color: rgb(58 58 58 / .12); stroke-width: 1.4; transition: color .2s var(--ease); }
.diw-pager a:hover .diw-icon { color: rgb(58 58 58 / .23); }
.diw-pager-prev .diw-icon { transform: scaleX(-1); }
.diw-pager-next { justify-self: end; text-align: right; }
.diw-pager-meta { display: block; margin-bottom: 5px; font: 400 12px/24px var(--f-body); color: var(--grau-dunkel); }
.diw-pager-title { display: block; font: 700 20px/30px var(--f-head); transition: color .2s var(--ease); }
.diw-pager-list { justify-content: center; width: 44px; height: 44px; }
.diw-pager .diw-pager-list .diw-icon { width: 28px; height: 28px; stroke-width: 2; color: #8a8a8a; }
.diw-pager .diw-pager-list:hover .diw-icon { color: var(--heading); }
.diw-pager--col { border-block: 0; padding-inline: var(--rand); }
.diw-pager--col .diw-wrap { max-width: 1200px; padding: 25px 0; border-block: 1px solid rgb(204 204 204 / .5); }
.diw-pager--post { margin-bottom: 50px; }
.diw-post-lead { position: relative; margin: 0 0 45px; }
.diw-post-lead :is(.lightbox-trigger, img) { display: block; width: 100%; height: auto; }
.diw-post-lead .diw-card-cat { text-decoration: none; }
.diw-post-lead .diw-card-cat:hover, .diw-post-lead .diw-card-cat:focus-visible { background: var(--akzent); }
.diw-prose .diw-post-intro { font: 700 34px/44px var(--f-head); color: var(--heading); margin: 0 0 10px; }
.diw-related-band { padding: 0 0 70px; }
.diw-related-band .diw-h2 { font-size: 24px; line-height: 34px; margin-bottom: 35px; }
.diw-related-band .diw-h2::after { width: 60px; margin-top: 7px; background: var(--akzent); }
.diw-svc-more { --car-gap: 50px; padding: 50px var(--rand) 70px; }
.diw-svc-more > .diw-wrap { max-width: 1200px; padding: 0 0 60px; border-bottom: 1px solid rgb(204 204 204 / .5); }
.diw-svc-more .diw-h2 { font-size: 24px; line-height: 34px; margin-bottom: 35px; }
.diw-svc-more .diw-h2::after { width: 60px; margin-top: 7px; background: var(--akzent); }
.diw-related { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 25px 50px; list-style: none; margin: 0; padding: 0 0 35px; border-bottom: 1px solid rgb(204 204 204 / .5); }
.diw-related a { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 20px; align-items: start; color: var(--heading); text-decoration: none; }
.diw-related a:hover .diw-related-title { color: var(--akzent); }
.diw-related-media { display: block; aspect-ratio: 11 / 8; margin-block: 5px; overflow: hidden; background: var(--hell-2); }
.diw-related-media img { width: 100%; height: 100%; object-fit: cover; }
.diw-related-title { display: block; font: 400 15px/26px var(--f-body); }
.diw-svc-card a { display: block; color: var(--heading); text-align: center; text-decoration: none; }
.diw-svc-card-media { position: relative; display: block; aspect-ratio: 1; overflow: hidden; background: var(--hell-2); }
.diw-svc-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.diw-svc-card h3 { font: 700 20px/30px var(--f-head); margin: 25px 0 8px; }
.diw-svc-card a:hover h3 { color: var(--akzent); }
@media (hover: hover) and (pointer: fine) { .diw-svc-card a:hover img { transform: scale(1.04); } }
@media (min-width: 1300px) {
  .diw-svc-more .diw-carousel { padding: 0; }
  .diw-svc-more .diw-carousel-track { margin-inline: -2px; }
  .diw-svc-more .diw-carousel-prev { left: -43px; }
  .diw-svc-more .diw-carousel-next { right: -43px; }
}
@media (min-width: 1450px) {
  .diw-svc-more .diw-carousel-track { grid-auto-columns: calc((100% - 3 * var(--car-gap)) / 4); }
}

.diw-contact-block { position: relative; background: #000; color: var(--weiss); padding: 115px 0 90px; }
.diw-contact-block::before { content: ""; position: absolute; z-index: 1; top: -1px; left: 50%; width: 0; height: 0; border-style: solid; border-width: 30px 23.5px 0; border-color: var(--hell-3) transparent transparent; transform: translateX(-50%); }
.diw-contact-box { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 20px 0; max-width: 1180px; margin: 0 auto; padding: 60px 25px 10px; border: 9px double rgb(255 255 255 / .3); }
.diw-contact-intro { padding: 0 25px; }
.diw-contact-intro h2:first-child { font: 700 36px/46px var(--f-head); color: var(--weiss); margin: 0 0 35px; }
.diw-contact-intro h2:first-child::after { content: ""; display: block; width: 200px; max-width: 100%; height: 3px; margin-top: 15px; background: var(--akzent); }
.diw-contact-lead { font: 400 20px/32px var(--f-head); color: var(--weiss); margin: 0 0 25px; }
.diw-contact-items { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(2, auto); grid-auto-flow: column; gap: 25px 0; list-style: none; margin: 0; padding: 35px 0 45px; text-align: center; }
.diw-contact-items li { padding: 0 25px; }
.diw-contact-icon { display: flex; align-items: center; justify-content: center; width: 46px; height: 46px; margin: 0 auto 25px; border-radius: 50%; background: var(--akzent); color: var(--weiss); }
.diw-contact-icon .diw-icon { width: 22px; height: 22px; }
.diw-contact-items h3 { font: 700 14px/14px var(--f-head); color: var(--weiss); margin: 0 0 15px; }
.diw-contact-items p { margin: 0 0 10px; overflow-wrap: anywhere; }
.diw-contact-items a { color: var(--weiss); text-decoration: none; }
.diw-contact-items a:hover { text-decoration: underline; text-underline-offset: 3px; }

.diw-section { max-width: calc(1200px + 2 * var(--rand)); margin: 0 auto; padding: clamp(48px, 6vw, 80px) var(--rand); }
.diw-section--tight { padding-top: 24px; }
.diw-section--p70 { padding-top: 70px; padding-bottom: 70px; }
.diw-post { padding-top: 70px; padding-bottom: 50px; }
.diw-post .diw-prose { max-width: none; }
.diw-post .diw-post-gallery { margin-top: 35px; }
.diw-post .diw-post-gallery--first { margin: 0 0 35px; }
.diw-prose { max-width: 900px; }
.diw-prose h2 { font: 700 22px/1.35 var(--f-head); margin: 40px 0 14px; }
.diw-prose h2:first-child { margin-top: 0; }
.diw-prose h3 { font: 700 18px/1.35 var(--f-head); margin: 28px 0 10px; }
.diw-post .diw-prose h3 { font-size: 24px; line-height: 34px; }
.diw-post .diw-prose > h3:first-child { margin-top: 0; }
.diw-prose ul { padding-left: 22px; }
.diw-prose ul:not([class]) { list-style: none; padding-left: 0; }
.diw-prose ul:not([class]) > li { position: relative; padding-left: 22px; }
.diw-prose ul:not([class]) > li::before { content: ""; position: absolute; left: 0; top: .7em; width: 8px; height: 8px; background: var(--gruen-hell); }
.diw-post .diw-prose ul:not([class]) { list-style: disc; margin: 0 0 10px 20px; }
.diw-post .diw-prose ul:not([class]) > li { padding-left: 0; }
.diw-post .diw-prose ul:not([class]) > li::before { content: none; }
.diw-prose a { color: var(--akzent); text-decoration: underline; text-underline-offset: 3px; }
.diw-prose table { width: 100%; border-collapse: collapse; font-size: 14px; margin: 20px 0 28px; }
.diw-prose th, .diw-prose td { text-align: left; vertical-align: top; border-bottom: 1px solid var(--line); padding: 10px 14px 10px 0; overflow-wrap: break-word; hyphens: auto; }
.diw-prose .diw-credit { border-top: 1px solid var(--line); padding: 18px 0; overflow-wrap: anywhere; }
.diw-prose .diw-credit b { display: block; }
.diw-credit-files summary { list-style: none; cursor: pointer; display: inline-block; padding: 6px 0; font: 700 15px/1.4 var(--f-head); color: var(--akzent); text-decoration: underline; text-underline-offset: 4px; }
.diw-credit-files summary::-webkit-details-marker { display: none; }
.diw-credit-files[open] summary { margin-bottom: 12px; }
.diw-credit-files { margin: 0 0 12px; }
.diw-credit-files ul { margin: 0; font-size: 14px; overflow-wrap: anywhere; }

.diw-gallery ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: clamp(120px, 15vw, 220px); grid-auto-flow: dense; gap: 10px; }
.diw-gallery li { margin: 0; }
.diw-gallery-lead { grid-column: span 2; grid-row: span 2; }
.lightbox-trigger { position: relative; display: block; width: 100%; height: 100%; overflow: hidden; cursor: zoom-in; }
.lightbox-trigger::before { content: ""; position: absolute; z-index: 1; inset: 0; background: rgb(10 10 10 / .2); opacity: 0; pointer-events: none; transition: opacity .3s linear; }
.lightbox-trigger:hover::before, .lightbox-trigger:focus-visible::before { opacity: 1; }
.diw-gallery .lightbox-trigger { overflow: hidden; background: var(--hell-2); }
.diw-gallery img { width: 100%; height: 100%; object-fit: cover; }
.diw-figure { margin: 0; }
.diw-figure img { width: 100%; height: auto; }

.diw-logos { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 40px 65px; list-style: none; margin: 116px 0 0; padding: 0; }
.diw-logos li { display: flex; align-items: center; justify-content: center; min-height: 140px; }
.diw-logos img { width: 138px; max-width: 100%; height: auto; }
.diw-lead-italic { max-width: 745px; margin: 0 auto 50px; padding-top: 15px; text-align: center; font: italic 400 20px/34px var(--f-serif); color: var(--text); }
.diw-features--cards { gap: 35px; max-width: 1180px; margin-inline: auto; }
.diw-features--cards .diw-feature { padding: 40px; background: var(--karte); }
.diw-features--cards .diw-feature :is(h2, h3) { font-weight: 600; font-size: 24px; line-height: 30px; margin-bottom: 15px; }
.diw-team-sub { margin: 0 auto 40px; text-align: center; font: italic 400 20px/34px var(--f-serif); color: var(--text); }
.diw-features--cards .diw-plate { box-sizing: border-box; width: 92px; height: 92px; margin-bottom: 22px; border: 3px solid var(--weiss); }
.diw-team-group { margin: 0; }
.diw-team-group img, .diw-team-leads img, .diw-team-grid img { width: 100%; height: auto; }
.diw-team-leads figure > .lightbox-trigger, .diw-team-grid li > .lightbox-trigger, .diw-team-leads figure > img, .diw-team-grid li > img { display: block; padding: 6px; background: var(--rahmen); }
.diw-brochure-band { margin-top: 50px; padding: 135px 0; background: var(--weiss); border-top: 1px solid var(--linie); }
.diw-stripe { padding: 60px 0 55px; background: var(--hell); }
.diw-stripe + .diw-stripe { margin-top: 60px; }
.diw-stripe--head { margin-top: 40px; padding-bottom: 40px; }
.diw-stripe--head + .diw-stripe { margin-top: 40px; }
.diw-stripe--leads { padding-bottom: 62px; }
.diw-team-leads { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; max-width: 790px; list-style: none; margin: 0 auto; padding: 0; }
.diw-team-leads figure { margin: 0; text-align: center; }
.diw-team-leads figcaption { margin-top: 14px; }
.diw-team-leads figcaption b { display: block; font-weight: 700; }
.diw-team-leads figcaption span { display: block; }
.diw-team-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 30px; list-style: none; margin: 0; padding: 0; }
.diw-brochure { display: block; max-width: 1200px; margin: 84px auto 0; }
.diw-brochure img { width: 100%; height: auto; padding: 6px; background: var(--rahmen); }
.diw-team { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 30px; list-style: none; margin: 30px 0 0; padding: 0; }
.diw-team li { text-align: center; }
.diw-team-media { aspect-ratio: 4 / 5; overflow: hidden; background: var(--hell-2); margin-bottom: 14px; }
.diw-team-media img { width: 100%; height: 100%; object-fit: cover; }
.diw-team b { display: block; font: 700 18px/1.3 var(--f-head); color: var(--heading); }
.diw-team-names { display: flex; flex-wrap: wrap; gap: 14px 50px; margin: 24px 0 30px; }
.diw-team-names dt { font: 700 18px/1.3 var(--f-head); color: var(--heading); }
.diw-team-names dd { margin: 4px 0 0; color: var(--akzent); font-weight: 700; }
.diw-post-gallery { margin-top: 40px; }

.diw-form { display: grid; gap: 24px; }
.diw-formcard { background: var(--weiss); box-shadow: 0 2px 18px rgb(0 0 0 / .08); padding: clamp(22px, 4vw, 44px); }
.diw-formcard--page { background: transparent; box-shadow: none; padding: 0; }
.diw-kontakt-band { margin-top: 60px; background: var(--hell); }
.diw-kontakt { padding-top: 60px; padding-bottom: 60px; }
.diw-formcard--page .diw-field label { margin-bottom: 4px; }
.diw-formcard--page .diw-field :is(input, select, textarea) { min-height: 40px; padding: 6px 10px; font: 400 13px/25px var(--f-body); color: #000; background: var(--weiss); border-color: #e5e5e5; border-bottom-color: #8a8a8a; }
@media (hover: hover) and (pointer: fine) { .diw-formcard--page .diw-field :is(input, select, textarea):hover { border-color: #909090; } }
.diw-formcard--page .diw-field textarea { min-height: 150px; }
.diw-formcard--page .diw-choice-opt span { min-height: 40px; padding: 6px 14px; background: var(--weiss); border-color: #e5e5e5; }
.diw-formcard--page .diw-btn--primary, .diw-formcard--page .diw-btn--line { min-height: 40px; padding: 0 25px; }
@media (pointer: coarse) { .diw-formcard--page .diw-field :is(input, select, textarea) { font-size: 16px; } }
.diw-kontakt .diw-h2--plain { font-size: 32px; line-height: 44px; margin: 0 0 35px; }
.diw-map { margin: 0; background: var(--hell); }
.diw-map-link { position: relative; display: block; }
.diw-map-img { display: block; width: 100%; height: auto; }
.diw-map-img--narrow { display: none; }
.diw-map-cap { display: flex; flex-wrap: wrap; justify-content: center; gap: 15px 20px; padding: 30px 25px; }
@media (max-width: 1023.98px) {
  .diw-map-img--wide { display: none; }
  .diw-map-img--narrow { display: block; }
}
.diw-field label { display: block; font: 700 14px/20px var(--f-body); color: var(--heading); margin-bottom: 8px; }
.diw-field input, .diw-field select, .diw-field textarea { width: 100%; min-height: 48px; font: 400 15px/24px var(--f-body); color: var(--heading); background: var(--hell-3); border: 2px solid var(--linie); border-bottom-color: #8a8a8a; border-radius: 0; padding: 10px 14px; transition: border-color .2s var(--ease), background-color .2s var(--ease); }
.diw-field textarea { min-height: 170px; resize: vertical; }
@media (hover: hover) and (pointer: fine) { .diw-field :is(input, select, textarea):hover { border-color: #cfcfcf; border-bottom-color: var(--heading); } }
.diw-field input:focus, .diw-field select:focus, .diw-field textarea:focus { outline: 2px solid var(--akzent); outline-offset: 2px; border-color: var(--akzent); background: var(--weiss); }
.diw-form .diw-btn--primary { min-height: 48px; padding: 0 28px; background: var(--footer); color: var(--weiss); }
.diw-form .diw-btn--primary:hover, .diw-form .diw-btn--primary:focus-visible { background: var(--akzent); }
.diw-form .diw-btn--line { min-height: 48px; padding: 0 24px; border-color: var(--linie); color: var(--heading); }
.diw-form .diw-btn--line:hover { border-color: var(--heading); background: transparent; }
.diw-field [aria-invalid="true"] { border-color: var(--rot); }
.diw-err { display: block; color: var(--rot-dunkel); font: 700 14px/1.4 var(--f-body); margin-top: 6px; }
.diw-choice { border: 0; margin: 0; padding: 0; min-width: 0; }
.diw-choice legend { display: block; padding: 0; font: 700 14px/1.3 var(--f-body); color: var(--heading); margin-bottom: 8px; }
.diw-choice-opts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.diw-choice-opt { position: relative; display: flex; cursor: pointer; }
.diw-choice-opt input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.diw-choice-opt span { flex: 1; min-width: 0; -webkit-hyphens: auto; hyphens: auto; display: flex; align-items: center; gap: 12px; min-height: 56px; padding: 14px 18px; border: 2px solid var(--linie); background: var(--hell-3); color: var(--heading); font: 700 15px/1.25 var(--f-head); transition: background-color .2s var(--ease), border-color .2s var(--ease); }
.diw-choice-opt span::before { content: ""; flex: none; box-sizing: border-box; width: 22px; height: 22px; border: 2px solid var(--grau-dunkel); border-radius: 50%; background: var(--weiss); transition: border-width .15s, border-color .15s; }
.diw-choice-opt input:checked + span { border-color: var(--akzent); background: var(--weiss); box-shadow: inset 4px 0 0 var(--akzent); }
.diw-choice-opt input:checked + span::before { border-width: 7px; border-color: var(--akzent); }
.diw-choice-opt input:focus-visible + span { outline: 2px solid var(--akzent); outline-offset: 2px; }
.diw-choice-opt input[aria-invalid="true"] + span { border-color: var(--rot); }
@media (hover: hover) and (pointer: fine) { .diw-choice-opt input:not(:checked):hover + span { border-color: var(--grau); background: var(--weiss); } }
.diw-hint { display: block; color: var(--text); font: italic 400 13px/1.45 var(--f-body); margin-top: 6px; }
.diw-row2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 30px; }
.diw-hp { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.diw-status { font: 400 15px/1.5 var(--f-body); padding: 14px 16px; display: none; }
.diw-status.is-ok { display: block; background: var(--gruen); color: var(--weiss); }
.diw-status.is-error { display: block; background: var(--hell); color: var(--heading); border-left: 4px solid var(--rot); }
.diw-formsteps { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; list-style: none; margin: 0 0 6px; padding: 0 0 22px; border-bottom: 1px solid var(--linie); font: 700 15px/1.3 var(--f-head); color: var(--text); }
.diw-formsteps li { display: flex; align-items: center; gap: 12px; }
.diw-formsteps li + li::before { content: ""; width: 48px; height: 2px; margin-right: 4px; background: var(--linie); }
.diw-formsteps b { display: inline-grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; border: 2px solid var(--grau-dunkel); background: var(--weiss); }
.diw-formsteps [aria-current="step"] { color: var(--heading); }
.diw-formsteps [aria-current="step"] b { background: var(--akzent); border-color: var(--akzent); color: var(--weiss); }
.diw-formstep { display: grid; gap: 18px; border: 0; margin: 0; padding: 0; min-width: 0; }
.diw-formstep[hidden] { display: none; }
.diw-formstep-nav { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 14px; margin-top: 6px; }
.diw-formstep-nav .diw-btn:only-child { margin-left: auto; }
.diw-consent { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 6px 14px; align-items: start; }
.diw-consent input { width: 24px; height: 24px; margin: 1px 0 0; border: 2px solid var(--heading); background: var(--weiss) center / 16px no-repeat; cursor: pointer; }
.diw-consent input:checked { background-color: var(--akzent); border-color: var(--akzent); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3.4' stroke-linecap='square'%3E%3Cpath d='M4.5 12.5l5 5L19.5 7'/%3E%3C/svg%3E"); }
.diw-consent input:focus-visible { outline: 2px solid var(--akzent); outline-offset: 2px; }
.diw-consent input[aria-invalid="true"] { border-color: var(--rot); }
.diw-consent label { font: 400 14px/1.5 var(--f-body); color: var(--heading); cursor: pointer; }
.diw-consent .diw-err { grid-column: 2; }
@media (forced-colors: active) { .diw-consent input { -webkit-appearance: auto; appearance: auto; } }
.diw-form-done { display: none; align-items: center; gap: 24px; padding: 4px 0 8px; }
.diw-form-done p { margin: 0; }
.diw-done-lead { font: 700 20px/1.3 var(--f-head); color: var(--heading); margin-bottom: 4px !important; }
.diw-done-mark { flex: none; width: 64px; height: 64px; }
.diw-done-mark circle { fill: var(--gruen); }
.diw-done-mark path { fill: none; stroke: var(--weiss); stroke-width: 4.5; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 40; stroke-dashoffset: 0; }
.is-done > .diw-form, .is-done .diw-form-lead { display: none; }
.is-done .diw-form-done { display: flex; }
.is-done .diw-done-mark { animation: diw-done-pop .5s var(--ease) both; }
.is-done .diw-done-mark path { animation: diw-done-draw .45s var(--ease) .25s both; }
@keyframes diw-done-pop { from { opacity: 0; transform: scale(.5); } to { opacity: 1; transform: none; } }
@keyframes diw-done-draw { from { stroke-dashoffset: 40; } to { stroke-dashoffset: 0; } }
html.reduce-motion .is-done .diw-done-mark, html.reduce-motion .is-done .diw-done-mark path { animation: none; }
.diw-done-title:focus { outline: none; }

.diw-table-wrap { position: relative; overflow-x: auto; border-top: 1px solid var(--line); }
.diw-table { width: 100%; border-collapse: collapse; font: 400 14px/1.4 var(--f-body); font-variant-numeric: tabular-nums; min-width: 680px; }
.diw-table th, .diw-table td { text-align: left; padding: 12px 14px 12px 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.diw-table thead th { font: 700 13px/1.3 var(--f-head); color: var(--heading); }
.diw-table tbody th { font-weight: 700; }

.diw-dialog { position: fixed; inset: 0; z-index: 90; display: flex; align-items: flex-end; justify-content: center; visibility: hidden; pointer-events: none; transition: visibility 0s linear .5s; }
.diw-dialog.is-open { visibility: visible; pointer-events: auto; transition: visibility 0s linear 0s; }
.diw-dialog-backdrop { position: absolute; inset: 0; background: rgb(var(--dunkel-rgb) / 0); transition: background-color .5s var(--ease); }
.diw-dialog.is-open .diw-dialog-backdrop { background: rgb(var(--dunkel-rgb) / .6); }
.diw-dialog-sheet { position: relative; width: min(900px, 100%); max-height: min(92vh, 980px); max-height: min(92svh, 980px); overflow-y: auto; overscroll-behavior: contain; background: var(--weiss); transform: translateY(100%); transition: transform .55s var(--ease); box-shadow: 0 -20px 60px rgb(0 0 0 / .25); }
.diw-dialog.is-open .diw-dialog-sheet { transform: translateY(0); }
.diw-dialog-head { position: sticky; top: 0; z-index: 2; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 18px clamp(20px, 4vw, 44px); background: var(--weiss); border-bottom: 1px solid var(--line); }
.diw-dialog-head h2 { font: 700 22px/1.2 var(--f-head); }
.diw-dialog-close { display: inline-flex; align-items: center; gap: 10px; font: 700 14px/1 var(--f-head); padding: 12px 18px; background: var(--dunkel); color: var(--weiss); }
.diw-dialog-close:hover { background: var(--footer); }
.diw-dialog-close svg { width: 20px; height: 20px; }
.diw-dialog-body { padding: 24px clamp(20px, 4vw, 44px) 34px; }
.diw-dialog-lead { font: 400 16px/1.55 var(--f-body); color: var(--heading); margin: 0 0 22px; max-width: 700px; }

.diw-footer { position: relative; margin-bottom: 100px; background: rgb(48 49 53 / .68) url("/assets/img/static/footer-linie.png") no-repeat center top; color: var(--weiss); }
.diw-footer-bar { max-width: calc(1200px + 2 * var(--rand)); margin: 0 auto; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 6px 40px; padding: 58px var(--rand) 11px; font: 400 12px/24px var(--f-body); }
.diw-footer p { margin: 0; }
.diw-footer-left { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; }
.diw-footer-social { display: flex; gap: 4px; }
.diw-footer .diw-round:hover { color: var(--weiss); box-shadow: inset 0 0 0 1px var(--weiss); }
.diw-footer-right { display: flex; flex-direction: column; align-items: flex-end; }
.diw-footer-legal ul { display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; list-style: none; margin: 0; padding: 0; }
.diw-footer-legal li + li::before { content: "|"; margin: 0 6px; }
.diw-footer a, .diw-footer-legal button { color: var(--weiss); text-decoration: none; }
.diw-footer a:hover, .diw-footer-legal button:hover { text-decoration: underline; text-underline-offset: 3px; }
.diw-footer-legal button { display: inline-flex; align-items: center; gap: 6px; font: inherit; }
.diw-footer-legal button .diw-icon { width: 14px; height: 14px; }
.diw-footer-legal button[aria-pressed="true"] { text-decoration: underline; text-underline-offset: 3px; }
.diw-credit-line a { text-decoration: underline; text-underline-offset: 3px; }
.diw-footer-end { position: relative; }

.diw-dockrail { --dock-size: 44px; --dock-gap: 8px; --dock-bottom: 16px; position: absolute; right: 16px; bottom: calc(100% + 16px); height: 100000px; display: flex; flex-direction: column; justify-content: flex-end; align-items: flex-end; gap: var(--dock-gap); pointer-events: none; }
.diw-dockrail > * { pointer-events: auto; }
.diw-totop { position: sticky; z-index: 45; bottom: var(--dock-bottom); width: var(--dock-size); height: var(--dock-size); display: flex; align-items: center; justify-content: center; border: 1.5px solid rgb(var(--dunkel-rgb) / .7); background: transparent; color: var(--dunkel); opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity .3s var(--ease), transform .3s var(--ease), visibility 0s linear .3s, background-color .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease); }
.diw-totop.is-shown { opacity: 1; visibility: visible; transform: none; transition: opacity .3s var(--ease), transform .3s var(--ease), visibility 0s, background-color .2s var(--ease), border-color .2s var(--ease), color .2s var(--ease); }
.diw-totop:hover, .diw-totop:focus-visible { background: var(--akzent); border-color: var(--akzent); color: var(--weiss); }
.diw-totop:focus-visible { outline-color: var(--akzent); }
.diw-totop svg { width: 20px; height: 20px; }

.media-loading::before { content: ""; position: absolute; z-index: 3; right: 14px; top: 14px; width: 20px; height: 20px; border: 2px solid rgb(255 255 255 / .45); border-top-color: var(--akzent); border-radius: 50%; animation: diw-spin 1s linear infinite; pointer-events: none; }
@keyframes diw-spin { to { transform: rotate(360deg); } }
html.reduce-motion .media-loading::before { animation: diw-pulse 2s ease-in-out infinite; }
@keyframes diw-pulse { 50% { opacity: .35; } }
.diw-nav-list > li > a { position: relative; overflow: hidden; }
.diw-ink { position: absolute; z-index: 2; border-radius: 50%; background: rgb(10 10 10 / .2); pointer-events: none; transform: scale(0); animation: diw-ink .6s ease-out forwards; }
.diw-ink--nav { background: rgb(12 108 173 / .15); }
@keyframes diw-ink { to { transform: scale(1); opacity: 0; } }

html.reduce-motion :is(.diw-menu-panel, .diw-menu-backdrop, .diw-dialog-sheet, .diw-sub) { transition-duration: .01s; }
html.reduce-motion .diw-slide { transition-duration: .2s; }
html.reduce-motion :is(.diw-gallery img, .diw-tile img, .diw-card-media img, .diw-svc-card-media img, .diw-totop) { transform: none; transition-property: opacity, background-color, border-color, color; }

html:has(> body.admin-bar-on) { --admin-bar-h: 36px; }

@media (min-width: 640px) {
  .diw-dockrail { --dock-size: 54px; --dock-gap: 10px; }
}
@media (min-width: 768px) {
  .diw-dockrail { --dock-bottom: 48px; right: 48px; bottom: calc(100% + 48px); }
}
@media (max-width: 1280.98px) {
  .diw-tile-title { top: 24px; left: 24px; right: 24px; font-size: 20px; line-height: 28px; }
}
@media (max-width: 1199.98px) {
  .diw-trio { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .diw-trio-text { grid-column: 1 / -1; }
  .diw-features.diw-features--cards { grid-template-columns: minmax(0, 1fr); gap: 35px; width: calc((100% + 30px) * 2 / 3 - 65px); margin-inline: auto; }
  .diw-wohl { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
}
@media (max-width: 1023.98px) {
  section[id] { scroll-margin-top: calc(var(--admin-bar-h) + 84px); }
  .diw-header { --top-h: 80px; position: relative; top: auto; background: var(--weiss); border-bottom: 0; box-shadow: 0 0 15px 1px rgb(0 0 0 / .07); }
  .diw-logo { width: 156px; }
  .diw-top-info, .diw-navbar { display: none; }
  .diw-menu-btn { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; width: 44px; height: 44px; color: var(--heading); }
  .diw-menu-btn span, .diw-menu-float span { display: block; width: 22px; height: 2px; background: currentColor; }
  .diw-menu-btn:hover { color: var(--akzent); }
  .diw-menu-float { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; position: fixed; z-index: 60; top: calc(var(--admin-bar-h) + 10px); right: calc(10px + var(--edge)); width: 44px; height: 44px; background: rgb(0 0 0 / .2); color: var(--weiss); opacity: 0; visibility: hidden; transition: opacity .3s var(--ease), visibility 0s linear .3s, background-color .2s var(--ease); }
  .diw-header.is-stuck + .diw-menu-float { opacity: 1; visibility: visible; transition: opacity .3s var(--ease), visibility 0s, background-color .2s var(--ease); }
  @media (hover: hover) and (pointer: fine) { .diw-menu-float:hover { background: rgb(0 0 0 / .5); } }
  .diw-features { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .diw-split { grid-template-columns: minmax(0, 1fr); }
  .diw-trio { grid-template-columns: minmax(0, 1fr); }
  .diw-wohl { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .diw-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .diw-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .diw-contact-box { grid-template-columns: minmax(0, 1fr); padding: 40px 30px; }
  .diw-team-grid { gap: 20px; }
  .diw-tiles, .diw-brochure { margin-top: 50px; }
  .diw-brochure-band { padding: 80px 0; }
  .diw-texthead--portfolio { min-height: 260px; }
  .diw-related { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .diw-footer-bar, .diw-footer-right { flex-direction: column; align-items: center; text-align: center; }
  .diw-footer-left, .diw-footer-legal ul { justify-content: center; }
}
@media (max-width: 767.98px) {
  .diw-carousel { padding: 0 40px; }
  .diw-carousel-track { grid-auto-columns: calc((100% - var(--car-gap, 30px)) / 2); }
  .diw-contact-intro h2:first-child { font-size: 30px; line-height: 38px; }
  .diw-contact-intro, .diw-contact-items li { padding: 0; }
  .diw-contact-items { grid-template-columns: minmax(0, 1fr); grid-template-rows: none; grid-auto-flow: row; gap: 25px 20px; }
  .diw-svc-split { grid-template-columns: minmax(0, 1fr); }
  .diw-features.diw-features--cards { width: auto; }
  .diw-team-grid, .diw-team-leads, .diw-related { grid-template-columns: minmax(0, 1fr); }
  .diw-logos { grid-template-columns: minmax(0, 1fr); gap: 30px 40px; margin-top: 60px; }
  .diw-texthead { min-height: 100px; }
  .diw-texthead h1 { font-size: 24px; line-height: 34px; }
  .diw-texthead--portfolio { min-height: 260px; }
  .diw-texthead--portfolio h1 { font-size: 38px; line-height: 48px; }
  .diw-texthead-kicker { font-size: 22px; line-height: 32px; }
  .diw-stripe { padding: 40px 0 20px; }
  .diw-stripe + .diw-stripe, .diw-stripe--head, .diw-stripe--head + .diw-stripe { margin-top: 30px; }
  .diw-crumbs { display: none; }
  .diw-h2, .diw-kontakt .diw-h2--plain { font-size: 26px; line-height: 34px; }
  .diw-kontakt .diw-h2--plain { margin-bottom: 24px; }
  .diw-kontakt-band { margin-top: 40px; }
  .diw-kontakt { padding-top: 40px; padding-bottom: 40px; }
  .diw-gallery ul { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: clamp(120px, 36vw, 200px); }
}
@media (max-width: 639.98px) {
  .diw-header { --top-h: 75px; }
  .diw-features, .diw-cards, .diw-row2, .diw-tiles { grid-template-columns: minmax(0, 1fr); }
  .diw-carousel-track { grid-auto-columns: 100%; }
  .diw-tiles--two .diw-tiles > .diw-tile:nth-child(n) { flex-basis: 100%; }
  .diw-texthead--portfolio h1 { font-size: 30px; line-height: 40px; }
  .diw-infobox-media { float: none; width: 100%; margin: 0 0 20px; }
  .diw-pager .diw-wrap { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .diw-pager .diw-pager-list, .diw-pager span[aria-hidden="true"] { display: none; }
  .diw-pager .diw-wrap > a { justify-self: stretch; justify-content: center; text-align: center; }
  .diw-pager-title { font-size: 15px; line-height: 20px; }
  .diw-contact-box { padding: 30px 18px; border-width: 6px; }
  .diw-infocircle-btn { width: 44px; height: 44px; margin: -22px 0 0 -22px; }
  .diw-infocircle-center { inset: 34px; padding: 18px; }
  .diw-infocircle-panel { font-size: 17px; line-height: 25px; }
  .diw-gallery { margin-inline: calc(1vw - var(--rand)); }
  .diw-gallery ul { gap: 6px; }
  .diw-choice-opts { gap: 8px; }
  .diw-choice-opt span { gap: 8px; padding: 10px 12px; font-size: 14px; }
  .diw-formsteps li + li::before { width: 20px; }
  .diw-dialog-close span { display: none; }
  .diw-logo { width: 156px; }
}
@media (max-width: 400px) {
  .diw-infocircle { display: none; }
  .diw-iclist { display: block; }
}
