/* Gemeinsame Gestaltung für Startseite, Leistungsseiten und Kontaktwege. */
:root{ --r-sm:7px; --surface-mint:var(--brand-surface); --rule-mint:var(--brand-line); }
.btn, .hero__cta{ border-radius:7px; }
.h2{ font-weight:500; line-height:1.14; letter-spacing:-.035em; }
.head{ grid-template-columns:32px minmax(0,1fr); column-gap:18px; padding-top:20px; margin-bottom:clamp(24px,3vw,38px); }
.head__no{ display:grid; place-items:center; align-self:start; width:32px; height:32px; padding:0; border:1px solid var(--rule-mint); border-radius:50%; font-size:12px; letter-spacing:0; }
.head__no::after{ display:none; }
.head--inv .head__no{ border-color:var(--brand-line-dark); }
.head__main{ min-width:0; }
.head__main .lead{ max-width:62ch; }
.hd.is-stuck{ box-shadow:0 5px 24px -19px rgba(var(--brand-navy-rgb),.32); }
.hd.is-stuck .hd__nav a[aria-current="page"]{ color:var(--ink); }
.hd__nav a[aria-current="page"]::after{ transform:scaleX(1); }
.form :is(input,select,textarea){ scroll-margin-block:24px; }

/* Die vier Leistungen bleiben mit dem Architekturmodell verbunden. */
.hero__services{ position:relative; z-index:2; min-width:0; padding:20px 0 28px; border-top:1px solid rgba(255,255,255,.19); }
.hero__services-heading{ display:flex; align-items:center; justify-content:space-between; gap:14px 24px; margin-bottom:14px; }
.hero__services-heading p{ color:var(--brand-on-dark); font-size:13px; font-weight:550; }
.hero__services-heading p > span{ margin-left:5px; color:var(--brand-on-dark-muted); font-weight:400; }
.hero__services-heading > a{ display:inline-flex; align-items:center; gap:10px; min-height:32px; color:var(--brand-on-dark-muted); font-size:12px; }
.hero__services-heading > a:hover{ color:var(--brand-white); text-decoration:underline; text-underline-offset:4px; }
.hero__nav{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.hero__nav > a{ position:relative; display:grid; grid-template-columns:60px minmax(0,1fr); align-items:center; gap:14px; min-width:0; min-height:132px; padding:16px; border:1px solid var(--brand-hover); border-radius:10px; background:var(--brand-raised); color:var(--brand-white); transition:border-color .2s ease,background .2s ease; }
.hero__service-image{ display:block; align-self:stretch; min-height:94px; overflow:hidden; border-radius:5px; background:var(--brand-hover); }
.hero__service-image img{ display:block; width:100%; height:100%; object-fit:cover; object-position:50% 50%; }
.hero__service-copy{ display:grid; align-content:center; gap:7px; min-width:0; }
.hero__nr{ display:flex; align-items:center; gap:8px; padding-right:18px; color:var(--brand-teal-light); font-size:11px; font-weight:600; line-height:1.3; font-variant-numeric:tabular-nums; }
.hero__nr > span{ color:var(--brand-on-dark-muted); font-size:9px; font-weight:400; letter-spacing:.055em; }
.hero__was{ display:block; font-family:var(--ff-d); font-size:17px; font-weight:500; line-height:1.25; letter-spacing:-.02em; overflow-wrap:break-word; hyphens:auto; }
.hero__det{ display:block; color:var(--brand-on-dark-muted); font-size:12px; line-height:1.55; }
.hero__pf{ position:absolute; top:15px; right:13px; width:16px; height:16px; fill:none; stroke:var(--brand-teal-light); stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; transition:transform .2s ease; }
.hero__nav > a:hover, .hero__nav > a:focus-visible{ background:var(--brand-hover); border-color:var(--brand-line-strong); }
.hero__nav > a:hover .hero__pf, .hero__nav > a:focus-visible .hero__pf{ transform:translateX(2px); }

/* Zusammenarbeit: Vorteile und klare Voraussetzungen auf gleicher Höhe. */
.fit{ background:var(--brand-white); }
.fit__heading{ display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); align-items:end; gap:clamp(24px,4vw,48px); margin-bottom:28px; }
.fit__eyebrow{ display:flex; align-items:center; gap:12px; margin-bottom:16px; font-size:12px; font-weight:600; letter-spacing:.09em; text-transform:uppercase; color:var(--teal-dk); }
.fit__eyebrow > span{ display:grid; place-items:center; width:32px; height:32px; border:1px solid var(--brand-line); border-radius:50%; font-size:14px; letter-spacing:0; }
.fit__heading h2{ font-family:var(--ff-d); font-size:clamp(1.75rem,3vw,2.625rem); line-height:1.15; letter-spacing:-.035em; font-weight:500; text-wrap:balance; }
.fit__heading h2 > span{ color:var(--brand-muted); }
.fit__heading > p{ max-width:45ch; padding-bottom:3px; font-size:16px; line-height:1.7; color:var(--ink-2); }
.fit__layout{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:22px; align-items:stretch; }
.fit__benefits, .fit__conditions{ min-width:0; padding:clamp(20px,2.2vw,28px); border:1px solid var(--rule-mint); border-radius:12px; }
.fit__benefits{ background:var(--surface-mint); }
.fit__layout h3{ font-family:var(--ff-d); font-size:20px; line-height:1.3; font-weight:500; letter-spacing:-.025em; }
.fit__strengths{ display:grid; margin-top:18px; }
.fit__strengths li{ display:grid; grid-template-columns:28px minmax(0,1fr); gap:12px; padding:14px 0; border-top:1px solid var(--brand-line); }
.fit__strengths li:last-child{ padding-bottom:0; }
.fit__icon{ display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:var(--brand-surface-deep); color:var(--brand-teal-text); font-size:11px; font-weight:600; font-variant-numeric:tabular-nums; }
.fit__strengths h4{ font-family:var(--ff-d); font-size:16px; line-height:1.4; font-weight:550; letter-spacing:-.012em; }
.fit__strengths p{ margin-top:7px; max-width:42ch; font-size:14px; line-height:1.65; color:var(--ink-2); }
.fit__accordions{ margin-top:24px; }
.fit__accordions details{ border-top:1px solid var(--rule-mint); }
.fit__accordions summary{ display:flex; align-items:center; justify-content:space-between; gap:18px; min-height:56px; padding:14px 0; cursor:pointer; list-style:none; font-size:1rem; font-weight:550; line-height:1.5; }
.fit__accordions summary::-webkit-details-marker{ display:none; }
.fit__accordions summary:hover, .fit__accordions details[open] summary{ color:var(--teal-dk); }
.fit__accordions summary i{ position:relative; display:block; width:24px; height:24px; flex:none; border:1px solid var(--brand-line); border-radius:50%; }
.fit__accordions summary i::before, .fit__accordions summary i::after{ content:""; position:absolute; top:10px; left:6px; width:10px; height:1px; background:currentColor; }
.fit__accordions summary i::after{ transform:rotate(90deg); transition:transform .2s ease; }
.fit__accordions details[open] summary i::after{ transform:rotate(0); }
.fit__accordions details > p{ padding:0 28px 18px 0; color:var(--ink-2); font-size:1rem; line-height:1.6; }
.fit__contact{ display:flex; align-items:center; justify-content:space-between; gap:20px 28px; margin-top:18px; padding:22px clamp(20px,2.4vw,30px); background:var(--brand-navy); color:var(--brand-white); border-radius:12px; }
.fit__contact b{ font-family:var(--ff-d); font-size:20px; font-weight:500; letter-spacing:-.02em; }
.fit__contact p{ margin-top:5px; color:var(--brand-on-dark-muted); font-size:14px; }
.fit__contact .btn{ flex:none; min-height:52px; background:var(--brand-teal-light); color:var(--brand-navy); font-size:13px; }
.fit__contact .btn:hover{ background:var(--brand-teal-hover); }
.fit__contact :focus-visible{ outline-color:var(--brand-teal-light); }

