
:root {
    --kehl-blue: #0f2281;
    --kehl-blue-dark: #09165f;
    --kehl-blue-soft: #1d3190;
    --kehl-offwhite: #ede8e2;
    --kehl-white: #ffffff;
    --kehl-charcoal: #151821;
    --kehl-steel: #aeb4bf;
    --kehl-line: rgba(21, 24, 33, 0.14);
    --kehl-line-light: rgba(255, 255, 255, 0.18);
    --kehl-shadow: 0 24px 70px rgba(10, 20, 70, 0.12);
    --kehl-radius: 2px;
    --kehl-container: min(1400px, calc(100vw - 56px));
    --kehl-font: "Aptos", "Segoe UI", Arial, sans-serif;
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    overflow-x: hidden;
    color: var(--kehl-charcoal);
    background: var(--kehl-offwhite);
    font-family: var(--kehl-font);
    font-size: 17px;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}

body.nav-open,
body.lightbox-open {
    overflow: hidden;
}

img {
    max-width: 100%;
    height: auto;
}

a {
    color: inherit;
    text-decoration: none;
}

button,
input,
textarea,
select {
    font: inherit;
}

button {
    cursor: pointer;
}

::selection {
    color: var(--kehl-white);
    background: var(--kehl-blue);
}

.kehl-container {
    width: var(--kehl-container);
    margin: 0 auto;
}

.screen-reader-text {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.skip-link:focus {
    clip: auto;
    width: auto;
    height: auto;
    left: 16px;
    top: 16px;
    padding: 10px 14px;
    color: var(--kehl-blue);
    background: var(--kehl-white);
    z-index: 99999;
}

.site-topbar {
    color: rgba(255,255,255,.78);
    background: #09165f;
    font-size: 13px;
    letter-spacing: .04em;
}

.topbar-inner {
    min-height: 36px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
}

.topbar-contact {
    display: flex;
    gap: 24px;
}

.topbar-contact a:hover {
    color: var(--kehl-white);
}

.site-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    color: var(--kehl-white);
    background: var(--kehl-blue);
    border-top: 8px solid transparent;
    transition: box-shadow .25s ease, background .25s ease;
}

.site-header.is-scrolled {
    box-shadow: 0 10px 35px rgba(6, 15, 64, .22);
    background: rgba(15, 34, 129, .98);
}

.header-inner {
    min-height: 104px;
    padding-top: 8px;
    padding-bottom: 10px;
    display: grid;
    grid-template-columns: 290px 1fr auto;
    align-items: center;
    gap: 34px;
}

.site-brand {
    display: inline-flex;
    align-items: center;
    width: 280px;
    padding-top: 4px;
}

.site-brand > a,
.site-brand .custom-logo-link {
    display: inline-flex;
    align-items: center;
    width: 100%;
}

.site-brand img,
.site-brand .custom-logo {
    display: block;
    width: 100%;
    height: auto;
}

.primary-nav {
    justify-self: end;
}

.kehl-menu {
    list-style: none;
    display: flex;
    align-items: center;
    gap: 28px;
    margin: 0;
    padding: 0;
}

.kehl-menu li {
    position: relative;
}

.kehl-menu > li > a {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 94px;
    color: rgba(255,255,255,.90);
    font-size: 15px;
    font-weight: 650;
    letter-spacing: .02em;
}

.kehl-menu > li > a::after {
    content: "";
    position: absolute;
    left: 0;
    right: 100%;
    bottom: 24px;
    height: 2px;
    background: var(--kehl-offwhite);
    transition: right .2s ease;
}

.kehl-menu > li > a:hover,
.kehl-menu > li.current-menu-item > a,
.kehl-menu > li.current-menu-ancestor > a {
    color: var(--kehl-white);
}

.kehl-menu > li > a:hover::after,
.kehl-menu > li.current-menu-item > a::after,
.kehl-menu > li.current-menu-ancestor > a::after {
    right: 0;
}

.kehl-menu .sub-menu {
    position: absolute;
    top: calc(100% - 10px);
    left: -22px;
    min-width: 290px;
    margin: 0;
    padding: 12px;
    list-style: none;
    color: var(--kehl-charcoal);
    background: var(--kehl-white);
    box-shadow: var(--kehl-shadow);
    opacity: 0;
    visibility: hidden;
    transform: translateY(8px);
    transition: .2s ease;
}

.kehl-menu .menu-item-has-children:hover > .sub-menu,
.kehl-menu .menu-item-has-children:focus-within > .sub-menu {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.kehl-menu .sub-menu a {
    display: block;
    padding: 11px 12px;
    font-size: 14px;
    font-weight: 650;
    border-bottom: 1px solid rgba(21,24,33,.08);
}

.kehl-menu .sub-menu li:last-child a {
    border-bottom: 0;
}

.kehl-menu .sub-menu a:hover {
    color: var(--kehl-blue);
    background: #f4f5fb;
}

.header-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
    padding: 0 20px;
    color: var(--kehl-blue);
    background: var(--kehl-offwhite);
    font-size: 14px;
    font-weight: 750;
    letter-spacing: .04em;
    text-transform: uppercase;
    transition: transform .2s ease, background .2s ease;
}

.header-cta:hover {
    transform: translateY(-2px);
    background: var(--kehl-white);
}

.nav-toggle {
    display: none;
    width: 48px;
    height: 48px;
    padding: 12px;
    border: 1px solid rgba(255,255,255,.25);
    color: var(--kehl-white);
    background: transparent;
}

.nav-toggle > span:not(.screen-reader-text) {
    display: block;
    width: 100%;
    height: 2px;
    margin: 5px 0;
    background: currentColor;
}

.home-hero {
    position: relative;
    min-height: 720px;
    overflow: hidden;
    color: var(--kehl-white);
    background:
        linear-gradient(135deg, var(--kehl-blue) 0%, var(--kehl-blue-dark) 100%);
}

.home-hero.has-image {
    background-image:
        linear-gradient(90deg, rgba(7, 21, 102, .97) 0%, rgba(7, 21, 102, .88) 42%, rgba(7, 21, 102, .25) 78%, rgba(7, 21, 102, .12) 100%),
        var(--hero-image);
    background-size: cover;
    background-position: center;
}

.home-hero::after {
    display: none;
}

.hero-overlay {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px);
    background-size: 46px 46px;
    mask-image: linear-gradient(to right, rgba(0,0,0,.55), transparent 75%);
}

.hero-inner {
    position: relative;
    min-height: 720px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(140px, 210px);
    align-items: center;
    justify-content: space-between;
    gap: 40px;
    z-index: 2;
}

.hero-content {
    max-width: 760px;
    min-width: 0;
    padding: 70px 0 110px;
}

.eyebrow {
    margin: 0 0 20px;
    color: rgba(255,255,255,.72);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .16em;
    line-height: 1.4;
    text-transform: uppercase;
}

.eyebrow.blue {
    color: var(--kehl-blue);
}

.home-hero h1,
.page-hero h1,
.error-page h1 {
    margin: 0;
    font-size: clamp(42px, 5.8vw, 84px);
    font-weight: 500;
    letter-spacing: -.045em;
    line-height: .94;
    text-wrap: balance;
}

.hero-lead,
.page-lead {
    max-width: 710px;
    margin: 32px 0 0;
    color: rgba(255,255,255,.80);
    font-size: clamp(18px, 1.7vw, 22px);
    line-height: 1.45;
}

.hero-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 28px;
    margin-top: 42px;
}

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 54px;
    padding: 0 24px;
    border: 1px solid transparent;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
}

.button:hover {
    transform: translateY(-2px);
}

.button-light {
    color: var(--kehl-blue);
    background: var(--kehl-offwhite);
}

.button-light:hover {
    background: var(--kehl-white);
}

.button-blue {
    color: var(--kehl-white);
    background: var(--kehl-blue);
}

.button-blue:hover {
    background: var(--kehl-blue-dark);
}

.button-outline-light {
    color: var(--kehl-white);
    border-color: rgba(255,255,255,.55);
    background: transparent;
}

.button-outline-light:hover {
    color: var(--kehl-blue);
    background: var(--kehl-white);
    border-color: var(--kehl-white);
}

.text-link {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--kehl-blue);
    font-size: 14px;
    font-weight: 750;
    letter-spacing: .02em;
}

.text-link span {
    transition: transform .2s ease;
}

.text-link:hover span {
    transform: translateX(5px);
}

.text-link-light {
    color: var(--kehl-white);
}

.hero-fact {
    align-self: end;
    justify-self: end;
    max-width: 170px;
    min-width: 0;
    margin-bottom: 110px;
    padding-left: 22px;
    border-left: 1px solid rgba(255,255,255,.42);
}

.hero-fact strong {
    display: block;
    font-size: clamp(52px, 5.8vw, 88px);
    font-weight: 350;
    letter-spacing: -.06em;
    line-height: .85;
}

.hero-fact span {
    display: block;
    max-width: 130px;
    margin-top: 14px;
    color: rgba(255,255,255,.72);
    font-size: 12px;
    font-weight: 750;
    letter-spacing: .08em;
    line-height: 1.4;
    text-transform: uppercase;
}

.intro-strip {
    color: var(--kehl-blue);
    background: var(--kehl-offwhite);
    border-bottom: 1px solid var(--kehl-line);
}

.intro-strip-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    min-height: 90px;
    align-items: center;
}

.intro-strip-grid p {
    position: relative;
    margin: 0;
    padding-left: 24px;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.intro-strip-grid p::before {
    content: "";
    position: absolute;
    left: 0;
    top: 50%;
    width: 10px;
    height: 10px;
    border: 2px solid var(--kehl-blue);
    transform: translateY(-50%) rotate(45deg);
}

.section {
    padding: 110px 0;
}

.section-intro {
    background: var(--kehl-offwhite);
}

.split-intro {
    display: grid;
    grid-template-columns: 1.05fr .75fr;
    gap: 120px;
    align-items: end;
    margin-bottom: 72px;
}

.section h2,
.page-content-section h2,
.contact-cta h2 {
    margin: 0;
    font-size: clamp(30px, 3.6vw, 54px);
    font-weight: 520;
    letter-spacing: -.035em;
    line-height: 1;
    text-wrap: balance;
}

.intro-copy {
    max-width: 620px;
    font-size: 18px;
}

.intro-copy p {
    margin: 0 0 28px;
}

.service-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border-top: 1px solid var(--kehl-line);
    border-left: 1px solid var(--kehl-line);
}

.service-card {
    position: relative;
    min-height: 320px;
    padding: 34px;
    border-right: 1px solid var(--kehl-line);
    border-bottom: 1px solid var(--kehl-line);
    transition: background .25s ease, color .25s ease;
}

.service-card:hover {
    color: var(--kehl-white);
    background: var(--kehl-blue);
}

.service-number {
    display: block;
    margin-bottom: 62px;
    color: var(--kehl-blue);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;
}

.service-card:hover .service-number {
    color: rgba(255,255,255,.7);
}

.service-card h3 {
    margin: 0 0 15px;
    font-size: 27px;
    font-weight: 600;
    letter-spacing: -.02em;
}

.service-card p {
    max-width: 340px;
    margin: 0;
    color: rgba(21,24,33,.70);
    font-size: 15px;
    line-height: 1.55;
}

.service-card:hover p {
    color: rgba(255,255,255,.76);
}

.service-arrow {
    position: absolute;
    top: 30px;
    right: 30px;
    font-size: 25px;
    transition: transform .2s ease;
}

.service-card:hover .service-arrow {
    transform: translate(4px, -4px);
}

.section-projects {
    color: var(--kehl-white);
    background: var(--kehl-charcoal);
}

.section-heading {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 40px;
    margin-bottom: 70px;
}

.legacy-project-grid {
    display: grid;
    gap: 0;
}

.legacy-project-card {
    display: grid;
    grid-template-columns: 1.08fr .92fr;
    min-height: 520px;
    border-top: 1px solid rgba(255,255,255,.14);
}

.legacy-project-card:nth-child(even) .project-image-wrap {
    order: 2;
}

.legacy-project-card:nth-child(even) .project-card-copy {
    order: 1;
    padding-left: 0;
    padding-right: 80px;
}

.project-image-wrap {
    position: relative;
    min-height: 520px;
    overflow: hidden;
    background: #29314f;
}

.project-image-wrap img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .5s ease;
}

.project-image-wrap:hover img {
    transform: scale(1.025);
}

.image-fallback {
    display: block;
    width: 100%;
    height: 100%;
    min-height: 280px;
    background:
        linear-gradient(135deg, rgba(255,255,255,.06), transparent),
        repeating-linear-gradient(135deg, #192557 0 1px, transparent 1px 28px),
        var(--kehl-blue);
}

.project-index {
    position: absolute;
    left: 22px;
    bottom: 18px;
    min-width: 48px;
    padding: 6px 9px;
    color: var(--kehl-blue);
    background: var(--kehl-offwhite);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .08em;
    text-align: center;
}

.project-card-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 60px 0 60px 80px;
}

.project-card-copy h3 {
    margin: 0 0 24px;
    font-size: clamp(38px, 4vw, 62px);
    font-weight: 520;
    letter-spacing: -.035em;
    line-height: 1;
}

.project-card-copy p:not(.eyebrow) {
    max-width: 570px;
    margin: 0 0 28px;
    color: rgba(255,255,255,.66);
    font-size: 16px;
}

.project-posts-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 28px;
    margin-top: 90px;
}

.project-post-card {
    background: var(--kehl-white);
    color: var(--kehl-charcoal);
}

.project-post-image {
    display: block;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background: var(--kehl-blue);
}

.project-post-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .4s ease;
}

.project-post-card:hover .project-post-image img {
    transform: scale(1.025);
}

.project-post-card > div {
    padding: 26px;
}

.project-post-card .eyebrow {
    margin-bottom: 10px;
    color: var(--kehl-blue);
}

.project-post-card h2,
.project-post-card h3 {
    margin: 0 0 12px;
    font-size: 27px;
    line-height: 1.12;
}

.project-post-card p {
    margin: 0;
    color: rgba(21,24,33,.68);
    font-size: 15px;
}

.section-history {
    background: var(--kehl-white);
}

.history-grid {
    display: grid;
    grid-template-columns: .72fr 1.28fr;
    gap: 72px;
    align-items: center;
}

.history-number {
    min-height: 520px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 45px;
    color: var(--kehl-offwhite);
    background:
        linear-gradient(135deg, rgba(255,255,255,.08), transparent),
        var(--kehl-blue);
}

.history-number span {
    font-size: clamp(120px, 16vw, 250px);
    font-weight: 300;
    letter-spacing: -.08em;
    line-height: .78;
}

.history-number small {
    font-size: 14px;
    font-weight: 800;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.history-copy {
    max-width: 760px;
}

.history-copy p:not(.eyebrow) {
    margin: 22px 0 0;
    color: rgba(21,24,33,.72);
    font-size: 18px;
}

.history-actions {
    display: flex;
    align-items: center;
    gap: 28px;
    margin-top: 38px;
}

.section-process {
    background: #e4e0db;
}

.section-process > .kehl-container > h2 {
    max-width: 900px;
}

.process-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    margin-top: 72px;
    border-top: 1px solid var(--kehl-line);
    border-left: 1px solid var(--kehl-line);
}

.process-grid article {
    min-height: 290px;
    padding: 32px;
    border-right: 1px solid var(--kehl-line);
    border-bottom: 1px solid var(--kehl-line);
}

.process-grid span {
    display: block;
    margin-bottom: 54px;
    color: var(--kehl-blue);
    font-size: 12px;
    font-weight: 800;
}

.process-grid h3 {
    margin: 0 0 14px;
    font-size: 25px;
}

.process-grid p {
    margin: 0;
    color: rgba(21,24,33,.68);
    font-size: 15px;
}

.contact-cta {
    padding: 95px 0;
    color: var(--kehl-white);
    background: var(--kehl-blue);
}

.contact-cta-inner {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 80px;
}

.contact-cta h2 {
    max-width: 900px;
}

.contact-cta p:not(.eyebrow) {
    max-width: 650px;
    margin: 22px 0 0;
    color: rgba(255,255,255,.72);
}

.contact-cta-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
    flex: 0 0 auto;
}

.site-footer {
    color: rgba(255,255,255,.76);
    background: #0b0d12;
}

.footer-grid {
    display: grid;
    grid-template-columns: 1.4fr .8fr .65fr;
    gap: 90px;
    padding-top: 80px;
    padding-bottom: 70px;
}

.footer-brand img {
    width: 280px;
    margin-bottom: 26px;
}

.footer-brand p {
    max-width: 540px;
    margin: 0;
}

.site-footer h2 {
    margin: 0 0 18px;
    color: var(--kehl-white);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.site-footer p {
    margin: 0 0 18px;
    font-size: 15px;
}

.site-footer a:hover {
    color: var(--kehl-white);
}

.footer-links {
    margin: 0;
    padding: 0;
    list-style: none;
}

.footer-links li {
    margin: 0 0 9px;
}

.footer-bottom {
    border-top: 1px solid rgba(255,255,255,.12);
}

.footer-bottom-inner {
    min-height: 72px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
    font-size: 13px;
}

.footer-legal {
    display: flex;
    gap: 24px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.page-hero {
    position: relative;
    overflow: hidden;
    color: var(--kehl-white);
}

.page-hero::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
    background-size: 48px 48px;
}

.page-hero.has-image::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(7,21,102,.94) 0%, rgba(7,21,102,.82) 45%, rgba(7,21,102,.48) 100%);
}

.page-hero.has-image {
    background-image: var(--page-hero-image);
    background-size: cover;
    background-position: center;
}

.page-hero-blue {
    padding: 115px 0 100px;
    background: var(--kehl-blue);
}

.page-hero-simple {
    padding: 100px 0 75px;
    color: var(--kehl-charcoal);
    background: var(--kehl-offwhite);
    border-bottom: 1px solid var(--kehl-line);
}

.page-hero-simple h1 {
    max-width: 1000px;
    font-size: clamp(38px, 4.8vw, 68px);
}

.page-hero-inner {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
}

.page-hero-inner > * {
    min-width: 0;
    max-width: 860px;
}

.page-hero .page-lead {
    max-width: 900px;
}



.split-intro-media {
    grid-template-columns: minmax(0, .95fr) minmax(320px, .85fr);
    align-items: center;
}

.section-media-split {
    background: var(--kehl-white);
}

.media-split {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(320px, .85fr);
    gap: 72px;
    align-items: center;
}

.section-copy p:not(.eyebrow) {
    margin: 20px 0 0;
    color: rgba(21,24,33,.72);
    font-size: 18px;
}

.section-visual,
.team-visual,
.contact-visual,
.legacy-project-preview {
    position: relative;
    overflow: hidden;
    background: #dfe3ec;
}

.section-visual img,
.team-visual img,
.contact-visual img,
.legacy-project-preview img {
    width: 100%;
    height: 100%;
    min-height: 100%;
    display: block;
    object-fit: cover;
}

.section-visual {
    min-height: 420px;
}

.team-side {
    display: grid;
    gap: 22px;
}

.team-visual {
    min-height: 340px;
}

.contact-visual {
    min-height: 280px;
    margin-bottom: 28px;
}

.legacy-project-preview {
    margin-top: 28px;
    min-height: 240px;
}

.image-fallback.tall {
    min-height: 100%;
    width: 100%;
    display: block;
}

.legacy-project-intro {
    background: var(--kehl-white);
}

.legacy-project-intro-grid {
    display: grid;
    grid-template-columns: 1.05fr .95fr;
    gap: 72px;
    align-items: start;
}

.feature-list {
    margin: 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid var(--kehl-line);
}

.feature-list li {
    position: relative;
    padding: 20px 40px 20px 30px;
    border-bottom: 1px solid var(--kehl-line);
    font-weight: 650;
}

.feature-list li::before {
    content: "";
    position: absolute;
    left: 2px;
    top: 27px;
    width: 9px;
    height: 9px;
    border: 2px solid var(--kehl-blue);
    transform: rotate(45deg);
}

.legacy-gallery-section {
    padding: 120px 0;
    background: var(--kehl-offwhite);
}

.gallery-heading {
    margin-bottom: 45px;
}

.gallery-heading h2 {
    margin: 0;
    font-size: clamp(42px, 5vw, 72px);
    font-weight: 520;
    letter-spacing: -.035em;
    line-height: 1;
}

.kehl-gallery {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    grid-auto-rows: 110px;
    gap: 12px;
}

.kehl-gallery a {
    position: relative;
    grid-column: span 4;
    grid-row: span 3;
    overflow: hidden;
    background: #d8d5d2;
}

.kehl-gallery a:nth-child(7n + 1),
.kehl-gallery a:nth-child(7n + 5) {
    grid-column: span 6;
    grid-row: span 4;
}

.kehl-gallery a:nth-child(7n + 2),
.kehl-gallery a:nth-child(7n + 6) {
    grid-column: span 3;
}

.kehl-gallery a:nth-child(7n + 3),
.kehl-gallery a:nth-child(7n + 4),
.kehl-gallery a:nth-child(7n + 7) {
    grid-column: span 3;
}

.kehl-gallery img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .35s ease;
}

.kehl-gallery a:hover img {
    transform: scale(1.035);
}

.kehl-lightbox {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 40px 90px;
    background: rgba(6,8,15,.95);
}

.kehl-lightbox.is-open {
    display: flex;
}

.kehl-lightbox figure {
    margin: 0;
    max-width: min(1400px, 88vw);
    max-height: 88vh;
}

.kehl-lightbox img {
    display: block;
    max-width: 100%;
    max-height: 88vh;
    object-fit: contain;
}

.kehl-lightbox button {
    position: absolute;
    border: 0;
    color: var(--kehl-white);
    background: transparent;
    font-size: 46px;
    line-height: 1;
}

.kehl-lightbox-close {
    top: 26px;
    right: 28px;
}

.kehl-lightbox-prev,
.kehl-lightbox-next {
    top: 50%;
    transform: translateY(-50%);
}

.kehl-lightbox-prev {
    left: 30px;
}

.kehl-lightbox-next {
    right: 30px;
}

.content-narrow {
    max-width: 980px;
}

.entry-content {
    font-size: 18px;
}

.entry-content > *:first-child {
    margin-top: 0;
}

.entry-content h2,
.entry-content h3,
.entry-content h4 {
    color: var(--kehl-blue);
    line-height: 1.15;
}

.entry-content h2 {
    margin: 1.7em 0 .65em;
    font-size: clamp(34px, 4vw, 52px);
}

.entry-content h3 {
    margin: 1.6em 0 .6em;
    font-size: 28px;
}

.entry-content p {
    margin: 0 0 1.3em;
}

.entry-content a {
    color: var(--kehl-blue);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.entry-content img {
    border-radius: var(--kehl-radius);
}

.entry-content .wp-block-gallery {
    gap: 14px;
}

.entry-content input:not([type="submit"]),
.entry-content textarea,
.entry-content select {
    width: 100%;
    max-width: 100%;
    padding: 14px 16px;
    border: 1px solid rgba(21,24,33,.22);
    background: var(--kehl-white);
}

.entry-content input[type="submit"],
.entry-content button[type="submit"] {
    min-height: 52px;
    padding: 0 24px;
    border: 0;
    color: var(--kehl-white);
    background: var(--kehl-blue);
    font-weight: 750;
}

.subtle-section {
    background: #e4e0db;
}

.team-grid {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 60px;
    align-items: start;
}

.team-grid h2 {
    margin-bottom: 30px;
}

.team-grid p {
    font-size: 18px;
}

.team-grid .button {
    margin-top: 20px;
}

.team-ci-panel {
    min-height: 300px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 44px;
    color: var(--kehl-offwhite);
    background:
        linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px),
        var(--kehl-blue);
    background-size: 42px 42px;
}

.team-ci-panel span {
    font-size: clamp(90px, 11vw, 170px);
    font-weight: 300;
    letter-spacing: -.08em;
    line-height: .8;
}

.team-ci-panel strong {
    max-width: 420px;
    font-size: clamp(24px, 3vw, 36px);
    font-weight: 520;
    letter-spacing: -.035em;
    line-height: 1;
}

.team-ci-panel small {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.archive-projects {
    min-height: 500px;
    background: var(--kehl-offwhite);
}

.project-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 50px;
}

.project-filters a {
    padding: 10px 15px;
    border: 1px solid var(--kehl-line);
    font-size: 13px;
    font-weight: 750;
}

.project-filters a:hover,
.project-filters a.active {
    color: var(--kehl-white);
    background: var(--kehl-blue);
    border-color: var(--kehl-blue);
}

.archive-grid {
    margin-top: 0;
}

.empty-projects {
    max-width: 760px;
    padding: 50px;
    background: var(--kehl-white);
}

.empty-projects h2 {
    margin: 0 0 16px;
    font-size: 38px;
}

.navigation.pagination {
    margin-top: 50px;
}

.nav-links {
    display: flex;
    gap: 8px;
}

.page-numbers {
    min-width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--kehl-line);
}

.page-numbers.current {
    color: var(--kehl-white);
    background: var(--kehl-blue);
    border-color: var(--kehl-blue);
}

.project-single-hero {
    position: relative;
    color: var(--kehl-white);
    background: var(--kehl-blue);
}

.project-single-image {
    height: min(62vw, 680px);
    min-height: 430px;
    overflow: hidden;
}

.project-single-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.project-single-title {
    padding-top: 70px;
    padding-bottom: 80px;
}

.project-single-title h1 {
    max-width: 1100px;
    margin: 0;
    font-size: clamp(48px, 7vw, 96px);
    line-height: .98;
    letter-spacing: -.04em;
}

.back-link {
    display: inline-block;
    margin-bottom: 42px;
    color: rgba(255,255,255,.72);
    font-size: 13px;
    font-weight: 750;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.project-single-grid {
    display: grid;
    grid-template-columns: 320px minmax(0, 900px);
    gap: 90px;
    align-items: start;
}

.project-meta {
    border-top: 1px solid var(--kehl-line);
}

.project-meta div {
    padding: 17px 0;
    border-bottom: 1px solid var(--kehl-line);
}

.project-meta span {
    display: block;
    margin-bottom: 4px;
    color: var(--kehl-blue);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.project-meta strong {
    font-size: 15px;
}

.error-page {
    min-height: 70vh;
    display: flex;
    align-items: center;
    padding: 100px 0;
    color: var(--kehl-white);
    background: var(--kehl-blue);
}

.error-page p:not(.eyebrow) {
    max-width: 650px;
    margin: 28px 0;
    font-size: 19px;
}

[data-reveal] {
    opacity: 0;
    transform: translateY(22px);
    transition: opacity .55s ease, transform .55s ease;
}

[data-reveal].is-visible {
    opacity: 1;
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
    }

    [data-reveal] {
        opacity: 1;
        transform: none;
    }
}

@media (max-width: 1180px) {
    :root {
        --kehl-container: min(calc(100vw - 44px), 1180px);
    }

    .header-inner {
        grid-template-columns: 210px 1fr auto;
        gap: 20px;
    }

    .site-brand {
        width: 200px;
    }

    .kehl-menu {
        gap: 18px;
    }

    .kehl-menu > li > a {
        font-size: 14px;
    }

    .header-cta {
        padding-inline: 15px;
        font-size: 12px;
    }

    .split-intro,
    .legacy-project-intro-grid {
        gap: 70px;
    }

    .project-card-copy {
        padding-left: 55px;
    }

    .legacy-project-card:nth-child(even) .project-card-copy {
        padding-right: 55px;
    }

    .history-grid {
        gap: 70px;
    }

    .footer-grid {
        gap: 50px;
    }
}

@media (max-width: 1099px) {
    .site-topbar {
        display: none;
    }

    .site-header {
        top: 0;
    }

    .header-inner {
        min-height: 94px;
        padding-top: 10px;
        padding-bottom: 12px;
        grid-template-columns: 1fr auto auto;
    }

    .site-brand {
        width: 230px;
        padding-top: 6px;
    }

    .nav-toggle {
        display: block;
        order: 3;
    }

    .header-cta {
        order: 2;
    }

    .primary-nav {
        position: fixed;
        inset: 82px 0 0;
        display: none;
        overflow: auto;
        padding: 28px 22px 60px;
        color: var(--kehl-charcoal);
        background: var(--kehl-offwhite);
    }

    .nav-open .primary-nav {
        display: block;
    }

    .kehl-menu {
        display: block;
        max-width: 760px;
        margin: 0 auto;
    }

    .kehl-menu > li {
        border-bottom: 1px solid var(--kehl-line);
    }

    .kehl-menu > li > a {
        min-height: 64px;
        color: var(--kehl-charcoal);
        font-size: 20px;
    }

    .kehl-menu > li > a::after {
        display: none;
    }

    .kehl-menu .sub-menu {
        position: static;
        min-width: 0;
        padding: 0 0 14px 18px;
        color: var(--kehl-charcoal);
        background: transparent;
        box-shadow: none;
        opacity: 1;
        visibility: visible;
        transform: none;
    }

    .kehl-menu .sub-menu a {
        padding: 9px 0;
        border: 0;
        color: rgba(21,24,33,.72);
    }

    .home-hero,
    .hero-inner {
        min-height: 650px;
    }

    .hero-inner {
        grid-template-columns: 1fr 180px;
    }

    .home-hero::after {
        display: none;
    }

    .hero-content {
        padding: 80px 0;
    }

    .hero-fact {
        margin-bottom: 90px;
    }

    .service-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .legacy-project-card {
        min-height: 460px;
    }

    .project-image-wrap {
        min-height: 460px;
    }

    .project-posts-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .process-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .kehl-gallery {
        grid-auto-rows: 95px;
    }

    .kehl-gallery a,
    .kehl-gallery a:nth-child(n) {
        grid-column: span 6;
        grid-row: span 3;
    }
}

@media (max-width: 800px) {
    :root {
        --kehl-container: min(calc(100vw - 34px), 760px);
    }

    body {
        font-size: 16px;
    }

    .header-inner {
        min-height: 74px;
    }

    .site-brand {
        width: 175px;
    }

    .primary-nav {
        inset: 74px 0 0;
    }

    .header-cta {
        display: none;
    }

    .home-hero {
        min-height: 650px;
        background-position: 62% center;
    }

    .home-hero.has-image {
        background-image:
            linear-gradient(180deg, rgba(7,21,102,.96) 0%, rgba(7,21,102,.88) 64%, rgba(7,21,102,.60) 100%),
            var(--hero-image);
    }

    .hero-inner {
        min-height: 650px;
        grid-template-columns: 1fr;
        align-content: center;
    }

    .hero-content {
        padding: 70px 0 40px;
    }

    .home-hero h1,
    .page-hero h1,
    .error-page h1 {
        font-size: clamp(46px, 13vw, 76px);
    }

    .hero-lead,
    .page-lead {
        font-size: 19px;
    }

    .hero-fact {
        display: none;
    }

    .intro-strip-grid {
        grid-template-columns: repeat(2, 1fr);
        min-height: 0;
        padding: 18px 0;
        gap: 14px 20px;
    }

    .intro-strip-grid p {
        font-size: 11px;
    }

    .section {
        padding: 86px 0;
    }

    .split-intro,
    .legacy-project-intro-grid,
    .history-grid,
    .team-grid,
    .project-single-grid {
        grid-template-columns: 1fr;
        gap: 42px;
    }

    .split-intro {
        margin-bottom: 50px;
    }

    .section h2,
    .page-content-section h2,
    .contact-cta h2 {
        font-size: clamp(38px, 10vw, 56px);
    }

    .service-grid {
        grid-template-columns: 1fr;
    }

    .service-card {
        min-height: 245px;
    }

    .service-number {
        margin-bottom: 40px;
    }

    .section-heading,
    .contact-cta-inner {
        align-items: flex-start;
        flex-direction: column;
    }

    .section-heading {
        display: flex;
    }

    .legacy-project-card {
        display: block;
        min-height: 0;
        padding: 0 0 64px;
        border-top: 1px solid rgba(255,255,255,.14);
    }

    .legacy-project-card + .legacy-project-card {
        padding-top: 64px;
    }

    .project-image-wrap {
        min-height: 0;
        aspect-ratio: 4 / 3;
    }

    .legacy-project-card:nth-child(even) .project-image-wrap,
    .legacy-project-card:nth-child(even) .project-card-copy {
        order: initial;
    }

    .project-card-copy,
    .legacy-project-card:nth-child(even) .project-card-copy {
        padding: 32px 0 0;
    }

    .project-card-copy h3 {
        font-size: 40px;
    }

    .project-posts-grid {
        grid-template-columns: 1fr;
        margin-top: 60px;
    }

    .history-number {
        min-height: 350px;
    }

    .history-number span {
        font-size: 150px;
    }

    .process-grid {
        grid-template-columns: 1fr;
        margin-top: 48px;
    }

    .process-grid article {
        min-height: 220px;
    }

    .process-grid span {
        margin-bottom: 35px;
    }

    .contact-cta {
        padding: 72px 0;
    }

    .contact-cta-inner {
        display: flex;
        gap: 38px;
    }

    .footer-grid {
        grid-template-columns: 1fr;
        gap: 45px;
        padding-top: 65px;
        padding-bottom: 55px;
    }

    .footer-bottom-inner {
        align-items: flex-start;
        flex-direction: column;
        padding: 24px 0;
    }

    .footer-legal {
        justify-content: flex-start;
    }

    .page-hero-blue {
        padding: 90px 0 80px;
    }

    .legacy-gallery-section {
        padding: 80px 0;
    }

    .kehl-gallery {
        display: grid;
        grid-template-columns: 1fr 1fr;
        grid-auto-rows: auto;
        gap: 8px;
    }

    .kehl-gallery a,
    .kehl-gallery a:nth-child(n) {
        grid-column: auto;
        grid-row: auto;
        aspect-ratio: 1 / 1;
    }

    .kehl-lightbox {
        padding: 58px 20px;
    }

    .kehl-lightbox-prev {
        left: 8px;
    }

    .kehl-lightbox-next {
        right: 8px;
    }

    .project-single-image {
        min-height: 320px;
        height: 58vw;
    }

    .project-single-title {
        padding-top: 50px;
        padding-bottom: 60px;
    }

    .project-meta {
        display: grid;
        grid-template-columns: 1fr 1fr;
    }

    .project-meta div {
        padding-right: 20px;
    }
}

@media (max-width: 520px) {
    :root {
        --kehl-container: calc(100% - 28px);
    }

    .site-brand {
        width: 160px;
    }

    .home-hero,
    .hero-inner {
        min-height: 610px;
    }

    .hero-actions {
        align-items: flex-start;
        flex-direction: column;
    }

    .intro-strip-grid {
        grid-template-columns: 1fr 1fr;
    }

    .history-actions {
        align-items: flex-start;
        flex-direction: column;
    }

    .project-meta {
        grid-template-columns: 1fr;
    }

    .kehl-gallery {
        grid-template-columns: 1fr;
    }

    .kehl-gallery a,
    .kehl-gallery a:nth-child(n) {
        aspect-ratio: 4 / 3;
    }

    .footer-legal {
        display: grid;
        gap: 9px;
    }
}


.contact-page-section {
    background: var(--kehl-offwhite);
}

.contact-page-grid {
    display: grid;
    grid-template-columns: .78fr 1.22fr;
    gap: 60px;
    align-items: start;
}

.contact-details h2 {
    margin-bottom: 42px;
}

.contact-detail-row {
    padding: 22px 0;
    border-top: 1px solid var(--kehl-line);
}

.contact-detail-row:last-child {
    border-bottom: 1px solid var(--kehl-line);
}

.contact-detail-row span {
    display: block;
    margin-bottom: 5px;
    color: var(--kehl-blue);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.contact-detail-row strong {
    display: block;
    font-size: 18px;
}

.contact-form-wrap {
    padding: 38px;
    background: var(--kehl-white);
}

.kehl-contact-form {
    display: grid;
    gap: 22px;
}

.kehl-contact-form .form-row {
    display: grid;
    gap: 18px;
}

.kehl-contact-form .form-row.two {
    grid-template-columns: 1fr 1fr;
}

.kehl-contact-form label > span {
    display: block;
    margin-bottom: 7px;
    font-size: 13px;
    font-weight: 750;
}

.kehl-contact-form input:not([type="checkbox"]),
.kehl-contact-form select,
.kehl-contact-form textarea {
    width: 100%;
    padding: 14px 15px;
    border: 1px solid rgba(21,24,33,.20);
    border-radius: 0;
    color: var(--kehl-charcoal);
    background: #fafafa;
    outline: none;
}

.kehl-contact-form input:focus,
.kehl-contact-form select:focus,
.kehl-contact-form textarea:focus {
    border-color: var(--kehl-blue);
    box-shadow: 0 0 0 2px rgba(15,34,129,.08);
}

.privacy-check {
    display: grid !important;
    grid-template-columns: 20px 1fr;
    gap: 10px;
    align-items: start;
    font-size: 13px;
    line-height: 1.5;
}

.privacy-check input {
    margin-top: 3px;
}

.privacy-check a {
    color: var(--kehl-blue);
    text-decoration: underline;
}

.kehl-honeypot {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.form-message {
    margin-bottom: 24px;
    padding: 14px 16px;
    border-left: 4px solid var(--kehl-blue);
    background: #f3f4fa;
    font-size: 14px;
}

.form-message.success {
    border-left-color: #207a45;
}

.form-message.error {
    border-left-color: #a92d2d;
}

.prospect-section {
    background: var(--kehl-offwhite);
}

.prospect-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 28px;
    align-items: start;
}

.prospect-grid a {
    display: block;
    padding: 20px;
    background: var(--kehl-white);
    box-shadow: 0 10px 35px rgba(10,20,70,.08);
}

.prospect-grid img {
    display: block;
    width: 100%;
    height: auto;
}

@media (max-width: 800px) {
    .contact-page-grid {
        grid-template-columns: 1fr;
        gap: 50px;
    }

    .contact-form-wrap {
        padding: 28px 22px;
    }

    .kehl-contact-form .form-row.two {
        grid-template-columns: 1fr;
    }

    .prospect-grid {
        grid-template-columns: 1fr;
    }
}

/* Version 1.1.0: Mega navigation */
.kehl-mega-navigation > li {
    position: static;
}

.kehl-parent-link {
    display: flex;
    align-items: center;
    min-height: 94px;
}

.kehl-parent-link > a,
.kehl-mega-navigation > li > a {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 94px;
    color: rgba(255,255,255,.90);
    font-size: 15px;
    font-weight: 650;
    letter-spacing: .02em;
}

.kehl-parent-link > a::after,
.kehl-mega-navigation > li > a::after {
    content: "";
    position: absolute;
    left: 0;
    right: 100%;
    bottom: 24px;
    height: 2px;
    background: var(--kehl-offwhite);
    transition: right .2s ease;
}

.kehl-parent-link > a:hover,
.kehl-mega-navigation > li > a:hover,
.kehl-mega-navigation > li.current-menu-item > a,
.kehl-mega-navigation > li.current-menu-item .kehl-parent-link > a {
    color: var(--kehl-white);
}

.kehl-parent-link > a:hover::after,
.kehl-mega-navigation > li > a:hover::after,
.kehl-mega-navigation > li.current-menu-item > a::after,
.kehl-mega-navigation > li.current-menu-item .kehl-parent-link > a::after {
    right: 0;
}

.kehl-submenu-toggle {
    width: 28px;
    height: 38px;
    margin-left: 4px;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--kehl-white);
}

.kehl-submenu-toggle span {
    display: block;
    position: relative;
    width: 9px;
    height: 9px;
    margin: 0 auto 5px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg);
    transition: transform .2s ease;
}

.kehl-mega-menu {
    position: absolute;
    z-index: 30;
    top: calc(100% - 1px);
    left: 50%;
    width: min(1420px, calc(100vw - 48px));
    padding: 28px;
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr) 240px;
    gap: 28px;
    color: var(--kehl-charcoal);
    background: var(--kehl-white);
    border-top: 1px solid rgba(15,34,129,.08);
    box-shadow: 0 30px 70px rgba(6,15,64,.20);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateX(-50%);
    transition: opacity .16s ease, visibility .16s ease;
}

.kehl-has-mega:hover > .kehl-mega-menu,
.kehl-has-mega:focus-within > .kehl-mega-menu,
.kehl-has-mega.is-submenu-open > .kehl-mega-menu,
.kehl-has-mega.is-hover-open > .kehl-mega-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(-50%);
}

.kehl-mega-menu::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -10px;
    height: 10px;
}

.kehl-mega-intro {
    padding: 8px 20px 8px 2px;
    border-right: 1px solid var(--kehl-line);
}

.kehl-mega-intro h2 {
    margin: 6px 0 12px;
    color: var(--kehl-blue);
    font-size: clamp(25px, 2vw, 34px);
    line-height: 1.08;
    letter-spacing: -.025em;
}

.kehl-mega-intro p:not(.eyebrow) {
    margin: 0 0 18px;
    color: rgba(21,24,33,.72);
    font-size: 14px;
    line-height: 1.55;
}

.kehl-mega-services {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.kehl-mega-card {
    min-width: 0;
    display: grid;
    grid-template-columns: 82px minmax(0, 1fr);
    align-items: center;
    gap: 14px;
    padding: 10px;
    color: var(--kehl-charcoal);
    background: #f7f7f9;
    transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}

.kehl-mega-card:hover {
    transform: translateY(-2px);
    background: var(--kehl-offwhite);
    box-shadow: 0 10px 24px rgba(10,20,70,.09);
}

.kehl-mega-thumb {
    position: relative;
    display: block;
    width: 82px;
    height: 64px;
    overflow: hidden;
    background: var(--kehl-blue);
}

.kehl-mega-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.kehl-mega-thumb::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(15,34,129,.08), rgba(9,22,95,.38));
}

.kehl-mega-thumb.no-image::before {
    content: "KEHL";
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(255,255,255,.18);
    font-family: Georgia, serif;
    font-size: 21px;
    letter-spacing: .04em;
}

.kehl-mega-thumb b {
    position: absolute;
    z-index: 2;
    right: 7px;
    bottom: 5px;
    color: var(--kehl-white);
    font-size: 11px;
    letter-spacing: .08em;
}

.kehl-mega-card-copy {
    display: block;
    min-width: 0;
}

.kehl-mega-card-copy strong,
.kehl-mega-card-copy small {
    display: block;
}

.kehl-mega-card-copy strong {
    color: var(--kehl-blue);
    font-size: 14px;
    line-height: 1.28;
}

.kehl-mega-card-copy small {
    margin-top: 4px;
    color: rgba(21,24,33,.58);
    font-size: 11px;
    line-height: 1.35;
}

.kehl-mega-cta {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    min-height: 100%;
    padding: 22px;
    color: var(--kehl-white);
    background: var(--kehl-blue);
}

.kehl-mega-cta span {
    margin-bottom: 10px;
    color: rgba(255,255,255,.68);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .12em;
}

.kehl-mega-cta strong {
    margin-bottom: 22px;
    font-size: 20px;
    line-height: 1.25;
}

.kehl-mega-cta a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    padding: 0 14px;
    color: var(--kehl-blue);
    background: var(--kehl-offwhite);
    font-size: 12px;
    font-weight: 750;
    text-transform: uppercase;
    letter-spacing: .05em;
}

.kehl-small-menu {
    position: absolute;
    top: calc(100% - 1px);
    min-width: 230px;
    margin: 0;
    padding: 10px;
    list-style: none;
    color: var(--kehl-charcoal);
    background: var(--kehl-white);
    box-shadow: var(--kehl-shadow);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: none;
    transition: opacity .16s ease, visibility .16s ease;
}

.kehl-has-small-menu:hover > .kehl-small-menu,
.kehl-has-small-menu:focus-within > .kehl-small-menu,
.kehl-has-small-menu.is-submenu-open > .kehl-small-menu,
.kehl-has-small-menu.is-hover-open > .kehl-small-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: none;
}

.kehl-small-menu a {
    display: block;
    padding: 11px 12px;
    color: var(--kehl-charcoal);
    font-size: 14px;
    font-weight: 650;
}

.kehl-small-menu a:hover {
    color: var(--kehl-blue);
    background: #f4f5fb;
}

/* Version 1.1.0: Leistungen */
.services-overview-hero .page-lead {
    max-width: 860px;
}

.services-overview-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    background: var(--kehl-line);
    border: 1px solid var(--kehl-line);
}

.service-overview-card {
    display: grid;
    grid-template-columns: 180px minmax(0, 1fr);
    min-height: 270px;
    color: var(--kehl-charcoal);
    background: var(--kehl-white);
    overflow: hidden;
}

.service-overview-image {
    position: relative;
    min-height: 100%;
    background: var(--kehl-blue);
    overflow: hidden;
}

.service-overview-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.service-overview-image.no-image::before {
    content: "KEHL";
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(255,255,255,.18);
    font-family: Georgia, serif;
    font-size: 42px;
}

.service-overview-number {
    position: absolute;
    right: 12px;
    bottom: 10px;
    color: var(--kehl-white);
    font-size: 13px;
    font-weight: 750;
    letter-spacing: .1em;
}

.service-overview-copy {
    padding: 32px;
}

.service-overview-copy h2 {
    margin: 5px 0 12px;
    color: var(--kehl-blue);
    font-size: 27px;
    line-height: 1.12;
}

.service-overview-copy p {
    margin: 0 0 18px;
    font-size: 15px;
    color: rgba(21,24,33,.72);
}

.legacy-project-detail-copy {
    padding-top: 0;
}

.legacy-project-detail-grid {
    display: grid;
    grid-template-columns: .8fr 1.2fr;
    gap: 80px;
    align-items: start;
}

.legacy-project-detail-grid h2 {
    color: var(--kehl-blue);
    margin-top: 0;
}

.legacy-project-detail-grid p {
    margin-top: 0;
    font-size: 18px;
}

@media (max-width: 1280px) {
    .kehl-menu {
        gap: 20px;
    }

    .header-inner {
        grid-template-columns: 220px 1fr auto;
        gap: 24px;
    }

    .site-brand {
        width: 210px;
    }

    .kehl-mega-menu {
        grid-template-columns: 230px minmax(0, 1fr) 210px;
        gap: 20px;
        padding: 22px;
    }

    .kehl-mega-services {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 1099px) {
    .kehl-parent-link {
        min-height: 64px;
        justify-content: space-between;
    }

    .kehl-parent-link > a,
    .kehl-mega-navigation > li > a {
        min-height: 64px;
        color: var(--kehl-charcoal);
        font-size: 20px;
    }

    .kehl-parent-link > a::after,
    .kehl-mega-navigation > li > a::after {
        display: none;
    }

    .kehl-submenu-toggle {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 52px;
        height: 52px;
        color: var(--kehl-blue);
        border: 1px solid rgba(15,34,129,.12);
    }

    .kehl-submenu-toggle span {
        margin: 0 0 5px;
    }

    .is-submenu-open > .kehl-parent-link .kehl-submenu-toggle span {
        transform: rotate(225deg);
        margin-bottom: -3px;
    }

    .kehl-mega-menu,
    .kehl-small-menu {
        display: none;
        position: static;
        width: 100%;
        min-width: 0;
        padding: 0 0 22px;
        margin: 0;
        color: var(--kehl-charcoal);
        background: transparent;
        box-shadow: none;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: none;
    }

    .kehl-has-mega.is-submenu-open > .kehl-mega-menu,
    .kehl-has-small-menu.is-submenu-open > .kehl-small-menu {
        display: block;
        transform: none;
    }

    .kehl-mega-intro,
    .kehl-mega-cta {
        display: none;
    }

    .kehl-mega-services {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding: 4px 0 8px;
        gap: 10px;
    }

    .kehl-mega-card {
        grid-template-columns: 74px minmax(0, 1fr);
        padding: 8px;
        background: var(--kehl-white);
        border: 1px solid var(--kehl-line);
    }

    .kehl-mega-thumb {
        width: 74px;
        height: 58px;
    }

    .kehl-small-menu {
        padding-left: 18px;
    }

    .kehl-small-menu a {
        padding: 9px 0;
        color: rgba(21,24,33,.72);
    }
}

@media (max-width: 800px) {
    .services-overview-grid {
        grid-template-columns: 1fr;
    }

    .service-overview-card {
        grid-template-columns: 125px minmax(0, 1fr);
        min-height: 230px;
    }

    .service-overview-copy {
        padding: 24px 20px;
    }

    .legacy-project-detail-grid {
        grid-template-columns: 1fr;
        gap: 22px;
    }
}

@media (max-width: 560px) {
    .kehl-mega-services {
        grid-template-columns: 1fr;
    }

    .header-cta {
        display: none;
    }

    .header-inner {
        grid-template-columns: 1fr auto;
    }

    .site-brand {
        width: min(235px, 68vw);
    }

    .service-overview-card {
        grid-template-columns: 1fr;
    }

    .service-overview-image {
        min-height: 190px;
    }
}

@media (min-width: 1100px) {
    .kehl-mega-navigation > .kehl-has-small-menu {
        position: relative;
    }

    .kehl-has-small-menu > .kehl-small-menu {
        left: -18px;
    }
}


@media (max-width: 800px) {
    .service-grid { grid-template-columns: 1fr; }
    .media-split, .split-intro-media { grid-template-columns: 1fr; gap: 34px; }
    .section-visual, .team-visual, .contact-visual, .legacy-project-preview { min-height: 240px; }
    .team-side { gap: 18px; }
}


/* Version 1.2.49: Karriere */
.jobs-hero-alt {
    position: relative;
    min-height: 700px;
    overflow: hidden;
    background: var(--kehl-blue-dark);
}

.jobs-hero-media,
.jobs-hero-overlay {
    position: absolute;
    inset: 0;
}

.jobs-hero-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: 64% center;
}

.jobs-hero-overlay {
    z-index: 1;
    background:
        linear-gradient(90deg, rgba(7, 19, 83, .96) 0%, rgba(10, 27, 103, .89) 32%, rgba(10, 27, 103, .54) 55%, rgba(10, 27, 103, .16) 78%, rgba(10, 27, 103, .08) 100%);
}

.jobs-hero-content {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    min-height: 700px;
    padding-top: 148px;
    padding-bottom: 92px;
}

.jobs-hero-copy {
    width: min(650px, 52vw);
    color: var(--kehl-white);
}

.jobs-hero-copy .eyebrow {
    margin-bottom: 18px;
    color: rgba(255,255,255,.82);
}

.jobs-hero-copy h1 {
    max-width: 620px;
    margin: 0 0 22px;
    color: var(--kehl-white);
    font-size: clamp(58px, 6.3vw, 92px);
    line-height: .94;
    letter-spacing: -.055em;
}

.jobs-hero-copy .page-lead {
    max-width: 610px;
    margin: 0 0 30px;
    color: rgba(255,255,255,.9);
    font-size: 19px;
    line-height: 1.6;
}

.jobs-hero-copy .button {
    min-width: 190px;
}

.jobs-overview-section {
    position: relative;
    z-index: 3;
    padding-top: 86px;
    background: var(--kehl-offwhite);
}

.jobs-heading-block {
    max-width: 820px;
    margin-bottom: 34px;
}

.jobs-heading-block .eyebrow {
    margin-bottom: 12px;
}

.jobs-heading-block h2 {
    margin: 0;
    color: var(--kehl-blue);
    font-size: clamp(40px, 4.7vw, 64px);
    line-height: 1.02;
    letter-spacing: -.045em;
}

.jobs-details-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
    border: 0;
    background: transparent;
}

.jobs-detail-cards article {
    min-height: 340px;
    padding: 38px 40px;
    border: 1px solid rgba(15,34,129,.1);
    border-radius: 16px;
    background: var(--kehl-white);
    box-shadow: 0 18px 46px rgba(10,20,70,.08);
}

.jobs-detail-cards h2 {
    margin: 0 0 22px;
    color: var(--kehl-blue);
    font-size: clamp(30px, 3vw, 42px);
    letter-spacing: -.035em;
}

.jobs-list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.jobs-list li {
    position: relative;
    padding: 13px 0 13px 30px;
    border-top: 1px solid var(--kehl-line);
    color: rgba(21,24,33,.82);
}

.jobs-list li:last-child {
    border-bottom: 1px solid var(--kehl-line);
}

.jobs-list li::before {
    content: "";
    position: absolute;
    left: 4px;
    top: 20px;
    width: 8px;
    height: 8px;
    border: 2px solid var(--kehl-blue);
    transform: rotate(45deg);
}

@media (max-width: 1099px) {
    .jobs-hero-alt,
    .jobs-hero-content {
        min-height: 620px;
    }

    .jobs-hero-copy {
        width: min(660px, 68vw);
    }

    .jobs-hero-media img {
        object-position: 68% center;
    }
}

@media (max-width: 800px) {
    .jobs-hero-alt,
    .jobs-hero-content {
        min-height: 660px;
    }

    .jobs-hero-media img {
        object-position: 69% center;
    }

    .jobs-hero-overlay {
        background: linear-gradient(180deg, rgba(7,19,83,.66) 0%, rgba(7,19,83,.48) 36%, rgba(7,19,83,.94) 76%, rgba(7,19,83,.98) 100%);
    }

    .jobs-hero-content {
        align-items: flex-end;
        padding-top: 150px;
        padding-bottom: 64px;
    }

    .jobs-hero-copy {
        width: 100%;
    }

    .jobs-hero-copy h1 {
        font-size: clamp(48px, 14vw, 70px);
    }

    .jobs-hero-copy .page-lead {
        font-size: 17px;
    }

    .jobs-overview-section {
        padding-top: 62px;
    }

    .jobs-details-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    .jobs-detail-cards article {
        min-height: 0;
        padding: 28px 24px;
    }
}

.jobs-cta {
    position: relative;
    overflow: hidden;
}

.contact-cta::before,
.jobs-cta::before {
    content: "";
    position: absolute;
    right: -80px;
    top: -20px;
    width: 280px;
    height: 280px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 50%;
}

@media (max-width: 1099px) {
    .kehl-company-panel,
    .kehl-mega-menu-services {
        width: calc(100vw - 48px);
    }

    .kehl-company-panel {
        grid-template-columns: 1fr;
    }

    .kehl-company-panel-intro {
        padding-right: 0;
        border-right: 0;
        border-bottom: 1px solid var(--kehl-line);
        padding-bottom: 16px;
    }

    .kehl-company-links {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 800px) {
    .accent-band-grid,
    .legacy-project-intro-grid {
        grid-template-columns: 1fr;
    }

    .accent-band-points {
        justify-content: flex-start;
    }
}

@media (max-width: 1099px) {
    .kehl-company-panel,
    .kehl-mega-menu-services,
    .kehl-small-menu {
        position: static;
        width: 100%;
        max-width: none;
        left: auto;
        top: auto;
        transform: none;
        margin-top: 10px;
        box-shadow: none;
        border-radius: 0;
    }

    .kehl-mega-menu-services {
        padding: 18px 0 0;
        grid-template-columns: 1fr;
        gap: 18px;
        background: transparent;
    }

    .kehl-mega-intro,
    .kehl-company-panel-intro {
        border: 0;
        padding: 0;
    }

    .kehl-mega-services {
        grid-template-columns: 1fr;
    }

    .kehl-mega-cta {
        min-height: 0;
        border-radius: 14px;
    }

    .kehl-company-panel {
        padding: 18px 0 0;
        background: transparent;
        color: var(--kehl-white);
    }

    .kehl-company-links a {
        min-height: 0;
    }
}


/* Version 1.1.9: einheitliche Leistungskarten */
.service-grid {
    gap: 18px;
    border: 0;
    align-items: stretch;
    background: transparent;
}

.service-card {
    display: grid;
    grid-template-rows: 220px auto 1fr auto;
    gap: 16px;
    min-height: 100%;
    height: 100%;
    padding: 18px 18px 22px;
    border: 1px solid var(--kehl-line);
    background: rgba(255,255,255,.72);
}

.service-card-media {
    position: relative;
    display: block;
    width: 100%;
    height: 220px;
    min-height: 220px;
    overflow: hidden;
    background: #dfe3ec;
}

.service-card-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.service-card-media.no-image::before {
    content: "KEHL";
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: rgba(255,255,255,.28);
    background: var(--kehl-blue);
    font-family: Georgia, serif;
    font-size: 38px;
}

.service-number {
    position: absolute;
    z-index: 2;
    left: 12px;
    bottom: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 34px;
    margin: 0;
    color: var(--kehl-blue);
    background: var(--kehl-offwhite);
    border-radius: 4px;
}

.service-card h3 {
    min-height: 2.25em;
    margin: 0;
    font-size: 24px;
    line-height: 1.12;
}

.service-card p {
    max-width: none;
    margin: 0;
    min-height: 4.6em;
}

.service-arrow {
    position: static;
    justify-self: end;
    align-self: end;
}

.service-card::after {
    display: none;
}

@media (max-width: 1099px) {
    .service-card {
        grid-template-rows: 200px auto 1fr auto;
    }
    .service-card-media {
        height: 200px;
        min-height: 200px;
    }
}

@media (max-width: 800px) {
    .service-card {
        grid-template-rows: 230px auto auto auto;
    }
    .service-card-media {
        height: 230px;
        min-height: 230px;
    }
    .service-card h3,
    .service-card p {
        min-height: 0;
    }
}


/* Version 1.1.10: Unternehmen nutzt dasselbe Megamenü-System wie Leistungen */
.kehl-mega-menu-company {
    width: min(1420px, calc(100vw - 48px));
    padding: 32px;
    grid-template-columns: 300px minmax(0, 1fr) 250px;
    border-radius: 0 0 18px 18px;
}

.kehl-company-mega-services {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-content: stretch;
}

.kehl-company-mega-card {
    grid-template-columns: 1fr;
    grid-template-rows: 118px 1fr;
    gap: 12px;
    align-items: start;
    padding: 10px;
}

.kehl-company-mega-card .kehl-mega-thumb {
    width: 100%;
    height: 118px;
    border-radius: 10px;
}

.kehl-company-mega-card .kehl-mega-card-copy {
    padding: 0 4px 4px;
}

.kehl-company-mega-card .kehl-mega-card-copy strong {
    font-size: 16px;
}

@media (max-width: 1280px) and (min-width: 1100px) {
    .kehl-mega-menu-company {
        grid-template-columns: 230px minmax(0, 1fr) 210px;
        gap: 20px;
        padding: 22px;
    }

    .kehl-company-mega-card {
        grid-template-rows: 92px 1fr;
    }

    .kehl-company-mega-card .kehl-mega-thumb {
        height: 92px;
    }
}

@media (max-width: 1099px) {
    .kehl-mega-menu-company {
        position: static;
        width: 100%;
        padding: 18px 0 0;
        margin: 0;
        grid-template-columns: 1fr;
        gap: 18px;
        background: transparent;
        box-shadow: none;
        border-radius: 0;
        transform: none;
    }

    .kehl-company-mega-services {
        grid-template-columns: 1fr;
    }

    .kehl-company-mega-card {
        grid-template-columns: 86px minmax(0, 1fr);
        grid-template-rows: auto;
        align-items: center;
    }

    .kehl-company-mega-card .kehl-mega-thumb {
        width: 86px;
        height: 70px;
    }
}


/* Version 1.1.11: Mobile- und Footer-Feinschliff */
.mobile-nav-actions {
    display: none;
}

.footer-metal-line {
    height: 10px;
    background:
        repeating-linear-gradient(135deg,
            var(--kehl-blue) 0 26px,
            #233a9a 26px 28px,
            var(--kehl-blue) 28px 52px);
}

.footer-callout {
    min-height: 250px;
    display: grid;
    grid-template-columns: 160px minmax(0, 1fr) auto;
    gap: 48px;
    align-items: center;
    padding-top: 50px;
    padding-bottom: 50px;
}

.footer-callout-mark {
    position: relative;
    width: 150px;
    height: 150px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 50%;
}

.footer-callout-mark::before,
.footer-callout-mark::after {
    content: "";
    position: absolute;
    background: rgba(255,255,255,.18);
}

.footer-callout-mark::before {
    width: 48px;
    height: 1px;
    left: -24px;
    top: 50%;
}

.footer-callout-mark::after {
    width: 1px;
    height: 48px;
    top: -24px;
    left: 50%;
}

.footer-callout-mark strong {
    color: var(--kehl-white);
    font-size: 38px;
    line-height: 1;
    letter-spacing: -.04em;
}

.footer-callout-mark span {
    margin-top: 6px;
    color: rgba(255,255,255,.62);
    font-size: 11px;
    font-weight: 750;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.footer-callout-copy .eyebrow {
    color: rgba(255,255,255,.56);
}

.footer-callout-copy h2 {
    margin: 7px 0 10px;
    color: var(--kehl-white);
    font-size: clamp(30px, 3vw, 48px);
    line-height: 1.05;
    letter-spacing: -.035em;
    text-transform: none;
}

.footer-callout-copy p:not(.eyebrow) {
    max-width: 690px;
    margin: 0;
    color: rgba(255,255,255,.68);
    font-size: 16px;
}

.footer-callout-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
}

.footer-phone-link {
    color: var(--kehl-white);
    font-size: 15px;
    font-weight: 700;
}

.footer-main {
    border-top: 1px solid rgba(255,255,255,.10);
    background: #10131a;
}

.footer-grid-v2 {
    grid-template-columns: 1.3fr .9fr .7fr .9fr;
    gap: 56px;
    padding-top: 70px;
    padding-bottom: 68px;
}

.footer-grid-v2 .footer-brand img {
    width: 250px;
    margin-bottom: 24px;
}

.footer-contact-mini {
    display: grid;
    gap: 5px;
    margin-top: 22px;
    color: var(--kehl-white);
    font-size: 14px;
}

.footer-column {
    min-width: 0;
}

.footer-service-links {
    columns: 1;
}

.footer-address p {
    max-width: 250px;
}

.footer-route {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 6px;
    color: var(--kehl-white);
    font-size: 13px;
    font-weight: 700;
}

.footer-social-links {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 18px;
}

.footer-social-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border: 1px solid rgba(255,255,255,.28);
    color: var(--kehl-white);
    transition: background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}

.footer-social-link:hover {
    color: var(--kehl-blue);
    background: var(--kehl-white);
    border-color: var(--kehl-white);
    transform: translateY(-2px);
}

.footer-social-link svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.footer-social-link:last-child svg {
    fill: currentColor;
    stroke: none;
}

.footer-links a {
    position: relative;
    display: inline-flex;
    padding: 2px 0;
}

.footer-links a::before {
    content: "";
    width: 0;
    height: 1px;
    margin-right: 0;
    align-self: center;
    background: rgba(255,255,255,.55);
    transition: width .18s ease, margin-right .18s ease;
}

.footer-links a:hover::before {
    width: 14px;
    margin-right: 8px;
}

@media (max-width: 1099px) {
    .site-header {
        border-top-width: 0;
    }

    .header-inner {
        min-height: 88px;
        padding-top: 8px;
        padding-bottom: 8px;
    }

    .site-brand {
        width: 220px;
        padding-top: 0;
    }

    .primary-nav {
        inset: 88px 0 0;
        padding: 24px 22px 34px;
        background: #f5f2ee;
        overscroll-behavior: contain;
    }

    .kehl-menu {
        max-width: 820px;
    }

    .kehl-menu > li {
        border-bottom: 1px solid rgba(21,24,33,.10);
    }

    .kehl-parent-link,
    .kehl-parent-link > a,
    .kehl-mega-navigation > li > a {
        min-height: 62px;
    }

    .kehl-parent-link > a,
    .kehl-mega-navigation > li > a {
        font-size: 19px;
        font-weight: 700;
    }

    .kehl-submenu-toggle {
        width: 46px;
        height: 46px;
        border-radius: 50%;
        background: rgba(15,34,129,.05);
    }

    .kehl-mega-menu-services,
    .kehl-mega-menu-company {
        padding: 6px 0 18px;
    }

    .kehl-mega-intro,
    .kehl-mega-cta {
        display: block;
    }

    .kehl-mega-intro {
        padding: 18px 0 14px;
        border: 0;
    }

    .kehl-mega-intro h2 {
        font-size: 25px;
    }

    .kehl-mega-cta {
        min-height: 0;
        margin-top: 10px;
        border-radius: 12px;
    }

    .kehl-mega-services,
    .kehl-company-mega-services {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .mobile-nav-actions {
        display: grid;
        grid-template-columns: 1fr auto;
        gap: 10px;
        max-width: 820px;
        margin: 22px auto 0;
        padding-bottom: 20px;
    }

    .mobile-nav-project,
    .mobile-nav-phone {
        min-height: 50px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0 16px;
        border-radius: 4px;
        font-size: 13px;
        font-weight: 800;
        text-transform: uppercase;
        letter-spacing: .06em;
    }

    .mobile-nav-project {
        color: var(--kehl-white);
        background: var(--kehl-blue);
    }

    .mobile-nav-phone {
        color: var(--kehl-blue);
        border: 1px solid rgba(15,34,129,.18);
        background: var(--kehl-white);
    }

    .footer-callout {
        grid-template-columns: 120px minmax(0, 1fr);
    }

    .footer-callout-mark {
        width: 112px;
        height: 112px;
    }

    .footer-callout-actions {
        grid-column: 2;
        flex-direction: row;
        align-items: center;
    }

    .footer-grid-v2 {
        grid-template-columns: 1.2fr 1fr 1fr;
        gap: 40px;
    }

    .footer-brand {
        grid-column: 1 / -1;
        padding-bottom: 34px;
        border-bottom: 1px solid rgba(255,255,255,.10);
    }
}

@media (max-width: 800px) {
    :root {
        --kehl-container: min(calc(100vw - 28px), 760px);
    }

    .header-inner {
        min-height: 76px;
        padding-top: 6px;
        padding-bottom: 6px;
    }

    .site-brand {
        width: 180px;
    }

    .primary-nav {
        inset: 76px 0 0;
        padding: 16px 14px 28px;
    }

    .home-hero,
    .hero-inner {
        min-height: 590px;
    }

    .hero-content {
        padding: 54px 0 34px;
    }

    .home-hero h1,
    .page-hero h1,
    .error-page h1 {
        font-size: clamp(38px, 11vw, 56px);
        line-height: .98;
    }

    .hero-lead,
    .page-lead {
        font-size: 17px;
        line-height: 1.55;
    }

    .hero-chip-row,
    .intro-badges,
    .project-hero-tags {
        gap: 7px;
    }

    .hero-chip-row span,
    .intro-badges span,
    .project-hero-tags span {
        min-height: 32px;
        padding: 0 10px;
        font-size: 10px;
    }

    .section {
        padding: 70px 0;
    }

    .section h2,
    .page-content-section h2,
    .contact-cta h2 {
        font-size: clamp(30px, 8.5vw, 44px);
        line-height: 1.06;
    }

    .service-card {
        grid-template-rows: 210px auto auto auto;
    }

    .service-card-media {
        height: 210px;
        min-height: 210px;
    }

    .project-card-copy h3 {
        font-size: 34px;
    }

    .page-hero-blue {
        padding: 72px 0 64px;
    }

    .kehl-mega-services,
    .kehl-company-mega-services {
        grid-template-columns: 1fr;
    }

    .kehl-mega-card,
    .kehl-company-mega-card {
        min-height: 0;
    }

    .mobile-nav-actions {
        grid-template-columns: 1fr;
    }

    .footer-callout {
        grid-template-columns: 1fr;
        gap: 24px;
        padding-top: 42px;
        padding-bottom: 42px;
    }

    .footer-callout-mark {
        width: 94px;
        height: 94px;
    }

    .footer-callout-mark strong {
        font-size: 30px;
    }

    .footer-callout-actions {
        grid-column: auto;
        flex-direction: column;
        align-items: stretch;
    }

    .footer-callout-actions .button,
    .footer-phone-link {
        width: 100%;
        justify-content: center;
        text-align: center;
    }

    .footer-grid-v2 {
        grid-template-columns: 1fr 1fr;
        gap: 38px 26px;
        padding-top: 52px;
        padding-bottom: 52px;
    }

    .footer-brand {
        grid-column: 1 / -1;
    }

    .footer-address {
        grid-column: 1 / -1;
        padding-top: 28px;
        border-top: 1px solid rgba(255,255,255,.10);
    }

    .footer-bottom-inner {
        gap: 14px;
    }
}

@media (max-width: 520px) {
    :root {
        --kehl-container: calc(100% - 24px);
    }

    .site-brand {
        width: 160px;
    }

    .nav-toggle {
        width: 46px;
        height: 46px;
    }

    .footer-grid-v2 {
        grid-template-columns: 1fr;
    }

    .footer-brand,
    .footer-address {
        grid-column: auto;
    }

    .footer-column {
        padding-top: 26px;
        border-top: 1px solid rgba(255,255,255,.10);
    }

    .footer-brand {
        padding-bottom: 28px;
        border-top: 0;
    }

    .footer-bottom-inner {
        padding: 22px 0;
    }
}


/* Version 1.2.1: Mobile Navigation Fix */
@media (max-width: 1099px) {
    .site-header {
        position: sticky;
        top: 0;
        z-index: 10050;
        width: 100%;
        background: var(--kehl-blue);
    }

    .header-inner {
        position: relative;
        min-height: 82px;
        padding-top: 7px;
        padding-bottom: 7px;
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 18px;
    }

    .site-brand {
        width: min(230px, 52vw);
        max-width: 230px;
        padding: 0;
        z-index: 3;
    }

    .header-cta {
        display: none;
    }

    .nav-toggle {
        position: relative;
        z-index: 4;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        width: 48px;
        height: 48px;
        padding: 10px;
        margin: 0;
        order: 2;
        border: 1px solid rgba(255,255,255,.34);
        border-radius: 0;
        background: rgba(255,255,255,.03);
    }

    .nav-toggle > span:not(.screen-reader-text) {
        width: 24px;
        height: 2px;
        margin: 3px 0;
        transform-origin: center;
        transition: transform .2s ease, opacity .2s ease, margin .2s ease;
    }

    .nav-open .nav-toggle > span:not(.screen-reader-text):nth-child(1) {
        transform: translateY(8px) rotate(45deg);
    }

    .nav-open .nav-toggle > span:not(.screen-reader-text):nth-child(2) {
        opacity: 0;
    }

    .nav-open .nav-toggle > span:not(.screen-reader-text):nth-child(3) {
        transform: translateY(-8px) rotate(-45deg);
    }

    .primary-nav {
        position: fixed !important;
        z-index: 10040;
        inset: 82px 0 0 0 !important;
        width: 100vw !important;
        max-width: none !important;
        height: calc(100dvh - 82px);
        margin: 0 !important;
        padding: 0 !important;
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
        color: var(--kehl-charcoal);
        background: #f5f2ee;
        box-shadow: none;
        transform: translateY(-10px);
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
        transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
    }

    .nav-open .primary-nav {
        display: block !important;
        opacity: 1;
        visibility: visible;
        pointer-events: auto;
        transform: translateY(0);
    }

    .primary-nav::before {
        content: "";
        display: block;
        height: 1px;
        background: rgba(15,34,129,.10);
    }

    .kehl-menu {
        display: block !important;
        width: min(100% - 36px, 760px) !important;
        max-width: 760px !important;
        margin: 0 auto !important;
        padding: 18px 0 10px !important;
    }

    .kehl-mega-navigation > li,
    .kehl-menu > li {
        position: relative !important;
        width: 100%;
        margin: 0;
        border-bottom: 1px solid rgba(21,24,33,.12);
    }

    .kehl-parent-link {
        width: 100%;
        min-height: 62px;
        display: grid;
        grid-template-columns: minmax(0, 1fr) 48px;
        align-items: center;
        gap: 10px;
    }

    .kehl-parent-link > a,
    .kehl-mega-navigation > li > a {
        min-height: 62px;
        width: 100%;
        padding: 0;
        display: flex;
        align-items: center;
        color: var(--kehl-charcoal) !important;
        font-size: 20px;
        font-weight: 720;
        line-height: 1.2;
    }

    .kehl-mega-navigation > li > a::after,
    .kehl-parent-link > a::after {
        display: none !important;
    }

    .kehl-submenu-toggle {
        width: 44px;
        height: 44px;
        margin: 0;
        display: flex;
        align-items: center;
        justify-content: center;
        justify-self: end;
        border: 1px solid rgba(15,34,129,.14);
        border-radius: 50%;
        color: var(--kehl-blue);
        background: rgba(15,34,129,.04);
    }

    .kehl-submenu-toggle span {
        width: 10px;
        height: 10px;
        margin: -5px 0 0;
    }

    .is-submenu-open > .kehl-parent-link .kehl-submenu-toggle {
        background: var(--kehl-blue);
        color: var(--kehl-white);
    }

    .is-submenu-open > .kehl-parent-link .kehl-submenu-toggle span {
        transform: rotate(225deg);
        margin-top: 5px;
        margin-bottom: 0;
    }

    .kehl-mega-menu,
    .kehl-mega-menu-services,
    .kehl-mega-menu-company {
        position: static !important;
        inset: auto !important;
        left: auto !important;
        top: auto !important;
        width: 100% !important;
        max-width: none !important;
        min-width: 0 !important;
        height: auto !important;
        margin: 0 !important;
        padding: 0 0 18px !important;
        display: none !important;
        grid-template-columns: 1fr !important;
        gap: 12px !important;
        color: var(--kehl-charcoal);
        background: transparent !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: auto !important;
        transform: none !important;
    }

    .kehl-has-mega.is-submenu-open > .kehl-mega-menu {
        display: grid !important;
    }

    .kehl-mega-menu::before {
        display: none !important;
    }

    .kehl-mega-intro {
        display: none !important;
    }

    .kehl-mega-services,
    .kehl-company-mega-services {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
        width: 100%;
        padding: 0;
    }

    .kehl-mega-card,
    .kehl-company-mega-card {
        min-height: 86px;
        display: grid;
        grid-template-columns: 74px minmax(0, 1fr);
        gap: 12px;
        padding: 10px;
        border: 1px solid rgba(15,34,129,.10);
        border-radius: 10px;
        background: #fff;
        box-shadow: none;
    }

    .kehl-mega-card:hover,
    .kehl-company-mega-card:hover {
        transform: none;
        box-shadow: none;
    }

    .kehl-mega-thumb,
    .kehl-company-mega-card .kehl-mega-thumb {
        width: 74px;
        height: 66px;
        border-radius: 7px;
    }

    .kehl-mega-card-copy strong {
        font-size: 14px;
        line-height: 1.2;
    }

    .kehl-mega-card-copy small {
        margin-top: 3px;
        font-size: 10px;
    }

    .kehl-mega-card-copy em {
        display: none;
    }

    .kehl-mega-cta {
        display: none !important;
    }

    .mobile-nav-actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(180px, .65fr);
        gap: 10px;
        width: min(100% - 36px, 760px);
        max-width: 760px;
        margin: 18px auto 0;
        padding: 0 0 34px;
    }

    .mobile-nav-project,
    .mobile-nav-phone {
        min-height: 52px;
        padding: 0 16px;
        border-radius: 6px;
        font-size: 13px;
    }
}

@media (max-width: 800px) {
    .header-inner {
        min-height: 74px;
    }

    .site-brand {
        width: min(190px, 54vw);
    }

    .primary-nav {
        inset: 74px 0 0 0 !important;
        height: calc(100dvh - 74px);
    }

    .kehl-menu {
        width: calc(100% - 28px) !important;
        padding-top: 10px !important;
    }

    .kehl-parent-link,
    .kehl-parent-link > a,
    .kehl-mega-navigation > li > a {
        min-height: 58px;
    }

    .kehl-parent-link > a,
    .kehl-mega-navigation > li > a {
        font-size: 19px;
    }

    .kehl-mega-services,
    .kehl-company-mega-services {
        grid-template-columns: 1fr;
    }

    .mobile-nav-actions {
        grid-template-columns: 1fr;
        width: calc(100% - 28px);
        margin-top: 14px;
    }
}

@media (max-width: 520px) {
    .header-inner {
        min-height: 70px;
    }

    .site-brand {
        width: min(168px, 55vw);
    }

    .nav-toggle {
        width: 44px;
        height: 44px;
    }

    .primary-nav {
        inset: 70px 0 0 0 !important;
        height: calc(100dvh - 70px);
    }

    .kehl-menu,
    .mobile-nav-actions {
        width: calc(100% - 24px) !important;
    }

    .kehl-parent-link,
    .kehl-parent-link > a,
    .kehl-mega-navigation > li > a {
        min-height: 56px;
    }

    .kehl-parent-link > a,
    .kehl-mega-navigation > li > a {
        font-size: 18px;
    }
}


/* 1.2.2: Kundenkorrekturen und Firmengeschichte */
.home-services-dark {
    position: relative;
    background: #151821;
    color: #fff;
}
.home-services-dark::before {
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:linear-gradient(135deg,rgba(255,255,255,.025) 1px,transparent 1px);
    background-size:38px 38px;
}
.home-services-dark > .kehl-container { position:relative; z-index:1; }
.home-services-heading { align-items:end; margin-bottom:44px; }
.home-services-heading h2 { color:#fff; }
.home-services-heading p:not(.eyebrow) { max-width:720px; color:rgba(255,255,255,.7); font-size:17px; }
.home-service-showcase-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:16px;
}
.home-service-showcase-card {
    display:flex;
    flex-direction:column;
    min-height:100%;
    overflow:hidden;
    border:1px solid rgba(255,255,255,.12);
    border-radius:14px;
    background:#1b1f2b;
    color:#fff;
    transition:transform .2s ease, border-color .2s ease;
}
.home-service-showcase-card:hover { transform:translateY(-4px); border-color:rgba(255,255,255,.35); }
.home-service-showcase-image { position:relative; display:block; height:210px; overflow:hidden; background:var(--kehl-blue); }
.home-service-showcase-image img { width:100%; height:100%; object-fit:cover; display:block; }
.home-service-showcase-image b { position:absolute; left:15px; bottom:13px; width:34px; height:30px; display:flex; align-items:center; justify-content:center; background:#fff; color:var(--kehl-blue); font-size:11px; }
.home-service-showcase-copy { display:flex; flex-direction:column; gap:8px; padding:20px; }
.home-service-showcase-copy small { color:rgba(255,255,255,.55); text-transform:uppercase; letter-spacing:.1em; font-size:10px; }
.home-service-showcase-copy strong { font-size:24px; line-height:1.1; }
.home-service-showcase-copy span { color:rgba(255,255,255,.68); font-size:14px; line-height:1.55; }

.kehl-mega-menu-services {
    left:auto !important;
    right:0 !important;
    width:min(1180px,calc(100vw - 32px)) !important;
    transform:none !important;
    grid-template-columns:250px minmax(0,1fr) 210px !important;
    gap:20px !important;
    padding:22px !important;
}
.kehl-has-mega:hover > .kehl-mega-menu-services,
.kehl-has-mega:focus-within > .kehl-mega-menu-services,
.kehl-has-mega.is-submenu-open > .kehl-mega-menu-services,
.kehl-has-mega.is-hover-open > .kehl-mega-menu-services { transform:none !important; }
.kehl-mega-menu-services .kehl-mega-services { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.kehl-mega-menu-services .kehl-mega-card { min-height:76px; grid-template-columns:72px minmax(0,1fr); padding:8px; }
.kehl-mega-menu-services .kehl-mega-thumb { width:72px; height:58px; }

.references-gallery-section { background:var(--kehl-offwhite); }
.reference-gallery { columns:4 250px; column-gap:14px; }
.reference-gallery a { display:block; margin:0 0 14px; break-inside:avoid; overflow:hidden; border-radius:12px; background:#dfe3ec; }
.reference-gallery img { width:100%; height:auto; display:block; transition:transform .25s ease; }
.reference-gallery a:hover img { transform:scale(1.025); }

.company-history-section { background:#f3f1ed; overflow:hidden; }
.company-history-heading { max-width:760px; margin:0 auto 70px; text-align:center; }
.company-history-heading h2 { margin:8px 0 14px; }
.company-history-heading p:not(.eyebrow) { color:rgba(21,24,33,.7); font-size:18px; }
.company-timeline { position:relative; max-width:1180px; margin:0 auto; }
.company-timeline::before { content:""; position:absolute; left:50%; top:0; bottom:0; width:2px; background:var(--kehl-blue); transform:translateX(-50%); }
.company-timeline-item { position:relative; display:grid; grid-template-columns:minmax(0,1fr) 54px minmax(0,1fr); gap:28px; align-items:center; margin:0 0 70px; }
.company-timeline-item:last-child { margin-bottom:0; }
.company-timeline-media { grid-column:1; overflow:hidden; border-radius:14px; box-shadow:0 18px 45px rgba(15,34,129,.10); background:#ddd; }
.company-timeline-media img { width:100%; height:300px; object-fit:cover; display:block; filter:saturate(.85); }
.company-timeline-node { grid-column:2; display:flex; align-items:center; justify-content:center; position:relative; z-index:2; }
.company-timeline-node span { width:18px; height:18px; border-radius:50%; background:var(--kehl-blue); box-shadow:0 0 0 7px #f3f1ed,0 0 0 8px var(--kehl-blue); }
.company-timeline-copy { grid-column:3; padding:28px; background:#fff; border:1px solid rgba(15,34,129,.10); border-radius:14px; }
.company-timeline-year { display:inline-flex; min-height:34px; align-items:center; padding:0 12px; margin-bottom:12px; background:var(--kehl-blue); color:#fff; font-size:12px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.company-timeline-copy h3 { margin:0 0 12px; color:var(--kehl-blue); font-size:30px; line-height:1.08; }
.company-timeline-copy p { margin:0; color:rgba(21,24,33,.72); font-size:16px; line-height:1.65; }
.company-timeline-item.is-right .company-timeline-media { grid-column:3; grid-row:1; }
.company-timeline-item.is-right .company-timeline-node { grid-column:2; grid-row:1; }
.company-timeline-item.is-right .company-timeline-copy { grid-column:1; grid-row:1; }

@media(max-width:1280px){
    .home-service-showcase-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
    .kehl-mega-menu-services{width:min(1050px,calc(100vw - 24px)) !important;grid-template-columns:220px minmax(0,1fr) 190px !important;}
}
@media(max-width:1099px){
    .kehl-mega-menu-services{position:static !important;left:auto !important;right:auto !important;width:100% !important;grid-template-columns:1fr !important;padding:14px 0 22px !important;background:transparent !important;box-shadow:none !important;}
    .kehl-mega-menu-services .kehl-mega-intro,.kehl-mega-menu-services .kehl-mega-cta{display:none;}
    .kehl-mega-menu-services .kehl-mega-services{grid-template-columns:1fr 1fr;}
    .home-service-showcase-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:760px){
    .home-service-showcase-grid{grid-template-columns:1fr;}
    .home-service-showcase-image{height:220px;}
    .company-history-heading{margin-bottom:46px;text-align:left;}
    .company-timeline::before{left:14px;}
    .company-timeline-item,.company-timeline-item.is-right{display:grid;grid-template-columns:28px minmax(0,1fr);gap:16px;margin-bottom:46px;}
    .company-timeline-node,.company-timeline-item.is-right .company-timeline-node{grid-column:1;grid-row:1 / span 2;align-self:start;margin-top:28px;}
    .company-timeline-media,.company-timeline-item.is-right .company-timeline-media{grid-column:2;grid-row:1;}
    .company-timeline-copy,.company-timeline-item.is-right .company-timeline-copy{grid-column:2;grid-row:2;padding:22px;}
    .company-timeline-media img{height:230px;}
    .reference-gallery{columns:2 150px;}
}


/* 1.2.3 Startseite Leistungen im Editorial-Stil */
.home-services-editorial {
    background: #111520;
    color: #fff;
}

.home-services-editorial::before {
    background: linear-gradient(180deg, rgba(255,255,255,.025) 0, rgba(255,255,255,.015) 100%);
}

.home-services-heading-stacked {
    display: block;
    margin-bottom: 46px;
}

.home-services-heading-stacked h2 {
    margin: 10px 0 0;
    max-width: 700px;
    color: #fff;
    font-size: clamp(36px, 4.8vw, 64px);
    line-height: 1.02;
}

.home-service-showcase-editorial {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1px;
}

.home-service-showcase-editorial .home-service-showcase-card {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(380px, .9fr);
    align-items: stretch;
    gap: 0;
    overflow: hidden;
    border: 0;
    border-top: 1px solid rgba(255,255,255,.09);
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    transform: none !important;
}

.home-service-showcase-editorial .home-service-showcase-card:hover {
    border-color: rgba(255,255,255,.14);
}

.home-service-showcase-editorial .home-service-showcase-card.is-reverse {
    grid-template-columns: minmax(380px, .9fr) minmax(0, 1.1fr);
}

.home-service-showcase-editorial .home-service-showcase-card.is-reverse .home-service-feature-media {
    order: 2;
}

.home-service-showcase-editorial .home-service-showcase-card.is-reverse .home-service-showcase-copy {
    order: 1;
}

.home-service-feature-media {
    display: block;
    min-width: 0;
}

.home-service-feature-image {
    position: relative;
    display: block;
    min-height: 445px;
    height: 100%;
    overflow: hidden;
    background: #1f3fb3;
    border-radius: 18px;
}

.home-service-feature-image img {
    width: 100%;
    height: 100%;
    min-height: 445px;
    object-fit: cover;
    display: block;
}

.home-service-feature-image.no-image::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(255,255,255,.06) 0, rgba(255,255,255,0) 100%);
}

.home-service-feature-image b {
    position: absolute;
    left: 24px;
    bottom: 20px;
    width: 46px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #fff;
    color: var(--kehl-blue);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .06em;
}

.home-service-showcase-editorial .home-service-showcase-copy {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    gap: 18px;
    padding: 54px 58px 54px 66px;
}

.home-service-showcase-editorial .home-service-showcase-copy small {
    color: rgba(255,255,255,.72);
    text-transform: uppercase;
    letter-spacing: .16em;
    font-size: 12px;
    font-weight: 800;
}

.home-service-showcase-editorial .home-service-showcase-copy strong {
    color: #fff;
    font-size: clamp(36px, 4.2vw, 66px);
    line-height: .98;
    letter-spacing: -.03em;
}

.home-service-showcase-editorial .home-service-showcase-copy span {
    max-width: 520px;
    color: rgba(255,255,255,.78);
    font-size: 16px;
    line-height: 1.75;
}

.home-service-showcase-editorial .home-service-showcase-copy .text-link {
    margin-top: 8px;
    font-size: 16px;
}

@media (max-width: 1180px) {
    .home-service-showcase-editorial .home-service-showcase-card,
    .home-service-showcase-editorial .home-service-showcase-card.is-reverse {
        grid-template-columns: minmax(0, 1fr) minmax(320px, .9fr);
    }

    .home-service-feature-image,
    .home-service-feature-image img {
        min-height: 380px;
    }

    .home-service-showcase-editorial .home-service-showcase-copy {
        padding: 42px 34px 42px 40px;
    }
}

@media (max-width: 900px) {
    .home-services-heading-stacked {
        margin-bottom: 34px;
    }

    .home-service-showcase-editorial .home-service-showcase-card,
    .home-service-showcase-editorial .home-service-showcase-card.is-reverse {
        grid-template-columns: 1fr;
    }

    .home-service-showcase-editorial .home-service-showcase-card.is-reverse .home-service-feature-media,
    .home-service-showcase-editorial .home-service-showcase-card.is-reverse .home-service-showcase-copy {
        order: initial;
    }

    .home-service-feature-image,
    .home-service-feature-image img {
        min-height: 320px;
    }

    .home-service-showcase-editorial .home-service-showcase-copy {
        padding: 28px 8px 12px;
        gap: 14px;
    }

    .home-service-showcase-editorial .home-service-showcase-copy strong {
        font-size: clamp(30px, 9vw, 46px);
    }

    .home-service-showcase-editorial .home-service-showcase-copy span {
        font-size: 15px;
        line-height: 1.65;
    }
}

@media (max-width: 640px) {
    .home-service-feature-image,
    .home-service-feature-image img {
        min-height: 250px;
    }

    .home-service-feature-image {
        border-radius: 14px;
    }

    .home-service-showcase-editorial .home-service-showcase-copy {
        padding: 24px 0 8px;
    }
}


/* 1.2.4 Feinschliff Startseiten-Leistungen */
.home-services-heading-stacked h2 {
    max-width: 860px;
}

.home-service-showcase-editorial .home-service-showcase-card {
    grid-template-columns: minmax(0, 1.12fr) minmax(430px, .88fr);
}

.home-service-showcase-editorial .home-service-showcase-card.is-reverse {
    grid-template-columns: minmax(430px, .88fr) minmax(0, 1.12fr);
}

.home-service-showcase-editorial .home-service-showcase-copy {
    padding: 58px 40px 58px 64px;
}

.home-service-showcase-editorial .home-service-showcase-copy span {
    max-width: 500px;
}

@media (max-width: 1180px) {
    .home-service-showcase-editorial .home-service-showcase-card,
    .home-service-showcase-editorial .home-service-showcase-card.is-reverse {
        grid-template-columns: minmax(0, 1fr) minmax(340px, .88fr);
    }
}


/* 1.2.7 Feinschliff für geordnete Startseiten-Sektion */
.home-services-editorial .kehl-container {
    max-width: 1260px;
}

.home-services-heading-stacked {
    margin-bottom: 28px;
}

.home-services-heading-stacked h2 {
    max-width: 720px;
    font-size: clamp(38px, 4.2vw, 58px);
}

.home-service-showcase-editorial {
    gap: 0;
}

.home-service-showcase-editorial .home-service-showcase-card {
    grid-template-columns: minmax(0, 1.08fr) minmax(390px, .92fr);
    min-height: 360px;
    padding: 0;
}

.home-service-showcase-editorial .home-service-showcase-card.is-reverse {
    grid-template-columns: minmax(390px, .92fr) minmax(0, 1.08fr);
}

.home-service-feature-image,
.home-service-feature-image img {
    min-height: 360px;
    height: 360px;
}

.home-service-showcase-editorial .home-service-showcase-copy {
    padding: 44px 36px 44px 38px;
    gap: 14px;
}

.home-service-showcase-editorial .home-service-showcase-copy small {
    font-size: 11px;
    letter-spacing: .18em;
}

.home-service-showcase-editorial .home-service-showcase-copy strong {
    max-width: 420px;
    font-size: clamp(32px, 3.7vw, 56px);
    line-height: 1.02;
}

.home-service-showcase-editorial .home-service-showcase-copy span {
    max-width: 440px;
    font-size: 15px;
    line-height: 1.7;
}

.home-service-showcase-editorial .home-service-showcase-copy .text-link {
    margin-top: 4px;
    font-size: 14px;
}

.home-service-feature-image {
    border-radius: 16px;
}

.home-service-feature-image b {
    left: 16px;
    bottom: 16px;
    width: 38px;
    height: 28px;
    font-size: 11px;
}

@media (max-width: 1180px) {
    .home-service-showcase-editorial .home-service-showcase-card,
    .home-service-showcase-editorial .home-service-showcase-card.is-reverse {
        grid-template-columns: minmax(0, 1fr) minmax(330px, .88fr);
        min-height: 320px;
    }

    .home-service-feature-image,
    .home-service-feature-image img {
        min-height: 320px;
        height: 320px;
    }

    .home-service-showcase-editorial .home-service-showcase-copy {
        padding: 32px 24px 32px 28px;
    }
}

@media (max-width: 900px) {
    .home-services-heading-stacked {
        margin-bottom: 24px;
    }

    .home-service-showcase-editorial .home-service-showcase-card,
    .home-service-showcase-editorial .home-service-showcase-card.is-reverse {
        grid-template-columns: 1fr;
        min-height: 0;
        gap: 0;
    }

    .home-service-feature-image,
    .home-service-feature-image img {
        min-height: 280px;
        height: 280px;
    }

    .home-service-showcase-editorial .home-service-showcase-copy {
        padding: 22px 0 28px;
    }

    .home-service-showcase-editorial .home-service-showcase-copy strong {
        max-width: none;
        font-size: clamp(30px, 8vw, 44px);
    }

    .home-service-showcase-editorial .home-service-showcase-copy span {
        max-width: none;
    }
}


/* 1.2.8: Startseiten-Leistungen näher an Referenz-Screenshot */
.home-services-editorial {
    padding-top: 72px !important;
    padding-bottom: 92px !important;
    background: #111520 !important;
}

.home-services-editorial .kehl-container {
    width: min(1180px, calc(100vw - 56px)) !important;
    max-width: 1180px !important;
}

.home-services-heading-stacked {
    margin: 0 0 42px !important;
    padding-bottom: 36px;
    border-bottom: 1px solid rgba(255,255,255,.13);
}

.home-services-heading-stacked .eyebrow {
    margin-bottom: 14px;
}

.home-services-heading-stacked h2 {
    margin: 0 !important;
    max-width: none !important;
    font-size: clamp(40px, 4.1vw, 58px) !important;
    line-height: 1.03 !important;
    letter-spacing: -.035em;
}

.home-service-showcase-editorial {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0 !important;
}

.home-service-showcase-editorial .home-service-showcase-card,
.home-service-showcase-editorial .home-service-showcase-card.is-reverse {
    display: grid !important;
    grid-template-columns: 56% 44% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
}

.home-service-showcase-editorial .home-service-showcase-card.is-reverse {
    grid-template-columns: 44% 56% !important;
}

.home-service-showcase-editorial .home-service-showcase-card.is-reverse .home-service-feature-media {
    order: 2 !important;
}

.home-service-showcase-editorial .home-service-showcase-card.is-reverse .home-service-showcase-copy {
    order: 1 !important;
}

.home-service-feature-media {
    display: block !important;
    min-width: 0 !important;
}

.home-service-feature-image {
    position: relative !important;
    display: block !important;
    width: 100% !important;
    height: 420px !important;
    min-height: 420px !important;
    overflow: hidden !important;
    border-radius: 0 !important;
    background: #1f3fb3 !important;
}

.home-service-feature-image img {
    width: 100% !important;
    height: 420px !important;
    min-height: 420px !important;
    object-fit: cover !important;
    object-position: center !important;
    display: block !important;
}

.home-service-feature-image b {
    left: 16px !important;
    bottom: 16px !important;
    width: 36px !important;
    height: 28px !important;
    font-size: 10px !important;
}

.home-service-showcase-editorial .home-service-showcase-copy {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: flex-start !important;
    gap: 14px !important;
    min-height: 420px !important;
    padding: 42px 42px 42px 48px !important;
}

.home-service-showcase-editorial .home-service-showcase-card.is-reverse .home-service-showcase-copy {
    padding-left: 0 !important;
    padding-right: 54px !important;
}

.home-service-showcase-editorial .home-service-showcase-copy small {
    margin: 0 !important;
    color: rgba(255,255,255,.72) !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    letter-spacing: .16em !important;
    text-transform: uppercase !important;
}

.home-service-showcase-editorial .home-service-showcase-copy strong {
    display: block !important;
    max-width: 420px !important;
    margin: 0 !important;
    color: #fff !important;
    font-size: clamp(34px, 3.7vw, 54px) !important;
    font-weight: 700 !important;
    line-height: .98 !important;
    letter-spacing: -.03em !important;
}

.home-service-showcase-editorial .home-service-showcase-copy > span {
    display: block !important;
    max-width: 460px !important;
    margin: 0 !important;
    color: rgba(255,255,255,.74) !important;
    font-size: 14px !important;
    line-height: 1.65 !important;
}

.home-service-showcase-editorial .home-service-showcase-copy .text-link {
    margin-top: 5px !important;
    font-size: 13px !important;
}

@media (max-width: 1050px) {
    .home-services-editorial .kehl-container {
        width: min(100%, calc(100vw - 40px)) !important;
    }

    .home-service-showcase-editorial .home-service-showcase-card,
    .home-service-showcase-editorial .home-service-showcase-card.is-reverse {
        grid-template-columns: 54% 46% !important;
    }

    .home-service-feature-image,
    .home-service-feature-image img,
    .home-service-showcase-editorial .home-service-showcase-copy {
        height: 360px !important;
        min-height: 360px !important;
    }

    .home-service-showcase-editorial .home-service-showcase-copy {
        padding: 32px 28px 32px 34px !important;
    }

    .home-service-showcase-editorial .home-service-showcase-card.is-reverse .home-service-showcase-copy {
        padding-left: 0 !important;
        padding-right: 34px !important;
    }
}

@media (max-width: 820px) {
    .home-services-editorial {
        padding-top: 58px !important;
        padding-bottom: 68px !important;
    }

    .home-services-heading-stacked {
        margin-bottom: 28px !important;
        padding-bottom: 24px;
    }

    .home-service-showcase-editorial .home-service-showcase-card,
    .home-service-showcase-editorial .home-service-showcase-card.is-reverse {
        grid-template-columns: 1fr !important;
    }

    .home-service-showcase-editorial .home-service-showcase-card.is-reverse .home-service-feature-media,
    .home-service-showcase-editorial .home-service-showcase-card.is-reverse .home-service-showcase-copy {
        order: initial !important;
    }

    .home-service-feature-image,
    .home-service-feature-image img {
        height: 300px !important;
        min-height: 300px !important;
    }

    .home-service-showcase-editorial .home-service-showcase-copy,
    .home-service-showcase-editorial .home-service-showcase-card.is-reverse .home-service-showcase-copy {
        height: auto !important;
        min-height: 0 !important;
        padding: 28px 0 38px !important;
    }

    .home-service-showcase-editorial .home-service-showcase-copy strong {
        max-width: none !important;
        font-size: clamp(30px, 8vw, 42px) !important;
    }

    .home-service-showcase-editorial .home-service-showcase-copy > span {
        max-width: none !important;
    }
}


/* 1.2.9 Noch näher an Referenz 2 */
.home-services-editorial {
    padding-top: 56px !important;
    padding-bottom: 72px !important;
}

.home-services-editorial .kehl-container {
    width: min(1160px, calc(100vw - 60px)) !important;
    max-width: 1160px !important;
}

.home-services-heading-stacked {
    margin: 0 0 28px !important;
    padding-bottom: 26px !important;
}

.home-services-heading-stacked .eyebrow {
    margin-bottom: 10px !important;
}

.home-services-heading-stacked h2 {
    font-size: clamp(34px, 3.8vw, 52px) !important;
    line-height: 1.02 !important;
}

.home-service-showcase-editorial .home-service-showcase-card,
.home-service-showcase-editorial .home-service-showcase-card.is-reverse {
    grid-template-columns: 54% 46% !important;
}

.home-service-showcase-editorial .home-service-showcase-card.is-reverse {
    grid-template-columns: 46% 54% !important;
}

.home-service-feature-image {
    height: 290px !important;
    min-height: 290px !important;
    border-radius: 12px !important;
}

.home-service-feature-image img {
    height: 290px !important;
    min-height: 290px !important;
}

.home-service-feature-image b {
    left: 14px !important;
    bottom: 14px !important;
    width: 32px !important;
    height: 24px !important;
    font-size: 9px !important;
}

.home-service-showcase-editorial .home-service-showcase-copy {
    min-height: 290px !important;
    height: 290px !important;
    padding: 24px 34px 24px 28px !important;
    gap: 10px !important;
}

.home-service-showcase-editorial .home-service-showcase-card.is-reverse .home-service-showcase-copy {
    padding-left: 0 !important;
    padding-right: 40px !important;
}

.home-service-showcase-editorial .home-service-showcase-copy small {
    font-size: 9px !important;
    letter-spacing: .2em !important;
}

.home-service-showcase-editorial .home-service-showcase-copy strong {
    max-width: 360px !important;
    font-size: clamp(28px, 3.2vw, 42px) !important;
    line-height: .98 !important;
}

.home-service-showcase-editorial .home-service-showcase-copy > span {
    max-width: 380px !important;
    font-size: 12px !important;
    line-height: 1.7 !important;
}

.home-service-showcase-editorial .home-service-showcase-copy .text-link {
    margin-top: 2px !important;
    font-size: 12px !important;
}

@media (max-width: 1180px) {
    .home-services-editorial .kehl-container {
        width: min(100%, calc(100vw - 42px)) !important;
    }
}

@media (max-width: 1050px) {
    .home-service-showcase-editorial .home-service-showcase-card,
    .home-service-showcase-editorial .home-service-showcase-card.is-reverse {
        grid-template-columns: 52% 48% !important;
    }

    .home-service-feature-image,
    .home-service-feature-image img,
    .home-service-showcase-editorial .home-service-showcase-copy {
        height: 250px !important;
        min-height: 250px !important;
    }

    .home-service-showcase-editorial .home-service-showcase-copy {
        padding: 18px 24px 18px 20px !important;
    }

    .home-service-showcase-editorial .home-service-showcase-card.is-reverse .home-service-showcase-copy {
        padding-right: 24px !important;
    }

    .home-service-showcase-editorial .home-service-showcase-copy strong {
        font-size: clamp(24px, 3vw, 34px) !important;
    }

    .home-service-showcase-editorial .home-service-showcase-copy > span {
        font-size: 11px !important;
        line-height: 1.55 !important;
    }
}

@media (max-width: 820px) {
    .home-services-editorial {
        padding-top: 46px !important;
        padding-bottom: 56px !important;
    }

    .home-services-heading-stacked {
        margin-bottom: 22px !important;
        padding-bottom: 20px !important;
    }

    .home-service-feature-image,
    .home-service-feature-image img {
        height: 240px !important;
        min-height: 240px !important;
    }

    .home-service-showcase-editorial .home-service-showcase-copy,
    .home-service-showcase-editorial .home-service-showcase-card.is-reverse .home-service-showcase-copy {
        height: auto !important;
        min-height: 0 !important;
        padding: 20px 0 26px !important;
        gap: 8px !important;
    }

    .home-service-showcase-editorial .home-service-showcase-copy strong {
        max-width: none !important;
        font-size: clamp(28px, 8vw, 38px) !important;
    }

    .home-service-showcase-editorial .home-service-showcase-copy > span {
        max-width: none !important;
        font-size: 13px !important;
    }
}


/* 1.2.10 Fast 1:1 nach Referenz-Screenshot 2 */
.home-services-editorial {
    padding-top: 64px !important;
    padding-bottom: 86px !important;
}

.home-services-editorial .kehl-container {
    width: min(1140px, calc(100vw - 72px)) !important;
    max-width: 1140px !important;
}

.home-services-heading-stacked {
    margin: 0 0 34px !important;
    padding-bottom: 30px !important;
}

.home-services-heading-stacked .eyebrow {
    margin-bottom: 12px !important;
}

.home-services-heading-stacked h2 {
    max-width: 720px !important;
    font-size: clamp(38px, 4vw, 58px) !important;
    line-height: 1.02 !important;
}

.home-service-showcase-editorial .home-service-showcase-card,
.home-service-showcase-editorial .home-service-showcase-card.is-reverse {
    grid-template-columns: 53% 47% !important;
    align-items: stretch !important;
}

.home-service-showcase-editorial .home-service-showcase-card.is-reverse {
    grid-template-columns: 47% 53% !important;
}

.home-service-feature-image {
    height: 430px !important;
    min-height: 430px !important;
    border-radius: 12px !important;
}

.home-service-feature-image img {
    height: 430px !important;
    min-height: 430px !important;
    object-fit: cover !important;
    object-position: center !important;
}

.home-service-showcase-editorial .home-service-showcase-copy {
    height: 430px !important;
    min-height: 430px !important;
    padding: 52px 40px 52px 40px !important;
    gap: 16px !important;
    justify-content: center !important;
}

.home-service-showcase-editorial .home-service-showcase-card.is-reverse .home-service-showcase-copy {
    padding-left: 0 !important;
    padding-right: 52px !important;
}

.home-service-showcase-editorial .home-service-showcase-copy small {
    font-size: 10px !important;
    letter-spacing: .18em !important;
}

.home-service-showcase-editorial .home-service-showcase-copy strong {
    max-width: 430px !important;
    font-size: clamp(36px, 4.2vw, 56px) !important;
    line-height: .98 !important;
}

.home-service-showcase-editorial .home-service-showcase-copy > span {
    max-width: 420px !important;
    font-size: 14px !important;
    line-height: 1.7 !important;
}

.home-service-showcase-editorial .home-service-showcase-copy .text-link {
    margin-top: 4px !important;
    font-size: 14px !important;
}

.home-service-feature-image b {
    left: 20px !important;
    bottom: 16px !important;
    width: 38px !important;
    height: 28px !important;
    font-size: 10px !important;
}

@media (max-width: 1180px) {
    .home-services-editorial .kehl-container {
        width: min(100%, calc(100vw - 48px)) !important;
    }

    .home-service-showcase-editorial .home-service-showcase-card,
    .home-service-showcase-editorial .home-service-showcase-card.is-reverse {
        grid-template-columns: 52% 48% !important;
    }

    .home-service-feature-image,
    .home-service-feature-image img,
    .home-service-showcase-editorial .home-service-showcase-copy {
        height: 390px !important;
        min-height: 390px !important;
    }

    .home-service-showcase-editorial .home-service-showcase-copy {
        padding: 38px 28px 38px 28px !important;
    }

    .home-service-showcase-editorial .home-service-showcase-card.is-reverse .home-service-showcase-copy {
        padding-right: 36px !important;
    }

    .home-service-showcase-editorial .home-service-showcase-copy strong {
        font-size: clamp(32px, 3.8vw, 48px) !important;
    }
}

@media (max-width: 900px) {
    .home-services-editorial {
        padding-top: 52px !important;
        padding-bottom: 64px !important;
    }

    .home-service-showcase-editorial .home-service-showcase-card,
    .home-service-showcase-editorial .home-service-showcase-card.is-reverse {
        grid-template-columns: 1fr !important;
    }

    .home-service-showcase-editorial .home-service-showcase-card.is-reverse .home-service-feature-media,
    .home-service-showcase-editorial .home-service-showcase-card.is-reverse .home-service-showcase-copy {
        order: initial !important;
    }

    .home-service-feature-image,
    .home-service-feature-image img {
        height: 310px !important;
        min-height: 310px !important;
    }

    .home-service-showcase-editorial .home-service-showcase-copy,
    .home-service-showcase-editorial .home-service-showcase-card.is-reverse .home-service-showcase-copy {
        height: auto !important;
        min-height: 0 !important;
        padding: 24px 0 34px !important;
        gap: 10px !important;
    }

    .home-service-showcase-editorial .home-service-showcase-copy strong {
        max-width: none !important;
        font-size: clamp(30px, 8vw, 42px) !important;
    }

    .home-service-showcase-editorial .home-service-showcase-copy > span {
        max-width: none !important;
        font-size: 13px !important;
    }
}


/* 1.2.11 Startseiten-Sektion breiter */
.home-services-editorial .kehl-container {
    width: min(1240px, calc(100vw - 72px)) !important;
    max-width: 1240px !important;
}

.home-service-showcase-editorial .home-service-showcase-card,
.home-service-showcase-editorial .home-service-showcase-card.is-reverse {
    grid-template-columns: 54% 46% !important;
}

.home-service-showcase-editorial .home-service-showcase-card.is-reverse {
    grid-template-columns: 46% 54% !important;
}

.home-service-feature-image {
    height: 420px !important;
    min-height: 420px !important;
}

.home-service-feature-image img {
    height: 420px !important;
    min-height: 420px !important;
}

.home-service-showcase-editorial .home-service-showcase-copy {
    height: 420px !important;
    min-height: 420px !important;
    padding: 46px 42px 46px 42px !important;
}

.home-service-showcase-editorial .home-service-showcase-card.is-reverse .home-service-showcase-copy {
    padding-right: 56px !important;
}

@media (max-width: 1280px) {
    .home-services-editorial .kehl-container {
        width: min(100%, calc(100vw - 48px)) !important;
        max-width: 1200px !important;
    }
}


/* 1.2.12: Desktop-Megamenüs bleiben vollständig im Viewport */
@media (min-width: 1100px) {
    .header-inner {
        position: relative !important;
    }

    .primary-nav {
        position: static !important;
    }

    .kehl-mega-navigation > .kehl-has-mega,
    .kehl-has-services-mega,
    .kehl-has-company-mega {
        position: static !important;
    }

    .kehl-mega-menu,
    .kehl-mega-menu-services,
    .kehl-mega-menu-company {
        position: absolute !important;
        top: 100% !important;
        left: 50% !important;
        right: auto !important;
        width: min(1260px, calc(100vw - 32px)) !important;
        max-width: calc(100vw - 32px) !important;
        margin: 0 !important;
        transform: translateX(-50%) !important;
        box-sizing: border-box !important;
    }

    .kehl-has-mega:hover > .kehl-mega-menu,
    .kehl-has-mega:focus-within > .kehl-mega-menu,
    .kehl-has-mega.is-submenu-open > .kehl-mega-menu,
    .kehl-has-mega.is-hover-open > .kehl-mega-menu {
        transform: translateX(-50%) !important;
    }

    .kehl-mega-menu-services,
    .kehl-mega-menu-company {
        grid-template-columns: 245px minmax(0, 1fr) 210px !important;
        gap: 20px !important;
        padding: 24px !important;
    }

    .kehl-mega-menu-services .kehl-mega-services {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }

    .kehl-mega-menu-services .kehl-mega-card {
        min-height: 74px !important;
        grid-template-columns: 70px minmax(0, 1fr) !important;
        gap: 10px !important;
        padding: 8px !important;
    }

    .kehl-mega-menu-services .kehl-mega-thumb {
        width: 70px !important;
        height: 56px !important;
    }

    .kehl-company-links {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
        gap: 12px !important;
    }

    .kehl-company-links a {
        min-height: 150px !important;
        padding: 16px !important;
    }
}

@media (min-width: 1100px) and (max-width: 1439px) {
    .kehl-mega-menu,
    .kehl-mega-menu-services,
    .kehl-mega-menu-company {
        width: calc(100vw - 24px) !important;
        max-width: calc(100vw - 24px) !important;
    }

    .kehl-mega-menu-services,
    .kehl-mega-menu-company {
        grid-template-columns: 210px minmax(0, 1fr) 185px !important;
        gap: 16px !important;
        padding: 20px !important;
    }

    .kehl-mega-intro {
        padding-right: 14px !important;
    }

    .kehl-mega-intro h2 {
        font-size: 27px !important;
    }

    .kehl-mega-intro p:not(.eyebrow) {
        font-size: 13px !important;
        line-height: 1.5 !important;
    }

    .kehl-mega-cta {
        padding: 20px !important;
    }

    .kehl-mega-cta strong {
        font-size: 20px !important;
    }

    .kehl-company-links a {
        min-height: 136px !important;
        padding: 14px !important;
    }

    .kehl-company-links strong {
        font-size: 16px !important;
    }

    .kehl-company-links small {
        font-size: 12px !important;
    }
}

@media (min-width: 1100px) and (max-width: 1219px) {
    .kehl-mega-menu-services,
    .kehl-mega-menu-company {
        grid-template-columns: 185px minmax(0, 1fr) 165px !important;
        gap: 12px !important;
        padding: 16px !important;
    }

    .kehl-mega-menu-services .kehl-mega-card {
        grid-template-columns: 58px minmax(0, 1fr) !important;
        min-height: 66px !important;
        gap: 8px !important;
    }

    .kehl-mega-menu-services .kehl-mega-thumb {
        width: 58px !important;
        height: 50px !important;
    }

    .kehl-mega-card-copy strong {
        font-size: 14px !important;
    }

    .kehl-mega-card-copy small {
        font-size: 10px !important;
    }

    .kehl-mega-intro h2 {
        font-size: 23px !important;
    }

    .kehl-mega-intro p:not(.eyebrow) {
        font-size: 12px !important;
    }

    .kehl-company-links {
        gap: 8px !important;
    }

    .kehl-company-links a {
        min-height: 120px !important;
        padding: 12px !important;
    }

    .kehl-mega-cta {
        padding: 16px !important;
    }
}


/* 1.2.13 Hero-Sektion nach Kunden-Mockup */
body.home .site-topbar {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1100;
    color: rgba(255,255,255,.92);
    background: transparent;
    border-bottom: 1px solid rgba(255,255,255,.16);
}

body.home .site-header {
    position: absolute;
    top: 37px;
    left: 0;
    right: 0;
    z-index: 1101;
    background: transparent;
    border-top: 0;
    box-shadow: none;
}

body.admin-bar.home .site-topbar {
    top: 32px;
}

body.admin-bar.home .site-header {
    top: 69px;
}

body.home .site-header.is-scrolled {
    position: fixed;
    top: 0;
    background: rgba(6, 15, 64, .92);
    backdrop-filter: blur(8px);
    box-shadow: 0 10px 35px rgba(6, 15, 64, .24);
}

body.admin-bar.home .site-header.is-scrolled {
    top: 32px;
}

body.home .header-inner {
    min-height: 96px;
    padding-top: 16px;
    padding-bottom: 14px;
}

body.home .site-brand {
    width: 250px;
    padding-top: 0;
}

body.home .kehl-menu > li > a {
    min-height: 72px;
}

body.home .header-cta {
    background: rgba(255,255,255,.10);
    border: 1px solid rgba(255,255,255,.22);
}

body.home .header-cta:hover {
    background: rgba(255,255,255,.18);
}

.hero-reference-look {
    min-height: 760px;
    background: #09144d;
}

.hero-reference-look.home-hero.has-image {
    background-image:
        linear-gradient(90deg, rgba(6, 14, 52, .85) 0%, rgba(6, 14, 52, .74) 28%, rgba(6, 14, 52, .28) 58%, rgba(6, 14, 52, .08) 100%),
        var(--hero-image);
    background-size: cover;
    background-position: center center;
}

.hero-reference-look .hero-overlay {
    background-image:
        linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
    background-size: 52px 52px;
    opacity: .9;
    mask-image: linear-gradient(to right, rgba(0,0,0,.55), transparent 72%);
}

.hero-reference-look .hero-inner {
    min-height: 760px;
    grid-template-columns: minmax(0, 1fr) minmax(160px, 190px);
    align-items: end;
    gap: 42px;
    padding-top: 158px;
    padding-bottom: 58px;
}

.hero-mini-topline {
    margin: 0 0 84px;
    color: rgba(255,255,255,.88);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.hero-reference-look .hero-content {
    max-width: 560px;
    padding: 0 0 82px;
}

.hero-reference-look .hero-intro-line {
    position: relative;
    display: flex;
    align-items: center;
    gap: 18px;
    margin-bottom: 28px;
    color: rgba(255,255,255,.8);
}

.hero-reference-look .hero-intro-line::before {
    content: '';
    width: 36px;
    height: 1px;
    background: rgba(255,255,255,.72);
    flex: 0 0 36px;
}

.hero-reference-look h1 {
    max-width: 520px;
    font-size: clamp(54px, 6.3vw, 78px);
    line-height: .92;
    letter-spacing: -.05em;
    text-wrap: balance;
}

.hero-subheadline {
    margin: 10px 0 0;
    color: rgba(255,255,255,.86);
    font-size: clamp(30px, 3.4vw, 48px);
    font-weight: 300;
    line-height: 1.04;
    letter-spacing: -.03em;
}

.hero-description {
    max-width: 360px;
    margin: 28px 0 0;
    color: rgba(255,255,255,.88);
    font-size: 15px;
    line-height: 1.7;
}

.hero-reference-look .hero-actions {
    margin-top: 34px;
}

.hero-reference-look .button-outline-light {
    min-height: 52px;
    padding: 0 22px;
    border-color: rgba(255,255,255,.55);
    font-size: 12px;
    letter-spacing: .16em;
    gap: 10px;
}

.hero-reference-look .hero-fact {
    max-width: 160px;
    margin-bottom: 96px;
    padding-left: 26px;
    border-left: 1px solid rgba(255,255,255,.55);
}

.hero-reference-look .hero-fact strong {
    font-size: clamp(70px, 8vw, 92px);
    font-weight: 350;
    line-height: .85;
}

.hero-fact-lines {
    margin-top: 12px;
}

.hero-fact-lines span {
    display: block;
    color: rgba(255,255,255,.9);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .14em;
    line-height: 1.45;
    text-transform: uppercase;
}

@media (max-width: 1180px) {
    body.home .site-brand { width: 220px; }
    body.home .header-inner { grid-template-columns: 230px 1fr auto; gap: 24px; }
    .hero-reference-look .hero-inner { min-height: 710px; padding-top: 150px; }
    .hero-reference-look .hero-content { max-width: 500px; padding-bottom: 72px; }
    .hero-reference-look h1 { font-size: clamp(48px, 5.4vw, 68px); }
    .hero-subheadline { font-size: clamp(28px, 3vw, 40px); }
}

@media (max-width: 1024px) {
    body.home .site-topbar { position: relative; background: #09165f; border-bottom: 0; }
    body.home .site-header, body.admin-bar.home .site-header { position: sticky; top: 0; background: var(--kehl-blue); }
    .hero-reference-look { min-height: 0; }
    .hero-reference-look .hero-inner { min-height: 0; grid-template-columns: 1fr; padding-top: 72px; padding-bottom: 42px; }
    .hero-reference-look .hero-content { max-width: 620px; padding-bottom: 0; }
    .hero-mini-topline { margin-bottom: 40px; }
    .hero-reference-look .hero-fact { justify-self: start; align-self: start; margin-bottom: 0; margin-top: 10px; }
}

@media (max-width: 767px) {
    .hero-reference-look .hero-inner { padding-top: 54px; gap: 28px; }
    .hero-mini-topline { margin-bottom: 28px; font-size: 10px; }
    .hero-reference-look .hero-intro-line { gap: 12px; margin-bottom: 18px; }
    .hero-reference-look .hero-intro-line::before { width: 24px; flex-basis: 24px; }
    .hero-reference-look h1 { font-size: clamp(40px, 12vw, 58px); }
    .hero-subheadline { font-size: clamp(24px, 7vw, 34px); }
    .hero-description { font-size: 14px; max-width: 320px; }
    .hero-reference-look .hero-actions { margin-top: 24px; }
    .hero-reference-look .hero-fact { padding-left: 18px; }
    .hero-reference-look .hero-fact strong { font-size: 62px; }
}


/* 1.2.14 Lesbarkeit Hero-Header und Factbox */
body.home .topbar-inner,
body.home .header-inner {
    text-shadow: 0 1px 10px rgba(0,0,0,.36);
}

body.home .topbar-contact {
    padding: 8px 14px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 6px;
    background: rgba(8, 16, 55, .22);
    backdrop-filter: blur(10px);
}

body.home .primary-nav {
    justify-self: end;
    padding: 8px 18px;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 8px;
    background: rgba(8, 16, 55, .22);
    backdrop-filter: blur(10px);
}

body.home .kehl-menu {
    gap: 24px;
}

body.home .kehl-menu > li > a {
    color: rgba(255,255,255,.96);
    font-weight: 700;
    text-shadow: 0 1px 10px rgba(0,0,0,.42);
}

body.home .kehl-menu > li > a:hover,
body.home .kehl-menu > li.current-menu-item > a,
body.home .kehl-menu > li.current_page_item > a {
    color: #ffffff;
}

body.home .header-cta {
    color: #ffffff;
    background: rgba(8, 16, 55, .34);
    border: 1px solid rgba(255,255,255,.18);
    box-shadow: 0 10px 28px rgba(6, 15, 64, .18);
}

body.home .site-brand {
    width: 238px;
}

.hero-reference-look .hero-inner {
    padding-top: 214px;
    padding-bottom: 58px;
}

.hero-mini-topline {
    margin-bottom: 118px;
    color: rgba(255,255,255,.92);
    text-shadow: 0 1px 12px rgba(0,0,0,.44);
}

.hero-reference-look .hero-content {
    padding-bottom: 74px;
}

.hero-reference-look .hero-intro-line,
.hero-reference-look h1,
.hero-subheadline,
.hero-description,
.hero-reference-look .button-outline-light {
    text-shadow: 0 2px 16px rgba(0,0,0,.34);
}

.hero-reference-look .hero-fact {
    align-self: center;
    max-width: 172px;
    margin-bottom: 42px;
    padding: 26px 18px 24px 28px;
    background: linear-gradient(90deg, rgba(6, 14, 52, .44) 0%, rgba(6, 14, 52, .18) 100%);
    backdrop-filter: blur(3px);
    border-left: 1px solid rgba(255,255,255,.72);
    border-radius: 0 8px 8px 0;
    box-shadow: 0 18px 30px rgba(6, 15, 64, .16);
}

.hero-reference-look .hero-fact strong {
    color: #ffffff;
    text-shadow: 0 2px 16px rgba(0,0,0,.38);
}

.hero-fact-lines {
    margin-top: 14px;
}

.hero-fact-lines span {
    color: rgba(255,255,255,.98);
    font-size: 12px;
    font-weight: 750;
    letter-spacing: .14em;
    text-shadow: 0 1px 12px rgba(0,0,0,.34);
}

@media (max-width: 1180px) {
    body.home .site-brand { width: 224px; }
    .hero-reference-look .hero-inner { padding-top: 196px; }
    .hero-mini-topline { margin-bottom: 90px; }
    .hero-reference-look .hero-fact { margin-bottom: 22px; }
}

@media (max-width: 1024px) {
    body.home .topbar-contact,
    body.home .primary-nav {
        padding: 0;
        border: 0;
        border-radius: 0;
        background: transparent;
        backdrop-filter: none;
    }

    .hero-reference-look .hero-inner {
        padding-top: 88px;
    }

    .hero-mini-topline {
        margin-bottom: 28px;
    }

    .hero-reference-look .hero-fact {
        margin-top: 16px;
        margin-bottom: 0;
        padding: 18px 0 0 18px;
        background: none;
        box-shadow: none;
        border-radius: 0;
    }
}


/* 1.2.15 Variante 1: ruhiger Hero mit gemeinsamem Verlauf oben */
body.home .site-topbar {
    border-bottom: 1px solid rgba(255,255,255,.14);
}

body.home .topbar-inner,
body.home .header-inner {
    text-shadow: 0 1px 10px rgba(0,0,0,.26);
}

body.home .topbar-contact {
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    backdrop-filter: none !important;
}

body.home .primary-nav {
    justify-self: end;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    backdrop-filter: none !important;
    box-shadow: none !important;
}

body.home .kehl-menu {
    gap: 28px;
}

body.home .kehl-menu > li > a {
    color: rgba(255,255,255,.96);
    font-weight: 650;
    text-shadow: 0 1px 10px rgba(0,0,0,.42);
}

body.home .header-cta {
    color: #fff;
    background: transparent;
    border: 1px solid rgba(255,255,255,.58);
    box-shadow: none;
}

body.home .header-cta:hover {
    background: rgba(255,255,255,.12);
    border-color: rgba(255,255,255,.8);
}

body.home .site-brand {
    width: 235px;
}

body.home .site-brand img {
    filter: drop-shadow(0 3px 10px rgba(0,0,0,.16));
}

.hero-reference-look {
    position: relative;
}

.hero-reference-look::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 0;
    background:
        linear-gradient(180deg, rgba(6,14,52,.56) 0%, rgba(6,14,52,.28) 17%, rgba(6,14,52,.08) 32%, rgba(6,14,52,0) 48%),
        linear-gradient(90deg, rgba(6,14,52,.82) 0%, rgba(6,14,52,.72) 18%, rgba(6,14,52,.38) 38%, rgba(6,14,52,.08) 63%, rgba(6,14,52,0) 82%);
    pointer-events: none;
}

.hero-reference-look .hero-overlay {
    z-index: 1;
    background-image:
        linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
    background-size: 52px 52px;
    opacity: .75;
    mask-image: linear-gradient(to right, rgba(0,0,0,.65), transparent 70%);
}

.hero-reference-look .hero-inner {
    position: relative;
    z-index: 2;
    padding-top: 205px;
    padding-bottom: 58px;
}

.hero-mini-topline {
    margin-bottom: 106px;
    color: rgba(255,255,255,.92);
    text-shadow: 0 1px 12px rgba(0,0,0,.34);
}

.hero-reference-look .hero-content {
    max-width: 560px;
    padding-bottom: 76px;
}

.hero-reference-look .hero-fact {
    align-self: end;
    max-width: 152px;
    margin-bottom: 92px;
    padding: 0 0 0 26px;
    background: transparent !important;
    backdrop-filter: none !important;
    border-left: 1px solid rgba(255,255,255,.7);
    border-radius: 0 !important;
    box-shadow: none !important;
}

.hero-reference-look .hero-fact strong {
    color: #fff;
    text-shadow: 0 2px 18px rgba(0,0,0,.34);
    font-weight: 350;
}

.hero-fact-lines {
    margin-top: 10px;
}

.hero-fact-lines span {
    color: rgba(255,255,255,.94);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .15em;
    text-shadow: 0 1px 12px rgba(0,0,0,.32);
}

@media (max-width: 1180px) {
    body.home .site-brand { width: 220px; }
    .hero-reference-look .hero-inner { padding-top: 188px; }
    .hero-mini-topline { margin-bottom: 88px; }
    .hero-reference-look .hero-fact { margin-bottom: 74px; }
}

@media (max-width: 1024px) {
    .hero-reference-look::before {
        background:
            linear-gradient(180deg, rgba(6,14,52,.58) 0%, rgba(6,14,52,.18) 30%, rgba(6,14,52,0) 54%),
            linear-gradient(90deg, rgba(6,14,52,.82) 0%, rgba(6,14,52,.55) 34%, rgba(6,14,52,.1) 72%, rgba(6,14,52,0) 100%);
    }

    body.home .topbar-contact,
    body.home .primary-nav {
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
    }

    .hero-reference-look .hero-inner {
        padding-top: 88px;
    }

    .hero-mini-topline {
        margin-bottom: 28px;
    }

    .hero-reference-look .hero-fact {
        margin-top: 14px;
        margin-bottom: 0;
        padding-left: 18px;
    }
}


/* 1.2.17 Hero kompakter und praesenter */
.hero-reference-look .hero-inner {
    min-height: 820px;
    padding-top: 190px;
    padding-bottom: 68px;
    grid-template-columns: minmax(0, 1fr) minmax(170px, 210px);
}

.hero-reference-look .hero-content {
    max-width: 650px;
    padding-bottom: 98px;
}

.hero-reference-look .hero-intro-line {
    margin-bottom: 34px;
    font-size: 13px;
    letter-spacing: .18em;
}

.hero-reference-look .hero-intro-line::before {
    width: 44px;
    flex-basis: 44px;
}

.hero-reference-look h1 {
    max-width: 620px;
    font-size: clamp(64px, 7vw, 92px);
    line-height: .9;
}

.hero-subheadline {
    margin-top: 14px;
    font-size: clamp(38px, 4vw, 56px);
    line-height: 1.02;
}

.hero-description {
    max-width: 430px;
    margin-top: 32px;
    font-size: 18px;
    line-height: 1.75;
}

.hero-reference-look .hero-actions {
    margin-top: 38px;
}

.hero-reference-look .button-outline-light {
    min-height: 56px;
    padding: 0 26px;
    font-size: 13px;
}

.hero-reference-look .hero-fact {
    max-width: 176px;
    margin-bottom: 110px;
    padding-left: 30px;
}

.hero-reference-look .hero-fact strong {
    font-size: clamp(84px, 8.5vw, 112px);
}

.hero-fact-lines {
    margin-top: 14px;
}

.hero-fact-lines span {
    font-size: 12px;
    line-height: 1.5;
}

@media (max-width: 1180px) {
    .hero-reference-look .hero-inner {
        min-height: 760px;
        padding-top: 176px;
        grid-template-columns: minmax(0, 1fr) minmax(150px, 190px);
    }

    .hero-reference-look .hero-content {
        max-width: 580px;
        padding-bottom: 82px;
    }

    .hero-reference-look h1 {
        font-size: clamp(56px, 6.1vw, 78px);
    }

    .hero-subheadline {
        font-size: clamp(32px, 3.6vw, 46px);
    }

    .hero-description {
        font-size: 16px;
        max-width: 390px;
    }

    .hero-reference-look .hero-fact {
        margin-bottom: 92px;
    }
}

@media (max-width: 1024px) {
    .hero-reference-look .hero-inner {
        min-height: 0;
        padding-top: 92px;
        padding-bottom: 48px;
        grid-template-columns: 1fr;
    }

    .hero-reference-look .hero-content {
        max-width: 640px;
        padding-bottom: 0;
    }

    .hero-reference-look .hero-intro-line {
        margin-bottom: 24px;
    }

    .hero-reference-look h1 {
        font-size: clamp(48px, 9.2vw, 70px);
    }

    .hero-subheadline {
        font-size: clamp(28px, 6vw, 40px);
    }

    .hero-description {
        font-size: 15px;
        max-width: 360px;
    }

    .hero-reference-look .hero-fact {
        max-width: 190px;
        margin-top: 18px;
        margin-bottom: 0;
        padding-left: 20px;
    }

    .hero-reference-look .hero-fact strong {
        font-size: 76px;
    }
}

@media (max-width: 767px) {
    .hero-reference-look .hero-inner {
        padding-top: 72px;
        padding-bottom: 40px;
    }

    .hero-reference-look .hero-intro-line {
        font-size: 11px;
        gap: 12px;
    }

    .hero-reference-look .hero-intro-line::before {
        width: 26px;
        flex-basis: 26px;
    }

    .hero-reference-look h1 {
        font-size: clamp(42px, 11vw, 58px);
    }

    .hero-subheadline {
        font-size: clamp(26px, 7.2vw, 34px);
    }

    .hero-description {
        max-width: 300px;
        font-size: 14px;
        line-height: 1.7;
    }

    .hero-reference-look .button-outline-light {
        min-height: 52px;
        font-size: 12px;
    }
}


/* 1.2.18 Feintuning Hero-Abstand und 400-Jahre-Block */
.hero-reference-look .hero-inner {
    padding-top: 205px;
}

.hero-reference-look .hero-content {
    padding-top: 22px;
    padding-bottom: 88px;
}

.hero-reference-look .hero-fact {
    margin-bottom: 96px;
    padding-left: 34px;
    border-left: 2px solid rgba(255,255,255,.82);
}

.hero-reference-look .hero-fact strong {
    font-size: clamp(90px, 9vw, 120px);
    font-weight: 400;
    text-shadow: 0 3px 22px rgba(0,0,0,.42), 0 0 2px rgba(255,255,255,.28);
}

.hero-fact-lines {
    margin-top: 16px;
}

.hero-fact-lines span {
    color: rgba(255,255,255,1);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .16em;
    text-shadow: 0 2px 14px rgba(0,0,0,.38);
}

@media (max-width: 1180px) {
    .hero-reference-look .hero-content {
        padding-top: 18px;
        padding-bottom: 76px;
    }

    .hero-reference-look .hero-fact strong {
        font-size: 86px;
    }
}

@media (max-width: 1024px) {
    .hero-reference-look .hero-content {
        padding-top: 8px;
        padding-bottom: 0;
    }

    .hero-reference-look .hero-fact {
        padding-left: 22px;
        border-left-width: 1px;
    }

    .hero-reference-look .hero-fact strong {
        font-size: 78px;
    }

    .hero-fact-lines span {
        font-size: 12px;
    }
}


/* 1.2.19: Leistungen auf gleiche Inhaltsbreite wie Hero */
.home-services-editorial .kehl-container {
    width: var(--kehl-container) !important;
    max-width: none !important;
}

@media (max-width: 1280px) {
    .home-services-editorial .kehl-container {
        width: var(--kehl-container) !important;
        max-width: none !important;
    }
}


/* 1.2.20 Sprungziel Projekt anfragen */
#anfrageformular {
    scroll-margin-top: 150px;
}

@media (max-width: 1099px) {
    #anfrageformular {
        scroll-margin-top: 110px;
    }
}


/* 1.2.21 Megamenues ohne rechte CTA-Spalte */
.kehl-mega-menu-services,
.kehl-mega-menu-company {
    grid-template-columns: 300px minmax(0, 1fr) !important;
}

.kehl-mega-menu-services .kehl-mega-services {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}

.kehl-mega-menu-company .kehl-company-links {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}

@media (min-width: 1100px) and (max-width: 1439px) {
    .kehl-mega-menu-services,
    .kehl-mega-menu-company {
        grid-template-columns: 220px minmax(0, 1fr) !important;
        gap: 18px !important;
    }
}

@media (min-width: 1100px) and (max-width: 1219px) {
    .kehl-mega-menu-services,
    .kehl-mega-menu-company {
        grid-template-columns: 190px minmax(0, 1fr) !important;
        gap: 14px !important;
    }
}

@media (max-width: 1099px) {
    .kehl-mega-menu-services,
    .kehl-mega-menu-company {
        grid-template-columns: 1fr !important;
    }
}


/* 1.2.22 Leistungs-Unterseiten: zwei Bilder unter der Textsektion */
.legacy-project-preview-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 26px;
    margin-top: 46px;
}

.legacy-project-preview-grid.is-single {
    grid-template-columns: 1fr;
}

.legacy-project-preview-grid a {
    display: block;
    min-width: 0;
    overflow: hidden;
    border-radius: 14px;
    background: #dfe3ec;
}

.legacy-project-preview-grid img {
    display: block;
    width: 100%;
    height: 360px;
    object-fit: cover;
    object-position: center;
    transition: transform .25s ease;
}

.legacy-project-preview-grid a:hover img {
    transform: scale(1.015);
}

@media (max-width: 900px) {
    .legacy-project-preview-grid img {
        height: 300px;
    }
}

@media (max-width: 640px) {
    .legacy-project-preview-grid {
        grid-template-columns: 1fr;
        gap: 16px;
        margin-top: 30px;
    }

    .legacy-project-preview-grid img {
        height: 240px;
    }
}


/* 1.2.23 Referenzfilter */
.reference-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin: 0 0 34px;
}
.reference-filter-button {
    appearance: none;
    min-height: 42px;
    padding: 0 18px;
    border: 1px solid rgba(15,34,129,.16);
    border-radius: 999px;
    color: var(--kehl-blue);
    background: #fff;
    font: inherit;
    font-size: 13px;
    font-weight: 750;
    cursor: pointer;
    transition: background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}
.reference-filter-button:hover {
    transform: translateY(-1px);
    border-color: rgba(15,34,129,.4);
}
.reference-filter-button.is-active {
    color: #fff;
    background: var(--kehl-blue);
    border-color: var(--kehl-blue);
}
.reference-gallery-item.is-filtered-out {
    display: none !important;
}
@media (max-width: 700px) {
    .reference-filter {
        gap: 8px;
        margin-bottom: 24px;
    }
    .reference-filter-button {
        min-height: 38px;
        padding: 0 14px;
        font-size: 12px;
    }
}


/* 1.2.25 Topbar Inhalt und Kontakt-Icons */
.topbar-history {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .17em;
    text-transform: uppercase;
}

.topbar-history span {
    display: inline-block;
    margin: 0 5px;
    opacity: .72;
}

.topbar-contact-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.topbar-contact-link svg {
    width: 13px;
    height: 13px;
    flex: 0 0 13px;
    fill: currentColor;
    opacity: .92;
}

@media (max-width: 640px) {
    .topbar-history {
        font-size: 9px;
        letter-spacing: .11em;
    }

    .topbar-contact-link {
        gap: 5px;
    }

    .topbar-contact-link svg {
        width: 12px;
        height: 12px;
        flex-basis: 12px;
    }
}


/* 1.2.26 Topbar robust gegen alte gecachte Header-Ausgabe */
.topbar-history {
    color: rgba(255,255,255,.92);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.topbar-contact > a {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.topbar-contact > a::before {
    content: "";
    width: 13px;
    height: 13px;
    flex: 0 0 13px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    opacity: .92;
}

.topbar-contact > a:first-child::before,
.topbar-contact .topbar-phone::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6A19.79 19.79 0 0 1 2.12 4.18 2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.12.9.33 1.78.62 2.63a2 2 0 0 1-.45 2.11L8 9.73a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.85.29 1.73.5 2.63.62A2 2 0 0 1 22 16.92z'/%3E%3C/svg%3E");
}

.topbar-contact > a:nth-child(2)::before,
.topbar-contact .topbar-email::before {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'/%3E%3Cpolyline points='22,6 12,13 2,6'/%3E%3C/svg%3E");
}

.topbar-contact-link svg { display:none!important; }


/* 1.2.27 Kontaktmenü + Projektanfrage-Popup */
.kehl-project-modal {
    position: fixed;
    inset: 0;
    z-index: 99990;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 28px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .2s ease, visibility .2s ease;
}

.kehl-project-modal.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.kehl-project-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(5, 12, 42, .72);
    backdrop-filter: blur(8px);
}

.kehl-project-modal-dialog {
    position: relative;
    z-index: 2;
    width: min(820px, 100%);
    max-height: calc(100vh - 56px);
    overflow: auto;
    padding: 38px;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 30px 90px rgba(4, 10, 42, .32);
}

.kehl-project-modal-close {
    position: absolute;
    top: 14px;
    right: 16px;
    width: 42px;
    height: 42px;
    border: 0;
    border-radius: 50%;
    background: #f0f1f5;
    color: var(--kehl-blue);
    font-size: 30px;
    line-height: 1;
    cursor: pointer;
}

.kehl-project-modal-head {
    max-width: 620px;
    margin-bottom: 26px;
    padding-right: 48px;
}

.kehl-project-modal-head h2 {
    margin: 6px 0 10px;
    color: var(--kehl-charcoal);
    font-size: clamp(30px, 4vw, 46px);
    line-height: 1.02;
}

.kehl-project-modal-head > p:last-child {
    margin: 0;
    color: rgba(21,24,33,.68);
    font-size: 16px;
    line-height: 1.6;
}

.kehl-modal-form .button-blue {
    width: 100%;
    margin-top: 8px;
}

.kehl-modal-open {
    overflow: hidden;
}

@media (max-width: 720px) {
    .kehl-project-modal {
        align-items: flex-end;
        padding: 0;
    }

    .kehl-project-modal-dialog {
        width: 100%;
        max-height: 92vh;
        padding: 28px 20px 24px;
        border-radius: 18px 18px 0 0;
    }

    .kehl-project-modal-head {
        padding-right: 36px;
    }

    .kehl-modal-form .form-row.two {
        grid-template-columns: 1fr;
    }
}


/* 1.2.29 Betreff-Auswahl */
.kehl-contact-form select {
    min-height: 50px;
    appearance: auto;
    cursor: pointer;
}


/* 1.2.30 Transparenter Hamburger-Header */
.site-topbar { display:none !important; }
.site-header,
body.home .site-header,
body.admin-bar.home .site-header {
    position:absolute !important;
    top:0 !important;
    left:0; right:0;
    min-height:0;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    z-index:1200;
}
body.admin-bar .site-header { top:32px !important; }
.site-header.is-scrolled,
body.home .site-header.is-scrolled,
body.admin-bar.home .site-header.is-scrolled {
    position:fixed !important;
    top:0 !important;
    background:rgba(9,22,95,.96) !important;
    backdrop-filter:blur(12px);
    box-shadow:0 12px 34px rgba(6,15,64,.18) !important;
}
body.admin-bar .site-header.is-scrolled { top:32px !important; }
.header-inner,
body.home .header-inner {
    min-height:118px !important;
    padding:18px 0 !important;
    display:grid !important;
    grid-template-columns:1fr auto !important;
    gap:24px !important;
}
.site-header.is-scrolled .header-inner { min-height:82px !important; padding:10px 0 !important; }
.site-brand,
body.home .site-brand { width:260px !important; padding:0 !important; }
.site-header.is-scrolled .site-brand { width:205px !important; }
.header-cta { display:none !important; }
.nav-toggle,
body.home .nav-toggle {
    display:inline-flex !important;
    align-items:center;
    gap:14px;
    width:auto !important;
    height:52px !important;
    padding:0 4px 0 14px !important;
    border:0 !important;
    background:transparent !important;
    color:#fff;
    z-index:1305;
}
.nav-toggle-label {
    font-size:13px;
    font-weight:800;
    letter-spacing:.14em;
    text-transform:uppercase;
}
.nav-toggle > span:not(.screen-reader-text) {
    position:absolute;
    right:4px;
    width:28px !important;
    height:2px !important;
    margin:0 !important;
    background:#fff !important;
    transition:transform .25s ease, opacity .25s ease, top .25s ease;
}
.nav-toggle > span:nth-of-type(1){top:16px}
.nav-toggle > span:nth-of-type(2){top:25px}
.nav-toggle > span:nth-of-type(3){top:34px}
.nav-toggle { padding-right:46px !important; position:relative; }
.nav-open .nav-toggle > span:nth-of-type(1){top:25px;transform:rotate(45deg)}
.nav-open .nav-toggle > span:nth-of-type(2){opacity:0}
.nav-open .nav-toggle > span:nth-of-type(3){top:25px;transform:rotate(-45deg)}

.primary-nav,
body.home .primary-nav {
    position:fixed !important;
    top:0 !important;
    right:0 !important;
    bottom:0 !important;
    width:min(680px, 92vw) !important;
    height:100dvh !important;
    padding:112px 54px 42px !important;
    overflow-y:auto !important;
    background:linear-gradient(160deg,#0d217f 0%,#07133f 100%) !important;
    box-shadow:-24px 0 70px rgba(3,8,34,.28) !important;
    transform:translateX(105%) !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
    transition:transform .35s cubic-bezier(.2,.75,.25,1) !important;
    z-index:1295 !important;
}
.nav-open .primary-nav { transform:translateX(0) !important; }
.kehl-nav-backdrop {
    position:fixed; inset:0;
    background:rgba(4,9,28,.54);
    backdrop-filter:blur(3px);
    opacity:0; visibility:hidden; pointer-events:none;
    transition:opacity .3s ease, visibility .3s ease;
    z-index:1180;
}
.nav-open .kehl-nav-backdrop { opacity:1; visibility:visible; pointer-events:auto; }
.kehl-offcanvas-head {
    padding:0 0 28px;
    margin-bottom:8px;
    border-bottom:1px solid rgba(255,255,255,.16);
    color:#fff;
}
.kehl-offcanvas-head span { display:block; font-size:13px; font-weight:800; letter-spacing:.18em; text-transform:uppercase; }
.kehl-offcanvas-head small { display:block; margin-top:7px; color:rgba(255,255,255,.62); font-size:13px; }
.primary-nav .kehl-menu {
    display:block !important;
    margin:0 !important;
    padding:0 !important;
}
.primary-nav .kehl-menu > li {
    position:relative !important;
    border-bottom:1px solid rgba(255,255,255,.13);
}
.primary-nav .kehl-menu > li > a,
.primary-nav .kehl-parent-link > a {
    min-height:0 !important;
    padding:20px 0 !important;
    color:#fff !important;
    font-size:clamp(28px,3vw,40px) !important;
    font-weight:500 !important;
    line-height:1.1 !important;
    letter-spacing:-.02em !important;
}
.primary-nav .kehl-parent-link { display:flex !important; align-items:center !important; justify-content:space-between !important; }
.primary-nav .kehl-submenu-toggle {
    position:relative !important;
    flex:0 0 44px !important;
    width:44px !important; height:44px !important;
    border:1px solid rgba(255,255,255,.24) !important;
    border-radius:50% !important;
    background:transparent !important;
}
.primary-nav .kehl-submenu-toggle span::before,
.primary-nav .kehl-submenu-toggle span::after { background:#fff !important; }
.primary-nav .kehl-mega-menu,
.primary-nav .kehl-mega-menu-services,
.primary-nav .kehl-mega-menu-company {
    position:static !important;
    display:none !important;
    width:100% !important;
    max-width:none !important;
    margin:0 !important;
    padding:0 0 20px !important;
    grid-template-columns:1fr !important;
    background:transparent !important;
    color:#fff !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    transform:none !important;
    opacity:1 !important;
    visibility:visible !important;
    pointer-events:auto !important;
}
.primary-nav .kehl-has-mega:hover > .kehl-mega-menu,
.primary-nav .kehl-has-mega:focus-within > .kehl-mega-menu,
.primary-nav .kehl-has-mega.is-hover-open > .kehl-mega-menu { display:none !important; }
.primary-nav .kehl-has-mega.is-submenu-open > .kehl-mega-menu { display:block !important; }
.primary-nav .kehl-mega-intro { display:none !important; }
.primary-nav .kehl-mega-services { display:grid !important; grid-template-columns:1fr 1fr !important; gap:10px !important; }
.primary-nav .kehl-mega-card {
    min-height:76px !important;
    padding:8px !important;
    grid-template-columns:64px 1fr !important;
    gap:12px !important;
    background:rgba(255,255,255,.08) !important;
    border:1px solid rgba(255,255,255,.12) !important;
    border-radius:10px !important;
    color:#fff !important;
}
.primary-nav .kehl-mega-thumb { width:64px !important; height:58px !important; border-radius:8px !important; overflow:hidden; }
.primary-nav .kehl-mega-card-copy strong { color:#fff !important; font-size:14px !important; }
.primary-nav .kehl-mega-card-copy small { color:rgba(255,255,255,.6) !important; font-size:10px !important; }
.primary-nav .kehl-company-links { display:grid !important; grid-template-columns:1fr 1fr 1fr !important; gap:10px !important; }
.primary-nav .kehl-company-links a {
    min-height:120px !important;
    padding:16px !important;
    background:rgba(255,255,255,.08) !important;
    border:1px solid rgba(255,255,255,.12) !important;
    border-radius:10px !important;
    color:#fff !important;
}
.primary-nav .kehl-company-links strong { color:#fff !important; font-size:16px !important; }
.primary-nav .kehl-company-links small { color:rgba(255,255,255,.62) !important; }
.mobile-nav-actions {
    display:grid !important;
    grid-template-columns:1fr 1fr !important;
    gap:10px !important;
    padding:28px 0 0 !important;
}
.mobile-nav-project { grid-column:1/-1; min-height:52px; display:flex; align-items:center; justify-content:center; background:#fff !important; color:var(--kehl-blue) !important; font-weight:800; letter-spacing:.09em; text-transform:uppercase; }
.mobile-nav-phone,.mobile-nav-email { min-height:46px; display:flex; align-items:center; color:#fff !important; border:1px solid rgba(255,255,255,.18); padding:0 12px; font-size:13px; }

/* Startseite: Header liegt frei auf dem Hero */
body.home .home-hero { padding-top:0 !important; }

@media (max-width:782px){ body.admin-bar .site-header, body.admin-bar .site-header.is-scrolled { top:46px !important; } }
@media (max-width:700px){
    .header-inner,body.home .header-inner{min-height:92px !important;padding:12px 0 !important}
    .site-brand,body.home .site-brand{width:190px !important}
    .site-header.is-scrolled .site-brand{width:170px !important}
    .nav-toggle-label{font-size:11px}
    .primary-nav,body.home .primary-nav{width:100% !important;padding:94px 24px 28px !important}
    .primary-nav .kehl-menu > li > a,.primary-nav .kehl-parent-link > a{font-size:30px !important;padding:17px 0 !important}
    .primary-nav .kehl-mega-services{grid-template-columns:1fr !important}
    .primary-nav .kehl-company-links{grid-template-columns:1fr !important}
    .primary-nav .kehl-company-links a{min-height:0 !important}
    .mobile-nav-actions{grid-template-columns:1fr !important}
    .mobile-nav-project{grid-column:auto}
}


/* 1.2.31 Feinschliff Hamburger-Trigger */
.header-inner,
body.home .header-inner {
    align-items:center !important;
}

.site-brand,
body.home .site-brand {
    transform:translateY(6px);
}

.site-header.is-scrolled .site-brand {
    transform:translateY(2px);
}

.nav-toggle,
body.home .nav-toggle {
    position:relative !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    min-width:126px !important;
    width:126px !important;
    height:52px !important;
    margin:0 !important;
    padding:0 44px 0 0 !important;
    gap:0 !important;
    border:0 !important;
    background:transparent !important;
    color:#fff !important;
}

.nav-toggle-label {
    position:relative !important;
    z-index:2;
    display:block !important;
    margin:0 !important;
    padding:0 !important;
    color:#fff !important;
    font-size:15px !important;
    font-weight:700 !important;
    line-height:1 !important;
    letter-spacing:.12em !important;
    text-transform:uppercase !important;
    white-space:nowrap !important;
}

.nav-toggle > span:not(.screen-reader-text) {
    position:absolute !important;
    right:0 !important;
    left:auto !important;
    width:28px !important;
    height:2px !important;
    margin:0 !important;
    padding:0 !important;
    background:#fff !important;
    border:0 !important;
    border-radius:2px !important;
    transform-origin:center !important;
    transition:transform .25s ease, opacity .25s ease, top .25s ease !important;
}

.nav-toggle > span:nth-of-type(1) { top:17px !important; }
.nav-toggle > span:nth-of-type(2) { top:25px !important; }
.nav-toggle > span:nth-of-type(3) { top:33px !important; }

.nav-open .nav-toggle > span:nth-of-type(1) { top:25px !important; transform:rotate(45deg) !important; }
.nav-open .nav-toggle > span:nth-of-type(2) { opacity:0 !important; }
.nav-open .nav-toggle > span:nth-of-type(3) { top:25px !important; transform:rotate(-45deg) !important; }

.site-header.is-scrolled .nav-toggle,
.site-header.is-scrolled body.home .nav-toggle {
    height:46px !important;
}

@media (max-width:700px) {
    .site-brand,
    body.home .site-brand {
        transform:translateY(3px);
    }

    .nav-toggle,
    body.home .nav-toggle {
        min-width:108px !important;
        width:108px !important;
        height:46px !important;
        padding-right:38px !important;
    }

    .nav-toggle-label {
        font-size:12px !important;
        letter-spacing:.1em !important;
    }

    .nav-toggle > span:not(.screen-reader-text) {
        width:24px !important;
    }

    .nav-toggle > span:nth-of-type(1) { top:14px !important; }
    .nav-toggle > span:nth-of-type(2) { top:22px !important; }
    .nav-toggle > span:nth-of-type(3) { top:30px !important; }
    .nav-open .nav-toggle > span:nth-of-type(1),
    .nav-open .nav-toggle > span:nth-of-type(3) { top:22px !important; }
}


/* 1.2.32 Off-Canvas-Menü sicher außerhalb des Header-Stackings */
.kehl-offcanvas-nav,
body.home .kehl-offcanvas-nav {
    position: fixed !important;
    inset: 0 0 0 auto !important;
    display: block !important;
    width: min(680px, 92vw) !important;
    max-width: 680px !important;
    height: 100dvh !important;
    margin: 0 !important;
    padding: 112px 54px 42px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    color: #fff !important;
    background: linear-gradient(160deg,#0d217f 0%,#07133f 100%) !important;
    box-shadow: -24px 0 70px rgba(3,8,34,.34) !important;
    transform: translate3d(105%,0,0) !important;
    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: none !important;
    transition: transform .35s cubic-bezier(.2,.75,.25,1) !important;
    z-index: 100002 !important;
}

body.nav-open .kehl-offcanvas-nav,
.nav-open .kehl-offcanvas-nav {
    transform: translate3d(0,0,0) !important;
    pointer-events: auto !important;
}

.kehl-nav-backdrop {
    z-index: 100000 !important;
}

.nav-open .kehl-nav-backdrop {
    pointer-events: auto !important;
}

.nav-toggle,
body.home .nav-toggle {
    z-index: 100004 !important;
}

body.nav-open .kehl-offcanvas-nav *,
body.nav-open .kehl-offcanvas-nav a,
body.nav-open .kehl-offcanvas-nav button {
    pointer-events: auto !important;
}

.kehl-offcanvas-nav .kehl-menu {
    position: relative !important;
    z-index: 1 !important;
}

.kehl-offcanvas-nav .kehl-menu > li,
.kehl-offcanvas-nav .kehl-parent-link,
.kehl-offcanvas-nav .kehl-menu a,
.kehl-offcanvas-nav .kehl-submenu-toggle {
    position: relative !important;
    z-index: 2 !important;
}

@media (max-width: 700px) {
    .kehl-offcanvas-nav,
    body.home .kehl-offcanvas-nav {
        width: 100vw !important;
        max-width: none !important;
        padding: 94px 24px 28px !important;
    }
}


/* 1.2.33 Off-Canvas-Akkordeons ohne Layoutsprung */
.kehl-offcanvas-nav,
body.home .kehl-offcanvas-nav {
    box-sizing: border-box !important;
    overflow-y: scroll !important;
    scrollbar-gutter: stable !important;
}

.kehl-offcanvas-nav .kehl-menu,
.kehl-offcanvas-nav .kehl-menu > li,
.kehl-offcanvas-nav .kehl-parent-link,
.kehl-offcanvas-nav .kehl-mega-menu,
.kehl-offcanvas-nav .kehl-mega-menu-services,
.kehl-offcanvas-nav .kehl-mega-menu-company,
.kehl-offcanvas-nav .kehl-mega-services,
.kehl-offcanvas-nav .kehl-company-links {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

.kehl-offcanvas-nav .kehl-mega-menu,
.kehl-offcanvas-nav .kehl-mega-menu-services,
.kehl-offcanvas-nav .kehl-mega-menu-company {
    overflow-x: clip !important;
}

.kehl-offcanvas-nav .kehl-mega-services,
.kehl-offcanvas-nav .kehl-company-links {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.kehl-offcanvas-nav .kehl-mega-card,
.kehl-offcanvas-nav .kehl-company-links > a {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

.kehl-offcanvas-nav .kehl-mega-card-copy {
    min-width: 0 !important;
}

.kehl-offcanvas-nav .kehl-mega-card-copy strong,
.kehl-offcanvas-nav .kehl-mega-card-copy small {
    overflow-wrap: anywhere;
}

@media (max-width:700px) {
    .kehl-offcanvas-nav,
    body.home .kehl-offcanvas-nav {
        scrollbar-gutter: stable !important;
    }
}


/* 1.2.35 Off-Canvas-Akkordeons sauber im Panel halten */
.kehl-offcanvas-nav .kehl-has-mega,
.kehl-offcanvas-nav .kehl-parent-link,
.kehl-offcanvas-nav .kehl-mega-menu,
.kehl-offcanvas-nav .kehl-mega-menu-services,
.kehl-offcanvas-nav .kehl-mega-menu-company,
.kehl-offcanvas-nav .kehl-mega-services,
.kehl-offcanvas-nav .kehl-company-links {
    position: static !important;
    inset: auto !important;
    left: auto !important;
    right: auto !important;
    top: auto !important;
    bottom: auto !important;
    transform: none !important;
    translate: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}

.kehl-offcanvas-nav .kehl-mega-menu,
.kehl-offcanvas-nav .kehl-mega-menu-services,
.kehl-offcanvas-nav .kehl-mega-menu-company {
    padding-left: 0 !important;
    padding-right: 0 !important;
    overflow: visible !important;
}

.kehl-offcanvas-nav .kehl-mega-services {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    padding: 0 !important;
}

.kehl-offcanvas-nav .kehl-company-links {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    padding: 0 !important;
}

.kehl-offcanvas-nav .kehl-mega-card,
.kehl-offcanvas-nav .kehl-company-links > a {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

.kehl-offcanvas-nav .kehl-mega-card-copy {
    min-width: 0 !important;
}

@media (max-width: 700px) {
    .kehl-offcanvas-nav .kehl-mega-services,
    .kehl-offcanvas-nav .kehl-company-links {
        grid-template-columns: minmax(0, 1fr) !important;
    }
}


/* 1.2.36 Off-Canvas: aktiver Desktop-Megamenü-Transform vollständig neutralisieren */
.kehl-offcanvas-nav .kehl-has-mega.is-submenu-open > .kehl-mega-menu,
.kehl-offcanvas-nav .kehl-has-mega.is-submenu-open > .kehl-mega-menu-services,
.kehl-offcanvas-nav .kehl-has-mega.is-submenu-open > .kehl-mega-menu-company,
body .kehl-offcanvas-nav .kehl-has-mega.is-submenu-open > .kehl-mega-menu {
    position: relative !important;
    inset: auto !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    transform: none !important;
    translate: none !important;
}

.kehl-offcanvas-nav .kehl-has-mega.is-submenu-open > .kehl-mega-menu::before {
    display: none !important;
}

.kehl-offcanvas-nav .kehl-mega-services,
.kehl-offcanvas-nav .kehl-company-links {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
}

.kehl-offcanvas-nav .kehl-mega-card,
.kehl-offcanvas-nav .kehl-company-links > a {
    transform: none !important;
}


/* 1.2.40 Referenzen: Titel-Hero entfernt, Headerbild kompakt beibehalten */
.references-page-no-title-hero .references-header-backdrop {
    position: relative;
    height: 162px;
    background: var(--kehl-blue);
    overflow: hidden;
}

.references-page-no-title-hero .references-header-backdrop.has-image {
    background-image:
        linear-gradient(90deg, rgba(8, 24, 110, .78), rgba(8, 24, 110, .42)),
        var(--page-hero-image);
    background-size: cover;
    background-position: center 38%;
}

.references-page-no-title-hero .references-header-backdrop::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(8, 24, 110, .08), rgba(8, 24, 110, .22));
    pointer-events: none;
}

.references-page-no-title-hero .references-gallery-section {
    padding-top: 54px;
}

@media (max-width: 1024px) {
    .references-page-no-title-hero .references-header-backdrop {
        height: 132px;
    }

    .references-page-no-title-hero .references-gallery-section {
        padding-top: 42px;
    }
}

@media (max-width: 767px) {
    .references-page-no-title-hero .references-header-backdrop {
        height: 112px;
    }

    .references-page-no-title-hero .references-gallery-section {
        padding-top: 32px;
    }
}


/* 1.2.41 Projekte: Galerie mit drei Bildern nebeneinander */
.references-page .reference-gallery {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 18px !important;
    columns: initial !important;
}
.references-page .reference-gallery > a {
    display: block !important;
    margin: 0 !important;
    break-inside: auto !important;
    width: 100% !important;
}
.references-page .reference-gallery > a img {
    width: 100% !important;
    height: auto !important;
    display: block !important;
}
@media (max-width: 980px) {
    .references-page .reference-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}
@media (max-width: 620px) {
    .references-page .reference-gallery {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }
}


/* 1.2.42 Projekte: drei natürliche Masonry-Spalten ohne Leerraum */
.references-page .reference-gallery {
    display: block !important;
    grid-template-columns: none !important;
    columns: 3 !important;
    column-gap: 18px !important;
}
.references-page .reference-gallery > a {
    display: block !important;
    width: 100% !important;
    margin: 0 0 18px !important;
    break-inside: avoid !important;
    -webkit-column-break-inside: avoid !important;
    page-break-inside: avoid !important;
    background: transparent !important;
}
.references-page .reference-gallery > a img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    object-fit: initial !important;
}
@media (max-width: 980px) {
    .references-page .reference-gallery {
        columns: 2 !important;
        column-gap: 16px !important;
    }
}
@media (max-width: 620px) {
    .references-page .reference-gallery {
        columns: 1 !important;
    }
    .references-page .reference-gallery > a {
        margin-bottom: 14px !important;
    }
}


/* 1.2.43 Filterfix fuer Masonry-Galerie */
.references-page .reference-gallery > a.reference-gallery-item.is-filtered-out {
    display: none !important;
}


/* 1.2.44 Über uns: großer Hero entfernt */
.about-page-no-title-hero .about-header-backdrop {
    position: relative;
    height: 162px;
    background: var(--kehl-blue);
    overflow: hidden;
}

.about-page-no-title-hero .about-header-backdrop.has-image {
    background-image:
        linear-gradient(90deg, rgba(8,24,110,.78), rgba(8,24,110,.42)),
        var(--page-hero-image);
    background-size: cover;
    background-position: center 40%;
}

.about-page-no-title-hero .about-header-backdrop::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(8,24,110,.08), rgba(8,24,110,.22));
    pointer-events: none;
}

.about-page-no-title-hero .company-history-section {
    padding-top: 72px;
}

@media (max-width:1024px) {
    .about-page-no-title-hero .about-header-backdrop { height:132px; }
    .about-page-no-title-hero .company-history-section { padding-top:58px; }
}

@media (max-width:767px) {
    .about-page-no-title-hero .about-header-backdrop { height:112px; }
    .about-page-no-title-hero .company-history-section { padding-top:44px; }
}

/* Version 1.2.45: Team page refresh */
.page-hero-team .page-lead {
    max-width: 760px;
}

.team-story-section {
    padding-top: 92px;
}

.team-story-grid,
.team-family-grid {
    display: grid;
    grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
    gap: 56px;
    align-items: start;
}

.team-story-copy h2,
.team-family-copy h2 {
    margin-bottom: 22px;
}

.team-story-copy > p:not(.eyebrow),
.team-family-copy > p:not(.eyebrow) {
    max-width: 640px;
    color: rgba(21,24,33,.76);
    font-size: 18px;
    line-height: 1.75;
}

.team-story-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 30px;
}

.team-story-chips span {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 0 16px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--kehl-blue);
    background: rgba(18,37,148,.08);
}

.team-story-media {
    position: relative;
    min-height: 620px;
    padding-left: 58px;
    padding-bottom: 40px;
}

.team-story-image {
    overflow: hidden;
    border-radius: 18px;
    box-shadow: 0 22px 54px rgba(8,12,30,.16);
    background: rgba(255,255,255,.6);
}

.team-story-image img,
.team-family-photo img,
.team-master-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.team-story-image-main {
    max-width: 100%;
    height: 520px;
}

.team-story-image-accent {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 42%;
    min-width: 220px;
    height: 270px;
    border: 8px solid var(--kehl-offwhite);
}

.team-family-section {
    padding-top: 0;
}

.team-family-photo {
    margin: 0;
    overflow: hidden;
    border-radius: 18px;
    background: var(--kehl-white);
    box-shadow: 0 14px 36px rgba(10,16,36,.08);
}

.team-family-photo img {
    height: 620px;
}

.team-family-photo figcaption {
    padding: 18px 22px 22px;
    color: var(--kehl-blue);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.team-master-card {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(220px, .8fr);
    gap: 28px;
    align-items: center;
    margin-top: 34px;
    padding: 28px;
    border-radius: 18px;
    background: var(--kehl-white);
    box-shadow: 0 14px 36px rgba(10,16,36,.08);
}


.team-master-card.is-text-only {
    grid-template-columns: 1fr;
}
.team-master-copy h3 {
    margin: 8px 0 14px;
    font-size: clamp(28px, 3vw, 38px);
}

.team-master-copy p:last-of-type {
    margin-bottom: 0;
}

.team-master-image {
    overflow: hidden;
    min-height: 280px;
    border-radius: 14px;
    background: #e7e2db;
}

.team-career-section {
    padding-top: 0;
}

.team-career-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    padding: 42px 48px;
    border-radius: 18px;
    color: var(--kehl-offwhite);
    background:
        linear-gradient(rgba(255,255,255,.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.03) 1px, transparent 1px),
        var(--kehl-blue);
    background-size: 42px 42px;
}

.team-career-copy h2 {
    margin: 6px 0 10px;
    color: var(--kehl-offwhite);
}

.team-career-copy p:last-of-type {
    max-width: 680px;
    margin: 0;
    color: rgba(244,241,235,.78);
}

@media (max-width: 1100px) {
    .team-story-grid,
    .team-family-grid {
        grid-template-columns: 1fr;
        gap: 36px;
    }

    .team-story-media {
        min-height: 0;
        padding-left: 0;
        padding-bottom: 0;
    }

    .team-story-image-main {
        height: 440px;
    }

    .team-story-image-accent {
        position: static;
        width: 56%;
        height: 240px;
        margin-top: -70px;
        margin-left: auto;
    }

    .team-family-photo img {
        height: 500px;
    }

    .team-master-card {
        grid-template-columns: 1fr;
    }

    .team-career-card {
        align-items: flex-start;
        flex-direction: column;
        padding: 36px;
    }
}

@media (max-width: 800px) {
    .team-story-section {
        padding-top: 72px;
    }

    .team-story-copy > p:not(.eyebrow),
    .team-family-copy > p:not(.eyebrow) {
        font-size: 17px;
    }

    .team-story-image-main {
        height: 340px;
    }

    .team-story-image-accent {
        width: 72%;
        min-width: 0;
        height: 200px;
        margin-top: -56px;
        border-width: 6px;
    }

    .team-family-photo img {
        height: 360px;
    }

    .team-master-card,
    .team-career-card {
        padding: 26px;
    }
}

/* Version 1.2.50: Kontaktseite ohne Hero, editorialer Formularaufbau */
.contact-header-backdrop {
    height: 118px;
    background: var(--kehl-blue);
}

.contact-page-main .contact-page-section {
    padding-top: 86px;
    padding-bottom: 100px;
    background: var(--kehl-offwhite);
}

.contact-page-main .contact-page-grid {
    grid-template-columns: minmax(320px, .76fr) minmax(0, 1.24fr);
    gap: 72px;
    align-items: start;
}

.contact-page-main .contact-person-image {
    min-height: 0;
    margin-bottom: 30px;
    background: transparent;
    border-radius: 0 !important;
}

.contact-page-main .contact-person-image img {
    width: 100%;
    height: auto;
    min-height: 0;
    aspect-ratio: 4 / 5;
    object-fit: cover;
    object-position: center top;
    border-radius: 0 !important;
}

.contact-form-column {
    min-width: 0;
}

.contact-form-intro {
    margin-bottom: 34px;
}

.contact-form-intro h1 {
    max-width: 820px;
    margin: 4px 0 18px;
    color: var(--kehl-charcoal);
    font-size: clamp(46px, 5.2vw, 78px);
    line-height: .98;
    letter-spacing: -.045em;
}

.contact-form-intro .contact-intro-text {
    max-width: 760px;
    margin: 0;
    color: rgba(21,24,33,.72);
    font-size: 18px;
    line-height: 1.7;
}

.contact-page-main .contact-form-wrap.contact-form-editorial {
    padding: 34px 38px 38px;
    border: 1px solid rgba(21,24,33,.55);
    border-radius: 0;
    background: transparent;
}

.contact-page-main .kehl-contact-form {
    gap: 26px;
}

.contact-page-main .kehl-contact-form .form-row {
    gap: 28px;
}

.contact-page-main .kehl-contact-form label > span {
    margin-bottom: 8px;
    color: var(--kehl-charcoal);
    font-size: 13px;
    font-weight: 700;
}

.contact-page-main .kehl-contact-form input:not([type="checkbox"]),
.contact-page-main .kehl-contact-form select,
.contact-page-main .kehl-contact-form textarea {
    padding: 13px 0 12px;
    border: 0;
    border-bottom: 1px solid rgba(21,24,33,.62);
    border-radius: 0;
    color: var(--kehl-charcoal);
    background: transparent;
    box-shadow: none;
}

.contact-page-main .kehl-contact-form textarea {
    min-height: 150px;
    resize: vertical;
}

.contact-page-main .kehl-contact-form input:focus,
.contact-page-main .kehl-contact-form select:focus,
.contact-page-main .kehl-contact-form textarea:focus {
    border-color: var(--kehl-blue);
    box-shadow: none;
}

.contact-page-main .privacy-check {
    padding-top: 4px;
}

.contact-page-main .kehl-contact-form .button-blue {
    width: 100%;
    min-height: 56px;
}

@media (max-width: 1099px) {
    .contact-page-main .contact-page-grid {
        grid-template-columns: 1fr;
        gap: 54px;
    }

    .contact-page-main .contact-details {
        display: grid;
        grid-template-columns: minmax(260px, .8fr) minmax(0, 1fr);
        column-gap: 38px;
        align-items: start;
    }

    .contact-page-main .contact-person-image {
        grid-row: 1 / span 5;
        margin-bottom: 0;
    }
}

@media (max-width: 800px) {
    .contact-header-backdrop {
        height: 104px;
    }

    .contact-page-main .contact-page-section {
        padding-top: 58px;
        padding-bottom: 72px;
    }

    .contact-page-main .contact-form-column {
        order: 1;
    }

    .contact-page-main .contact-details {
        display: block;
        order: 2;
    }

    .contact-page-main .contact-person-image {
        margin-bottom: 28px;
    }

    .contact-form-intro h1 {
        font-size: clamp(40px, 12vw, 58px);
    }

    .contact-page-main .contact-form-wrap.contact-form-editorial {
        padding: 26px 22px 28px;
    }
}


/* 1.2.51: Startseite "Projekte und Lösungen" sauber untereinander, kein Versatz, mobilfreundlich */
.home-service-showcase-editorial {
    display: flex !important;
    flex-direction: column !important;
    gap: 20px !important;
}

.home-service-showcase-editorial .home-service-showcase-card,
.home-service-showcase-editorial .home-service-showcase-card.is-reverse {
    display: grid !important;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr) !important;
    align-items: center !important;
    gap: 40px !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

.home-service-showcase-editorial .home-service-showcase-card.is-reverse .home-service-feature-media,
.home-service-showcase-editorial .home-service-showcase-card.is-reverse .home-service-showcase-copy {
    order: initial !important;
}

.home-service-showcase-editorial .home-service-feature-image {
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 16 / 10;
    border-radius: 14px;
}

.home-service-showcase-editorial .home-service-feature-image img {
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    object-fit: cover;
}

.home-service-showcase-editorial .home-service-showcase-copy,
.home-service-showcase-editorial .home-service-showcase-card.is-reverse .home-service-showcase-copy {
    height: auto !important;
    min-height: 0 !important;
    padding: 0 !important;
    justify-content: center;
}

.home-service-showcase-editorial .home-service-showcase-copy strong {
    font-size: clamp(30px, 3.4vw, 48px) !important;
    line-height: 1.05 !important;
}

@media (max-width: 900px) {
    .home-service-showcase-editorial {
        gap: 40px !important;
    }

    .home-service-showcase-editorial .home-service-showcase-card,
    .home-service-showcase-editorial .home-service-showcase-card.is-reverse {
        grid-template-columns: 1fr !important;
        gap: 18px !important;
    }

    .home-service-showcase-editorial .home-service-feature-image {
        aspect-ratio: 4 / 3;
    }

    .home-service-showcase-editorial .home-service-showcase-copy strong {
        font-size: clamp(26px, 7vw, 36px) !important;
    }

    .home-service-showcase-editorial .home-service-showcase-copy > span {
        max-width: none !important;
    }
}

@media (max-width: 640px) {
    .home-services-editorial .kehl-container {
        width: calc(100vw - 32px) !important;
    }
}


/* 1.2.52: Wechsel Bild-Text / Text-Bild auf Desktop, mobil immer Bild oben */
@media (min-width: 901px) {
    .home-service-showcase-editorial .home-service-showcase-card.is-reverse {
        grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr) !important;
    }

    .home-service-showcase-editorial .home-service-showcase-card.is-reverse .home-service-feature-media {
        order: 2 !important;
    }

    .home-service-showcase-editorial .home-service-showcase-card.is-reverse .home-service-showcase-copy {
        order: 1 !important;
    }
}


/* 1.2.53: Spalten exakt 50/50, Bilder im Wechsel ohne Überlappung */
@media (min-width: 901px) {
    .home-service-showcase-editorial .home-service-showcase-card,
    .home-service-showcase-editorial .home-service-showcase-card.is-reverse {
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
        column-gap: 48px !important;
    }
}


/* 1.2.54: Fixierter Header behält beim Scrollen dieselbe Höhe, Logo bleibt gleich groß */
.site-header .header-inner,
.site-header.is-scrolled .header-inner,
body.home .site-header .header-inner,
body.home .site-header.is-scrolled .header-inner {
    min-height:118px !important;
    padding:18px 0 !important;
}

.site-header .site-brand,
.site-header.is-scrolled .site-brand,
body.home .site-header .site-brand,
body.home .site-header.is-scrolled .site-brand {
    width:260px !important;
    transform:translateY(6px) !important;
}

.site-header .nav-toggle,
.site-header.is-scrolled .nav-toggle {
    height:52px !important;
}

.site-header,
.site-header.is-scrolled {
    border-top-width:0 !important;
}

@media (max-width:700px) {
    .site-header .header-inner,
    .site-header.is-scrolled .header-inner,
    body.home .site-header .header-inner,
    body.home .site-header.is-scrolled .header-inner {
        min-height:92px !important;
        padding:12px 0 !important;
    }

    .site-header .site-brand,
    .site-header.is-scrolled .site-brand,
    body.home .site-header .site-brand,
    body.home .site-header.is-scrolled .site-brand {
        width:190px !important;
        transform:translateY(3px) !important;
    }

    .site-header .nav-toggle,
    .site-header.is-scrolled .nav-toggle {
        height:46px !important;
    }
}


/* 1.2.55: Off-Canvas-Menü mit Logo, kleinere und ruhigere Menüpunkte */
.kehl-offcanvas-nav,
body.home .kehl-offcanvas-nav {
    width: min(520px, 92vw) !important;
    max-width: 520px !important;
    padding: 28px 48px 40px !important;
}

.kehl-offcanvas-head {
    display: flex !important;
    align-items: center !important;
    min-height: 72px !important;
    padding: 0 0 24px !important;
    margin: 0 0 12px !important;
    border-bottom: 1px solid rgba(255,255,255,.12) !important;
}

.kehl-offcanvas-logo {
    display: block !important;
    width: 170px !important;
    line-height: 0 !important;
}

.kehl-offcanvas-logo img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
}

.kehl-offcanvas-nav .kehl-menu > li {
    border-bottom: 1px solid rgba(255,255,255,.08) !important;
}

.kehl-offcanvas-nav .kehl-menu > li > a,
.kehl-offcanvas-nav .kehl-parent-link > a,
body.home .kehl-offcanvas-nav .kehl-menu > li > a {
    display: block !important;
    padding: 15px 0 !important;
    color: rgba(255,255,255,.82) !important;
    font-size: 19px !important;
    font-weight: 500 !important;
    line-height: 1.3 !important;
    letter-spacing: 0 !important;
    text-decoration: none !important;
    border: 0 !important;
    box-shadow: none !important;
    transition: color .2s ease, padding-left .2s ease !important;
}

.kehl-offcanvas-nav .kehl-menu > li > a::after,
.kehl-offcanvas-nav .kehl-parent-link > a::after,
body.home .kehl-offcanvas-nav .kehl-menu > li > a::after {
    display: none !important;
    content: none !important;
}

.kehl-offcanvas-nav .kehl-menu > li > a:hover,
.kehl-offcanvas-nav .kehl-parent-link > a:hover {
    color: #fff !important;
    padding-left: 6px !important;
}

.kehl-offcanvas-nav .kehl-menu > li.current-menu-item > a,
.kehl-offcanvas-nav .kehl-menu > li.current-menu-item .kehl-parent-link > a,
body.home .kehl-offcanvas-nav .kehl-menu > li.current-menu-item > a {
    color: #fff !important;
    font-weight: 700 !important;
}

.kehl-offcanvas-nav .kehl-menu > li.current-menu-item {
    box-shadow: inset 3px 0 0 #fff !important;
}

.kehl-offcanvas-nav .kehl-menu > li.current-menu-item > a,
.kehl-offcanvas-nav .kehl-menu > li.current-menu-item .kehl-parent-link > a {
    padding-left: 16px !important;
}

.kehl-offcanvas-nav .kehl-submenu-toggle {
    flex: 0 0 32px !important;
    width: 32px !important;
    height: 32px !important;
    border-color: rgba(255,255,255,.2) !important;
}

.kehl-offcanvas-nav .mobile-nav-actions {
    padding-top: 28px !important;
    gap: 8px !important;
}

.kehl-offcanvas-nav .mobile-nav-project {
    min-height: 46px !important;
    font-size: 13px !important;
}

.kehl-offcanvas-nav .mobile-nav-phone,
.kehl-offcanvas-nav .mobile-nav-email {
    min-height: 42px !important;
    font-size: 13px !important;
}

@media (max-width: 700px) {
    .kehl-offcanvas-nav,
    body.home .kehl-offcanvas-nav {
        width: 100vw !important;
        max-width: none !important;
        padding: 18px 24px 28px !important;
    }

    .kehl-offcanvas-head {
        min-height: 60px !important;
        padding-bottom: 18px !important;
    }

    .kehl-offcanvas-logo {
        width: 140px !important;
    }

    .kehl-offcanvas-nav .kehl-menu > li > a,
    .kehl-offcanvas-nav .kehl-parent-link > a,
    body.home .kehl-offcanvas-nav .kehl-menu > li > a {
        font-size: 18px !important;
        padding: 14px 0 !important;
    }

    .kehl-offcanvas-nav .mobile-nav-actions {
        grid-template-columns: 1fr !important;
    }
}

/* 1.2.55 Ergänzung: Zeilenhöhen und Kontakt-Buttons im Off-Canvas vereinheitlichen */
.kehl-offcanvas-nav .kehl-parent-link,
.kehl-offcanvas-nav .kehl-parent-link > a,
.kehl-offcanvas-nav .kehl-menu > li > a {
    min-height: 0 !important;
}

body .kehl-offcanvas-nav .kehl-menu > li.current-menu-item > a,
body .kehl-offcanvas-nav .kehl-menu > li.current-menu-item .kehl-parent-link > a {
    padding-left: 16px !important;
}

.kehl-offcanvas-nav .mobile-nav-actions {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding-bottom: 0 !important;
}

.kehl-offcanvas-nav .mobile-nav-project,
.kehl-offcanvas-nav .mobile-nav-phone,
.kehl-offcanvas-nav .mobile-nav-email {
    border-radius: 0 !important;
}

.kehl-offcanvas-nav .mobile-nav-phone,
.kehl-offcanvas-nav .mobile-nav-email {
    padding: 0 14px !important;
    background: transparent !important;
    color: #fff !important;
    border: 1px solid rgba(255,255,255,.18) !important;
}

.kehl-offcanvas-nav .kehl-submenu-toggle {
    color: #fff !important;
}

.kehl-offcanvas-nav .mobile-nav-phone,
.kehl-offcanvas-nav .mobile-nav-email {
    justify-content: flex-start !important;
    font-weight: 400 !important;
    letter-spacing: 0 !important;
}


/* 1.2.56: Seiten-Hero neu: Abstand zum Header, mehr Höhe, Bild sichtbar, ruhigere Typografie */
.page-hero-blue {
    display: flex !important;
    align-items: flex-end !important;
    min-height: 580px !important;
    padding: 190px 0 72px !important;
    box-sizing: border-box !important;
}

.page-hero-blue {
    flex-direction: column !important;
    justify-content: flex-end !important;
    align-items: stretch !important;
}

.page-hero.has-image {
    background-size: cover !important;
    background-position: center 40% !important;
}

.page-hero.has-image::before {
    display: none !important;
}

.page-hero.has-image::after {
    background:
        linear-gradient(180deg, rgba(5,12,52,.55) 0%, rgba(5,12,52,0) 34%),
        linear-gradient(90deg, rgba(7,21,102,.94) 0%, rgba(7,21,102,.80) 34%, rgba(7,21,102,.38) 64%, rgba(7,21,102,.12) 100%) !important;
}

.page-hero-blue .page-hero-inner > * {
    max-width: 680px !important;
}

.page-hero-blue .eyebrow {
    margin: 0 0 16px !important;
    color: rgba(255,255,255,.72) !important;
}

.page-hero-blue h1 {
    margin: 0 0 22px !important;
    font-size: clamp(40px, 4.8vw, 66px) !important;
    line-height: 1.02 !important;
    letter-spacing: -.035em !important;
}

.page-hero-blue .page-lead {
    max-width: 600px !important;
    margin: 0 !important;
    color: rgba(255,255,255,.86) !important;
    font-size: 18px !important;
    line-height: 1.65 !important;
}

.page-hero-blue .project-hero-tags {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    margin: 28px 0 0 !important;
}

.page-hero-blue .project-hero-tags span {
    display: inline-flex !important;
    align-items: center !important;
    min-height: 34px !important;
    padding: 0 14px !important;
    border: 1px solid rgba(255,255,255,.34) !important;
    background: rgba(255,255,255,.06) !important;
    color: #fff !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    letter-spacing: .14em !important;
    text-transform: uppercase !important;
}

@media (max-width: 900px) {
    .page-hero-blue {
        min-height: 500px !important;
        padding: 160px 0 56px !important;
    }

    .page-hero.has-image::after {
        background:
            linear-gradient(180deg, rgba(5,12,52,.6) 0%, rgba(5,12,52,0) 30%),
            linear-gradient(90deg, rgba(7,21,102,.92) 0%, rgba(7,21,102,.72) 60%, rgba(7,21,102,.45) 100%) !important;
    }
}

@media (max-width: 700px) {
    .page-hero-blue {
        min-height: 460px !important;
        padding: 136px 0 44px !important;
    }

    .page-hero-blue h1 {
        margin-bottom: 16px !important;
        font-size: clamp(34px, 10vw, 44px) !important;
    }

    .page-hero-blue .page-lead {
        font-size: 16px !important;
        line-height: 1.6 !important;
    }

    .page-hero-blue .project-hero-tags {
        margin-top: 22px !important;
    }

    .page-hero-blue .project-hero-tags span {
        min-height: 30px !important;
        padding: 0 10px !important;
        font-size: 10px !important;
    }
}


/* 1.2.57: Impressum und Datenschutz im Off-Canvas-Menü */
.kehl-offcanvas-legal {
    display: flex;
    gap: 24px;
    margin-top: 28px;
    padding-top: 20px;
    border-top: 1px solid rgba(255,255,255,.08);
}

.kehl-offcanvas-legal a {
    color: rgba(255,255,255,.6) !important;
    font-size: 13px;
    letter-spacing: .04em;
    text-decoration: none;
    transition: color .2s ease;
}

.kehl-offcanvas-legal a:hover,
.kehl-offcanvas-legal a:focus-visible {
    color: #fff !important;
}


/* 1.2.58: Nach-oben-Button im CI mit Scroll-Fortschritt */
.kehl-to-top {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 9990;
    width: 52px;
    height: 52px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--kehl-blue, #0f2281);
    color: #fff;
    cursor: pointer;
    box-shadow: 0 10px 28px rgba(6,15,64,.28);
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px);
    transition: opacity .25s ease, visibility .25s ease, transform .25s ease, background .2s ease;
}

.kehl-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.kehl-to-top:hover {
    background: #0a1a66;
}

.kehl-to-top:focus-visible {
    outline: 2px solid #fff;
    outline-offset: 3px;
}

.kehl-to-top-ring {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    transform: rotate(-90deg);
}

.kehl-to-top-ring circle {
    fill: none;
    stroke: rgba(255,255,255,.9);
    stroke-width: 2;
    transition: stroke-dashoffset .1s linear;
}

.kehl-to-top-arrow {
    position: relative;
    width: 20px;
    height: 20px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform .2s ease;
}

.kehl-to-top:hover .kehl-to-top-arrow {
    transform: translateY(-2px);
}

body.nav-open .kehl-to-top {
    opacity: 0;
    visibility: hidden;
}

@media (max-width: 700px) {
    .kehl-to-top {
        right: 16px;
        bottom: 16px;
        width: 46px;
        height: 46px;
    }

    .kehl-to-top-arrow {
        width: 18px;
        height: 18px;
    }
}


/* 1.2.59: Header ohne Zucken: immer fixiert, beim Scrollen wechselt nur der Hintergrund */
.site-header,
body.home .site-header,
body.admin-bar.home .site-header,
.site-header.is-scrolled,
body.home .site-header.is-scrolled,
body.admin-bar.home .site-header.is-scrolled {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    transform: none !important;
    will-change: background-color;
    transition: background-color .3s ease, box-shadow .3s ease !important;
}

.site-header,
body.home .site-header {
    background: rgba(9,22,95,0) !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
}

.site-header.is-scrolled,
body.home .site-header.is-scrolled,
body.admin-bar.home .site-header.is-scrolled {
    background: rgba(9,22,95,.96) !important;
    box-shadow: 0 12px 34px rgba(6,15,64,.18) !important;
}

body.admin-bar .site-header,
body.admin-bar .site-header.is-scrolled,
body.admin-bar.home .site-header,
body.admin-bar.home .site-header.is-scrolled {
    top: 32px !important;
}

@media (max-width: 782px) {
    body.admin-bar .site-header,
    body.admin-bar .site-header.is-scrolled,
    body.admin-bar.home .site-header,
    body.admin-bar.home .site-header.is-scrolled {
        top: 46px !important;
    }
}

.site-header .header-inner,
.site-header .site-brand,
.site-header .site-brand img,
.site-header .nav-toggle,
.site-header .nav-toggle-label {
    transition: none !important;
}


/* 1.2.63: normale Headerleiste auf Impressum und Datenschutz */
body.kehl-legal-page .site-header,
body.kehl-legal-page .site-header.is-scrolled {
    background: #09165f !important;
    box-shadow: 0 10px 30px rgba(6,15,64,.14) !important;
}

body.kehl-legal-page .legal-page-content-section {
    padding-top: 190px;
    background: var(--kehl-offwhite);
}

body.kehl-legal-page .legal-page-content-section .entry-content {
    padding-top: 0;
}

@media (max-width: 700px) {
    body.kehl-legal-page .legal-page-content-section {
        padding-top: 145px;
    }
}

/* Version 1.2.66: Social icons hover contrast */
.site-footer .footer-social-link:hover,
.site-footer .footer-social-link:focus-visible {
    color: var(--kehl-blue);
    background: var(--kehl-white);
    border-color: var(--kehl-white);
}

.site-footer .footer-social-link:hover svg,
.site-footer .footer-social-link:focus-visible svg {
    color: var(--kehl-blue);
    stroke: var(--kehl-blue);
}

.site-footer .footer-social-link:last-child:hover svg,
.site-footer .footer-social-link:last-child:focus-visible svg {
    fill: var(--kehl-blue);
    stroke: none;
}
/* Version 1.2.69: Karriereseite Hero neu aufgebaut */
.jobs-page .site-header,
.jobs-page .site-header.is-scrolled {
    background: rgba(7, 19, 83, 0.92);
}

.jobs-hero-alt {
    position: relative;
    padding-top: 128px;
    padding-bottom: 56px;
    background: var(--kehl-offwhite);
    overflow: hidden;
}

.jobs-hero-shell {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.15fr);
    align-items: stretch;
    gap: 0;
    background: transparent;
}

.jobs-hero-copy {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 620px;
    padding: 72px 64px 110px;
    background: var(--kehl-blue);
    color: var(--kehl-white);
    clip-path: polygon(0 0, 100% 0, 100% 82%, 86% 100%, 0 100%);
}

.jobs-hero-kicker,
.jobs-hero-role {
    margin: 0;
    font-size: 14px;
    line-height: 1.2;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.jobs-hero-kicker {
    margin-bottom: 14px;
    color: rgba(255,255,255,.72);
}

.jobs-hero-role {
    margin-bottom: 18px;
    color: rgba(255,255,255,.94);
    font-weight: 700;
}

.jobs-hero-copy h1 {
    max-width: 480px;
    margin: 0 0 22px;
    color: var(--kehl-white);
    font-size: clamp(58px, 6.2vw, 92px);
    line-height: .94;
    letter-spacing: -.055em;
}

.jobs-hero-copy .page-lead {
    max-width: 540px;
    margin: 0 0 30px;
    color: rgba(255,255,255,.92);
    font-size: 19px;
    line-height: 1.6;
}

.jobs-hero-copy .button {
    width: fit-content;
    min-width: 190px;
}

.jobs-hero-media {
    position: relative;
    min-height: 620px;
}

.jobs-hero-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center center;
    filter: grayscale(1);
}

@media (max-width: 1099px) {
    .jobs-hero-copy {
        min-height: 560px;
        padding: 64px 48px 96px;
    }

    .jobs-hero-media {
        min-height: 560px;
    }
}

@media (max-width: 860px) {
    .jobs-hero-alt {
        padding-top: 108px;
        padding-bottom: 34px;
    }

    .jobs-hero-shell {
        grid-template-columns: 1fr;
    }

    .jobs-hero-copy {
        order: 2;
        min-height: 0;
        padding: 36px 26px 44px;
        clip-path: none;
    }

    .jobs-hero-copy h1 {
        font-size: clamp(42px, 14vw, 68px);
    }

    .jobs-hero-copy .page-lead {
        font-size: 17px;
    }

    .jobs-hero-media {
        order: 1;
        min-height: 320px;
    }
}


/* Version 1.2.70: Karriereseite Hero an Referenzlayout angepasst */
.jobs-page .site-header,
.jobs-page .site-header.is-scrolled {
    background: rgba(7, 19, 83, 0.92);
}

.jobs-hero-stage {
    position: relative;
    overflow: hidden;
    background: var(--kehl-offwhite);
}

.jobs-hero-image {
    position: absolute;
    inset: 0;
}

.jobs-hero-image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center center;
    filter: grayscale(1);
}

.jobs-hero-shade {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(7, 19, 83, 0.92) 0%, rgba(7, 19, 83, 0.82) 24%, rgba(7, 19, 83, 0.48) 46%, rgba(7, 19, 83, 0.08) 68%, rgba(7, 19, 83, 0) 100%);
}

.jobs-hero-inner {
    position: relative;
    z-index: 2;
    min-height: 620px;
    padding-top: 156px;
    padding-bottom: 126px;
}

.jobs-hero-panel {
    max-width: 430px;
    color: var(--kehl-white);
}

.jobs-hero-kicker {
    margin: 0 0 18px;
    color: rgba(255,255,255,.9);
    font-size: 14px;
    line-height: 1.2;
    letter-spacing: .18em;
    text-transform: uppercase;
}

.jobs-hero-panel h1 {
    margin: 0;
    color: var(--kehl-white);
    font-size: clamp(58px, 8vw, 96px);
    line-height: .9;
    letter-spacing: -.05em;
    text-transform: uppercase;
}

.jobs-hero-accent {
    display: block;
    width: 132px;
    height: 4px;
    margin: 18px 0 16px;
    background: #2452ff;
    border-radius: 999px;
}

.jobs-hero-role {
    margin: 0 0 26px;
    color: var(--kehl-white);
    font-size: clamp(28px, 3.2vw, 44px);
    line-height: 1.05;
    font-weight: 700;
}

.jobs-hero-panel .button {
    min-width: 210px;
}

.jobs-hero-intro-card {
    position: absolute;
    left: clamp(20px, 3vw, 42px);
    bottom: 24px;
    width: min(620px, calc(100% - 40px));
    padding: 34px 40px 46px;
    background: rgba(248, 246, 241, 0.98);
    color: var(--kehl-text);
    clip-path: polygon(0 0, 100% 0, 92% 100%, 0 100%);
    box-shadow: 0 18px 48px rgba(7, 19, 83, 0.16);
}

.jobs-hero-intro-card p {
    margin: 0;
    max-width: 520px;
    font-size: 18px;
    line-height: 1.75;
}

.jobs-overview-section {
    padding-top: 88px;
}

@media (max-width: 1200px) {
    .jobs-hero-inner {
        min-height: 580px;
        padding-top: 140px;
        padding-bottom: 132px;
    }

    .jobs-hero-panel h1 {
        font-size: clamp(52px, 7vw, 84px);
    }

    .jobs-hero-role {
        font-size: clamp(24px, 3vw, 38px);
    }
}

@media (max-width: 860px) {
    .jobs-hero-inner {
        min-height: 0;
        padding-top: 118px;
        padding-bottom: 28px;
    }

    .jobs-hero-shade {
        background: linear-gradient(180deg, rgba(7, 19, 83, 0.78) 0%, rgba(7, 19, 83, 0.6) 38%, rgba(7, 19, 83, 0.25) 100%);
    }

    .jobs-hero-panel {
        max-width: 100%;
        padding: 24px 24px 28px;
        background: rgba(7, 19, 83, 0.78);
        backdrop-filter: blur(2px);
    }

    .jobs-hero-panel h1 {
        font-size: clamp(40px, 16vw, 66px);
    }

    .jobs-hero-role {
        font-size: clamp(24px, 8vw, 34px);
        margin-bottom: 22px;
    }

    .jobs-hero-accent {
        width: 110px;
        margin: 16px 0 14px;
    }

    .jobs-hero-intro-card {
        position: relative;
        left: auto;
        bottom: auto;
        width: 100%;
        margin-top: 22px;
        padding: 22px 24px 28px;
        clip-path: none;
    }

    .jobs-hero-intro-card p {
        font-size: 17px;
        line-height: 1.65;
    }

    .jobs-overview-section {
        padding-top: 52px;
    }
}


/* Version 1.2.71: Karriereseite Hero 1:1 näher an image5.tiff */
.jobs-page .jobs-hero-stage {
    position: relative;
    overflow: hidden;
    min-height: 760px;
    background: #d9d9d9;
}

.jobs-page .jobs-hero-image,
.jobs-page .jobs-hero-shade,
.jobs-page .jobs-hero-bottom {
    position: absolute;
    inset: 0;
}

.jobs-page .jobs-hero-image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center center;
    filter: grayscale(1);
}

.jobs-page .jobs-hero-shade {
    background: linear-gradient(90deg, rgba(4, 19, 78, 0.96) 0%, rgba(4, 19, 78, 0.92) 22%, rgba(4, 19, 78, 0.72) 36%, rgba(4, 19, 78, 0.30) 52%, rgba(4, 19, 78, 0.0) 68%);
}

.jobs-page .jobs-hero-inner {
    position: relative;
    z-index: 2;
    padding-top: 150px;
    padding-bottom: 210px;
}

.jobs-page .jobs-hero-copy {
    max-width: 520px;
    color: #fff;
}

.jobs-page .jobs-hero-kicker {
    margin: 0 0 18px;
    color: rgba(255,255,255,.95);
    font-size: 15px;
    line-height: 1.2;
    letter-spacing: .16em;
    text-transform: uppercase;
}

.jobs-page .jobs-hero-copy h1 {
    margin: 0;
    color: #fff;
    font-size: clamp(72px, 8vw, 104px);
    line-height: .9;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: -.04em;
}

.jobs-page .jobs-hero-accent {
    display: block;
    width: 156px;
    height: 6px;
    margin: 18px 0 18px;
    background: #1948ff;
    border-radius: 999px;
    transform: skewX(-18deg);
}

.jobs-page .jobs-hero-role {
    margin: 0 0 26px;
    color: #fff;
    font-size: clamp(32px, 3vw, 46px);
    line-height: 1.08;
    font-weight: 700;
}

.jobs-page .jobs-hero-copy .button {
    background: #1948ff;
    border-color: #1948ff;
    color: #fff;
    min-width: 176px;
}

.jobs-page .jobs-hero-copy .button:hover,
.jobs-page .jobs-hero-copy .button:focus-visible {
    background: #1238c8;
    border-color: #1238c8;
    color: #fff;
}

.jobs-page .jobs-hero-bottom {
    top: auto;
    height: 138px;
    z-index: 2;
    display: flex;
    align-items: stretch;
}

.jobs-page .jobs-hero-bottom::before {
    content: '';
    position: absolute;
    inset: 0;
    background: #fff;
    clip-path: polygon(0 18px, 16% 18px, 34% 0, 100% 0, 100% 100%, 0 100%);
}

.jobs-page .jobs-hero-bottom-inner {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    height: 100%;
}

.jobs-page .jobs-hero-bottom p {
    margin: 0;
    max-width: 560px;
    color: #4b4b4b;
    font-size: 18px;
    line-height: 1.65;
}

.jobs-page .jobs-overview-section {
    padding-top: 70px;
}

@media (max-width: 1200px) {
    .jobs-page .jobs-hero-stage {
        min-height: 700px;
    }

    .jobs-page .jobs-hero-copy h1 {
        font-size: clamp(62px, 7vw, 90px);
    }

    .jobs-page .jobs-hero-role {
        font-size: clamp(28px, 3.2vw, 40px);
    }
}

@media (max-width: 860px) {
    .jobs-page .jobs-hero-stage {
        min-height: 0;
    }

    .jobs-page .jobs-hero-shade {
        background: linear-gradient(180deg, rgba(4, 19, 78, 0.88) 0%, rgba(4, 19, 78, 0.72) 45%, rgba(4, 19, 78, 0.3) 100%);
    }

    .jobs-page .jobs-hero-inner {
        padding-top: 118px;
        padding-bottom: 220px;
    }

    .jobs-page .jobs-hero-copy {
        max-width: 100%;
    }

    .jobs-page .jobs-hero-copy h1 {
        font-size: clamp(52px, 15vw, 78px);
    }

    .jobs-page .jobs-hero-role {
        font-size: clamp(24px, 7vw, 34px);
    }

    .jobs-page .jobs-hero-bottom {
        height: auto;
        min-height: 154px;
    }

    .jobs-page .jobs-hero-bottom::before {
        clip-path: polygon(0 26px, 34% 14px, 100% 0, 100% 100%, 0 100%);
    }

    .jobs-page .jobs-hero-bottom-inner {
        align-items: flex-start;
        padding-top: 42px;
        padding-bottom: 28px;
    }

    .jobs-page .jobs-hero-bottom p {
        font-size: 16px;
        line-height: 1.6;
        max-width: 100%;
    }

    .jobs-page .jobs-overview-section {
        padding-top: 48px;
    }
}


/* Version 1.2.72: Karriere-Hero näher an image5.tiff */
.jobs-page .jobs-hero-stage {
    min-height: 720px;
}

.jobs-page .jobs-hero-inner {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 150px 5.8vw 205px;
}

.jobs-page .jobs-hero-copy {
    max-width: 500px;
    min-height: 0;
    padding: 0;
    background: transparent;
    clip-path: none;
    box-shadow: none;
}

.jobs-page .jobs-hero-shade {
    background: linear-gradient(90deg,
        rgba(4, 19, 78, .90) 0%,
        rgba(4, 19, 78, .76) 22%,
        rgba(4, 19, 78, .40) 40%,
        rgba(4, 19, 78, .10) 58%,
        rgba(4, 19, 78, 0) 74%);
}

.jobs-page .jobs-hero-copy h1 {
    max-width: 470px;
    font-size: clamp(68px, 6.8vw, 102px);
    line-height: .90;
}

.jobs-page .jobs-hero-role {
    font-size: clamp(28px, 2.25vw, 38px);
    letter-spacing: -.02em;
    text-transform: none;
}

.jobs-page .jobs-hero-accent {
    width: 150px;
    height: 5px;
    margin: 16px 0 16px;
}

.jobs-page .jobs-hero-copy .button {
    min-width: 178px;
    min-height: 48px;
    padding: 0 22px;
}

.jobs-page .jobs-hero-bottom {
    height: 132px;
}

.jobs-page .jobs-hero-bottom::before {
    clip-path: polygon(0 18px, 17% 18px, 39% 0, 100% 24px, 100% 100%, 0 100%);
}

.jobs-page .jobs-hero-bottom-inner {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 18px 5.8vw 0;
}

.jobs-page .jobs-hero-bottom p {
    max-width: 600px;
    font-size: 16px;
    line-height: 1.65;
}

@media (max-width: 1100px) {
    .jobs-page .jobs-hero-inner {
        padding-left: 5vw;
        padding-right: 5vw;
    }

    .jobs-page .jobs-hero-bottom-inner {
        padding-left: 5vw;
        padding-right: 5vw;
    }
}

@media (max-width: 860px) {
    .jobs-page .jobs-hero-stage {
        min-height: 0;
    }

    .jobs-page .jobs-hero-inner {
        padding: 116px 24px 210px;
    }

    .jobs-page .jobs-hero-copy {
        padding: 0;
        background: transparent;
        backdrop-filter: none;
    }

    .jobs-page .jobs-hero-copy h1 {
        font-size: clamp(48px, 15vw, 68px);
    }

    .jobs-page .jobs-hero-role {
        font-size: clamp(24px, 7vw, 32px);
    }

    .jobs-page .jobs-hero-bottom {
        min-height: 154px;
        height: auto;
    }

    .jobs-page .jobs-hero-bottom::before {
        clip-path: polygon(0 26px, 34% 14px, 100% 0, 100% 100%, 0 100%);
    }

    .jobs-page .jobs-hero-bottom-inner {
        padding: 40px 24px 24px;
    }
}


/* Version 1.2.73: Karriere-Hero ohne weißen Textbereich, schärferes Hintergrundbild */
.jobs-page .jobs-hero-stage {
    min-height: 720px;
}

.jobs-page .jobs-hero-image img {
    filter: grayscale(1);
    image-rendering: auto;
}

.jobs-page .jobs-hero-inner {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 150px 5.8vw 92px;
}

.jobs-page .jobs-hero-copy {
    max-width: 500px;
    min-height: 0;
    padding: 0;
    background: transparent;
    clip-path: none;
    box-shadow: none;
}

.jobs-page .jobs-hero-shade {
    background: linear-gradient(90deg,
        rgba(4, 19, 78, .90) 0%,
        rgba(4, 19, 78, .76) 22%,
        rgba(4, 19, 78, .40) 40%,
        rgba(4, 19, 78, .10) 58%,
        rgba(4, 19, 78, 0) 74%);
}

.jobs-page .jobs-hero-copy h1 {
    max-width: 470px;
    font-size: clamp(68px, 6.8vw, 102px);
    line-height: .90;
}

.jobs-page .jobs-hero-role {
    font-size: clamp(28px, 2.25vw, 38px);
    letter-spacing: -.02em;
    text-transform: none;
}

.jobs-page .jobs-hero-accent {
    width: 150px;
    height: 5px;
    margin: 16px 0 16px;
}

.jobs-page .jobs-hero-copy .button {
    min-width: 178px;
    min-height: 48px;
    padding: 0 22px;
}

.jobs-page .jobs-overview-section {
    padding-top: 56px;
}

@media (max-width: 1100px) {
    .jobs-page .jobs-hero-inner {
        padding-left: 5vw;
        padding-right: 5vw;
    }
}

@media (max-width: 860px) {
    .jobs-page .jobs-hero-stage {
        min-height: 0;
    }

    .jobs-page .jobs-hero-inner {
        padding: 116px 24px 56px;
    }

    .jobs-page .jobs-hero-copy {
        padding: 0;
        background: transparent;
        backdrop-filter: none;
    }

    .jobs-page .jobs-hero-copy h1 {
        font-size: clamp(48px, 15vw, 68px);
    }

    .jobs-page .jobs-hero-role {
        font-size: clamp(24px, 7vw, 32px);
    }

    .jobs-page .jobs-overview-section {
        padding-top: 40px;
    }
}

/* Version 1.2.74: Hero-Inhalt auf Containerbreite, Schräge unten, Originalfoto nachgeschärft */
.jobs-page .jobs-hero-stage {
    position: relative;
    min-height: 720px;
    overflow: hidden;
}

.jobs-page .jobs-hero-stage::after {
    content: "";
    position: absolute;
    z-index: 3;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 58px;
    background: var(--kehl-offwhite);
    clip-path: polygon(0 34%, 17% 34%, 39% 0, 100% 56%, 100% 100%, 0 100%);
    pointer-events: none;
}

.jobs-page .jobs-hero-inner {
    width: var(--kehl-container);
    max-width: none;
    margin: 0 auto;
    padding: 150px 0 118px;
}

.jobs-page .jobs-hero-image img {
    object-position: center center;
    filter: grayscale(1);
    image-rendering: auto;
}

.jobs-page .jobs-overview-section {
    padding-top: 46px;
}

@media (max-width: 1100px) {
    .jobs-page .jobs-hero-inner {
        width: var(--kehl-container);
        margin: 0 auto;
        padding-left: 0;
        padding-right: 0;
    }
}

@media (max-width: 860px) {
    .jobs-page .jobs-hero-stage {
        min-height: 0;
    }

    .jobs-page .jobs-hero-stage::after {
        height: 38px;
        clip-path: polygon(0 44%, 24% 44%, 47% 0, 100% 58%, 100% 100%, 0 100%);
    }

    .jobs-page .jobs-hero-inner {
        width: var(--kehl-container);
        margin: 0 auto;
        padding: 116px 0 78px;
    }

    .jobs-page .jobs-overview-section {
        padding-top: 34px;
    }
}

/* Version 1.2.75: Projekte mit seitlichem Dropdown und quadratischen Bildern */
.references-page .reference-gallery-layout {
    display: grid;
    grid-template-columns: 210px minmax(0, 1fr);
    gap: 34px;
    align-items: start;
}

.references-page .reference-filter-panel {
    position: sticky;
    top: 110px;
}

.references-page .reference-filter-panel label {
    display: block;
    margin: 0 0 10px;
    color: var(--kehl-blue);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.references-page .reference-filter-select {
    width: 100%;
    min-height: 48px;
    padding: 0 44px 0 14px;
    border: 1px solid rgba(15,34,129,.22);
    border-radius: 0;
    background-color: #fff;
    color: var(--kehl-blue);
    font: inherit;
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
}

.references-page .reference-gallery {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 16px !important;
    columns: initial !important;
    column-gap: 0 !important;
}

.references-page .reference-gallery > a {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    aspect-ratio: 1 / 1;
    overflow: hidden !important;
    border-radius: 0 !important;
    background: #e7e7e7 !important;
    break-inside: auto !important;
}

.references-page .reference-gallery > a img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    border-radius: 0 !important;
}

.references-page .reference-gallery > a:hover img {
    transform: scale(1.02);
}

.references-page .reference-gallery > a.reference-gallery-item.is-filtered-out {
    display: none !important;
}

@media (max-width: 980px) {
    .references-page .reference-gallery-layout {
        grid-template-columns: 180px minmax(0, 1fr);
        gap: 24px;
    }

    .references-page .reference-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 700px) {
    .references-page .reference-gallery-layout {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .references-page .reference-filter-panel {
        position: static;
    }

    .references-page .reference-filter-select {
        max-width: 100%;
    }

    .references-page .reference-gallery {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
    }
}

/* Version 1.2.76: Projekte-Galerie mittig mit echter Filter-Seitenleiste */
.references-page .reference-gallery-layout {
    display: grid;
    grid-template-columns: 180px minmax(0, 940px) 180px;
    column-gap: 28px;
    align-items: start;
    justify-content: center;
    width: 100%;
    margin: 0 auto;
}

.references-page .reference-gallery-layout::after {
    content: "";
    display: block;
    grid-column: 3;
}

.references-page .reference-filter-panel {
    grid-column: 1;
    position: sticky;
    top: 110px;
    width: 180px;
}

.references-page .reference-gallery {
    grid-column: 2;
    width: 100%;
    max-width: 940px;
    margin: 0 auto;
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    gap: 24px !important;
    columns: initial !important;
    column-gap: 0 !important;
}

@media (max-width: 1280px) {
    .references-page .reference-gallery-layout {
        grid-template-columns: 170px minmax(0, 1fr);
        column-gap: 28px;
        justify-content: stretch;
    }

    .references-page .reference-gallery-layout::after {
        display: none;
    }

    .references-page .reference-filter-panel {
        grid-column: 1;
        width: 170px;
    }

    .references-page .reference-gallery {
        grid-column: 2;
        max-width: none;
        gap: 20px !important;
    }
}

@media (max-width: 980px) {
    .references-page .reference-gallery-layout {
        grid-template-columns: 160px minmax(0, 1fr);
        column-gap: 22px;
    }

    .references-page .reference-filter-panel {
        width: 160px;
    }

    .references-page .reference-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 18px !important;
    }
}

@media (max-width: 700px) {
    .references-page .reference-gallery-layout {
        grid-template-columns: 1fr;
        gap: 22px;
    }

    .references-page .reference-filter-panel,
    .references-page .reference-gallery {
        grid-column: 1;
        width: 100%;
        max-width: none;
    }

    .references-page .reference-filter-panel {
        position: static;
    }

    .references-page .reference-gallery {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }
}

/* Version 1.2.77: Projekte breiter und mit deutlicherem Bildabstand */
.references-page .references-gallery-section > .kehl-container {
    width: min(1560px, calc(100vw - 56px));
}

.references-page .reference-gallery-layout {
    grid-template-columns: 190px minmax(0, 1060px) 190px;
    column-gap: 32px;
    justify-content: center;
}

.references-page .reference-filter-panel {
    width: 190px;
}

.references-page .reference-gallery {
    max-width: 1060px;
    gap: 32px !important;
    row-gap: 32px !important;
    column-gap: 32px !important;
}

@media (max-width: 1480px) {
    .references-page .references-gallery-section > .kehl-container {
        width: min(1400px, calc(100vw - 44px));
    }

    .references-page .reference-gallery-layout {
        grid-template-columns: 175px minmax(0, 1fr) 175px;
        column-gap: 28px;
    }

    .references-page .reference-filter-panel {
        width: 175px;
    }

    .references-page .reference-gallery {
        max-width: none;
        gap: 28px !important;
        row-gap: 28px !important;
        column-gap: 28px !important;
    }
}

@media (max-width: 1280px) {
    .references-page .reference-gallery-layout {
        grid-template-columns: 170px minmax(0, 1fr);
        column-gap: 28px;
        justify-content: stretch;
    }

    .references-page .reference-gallery-layout::after {
        display: none;
    }

    .references-page .reference-gallery {
        gap: 24px !important;
        row-gap: 24px !important;
        column-gap: 24px !important;
    }
}

@media (max-width: 980px) {
    .references-page .reference-gallery-layout {
        grid-template-columns: 160px minmax(0, 1fr);
        column-gap: 22px;
    }

    .references-page .reference-gallery {
        gap: 20px !important;
        row-gap: 20px !important;
        column-gap: 20px !important;
    }
}

@media (max-width: 700px) {
    .references-page .references-gallery-section > .kehl-container {
        width: calc(100% - 28px);
    }

    .references-page .reference-gallery {
        gap: 16px !important;
    }
}

/* Version 1.2.78: Bildsprache websiteweit eckig */
body img {
    border-radius: 0 !important;
}

/* Bildcontainer, deren Radius das Bild optisch weiterhin abrunden würde */
.entry-content img,
.service-card-media,
.home-service-showcase-image,
.home-service-feature-image,
.home-service-feature-media,
.reference-gallery a,
.company-timeline-media,
.team-story-image,
.team-family-photo,
.team-master-image,
.kehl-mega-thumb,
.primary-nav .kehl-mega-thumb,
.kehl-company-mega-card .kehl-mega-thumb,
.contact-media,
.contact-photo,
.about-media,
.about-image,
.project-media,
.project-image,
.single-project-media,
.single-project-image {
    border-radius: 0 !important;
}

/* Version 1.2.79: auch Bilder auf Leistungs-Unterseiten vollständig eckig */
.legacy-project-preview-grid a,
.legacy-project-preview-grid img,
.legacy-gallery-section .kehl-gallery a,
.legacy-gallery-section .kehl-gallery img {
    border-radius: 0 !important;
}

/* 1.2.80: Karriere-Menütrigger auf hellem Hero-Bereich besser sichtbar */
body.page-template-page-jobs .nav-toggle,
body.page-template-page-jobs .site-header:not(.is-scrolled) .nav-toggle {
    background: rgba(7, 19, 83, .78) !important;
    border: 1px solid rgba(255,255,255,.22) !important;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    padding-left: 16px !important;
    padding-right: 48px !important;
}

body.page-template-page-jobs .nav-toggle:hover,
body.page-template-page-jobs .nav-toggle:focus-visible {
    background: rgba(7, 19, 83, .94) !important;
}

body.page-template-page-jobs .nav-toggle-label,
body.page-template-page-jobs .nav-toggle > span:not(.screen-reader-text) {
    color: #fff !important;
}


/* 1.2.81: Karriere-Menütrigger sicher sichtbar */
body.kehl-jobs-page .site-header .nav-toggle {
    min-width: 142px !important;
    width: 142px !important;
    height: 52px !important;
    padding: 0 48px 0 18px !important;
    background: rgba(7, 19, 83, .88) !important;
    border: 1px solid rgba(255, 255, 255, .32) !important;
    box-shadow: 0 8px 26px rgba(4, 12, 48, .18) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
}

body.kehl-jobs-page .site-header .nav-toggle:hover,
body.kehl-jobs-page .site-header .nav-toggle:focus-visible {
    background: rgba(7, 19, 83, .98) !important;
}

body.kehl-jobs-page .site-header .nav-toggle-label {
    color: #fff !important;
    opacity: 1 !important;
}

body.kehl-jobs-page .site-header .nav-toggle > span:not(.screen-reader-text) {
    background: #fff !important;
    opacity: 1 !important;
}

body.kehl-jobs-page.nav-open .site-header .nav-toggle > span:not(.screen-reader-text):nth-of-type(2),
body.kehl-jobs-page .nav-open .site-header .nav-toggle > span:not(.screen-reader-text):nth-of-type(2) {
    opacity: 0 !important;
}

@media (max-width: 700px) {
    body.kehl-jobs-page .site-header .nav-toggle {
        min-width: 118px !important;
        width: 118px !important;
        height: 46px !important;
        padding-left: 14px !important;
        padding-right: 40px !important;
    }
}


/* 1.2.82: Karriere-Menü dezent in das Hero integriert */
body.kehl-jobs-page .site-header .nav-toggle,
body.page-template-page-jobs .site-header .nav-toggle,
body.kehl-jobs-page .site-header:not(.is-scrolled) .nav-toggle,
body.page-template-page-jobs .site-header:not(.is-scrolled) .nav-toggle {
    min-width: 0 !important;
    width: auto !important;
    height: 52px !important;
    padding: 0 46px 0 14px !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

body.kehl-jobs-page .site-header .nav-toggle:hover,
body.kehl-jobs-page .site-header .nav-toggle:focus-visible,
body.page-template-page-jobs .site-header .nav-toggle:hover,
body.page-template-page-jobs .site-header .nav-toggle:focus-visible {
    background: transparent !important;
}

body.kehl-jobs-page .site-header .nav-toggle-label,
body.page-template-page-jobs .site-header .nav-toggle-label {
    color: #fff !important;
    opacity: 1 !important;
    text-shadow: 0 1px 10px rgba(0,0,0,.38);
}

body.kehl-jobs-page .site-header .nav-toggle > span:not(.screen-reader-text),
body.page-template-page-jobs .site-header .nav-toggle > span:not(.screen-reader-text) {
    background: #fff !important;
    opacity: 1 !important;
    box-shadow: 0 1px 8px rgba(0,0,0,.28);
}

body.kehl-jobs-page .jobs-hero-shade,
body.page-template-page-jobs .jobs-hero-shade {
    background:
        radial-gradient(ellipse at 83% 8%, rgba(4,19,78,.68) 0%, rgba(4,19,78,.46) 15%, rgba(4,19,78,.18) 27%, rgba(4,19,78,0) 40%),
        linear-gradient(90deg, rgba(4,19,78,.90) 0%, rgba(4,19,78,.76) 22%, rgba(4,19,78,.40) 40%, rgba(4,19,78,.10) 58%, rgba(4,19,78,0) 74%) !important;
}

@media (max-width: 700px) {
    body.kehl-jobs-page .site-header .nav-toggle,
    body.page-template-page-jobs .site-header .nav-toggle {
        min-width: 0 !important;
        width: auto !important;
        height: 46px !important;
        padding: 0 40px 0 12px !important;
    }

    body.kehl-jobs-page .jobs-hero-shade,
    body.page-template-page-jobs .jobs-hero-shade {
        background:
            radial-gradient(ellipse at 86% 5%, rgba(4,19,78,.76) 0%, rgba(4,19,78,.42) 20%, rgba(4,19,78,0) 42%),
            linear-gradient(180deg, rgba(4,19,78,.48) 0%, rgba(4,19,78,.30) 28%, rgba(4,19,78,0) 60%) !important;
    }
}


/* Version 1.2.83: Karriere-Karten nach Referenzdesign */
.jobs-page .jobs-details-grid.jobs-detail-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0;
    overflow: hidden;
    border: 1px solid rgba(21, 24, 33, .22);
    border-radius: 14px;
    background: transparent;
}

.jobs-page .jobs-detail-cards article {
    position: relative;
    min-height: 410px;
    padding: 42px 42px 40px;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}

.jobs-page .jobs-detail-cards article + article {
    border-left: 1px solid rgba(21, 24, 33, .16);
}

.jobs-page .jobs-detail-cards article::before {
    display: block;
    margin-bottom: 38px;
    color: var(--kehl-blue);
    font-size: 14px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: .10em;
}

.jobs-page .jobs-detail-cards article:nth-child(1)::before {
    content: "01";
}

.jobs-page .jobs-detail-cards article:nth-child(2)::before {
    content: "02";
}

.jobs-page .jobs-detail-cards article::after {
    content: "";
    position: absolute;
    top: 16px;
    right: 16px;
    width: 34px;
    height: 34px;
    border-top: 2px solid rgba(15, 34, 129, .14);
    border-right: 2px solid rgba(15, 34, 129, .14);
    pointer-events: none;
}

.jobs-page .jobs-detail-cards h2 {
    margin: 0 0 24px;
    color: var(--kehl-text);
    font-size: clamp(38px, 3.25vw, 56px);
    line-height: 1.02;
    letter-spacing: -.04em;
}

.jobs-page .jobs-list li {
    padding: 14px 0 14px 30px;
    border-top: 1px solid rgba(21, 24, 33, .16);
    color: var(--kehl-text);
    font-size: 16px;
    line-height: 1.5;
}

.jobs-page .jobs-list li:last-child {
    border-bottom: 1px solid rgba(21, 24, 33, .16);
}

.jobs-page .jobs-list li::before {
    left: 4px;
    top: 21px;
    width: 8px;
    height: 8px;
    border: 2px solid var(--kehl-blue);
}

@media (max-width: 860px) {
    .jobs-page .jobs-details-grid.jobs-detail-cards {
        grid-template-columns: 1fr;
        border-radius: 10px;
    }

    .jobs-page .jobs-detail-cards article {
        min-height: 0;
        padding: 34px 26px 30px;
    }

    .jobs-page .jobs-detail-cards article + article {
        border-left: 0;
        border-top: 1px solid rgba(21, 24, 33, .16);
    }

    .jobs-page .jobs-detail-cards article::before {
        margin-bottom: 26px;
    }

    .jobs-page .jobs-detail-cards h2 {
        font-size: clamp(34px, 10vw, 46px);
    }
}


/* Version 1.2.84: Karriere-Typografie und Karten verfeinert */
.jobs-page .jobs-heading-block h2 {
    color: var(--kehl-charcoal) !important;
}

.jobs-page .jobs-section-intro {
    max-width: 850px;
    margin: 18px 0 34px;
    color: rgba(21, 24, 33, .78);
    font-size: 17px;
    line-height: 1.7;
}

.jobs-page .jobs-hero-accent {
    background: var(--kehl-blue) !important;
}

.jobs-page .jobs-hero-copy .button,
.jobs-page .jobs-hero-copy .button.button-primary {
    background: var(--kehl-blue) !important;
    border-color: var(--kehl-blue) !important;
    color: var(--kehl-white) !important;
}

.jobs-page .jobs-hero-copy .button:hover,
.jobs-page .jobs-hero-copy .button:focus-visible,
.jobs-page .jobs-hero-copy .button.button-primary:hover,
.jobs-page .jobs-hero-copy .button.button-primary:focus-visible {
    background: var(--kehl-blue-dark) !important;
    border-color: var(--kehl-blue-dark) !important;
}

.jobs-page .jobs-detail-cards article::before {
    content: none !important;
    display: none !important;
}

.jobs-page .jobs-detail-cards article {
    padding-top: 48px;
}

@media (max-width: 860px) {
    .jobs-page .jobs-section-intro {
        margin-top: 14px;
        margin-bottom: 26px;
        font-size: 16px;
    }

    .jobs-page .jobs-detail-cards article {
        padding-top: 38px;
    }
}

/* Version 1.2.86: Zeitstrahl-Karten im Stil der Karriere-Karten */
.about-page-v2 .company-timeline-copy {
    position: relative;
    padding: 38px 40px 36px;
    background: transparent;
    border: 1px solid rgba(21, 24, 33, .22);
    border-radius: 0;
    box-shadow: none;
}

.about-page-v2 .company-timeline-copy::after {
    content: "";
    position: absolute;
    top: 15px;
    right: 15px;
    width: 32px;
    height: 32px;
    border-top: 2px solid rgba(15, 34, 129, .14);
    border-right: 2px solid rgba(15, 34, 129, .14);
    pointer-events: none;
}

.about-page-v2 .company-timeline-copy h3 {
    margin: 0 0 20px;
    color: var(--kehl-charcoal);
    font-size: clamp(32px, 3vw, 46px);
    line-height: 1.04;
    letter-spacing: -.035em;
}

.about-page-v2 .company-timeline-copy p {
    margin: 0;
    color: rgba(21, 24, 33, .78);
    font-size: 16px;
    line-height: 1.7;
}

.about-page-v2 .company-timeline-year {
    margin-bottom: 18px;
    border-radius: 0;
}

@media (max-width: 860px) {
    .about-page-v2 .company-timeline-copy,
    .about-page-v2 .company-timeline-item.is-right .company-timeline-copy {
        padding: 30px 26px 28px;
    }

    .about-page-v2 .company-timeline-copy h3 {
        font-size: clamp(30px, 9vw, 40px);
    }
}

/* Version 1.2.87: Leistungen-Seite neu aufgebaut */
.services-page-layout {
    background: var(--kehl-offwhite);
}

.services-page-intro {
    padding-top: 170px;
}

.services-intro-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr);
    gap: 64px;
    align-items: start;
}

.services-intro-copy h1 {
    margin: 0 0 24px;
    font-size: clamp(54px, 6vw, 86px);
    line-height: .95;
    letter-spacing: -.05em;
}

.services-intro-lead {
    max-width: 700px;
    margin: 0 0 34px;
    font-size: 20px;
    line-height: 1.7;
    color: rgba(21, 24, 33, .76);
}

.services-process-block h2 {
    margin: 0 0 24px;
    font-size: clamp(28px, 3vw, 40px);
    line-height: 1.05;
}

.services-process-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    gap: 20px;
}

.services-process-item {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    gap: 18px;
    padding: 0 0 20px;
    border-bottom: 1px solid var(--kehl-line);
}

.services-process-number {
    display: inline-flex;
    align-items: flex-start;
    justify-content: flex-start;
    color: var(--kehl-blue);
    font-size: 30px;
    font-weight: 800;
    line-height: 1;
}

.services-process-copy h3 {
    margin: 0 0 8px;
    font-size: 24px;
    line-height: 1.08;
}

.services-process-copy p {
    margin: 0;
    color: rgba(21, 24, 33, .76);
}

.services-feature-figure {
    position: relative;
    margin: 0;
    overflow: hidden;
    background: #d8d5d1;
}

.services-feature-figure img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
}

.services-feature-caption {
    position: absolute;
    left: 22px;
    right: 22px;
    bottom: 22px;
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 14px 16px;
    background: linear-gradient(180deg, rgba(7, 19, 83, 0) 0%, rgba(7, 19, 83, .88) 100%);
    color: var(--kehl-white);
    font-size: 14px;
    line-height: 1.45;
    opacity: 0;
    transform: translateY(14px);
    transition: opacity .24s ease, transform .24s ease;
    pointer-events: none;
}

.services-feature-figure:hover .services-feature-caption,
.services-feature-figure:focus-within .services-feature-caption {
    opacity: 1;
    transform: translateY(0);
}

.services-links-list {
    border-top: 1px solid var(--kehl-line);
}

.services-link-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 24px 0;
    border-bottom: 1px solid var(--kehl-line);
    transition: color .2s ease, padding-left .2s ease;
}

.services-link-row:hover {
    color: var(--kehl-blue);
    padding-left: 10px;
}

.services-link-title {
    font-size: clamp(26px, 2.7vw, 40px);
    line-height: 1.05;
    font-weight: 700;
}

.services-link-arrow {
    flex: 0 0 auto;
    color: var(--kehl-blue);
    font-size: 30px;
    line-height: 1;
}

.services-faq-head h2 {
    margin: 0;
}

.services-faq-list {
    margin-top: 30px;
    border-top: 1px solid var(--kehl-line);
}

.services-faq-item {
    border-bottom: 1px solid var(--kehl-line);
}

.services-faq-item summary {
    position: relative;
    display: block;
    padding: 26px 56px 26px 0;
    cursor: pointer;
    list-style: none;
    font-size: 26px;
    line-height: 1.15;
    font-weight: 700;
}

.services-faq-item summary::-webkit-details-marker {
    display: none;
}

.services-faq-item summary::after {
    content: "+";
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    color: var(--kehl-blue);
    font-size: 34px;
    line-height: 1;
    font-weight: 400;
}

.services-faq-item[open] summary::after {
    content: "−";
}

.services-faq-answer {
    padding: 0 0 24px;
    max-width: 900px;
}

.services-faq-answer p {
    margin: 0;
    color: rgba(21, 24, 33, .76);
}

@media (max-width: 980px) {
    .services-page-intro {
        padding-top: 140px;
    }

    .services-intro-layout {
        grid-template-columns: 1fr;
        gap: 42px;
    }

    .services-intro-copy {
        order: 1;
    }

    .services-intro-media {
        order: 2;
    }

    .services-feature-figure img {
        aspect-ratio: 4 / 3;
    }

    .services-link-title {
        font-size: 28px;
    }

    .services-faq-item summary {
        font-size: 22px;
    }
}

@media (max-width: 640px) {
    .services-page-intro {
        padding-top: 124px;
    }

    .services-intro-lead {
        font-size: 18px;
    }

    .services-process-item {
        grid-template-columns: 38px minmax(0, 1fr);
        gap: 12px;
    }

    .services-process-number {
        font-size: 22px;
    }

    .services-process-copy h3 {
        font-size: 21px;
    }

    .services-feature-caption {
        left: 14px;
        right: 14px;
        bottom: 14px;
        padding: 12px 14px;
        opacity: 1;
        transform: none;
    }

    .services-link-row {
        padding: 18px 0;
    }

    .services-link-title {
        font-size: 24px;
    }

    .services-link-arrow {
        font-size: 24px;
    }

    .services-faq-item summary {
        padding-right: 42px;
        font-size: 20px;
    }
}

/* Version 1.2.89: Leistungen – feste Menüleiste wiederhergestellt, Hero bleibt entfernt */
body.page-template-page-leistungen .site-header,
body.page-template-page-leistungen .site-header.is-scrolled {
    background: #09165f !important;
    box-shadow: 0 10px 30px rgba(6, 15, 64, .14) !important;
}

body.page-template-page-leistungen .services-page-intro {
    padding-top: 190px;
}

@media (max-width: 700px) {
    body.page-template-page-leistungen .services-page-intro {
        padding-top: 150px;
    }
}


/* Version 1.2.91: Leistungen – sichtbarer Header oberhalb des Inhalts */
body.kehl-services-page .site-header,
body.kehl-services-page .site-header.is-scrolled {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    min-height: 118px !important;
    background: #09165f !important;
    box-shadow: 0 10px 30px rgba(6, 15, 64, .14) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

body.admin-bar.kehl-services-page .site-header,
body.admin-bar.kehl-services-page .site-header.is-scrolled {
    top: 32px !important;
}

body.kehl-services-page .site-header .header-inner,
body.kehl-services-page .site-header.is-scrolled .header-inner {
    min-height: 118px !important;
    padding: 18px 0 !important;
}

body.kehl-services-page .site-header .site-brand,
body.kehl-services-page .site-header.is-scrolled .site-brand {
    display: inline-flex !important;
    width: 260px !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(6px) !important;
}

body.kehl-services-page .site-header .site-brand a,
body.kehl-services-page .site-header .site-brand img {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
}

body.kehl-services-page .site-header .nav-toggle,
body.kehl-services-page .site-header.is-scrolled .nav-toggle {
    color: #fff !important;
}

body.kehl-services-page .site-header .nav-toggle-label {
    color: #fff !important;
    opacity: 1 !important;
}

body.kehl-services-page .site-header .nav-toggle > span:not(.screen-reader-text) {
    background: #fff !important;
    opacity: 1 !important;
}

body.kehl-services-page .services-page-intro {
    padding-top: 184px !important;
}

@media (max-width: 782px) {
    body.admin-bar.kehl-services-page .site-header,
    body.admin-bar.kehl-services-page .site-header.is-scrolled {
        top: 46px !important;
    }
}

@media (max-width: 700px) {
    body.kehl-services-page .site-header,
    body.kehl-services-page .site-header.is-scrolled {
        min-height: 92px !important;
    }

    body.kehl-services-page .site-header .header-inner,
    body.kehl-services-page .site-header.is-scrolled .header-inner {
        min-height: 92px !important;
        padding: 12px 0 !important;
    }

    body.kehl-services-page .site-header .site-brand,
    body.kehl-services-page .site-header.is-scrolled .site-brand {
        width: 190px !important;
    }

    body.kehl-services-page .services-page-intro {
        padding-top: 136px !important;
    }
}

/* Version 1.2.92: Leistungs-Unterseiten ohne großen Hero */
body.kehl-service-detail-page .site-header,
body.kehl-service-detail-page .site-header.is-scrolled {
    background: #09165f !important;
    box-shadow: 0 10px 30px rgba(6,15,64,.14) !important;
}

body.kehl-service-detail-page .legacy-project-intro {
    padding-top: 190px;
    background: #fff;
}

body.kehl-service-detail-page .legacy-project-intro h1 {
    margin: 0 0 18px;
    color: var(--kehl-charcoal);
    font-size: clamp(48px, 5vw, 72px);
    line-height: .98;
    letter-spacing: -.045em;
}

@media (max-width: 700px) {
    body.kehl-service-detail-page .legacy-project-intro {
        padding-top: 145px;
    }

    body.kehl-service-detail-page .legacy-project-intro h1 {
        font-size: clamp(40px, 12vw, 58px);
    }
}


/* Version 1.2.93: Stichpunktliste auf Leistungs-Unterseiten entfernt */
body.kehl-service-detail-page .legacy-project-intro-grid-media {
    grid-template-columns: minmax(0, 900px);
    gap: 0;
}

body.kehl-service-detail-page .legacy-detail-copy {
    max-width: 880px;
}

/* Version 1.2.95: Über uns ohne blauen Kopfbereich, Timeline-Bilder aktualisiert */
.about-page-v2 .company-history-section {
    padding-top: 68px;
}
.about-page-v2 .company-timeline-item:nth-child(5) .company-timeline-media img {
    object-position: center 22%;
}
@media (max-width: 767px) {
    .about-page-v2 .company-history-section {
        padding-top: 44px;
    }
    .about-page-v2 .company-timeline-item:nth-child(5) .company-timeline-media img {
        object-position: center 18%;
    }
}

/* Version 1.2.96: Über uns – Standard-Menüleiste wiederhergestellt */
body.kehl-about-page .site-header,
body.kehl-about-page .site-header.is-scrolled {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    min-height: 118px !important;
    background: #09165f !important;
    box-shadow: 0 10px 30px rgba(6,15,64,.14) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

body.admin-bar.kehl-about-page .site-header,
body.admin-bar.kehl-about-page .site-header.is-scrolled {
    top: 32px !important;
}

body.kehl-about-page .site-header .header-inner,
body.kehl-about-page .site-header.is-scrolled .header-inner {
    min-height: 118px !important;
    padding: 18px 0 !important;
}

body.kehl-about-page .site-header .site-brand,
body.kehl-about-page .site-header.is-scrolled .site-brand {
    display: inline-flex !important;
    width: 260px !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(6px) !important;
}

body.kehl-about-page .site-header .site-brand a,
body.kehl-about-page .site-header .site-brand img {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
}

body.kehl-about-page .site-header .nav-toggle,
body.kehl-about-page .site-header.is-scrolled .nav-toggle,
body.kehl-about-page .site-header .nav-toggle-label {
    color: #fff !important;
    opacity: 1 !important;
}

body.kehl-about-page .site-header .nav-toggle > span:not(.screen-reader-text) {
    background: #fff !important;
    opacity: 1 !important;
}

body.kehl-about-page .company-history-section {
    padding-top: 190px !important;
}

@media (max-width: 782px) {
    body.admin-bar.kehl-about-page .site-header,
    body.admin-bar.kehl-about-page .site-header.is-scrolled {
        top: 46px !important;
    }
}

@media (max-width: 700px) {
    body.kehl-about-page .site-header,
    body.kehl-about-page .site-header.is-scrolled {
        min-height: 92px !important;
    }

    body.kehl-about-page .site-header .header-inner,
    body.kehl-about-page .site-header.is-scrolled .header-inner {
        min-height: 92px !important;
        padding: 12px 0 !important;
    }

    body.kehl-about-page .site-header .site-brand,
    body.kehl-about-page .site-header.is-scrolled .site-brand {
        width: 190px !important;
    }

    body.kehl-about-page .company-history-section {
        padding-top: 145px !important;
    }
}

/* Version 1.2.97: eigene Unternehmensseite mit Familien-/Meisterbetrieb-Abschnitt */
body.kehl-company-page .site-header,
body.kehl-company-page .site-header.is-scrolled {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    min-height: 118px !important;
    background: #09165f !important;
    box-shadow: 0 10px 30px rgba(6,15,64,.14) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

body.admin-bar.kehl-company-page .site-header,
body.admin-bar.kehl-company-page .site-header.is-scrolled {
    top: 32px !important;
}

body.kehl-company-page .site-header .header-inner,
body.kehl-company-page .site-header.is-scrolled .header-inner {
    min-height: 118px !important;
    padding: 18px 0 !important;
}

body.kehl-company-page .site-header .site-brand,
body.kehl-company-page .site-header.is-scrolled .site-brand {
    display: inline-flex !important;
    width: 260px !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(6px) !important;
}

body.kehl-company-page .site-header .site-brand a,
body.kehl-company-page .site-header .site-brand img {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
}

body.kehl-company-page .site-header .nav-toggle,
body.kehl-company-page .site-header.is-scrolled .nav-toggle,
body.kehl-company-page .site-header .nav-toggle-label {
    color: #fff !important;
    opacity: 1 !important;
}

body.kehl-company-page .site-header .nav-toggle > span:not(.screen-reader-text) {
    background: #fff !important;
    opacity: 1 !important;
}

body.kehl-company-page .company-family-section {
    padding-top: 190px !important;
}

body.kehl-company-page .team-family-copy h1 {
    margin: 0 0 22px;
    font-size: clamp(42px, 4.8vw, 68px);
    line-height: 1.02;
    letter-spacing: -.04em;
}

body.kehl-company-page .team-family-photo img {
    height: 620px;
}

@media (max-width: 782px) {
    body.admin-bar.kehl-company-page .site-header,
    body.admin-bar.kehl-company-page .site-header.is-scrolled {
        top: 46px !important;
    }
}

@media (max-width: 700px) {
    body.kehl-company-page .site-header,
    body.kehl-company-page .site-header.is-scrolled {
        min-height: 92px !important;
    }

    body.kehl-company-page .site-header .header-inner,
    body.kehl-company-page .site-header.is-scrolled .header-inner {
        min-height: 92px !important;
        padding: 12px 0 !important;
    }

    body.kehl-company-page .site-header .site-brand,
    body.kehl-company-page .site-header.is-scrolled .site-brand {
        width: 190px !important;
    }

    body.kehl-company-page .company-family-section {
        padding-top: 145px !important;
    }
}


/* Version 1.2.99: Teamseite ohne Hero, mit Teamfoto und eckigem Karrierebanner */
.team-story-section-no-hero {
    padding-top: 96px;
}

.team-page-title {
    margin-bottom: 22px;
}

.team-story-media.is-single {
    min-height: 0;
    padding-left: 0;
    padding-bottom: 0;
}

.team-story-media.is-single .team-story-image-main {
    height: 620px;
}

.team-story-media.is-single .team-story-image {
    border-radius: 0;
}

.team-career-section-direct {
    padding-top: 0;
}

.team-career-card-rect {
    border-radius: 0;
}

.team-career-card-rect .team-career-copy h2 {
    margin-top: 0;
}

@media (max-width: 1100px) {
    .team-story-media.is-single .team-story-image-main {
        height: 480px;
    }
}

@media (max-width: 800px) {
    .team-story-section-no-hero {
        padding-top: 72px;
    }

    .team-story-media.is-single .team-story-image-main {
        height: 360px;
    }
}


/* Version 1.2.100: Standard-Menüleiste auf Teamseite */
body.kehl-team-page .site-header,
body.kehl-team-page .site-header.is-scrolled {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    min-height: 118px !important;
    background: #09165f !important;
    box-shadow: 0 10px 30px rgba(6,15,64,.14) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

body.admin-bar.kehl-team-page .site-header,
body.admin-bar.kehl-team-page .site-header.is-scrolled {
    top: 32px !important;
}

body.kehl-team-page .site-header .header-inner,
body.kehl-team-page .site-header.is-scrolled .header-inner {
    min-height: 118px !important;
    padding: 18px 0 !important;
}

body.kehl-team-page .site-header .site-brand,
body.kehl-team-page .site-header.is-scrolled .site-brand {
    display: inline-flex !important;
    width: 260px !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(6px) !important;
}

body.kehl-team-page .site-header .site-brand a,
body.kehl-team-page .site-header .site-brand img {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
}

body.kehl-team-page .site-header .nav-toggle,
body.kehl-team-page .site-header.is-scrolled .nav-toggle,
body.kehl-team-page .site-header .nav-toggle-label {
    color: #fff !important;
    opacity: 1 !important;
}

body.kehl-team-page .site-header .nav-toggle > span:not(.screen-reader-text) {
    background: #fff !important;
    opacity: 1 !important;
}

body.kehl-team-page .team-story-section-no-hero {
    padding-top: 190px !important;
}

@media (max-width: 782px) {
    body.admin-bar.kehl-team-page .site-header,
    body.admin-bar.kehl-team-page .site-header.is-scrolled {
        top: 46px !important;
    }
}

@media (max-width: 700px) {
    body.kehl-team-page .site-header,
    body.kehl-team-page .site-header.is-scrolled {
        min-height: 92px !important;
    }

    body.kehl-team-page .site-header .header-inner,
    body.kehl-team-page .site-header.is-scrolled .header-inner {
        min-height: 92px !important;
        padding: 12px 0 !important;
    }

    body.kehl-team-page .site-header .site-brand,
    body.kehl-team-page .site-header.is-scrolled .site-brand {
        width: 190px !important;
    }

    body.kehl-team-page .team-story-section-no-hero {
        padding-top: 145px !important;
    }
}

/* Version 1.2.101: Meisterbrief auf der Unternehmensseite */
.company-page-v1 .team-master-card {
    grid-template-columns: minmax(0, .85fr) minmax(300px, 1fr);
    align-items: center;
}

.company-page-v1 .team-master-image {
    min-height: 0;
    overflow: hidden;
    border-radius: 0;
    background: #f4f0e8;
    border: 1px solid rgba(21, 24, 33, .12);
}

.company-page-v1 .team-master-image img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: contain;
}

@media (max-width: 1100px) {
    .company-page-v1 .team-master-card {
        grid-template-columns: 1fr;
    }

    .company-page-v1 .team-master-image {
        max-width: 620px;
    }
}

/* Version 1.2.102: Meisterbrief ruhiger in die Unternehmensseite integriert */
.company-page-v2 .company-family-grid {
    align-items: center;
}

.company-page-v2 .team-family-photo {
    border-radius: 0;
    box-shadow: none;
}

.company-page-v2 .team-family-photo img {
    height: 600px;
    object-fit: cover;
}

.company-page-v2 .company-family-copy {
    padding-left: 18px;
}

.company-page-v2 .company-master-band {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 260px;
    gap: 72px;
    align-items: center;
    margin-top: 72px;
    padding: 46px 0;
    border-top: 1px solid rgba(21, 24, 33, .16);
    border-bottom: 1px solid rgba(21, 24, 33, .16);
}

.company-page-v2 .company-master-copy {
    max-width: 720px;
}

.company-page-v2 .company-master-copy h2 {
    margin: 8px 0 14px;
    font-size: clamp(36px, 4vw, 56px);
    line-height: 1.02;
    letter-spacing: -.035em;
}

.company-page-v2 .company-master-copy p:last-child {
    max-width: 660px;
    margin: 0;
    color: rgba(21, 24, 33, .74);
    font-size: 18px;
    line-height: 1.7;
}

.company-page-v2 .company-master-document {
    margin: 0;
    justify-self: end;
    width: 100%;
    max-width: 250px;
}

.company-page-v2 .company-master-document img {
    display: block;
    width: 100%;
    height: auto;
    border: 1px solid rgba(21, 24, 33, .14);
    box-shadow: 0 16px 40px rgba(9, 22, 95, .10);
}

@media (max-width: 980px) {
    .company-page-v2 .company-family-grid {
        grid-template-columns: 1fr;
    }

    .company-page-v2 .company-family-copy {
        padding-left: 0;
    }

    .company-page-v2 .team-family-photo img {
        height: 520px;
    }

    .company-page-v2 .company-master-band {
        grid-template-columns: minmax(0, 1fr) 220px;
        gap: 42px;
    }
}

@media (max-width: 700px) {
    .company-page-v2 .team-family-photo img {
        height: 360px;
    }

    .company-page-v2 .company-master-band {
        grid-template-columns: 1fr;
        gap: 28px;
        margin-top: 48px;
        padding: 34px 0;
    }

    .company-page-v2 .company-master-document {
        justify-self: start;
        max-width: 210px;
    }
}

/* Version 1.2.103: Einheitliches Typografie-System und kompaktere Teamseite */
:root {
    --kehl-type-label: 12px;
    --kehl-type-body: 18px;
    --kehl-type-small-heading: 28px;
    --kehl-type-section-heading: 44px;
    --kehl-type-display: 72px;
}

/* Fünf feste Schriftstufen für redaktionelle Inhalte */
main .eyebrow,
main .jobs-hero-kicker,
main .jobs-hero-role-label,
main .company-timeline-year {
    font-size: var(--kehl-type-label) !important;
}

main p,
main li,
main .page-lead,
main .hero-lead,
main .services-intro-lead,
main .team-story-copy > p:not(.eyebrow),
main .team-family-copy > p:not(.eyebrow),
main .company-timeline-copy p,
main .services-faq-answer p {
    font-size: var(--kehl-type-body) !important;
    line-height: 1.65;
}

main h3,
main h4,
main .services-link-title,
main .home-service-showcase-copy strong,
main .jobs-hero-role,
main .project-card-copy h3,
main .team-master-copy h3 {
    font-size: var(--kehl-type-small-heading) !important;
    line-height: 1.12;
}

main h2,
main .team-page-title,
main .hero-subheadline,
.contact-cta h2,
.footer-callout-copy h2 {
    font-size: var(--kehl-type-section-heading) !important;
    line-height: 1.04;
    letter-spacing: -.035em;
}

main h1:not(.team-page-title) {
    font-size: var(--kehl-type-display) !important;
    line-height: .96;
    letter-spacing: -.045em;
}

/* Kleine Überschriften im Team nicht mehr optisch unterdimensioniert */
body.kehl-team-page .team-page-title {
    font-size: var(--kehl-type-section-heading) !important;
    max-width: 620px;
}

/* Teamseite kompakter: weniger Leerraum und ausgewogenere Bild-/Textproportion */
body.kehl-team-page .team-story-section-no-hero {
    padding-top: 166px !important;
    padding-bottom: 58px !important;
}

body.kehl-team-page .team-story-grid {
    align-items: center;
    gap: 48px;
}

body.kehl-team-page .team-story-media.is-single .team-story-image-main {
    height: 440px;
}

body.kehl-team-page .team-story-copy > p:not(.eyebrow) {
    max-width: 610px;
    margin-top: 22px;
}

body.kehl-team-page .team-career-section-direct {
    padding-top: 0 !important;
    padding-bottom: 72px !important;
}

body.kehl-team-page .team-career-card-rect {
    padding: 34px 40px;
}

@media (max-width: 800px) {
    :root {
        --kehl-type-label: 12px;
        --kehl-type-body: 17px;
        --kehl-type-small-heading: 24px;
        --kehl-type-section-heading: 34px;
        --kehl-type-display: 48px;
    }

    body.kehl-team-page .team-story-section-no-hero {
        padding-top: 128px !important;
        padding-bottom: 44px !important;
    }

    body.kehl-team-page .team-story-media.is-single .team-story-image-main {
        height: 330px;
    }

    body.kehl-team-page .team-career-card-rect {
        padding: 26px;
    }
}

/* Version 1.2.104: Team-Banner mit sauberem Abstand zur Sektion darüber */
body.kehl-team-page .team-career-section-direct {
    padding-top: 34px !important;
}

body.kehl-team-page .team-career-card-rect {
    margin-top: 0 !important;
}

@media (max-width: 800px) {
    body.kehl-team-page .team-career-section-direct {
        padding-top: 24px !important;
    }
}

/* Version 1.2.105: Team-Karrierebanner mit identischem Abstand oben und unten */
body.kehl-team-page .team-career-section-direct {
    padding-top: 72px !important;
    padding-bottom: 72px !important;
}

@media (max-width: 800px) {
    body.kehl-team-page .team-career-section-direct {
        padding-top: 56px !important;
        padding-bottom: 56px !important;
    }
}

/* Version 1.2.107: Meisterbrief-Lightbox und Navigation auf Unternehmen */
.company-page-v2 .company-master-document-wrap {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 20px;
    width: 100%;
    max-width: 300px;
    justify-self: end;
}

.company-page-v2 .company-master-document {
    max-width: none;
    justify-self: auto;
}

.company-page-v2 .company-master-document a {
    display: block;
    cursor: zoom-in;
}

.company-page-v2 .company-master-document img {
    transition: transform .2s ease, box-shadow .2s ease;
}

.company-page-v2 .company-master-document a:hover img,
.company-page-v2 .company-master-document a:focus-visible img {
    transform: translateY(-2px);
    box-shadow: 0 20px 44px rgba(9, 22, 95, .16);
}

.company-page-v2 .company-master-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}

.company-page-v2 .company-master-actions .button {
    min-width: 0;
    width: 100%;
    padding-left: 14px;
    padding-right: 14px;
    text-align: center;
    white-space: nowrap;
}

body.kehl-company-page .kehl-lightbox-prev,
body.kehl-company-page .kehl-lightbox-next {
    display: none !important;
}

@media (max-width: 980px) {
    .company-page-v2 .company-master-document-wrap {
        max-width: 270px;
    }
}

@media (max-width: 700px) {
    .company-page-v2 .company-master-document-wrap {
        justify-self: start;
        max-width: 100%;
    }

    .company-page-v2 .company-master-document {
        max-width: 230px;
    }

    .company-page-v2 .company-master-actions {
        grid-template-columns: 1fr;
        max-width: 230px;
    }
}

/* Version 1.2.108: Navigation unter Meisterbetrieb-Text */
.company-page-v2 .company-master-copy .company-master-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 28px;
}

.company-page-v2 .company-master-copy .company-master-actions .button {
    width: auto;
    min-width: 180px;
    padding-left: 24px;
    padding-right: 24px;
    text-align: center;
    white-space: nowrap;
}

.company-page-v2 .company-master-document-wrap {
    gap: 0;
}

@media (max-width: 700px) {
    .company-page-v2 .company-master-copy .company-master-actions {
        display: grid;
        grid-template-columns: 1fr;
        max-width: 300px;
    }

    .company-page-v2 .company-master-copy .company-master-actions .button {
        width: 100%;
        min-width: 0;
    }
}

/* Version 1.2.109: Projekte ohne Hero, Filter oben und responsives Masonry */
body.kehl-projects-page .site-header,
body.kehl-projects-page .site-header.is-scrolled {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    min-height: 118px !important;
    background: #09165f !important;
    box-shadow: 0 10px 30px rgba(6,15,64,.14) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

body.admin-bar.kehl-projects-page .site-header,
body.admin-bar.kehl-projects-page .site-header.is-scrolled {
    top: 32px !important;
}

body.kehl-projects-page .site-header .header-inner,
body.kehl-projects-page .site-header.is-scrolled .header-inner {
    min-height: 118px !important;
    padding: 18px 0 !important;
}

body.kehl-projects-page .site-header .site-brand,
body.kehl-projects-page .site-header.is-scrolled .site-brand {
    display: inline-flex !important;
    width: 260px !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateY(6px) !important;
}

body.kehl-projects-page .site-header .site-brand a,
body.kehl-projects-page .site-header .site-brand img {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
}

body.kehl-projects-page .site-header .nav-toggle,
body.kehl-projects-page .site-header.is-scrolled .nav-toggle,
body.kehl-projects-page .site-header .nav-toggle-label {
    color: #fff !important;
    opacity: 1 !important;
}

body.kehl-projects-page .site-header .nav-toggle > span:not(.screen-reader-text) {
    background: #fff !important;
    opacity: 1 !important;
}

.references-page-v2 .references-gallery-section {
    padding-top: 172px !important;
    padding-bottom: 92px !important;
    background: var(--kehl-offwhite);
}

.references-page-v2 .references-gallery-section > .kehl-container {
    width: min(1440px, calc(100vw - 56px));
}

.references-page-v2 .reference-filter-bar {
    display: flex;
    justify-content: flex-start;
    margin: 0 0 34px;
}

.references-page-v2 .reference-filter-panel {
    position: static !important;
    width: min(420px, 100%) !important;
}

.references-page-v2 .reference-filter-panel label {
    display: block;
    margin: 0 0 10px;
    color: var(--kehl-blue);
    font-size: var(--kehl-type-label, 12px) !important;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.references-page-v2 .reference-filter-control {
    position: relative;
}

.references-page-v2 .reference-filter-control::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 20px;
    width: 11px;
    height: 11px;
    border-right: 2px solid var(--kehl-blue);
    border-bottom: 2px solid var(--kehl-blue);
    transform: translateY(-68%) rotate(45deg);
    pointer-events: none;
}

.references-page-v2 .reference-filter-select {
    appearance: none;
    -webkit-appearance: none;
    width: 100%;
    min-height: 56px;
    padding: 0 54px 0 18px;
    border: 1px solid rgba(15,34,129,.55);
    border-radius: 0;
    outline: none;
    background: transparent;
    color: var(--kehl-charcoal);
    font-size: var(--kehl-type-body, 18px) !important;
    font-weight: 600;
    cursor: pointer;
    transition: border-color .2s ease, background-color .2s ease, color .2s ease;
}

.references-page-v2 .reference-filter-select:hover,
.references-page-v2 .reference-filter-select:focus {
    border-color: var(--kehl-blue);
    background: rgba(15,34,129,.035);
}

.references-page-v2 .reference-gallery {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    columns: 3 !important;
    column-gap: 24px !important;
    grid-template-columns: none !important;
}

.references-page-v2 .reference-gallery > a.reference-gallery-item {
    display: block !important;
    width: 100% !important;
    margin: 0 0 24px !important;
    aspect-ratio: auto !important;
    overflow: hidden !important;
    break-inside: avoid !important;
    -webkit-column-break-inside: avoid !important;
    page-break-inside: avoid !important;
    background: transparent !important;
    border-radius: 0 !important;
}

.references-page-v2 .reference-gallery > a.reference-gallery-item img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    max-height: none !important;
    object-fit: initial !important;
    object-position: initial !important;
    border-radius: 0 !important;
    transition: transform .25s ease, opacity .25s ease;
}

.references-page-v2 .reference-gallery > a.reference-gallery-item:hover img {
    transform: scale(1.015);
    opacity: .94;
}

.references-page-v2 .reference-gallery > a.reference-gallery-item.is-filtered-out {
    display: none !important;
}

@media (max-width: 980px) {
    .references-page-v2 .reference-gallery {
        columns: 2 !important;
        column-gap: 20px !important;
    }

    .references-page-v2 .reference-gallery > a.reference-gallery-item {
        margin-bottom: 20px !important;
    }
}

@media (max-width: 782px) {
    body.admin-bar.kehl-projects-page .site-header,
    body.admin-bar.kehl-projects-page .site-header.is-scrolled {
        top: 46px !important;
    }
}

@media (max-width: 700px) {
    body.kehl-projects-page .site-header,
    body.kehl-projects-page .site-header.is-scrolled {
        min-height: 92px !important;
    }

    body.kehl-projects-page .site-header .header-inner,
    body.kehl-projects-page .site-header.is-scrolled .header-inner {
        min-height: 92px !important;
        padding: 12px 0 !important;
    }

    body.kehl-projects-page .site-header .site-brand,
    body.kehl-projects-page .site-header.is-scrolled .site-brand {
        width: 190px !important;
    }

    .references-page-v2 .references-gallery-section {
        padding-top: 126px !important;
        padding-bottom: 64px !important;
    }

    .references-page-v2 .references-gallery-section > .kehl-container {
        width: calc(100% - 28px);
    }

    .references-page-v2 .reference-filter-bar {
        margin-bottom: 24px;
    }

    .references-page-v2 .reference-filter-panel {
        width: 100% !important;
    }

    .references-page-v2 .reference-gallery {
        columns: 1 !important;
    }

    .references-page-v2 .reference-gallery > a.reference-gallery-item {
        margin-bottom: 16px !important;
    }
}

/* Version 1.2.188: Projektgalerie mit stabilen, oben ausgerichteten Spalten.
   Kein CSS-Multicolumn-Balancing, kein Bildversatz bei anderer Fensterbreite. */
.references-page-v2 .reference-gallery {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    columns: auto !important;
    column-count: auto !important;
    gap: 24px !important;
    align-items: start !important;
}
.references-page-v2 .reference-gallery > a.reference-gallery-item {
    margin: 0 !important;
    align-self: start;
}
.references-page-v2 .reference-gallery > .kehl-reference-column {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 24px;
    min-width: 0;
}
.references-page-v2 .reference-gallery .kehl-reference-column > a.reference-gallery-item {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    aspect-ratio: auto !important;
    overflow: hidden !important;
    border-radius: 0 !important;
    background: transparent !important;
}
.references-page-v2 .reference-gallery .kehl-reference-column > a.reference-gallery-item > img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    object-fit: contain !important;
    border-radius: 0 !important;
    transition: transform .25s ease, opacity .25s ease;
}
.references-page-v2 .reference-gallery .kehl-reference-column > a.reference-gallery-item:hover > img {
    transform: scale(1.015);
    opacity: .94;
}
.references-page-v2 .reference-gallery .kehl-reference-column > a.reference-gallery-item.is-filtered-out {
    display: none !important;
}
@media (max-width: 980px) {
    .references-page-v2 .reference-gallery {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 20px !important;
    }
    .references-page-v2 .reference-gallery > .kehl-reference-column { gap: 20px; }
}
@media (max-width: 700px) {
    .references-page-v2 .reference-gallery {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 16px !important;
    }
    .references-page-v2 .reference-gallery > .kehl-reference-column { gap: 16px; }
}

/* Version 1.2.110: Off-Canvas Untermenüs wie Hauptmenü – ohne Kreis, ohne Kacheln */
.kehl-offcanvas-nav .kehl-submenu-toggle,
.primary-nav .kehl-submenu-toggle {
    flex: 0 0 34px !important;
    width: 34px !important;
    height: 34px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #fff !important;
}

.kehl-offcanvas-nav .kehl-has-mega.is-submenu-open > .kehl-parent-link .kehl-submenu-toggle,
.primary-nav .kehl-has-mega.is-submenu-open > .kehl-parent-link .kehl-submenu-toggle {
    background: transparent !important;
    color: #fff !important;
}

.kehl-offcanvas-nav .kehl-mega-menu-services,
.kehl-offcanvas-nav .kehl-mega-menu-company,
.primary-nav .kehl-mega-menu-services,
.primary-nav .kehl-mega-menu-company {
    padding: 0 0 12px 18px !important;
}

.kehl-offcanvas-nav .kehl-mega-services,
.kehl-offcanvas-nav .kehl-company-links,
.primary-nav .kehl-mega-services,
.primary-nav .kehl-company-links {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
}

.kehl-offcanvas-nav .kehl-mega-card,
.kehl-offcanvas-nav .kehl-company-links > a,
.primary-nav .kehl-mega-card,
.primary-nav .kehl-company-links > a {
    display: block !important;
    width: 100% !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 13px 0 !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(255,255,255,.12) !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: rgba(255,255,255,.78) !important;
    transform: none !important;
    transition: color .2s ease, padding-left .2s ease !important;
}

.kehl-offcanvas-nav .kehl-mega-card:first-child,
.kehl-offcanvas-nav .kehl-company-links > a:first-child,
.primary-nav .kehl-mega-card:first-child,
.primary-nav .kehl-company-links > a:first-child {
    border-top: 1px solid rgba(255,255,255,.12) !important;
}

.kehl-offcanvas-nav .kehl-mega-card:hover,
.kehl-offcanvas-nav .kehl-company-links > a:hover,
.primary-nav .kehl-mega-card:hover,
.primary-nav .kehl-company-links > a:hover {
    padding-left: 6px !important;
    color: #fff !important;
    background: transparent !important;
}

.kehl-offcanvas-nav .kehl-mega-thumb,
.primary-nav .kehl-mega-thumb,
.kehl-offcanvas-nav .kehl-company-links small,
.primary-nav .kehl-company-links small,
.kehl-offcanvas-nav .kehl-mega-card-copy small,
.primary-nav .kehl-mega-card-copy small {
    display: none !important;
}

.kehl-offcanvas-nav .kehl-mega-card-copy,
.primary-nav .kehl-mega-card-copy {
    display: block !important;
    min-width: 0 !important;
}

.kehl-offcanvas-nav .kehl-mega-card-copy strong,
.kehl-offcanvas-nav .kehl-company-links strong,
.primary-nav .kehl-mega-card-copy strong,
.primary-nav .kehl-company-links strong {
    display: block !important;
    color: inherit !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    line-height: 1.35 !important;
}

@media (max-width: 700px) {
    .kehl-offcanvas-nav .kehl-mega-menu-services,
    .kehl-offcanvas-nav .kehl-mega-menu-company,
    .primary-nav .kehl-mega-menu-services,
    .primary-nav .kehl-mega-menu-company {
        padding-left: 12px !important;
    }

    .kehl-offcanvas-nav .kehl-mega-card-copy strong,
    .kehl-offcanvas-nav .kehl-company-links strong,
    .primary-nav .kehl-mega-card-copy strong,
    .primary-nav .kehl-company-links strong {
        font-size: 15px !important;
    }
}

/* Version 1.2.112: Projektanfrage-Popup an Kontaktseiten-Layout angepasst */
.kehl-project-modal-dialog {
    width: min(900px, 100%);
    padding: 38px;
    border: 1px solid rgba(21, 24, 33, .55);
    border-radius: 0 !important;
    background: var(--kehl-offwhite) !important;
    box-shadow: 0 24px 70px rgba(4, 10, 42, .24);
}

.kehl-project-modal-close {
    top: 18px;
    right: 18px;
    width: 40px;
    height: 40px;
    border: 1px solid rgba(21, 24, 33, .28);
    border-radius: 0 !important;
    background: transparent;
    color: var(--kehl-blue);
    font-size: 28px;
}

.kehl-project-modal-close:hover,
.kehl-project-modal-close:focus-visible {
    color: #fff;
    background: var(--kehl-blue);
    border-color: var(--kehl-blue);
}

.kehl-project-modal-head {
    max-width: 760px;
    margin-bottom: 30px;
    padding-right: 58px;
}

.kehl-project-modal-head h2 {
    margin: 4px 0 14px;
    color: var(--kehl-charcoal);
    font-size: var(--kehl-type-section-heading, 44px);
    line-height: 1.04;
    letter-spacing: -.035em;
}

.kehl-project-modal-head > p:last-child {
    max-width: 720px;
    color: rgba(21,24,33,.72);
    font-size: var(--kehl-type-body, 18px);
    line-height: 1.65;
}

.kehl-project-modal-dialog .kehl-modal-form {
    gap: 26px;
    padding: 34px 38px 38px;
    border: 1px solid rgba(21,24,33,.55);
    background: transparent;
}

.kehl-project-modal-dialog .kehl-modal-form .form-row {
    gap: 28px;
}

.kehl-project-modal-dialog .kehl-modal-form label > span {
    margin-bottom: 8px;
    color: var(--kehl-charcoal);
    font-size: 13px;
    font-weight: 700;
}

.kehl-project-modal-dialog .kehl-modal-form input:not([type="checkbox"]),
.kehl-project-modal-dialog .kehl-modal-form select,
.kehl-project-modal-dialog .kehl-modal-form textarea {
    width: 100%;
    padding: 13px 0 12px;
    border: 0;
    border-bottom: 1px solid rgba(21,24,33,.62);
    border-radius: 0 !important;
    color: var(--kehl-charcoal);
    background: transparent;
    box-shadow: none;
}

.kehl-project-modal-dialog .kehl-modal-form textarea {
    min-height: 150px;
    resize: vertical;
}

.kehl-project-modal-dialog .kehl-modal-form input:focus,
.kehl-project-modal-dialog .kehl-modal-form select:focus,
.kehl-project-modal-dialog .kehl-modal-form textarea:focus {
    border-color: var(--kehl-blue);
    box-shadow: none;
}

.kehl-project-modal-dialog .kehl-modal-form .privacy-check {
    padding-top: 4px;
}

.kehl-project-modal-dialog .kehl-modal-form .button-blue {
    width: 100%;
    min-height: 56px;
    margin-top: 0;
    border-radius: 0 !important;
}

@media (max-width: 720px) {
    .kehl-project-modal-dialog {
        width: 100%;
        max-height: 92vh;
        padding: 26px 18px 22px;
        border-radius: 0 !important;
    }

    .kehl-project-modal-head {
        margin-bottom: 24px;
        padding-right: 44px;
    }

    .kehl-project-modal-dialog .kehl-modal-form {
        padding: 24px 20px 26px;
    }
}

/* Version 1.2.114: Startseite neu strukturiert */
.home-main-v2 .home-process-section {
    background: var(--kehl-offwhite);
}

.home-process-grid {
    display: grid;
    grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
    gap: 72px;
    align-items: center;
}

.home-process-media figure {
    margin: 0;
    overflow: hidden;
}

.home-process-media img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 5;
    object-fit: cover;
}

.home-process-copy h2 {
    max-width: 720px;
    margin: 8px 0 20px;
}

.home-process-intro {
    max-width: 700px;
    margin: 0 0 34px;
    color: rgba(21,24,33,.74);
}

.home-process-steps {
    border-top: 1px solid var(--kehl-line);
}

.home-process-step {
    display: grid;
    grid-template-columns: 52px minmax(0, 1fr);
    gap: 18px;
    padding: 22px 0;
    border-bottom: 1px solid var(--kehl-line);
}

.home-process-step > span {
    color: var(--kehl-blue);
    font-size: var(--kehl-type-label, 12px);
    font-weight: 800;
    letter-spacing: .08em;
}

.home-process-step h3 {
    margin: 0 0 6px;
}

.home-process-step p {
    margin: 0;
    color: rgba(21,24,33,.72);
}

.home-services-list-section {
    background: #f7f5f2;
}

.home-services-list-head {
    display: grid;
    grid-template-columns: minmax(0, .35fr) minmax(0, 1fr);
    gap: 40px;
    align-items: end;
    margin-bottom: 34px;
}

.home-services-list-head h2 {
    margin: 0;
}

.home-services-links .services-link-row {
    padding: 22px 0;
}

.home-about-section {
    color: var(--kehl-white);
    background: var(--kehl-blue-dark);
}

.home-about-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.02fr) minmax(0, .98fr);
    gap: 72px;
    align-items: center;
}

.home-about-media img {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
}

.home-about-copy {
    max-width: 680px;
}

.home-about-copy .eyebrow {
    color: rgba(255,255,255,.68);
}

.home-about-copy h2 {
    margin: 8px 0 22px;
    color: #fff;
}

.home-about-copy > p:not(.eyebrow) {
    max-width: 620px;
    margin: 0;
    color: rgba(255,255,255,.78);
}

.home-about-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 26px;
    margin-top: 32px;
}

@media (max-width: 980px) {
    .home-process-grid,
    .home-about-grid {
        grid-template-columns: 1fr;
        gap: 42px;
    }

    .home-process-media img {
        aspect-ratio: 4 / 3;
    }

    .home-services-list-head {
        grid-template-columns: 1fr;
        gap: 10px;
    }
}

@media (max-width: 640px) {
    .home-process-grid,
    .home-about-grid {
        gap: 30px;
    }

    .home-process-step {
        grid-template-columns: 36px minmax(0, 1fr);
        gap: 12px;
    }

    .home-about-actions {
        align-items: flex-start;
        flex-direction: column;
        gap: 18px;
    }
}

/* Version 1.2.116: Startseite Über-uns-Bereich in warmem Steinton statt Blau */
.home-about-section {
    color: var(--kehl-charcoal);
    background: #ded7cf;
}

.home-about-copy .eyebrow {
    color: var(--kehl-blue);
}

.home-about-copy h2 {
    color: var(--kehl-charcoal);
}

.home-about-copy > p:not(.eyebrow) {
    color: rgba(21,24,33,.74);
}

.home-about-actions .button-light {
    color: #fff;
    background: var(--kehl-blue);
    border-color: var(--kehl-blue);
}

.home-about-actions .button-light:hover {
    color: #fff;
    background: var(--kehl-blue-dark);
    border-color: var(--kehl-blue-dark);
}

.home-about-actions .text-link-light {
    color: var(--kehl-blue);
}

/* Build 1.2.117: version marker */

/* Version 1.2.119: Leistungenbild auf Hochformat umgestellt */
body.kehl-services-page .services-page-intro-calm {
    padding-bottom: 88px;
}

.services-intro-copy-calm {
    max-width: 920px;
    margin-bottom: 56px;
}

.services-intro-copy-calm h1 {
    max-width: 760px;
}

.services-intro-copy-calm .services-intro-lead {
    max-width: 760px;
    margin-bottom: 0;
}

.services-process-block-calm {
    margin-bottom: 54px;
}

.services-process-block-calm > h2 {
    margin: 0 0 28px;
}

.services-process-list-calm {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0;
    border-top: 1px solid rgba(21, 24, 33, .14);
    border-bottom: 1px solid rgba(21, 24, 33, .14);
}

.services-process-item-calm {
    display: block;
    min-height: 210px;
    padding: 28px 28px 30px;
    border-bottom: 0;
    border-right: 1px solid rgba(21, 24, 33, .14);
}

.services-process-item-calm:last-child {
    border-right: 0;
}

.services-process-item-calm .services-process-number {
    display: block;
    margin-bottom: 24px;
    font-size: var(--kehl-type-label, 12px);
    letter-spacing: .12em;
}

.services-process-item-calm .services-process-copy h3 {
    margin: 0 0 12px;
}

.services-process-item-calm .services-process-copy p {
    margin: 0;
    max-width: 290px;
}

.services-intro-media-calm {
    width: 100%;
}

.services-feature-figure-calm img {
    width: 100%;
    aspect-ratio: 16 / 7;
    object-fit: cover;
    object-position: center 42%;
}

.services-feature-figure-calm .services-feature-caption {
    left: 20px;
    right: auto;
    bottom: 20px;
    min-width: 230px;
}

@media (max-width: 1100px) {
    .services-process-list-calm {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .services-process-item-calm:nth-child(2) {
        border-right: 0;
    }

    .services-process-item-calm:nth-child(-n+2) {
        border-bottom: 1px solid rgba(21, 24, 33, .14);
    }
}

@media (max-width: 700px) {
    body.kehl-services-page .services-page-intro-calm {
        padding-bottom: 64px;
    }

    .services-intro-copy-calm {
        margin-bottom: 40px;
    }

    .services-process-block-calm {
        margin-bottom: 38px;
    }

    .services-process-list-calm {
        grid-template-columns: 1fr;
    }

    .services-process-item-calm,
    .services-process-item-calm:nth-child(2) {
        min-height: 0;
        padding: 24px 0;
        border-right: 0;
        border-bottom: 1px solid rgba(21, 24, 33, .14);
    }

    .services-process-item-calm:last-child {
        border-bottom: 0;
    }

    .services-process-item-calm .services-process-number {
        margin-bottom: 12px;
    }

    .services-feature-figure-calm img {
        aspect-ratio: 4 / 3;
    }
}


/* Version 1.2.120: Leistungenbild erweitert, Abstand angepasst, Hover-Caption ergänzt */
body.kehl-services-page .services-process-block h2 {
    margin-bottom: 34px;
}

body.kehl-services-page .services-process-list {
    gap: 24px;
}

body.kehl-services-page .services-feature-figure-portrait {
    border-radius: 0;
}

body.kehl-services-page .services-feature-figure-portrait img {
    aspect-ratio: auto;
    height: auto;
    object-fit: contain;
    object-position: center top;
}

body.kehl-services-page .services-feature-figure-portrait .services-feature-caption {
    left: 18px;
    right: auto;
    bottom: 18px;
    padding: 12px 14px;
    background: linear-gradient(180deg, rgba(7, 19, 83, 0) 0%, rgba(7, 19, 83, .88) 100%);
    min-width: 240px;
    max-width: calc(100% - 36px);
}

body.kehl-services-page .services-feature-figure-portrait .services-feature-caption span {
    display: block;
}

@media (max-width: 980px) {
    body.kehl-services-page .services-feature-figure-portrait img {
        width: 100%;
        max-height: none;
    }
}

@media (max-width: 640px) {
    body.kehl-services-page .services-process-block h2 {
        margin-bottom: 24px;
    }

    body.kehl-services-page .services-process-list {
        gap: 18px;
    }

    body.kehl-services-page .services-feature-figure-portrait .services-feature-caption {
        left: 14px;
        bottom: 14px;
        min-width: 0;
        max-width: calc(100% - 28px);
    }
}


/* Version 1.2.121: Abstand und Hierarchie im Projektablauf verfeinert */
body.kehl-services-page .services-process-block > h2 {
    font-size: 40px !important;
    margin-bottom: 50px !important;
}

@media (max-width: 800px) {
    body.kehl-services-page .services-process-block > h2 {
        font-size: 32px !important;
        margin-bottom: 34px !important;
    }
}

/* Version 1.2.122: Leistungenbild exakt auf Höhe der linken Inhaltsspalte */
@media (min-width: 981px) {
    body.kehl-services-page .services-intro-layout {
        align-items: stretch;
    }

    body.kehl-services-page .services-intro-media {
        position: relative;
        min-height: 0;
        height: auto;
        align-self: stretch;
    }

    body.kehl-services-page .services-feature-figure-portrait {
        position: absolute;
        inset: 0;
        width: 100%;
        height: 100%;
        margin: 0;
        overflow: hidden;
    }

    body.kehl-services-page .services-feature-figure-portrait img {
        display: block;
        width: 100%;
        height: 100%;
        max-height: none;
        aspect-ratio: auto;
        object-fit: cover;
        object-position: center center;
    }
}

@media (max-width: 980px) {
    body.kehl-services-page .services-intro-media {
        position: static;
    }

    body.kehl-services-page .services-feature-figure-portrait {
        position: relative;
        inset: auto;
        height: auto;
    }

    body.kehl-services-page .services-feature-figure-portrait img {
        width: 100%;
        height: auto;
        object-fit: contain;
    }
}


/* Version 1.2.124: Startseiten-Hero mit eigenem Projektbild DSC_0014 */
body.home .hero-reference-look.home-hero.has-image {
    background-position: center 54%;
}

/* Version 1.2.126: Bildausschnitte Firmengeschichte optimiert */
.about-page-v2 .company-timeline-item:nth-child(1) .company-timeline-media img {
    object-position: center 24% !important;
}

.about-page-v2 .company-timeline-item:nth-child(7) .company-timeline-media img {
    object-position: center 30% !important;
}

@media (max-width: 700px) {
    .about-page-v2 .company-timeline-item:nth-child(1) .company-timeline-media img {
        object-position: center 22% !important;
    }

    .about-page-v2 .company-timeline-item:nth-child(7) .company-timeline-media img {
        object-position: center 27% !important;
    }
}

/* Version 1.2.127: Team-Hauptüberschrift auf große Seitenüberschrift angehoben */
body.kehl-team-page .team-page-title {
    font-size: var(--kehl-type-display) !important;
    line-height: .96;
    letter-spacing: -.045em;
    max-width: 760px;
}

@media (max-width: 900px) {
    body.kehl-team-page .team-page-title {
        max-width: 620px;
    }
}

/* Version 1.2.128: Team-Hauptüberschrift exakt wie Über uns */
body.kehl-team-page .team-page-title {
    font-size: clamp(44px, 5.2vw, 68px) !important;
}


/* Version 1.2.130: Karriere-Hero Titel dreizeilig, Akzentstrich entfernt */
.jobs-page .jobs-hero-title-stacked {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
}

.jobs-page .jobs-hero-title-stacked span {
    display: block;
    white-space: nowrap;
}

.jobs-page .jobs-hero-copy h1 + .jobs-hero-role,
.jobs-page .jobs-hero-title-stacked + .jobs-hero-role {
    margin-top: 18px;
}


/* Version 1.2.131: Erstes Bild in Unsere Geschichte weiter nach unten verschoben */
.about-page-v2 .company-timeline-item:nth-child(1) .company-timeline-media img {
    object-position: center 38% !important;
}

@media (max-width: 700px) {
    .about-page-v2 .company-timeline-item:nth-child(1) .company-timeline-media img {
        object-position: center 34% !important;
    }
}


/* Version 1.2.132: lokalen-Partner-Text auf Home und Leistungen entfernt */


/* Version 1.2.137: Leistungen-Unterseiten mit definierten Originalbildern */
.home-services-carousel-section {
    position: relative;
    overflow: hidden;
    background: #f3f1ed;
    color: #151821;
}

.home-services-carousel-heading {
    margin-bottom: 34px;
}

.home-services-carousel-heading h2 {
    margin: 7px 0 0;
    color: #151821;
}

.home-services-carousel {
    position: relative;
}

.home-services-carousel-viewport {
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.home-services-carousel-viewport::-webkit-scrollbar {
    display: none;
}

.home-services-carousel-track {
    --service-gap: 22px;
    display: flex;
    gap: var(--service-gap);
    width: max-content;
}

.home-service-carousel-card {
    flex: 0 0 calc((min(100vw - 80px, 1650px) - (3 * var(--service-gap))) / 4);
    min-width: 0;
    color: #151821;
    text-decoration: none;
    scroll-snap-align: start;
}

.home-service-carousel-image {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background: #d8d6d1;
}

.home-service-carousel-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .45s ease;
}

.home-service-carousel-card:hover .home-service-carousel-image img {
    transform: scale(1.025);
}

.home-service-carousel-title {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 68px;
    padding: 17px 0 13px;
    border-bottom: 1px solid rgba(15, 34, 129, .24);
}

.home-service-carousel-title strong {
    color: #151821;
    font-size: var(--kehl-type-small-heading);
    line-height: 1.08;
    font-weight: 700;
}

.home-service-carousel-title > span {
    color: var(--kehl-blue);
    font-size: 24px;
    line-height: 1;
    transition: transform .2s ease;
}

.home-service-carousel-card:hover .home-service-carousel-title > span {
    transform: translateX(4px);
}

.home-services-carousel-arrow {
    position: absolute;
    z-index: 4;
    top: 43%;
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    padding: 0;
    border: 1px solid rgba(15, 34, 129, .22);
    border-radius: 0;
    background: #fff;
    color: var(--kehl-blue);
    font: inherit;
    font-size: 25px;
    line-height: 1;
    cursor: pointer;
    transform: translateY(-50%);
    box-shadow: none;
    transition: background .2s ease, color .2s ease, opacity .2s ease;
}

.home-services-carousel-arrow.is-prev { left: -24px; }
.home-services-carousel-arrow.is-next { right: -24px; }

.home-services-carousel-arrow:hover:not(:disabled) {
    background: var(--kehl-blue);
    color: #fff;
}

.home-services-carousel-arrow:disabled {
    opacity: 1;
    background: #e5e4e2;
    border-color: #c9c9cd;
    color: #999aa1;
    cursor: default;
}

@media (max-width: 1199px) {
    .home-service-carousel-card {
        flex-basis: calc((100vw - 80px - (2 * var(--service-gap))) / 3);
    }
}

@media (max-width: 899px) {
    .home-service-carousel-card {
        flex-basis: calc((100vw - 64px - var(--service-gap)) / 2);
    }
    .home-services-carousel-arrow.is-prev { left: -14px; }
    .home-services-carousel-arrow.is-next { right: -14px; }
}

@media (max-width: 639px) {
    .home-services-carousel-heading {
        margin-bottom: 24px;
        padding-right: 112px;
    }
    .home-services-carousel-track {
        --service-gap: 16px;
    }
    .home-service-carousel-card {
        flex-basis: calc(100vw - 56px);
    }
    .home-service-carousel-image {
        aspect-ratio: 4 / 4.6;
    }
    .home-services-carousel-title {
        min-height: 62px;
        padding-top: 14px;
    }
    .home-services-carousel-title strong {
        font-size: 24px;
    }
    .home-services-carousel-arrow {
        top: -66px;
        width: 44px;
        height: 44px;
        transform: none;
    }
    .home-services-carousel-arrow.is-prev { left: auto; right: 52px; }
    .home-services-carousel-arrow.is-next { right: 0; }
}


/* Version 1.2.138: Leistungs-Unterseiten wieder kompakt wie zuvor, mit Originalbildern und Projekte-Button */
.legacy-project-preview-grid.is-single {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.legacy-project-preview-grid.is-three > a:last-child {
    grid-column: 1 / -1;
    width: calc(50% - 13px);
    justify-self: center;
}

.legacy-project-all-link {
    display: flex;
    justify-content: center;
    margin-top: 28px;
}

@media (max-width: 640px) {
    .legacy-project-preview-grid.is-single {
        grid-template-columns: 1fr;
    }

    .legacy-project-preview-grid.is-three > a:last-child {
        grid-column: auto;
        width: 100%;
    }

    .legacy-project-all-link {
        margin-top: 22px;
    }
}


/* Version 1.2.139: Bildnachweis für definierte Architekt-/Fotografenbilder */
.kehl-image-credit-host {
    position: relative !important;
}

.kehl-image-credit {
    position: absolute;
    left: 14px;
    bottom: 14px;
    z-index: 5;
    display: flex;
    flex-direction: column;
    gap: 2px;
    max-width: calc(100% - 28px);
    padding: 8px 10px;
    background: rgba(8, 14, 30, .82);
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: .01em;
    pointer-events: none;
    opacity: 0;
    transform: translateY(5px);
    transition: opacity .2s ease, transform .2s ease;
}

@media (hover: hover) and (pointer: fine) {
    .kehl-image-credit-host:hover .kehl-image-credit,
    .kehl-image-credit-host:focus-within .kehl-image-credit {
        opacity: 1;
        transform: translateY(0);
    }
}

@media (hover: none), (pointer: coarse) {
    .kehl-image-credit-host.is-credit-visible .kehl-image-credit {
        opacity: 1;
        transform: translateY(0);
    }
}

.kehl-lightbox figure {
    position: relative;
}

.kehl-lightbox .kehl-image-credit {
    left: 16px;
    bottom: 16px;
    opacity: 1;
    transform: none;
}


/* Version 1.2.140: Globaler Bildnachweis greift auch bei der lokalen Treppenbild-Kopie auf Home und Leistungen. */


/* Version 1.2.141: Leistungenbild exakt an Höhe der linken Inhaltsspalte koppeln */
@media (min-width: 981px) {
    body.kehl-services-page .services-intro-layout {
        align-items: stretch !important;
    }

    body.kehl-services-page .services-intro-media {
        align-self: stretch !important;
        height: var(--kehl-services-copy-height, 100%) !important;
        min-height: 0 !important;
        overflow: hidden;
    }

    body.kehl-services-page .services-feature-figure-portrait {
        position: relative !important;
        inset: auto !important;
        width: 100% !important;
        height: 100% !important;
        min-height: 0 !important;
        margin: 0 !important;
        overflow: hidden;
    }

    body.kehl-services-page .services-feature-figure-portrait img {
        width: 100% !important;
        height: 100% !important;
        min-height: 0 !important;
        max-height: none !important;
        object-fit: cover !important;
        object-position: center center !important;
    }
}


/* Version 1.2.142: Leistungenbild wird ausschließlich von der linken Textspalte in der Höhe bestimmt */
@media (min-width: 981px) {
    body.kehl-services-page .services-intro-layout {
        align-items: stretch !important;
    }

    body.kehl-services-page .services-intro-copy {
        align-self: start !important;
    }

    body.kehl-services-page .services-intro-media {
        position: relative !important;
        align-self: stretch !important;
        height: auto !important;
        min-height: 0 !important;
        overflow: hidden !important;
    }

    body.kehl-services-page .services-feature-figure-portrait {
        position: absolute !important;
        inset: 0 !important;
        width: 100% !important;
        height: 100% !important;
        min-height: 0 !important;
        margin: 0 !important;
        overflow: hidden !important;
    }

    body.kehl-services-page .services-feature-figure-portrait img {
        position: absolute !important;
        inset: 0 !important;
        display: block !important;
        width: 100% !important;
        height: 100% !important;
        min-height: 0 !important;
        max-height: none !important;
        aspect-ratio: auto !important;
        object-fit: cover !important;
        object-position: center center !important;
    }
}


/* Version 1.2.143: Mobile Overflow im Über-uns-Bereich der Startseite beheben */
@media (max-width: 800px) {
    html,
    body,
    .home-main-v2,
    .home-about-section {
        max-width: 100%;
        overflow-x: clip !important;
    }

    .home-about-section .kehl-container,
    .home-about-grid,
    .home-about-media,
    .home-about-copy {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .home-about-copy h2 {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        overflow-wrap: anywhere;
        word-break: normal;
        hyphens: auto;
    }

    .home-about-copy > p:not(.eyebrow),
    .home-about-actions {
        max-width: 100%;
        min-width: 0;
    }
}


/* Version 1.2.144: Mobile Über-uns-Sektion luftiger und besser umbrechend */
@media (max-width: 640px) {
    .home-about-section .kehl-container {
        box-sizing: border-box;
        padding-left: 24px !important;
        padding-right: 24px !important;
    }

    .home-about-copy h2 {
        font-size: 40px !important;
        line-height: 1.02 !important;
        letter-spacing: -.035em;
        overflow-wrap: normal;
        word-break: normal;
        hyphens: manual;
        margin-bottom: 26px;
    }

    .home-about-copy > p:not(.eyebrow) {
        font-size: 18px;
        line-height: 1.55;
    }

    .home-about-actions {
        margin-top: 30px;
        gap: 20px;
    }
}


/* Version 1.2.145: Mobile Über-uns-Headline sicher innerhalb des Viewports */
@media (max-width: 430px) {
    .home-about-section .kehl-container {
        padding-left: 22px !important;
        padding-right: 22px !important;
    }

    .home-about-copy h2 {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        font-size: 31px !important;
        line-height: 1.08 !important;
        letter-spacing: -.02em !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
        hyphens: none !important;
        white-space: normal !important;
    }
}


/* Version 1.2.146: Unternehmensseite mobil deutlich kompakter */
@media (max-width: 700px) {
    body.kehl-company-page .company-family-section {
        padding-top: 110px !important;
        padding-bottom: 52px !important;
    }

    body.kehl-company-page .company-family-grid {
        gap: 26px !important;
    }

    body.kehl-company-page .team-family-photo img {
        height: 250px !important;
        object-position: center 42%;
    }

    body.kehl-company-page .company-family-copy .eyebrow {
        margin-bottom: 14px !important;
    }

    body.kehl-company-page .team-family-copy h1 {
        margin-bottom: 18px !important;
        font-size: 34px !important;
        line-height: 1.02 !important;
        letter-spacing: -.03em !important;
        max-width: 100% !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
        hyphens: none !important;
    }

    body.kehl-company-page .team-family-copy > p:not(.eyebrow) {
        margin-bottom: 0 !important;
        font-size: 17px !important;
        line-height: 1.6 !important;
    }
}


/* Version 1.2.147: Unternehmensseite mobil wirklich viewport-sicher */
@media (max-width: 700px) {
    body.kehl-company-page,
    body.kehl-company-page .site-main,
    body.kehl-company-page .company-page-v2,
    body.kehl-company-page .company-family-section,
    body.kehl-company-page .company-master-section {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: clip !important;
    }

    body.kehl-company-page .kehl-container {
        width: calc(100% - 40px) !important;
        max-width: calc(100% - 40px) !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    body.kehl-company-page .company-family-section {
        padding-top: 160px !important;
        padding-bottom: 44px !important;
    }

    body.kehl-company-page .company-family-grid {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 24px !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    body.kehl-company-page .team-family-photo,
    body.kehl-company-page .company-family-copy {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    body.kehl-company-page .team-family-photo img {
        display: block !important;
        width: 100% !important;
        height: 210px !important;
        max-width: 100% !important;
        object-fit: cover !important;
        object-position: center 42% !important;
    }

    body.kehl-company-page .company-family-copy .eyebrow {
        margin: 0 0 12px !important;
    }

    body.kehl-company-page .team-family-copy h1 {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 0 16px !important;
        font-size: 30px !important;
        line-height: 1.08 !important;
        letter-spacing: -.025em !important;
        overflow-wrap: anywhere !important;
        word-break: normal !important;
        hyphens: auto !important;
    }

    body.kehl-company-page .team-family-copy > p:not(.eyebrow) {
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        font-size: 16px !important;
        line-height: 1.55 !important;
    }

    body.kehl-company-page .company-master-band {
        grid-template-columns: minmax(0, 1fr) !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    body.kehl-company-page .company-master-copy,
    body.kehl-company-page .company-master-document-wrap {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    body.kehl-company-page .company-master-copy h2 {
        font-size: 32px !important;
        line-height: 1.08 !important;
    }

    body.kehl-company-page .company-master-copy p {
        font-size: 16px !important;
        line-height: 1.55 !important;
        overflow-wrap: anywhere !important;
    }
}

@media (max-width: 430px) {
    body.kehl-company-page .kehl-container {
        width: calc(100% - 36px) !important;
        max-width: calc(100% - 36px) !important;
    }

    body.kehl-company-page .team-family-copy h1 {
        font-size: 28px !important;
    }
}


/* Version 1.2.148: Hamburger-Symbol auf Mobilgeräten zuverlässig sichtbar */
@media (max-width: 700px) {
    .site-header .nav-toggle,
    body.home .site-header .nav-toggle {
        position: relative !important;
        padding-right: 42px !important;
        overflow: visible !important;
    }

    .site-header .nav-toggle > span:not(.screen-reader-text),
    body.home .site-header .nav-toggle > span:not(.screen-reader-text) {
        display: none !important;
    }

    .site-header .nav-toggle::before,
    body.home .site-header .nav-toggle::before {
        content: "" !important;
        position: absolute !important;
        top: 14px !important;
        right: 0 !important;
        width: 26px !important;
        height: 2px !important;
        background: #fff !important;
        border-radius: 2px !important;
        box-shadow: 0 8px 0 #fff, 0 16px 0 #fff !important;
        opacity: 1 !important;
        visibility: visible !important;
        pointer-events: none !important;
        transform: none !important;
    }

    .nav-open .site-header .nav-toggle::before,
    body.nav-open.home .site-header .nav-toggle::before {
        top: 22px !important;
        box-shadow: none !important;
        transform: rotate(45deg) !important;
    }

    .nav-open .site-header .nav-toggle::after,
    body.nav-open.home .site-header .nav-toggle::after {
        content: "" !important;
        position: absolute !important;
        top: 22px !important;
        right: 0 !important;
        width: 26px !important;
        height: 2px !important;
        background: #fff !important;
        border-radius: 2px !important;
        transform: rotate(-45deg) !important;
        pointer-events: none !important;
    }
}


/* Version 1.2.149: Mobil nur Hamburger-Icon, ohne MENÜ-Text */
@media (max-width: 700px) {
    .site-header .nav-toggle,
    body.home .site-header .nav-toggle,
    body.kehl-services-page .site-header .nav-toggle,
    body.kehl-service-detail-page .site-header .nav-toggle,
    body.kehl-company-page .site-header .nav-toggle,
    body.kehl-about-page .site-header .nav-toggle,
    body.kehl-team-page .site-header .nav-toggle,
    body.kehl-jobs-page .site-header .nav-toggle {
        width: 44px !important;
        min-width: 44px !important;
        height: 44px !important;
        padding: 0 !important;
        margin: 0 !important;
        display: block !important;
        flex: 0 0 44px !important;
        position: relative !important;
        overflow: visible !important;
        font-size: 0 !important;
        line-height: 0 !important;
    }

    .site-header .nav-toggle-label,
    body.home .site-header .nav-toggle-label,
    body.kehl-services-page .site-header .nav-toggle-label,
    body.kehl-service-detail-page .site-header .nav-toggle-label,
    body.kehl-company-page .site-header .nav-toggle-label,
    body.kehl-about-page .site-header .nav-toggle-label,
    body.kehl-team-page .site-header .nav-toggle-label,
    body.kehl-jobs-page .site-header .nav-toggle-label {
        display: none !important;
    }

    .site-header .nav-toggle::before,
    body.home .site-header .nav-toggle::before {
        top: 12px !important;
        right: 8px !important;
        width: 28px !important;
        height: 2px !important;
        box-shadow: 0 9px 0 #fff, 0 18px 0 #fff !important;
    }

    .nav-open .site-header .nav-toggle::before,
    body.nav-open.home .site-header .nav-toggle::before {
        top: 21px !important;
        right: 8px !important;
        box-shadow: none !important;
    }

    .nav-open .site-header .nav-toggle::after,
    body.nav-open.home .site-header .nav-toggle::after {
        top: 21px !important;
        right: 8px !important;
        width: 28px !important;
    }
}


/* Version 1.2.151: Startseite Über-uns-Sektion mobil sauber umbrechen */
@media (max-width: 700px) {
    body.home,
    body.home .site-main,
    body.home .home-main-v2,
    body.home .home-about-section {
        width: 100% !important;
        max-width: 100% !important;
        overflow-x: clip !important;
    }

    body.home .home-about-section {
        padding-top: 52px !important;
        padding-bottom: 52px !important;
    }

    body.home .home-about-section .kehl-container {
        width: calc(100% - 32px) !important;
        max-width: calc(100% - 32px) !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        box-sizing: border-box !important;
    }

    body.home .home-about-grid {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 24px !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        align-items: start !important;
    }

    body.home .home-about-media,
    body.home .home-about-copy {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    body.home .home-about-media img {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        height: 220px !important;
        aspect-ratio: auto !important;
        object-fit: cover !important;
        object-position: center 42% !important;
    }

    body.home .home-about-copy .eyebrow {
        margin: 0 0 14px !important;
    }

    body.home .home-about-copy h2 {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 0 18px !important;
        font-size: clamp(24px, 9vw, 38px) !important;
        line-height: 1.06 !important;
        letter-spacing: -.025em !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
        word-break: normal !important;
        hyphens: auto !important;
    }

    body.home .home-about-copy > p:not(.eyebrow) {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        font-size: 18px !important;
        line-height: 1.55 !important;
    }

    body.home .home-about-actions {
        width: 100% !important;
        max-width: 100% !important;
        margin-top: 24px !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 16px !important;
    }
}

/* Version 1.2.152: Lange Leistungsueberschriften auf Mobilgeraeten vollstaendig anzeigen */
@media (max-width: 700px) {
    body.kehl-service-detail-page .legacy-project-intro h1 {
        max-width: 100% !important;
        min-width: 0 !important;
        font-size: clamp(28px, 7.5vw, 40px) !important;
        line-height: 1.12 !important;
        letter-spacing: -.035em !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
        word-break: normal !important;
        hyphens: auto !important;
    }
    body.kehl-service-detail-page .legacy-project-intro-grid,
    body.kehl-service-detail-page .legacy-project-intro-grid > div {
        min-width: 0 !important;
        max-width: 100% !important;
    }
}

/* Version 1.2.153: Kompakte, gleichmaessige Mobilansicht der Leistungen-Einleitung */
@media (max-width: 700px) {
    body.kehl-services-page .services-page-intro {
        padding-top: 120px !important;
    }
    body.kehl-services-page .services-page-intro > .kehl-container {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 26px !important;
        padding-right: 26px !important;
    }
    body.kehl-services-page .services-intro-layout {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 32px !important;
    }
    body.kehl-services-page .services-intro-copy,
    body.kehl-services-page .services-process-block,
    body.kehl-services-page .services-process-copy {
        min-width: 0 !important;
        max-width: 100% !important;
    }
    body.kehl-services-page .services-intro-copy h1 {
        font-size: clamp(34px, 9.2vw, 44px) !important;
        line-height: 1.06 !important;
        letter-spacing: -.045em !important;
        margin-bottom: 35px !important;
        max-width: 100% !important;
        overflow-wrap: break-word !important;
        hyphens: auto !important;
    }
    body.kehl-services-page .services-process-block > h2 {
        font-size: clamp(26px, 7.5vw, 32px) !important;
        line-height: 1.12 !important;
        margin-bottom: 28px !important;
    }
    body.kehl-services-page .services-process-item {
        grid-template-columns: 36px minmax(0, 1fr) !important;
        gap: 14px !important;
        padding-bottom: 20px !important;
    }
    body.kehl-services-page .services-process-number {
        font-size: 23px !important;
    }
    body.kehl-services-page .services-process-copy h3 {
        font-size: 23px !important;
        line-height: 1.18 !important;
    }
    body.kehl-services-page .services-process-copy p {
        font-size: 16px !important;
        line-height: 1.55 !important;
        overflow-wrap: break-word !important;
    }
}

/* Version 1.2.154: Karriere-Ueberschrift auf schmalen Displays komplett sichtbar */
@media (max-width: 700px) {
    .jobs-page .jobs-overview-section .kehl-container {
        box-sizing: border-box !important;
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 24px !important;
        padding-right: 24px !important;
    }
    .jobs-page .jobs-heading-block {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }
    .jobs-page .jobs-heading-block h2 {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        font-size: clamp(23px, 6.3vw, 32px) !important;
        line-height: 1.12 !important;
        letter-spacing: -.035em !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
        word-break: normal !important;
        hyphens: auto !important;
    }
    .jobs-page .jobs-section-intro {
        max-width: 100% !important;
        overflow-wrap: break-word !important;
    }
}

/* Version 1.2.155: kompakte Karriere-Karten fuer Smartphones */
@media (max-width: 700px) {
    .jobs-page .jobs-details-grid.jobs-detail-cards {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
        gap: 0 !important;
    }
    .jobs-page .jobs-detail-cards article {
        box-sizing: border-box !important;
        width: 100% !important;
        min-width: 0 !important;
        min-height: 0 !important;
        padding: 27px 21px 25px !important;
    }
    .jobs-page .jobs-detail-cards article::after {
        top: 13px !important;
        right: 13px !important;
        width: 24px !important;
        height: 24px !important;
    }
    .jobs-page .jobs-detail-cards h2 {
        font-size: clamp(26px, 7.2vw, 32px) !important;
        line-height: 1.12 !important;
        letter-spacing: -.035em !important;
        margin: 0 0 18px !important;
        overflow-wrap: break-word !important;
    }
    .jobs-page .jobs-list li {
        box-sizing: border-box !important;
        padding: 11px 0 11px 26px !important;
        font-size: 15px !important;
        line-height: 1.45 !important;
        overflow-wrap: break-word !important;
    }
    .jobs-page .jobs-list li::before {
        left: 3px !important;
        top: 18px !important;
        width: 7px !important;
        height: 7px !important;
    }
}


/* Version 1.2.156: mobile Karriere-Hero Schrift vor hellem Foto lesbar */
@media (max-width: 700px) {
    body.kehl-jobs-page .jobs-hero-shade,
    body.page-template-page-jobs .jobs-hero-shade,
    .jobs-page .jobs-hero-shade {
        background: linear-gradient(90deg,
            rgba(4, 19, 78, .78) 0%,
            rgba(4, 19, 78, .68) 55%,
            rgba(4, 19, 78, .46) 100%) !important;
    }
    .jobs-page .jobs-hero-copy .jobs-hero-kicker,
    .jobs-page .jobs-hero-copy h1,
    .jobs-page .jobs-hero-copy .jobs-hero-role {
        color: #fff !important;
        text-shadow: 0 2px 8px rgba(0, 0, 0, .55) !important;
    }
}


/* Version 1.2.157: Timeline-Karten auf Smartphones ohne Ueberlauf */
@media (max-width: 760px) {
    .about-page-v2 .company-timeline,
    .about-page-v2 .company-timeline-item,
    .about-page-v2 .company-timeline-item.is-right {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }
    .about-page-v2 .company-timeline-item,
    .about-page-v2 .company-timeline-item.is-right {
        grid-template-columns: 22px minmax(0, 1fr);
        gap: 12px;
    }
    .about-page-v2 .company-timeline-media,
    .about-page-v2 .company-timeline-copy,
    .about-page-v2 .company-timeline-item.is-right .company-timeline-copy {
        min-width: 0;
        max-width: 100%;
        width: 100%;
        box-sizing: border-box;
    }
    .about-page-v2 .company-timeline-copy,
    .about-page-v2 .company-timeline-item.is-right .company-timeline-copy {
        padding: 24px 18px 22px;
    }
    .about-page-v2 .company-timeline-copy h3 {
        max-width: 100%;
        min-width: 0;
        font-size: clamp(22px, 6.2vw, 28px);
        line-height: 1.16;
        letter-spacing: -.025em;
        overflow-wrap: anywhere;
        word-break: normal;
        hyphens: auto;
    }
    .about-page-v2 .company-timeline-copy p {
        max-width: 100%;
        overflow-wrap: break-word;
        font-size: 15px;
        line-height: 1.6;
    }
    .about-page-v2 .company-timeline::before { left: 11px; }
}

/* Version 1.2.160: Karriere-Hero ausschließlich Desktop */
@media (min-width: 1101px) {
    body.kehl-jobs-page .jobs-page .jobs-hero-stage {
        min-height: 650px;
    }
    body.kehl-jobs-page .jobs-page .jobs-hero-inner {
        padding-top: 115px;
        padding-bottom: 83px;
    }
    body.kehl-jobs-page .jobs-page .jobs-hero-image img {
        object-position: center 35%;
    }
}

/* 1.2.161: Bilder der Firmengeschichte in vorhandener Lightbox öffnen */
.about-page-v2 .company-timeline-image-link { display:block; width:100%; height:100%; cursor:zoom-in; }
.about-page-v2 .company-timeline-image-link:focus-visible { outline:3px solid #172b91; outline-offset:-3px; }

/* 1.2.162: Klickbare Bilder und robuste Lightbox für die Firmengeschichte */
.about-page-v2 .company-timeline-image-link { position:relative; z-index:2; display:block; width:100%; cursor:zoom-in; }
.about-page-v2 .company-timeline-image-link img { pointer-events:none; }
.kehl-history-lightbox { position:fixed; inset:0; z-index:2147483000; display:none; align-items:center; justify-content:center; padding:70px 78px; background:rgba(5,9,25,.96); }
.kehl-history-lightbox.is-open { display:flex; }
.kehl-history-lightbox img { display:block; max-width:100%; max-height:calc(100dvh - 110px); width:auto; height:auto; object-fit:contain; }
.kehl-history-lightbox button { position:absolute; border:0; background:transparent; color:#fff; font-size:48px; line-height:1; cursor:pointer; padding:8px 14px; }
.kehl-history-close { top:15px; right:20px; }
.kehl-history-prev { left:12px; top:50%; transform:translateY(-50%); }
.kehl-history-next { right:12px; top:50%; transform:translateY(-50%); }
@media(max-width:700px) { .kehl-history-lightbox { padding:64px 12px; } .kehl-history-lightbox img { max-height:calc(100dvh - 140px); } .kehl-history-prev { left:0; } .kehl-history-next { right:0; } }

/* 1.2.163: Familienfoto auf /unternehmen/ per Lightbox öffnen */
.company-page-v2 .company-family-section .company-family-image-lightbox { display:block; width:100%; cursor:zoom-in; }
.company-page-v2 .company-family-section .company-family-image-lightbox img { display:block; width:100%; }
.company-page-v2 .company-family-section .company-family-image-lightbox:focus-visible { outline:3px solid #172b91; outline-offset:4px; }

/* 1.2.164: Zweite Zoomstufe für das Familienfoto im Unternehmen-Lightbox. */
.kehl-lightbox.is-family-photo img { cursor: zoom-in; }
.kehl-lightbox.is-family-photo.is-family-zoom img { cursor: zoom-out; object-fit: contain; }
.kehl-lightbox.is-family-photo.is-family-zoom figure {
    overflow: auto;
    width: min(1400px, 88vw);
    max-width: min(1400px, 88vw);
    max-height: 88vh;
    overscroll-behavior: contain;
}


/* 1.2.165: Familienfoto auf der Startseite in Lightbox mit Zoom öffnen */
.home-about-section .home-about-media .home-family-image-lightbox { display:block; width:100%; cursor:zoom-in; }
.home-about-section .home-about-media .home-family-image-lightbox img { display:block; width:100%; }
.home-about-section .home-about-media .home-family-image-lightbox:focus-visible { outline:3px solid #172b91; outline-offset:4px; }

/* 1.2.166: Cursor-gesteuertes Verschieben beim Familienfoto-Zoom ohne Scrollleisten. */
.kehl-lightbox.is-family-photo.is-family-zoom figure {
    scrollbar-width: none;
    -ms-overflow-style: none;
}
.kehl-lightbox.is-family-photo.is-family-zoom figure::-webkit-scrollbar { display: none; }


/* 1.2.168: Textblock auf Smartphones weitere 38px höher. */
@media (max-width: 767px) {
    body.home .hero-reference-look .hero-content {
        position: relative;
        top: -90px;
    }
}
@media (max-width: 767px) and (max-height: 650px) {
    body.home .hero-reference-look .hero-content {
        top: -50px;
    }
}

/* 1.2.169: Mobil-Navigation unterhalb der Leistungsüberschrift.
   Separate Zeile für Pfeile statt Überlagerung der H2. */
@media (max-width: 639px) {
    .home-services-carousel-section .home-services-carousel-heading {
        padding-right: 0;
        margin-bottom: 82px;
    }
    .home-services-carousel-section .home-services-carousel-arrow {
        top: -64px;
        transform: none;
        width: 44px;
        height: 44px;
    }
    .home-services-carousel-section .home-services-carousel-arrow.is-prev {
        left: auto;
        right: 54px;
    }
    .home-services-carousel-section .home-services-carousel-arrow.is-next {
        right: 0;
    }
}


/* 1.2.173: Leistungs-Unterseiten mit kastenförmigen Vorschaubildern. */
.legacy-project-preview-grid {
    align-items: start;
}

.legacy-project-preview-grid.is-three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.legacy-project-preview-grid a {
    aspect-ratio: 1 / 1;
}

.legacy-project-preview-grid img {
    width: 100%;
    height: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
}

@media (max-width: 1100px) {
    .legacy-project-preview-grid.is-three {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 20px;
    }
}

@media (max-width: 900px) {
    .legacy-project-preview-grid.is-three {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 640px) {
    .legacy-project-preview-grid.is-three {
        grid-template-columns: 1fr;
    }

    .legacy-project-preview-grid a,
    .legacy-project-preview-grid img {
        aspect-ratio: 4 / 3;
    }
}


/* 1.2.174: Alte Zentrierregel der dritten Kachel aufheben. */
@media (min-width: 901px) {
    .legacy-project-page .legacy-project-preview-grid.is-three {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 20px;
    }
    .legacy-project-page .legacy-project-preview-grid.is-three > a:last-child {
        grid-column: auto;
        width: 100%;
        justify-self: stretch;
    }
}
@media (min-width: 641px) and (max-width: 900px) {
    .legacy-project-page .legacy-project-preview-grid.is-three > a:last-child {
        grid-column: auto;
        width: 100%;
        justify-self: stretch;
    }
}
.legacy-project-page .legacy-project-preview-grid > a { aspect-ratio: 1 / 1; }
.legacy-project-page .legacy-project-preview-grid > a > img {
    display:block; width:100%; height:100%; object-fit:cover;
}
@media (max-width: 640px) {
    .legacy-project-page .legacy-project-preview-grid > a { aspect-ratio: 4 / 3; }
}

/* Version 1.2.175: Team-Überschrift zurück auf die frühere kleinere Größe */
body.kehl-team-page .team-page-title {
    font-size: var(--kehl-type-section-heading) !important;
    line-height: 1.04;
    letter-spacing: -.035em;
    max-width: 620px;
}

/* 1.2.176: Karriere-Hero-Text auf Desktop um 30px tiefer, ohne Hero-Höhe zu ändern */
@media (min-width: 1101px) {
  body.kehl-jobs-page .jobs-page .jobs-hero-inner {
    padding-top: 145px;
    padding-bottom: 53px;
  }
}

/* 1.2.177: Desktop-Karriere-Hero-Text weitere 15px tiefer */
@media (min-width: 1101px) {
  body.kehl-jobs-page .jobs-page .jobs-hero-inner {
    padding-top: 160px;
    padding-bottom: 38px;
  }
}


/* 1.2.183: Mittlere Viewports: Menütext links, Icon rechts, ohne Überlagerung. */
@media (min-width: 701px) and (max-width: 1100px) {
  body .site-header .nav-toggle,
  body.kehl-jobs-page .site-header .nav-toggle {
    position: relative !important;
    display: block !important;
    box-sizing: border-box !important;
    width: 132px !important;
    min-width: 132px !important;
    max-width: 132px !important;
    flex: 0 0 132px !important;
    height: 48px !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    font-size: 14px !important;
  }
  body .site-header .nav-toggle .nav-toggle-label,
  body.kehl-jobs-page .site-header .nav-toggle .nav-toggle-label {
    display: block !important;
    position: absolute !important;
    top: 50% !important;
    bottom: auto !important;
    left: 0 !important;
    right: auto !important;
    width: 75px !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
    line-height: 20px !important;
    font-size: 14px !important;
    transform: translateY(-50%) !important;
    white-space: nowrap !important;
  }
  body .site-header .nav-toggle > span:not(.screen-reader-text) {
    display: none !important;
  }
  body .site-header .nav-toggle::before,
  body.kehl-jobs-page .site-header .nav-toggle::before {
    content: "" !important;
    position: absolute !important;
    display: block !important;
    left: auto !important;
    right: 3px !important;
    top: 15px !important;
    width: 28px !important;
    height: 2px !important;
    margin: 0 !important;
    padding: 0 !important;
    background: currentColor !important;
    box-shadow: 0 8px 0 currentColor, 0 16px 0 currentColor !important;
    transform: none !important;
    opacity: 1 !important;
  }
  body .site-header .nav-toggle::after {
    content: none !important;
  }
  body.nav-open .site-header .nav-toggle::before {
    top: 23px !important;
    box-shadow: none !important;
    transform: rotate(45deg) !important;
  }
  body.nav-open .site-header .nav-toggle::after {
    content: "" !important;
    position: absolute !important;
    top: 23px !important;
    right: 3px !important;
    width: 28px !important;
    height: 2px !important;
    background: currentColor !important;
    transform: rotate(-45deg) !important;
  }
}

/* 1.2.184: Getrenntes Icon-Element statt überlagernder Pseudolinien, 701–1100px. */
@media (min-width:701px) and (max-width:1100px) {
  html body .site-header .header-inner > .nav-toggle {
    display: flex !important;
    position: relative !important;
    flex-flow: row nowrap !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 18px !important;
    box-sizing: border-box !important;
    width: 132px !important;
    min-width: 132px !important;
    max-width: 132px !important;
    flex: 0 0 132px !important;
    height: 52px !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    color: #fff !important;
  }
  html body .site-header .header-inner > .nav-toggle::before,
  html body .site-header .header-inner > .nav-toggle::after {
    content: none !important;
    display: none !important;
    box-shadow: none !important;
  }
  html body .site-header .header-inner > .nav-toggle > b.nav-toggle-label {
    display: block !important;
    position: static !important;
    inset: auto !important;
    float: none !important;
    flex: 0 0 auto !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    font-size: 13px !important;
    line-height: 20px !important;
    white-space: nowrap !important;
  }
  html body .site-header .header-inner > .nav-toggle > span:not(.screen-reader-text) {
    display: none !important;
  }
  html body .site-header .header-inner > .nav-toggle > .kehl-compact-menu-icon {
    display: flex !important;
    position: static !important;
    flex: 0 0 28px !important;
    flex-direction: column !important;
    justify-content: center !important;
    gap: 6px !important;
    width: 28px !important;
    height: 28px !important;
    padding: 0 !important;
    margin: 0 !important;
    transform: none !important;
    pointer-events: none !important;
  }
  html body .site-header .header-inner > .nav-toggle > .kehl-compact-menu-icon i {
    display: block !important;
    width: 28px !important;
    height: 2px !important;
    flex: 0 0 2px !important;
    background: #fff !important;
    border-radius: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    transition: transform .2s ease, opacity .2s ease;
  }
  html body.nav-open .site-header .nav-toggle .kehl-compact-menu-icon i:first-child {
    transform: translateY(8px) rotate(45deg) !important;
  }
  html body.nav-open .site-header .nav-toggle .kehl-compact-menu-icon i:nth-child(2) {
    opacity: 0 !important;
  }
  html body.nav-open .site-header .nav-toggle .kehl-compact-menu-icon i:last-child {
    transform: translateY(-8px) rotate(-45deg) !important;
  }
}


/* 1.2.189: Startseiten-Hero im Chronik-Look (1626 – 2026, Überschrift, Zeile, Projekt anfragen). */
@font-face {
    font-family: "Kehl Condensed";
    src: url("../fonts/barlow-condensed-latin-600-normal.woff2") format("woff2");
    font-weight: 600;
    font-style: normal;
    font-display: swap;
}

html body.home .home-hero.hero-chronik.has-image {
    background-image:
        linear-gradient(90deg, rgba(10, 24, 120, .96) 0%, rgba(12, 28, 128, .9) 22%, rgba(15, 34, 129, .66) 40%, rgba(15, 34, 129, .3) 56%, rgba(15, 34, 129, .08) 70%, rgba(15, 34, 129, 0) 82%),
        var(--hero-image) !important;
    background-size: cover !important;
    background-position: center 54% !important;
}

html body.home .home-hero.hero-chronik::before,
html body.home .home-hero.hero-chronik .hero-overlay,
html body.home .home-hero.hero-chronik .hero-fact {
    display: none !important;
}

html body.home .home-hero.hero-chronik .hero-inner {
    display: flex !important;
    align-items: center !important;
    min-height: 760px !important;
    padding-top: 150px !important;
    padding-bottom: 80px !important;
}

html body.home .home-hero.hero-chronik .hero-content {
    max-width: 720px !important;
    padding: 0 !important;
    top: auto !important;
}

html body.home .home-hero.hero-chronik .hero-chronik-years {
    margin: 0 0 30px !important;
    color: #fff !important;
    font-family: "Kehl Condensed", "Arial Narrow", sans-serif !important;
    font-size: 27px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    letter-spacing: .07em !important;
    text-transform: none !important;
}

html body.home .home-hero.hero-chronik h1 {
    max-width: 680px !important;
    margin: 0 !important;
    color: #fff !important;
    font-size: clamp(54px, 6.2vw, 92px) !important;
    font-weight: 700 !important;
    line-height: 1.02 !important;
    letter-spacing: -.025em !important;
    text-shadow: none !important;
}

html body.home .home-hero.hero-chronik .hero-chronik-tagline {
    margin: 30px 0 0 !important;
    color: rgba(255, 255, 255, .92) !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 1.4 !important;
    letter-spacing: .32em !important;
    text-transform: uppercase !important;
}

html body.home .home-hero.hero-chronik .hero-actions {
    margin-top: 38px !important;
}

html body.home .home-hero.hero-chronik .hero-chronik-button {
    display: inline-flex !important;
    align-items: center !important;
    gap: 14px !important;
    min-height: 62px !important;
    padding: 0 30px !important;
    color: #fff !important;
    background: transparent !important;
    border: 1.5px solid rgba(255, 255, 255, .9) !important;
    border-radius: 0 !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    letter-spacing: .16em !important;
    text-transform: uppercase !important;
    box-shadow: none !important;
    transition: background-color .2s ease, color .2s ease;
}

html body.home .home-hero.hero-chronik .hero-chronik-button:hover,
html body.home .home-hero.hero-chronik .hero-chronik-button:focus-visible {
    color: var(--kehl-blue) !important;
    background: #fff !important;
}

@media (max-width: 1024px) {
    html body.home .home-hero.hero-chronik.has-image {
        background-image:
            linear-gradient(90deg, rgba(10, 24, 120, .95) 0%, rgba(15, 34, 129, .82) 45%, rgba(15, 34, 129, .45) 75%, rgba(15, 34, 129, .25) 100%),
            var(--hero-image) !important;
    }
    html body.home .home-hero.hero-chronik .hero-inner {
        min-height: 640px !important;
        padding-top: 130px !important;
        padding-bottom: 60px !important;
    }
}

@media (max-width: 767px) {
    html body.home .home-hero.hero-chronik.has-image {
        background-image:
            linear-gradient(180deg, rgba(10, 24, 120, .55) 0%, rgba(10, 24, 120, .88) 55%, rgba(10, 24, 120, .95) 100%),
            var(--hero-image) !important;
        background-position: 62% center !important;
    }
    html body.home .home-hero.hero-chronik .hero-inner {
        min-height: 580px !important;
        align-items: flex-end !important;
        padding-top: 120px !important;
        padding-bottom: 48px !important;
    }
    html body.home .home-hero.hero-chronik .hero-chronik-years { font-size: 22px !important; margin-bottom: 20px !important; }
    html body.home .home-hero.hero-chronik h1 { font-size: clamp(40px, 11.5vw, 54px) !important; }
    html body.home .home-hero.hero-chronik .hero-chronik-tagline { margin-top: 20px !important; font-size: 12px !important; letter-spacing: .24em !important; }
    html body.home .home-hero.hero-chronik .hero-actions { margin-top: 28px !important; }
    html body.home .home-hero.hero-chronik .hero-chronik-button { min-height: 54px !important; padding: 0 22px !important; font-size: 12px !important; }
}


/* 1.2.190 / 1.2.207: Auf der rechten Bildseite bleibt das Motiv gut sichtbar. */
html body.home .home-hero.hero-chronik.has-image {
    background-image:
        linear-gradient(90deg, rgba(6, 14, 70, .92) 0%, rgba(8, 18, 88, .78) 24%, rgba(10, 22, 100, .56) 42%, rgba(10, 22, 100, .28) 60%, rgba(10, 22, 100, .08) 80%, rgba(10, 22, 100, .02) 100%),
        var(--hero-image) !important;
}

/* Schrift wie "So wird aus deiner Idee ein Projekt." */
html body.home .home-hero.hero-chronik h1 {
    font-family: var(--kehl-font) !important;
    font-size: var(--kehl-type-section-heading, 44px) !important;
    font-weight: 520 !important;
    line-height: 1.04 !important;
    letter-spacing: -.035em !important;
    text-wrap: balance;
}

/* Unterzeile wie "Von der Idee bis zur Montage", in Weiß. */
html body.home .home-hero.hero-chronik .hero-chronik-tagline {
    max-width: none !important;
    margin-top: 20px !important;
    font-family: var(--kehl-font) !important;
    font-size: var(--kehl-type-label, 12px) !important;
    font-weight: 800 !important;
    line-height: 1.4 !important;
    letter-spacing: .16em !important;
    color: #fff !important;
    white-space: nowrap !important;
}

@media (max-width: 1024px) {
    html body.home .home-hero.hero-chronik.has-image {
        background-image:
            linear-gradient(90deg, rgba(6, 14, 70, .90) 0%, rgba(10, 22, 100, .55) 45%, rgba(10, 22, 100, .12) 100%),
            var(--hero-image) !important;
    }
}

@media (max-width: 767px) {
    html body.home .home-hero.hero-chronik.has-image {
        background-image:
            linear-gradient(180deg, rgba(6, 14, 70, .72) 0%, rgba(6, 14, 70, .92) 55%, rgba(6, 14, 70, .97) 100%),
            var(--hero-image) !important;
    }
    html body.home .home-hero.hero-chronik .hero-chronik-tagline {
        white-space: normal !important;
    }
}


/* Version 1.2.203: Bildnachweis im Karriere-Hero rechts unten, bei Hover sichtbar. */
.jobs-page .jobs-hero-credit-wrap {
    position: absolute;
    left: auto;
    right: clamp(18px, 4vw, 56px);
    bottom: 80px;
    z-index: 5;
    width: auto;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity .2s ease, transform .2s ease, visibility .2s ease;
}

.jobs-page .jobs-hero-credit-wrap > .kehl-container {
    width: auto;
    margin: 0;
}

.jobs-page .jobs-hero-credit {
    display: inline-flex;
    align-items: center;
    max-width: min(100%, 420px);
    padding: 10px 14px;
    background: rgba(5, 12, 36, .97);
    border: 1px solid rgba(255, 255, 255, .4);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: .01em;
    box-shadow: 0 6px 20px rgba(0, 0, 0, .35);
}

.jobs-page .jobs-hero-stage:hover .jobs-hero-credit-wrap,
.jobs-page .jobs-hero-stage:focus-within .jobs-hero-credit-wrap {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

@media (max-width: 700px) {
    .jobs-page .jobs-hero-credit-wrap {
        right: 16px;
        bottom: 54px;
        max-width: calc(100% - 32px);
    }

    .jobs-page .jobs-hero-credit {
        max-width: 100%;
        padding: 8px 10px;
        font-size: 11px;
    }
}


/* 1.2.205: Bildnachweise gehören zu Fotos, nicht zu den Navigationseinträgen. */
.primary-nav .kehl-image-credit,
.kehl-offcanvas-nav .kehl-image-credit {
    display: none !important;
}


/* 1.2.206: Leistungs-Unterseiten, feste Kachelgröße unabhängig von der Bildanzahl.
   Auf Desktop 3 gleich große Spalten wie bei Treppen und Geländer. */
@media (min-width: 901px) {
    .legacy-project-page .legacy-project-preview-grid,
    .legacy-project-page .legacy-project-preview-grid.is-single,
    .legacy-project-page .legacy-project-preview-grid.is-three {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 20px;
    }
}

@media (min-width: 641px) and (max-width: 900px) {
    .legacy-project-page .legacy-project-preview-grid,
    .legacy-project-page .legacy-project-preview-grid.is-single,
    .legacy-project-page .legacy-project-preview-grid.is-three {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px;
    }
}

@media (max-width: 640px) {
    .legacy-project-page .legacy-project-preview-grid,
    .legacy-project-page .legacy-project-preview-grid.is-single,
    .legacy-project-page .legacy-project-preview-grid.is-three {
        grid-template-columns: minmax(0, 1fr);
        gap: 16px;
    }
}

/* Bildkacheln bleiben quadratisch wie auf Treppen und Geländer;
   mobile Bilder behalten die vorhandene 4:3-Darstellung. */
.legacy-project-page .legacy-project-preview-grid > a {
    grid-column: auto;
    width: 100%;
    justify-self: stretch;
}

.legacy-project-page .legacy-project-all-link {
    justify-content: flex-start;
}


/* Version 1.2.207: Startseiten-Hero, gemeinsame linke Textkante. */
html body.home .home-hero.hero-chronik .hero-content {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    text-align: left !important;
}
html body.home .home-hero.hero-chronik .hero-chronik-years,
html body.home .home-hero.hero-chronik .hero-content h1,
html body.home .home-hero.hero-chronik .hero-chronik-tagline {
    padding-left: 0 !important;
    margin-left: 0 !important;
    text-align: left !important;
    text-indent: 0 !important;
}

/* 1.2.208: Hero-Ueberschrift optisch 3px nach links, alle anderen Elemente unberuehrt. */
html body.home .home-hero.hero-chronik .hero-content h1 {
    position: relative;
    left: -3px;
}


/* Version 1.2.211: iPad/Touch-Tablets – Familienüberschrift innerhalb der Textspalte. */
@media (min-width: 701px) and (max-width: 1366px) and (any-pointer: coarse) {
    body.kehl-company-page .company-page-v2 .company-family-grid,
    body.kehl-company-page .company-page-v2 .company-family-copy {
        min-width: 0;
        max-width: 100%;
    }

    body.kehl-company-page .company-page-v2 .company-family-copy h1 {
        max-width: 100%;
        font-size: clamp(32px, 3.3vw, 46px);
        line-height: 1.08;
        overflow-wrap: anywhere;
        word-break: normal;
        hyphens: auto;
        -webkit-hyphens: auto;
    }
}


/* 1.2.214: Unternehmensüberschrift in zweispaltigen Tablet-/schmalen Desktopansichten.
   Kein Trennstrich, keine abgeschnittenen Wörter. Handy und breite Desktopansichten unverändert. */
@media (min-width: 981px) and (max-width: 1366px) {
    body.kehl-company-page .company-page-v2 .company-family-copy {
        min-width: 0;
        max-width: 100%;
    }
    body.kehl-company-page .company-page-v2 .company-family-copy h1 {
        max-width: 100% !important;
        font-size: clamp(32px, 3.5vw, 44px) !important;
        line-height: 1.08 !important;
        white-space: normal !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
        hyphens: none !important;
        -webkit-hyphens: none !important;
    }
}


/* 1.2.215: Startseiten-Hero, feste Zweizeilen-Ueberschrift und leicht groessere Schrift. */
html body.home .home-hero.hero-chronik .hero-content h1 {
    font-size: 48px !important;
}
@media (max-width: 767px) {
    html body.home .home-hero.hero-chronik .hero-content h1 {
        font-size: clamp(36px, 10.5vw, 40px) !important;
    }
}


/* 1.2.217: Startseiten-Hero auf Smartphones etwas weiter nach rechts verschoben.
   Die Abdunklung liegt vorwiegend links/unten hinter dem Text.
   Desktop und Tablet bleiben wie in 1.2.215. */
@media (max-width: 767px) {
    html body.home .home-hero.hero-chronik.has-image {
        background-image:
            radial-gradient(ellipse 105% 90% at -15% 88%,
                rgba(6, 14, 70, .90) 0%,
                rgba(6, 14, 70, .65) 40%,
                rgba(6, 14, 70, .22) 70%,
                rgba(6, 14, 70, 0) 100%),
            linear-gradient(90deg,
                rgba(6, 14, 70, .38) 0%,
                rgba(6, 14, 70, .13) 45%,
                rgba(6, 14, 70, 0) 75%),
            var(--hero-image) !important;
        background-size: cover, cover, cover !important;
        background-position: center, center, 52% center !important;
    }
}


/* 1.2.219: Einheitlicher Route-oeffnen-Pfeil statt Emoji auf iOS. */
.footer-route .footer-route-arrow {
    width: 1.1em;
    height: 1.1em;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}


/* 1.2.220: Kontrast beim Hover des Footer-Projektbuttons.
   Ueberschreibt die allgemeine Regel .site-footer a:hover. */
.site-footer .footer-callout-actions .button-light:hover,
.site-footer .footer-callout-actions .button-light:focus-visible {
    color: var(--kehl-blue);
}


/* 1.2.221: Mobil auf der Startseite Logo und Hamburger besser ablesbar.
   Ausschließlich der transparente Header erhält eine dezente Abdunklung. */
@media (max-width: 700px) {
    html body.home .site-header:not(.is-scrolled) {
        background: linear-gradient(
            180deg,
            rgba(9, 22, 95, .64) 0%,
            rgba(9, 22, 95, .54) 75%,
            rgba(9, 22, 95, .40) 100%
        ) !important;
    }
}


/* 1.2.223: Hero-Überschrift, Desktop 60 px, Tablet 50 px, Smartphone 38 px. */
html body.home .home-hero.hero-chronik .hero-content h1 {
    font-size: 60px !important;
}
@media (min-width: 768px) and (max-width: 1024px) {
    html body.home .home-hero.hero-chronik .hero-content h1 {
        font-size: 50px !important;
    }
}
@media (max-width: 767px) {
    html body.home .home-hero.hero-chronik .hero-content h1 {
        font-size: 38px !important;
    }
}


/* 1.2.225: Menue ohne Kachel. Dezente Kontur durch Schatten auf Schrift und Icon.
   Nur Startseite, Desktop/Tablet. Position und Groesse unveraendert. */
@media (min-width: 701px) {
    html body.home .site-header:not(.is-scrolled) .header-inner > button.nav-toggle {
        background: transparent !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        -webkit-backdrop-filter: none !important;
        backdrop-filter: none !important;
        filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .88));
    }
    html body.home .site-header:not(.is-scrolled) .header-inner > button.nav-toggle:hover,
    html body.home .site-header:not(.is-scrolled) .header-inner > button.nav-toggle:focus-visible {
        background: transparent !important;
        filter: drop-shadow(0 1px 3px rgba(0, 0, 0, .96));
    }
}

/* 1.2.227: Der vorhandene Hero-Verlauf läuft sanft bis zum Menübereich.
   Keine Kachel und kein eigener Hintergrund direkt hinter dem Menü. */
@media (min-width: 1025px) {
    html body.home .home-hero.hero-chronik.has-image {
        background-image:
            linear-gradient(180deg,
                rgba(6, 14, 70, .24) 0%,
                rgba(6, 14, 70, .14) 16%,
                rgba(6, 14, 70, 0) 36%),
            linear-gradient(90deg,
                rgba(6, 14, 70, .92) 0%,
                rgba(8, 18, 88, .78) 24%,
                rgba(10, 22, 100, .56) 42%,
                rgba(10, 22, 100, .28) 60%,
                rgba(10, 22, 100, .08) 80%,
                rgba(10, 22, 100, .02) 100%),
            var(--hero-image) !important;
    }
}
@media (min-width: 768px) and (max-width: 1024px) {
    html body.home .home-hero.hero-chronik.has-image {
        background-image:
            linear-gradient(180deg,
                rgba(6, 14, 70, .24) 0%,
                rgba(6, 14, 70, .14) 16%,
                rgba(6, 14, 70, 0) 36%),
            linear-gradient(90deg,
                rgba(6, 14, 70, .90) 0%,
                rgba(10, 22, 100, .55) 45%,
                rgba(10, 22, 100, .12) 100%),
            var(--hero-image) !important;
    }
}


/* 1.2.228: Pfeil-SVGs im Leistungen-Karussell geometrisch zentrieren. */
.home-services-carousel-arrow svg {
    display: block;
    width: 24px;
    height: 24px;
    margin: 0;
    flex-shrink: 0;
}


/* 1.2.230: Gleiche Social-Media-Buttons wie im Footer, unter den Kontaktdaten im Offcanvas-Menue. */
.kehl-offcanvas-nav .kehl-nav-social-links {
    grid-column: 1 / -1;
    display: flex !important;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    margin: 8px 0 0;
    padding: 0;
}
.kehl-offcanvas-nav .kehl-nav-social-links .footer-social-link {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 0 !important;
    flex: 0 0 38px;
    border: 1px solid rgba(255,255,255,.28);
    color: #fff;
}
.kehl-offcanvas-nav .kehl-nav-social-links .footer-social-link:hover,
.kehl-offcanvas-nav .kehl-nav-social-links .footer-social-link:focus-visible {
    color: var(--kehl-blue);
    background: #fff;
    border-color: #fff;
}

/* 1.2.232: X in die Offcanvas-Kopfzeile verlegt.
   Liegt innerhalb des Menues statt unter anderen Ebenen. */
.kehl-offcanvas-nav .kehl-offcanvas-head {
    position: sticky !important;
    top: -18px !important;
    z-index: 10 !important;
    justify-content: space-between !important;
    gap: 16px !important;
    background: transparent !important;
}
.kehl-offcanvas-nav .kehl-offcanvas-head .kehl-mobile-menu-close {
    display: inline-flex !important;
    position: relative !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    flex: 0 0 44px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid rgba(255, 255, 255, .35) !important;
    border-radius: 6px !important;
    background: rgba(255, 255, 255, .06) !important;
    color: #fff !important;
    opacity: 1 !important;
    visibility: visible !important;
    cursor: pointer !important;
    -webkit-tap-highlight-color: transparent;
}
.kehl-offcanvas-nav .kehl-offcanvas-head .kehl-mobile-menu-close svg {
    display: block !important;
    width: 22px !important;
    height: 22px !important;
    stroke: #fff !important;
}
.kehl-offcanvas-nav .kehl-offcanvas-head .kehl-mobile-menu-close:focus-visible {
    outline: 2px solid #fff !important;
    outline-offset: 3px !important;
}
@media (max-width: 700px) {
    .kehl-offcanvas-nav .kehl-offcanvas-head {
        top: -18px !important;
    }
}


/* Version 1.2.234: Dritter Kasten zur Ausbildung unter den Karriere-Karten. */
.jobs-page .jobs-apprenticeship-card {
    position: relative;
    margin-top: 22px;
    padding: 38px 42px 40px;
    border: 1px solid rgba(21, 24, 33, .22);
    border-radius: 14px;
    background: transparent;
}
.jobs-page .jobs-apprenticeship-card::after {
    content: "";
    position: absolute;
    top: 16px;
    right: 16px;
    width: 34px;
    height: 34px;
    border-top: 2px solid rgba(15, 34, 129, .14);
    border-right: 2px solid rgba(15, 34, 129, .14);
    pointer-events: none;
}
.jobs-page .jobs-apprenticeship-card h2 {
    margin: 0 0 16px;
    color: var(--kehl-text);
    font-size: clamp(30px, 3.25vw, 44px);
    line-height: 1.1;
    letter-spacing: -.04em;
}
.jobs-page .jobs-apprenticeship-card p {
    max-width: 850px;
    margin: 0;
    color: var(--kehl-text);
    font-size: 18px;
    line-height: 1.6;
}
@media (max-width: 700px) {
    .jobs-page .jobs-apprenticeship-card {
        margin-top: 16px;
        padding: 27px 21px 25px;
        border-radius: 10px;
    }
    .jobs-page .jobs-apprenticeship-card::after {
        top: 13px;
        right: 13px;
        width: 24px;
        height: 24px;
    }
    .jobs-page .jobs-apprenticeship-card h2 {
        font-size: clamp(26px, 7.2vw, 32px);
        line-height: 1.12;
    }
    .jobs-page .jobs-apprenticeship-card p {
        font-size: 15px;
        line-height: 1.5;
    }
}