/* Eigenständige Bildtafel für jede Unterseite, ohne Schleier über dem Motiv. */
.page-detail .phero{ background:var(--brand-surface); }
.phero--framed{ padding-block:clamp(104px,9vw,128px) clamp(28px,3vw,40px); }
.phero__grid{ display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); align-items:center; gap:clamp(28px,4vw,52px); }
.phero__copy{ min-width:0; }
.phero--framed .phero__fig{ position:relative; inset:auto; z-index:auto; width:100%; height:auto; aspect-ratio:16/10; max-height:330px; overflow:hidden; border-radius:12px; clip-path:none; opacity:1; background:var(--brand-line); box-shadow:0 25px 50px -34px rgba(var(--brand-navy-rgb),.4); }
.phero--framed .phero__fig > picture{ position:absolute; inset:0; }
.phero--framed .phero__fig::after{ display:none; }
.phero--framed .phero__fig img{ width:100%; height:100%; object-fit:cover; }
.page-detail .phero__h1{ font-weight:500; line-height:1.08; letter-spacing:-.04em; }
.phero--framed .phero__h1{ max-width:23ch; margin-top:12px; font-size:clamp(2rem,3.25vw,2.875rem); line-height:1.13; }
.phero--framed .phero__lead{ max-width:54ch; font-size:16px; }
.phero__act{ align-items:center; margin-top:22px; }
.phero__act .link{ margin-top:0; }
.crumb{ font-size:12px; margin-bottom:16px; }
.crumb a{ min-height:32px; display:inline-flex; align-items:center; }
.comp__fig .frame, .lb__fig .frame, .panel__fig .frame{ border-radius:12px; }

/* Informationsraster: ruhige Flächen, echte Interaktion nur bei Links. */
.sectors, .quality{ grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.sectors > li, .quality > article{ display:grid; grid-template-columns:28px minmax(0,1fr); align-content:start; gap:12px; padding:20px; border:1px solid var(--rule-mint); border-radius:10px; background:var(--brand-surface); }
.sec--alt .sectors > li, .sec--alt .quality > article{ background:var(--brand-white); }
.sectors > li::after{ display:none; }
.sectors li:hover h3{ transform:none; }
.sectors__no, .quality__no{ display:grid; place-items:center; grid-column:1; grid-row:1; width:28px; height:28px; border:0; border-radius:7px; background:var(--brand-surface-deep); color:var(--brand-teal-text); font-size:12px; letter-spacing:0; }
.sectors h3, .quality h3{ grid-column:2; align-self:center; margin:0; font-size:clamp(1.125rem,1.6vw,1.3125rem); line-height:1.35; font-weight:500; letter-spacing:-.02em; }
.sectors p, .quality p{ grid-column:1/-1; margin:0; font-size:1rem; line-height:1.6; max-width:48ch; }
.sec--dark .sectors > li, .sec--dark .quality > article{ background:var(--brand-raised); border-color:var(--brand-line-dark); }
.sec--dark .sectors p, .sec--dark .quality p{ color:var(--brand-on-dark-muted); }
.sec--dark .sectors__no, .sec--dark .quality__no{ background:var(--brand-raised); color:var(--brand-teal-light); }
.quality:has(> article:nth-child(4):last-child){ grid-template-columns:repeat(2,minmax(0,1fr)); }
.seals{ border-radius:12px; }
.facts{ gap:12px; }
.facts > div{ padding:18px; border:1px solid var(--rule-mint); border-radius:9px; background:var(--brand-surface); }
.facts dt{ font-size:11px; letter-spacing:.07em; }
.facts dd{ margin-top:8px; font-weight:550; }
.career, .join{ clip-path:none; border-radius:15px; }
.career::after, .join::after{ opacity:.6; }
.join__form{ border-radius:10px; }
.jobs{ display:grid; gap:10px; border:0; }
.jobs li{ padding:clamp(18px,2vw,24px); border:1px solid var(--rule-mint); border-radius:10px; background:var(--brand-surface); }
.jobs li:hover{ background:var(--brand-surface); }
.jobs h3{ font-weight:500; }
.jobs__tag{ font-size:11px; letter-spacing:.08em; }
.lswitch{ background:var(--brand-white); }
.lswitch__in{ gap:8px; padding-block:16px; }
.lswitch__label{ margin-right:8px; }
.lswitch a{ display:inline-flex; align-items:center; min-height:42px; padding:9px 16px; border:1px solid var(--rule-mint); border-radius:100px; background:var(--brand-surface); font-size:13px; }
.lswitch a::after{ display:none; }
.lswitch a:hover{ border-color:var(--brand-line-strong); background:var(--brand-surface); }
.lswitch a.is-active, .lswitch a[aria-current="page"]{ background:var(--navy); border-color:var(--navy); color:var(--brand-white); font-weight:500; }

/* Akkordeons und Formulare teilen Abstände, Konturen und Fokuszustände. */
.faq{ display:grid; gap:10px; align-items:start; border:0; }
.faq details{ border:1px solid var(--rule-mint); border-radius:10px; background:var(--brand-white); }
.faq summary{ min-height:60px; padding:17px 20px; font-size:1rem; font-weight:500; }
.faq details[open]{ border-color:var(--brand-line-strong); background:var(--brand-surface); }
.faq details[open] summary{ color:var(--brand-teal-text); }
.faq__body{ max-width:84ch; padding:0 20px 20px; }
.faq__body p{ font-size:1rem; line-height:1.65; }
.faq summary:focus-visible, .fit__accordions summary:focus-visible{ outline:2px solid var(--teal-dk); outline-offset:3px; border-radius:6px; }
.sec--dark .faq details{ background:var(--brand-raised); border-color:var(--brand-line-dark); }
.sec--dark .faq details[open] summary{ color:var(--brand-teal-light); }
.sec--dark .faq__body p{ color:var(--brand-on-dark-muted); }
.field input, .field select, .field textarea, .field--light input, .field--light select, .field--light textarea{ min-height:52px; border-radius:7px; font-size:16px; background-color:var(--brand-raised); border-color:var(--brand-line-dark); }
.field > span, .field--light > span{ color:var(--brand-on-dark-muted); font-size:.875rem; letter-spacing:.025em; }
.field textarea, .field--light textarea{ min-height:126px; }
.field input:focus, .field select:focus, .field textarea:focus, .field--light input:focus, .field--light select:focus, .field--light textarea:focus{ background-color:var(--brand-hover); border-color:var(--brand-teal-light); }
.form__note{ font-size:13px; line-height:1.7; color:var(--brand-on-dark-muted); }
.form__note a{ text-decoration:underline; text-underline-offset:3px; }
.cinfo{ padding:8px 24px; border:1px solid var(--brand-line-dark); border-radius:12px; background:var(--brand-raised); }
.cinfo > div{ margin-block:0; padding:16px 0; }
.cinfo > div:last-child{ border-bottom:0; }
.cinfo span{ color:var(--brand-on-dark-muted); font-size:11px; letter-spacing:.08em; }
.cinfo p{ color:var(--brand-on-dark-muted); }
.cinfo a{ font-weight:500; }
.film__direct{ padding:15px 0; color:var(--brand-on-dark); font-size:14px; }
.film__direct a{ text-decoration:underline; text-underline-offset:4px; }
.legal h1{ font-weight:500; letter-spacing:-.035em; }
.legal h2{ font-weight:500; line-height:1.35; }
.legal .todo{ border-radius:5px; }
#fehler-zeile .link{ display:inline; margin:0; padding:0; font:inherit; overflow-wrap:anywhere; }
#ref{ overflow-wrap:anywhere; }
.receipt-fallback{ margin-top:20px; max-width:62ch; color:var(--ink-2); font-size:14px; }

/* Film: kurze Einleitung neben einer begrenzten, unverzerrten Videofläche. */
.film--compact{ padding-block:clamp(44px,4.5vw,64px); }
.film__layout{ display:grid; grid-template-columns:minmax(0,.78fr) minmax(0,1.7fr); align-items:center; gap:clamp(30px,4vw,56px); }
.film__intro, .film--compact .film__fig{ min-width:0; }
.film__eyebrow{ display:flex; align-items:center; gap:12px; margin:0 0 16px; color:var(--brand-on-dark-muted); font-size:.75rem; font-weight:500; letter-spacing:.09em; text-transform:uppercase; }
.film__eyebrow > span{ display:grid; place-items:center; width:32px; height:32px; border:1px solid var(--brand-line-dark); border-radius:50%; color:var(--brand-teal-light); letter-spacing:0; }
.film__intro h2{ font-family:var(--ff-d); font-size:clamp(30px,3.15vw,43px); font-weight:500; line-height:1.12; letter-spacing:-.035em; }
.film__intro h2 > span{ color:var(--brand-teal-light); }
.film__description{ margin-top:21px; max-width:34ch; color:var(--brand-on-dark-muted); font-size:1rem; line-height:1.7; }
.film__duration{ display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin-top:27px; color:var(--brand-on-dark-muted); font-size:.8125rem; }
.film__duration > span + span{ border-left:1px solid var(--brand-line-dark); padding-left:12px; }
.film--compact .film__fig{ width:100%; max-width:680px; justify-self:end; }
.film--compact .film__stage{ aspect-ratio:16/9; border:1px solid var(--brand-line-dark); border-radius:12px; clip-path:none; box-shadow:0 18px 40px -25px rgba(var(--brand-navy-rgb),.5); }
.film--compact .film__v{ object-fit:contain; }
.film--compact .film__cue{ gap:15px; }
.film--compact .film__cue__ico{ width:58px; border-radius:50%; }
.film--compact .film__cue__txt{ font-size:1.125rem; font-weight:500; }
.film--compact .film__cue__txt b{ font-size:.75rem; letter-spacing:.035em; font-weight:400; color:var(--brand-on-dark); }
.film--compact .film__hud{ padding:12px 16px 17px; gap:12px; }
.film--compact .film__toggle{ width:44px; height:44px; border-radius:50%; }
.film--compact .film__time{ display:block; font-size:.75rem; }
.film--compact .film__mute{ font-size:.75rem; letter-spacing:.03em; color:var(--brand-on-dark); }
.film--compact .film__caps{ display:block; margin-top:14px; }
.film--compact .film__ch{ grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; }
.film--compact .film__ch button{ min-height:64px; height:100%; padding:10px; border:1px solid var(--brand-line-dark); border-radius:7px; background:var(--brand-raised); color:var(--brand-on-dark-muted); font-size:.875rem; line-height:1.35; }
.film--compact .film__ch button span{ margin-bottom:7px; color:var(--brand-teal-light); font-family:var(--ff-t); font-size:.75rem; letter-spacing:0; font-weight:500; }
.film--compact .film__ch button:hover, .film--compact .film__ch button:focus-visible{ background:var(--brand-hover); border-color:var(--brand-line-strong); color:var(--brand-white); }
.film--compact .film__ch li.is-on button{ border-color:var(--brand-teal-light); background:var(--brand-hover); color:var(--brand-white); }
.film--compact .film__stage:focus-within{ outline:2px solid var(--brand-teal-light); outline-offset:4px; }

/* Karriere: erreichbare Stellen statt eines großen Werbebanners. */
.career--invitation{ grid-template-columns:minmax(0,.95fr) minmax(0,1.15fr); gap:clamp(24px,3vw,40px); margin-top:clamp(28px,3.5vw,44px); padding:clamp(22px,2.4vw,32px); border:1px solid var(--brand-line); border-radius:12px; background:var(--brand-surface); color:var(--ink); }
.career--invitation::after{ display:none; }
.career--invitation .career__label{ margin:0 0 20px; color:var(--brand-teal-text); font-size:.75rem; line-height:1.5; letter-spacing:.1em; }
.career--invitation h3{ margin:0; max-width:none; font-size:clamp(28px,3vw,39px); font-weight:500; line-height:1.12; letter-spacing:-.035em; }
.career--invitation h3 > span{ color:var(--brand-muted); }
.career--invitation .career__intro{ margin:19px 0 0; max-width:42ch; font-size:1rem; line-height:1.65; color:var(--ink-2); }
.career__all{ display:inline-flex; align-items:center; gap:13px; min-height:44px; margin-top:17px; border-bottom:1px solid var(--brand-line-strong); color:var(--brand-teal-text); font-size:.875rem; font-weight:550; }
.career__all svg, .career__roles svg{ width:18px; height:18px; flex:none; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.career__all:hover{ border-color:var(--brand-teal-text); }
.career__opportunities{ min-width:0; }
.career--invitation .career__roles-title{ display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:8px 20px; max-width:none; margin:0 0 15px; color:var(--ink); font-size:.875rem; font-weight:500; }
.career__roles-title > span{ color:var(--ink-2); font-size:.75rem; font-weight:400; }
.career__roles{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.career__roles > a{ display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:60px; min-width:0; padding:13px 14px; border:1px solid var(--brand-line); border-radius:9px; background:var(--brand-white); font-family:var(--ff-d); font-size:1rem; font-weight:500; line-height:1.4; letter-spacing:-.015em; transition:background .2s ease,border-color .2s ease,color .2s ease; }
.career__roles > a > span{ min-width:0; overflow-wrap:break-word; hyphens:auto; }
.career__roles svg{ color:var(--brand-teal-text); }
.career__roles > a:hover{ background:var(--brand-navy); border-color:var(--brand-navy); color:var(--brand-white); }
.career__roles > a:hover svg{ color:var(--brand-teal-light); }
.career__bottom{ display:flex; flex-wrap:wrap; align-items:center; gap:9px 20px; margin-top:16px; }
.career--invitation .career__bottom p{ max-width:34ch; margin:0; color:var(--ink-2); font-size:.8125rem; line-height:1.55; }
.career__bottom > a{ display:inline-flex; align-items:center; gap:8px; min-height:38px; color:var(--brand-teal-text); font-size:.875rem; font-weight:500; }
.career__bottom > a:hover{ text-decoration:underline; text-underline-offset:4px; }
.career--invitation :focus-visible{ outline-color:var(--teal-dk); box-shadow:0 0 0 5px rgba(var(--brand-teal-text-rgb),.14); }

/* Bewerbung: klar gegliederte helle Formularfläche mit persönlichem Kontakt. */
.application{ background:var(--brand-surface); }
.application__layout{ display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.65fr); gap:clamp(30px,5vw,72px); align-items:start; }
.application__intro{ min-width:0; padding-top:12px; }
.application__eyebrow{ display:flex; align-items:center; gap:12px; margin-bottom:16px; font-size:.75rem; font-weight:500; letter-spacing:.08em; text-transform:uppercase; color:var(--brand-teal-text); }
.application__eyebrow > span{ display:grid; place-items:center; width:32px; height:32px; border:1px solid var(--brand-line-strong); border-radius:50%; letter-spacing:0; }
.application__intro h2{ font-family:var(--ff-d); font-size:clamp(30px,3.3vw,44px); font-weight:500; letter-spacing:-.035em; line-height:1.15; overflow-wrap:break-word; }
.application__intro h2 > span{ color:var(--brand-muted); }
.application__intro > p:not([class]){ margin-top:22px; max-width:40ch; color:var(--ink-2); font-size:1rem; line-height:1.7; }
.application__promise{ display:grid; gap:7px; padding:16px 0; margin-top:18px; border-block:1px solid var(--brand-line); }
.application__promise b{ color:var(--brand-teal-text); font-size:.9375rem; font-weight:550; }
.application__promise span{ max-width:36ch; font-size:.875rem; color:var(--ink-2); line-height:1.6; }
.application__help{ margin-top:18px; }
.application__help h3{ margin-bottom:9px; color:var(--ink); font-size:.875rem; font-weight:550; }
.application__phone{ display:inline-flex; align-items:center; gap:18px; padding-block:7px; font-family:var(--ff-d); font-size:1.25rem; line-height:1.4; letter-spacing:-.025em; }
.application__phone > span{ color:var(--brand-teal-text); }
.application__help > p{ margin:4px 0 7px; font-size:.8125rem; color:var(--ink-2); }
.application__email{ display:inline-block; padding-block:7px; max-width:100%; overflow-wrap:anywhere; font-size:.875rem; color:var(--brand-teal-text); }
.application__email:hover{ text-decoration:underline; }
.application__documents{ margin-top:18px; max-width:40ch; font-size:.875rem; line-height:1.6; color:var(--ink-2); }
.application__documents b{ display:block; margin-bottom:5px; color:var(--ink); font-weight:550; }
.application__form{ position:relative; min-width:0; gap:20px; padding:clamp(20px,2.2vw,30px); border:1px solid var(--brand-line); border-radius:12px; background:var(--brand-white); box-shadow:0 20px 45px -35px rgba(var(--brand-navy-rgb),.25); }
.application__form-head{ display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:8px 18px; padding-bottom:23px; border-bottom:1px solid var(--brand-line); }
.application__form-head h3{ font-family:var(--ff-d); font-size:1.375rem; font-weight:500; letter-spacing:-.025em; }
.application__form-head p{ color:var(--ink-2); font-size:.75rem; }
.application__group{ display:grid; gap:17px; min-width:0; min-inline-size:0; margin:0; padding:0; border:0; }
.application__group legend{ width:100%; padding:0 0 18px; color:var(--ink); font-size:1rem; font-weight:550; line-height:1.45; }
.application__group legend > span{ display:inline-grid; place-items:center; width:25px; height:25px; margin-right:8px; border-radius:50%; background:var(--brand-surface-deep); color:var(--brand-teal-text); font-size:.75rem; font-weight:500; }
.application .field > span{ color:var(--brand-muted); font-size:.875rem; letter-spacing:0; text-transform:none; }
.application .field > span::before, .application .field > span::after{ content:none; }
.application .field > span > small{ margin-left:6px; color:var(--brand-muted); font-size:.75rem; font-weight:400; }
.application .field input, .application .field select, .application .field textarea{ min-height:52px; background-color:var(--brand-surface); border-color:var(--brand-line); color:var(--ink); font-size:1rem; }
.application .field select{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none' stroke='%23526975' stroke-width='1.5'%3E%3Cpath d='m5 8 5 5 5-5'/%3E%3C/svg%3E"); }
.application .field input::placeholder, .application .field textarea::placeholder{ color:var(--brand-muted); opacity:1; }
.application .field input:focus, .application .field select:focus, .application .field textarea:focus{ border-color:var(--brand-teal-text); background-color:var(--brand-white); }
.application .field input:focus-visible, .application .field select:focus-visible, .application .field textarea:focus-visible{ box-shadow:0 0 0 3px rgba(var(--brand-teal-text-rgb),.18); }
.application .field input:user-invalid, .application .field select:user-invalid, .application .field textarea:user-invalid{ border-color:#B73D38; background-color:#FFF9F8; }
.application .field textarea{ min-height:105px; }
.application__submit{ display:grid; gap:13px; }
.application__submit .btn{ justify-self:stretch; width:100%; min-height:54px; margin-top:0; }
.application .form__note{ max-width:none; color:var(--ink-2); font-size:.8125rem; }
.application .form__note.is-error{ color:#A42D25; }
.application .sent{ min-width:0; clip-path:none; border-radius:15px; border-color:var(--brand-line); }
.application .sent__mark{ border-radius:50%; }
.application .sent__title{ font-weight:500; }
.application .sent:focus-visible{ outline:2px solid var(--teal-dk); outline-offset:4px; }

@media (max-width:1000px){
  .film__layout{ grid-template-columns:minmax(0,.9fr) minmax(0,1.6fr); gap:28px; }
  .film--compact .film__ch{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .film--compact .film__ch button{ min-height:62px; padding:9px 11px; }
  .film--compact .film__ch button span{ margin-bottom:3px; }
  .career--invitation{ grid-template-columns:1fr; gap:28px;background:var(--brand-surface);}
  .career--invitation .career__intro{ max-width:64ch; }
  .application__layout{ grid-template-columns:minmax(0,.8fr) minmax(0,1.5fr); gap:28px; }
  .application .form__row{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px; }
}
@media (max-width:820px){
  .film__layout{ grid-template-columns:1fr; gap:27px; }
  .film__intro h2{ font-size:clamp(30px,5.3vw,40px); }
  .film__description{ max-width:60ch; margin-top:16px; }
  .film__duration{ margin-top:17px; }
  .film--compact .film__fig{ justify-self:center; }
  .film--compact .film__ch{ grid-template-columns:repeat(4,minmax(0,1fr)); }
  .application__layout{ grid-template-columns:1fr; gap:30px; }
  .application__intro > p:not([class]){ max-width:60ch; }
  .application__intro{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 28px; padding-top:0; }
  .application__intro > .application__eyebrow, .application__intro > h2, .application__intro > p:not([class]){ grid-column:1/-1; }
  .application__promise{ grid-column:1; align-self:start; }
  .application__help{ grid-column:2; grid-row:4/span 2; margin-top:24px; }
  .application__documents{ grid-column:1; margin-top:20px; }
  .application .form__row{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:540px){
  .film--compact{ padding-block:44px; }
  .film__eyebrow{ margin-bottom:18px; }
  .film--compact .film__ch{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .film--compact .film__cue{ flex-direction:row; text-align:left; gap:12px; }
  .film--compact .film__cue__ico{ width:48px; }
  .film--compact .film__cue__txt{ font-size:1rem; }
  .film--compact .film__cue__txt b{ font-size:.75rem; letter-spacing:0; }
  .film--compact .film__mute{ display:none; }
  .film--compact .film__hud{ padding:9px 12px 13px; }
  .career--invitation{ padding:26px 22px; border-radius:13px;background:var(--brand-surface);}
  .career__roles{ grid-template-columns:1fr; gap:8px; }
  .career__roles > a{ min-height:55px; padding:13px 15px; }
  .application__intro{ display:block; }
  .application__form{ padding:24px 20px; }
  .application .form__row{ grid-template-columns:1fr; }
  .application__group legend{ font-size:.9375rem; }
}

/* Gemeinsamer Rhythmus: Medien und Erläuterungen richten sich nach dem Inhalt. */
.phero--framed .phero__lead{ margin-top:16px; line-height:1.6; }
main.phero{ padding-block:clamp(104px,9vw,128px) 40px; }
main.phero .phero__h1{ font-size:clamp(2rem,3.25vw,2.875rem); line-height:1.15; max-width:24ch; }
.panel__fig .frame, .comp__fig .frame, .lb__fig .frame{ aspect-ratio:16/10; max-height:340px; }
.panel .marks, .lb__txt .marks{ margin-top:18px; }
.marks li{ padding-block:10px; }
.marks li::before{ top:17px; }
.split, .comp, .contact{ gap:clamp(24px,3.5vw,48px); }
.feats--steuer button{ padding-block:14px; }
.steps{ row-gap:24px; }
.steps li{ padding-top:18px; }
.steps__no{ font-size:1.625rem; }
.steps h3{ margin-top:12px; }
.steps p{ font-size:1rem; line-height:1.6; }
.steps__meta{ margin-top:12px; }
.jobs__tag{ margin-bottom:6px; }
.jobs p{ font-size:1rem; line-height:1.6; }
.cinfo a{ max-width:100%; overflow-wrap:anywhere; }
.atlas__kopf{ margin-bottom:28px; }
.atlas__schluss{ margin-top:24px; padding-top:18px; }
.atlas__seite{ min-width:0; }
.atlas__fuss{ padding-top:14px; }
.konf{ padding-top:clamp(28px,3vw,44px); }
.konf__kopf, .konf__form, .konf__fallback{ padding:clamp(22px,2.4vw,32px); }
.konf__label{ margin-bottom:16px; font-size:12px; letter-spacing:.08em; }
.konf__titel{ font-size:clamp(1.75rem,2.4vw,2.125rem); }
.konf__sub{ font-size:1rem; }
.konf__form{ gap:20px; }
.konf__f{ font-size:.875rem; }
.konf__ctrl select, .konf__ctrl input{ min-height:52px; font-size:1rem; }
.konf__zusagen{ padding:20px clamp(22px,2.4vw,32px); gap:16px; }
.ft{ padding-top:clamp(36px,4vw,52px); }
.ft__top{ padding-bottom:28px; }
.legal{ padding-top:clamp(104px,9vw,128px); }
.legal h2{ margin-top:30px; padding-top:16px; }
.legal p, .legal li{ font-size:1rem; line-height:1.65; }

@media (min-width:901px){
  .faq{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 18px; }
  /* Textbereiche ohne Motiv nutzen die zweite Spalte für ihre Leistungslisten. */
  .lb:not(.lb--bild) .lb__txt{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 clamp(32px,4vw,56px); max-width:none; align-items:start; }
  .lb:not(.lb--bild) .lb__txt > .lb__nr,
  .lb:not(.lb--bild) .lb__txt > .h2,
  .lb:not(.lb--bild) .lb__txt > .lead{ grid-column:1; }
  .lb:not(.lb--bild) .lb__txt > .marks{ grid-column:2; grid-row:1/4; margin-top:0; }
  .lb:not(.lb--bild) .lb__txt > .lb__wer{ grid-column:2; grid-row:4; max-width:none; }
  .lb:not(.lb--bild) .lb__txt > .link{ grid-column:1; grid-row:4; justify-self:start; }
}
@media (max-width:900px){
  .panel__fig .frame, .comp__fig .frame, .lb__fig .frame{ aspect-ratio:16/9; max-height:260px; }
  .konf__persoenlich{ padding-top:12px; }
}
@media (min-width:541px) and (max-width:900px){
  .cinfo{ grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:24px; }
}
@media (max-width:680px){
  .konf__schritte{ gap:16px; }
  .konf__persoenlich{ margin-top:14px; padding-top:12px; }
  .konf__zusagen{ padding:18px 22px; }
}
@media (max-width:640px){
  .panel__fig .frame, .comp__fig .frame, .lb__fig .frame{ max-height:220px; }
  .steps{ gap:18px; }
  .steps li{ display:grid; grid-template-columns:28px minmax(0,1fr); gap:8px 14px; padding-top:16px; }
  .steps__no{ grid-column:1; grid-row:1; font-size:1.375rem; }
  .steps h3{ grid-column:2; margin:0; }
  .steps p, .steps__meta{ grid-column:2; margin:0; max-width:none; }
}

@media (min-width:641px){
  .dock{ right:10px; padding:4px; gap:3px; border:1px solid var(--brand-line-dark); border-radius:12px; background:var(--brand-navy); box-shadow:0 8px 24px -14px rgba(var(--brand-navy-rgb),.5); }
  .dock a{ width:44px; height:44px; border-radius:7px; background:transparent; }
  .dock a::after{ right:calc(100% + 8px); border-radius:7px; }
  .dock a:focus-visible::after{ opacity:1; transform:none; }
}
@media (max-width:1180px){
  .hero__nav{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hero__nav > a{ min-height:118px; grid-template-columns:65px minmax(0,1fr); }
  .hero__service-image{ min-height:84px; }
}
@media (max-width:980px){
  .sectors, .quality{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .fit__heading{ grid-template-columns:1fr; gap:22px; }
  .fit__heading > p{ max-width:64ch; }
  .fit__layout{ gap:16px; }
  .fit__benefits, .fit__conditions{ padding:24px; }
}
@media (max-width:900px){
  .head{ grid-template-columns:28px minmax(0,1fr); gap:14px; }
  .head__no{ width:28px; height:28px; }
  .head__no{ margin-bottom:0; }
  .phero__grid{ grid-template-columns:1fr; gap:24px; }
  .phero--framed .phero__h1{ max-width:25ch; font-size:clamp(2rem,4.8vw,2.625rem); }
  .phero--framed .phero__lead{ max-width:64ch; }
  .phero--framed .phero__fig{ aspect-ratio:2/1; max-height:280px; }
  .fit__layout{ grid-template-columns:1fr; }
  .fit__strengths{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 28px; }
  .fit__strengths li:last-child{ padding-bottom:20px; }
  .fit__contact{ align-items:flex-start; flex-direction:column; gap:20px; }
}
@media (max-width:640px){
  .hero__services{ padding-top:16px; padding-bottom:22px; }
  .hero__services-heading{ align-items:flex-start; }
  .hero__services-heading p > span{ display:block; margin-left:0; margin-top:4px; }
  .hero__services-heading > a{ flex:none; font-size:11px; }
  .hero__nav{ grid-template-columns:1fr; gap:9px; }
  .hero__nav > a{ grid-template-columns:60px minmax(0,1fr); min-height:105px; padding:13px; }
  .hero__service-image{ min-height:76px; }
  .hero__was{ font-size:17px; }
  .hero__det{ font-size:12px; }
  .hero__nr > span{ font-size:10px; }
  .fit__heading{ margin-bottom:28px; }
  .fit__heading h2{ font-size:clamp(28px,7.4vw,38px); }
  .fit__heading > p{ font-size:15px; }
  .fit__benefits, .fit__conditions{ padding:20px; border-radius:12px; }
  .fit__layout h3{ font-size:19px; }
  .fit__strengths{ grid-template-columns:1fr; }
  .fit__strengths li:last-child{ padding-bottom:0; }
  .fit__accordions summary{ gap:14px; font-size:15px; }
  .fit__accordions details > p{ padding-right:0; }
  .fit__contact{ padding:25px 22px; }
  .fit__contact .btn{ width:100%; flex:auto; }
  .phero--framed{ padding-top:98px; }
  .phero--framed .phero__fig{ aspect-ratio:16/9; max-height:220px; border-radius:10px; }
  .phero__act{ align-items:stretch; }
  .phero__act .link{ align-self:flex-start; }
  .sectors, .quality, .quality:has(> article:nth-child(4):last-child){ grid-template-columns:1fr; }
  .sectors > li, .quality > article{ padding:18px; }
  .faq summary{ min-height:60px; padding:16px 18px; gap:16px; }
  .faq__body{ padding:0 18px 18px; }
  .lswitch__label{ flex-basis:100%; }
  .lswitch a{ font-size:12px; padding-inline:13px; }
  .cinfo{ padding-inline:20px; }
}
@media (prefers-reduced-motion:reduce){
  .hero__pf, .hero__nav > a, .fit__accordions summary i::after{ transition:none; }
}
@media print{
  .hero__services, .fit__contact .btn{ display:none; }
  .fit__heading, .fit__layout, .phero__grid{ grid-template-columns:1fr; }
  .fit__benefits, .fit__conditions, .fit__contact{ color:#000; background:var(--brand-white); }
  .fit__contact p{ color:#333; }
  .fit__accordions details{ break-inside:avoid; }
  .faq, .lb:not(.lb--bild) .lb__txt{ display:block; }
}
